C语言填空题大全
1. 以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算: y1=(x+8)2-2(x+8)+6
y2= sin2(x)-2sin(x)+6
请填空。
#include "math.h"
double fun(double x){ return (x*x-2*x+6);}
main()
{ double x,y1,y2;
printf ("Enter x: "); scanf ("%lf",&x);
y1=fun(__x+8____);
y2=fun(_sin(x)_____);
printf ("y1=%1f,y2=%1f\n",y1,y2);
}
2. 执行以下程序时输入1234567
#include
main()
{ int a=1,b;
scanf("%2d%2d",&a,&b); printf("%d %d\n",a,b);
}
3. 若有以下程序
int f(int x,int y)
{ return(y-x)*x; }
main()
{ int a=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
执行后输出结果是__9____。
4. 以下程序的输出结果是_ACE_____。
#include
main()
{ int i;
for(i='a';i<'f';i++,i++) printf("%c",i-'a'+'A');
printf("\n");
}
5. 下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在数组中返回,二进制数的最低位放在下标为0的元素中,其它依此类推。请填空。
fun(int x,int b[ ])
{ int k=0,r;
do
{ r=x%___2___;
b[k++]=r;
x/=___2___;
}while(x);
}
6. 以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和,请填空。
main()
{ int i,a[20],sum,count;
sum=count=0;
for(i=0;i<20;i++) scanf("%d",______ );
fro(i=0;i<20;i++)
{ if(a[i]>0)
{ count++;
sum+= ______ ;
}
}
printf("sum=%d,count=%d\n",sum,count);
}
&a[i]
a[i]
7. 以下程序运行后的输出结果是___220.000000___。
main()
{char c; int n=100;
float f=10; double x;
x=f*=n/=(c=50);
printf("%d%f\n",n,x);
}
8. 以下程序中, for循环体执行的次数是_4_____。
#define N 2
#define M N+1
#define K M+1*M/2
main()
{ int i;
for(i=1;i { ... } ... } 9. 以下程序运行后的输出结果是__1 3 7 15____。 main() { int i,n[]={0,0,0,0,0}; for(i=1;i<=4;i++) { n[i]=n[i-1]*2+1; printf("%d ",n[i]); } } 9. 下列程序中字符串中各单词之间有一个空格,则程序的输出结果是__How does she____。 # include main( ) { char str1[ ]="How do you do", *p1=str1; strcpy(str1+strlen(str1)/2,"es she"); printf("%s\n",p1); } 10. 以下程序的输出结果是___261___。 main() { int a=177; printf("%o\n",a); } 11. 下面程序的运行结果是:__1000 10__。 #define N 10 #define s(x) x*x #define f(x) (x*x) main() {int i1,i2; i1=1000/s(N);i2=1000/f(N); printf("%d %d\n",i1,i2); } 12. 已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:B33<回车>,则输出结果是_1 B_____。 #include main() { char a,b; a=getchar();scanf("%d",&b); a=a-'A'+'0';b=b*2; printf("%c %c\n",a,b); } 13. 以下程序运行后的输出结果是_17_____。 main() {int x=15; while(x>10&&x<50) {x++; if(x/3){x++;break;} else continue; } printf("%d\n",x); } 14. 函数sstrcmp()的功能是对两个字符串进行比较。当s 所指字符串和t所指字符相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。 #include int sstrcmp(char *s,char *t) {while(*s&&*t&&*s==_*t_____) {s++;t++; } return __*s-*t____; } 15. 以下程序的输出结果是___7___。 main() { int x=0; sub(&x,8,1); printf("%d\n",x); } sub(int *a,int n,int k) { if(k<=n) sub(a,n/2,2*k); *a+=k; } 16. 以下程序段用于构成一个简单的单向链表,填空。 struct STRU { int x,y; float rate; ___struct STRU*___ p; }a,b; a.x=0;a.y=0;a.rate=0;a.p=&b; b.x=0;b.y=0;b.rate=0;b.p=NULL; 17. 以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0。请填空。 int isprime(int a) { int i; for(i=2;i<=a/2;i++) if(a%i==0) __return 0____; __return 1____; } 18. 设有如下程序: main() { int n1,n2; scanf("%d",&n2); while(n2!=0) { n1=n2%10; n2=n2/10; printf("%d",n1); } } 程序运行后,如果从键盘上输入1298,则输出结果为_8921_ __。 19. 以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值。请填空。void fun(int,int,int(*)[4],int *); main() { int a[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i; fun(3,4,a,b); for(i=0;i<3;i++) printf("%4d",b[i]); printf("\n"); } void fun(int m,int n,int ar[][4],int *br) { int i,j,x; for(i=0;i { x=ar[i][0]; for(j=0;j ______=x; } } br[i] 20. 已知字符A的ASCII码为65,以下程序运行后的输出结果是__67G____。 main() { char a,b; a='A'+'5'-'3'; b=a+'6'-'2'; printf("%d%c\n",a,b); } 21. 以下程序的功能是:求出数组x中各相邻两个元素的和依次存放到a数组中,然后输出。请填空。 main() { int x[10],a[9],i; for(i=0;i<10;i++) scanf("%d",&x[i]); for( ______; i<10;i++) a[i-1]=x[i]+______; for(i=0;i<9;i++ ) printf("%d",a[i] ) ; printf("\n" ); } i=1 x[i-1] 22. 函数mycmp(char *s,char *t)的功能是比较字符串s和t的大小,当s等于t时返回0,当s>t返回正值,当s mycmp( char *s,char *t) { while (*s==*t) { if (*s=='\0')return 0; ++s;++t; } return(______); } *s-*t 23. 有以下程序 main() { int n=0,m=1,x=2; if(!n) x-=1; if(m) x-=2; if(x) x-=3; printf("%d\n",x); } 执行后输出的结果是__-4____。 24. 设有定义:float x=123.4567;,则执行以下语句后的输出结果是 ___123.460000___。 printf("%f\n"(int)(x*100+0.5)/100.0); 25. 以下程序中,函数SumColumMin的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。 #define M 2 #define N 4 void SumColumMin(int a[M][N],int *sum) { int i,j,k,s=0; for(i=0;i { k=0; for(j=1;j if(a[k][i]>a[j][i])k=j; s+=______ ; } ______ =s; } main() { int x[M][N]={3,2,5,1,4,1,8,3},s; SumColumMin(______); printf("%d\n",s); } a[k][i] *sum x,&s 26. 已知字符A的ASCII码值为65,以下语句的输出结果是______。 char ch='B'; printf("%c %d\n",ch,ch); B 66 27. 设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。 main() { int findbig(int,int,int); int (*f)(),x,y,z,big; f=______; scanf("%d%d%d",&x,&y,&z); big=(*f)(x,y,z); printf("big=%d\n",big); } findbig 28. 下面程序的输出是______。 main() { int arr[10],i,k=0; for(i=0;i<10;i++) arr[i]=i; for(i=1;i<4;i++) k+=arr[i]+i; printf("%d\n",k); } 12 29. 以下函数fun用于求两个整数a和b的最大公约数。 fun(a,b) int a,b; {int i,j,m,n; if(a>b) {m=a;a=b;______;} i=a;j=b; while((n=______)!=0) {j=i;i=______;} return(i); } 故本题答案为:b=m和j%i和n。 30. 以下程序中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标,请填空。 #define N 3 #define M 3 select(int a[N][M],int *n) { int i,j,row=0,colum=0; for(i=0;i for(j=0;i if(a[i][j]>a[row][colum]){row=i;colum=j;} *n=______; return( ______ ); } main() { int a[N][M]={9,11,23,6,1,15,9,17,20},max,n; max=select(a,&n); printf("max=%d,line=%d\n",max,n); } row a[row][colum] 31. 以下sum函数的功能是计算下列级数之和。 S=1+x+x^2/2!+x^3/3!+…+x^n/n! 请给函数中的各变量正确赋初值。 double sum(double x,int n) { int i; double a,b,s; ______ for(i=1;i<=n;i++) {a=a*x;b=b*i;s=s+a/b;} return s; } a=1.0,b=1.0,s=1.0 32以下函数的功能是:求x的y次方,请填空。 double fun(double x,int y) { int i; double z; for(i=1,z=x;i return z; } x 33. 以下程序的输出结果是______。 main() { int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0; for(i=0;i<3;i++) s+=a[i][i]+ a[i][3-i-1]; printf("%d\n",s); } 30 34. 以下程序的输出结果是______。 #define MCRA(m) 2*m #define MCRB(n,m) 2*MCRA(n)+m main() { int i=2,j=3; printf("%d\n",MCRB(j,MCRA(i))); } 16 35. 设有以下程序: main() { int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; b=(*p1)/(*p2)+7; printf("a=%d\n",a); printf("b=%d\n",b); } 执行该程序后,a的值为__ __,b的值为__ ___。 0 7 36. 以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中的其他数据不变。 # define N 4 void rotate(int a[][N],int b[][N]) { int i,j; for(i=0;i { b[i][N-1]=______; ______=a[N-1][i];} } a[0][i] b[i][0] 37有以下程序: #include main() {char c; while((c=getchar())!='?') putchar(--c); } 程序运行时,如果从键盘输入:Y?N?↙,则输出结果为______。 x 38. 以上程序运行后的输出结果是______。 main() { int i=10,j=0; do { j=j+i; i--;} while(i>2); printf("%d\n",j); } 52 39. 若有如下结构体说明: struct STRU { int a,b;char c: double d; struct STRU *p1,*p2; }; 请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。 ______t[20] struct STRU 41. 以下程序的输出结果是______。 void fun() { static int a = 0; a += 2; printf("%d",a); } main() { int cc; for(cc = 1;cc < 4; cc++) fun(); printf("\n"); } 246 42. 以下程序运行后的输出结果是______。 #include main() { char ch[]="abc",x[3][4]; int i; for(i=0;i<3;i++) strcpy(x[i],ch); for(i=0;i<3;i++) printf("%s",&x[i][i]); printf("\n"); } . abcbcc 43. 以下程序的输出结果是______。 #define MAX(x,y) (x)>(y)?(x):(y) main() { int a = 5, b = 2,c = 3, d = 3, t; t = MAX(a + b, c + d)*10; printf("%d\n", t); } 7 44. 设变量已正确定义为整型,则表达式n=i=2,++i,i++的值为______。 3 45. 以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。 int fun ( int n) { int m=0,f=1,i; for(i=1; i<=n; i++) { m+=i*f; f=______; } return m; } main() { printf("m=%d\n",______);} -f fun(10) 46. 若有程序 main() { int i,j; scanf("i=%d,j=%d",&i,&j); printf("i=%d,j=%d\n ",i,j); } 要求给i赋10,给j赋20,则应该从键盘输入______。 I=10,j=20 47. 语句;X++;、++X;、X=X+1;、X=1+X;,执行后都使变量X中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)__ ___。 X+=1 48. 下面的函数strcat(str1,str2)实现将字符串str2拼接到字符串str1后面的功能。请填空使之完整。 char *strcat(str1,str2) char *str1,*str2; { char *t=str1; while(______)str1++; while(______); return(t);} *str1!=NULL和*str1++=*str2++ 49. 以下程序的输出结果是______。 main() { char *p="abcdefgh",*r; long *q; q=(long*)p; q++; r=(char*)q; printf("%s\n",r); } efgh 50. 以下程序运行后的输出结果是______。 main () { char a[]="Language",b[]="Programe"; char *p1,*p2; int k; p1=a; p2=b; for(k=0;k<=7;k++) if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k)); } gae 51. 以下程序的功能是输出如下形式的方阵: 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 请填空。 main() { int i,j,x; for(j=4;j______;j--) { for(i=1;i<=4;i++) { x=(j-1)*4+______; printf("%4d",x); } printf("\n"); } } >=1 i 52. 下列程序的输出结果是______。 int t(int x,int y,int cp,int dp) { cp=x * x+y*y; dp=x*x-y*y; } main( ) { int a=4,b=3,c=5,d=6; t(a,b,c,d); printf("%d %d\n",c,d); } 5 6 53. 若有语句 int i=-19,j=i%4; printf("%d\n",j); 则输出的结果是______。 -3 54. 有以下程序 int sub(int n) { return(n/10+n%10); } main() { int x,y; scanf("%d",&x); y=sub(sub(sub(x))); printf("%d\n",y); } 若运行时输入:1234<回车>,程序的输出结果是______。 10 55. 下面程序的运行结果是:______。 typedef union student {char name[10]; long sno; char sex; float score[4]; }STU; main() {STU a[5]; printf("%d\n",sizeof(a)); } 80 56. 以下程序通过函数SunFun和f(x),x=0到10,这里f(x)=x^2+1,由F函数实现,请填空。 main() { printf("The sun=%d\n",SunFun(10));} SunFun(int n) { int x,s=0; for(x=0;x<=n;x++)s+F(______); return s; } F(int x) { return (______);} X x*x+1 57. 以下程序运行后的输出结果是______。 main() { int p=30; printf("%d\n",(p/3>0 ? p/10 :p%3)); } 3 58. 以下程序运行后的输出结果是______。 main() { int a=3,b=4,c=5,t=99;