c 面试编程问题

时间:2022-04-26 05:48:27 资料大全 我要投稿
  • 相关推荐

c 面试编程问题

1、输出和为一个给定整数的所有组合
例如 n=5
5=1+4;5=2+3(相加的数不能重复)
则输出
1,4;2,3,

c 面试编程问题


#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、递规反向输出字符串的例子,可谓是反序的经典例程.
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;
}
对 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;
}

c 面试编程问题

3、用递归算法判断数组 a[N]是否为一个递增数组,

资料共享平台

c 面试编程问题》(https://www.unjs.com)。
递归的方法,记录当前最大的,并且判断当前的是否比这个还大,大则继续,否则返回 false结束:
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 面试编程问题】相关文章:

家教面试问题08-03

面试经常遇到的问题04-26

面试:情景性问题08-04

面试常问的问题04-12

社团面试常用问题及技巧09-30

面试中可能遇到的问题04-25

学生会面试的问题08-21

社团面试问题及答案08-14

面试必看:8大棘手的面试问题02-23

求职面试常见问题(答案)03-03