《专升本C语言100题及答案(共23页).doc》由会员分享,可在线阅读,更多相关《专升本C语言100题及答案(共23页).doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上C语言精编100题一、单选题1. 由C语言编写的代码程序( )A. 可直接执行B. 是一个源程序C. 经过编译即可执行 D. 经过编译解释才能执行2. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )A. 大写字母 B. 中划线 C. 数字字符 D. 下划线3. 下列选项中,不能用作标识符的是( )A. _1234_ B. _1_2 C. int_2_ D. 2_int_4. 以下选项中合法的用户标识符是( )A. long B. _2Test C. 3Dmax D. A.dat5. 以下不能定义为用户标识符的是( )A. MainB. _0C. _i
2、ntD. sizeof6. 下列定义变量的语句错误的是( )A. int _int; B. double int_; C. char For; D. float US$;7. 在C语言中,合法的实型常数是( )A. 5E2.0 B. E-3 C. 2E0 D. 1.3E8. 在C语言中,合法的实型常数是( )A. 1.2E0.5B. 3.14159EC. 5E-3D. E159. 以下选项中,不能作为合法常量的是( )A. 1.234e04B. 1.234e0.4C. 1.234e+4D. 1.234e010. 以下不合法的数值常量是( )A. 011 B. le1 C. 8.0E0.5 D.
3、 0xabcd11. 在C语言中,非法的字符常量是( )A.t B.17 C. n D.xaa12. 以下不合法的字符常量是( )A.018 B. C. D.xcc13. 下列运算符中优先级最高的运算符是( )( )A. =14. 以下程序的输出结果是( )main() int a=3,b=4; printf(%dn,a=b); A. 3B. 4C. 1D. 015. 在C语言中,以下非法的表达式是( )A. 0=x0;D. k=i=j;17. 表达式3.6-5/2+1.2+5%2的值是( )A. 4.3 B. 4.8 C. 3.3 D. 3.818. 设有语句:int a=3;则执行了语句a
4、+=a-=a*a;变量a的值是( )A. 3 B. 0 C. 9 D. -1219. 设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是( )A. 10 B. 20 C. 40 D. 30 20. 以下程序的输出结果是( )( )( )( )( ) main() int i=10,j=1;printf(%d,%dn,i-,+j);A. 9,2 B. 10,2 C. 9,1 D. 10,1 main() int a=12,b=12;printf(%d %dn ,-a,+b);A. 10 10 B. 12 12 C. 11 10 D. 11 13 main() int x=0
5、23;printf(%dn,-x);A. 17 B. 18 C. 23 D. 24 main() int x=10,y=10;printf(%d %dn,x-,-y);A. 10 10 B. 9 9 C. 9 10 D. 10 9 main() int i=010,j=10;printf(%d,%dn,+i,j-); A. 11,10 B. 9,10 C. 010,9 D. 10,921. 以下程序的输出结果是( )main() int x=100,y=200;printf(%dn,(x,y); A. 200 B. 100C. 100 200 D)200 10022. 以下程序的输出结果是(
6、)main() int x=10,y=3,z;printf(%dn,z=(x%y,x/y);A. 1 B. 0 C. 4 D. 323. int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( )A. k+ B. k+=1 C. +k D. k+124. 以下程序的输出结果是( )main() int x,y,z;x=y=1;z=x+,y+,+y;printf(%d,%d,%dn,x,y,z); A. 2,3,3 B. 2,3,2 C. 2,3,1 D. 2,2,125. 设x、y、t均为int型变量,则执行语句:x=y=3;t=+x|+y;后,y的值为( )A. 1B. 2
7、C. 3D. 426. 设int x=-1;执行表达式+x|+x|+x|+x,x的值是( )A. 0B. 1C. 2D. 427. 以下程序的输出结果是(1) main() int k=11; printf(k=%d,k=%o,k=%xn,k,k,k);( )A. k=11,k=12,k=11 B. k=11,k=13,k=13 C. k=11,k=013,k=0xb D. k=11,k=13,k=b(2) main() int k=17; printf(%d,%o,%xn,k,k,k); ( )A. 17,021,0x11 B. 17,17,17 C. 17,0x11,021 D. 17,2
8、1,1128. 运行时从键盘上输入(表示回车),则该程序的输出结果是( ) main() int a;float b,c; scanf(%2d%3f%4fn,&a,&b,&c);printf(a=%d,b=%f,c=%fn,a,b,c); A. a=98,b=765,c=4321 B. a=10,b=432,c=8765 C. a=98,b=765.,c=4321. D. a=98,b=765.0,c=4321.029. 设变量均已正确定义,若要通过scanf(%d%c%d%c,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入
9、形式中正确的是(注:代表空格字符)( ) A. 10X20Y B. 10X20YC. 10X D. 10X 20Y 20Y30. 以下程序的输出结果是( ) #define MA(x) x*(x-1) main() int a=1,b=2;printf(%dn,MA(1+a+b); A. 6 B. 8 C. 10 D. 1231. 以下程序的输出结果是( ) #define M(x,y,z) x*y+z main() int a=1,b=2,c=3;printf(%dn,M(a+b,b+c,c+a); A. 19 B. 17 C. 15 D. 1232. 以下程序段的输出结果是( ) #def
10、ine MIN(x,y) (x)(y)?(x):(y) main() int i=10,j=15,k;k=10*MIN(i,j);printf(%dn,k); A. 15 B. 100 C. 10 D. 15033. 设a=1,b=2,c=3,d=4,则表达式ab?a:c5) printf(%dn,x); else printf(%dn,x-); A. 4B. 5C. 6D. 735. 有以下程序main() int n=4; while(n-) printf(%d ,-n); 程序执行后的输出结果是( ) A. 2 0 B. 3 1 C. 3 2 1 D. 2 1 036. 有以下程序 ma
11、in() int y=10; while(y-); printf(y=%dn,y); 程序执行后的输出结果是( ) A. y=0 B. y=-1C. y=1 D. while构成无限循环37. 有以下程序main() int i; for(i=0;ibc; printf(%dn,x); 59. 以下程序运行后的输出结果是 。main() int a=3,b=2; b=a3; printf(%d,%dn,a,b); 60. 以下程序运行后的输出结果是 。main() int a,b,c=246; a=c/100%9; b=-1&-1; printf(%d,%dn,a,b); 61. (1) 以下
12、程序运行后的输出结果是 。 #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(%dn,t);(2) 以下程序运行后的输出结果是 。#defineS(x) 4*x*x+1main() inti=6,j=8;printf(%dn,S(i+j); 62. 以下程序运行后的输出结果是 。main() int x,a=1,b=2,c=3,d=4;x=(ab)?a:b;x=(xc)?x:c;printf(%dn,x); 63. 以下程序运行后的输出结果是 。main() inta=3,
13、b=4,c=5,t=99;if(ba&ac)t=a;a=c;c=t;if(ac&b=0;i-) t*=i; printf(%dn,t); 65. 以下程序运行后的输出结果是 。main() char c1,c2; for(c1=0,c2=9;c1c2;c1+,c2-) printf(%c%c,c1,c2); printf(n); 66. 输入,则其中while循环体将执行 次。include main() char ch; while(ch=getchar()=0) printf(#);67. 设有定义语句:int a3=0,1,2;则数组元素a12的值为 。68. 在C语言中,有如下语句:
14、int a=10,20,30,40,50,60,*p; p=a+3; printf(%dn,*p+);则输出结果是 。69. 以下程序运行后的输出结果是 。main() int a23=1,2,3,4,5,6; int m,*p; p=&a00; m=(*p)*(*(p+2)*(*(p+4); printf(%dn,m); 70. 设有以下定义和语句:int a32=10,20,30,40,50,60,(*p)2;p=a;则*(*(p+2)+1)的值为 。71. 在C语言中,有如下语句: int a32=1,2,3,4,5,6,*p3;p0=a1;则*(p0+1)所代表的数组元素是 。72.
15、以下程序运行后的输出结果是 。main() char s=abcdef; s3=0; printf(%sn,s); 73. 以下程序运行后的输出结果是 。main() char s=ABCD,*p; for(p=s;ps+4;p+=2) printf(%s,p); printf(n); 74. 以下程序运行后的输出结果是 。main() char s=ABCD,*p=s; printf(%dn,*(p+4); 75. (1) 以下程序运行后的输出结果是 。main() char str=tabn012; printf(%dn,strlen(str); (2) 以下程序运行后的输出结果是 。ma
16、in() printf(%dn,strlen(IBMn0121); (3) 以下程序运行后的输出结果是 。main() printf(%dn,strlen(t065xffn); (4) 以下程序运行后的输出结果是 。main() char s=stop0n; printf(%dn,strlen(s) 71. (1) 以下程序运行后的输出结果是 。main() char str=Beijing; printf(%dn,strlen(strcpy(str,China); (2) 以下程序运行后的输出结果是 。main() char *s1=12345,*s2=1234; printf(%dn,st
17、rlen(strcat(s1,s2); 72. 以下程序运行后的输出结果是 。main() char a=1,2,3,4,0;printf(%d %dn,sizeof(a),strlen(a); 73. 以下程序运行后的输出结果是 。main() char ch35=AAAA,BBB,CC; printf(%sn,ch1); 74. 以下程序运行后的输出结果是 。main() char str20=China,Beijing,*p=str; printf(%sn,p+20); 75. 在C语言中,有如下语句: struct std char ch; int a2; float t; doubl
18、e f std1;则结构体变量std1占用内存的字节数为 。76. 在C语言中,有如下语句: struct dog char ch10; int i; int *p; double k; dog1;则结构体变量dog1占用内存的字节数为 。77. 在C语言中,有如下语句: struct cat int a10; char ch; float f; double *p; cat1;则结构体变量cat1占用内存的字节数为 。78. 有以下结构体说明,请填空,以完成对结构体数组t定义:struct STR char a;int b;float c;double d; ; t20;三、多选题79. 在
19、C语言中,以下合法的变量名是( )A. registerB. _10daysC. my_bookD. us$E. count80. 在C语言中,以下合法的实型常量是( )A. 1.2E+0.5B. 3.14159EC. .5E-3D. E15E. 3.E+281. 在C语言中,变量已正确定义并赋值,下面正确的表达式为( )A. a=b+1B. b=float(a)C. a=a+7=c+3C. c=15.0%3E. a=b+c,a+82. 在C语言中,以下合法的字符常量是( )A. n B. abC. x43D. 084E. 083. 在C语言中,以下合法的常量是( ) A. 0386B. 0X
20、ffC. 1.2e0.5D. 17E. 084. 在C语言中,以下错误的数组定义是( )A. int a=1,2,3;B. int s;C. int n=10,tn;D. char *q3;E. char str=1,2,3;四、程序填空题85. 以下程序的功能是计算:1-2+3-4+99-100main() int i=1,j=1,s=0; while( ) s+= ; i+; ; printf(s=%dn,s); 86. 输入20个整数到一维数组,统计正整数的个数及其和main() int a20,i,sum,count; sum=count= ; for(i=0;i20;i+) scan
21、f(%d,&ai); for(i=0;i20;i+) if( ) count+; ; printf(count=%d,sum=%dn,count,sum); 87. 输入10个整数到一维数组,输出其中最大数和最小数main() int a10,i,max,min; for(i=0;i10;i+) scanf(%d,&ai); max=min= ; for(i=1;imax) ; else if( ) min=ai; printf(%d,%dn,max,min); 88. 输入一个字符串,将其倒序后输出main() int i,j; char st60,ch; scanf(%s,st); for
22、(i=0,j= ; ;i+,j-) ch=sti; ; stj=ch; printf(%sn,st); 89. 输入字符串,将其中的非数字字符删除后,输出整个字符串main() char st80; int i=0,j=0; scanf(%s,st); while(sti) if( ) st =sti; i+; ;printf(%sn,st); 90. 输出方阵中主对角线和、副对角线上元素的和sum1和sum2#define N 3main() int aNN,i,j,sum1,sum2; sum1=sum2= ; for(i=0;iN;i+) for(j=0;jN;j+) scanf(%d,
23、&aij); for(i=0;iN;i+) sum1+= ; sum2+= ; printf(sum1=%d,sum2=%dn,sum1,sum2); 五、程序写结果91. 以下程序运行后的输出结果是 。main() int a=3,b=4,c=5,d=2; if(ab) if(bc) printf(%d,d+1); else printf(%d,+d+1); printf(%dn,d); 92. 以下程序运行后的输出结果是 。main() int i=1; while(i=15) if(+i%3!=2) continue; else printf(%d,i); printf(n); 93.
24、以下程序运行后的输出结果是 。 main() int i,j,x=0; for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2) continue; x+; x+; printf(x=%dn,x); 94. 以下程序运行后的输出结果是 。int fun(int n) int i,s=1; for(i=1;i=n;i+) s*=i; return s; main() int i,s=0; for(i=1;i=4;i+) s+=fun(i); printf(s=%dn,s); 95. 以下程序运行后的输出结果是 。void swap(intx,int y)intt;t=
25、x;x=y;y=t;printf(%d %d ,x,y); main()inta=3,b=4;swap(a,b);printf(%d%dn,a,b); 96. 以下程序运行后的输出结果是 。int fun(int n) switch(n) case 0: return 0; case 1: return 1; case 2: return 1; default: return fun(n-1)+fun(n-2); main() int n=7,s; s=fun(n); printf(%dn,s); 97. 以下程序运行后的输出结果是 。int fun(int x,int y) static int m=0,i=2;i+=m+1; m=i+x+y; return m; main() int j=1,m=1,k;k=fun(j,m); printf(%3d,k);k=fun(j,m); printf(%3d,k); 98. 以下程序运行后的输出结果是