c 面試編程問(wèn)題
1、輸出和為一個(gè)給定整數(shù)的所有組合
例如 n=5
5=1+4;5=2+3(相加的數(shù)不能重復(fù))
則輸出
1,4;2,3。
#include <stdio.h>
int main(void)
{
unsigned long int i,j,k;
printf("please input the number\n");
scanf("%d",&i);
if( i % 2 == 0)
j = i / 2;
else
j = i / 2 + 1;
printf("The result is \n");
for(k = 0; k < j; k++)
printf("%d = %d + %d\n",i,k,i - k);
return 0;
}
#include <stdio.h>
void main()
{
unsigned long int a,i=1;
scanf("%d",&a);
if(a%2==0)
{
for(i=1;i<a/2;i++)
printf("%d",a,a-i);
}
else
for(i=1;i<=a/2;i++)
printf(" %d, %d",i,a-i);
}
2、遞規(guī)反向輸出字符串的'例子,可謂是反序的經(jīng)典例程.
void inverse(char *p)
{
if( *p = = '\0' )
return;
inverse( p+1 );
printf( "%c", *p );
}
int main(int argc, char *argv[])
{
inverse("abc\0");
return 0;
}
對(duì) 1 的另一種做法:
#include <stdio.h>
void test(FILE *fread, FILE *fwrite)
{
char buf[1024] = {0};
if (!fgets(buf, sizeof(buf), fread))
return;
test( fread, fwrite );
fputs(buf, fwrite);
}
int main(int argc, char *argv[])
{
FILE *fr = NULL;
FILE *fw = NULL;
fr = fopen("data", "rb");
fw = fopen("dataout", "wb");
test(fr, fw);
fclose(fr);
fclose(fw);
return 0;
}
3、用遞歸算法判斷數(shù)組 a[N]是否為一個(gè)遞增數(shù)組。
遞歸的方法,記錄當(dāng)前最大的,并且判斷當(dāng)前的是否比這個(gè)還大,大則繼續(xù),否則返回 false結(jié)束:
bool fun( int a[], int n )
{
if( n= =1 )
return true;
if( n= =2 )
return a[n-1] >= a[n-2];
return fun( a,n-1) && ( a[n-1] >= a[n-2] );
}
【c 面試編程問(wèn)題】相關(guān)文章:
一個(gè)C/C++編程面試題11-22
計(jì)算機(jī)C語(yǔ)言編程問(wèn)題分析論文06-21
C語(yǔ)言編程練習(xí)11-23
C語(yǔ)言編程題11-23
c語(yǔ)言指針面試常見(jiàn)問(wèn)題09-28
面試中編程實(shí)例11-21
考查C++/C程序員的基本編程技能11-25
計(jì)算機(jī)程序c語(yǔ)言面試常見(jiàn)問(wèn)題12-08