《c语言经典选择填空题1.doc》由会员分享,可在线阅读,更多相关《c语言经典选择填空题1.doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流c语言经典选择填空题1【精品文档】第 14 页选择题(30分)(第一部分分10分,第二部分12分,第三部分8分)第一部分:简单类题目( 50个题目,从中选择10,每题1分)1、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为(C) A4 B16 C32 D5222.以下程序的输出结果(B) 。 main( ) int x1=3, x2=0, x3=0; if (x1=x2+x3) printf(* * * *); else printf(# # # #);A输出:* * * * B输出:# # # #
2、C存在语法错误 D无输出结果3.下面四个选项中,均是合法转义字符的选项是(A)。A n B 017 C018 f xab D0 101 xlf4若有说明:int a=1,b=2,c=3,d=4;则表达式ab?a:cd?c:d的值是(D) 。A、4 B、3 C、2 D、15设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是 (D)。A i&j Bi=jCi|j+k&j-k D!(ij)&!k|1)6若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是(C) 。Anum%2= =1 B. !(num%2=
3、=0) C!(num%2) Dnum%27有以下程序main() int m=3,n=4,x; x=-m+; x=x+8/+n;printf(“%dn”,x);程序运行后的输出结果是 ( D ) 。A3 B5 C-1 D-28若有变量说明:int a=0,b=0,c=0;,以下符合C语言语法的赋值表达式是 ( C ) 。Aa=9+b+c=a+9 Ba=9+b;c=a+9;Ca=(9+b,b+) Da=9+b+=a+79若有以下定义,若int m=7,n=12,则能得到值为3的表达式是 ( D ) 。An%=(m%=5) Bn%=(m-m%5)Cn%=m-m%5 D(n%=m)-(m%=5)10
4、以下能正确定义整型变量x、y和z并为其赋初值5的语句是 ( C ) 。Aint x=y=z=5; Bint x,y,z=5;Cint x=5,y=5,z=5; Dx=5,y=5,z=5; 11若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|10的是 ( C ) 。Aabs(x-y)-10&x-y10C(x-y)10 D(x-y)*(x-y)10012. 设 int a=12,则执行完语句 a+=a-=a*a后,a的值是 ( D ) 。A 552 B 264 C 144 D -26413 以下叙述不正确的是 ( D )A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一
5、个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面14 下关于运算符优先顺序的描述中正确的是 ( C )。A)关系运算符 算术运算符 赋值运算符 逻辑与运算符B)逻辑 运算符 关系运算符 算术运算符 赋值运算符C)赋值运算符 逻辑与运算符 关系运算符 算术运算符D)算术运算符 关系运算符 赋值运算符=1) & (x=200) & (x=1) | (x=200) | (x=1) & (x=200) & (x=1) | (x=200) | (x=210)24设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是 () A. 0 B. 1 C. 2
6、 D. 325在if(x)语句中的x与下面条件表达式等价的是:()A) x!=0 B) x=1 C) x!=1 D) x=026、已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句ch1=A+6-3;后,ch1中的值为() A、D B、E C、一个不确定的值 D、C 27. 已知x=3、y=2,则表达式 x*=y+8的值为 ( C )A)3 B)2 C)30 D)1028. 设x为int型变量,则执行以下语句后,x的值为 ( B )。x=10;x+=x- =x-x;A)10 B)20 C)40 D)3029 若有以下类型说明语句:char a; int b; float c
7、; double d; 则表达式a*b+d-c的结果类型为 ( D ) Afloat Bchar Cint Ddouble30 若二维数组a有m列,则在aij前的元素个数为( B )A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+131 对for(表达式1;表达式3)可理解为( B ) A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3)C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)32 以下描述不正确的是 ( C )。A使用while和do-while循环时,循环变量初始化的操作应在循环体语句之前完成Bwhile
8、循环是先判断表达式,后执行循环语句Cdo-while 和for循环均是先执行循环语句,后判断表达式Dfor、while 和do-while循环中的循环体均可以由空语句构成33.下列程序段的运行结果是 ( C )。int n=0; while(n+c&b=c B)a|b+c&b-c C)!(ab)&!c|1 D)!(a+b)+c-1&b+c/235. 有以下程序:#include void main ( )int a=1,b=2,m=0,n=0,k;k=(n=ba)|(m=ab);printf (%d,%dn,k,m);程序运行后的输出结果是 ( C )。A)0,0 B)0,1 C)1,0 D)
9、1,136、以下能正确进行字符串赋值操作的是 ( D ) A、char s5=ABCDE; B、char s5=A, B, C, D, E; C、char *s; *s=ABCDE; D、char *s=ABCDE; 37 下面程序的运行结果是 () #include #include main() char *s1=AbDeG; char *s2=AbdEg; s1+=2;s2+=2; printf(%d,strcmp(s1,s2); A) 正数 B) 负数 C) 零 D) 不确定的值3 若有定义:int a23,则对a数组的第i行j列元素地址的正确引用为 (A ) A) *(ai+j) B
10、) (a+i) C) *(a+j) D) ai+j 以下能对二维数组y进行初始化的语句是()A、static int y2 =1,0,1, 5,2,3;B、static int y 3=1,2,3, 4,5,6;C、static int y24=1,2,3, 4,5 , 6;D、static int y 3=1,0,1,0, , 1,1;40 以下printf语句的输出结果是() printf(%dn, strlen(school); A、7 B、6 C、存在语法错误 D、不定值41 不能把字符串:Hello!赋给数组b的语句是( B)。A. char b10=H,e,l,l,o,!; B.
11、char b10; b=Hello!;C. char b10; strcpy(b,Hello!); D. char b10=Hello!;42 .设有定义:int a10,*p=a+6,*q=a;,则下列运算哪种是错误的 ( C ) A p-q B p+3 C p+q D pq43. 下列描述中不正确的是()A)字符型数组中可以存放字符串 B)可以对字符型数组进行整体输入、输出 C)可以对整型数组进行整体输入、输出 D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值44 以下对指针变量的操作中,不正确的是(D) A、int a, *p, *q; p=q=&a; B、int a=6
12、, *p, *q=&a; p=q; C、int a=b=6, *p; p=&a; b=*p; D、int a, *p, *q; q=&a; p=*q;45. 给出以下定义char x =abcdefg;char y =a,b,c,d,e,f,g;则正确的叙述为 ( C ) 。A)数组x和数组y等价B)数组x和数组y的长度相同C)数组x的长度大于数组y的长度D)数组x的长度小于数组y的长度46、设变量y为float类型,x为int类型,则以下能实现将y中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是 ( B )A、y=(y*100+0.5)/100.0 B、x=y*100+0.5,y=
13、x/100.0C、y=y*100+0.5/100.0 D、y=(y/100+0.5)*100.047 判断char型变量c1是否为大写字母的正确表达式是 ( C )A、A=c1=A)&(c1=A)&(c1=Z) D、(A=c1)48若a为已知整型变量,则对指针变量p的正确说明和初始化为 ( B ) 。Aint *p=a; Bint *p=&a; Cint *p=*a; Dint &p=&a;49 下列条件语句中,功能与其它语句不同的是 ( D ) 。Aif(a) printf(“%dn”,x);else printf(“%dn”,y);Bif(a= =0) printf(“%dn”,y);el
14、se printf(“%dn”,x);Cif(a!=0) printf(“%dn”,x);else printf(“%dn”,y);Dif(a=0) printf(“%dn”,x);else printf(“%dn”,y);50. 若有语句:char *line5;,以下叙述中正确的是 ( A )。 A)定义line是一个指针数组,每个数组元素是一个基类型为char的指针变量 B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义line是一个指针数组,语句中的*号称为间址运算符 D)定义line是一个指向字符型函数的指针 第二部分:中等难度题目(24个题目,从中选择
15、8个,每题1.5分 共 12分)1 设有声明语句:int a=1,b=0;则执行以下语句后输出 : (B)switch (a)case 1: switch (b) case 0: printf(*0*);break; case 1: printf(*1*);break; case 2: printf(*2*);break;A)*0* B)*0*2* C)*0*1*2* D)有语法错误2 若有如下程序段,其中s,a,b,c均已定义为整型变量,且a、c均已赋值s=a; for(b=1;b=c;b+) s=s+1;则与上述程序段功能等价的赋值语句是 ( B )。As=a+b; Bs=a+c; Cs=
16、s+c; Ds=b+c; 3 . 若有程序段:for (m=1;m=100;m+) scanf(%d,&y); if(y0) continue; printf(%3d,m);正确的描述是( D )。A 当y=0时什么也不输出C printf函数永远也不执行 D 最多允许输出100个非负整数 4. 若有程序段如下:a=b=c=0;x=35;if(!a)x-;else if(b);if(c)x=3;else x=4; 执行后,变量x的值是 ( B )A34 B4 C35 D3 5. 有以下程序:#include void main( )int i=0,s=0;for(; ;)if(i=3|i=5)
17、continue;if(i=6) break;i+; s+=i;printf(%dn,s);程序运行后的输出结果是( D )。A)10 B)13 C)21 D)程序进入死循环6 下面程序段是输出两个字符串中对应位置相等的字符,横线处应该是( A )char x=”programming”;char y=”Fortran”;int i=0;while(xi!=0 & yi!=0)if(xi=yi) printf(“%c”, );else i+;A) xi+ B) y+i C) xi D) yi7. 阅读以下程序:#include void main()int x;scanf (%d,&x);if
18、 (x-5) printf(%d,x);else printf(%d,x+);程序执行后,如果从键盘上输入5,则输出结果是 ( B )A)3 B)4 C)5 D)6 8 int fun(char *a,char *b)while(*a!=0)&(*b!=0)&(*a=*b)a+;b+; return(*a-*b);该函数的功能是_D_。A)计算a和b所指字符串的长度之差B)将b所指字符串连接到a所指字符串中C)将b所指字符串连接到a所指字符串后面D)比较a和b所指字符串的大小9. 有如下程序段:char str14=I am ;strcat(str, sad !);scanf(%s, str)
19、;printf(%s, str);当输入为happy!时,输出的结果是( B)。(A)I am sad! (B)happy! (C)I am happy! (D)happy!ad!10. 以下程序的输出结果是 ( C )。#include #include void main( )char b30;strcpy (&b0,CH);strcpy (&b1,DEF);strcpy (&b2,ABC);printf (%sn,b); A)CHDEF B)DEFABC C)CDABC D)CHABC 11. 下面程序的输出结果为( A )。#include void main( )int a3,i,j
20、,k=2;for(i=0;i3;i+)ai=0;for(i=0;ik;i+)for(j=0;jk;j+)aj=i*j;printf(%dn,a2);A)0 B)1 C)2 D)312. 以下程序:#include void main( )int aa33=2,4,6, i,*p=&aa00;for(i=0;i2;i+)if(i =0) aaii+1=*p+1;else +p;printf(%d,* p);printf(n);其输出结果是 ( A )A)23 B)26 C)33 D)3613. 下面程序的输出结果是( B )。#include void main( )int i,j,k;char
21、 str5;for(i=0;i5;i+)stri=A;k=4;for(i=0;ik;i+)for(j=0;jk;j+)strj=stri+32;printf(%cn,strk);A)a B)A C)B D)不确定的值 14. 下列程序的输出结果为 ( B ) 。#include void main()int k=0,i,s =1,-9,7,2,-10,3;for (i=0;isk) k=i;printf(n%dn,k);(A)4 (B)2 (C)3 (D)1 15. 以下程序的输出结果是 ( C )。#include void main( )char a10=1,2,3,4,5,6,7,8,9
22、,0,*p;int i; i=8;p=a+i;printf (%sn,p-3);A)6 B)6 C)6789 D)78916有以下程序#includevoid main()int a10=1,2,3,4,5,6,7,8,9,10, *p=&a3, *q=p+2;printf(%dn, *p + *q);程序运行后的输出结果是 ( B )。 A)16 B)10 C)8 D)617有以下程序#includevoid main()int a33,*p,i;p=&a00;for(i=0;i9;i+) pi=i;for(i=0;i3;i+) printf(%d,a1i);程序运行后的输出结果是 ( D
23、)A)012 B)123 C)234 D)345 18. 有以下程序#includevoid main()int p8=11,12,13,14,15,16,17,18,i=0,j=0;while(i+=0;i-) sum(&aai);printf(%dn,aa0); 执行后的输出结果是 ( A )A. 4B. 3C. 2 D. 120. 以下程序运行后,输出结果是 ( A ) 。#include int d=1;void fun (int p)int d=5;d+=p+;printf(%d,d);void main( )int a=3;fun(a);d+=a+;printf(%dn,d);A
24、84 B)99 C)95 D)44第三部分:较难题目(5 个题目,从中选择4个,每题2分)1. 有以下程序#include void main()int i,test ,p17,head;for(i=0;i16;i+)pi=i+1;p16=0;test=0;while(test!=ptest)for(i=1;i3;i+)head=test;test=ptest;phead=ptest;test=phead;printf(n%5d,test);程序执行后的输出结果是_C_。A)1,2,3B)2,3,4C)10D)42有以下程序#include void main()char ch25=693,8
25、25,*p2;int i,k,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i=0&pij=9;j+=2)s=10*s+pij-0;printf(%dn,s);程序执行后的输出结果是_A_。A)6385 B)22 C)33 D)6938253.有以下程序#include void f (int *x,int *y)int t;t=*x;*x=*y;*y=t;void main( )int a8=1,2,3,4,5,6,7,8,i,*p,*q;p=a;q=&a7;while(pq)f (p,q); p+;q-;for (i=0;i8;i+)printf(%d,ai);程序
26、运行后的输出结果是 D 。(A)8,2,3,4,5,6,7,1, (B)5,6,7,8,1,2,3,4, (C)1,2,3,4,5,6,7,8 (D)8,7,6,5,4,3,2,1,4. 以下程序的输出结果是 。#include int x=3;void incre( ) static int x=1;x*=x+1;printf(%d ,x);void main( )int i;for (i=1;ix;i+)incre( );A)3 3 B)2 2 C)2 6 D)2 55以下程序#include #include void f(char *s, char *t)char k;k=*s; *s
27、=*t; *t=k;s+; t-;if (*s) f(s, t);void main()char str10=abcdefg, *p;p=str+strlen(str)/2+1;f(p, p-2);printf(%sn,str);程序运行后的输出结果是_B_。 A)abcdefg B)gfedcba C)gbcdefa D)abedcfg第二部分:填空题(共5题,每题2分,共10分)A卷部分1、如 float x=4.3; int a; a=4*x+(int)x; 则a的值为_21_。 2、下面程序的输出结果为 _CDEFEF_char b=CDEF;main() char *chp ; fo
28、r (chp=b;*chp ;chp+=2) printf(%s,chp); printf(n); 3、程序 char *a=I Love China!; a+=7; printf(%s,a); 的输出结果为_China! _。4、若有以下的说明和语句,则在执行for语句后,*(*(pt+2)+3)表示的数组元素是_t23_:int t33, *pt3, k;for (k=0;k3;k+) ptk=&tk0;5.如int *p3, a6=1,2,3,4,5,6,i; for (i=0;i3;i+) pi=&a2*i; i= *(p1+1); 则i的值为_4_。B卷部分1、如 float x=5
29、.3; int a; a=5*x+(int)x; 则a的值为_31_。2、下面程序的输出结果为 _EFDGG_char b=EFDG;main() char *chp ; for (chp=b;*chp ;chp+=3) printf(%s,chp); printf(n); 3、程序 char *a=I Love China!; a+=9; printf(%s,a); 的输出结果为ina!。4若有以下的说明和语句,则在执行for语句后,*(*(pt+l)+2)表示的数组元素是_ _tl2_:int t33, *pt3, k;for (k=0;k3;k+) ptk=&tk0;5.如int *p3, a6=1,2,3,4,5,6,i; for (i=0;i3;i+) pi=&a2*i; i=*(p1+1); 则i的值为_4_