1、C语言试题 3一、选择题答案 1. 若执行以下程序时从键盘上输入9,则输出结果是Main0 int n; scanf(%d,&n); if(n+10) printf(%dn,n); else printf(%dn,n-);A) 11 B) 10C) 9 D) 8你所选择的答案是:*,正确答案是:B 2. 下列程序的输出结果是main() char a10=9,8,7,6,5,4,3,2,1,0,*p=a+5; printf(%d,*-p);A) 非法B)a4的地址C)5D)3你所选择的答案是:*,正确答案是:C 3. 以下程序的输出结果是#define SQR(X) X*Xmain() int
2、 a=16, k=2, m=1; a/=SQR(k+m)/SQR(k+m); printf(dn,a);A) 16B) 2C) 9D) 1你所选择的答案是:*,正确答案是:B 4. 在C语言中,合法的长整型常数是A) OL B) 4962710 C) 324562& D) 216D你所选择的答案是:*,正确答案是:A 5. 以下选项中合法的字符常量是A)BB) 010C) 68D) D你所选择的答案是:*,正确答案是:B 6. 以下定义语句中,错误的是A) int a=1,2;B) char *a3;C) char s10= test;D) int n=5,an;你所选择的答案是:*,正确答案
3、是:D 7. 假定int类型变量占用两个字节,其有定义:int x10=0,2,4;,则数组x在内存中所占字节数是A) 3B) 6C) 10D) 20你所选择的答案是:*,正确答案是:D 8. 若有以下定义和语句:int s45,(*ps)5;ps=s;则对s数组元素的正确引用形式是A) ps+1B) *(ps+3)C) ps02D) *(ps+1)+3你所选择的答案是:*,正确答案是:C 9. 不合法的main函数命令行参数表示形式是A) main(int a,char *c)B) main(int arc,char *arv)C) main(int argc,char *argv)D) m
4、ain(int argv,char *argc)你所选择的答案是:*,正确答案是:C 10. 以下叙述中正确的是 A) 构成C程序的基本单位是函数 B) 可以在一个函数中定义另一个函数 C) main()函数必须放在其它函数之前 D) 所有被调用的函数一定要在调用之前进行定义你所选择的答案是:*,正确答案是:A 11. 已知i、j、k为int型变量,若从键盘输入:1,2,3,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是A) scanf(%2d%2d%2d,&i,&j,&k);B) scanf(%d %d %d,&i,&j,&k);C) scanf(%d,%d,%d,&i,&
5、j,&k);D) scanf(i=%d,j=%d,k=%d,&i,&j,&k);你所选择的答案是:*,正确答案是:C 12. 有以下程序float fun(int x,int y) return(x+y); main() int a=2,b=5,c=8; printf(%3.0fn,fun(int)fun(a+c,b),a-c);程序运行后的输出结果是A) 编译出错B) 9C) 21D) 9.0你所选择的答案是:*,正确答案是:B 13. 有以下程序int f(int n) if (n=1) return 1; else return f(n-1)+1;main() int i,j=0; fo
6、r(i=i;i3;i+) j+=f(i); printf(%dn,j);程序运行后的输出结果是A) 4B) 3C) 2D) 1你所选择的答案是:*,正确答案是:B 14. 有以下程序main() char a =a,b,c,d, e, f, g,h,0; int i,j; i=sizeof(a); j=strlen(a); printf(%d,%dbi,j);程序运行后的输出结果是A)9,9B)8,9C)1,8D)9,8你所选择的答案是:*,正确答案是:D 15. 以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。void reverse(int a ,int n) int i
7、,t; for(i=0;i t=ai; ai=an-1-i;an-1-i=t;main() int b10=1,2,3,4,5,6,7,8,9,10; int i,s=0; reverse(b,8); for(i=6;i10;i+) s+=bi; printf(%dn,s);程序运行后的输出结果是A) 22B) 10C) 34D) 30你所选择的答案是:*,正确答案是:A 16. 有以下程序struct STU char num10; float score3; ;main() struct stu s3=20021,90,95,85, 20022,95,80,75, 20023,100,95
8、,90,*p=s; int i; float sum=0; for(i=0;iscorei; printf(%6.2fn,sum);程序运行后的输出结果是A) 260.00B) 270.00C) 280.00D) 285.00你所选择的答案是:*,正确答案是:B 17. 若有以下程序段int m=0xabc,n=0xabc;m-=n;printf(%Xn,m);执行后输出结果是()。A) 0X0 B) 0x0 C) 0 D) 0XABC你所选择的答案是:*,正确答案是:C 18. 有以下程序main() int i; for(i=0;ibc) printf(%dn,d);else if(c-1
9、=d)=1) printf(%dn,d+1);elseprintf(%dn,d+2)执行后输出结果是()。A) 2 B) 3 C) 4 D) 编译时有错,无结果你所选择的答案是:*,正确答案是:B 20. 有以下程序main() int i=0,s=0;do if(i%2)i+;continue; i+; s +=i; while(ix); 程序运行后的输出结果是()。A)10 B)11 C)20 D)21你所选择的答案是:*,正确答案是:B 26. 有以下程序 main( ) int i,n=0; for(i=2;i5;i+) do if(i%3) continue; n+; while(!
10、i); n+; printf(“n=%dn”,n); 程序执行后的输出结果是()。 A) n=5 B) n=2 C) n=3 D) n=4你所选择的答案是:*,正确答案是:D 27. 若程序中定义了以下函数 double myadd(double a,double B) return (a+B) ;并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()。 A) double myadd(double a,B) ; B) double myadd(double,double); C) double myadd(double b,double A) ; D) double myadd(double x,double y);你所选择的答案是