《C语言题集》word版_第1页
《C语言题集》word版_第2页
《C语言题集》word版_第3页
《C语言题集》word版_第4页
《C语言题集》word版_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目 录 HYPERLINK l _第三章_数据类型 第三章 数据类型 HYPERLINK l _第四章_顺序程序设计 第四章 顺序程序设计 HYPERLINK l _第五章_选择结构程序设计 第五章 选择结构程序设计 HYPERLINK l _第六章_循环控制 第六章 循环控制 HYPERLINK l _第七章_数_组 第七章 数 组 HYPERLINK l _第八章_函_数 第八章 函 数 HYPERLINK l _第九章_预处理命令 第九章 预处理命令 HYPERLINK l _第十章_指_针 第十章 指 针 HYPERLINK l _第十一章_结构体与共用体 第十一章 结构体与共用体 H

2、YPERLINK l _第十二章_位运算 第十二章 位运算 HYPERLINK l _第十三章_文_件 第十三章 文 件第三章 数据类型一、单选题下列选项中,合法的C语言关键字是( ) VAR char integer default单选d下列语句中符合C语言语法的赋值语句是( ) a=7+b+c=a+7; a=7+b+=a+7;a=7+b,b+,a+7; a=5+b,c=a+5;单选d下面程序的输出是 main() int x=023; printf(%dn,-x); 17182324单选b下面程序的输出是( ) main( ) int x=023;printf(%dn,-x);171823

3、24单选b若 int a=3; int b=4; int d; d=(a=(b,5),a+b),90; 则d的值是( )90379单选d一个字长的二进制位数是( )81632 随着计算机系统的不同而不同单选d已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是 #include main() char c1=A, c2=Y;printf(%d,%dn,c1,c2); 因输出格式不合法,输出错误信息 65,90 A,Y 65,Y 65,89单选d已知字母A的ASCII码为十进制的65,下面程序的输出是()main( ) char ch1,ch2; ch1=A+5-2; ch2=A+

4、6-2; printf(%d,%cn,ch1,ch2); 68,E B,C C,D 不确定的值单选a以下程序的输出结果是 #include #include main( ) int a=1,b=4,c=2; float x=10.5 , y=4.0 , z; z=(a+b)/c+sqrt(double)y)*1.2/c+x; pritnf(%.1fn,z); 14.00000015.413.714.9单选c以下程序的输出结果是 #include main( ) int i=010 , j = 10; printf(%d,%dn,+i , j-); 11,10 9,10 010,9 10,9 单

5、选b以下程序的输出结果是( ) main( ) int a=1; a+=(a=8); printf(%dn,a);16189单选a以下程序的输出结果是( ) f(int b ,int m,int n) int i,s=0; for(i=m;in;i=i+2) s=s+bi; return s; main( ) int x,a =1,2,3,4,5,6,7,8,9; x=f(a,3,7); printf(%dn,x); 1018815单选a以下程序的输出结果是()#include#includemain( ) int a=1,b=4,c=2; float x=10.6,y=4.0,z; z=(a

6、+b)/c+sqrt(double)y)*1.2/c+x; printf(%.1fn,z);1415.413.813.9单选c以下说法下确的是( ) C语言程序总是从第一个的函数开始执行 在C语言程序中,要调用的函数必须在main( )函数中定义 C语言程序总是从main( )函数开始执行 C语言程序中的main( )函数必须放在程序的开始部分单选c以下选项中属于C语言的数据类型的( ) 复数型 逻辑型 双精度型 集合型单选c在C语言中,不正确的INT类型的常数是( )32768037 0XAF单选a在C语言中,要求运算数必须是整型的运算符是 % / !单选a在C语言中,属于单目运算符的是(

7、) / 5) printf(%dn,x); else printf(%dn,x-); 7654单选b设有如下定义: int x=10,y=3,z; 则语句 printf(%dn,z=(x%y,x/y); 的输出结果是 1043单选d已知字母A的ASCII码为十进制的65,下面程序的输出是 main( ) char ch1,ch2; ch1=A+5-3; ch2=A+6-3; printf(%d,%cn,ch1,ch2); 67,D B,C C,D 不确定的值单选a以下程序的输出结果是 # include main() printf(%dn,NULL); 不确定的 0-11单选bc语言是()语言

8、 高级语言 中级语言 机器语言 汇编语言单选A二、多选题下面表示正确的是( ) c语言中的逗号是一种运算符在C语言中,一行可以有多个语句C中的变量不区分大小写 c中的关键字可以做为变量名多选a, bC语言中的标志符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母可以是下划线必须为字母或下划线可以是字母、数字和下划线中任一种字符多选b, d结构化程序设计所规定的三种基本控制结构是( )顺序选择循环处理多选a, b, c设x,y均为float型变量,则以下合法的赋值语句是+x y=(x%2)/10 x*=y+8x=y=0多选a, c, d下列为c语言的关键字是( )ifstructun

9、iontypedef多选a, b, c, d下列选项中,合法的C语言关键字是VARcharintegerdefault多选b, d下面那些为合法整型常量( )1600 xe06680 x多选a, b下面四个选项中合法的字符常量是( )i+(+i)i=i+1 i+=1多选a, b, c, d以下表达式中正确的是( )c=c+1 a+=1 xy ?x:ya-+=3多选a, b, c三、判断题c语言是低级语言对错判断bC语言中,整形常数表示的方法有3种对错判断a表达式a=a+b可以写成a+=b对错判断a在C语言中,变量不区分大小写对错判断b在运算时,当出现溢出时,系统直接报错对错判断b第四章 顺序程

10、序设计一、单选题若定义 int m=7,n=12; 则能得到值为3的表达式是( ) n%=(m%=5) n%=(m-m%5) n%=m-m%5 (n%=m)-(m%=5)单选d若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是 122.02.5单选c若有以下定义和语句 char c1=b,c2=e; printf(%d,%cn,c2-c1,c2-a+A); 则输出结果是 2,M 3,E 2,E 输出项与对应的格式控制不一致,输出结果不确定单选b若有以下定义和语句: int u=010,v=0 x10,w=10; printf(%d,%d,%dn,u,v,w); 则输出结果

11、是 8,16,10 10,10,10 8,8,10 8,10,10单选a若执行下面的程序时从键盘上输入12,则输出是( ) main( ) int x; scanf(%d,&x); if(x+5) printf(%dn,x); else printf(%dn,x-);13141516单选a设 int a=12,则执行完语句 a+=a-=a*a后,a的值是 552 264144264单选d以下选项中,与k=n+完全等价的表达式是k=n,n=n1n=n+1,k=nk=+nk+=-n+1单选a设有语句char a=72;则变量a 包含1个字符 包含2个字符 包含3个字符 说明不合法单选a设有语句in

12、t a=3;则执行了语句a+=a-=a*a;后,变量a的值是 3 09-12单选d十进制数1385转换成十六进制数为( )568569 D85 D55单选b下面程序的输出是 main() int a=-1, b=4,k; k=(a+=0)&(!(b-=0); printf(%d %d %dn,k,a,b); 0 0 3 0 1 2 1 0 3 1 1 2单选c若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值( ) -12431单选A以下程序的输出结果是 #include main() int a=2,c=5; printf(a=%d,b=%dn,a,c); a=%2,b

13、=%5 a=2,b=5 a=%d,b=%da=%d,b=%d单选d在C语言中,如果下面的变量都是int类型,则输出的结果是 sum=pad=5; pad=sum+ ,pad+ , +pad;printf(%dn,pad); 6 54单选a设int i=2,j=1,k=3,则表达式i&(i+j)&k|i+j的值是0123单选B下面程序的输出是 main() int x=10,y=3; printf(%dn,y=x/y);013 不确定的值单选c请选出合法的C语言赋值语句a=b=58i+;a=58,b=58k=int(a+b);单选b若有定义:int a=16,b=10,c;,执行语句c=a/b+

14、0.4后,c的值为()1.4120单选b二、多选题putchar函数可以向终端输出一个整型变量表达式实型变量值字符字符型变量值多选c, d若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。则以下能满足要求的表达式是:A%2= =1!(A%2=0)!(A%2)A%2多选a, b, d三、判断题以下程序的输出结果是 12 main( ) int a=3; printf(%dn,(a+a-=a*a) ); 对错判断b以下程序运行后的输出结果是 3e9,1753void main( ) int number=1001; printf(%x,%o,number,number

15、);对错判断b假定x和y为double型,则表达式x=2,y=x+3/2的值是 3对错判断b设x、y均为整型变量,且x=10 y=3,则以下语句的输出结果是 10,2 printf(%d,%dn,x-,-y); 对错判断a以下程序的输出结果是16 main( ) int a=0; a+=(a=8); printf(%dn,a); 对错判断a以下程序的输出结果是261 main( ) int a=177; printf(%on,a);对错判断a以下程序输出的结果是1#include void main() int a=5,b=4,c=3,d;d=(abc);printf(%dn,d); 对错判断

16、b以下程序运行后的输出结果是 2,2 void main( ) int x,y,z; x=1; y=1; z=1; x=x|y&z; printf(%d,%dn,x,x&!y|z);对错判断b选择结构程序设计一、单选题若要求在if后一对圆括号表示a不等于0的关系,则能正确表示这一关系的表达式( ) a0 !a a=0 a单选d若执行下面的程序时从键盘上输入3和4,则输出是 main( ) int a,b,s; scanf(%d %d,&a,&b); s=a; if(ab)s=b; s=s*s; printf(%dn,s);14 161820单选b若执行下面的程序是从键盘上输入5和6,则输出是(

17、 )main() int a,b,s; scanf(%d%d,&a,&b); s=a; if(ab) s=b; s=s*s;printf(%dn,s);14366332单选b若执行以下程序时键盘上输入9,则输出结果是( )。main( ) int n; scanf(%d,&n); if(n+10) printf(%dn,n);else printf(%dn,n-);111098单选b若w=1,x=2,y=3,z=4,则条件表达式wx?w:yz?y:z的值是( )4321单选d下面程序的输出是 main( ) int x=100, a=10, b=20, ok1=5, ok2=0; if(a=1

18、0或a=10 or a=0|a=10 & a=10 | a=0单选d以下程序的输出结果是 #include main() int a ,b,d=241; a=d/100%9; b=(-1)&(-1); printf(%d,%dn,a,b); 6,12,1 6,0 2,0单选b以下程序输出的结果是( ) main( ) int a=5,b=4,c=3,d; d=(abc); printf(%dn,d); 5130单选d以下的程序的输出的结果是( ) main() int a=58; scanf(%d,&a); if(a50) printf(%d,a); if(a40) printf(%,a);

19、if(a30) printf(%d,a); 58 58 58 58 58 58585858单选c两次运行下面的程序,如果从键盘上分别输入8和9,则输出结果是()main( ) int x; scanf(%d,&x); if(x-6) printf(%d,x); else printf(%dn,x-); 7和8 8和9 9和10 10和11单选a有如下程序 main() int a=2,b=-1,c=2; if(ab) if(b0) c=0; else c+; printf(%dn,c); 0123单选c语句:printf(“%d”,(a=2)&(b=-2);的输出结果是( ) 无输出 结果不确

20、定-11单选d若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式ab?a:c0; y-) if(y%3=0) printf(%d, -y);continue; 741852963875421单选b若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i0;i-) for(j=0;j0;y-) if(y%3=0) printf(%d,-y);continue; 416352875421单选c下面的程序 main() int x=3; do printf(%dn,x-=2); while(!(-x); 输出的是1 输出的是1和-2 输出的是3和0 是

21、死循环单选b以下程序的输出结果是 #include main() int i; for( i=1;i=5;i + + ) if ( i%2 ) printf(*); else continue; printf(#); printf($n); *#*#*#$ #*#*#*$ *#*#$ #*#*$单选a以下程序的输出结果是( ) main( ) int s,i; for(s=0,i=1;i3;i+,s+=i); printf(%dn,s); 1356单选c以下的for循环是 for(x=0,y=0; (y!=123)&(x4); x + + ); 是无限循环 循环次数不定 执行4次 执行3次单选

22、c有如下的程序#include int a=10,c=99; while(a-100) a+;c+;printf(%d,%d,a,c); 则输出的结果是( )10102 10,99 9,100 9,99单选D9有下列程序段( )。 int k=0 while(k=1) k+; while循环执行的次数是 无数次 有语法错,不能执行 一次也不执行 执行一次单选a在C语言中下面的叙述正确的是不能使用do-while语句构成的循环do-while语句构成的循环必须用break语句才能退出 do-while语句构成的循环,当while语句中的表达式值为非零时结束循环do-while语句构成的循环,当w

23、hile语句中的表达式值为零时结束循环单选d执行下面程序片段的结果是 int x=23; do printf(%2d,x-); while(!x); 打印出321 打印出23 不打印任何内容 陷入死循环单选b执行下面的程序后,a的值为( )main() int a,b; for(a=1,b=1;a=20) break; if(b%8=1) b+=3;continue; b-=5; printf(%d,a);100101103105单选b有以下程序main( )int p8=11,12,13,14,15,16,17,18,i=0,j=0;while(i+7) if(pi%2) j+=pi;pri

24、ntf(%dn,j);程序运行后的输出结果是42455660单选B语句while(!E);中的条件!E等价于 E = 0 E!=1 E!=0 E单选a以下程序的输出结果是( ) #include void main() int a=0,i; for(i=1;i5;i+) switch(i) case 0: case 3: a+=3; case 1: case 2:a+=3; default:a+=5;printf(%d,a);32131020单选a语言中() 能使用do-while语句构成的循环 do-while语句构成的循环必须用break语句才能退出 do-while语句构成的循环,当wh

25、ile语句中的表达式为非零时结束循环 do-while语句构成的循环,当while语句中的表达式值小于零时结束循环单选a#include void main( ) char ch25=6937,8254,*p2; int i,j,s=0; for(i=0;i2;i+) pi=chi; for(i=0;i0;j+=2) s=10*s+pij-0; printf(%dn,s);69825638256385693825单选c二、多选题t为int类型,进入下面的循环之前,t的值为0 while(t=1) 则以下叙述中正确的是( )循环控制表达式的值为0循环控制表达式的值为1循环控制表达式合法以上说法都

26、不对多选b, c#includevoid main()int x=3,y;do y=x-; if(!y) printf(#);contine; printf(#); while(1=x=2);将输出#将输出#*是死循环控制表达式合法多选A, D设有以下程序段 int x=0,s=0;while(!x!=0) s+=+x;printf(%d,s);运行程序段后输出0 运行程序段后输出1程序段中的控制表达式是合法的程序段执行无限次多选b, c下面程序段描述正确的是x=3;do y=x-; if(!y)printf(*);continue; printf(#); while(1=x=2);将输出#将

27、输出#*是死循环控制表达式合法多选c, d下面有关for循环的正确描述是:for循环只能用于循环次数已经确立的情况for循环先执行循环体语句后判断表达式在for循环中能用break语句跳出循环体for循环的循环体语句中可以包含多条语句,但必须用花括号括起来多选c, d有以下程序段 int k=0; while(k=1)k+; 下面描述正确的是死循环没有语法错,能执行一次也不执行执行1次多选a, b有以下程序段:( )int k=0;while(k=1) k+;死循环 没有语法错,能执行一次也执行执行1次多选a, b三、判断题break是结束本次循环,而continue是结束所有的循环对错判断b

28、若执行下面的程序是从键盘上输入5,则输出是 :m isnt prime void main() long m; printf(please input a number:n); scanf(%ld,&m); double sqrtm=sqrt(m); for(int i=2;i=sqrtm;i+) if(m%i=0) break; if(sqrtmi) printf(m is prime.n); else printf(m is not prime.n);对错判断b以下程序的输出结果是6 main() int s,i; for(s=0,i=1;i2); printf(%dn,j); 对错判断a

29、在C语言中,for循环的表达式一是必须要的对错判断b第七章 数 组一、单选题若有定义:int aa8;。则以下表达式中不能代表数组元aa1的地址的是( ) &aa0+1 &aa1 &aa0+ aa+1 单选d若有定义和语句: char s10;s=abcd;printf(%sn,s); 则结果是(以下u代表空格) 输出abcd 输出a输出abcduuuuu编译不通过单选d下列描述中不正确的是( ) 字符型数组中可以存放字符串 可以对字符型数组进行整体输入、输出 可以对整型数组进行整体输入、输出 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值单选c下述对C语言字符数组的描术中错误的

30、是( ) 字符数组可以存放字符串 字符数组中的字符串可以整体输入、输出 可以在赋值语句通过赋值运算符“”对字符数组整体赋值 不可以用关系运算符对字符数组中的字符串进行比较单选c以下程序的输出的结果是( ) main( ) char cf35=AAAA,BBB,CC; printf(%sn,cf1); AAAA BBB BBBCC CC单选b以下程序的输出结果是 #include #include main( ) char str12=s,t,r,i,n,g; printf(%dn,strlen(str); 671112单选a合法的数组定义是 int a =string; int a5=0,1,

31、2,3,4,5; char s=string; char a =0,1,2,3,4,5;单选d执行下面程序: main( ) int i,j=3,a=1,2,3,4,5,6,7,8,9,0; for(i=0;i10;i+)ai=9-i; printf(%d,%d,a4,a5); 则输出的结果是( ) 4,5 3,4 6,5 5,4单选d有定义语句:int b;char c10; ,则正确的输入语句是scanf(%d%s,&b,&c);scanf(%d%s,&b,c);scanf(%d%s,b,c);scanf(%d%s,b,&c);单选b下述对C语言字符数组的描术中错误的是 字符数组可以存放字

32、符串 字符数组中的字符串可以整体输入、输出 可以在赋值语句中通过赋值运算符=对字符数组整体赋值 不可以用关系运算符对字符数组中的字符串进行比较单选c以下程序段的输出结果是( ) char s =141141abct; printf(%dn,strlen(s);9121314单选a二、多选题对于一个数组它有什么特性( )简单性 内存的连续集合性元素的同类型多选b, c, d若想通过以下输入语句使a中存放字符串1234,b中存放字符5,则输入数据的形式正确的是( )char a10,b;scanf(a=%s b=c%c.a.&b);a=1234 b=5a=1234b=5a=1234,b=5a=12

33、34 .b=5多选a, b下面程序段的运行结果是 char c =tv0willn;printf(%d,strlen(c);1439字符串中没有非法字符,输出值确定多选b, d下面描述正确的是两个字符串所包含的字符个数相同时,才能比较字符串字符个数多的字符串比字符个数少的字符串大字符串Stop 与stop不相等字符串that小于字符串the多选c, d以下数组定义正确的是( )int a 3=0int b2 =1,2,3,4,5,6int c105=1,2,3int d23=1,2,3,4多选a, c, d以下选项能正确赋值的是( )char a6=a,b,c,d,e;char b6=”a0”

34、;char c10=”abcde”;char d6;d=”abcdef”;多选a, b, c三、判断题对于二维数组a23,则a1表示是第二行的首地址对错判断a下列程序段的输出结果是hello main( ) char b =Hello,you; b5=0; printf(%s n, b ); 对错判断a下列程序执行后输出的结果是 8 5 int d=1; fun (int q) int d=5; d +=q+; printf(%d,d); main( ) int a=3; fun(a);d+=a+; printf(%dn,d); 对错判断b阅读下列程序: void main( ) int n3

35、,i,j,k;for(i=0;i3;i+) ni=0; k=2; for(i=0;ik;i+) for(j=0;jk;j+) nj=ni+1; printf(%dn,n1);上述程序运行后输出结果是 3对错判断a在定义数组变量时,可以不指定数组的长度对错判断b第八章 函 数一、单选题以下程序的输出结果是( ) int main( ) int a=20,b; while(b=a+3) a-=6; if(a%2=0)a-=2; else if(a0)fun(k-1); printf(%d,k); 54321 01234512345543210单选b以下函数调用语句中含有实参个数是 func(exp

36、1,exp2),(exp3,exp4,exp5); 1245单选b在c语言中,函数的隐含存储类别是( ) auto static extern 无存储类别单选c在C语言中,形参的缺省存储类型是( ) auto register static extern单选a执行下面的程序 main() static char a410=1234,abcd,xyz,ijkm; int i=3; char (*p)10=a; printf(Output string:n); for(p=a;pa+4;p+,i-)printf(%cn,*(*p+i); 其输出的结果是( )3,c,z,k1,b,z,m4,c,y,

37、i i,y,c,4单选c当调用函数时,实参是一个数组名,则向函数传递的是( ) 数组的长度 数组的首地址 数组每一个元素的地址数组每个元素中的值单选b二、多选题不合法的main函数命令行参数表示形式是 main(int a,char *c ) main(int arc,char *arv)main(int argc,char *argv)main(char argv,char *argc )多选c, d合法的main函数命令行参数表示形式是( )main(int a,char (*c )main(int arc,char *arv)main(int argc,char *argc )main(

38、char argv,char *argc )多选c, d函数参数的传递方式有( )实名传递分支传递引用传递值传递多选c, d函数的调用方式有( ) 函数语句函数表达式函数参数函数原型多选a, b, c以下不正确的说法是在不同函数中可以使用相同名字的变量形式参数是全局变量在函数内定义的变量只在本函数范围内有效在函数内的复合语句中定义的变量在本函数范围内有效多选b, d以下不正确的叙述是在C程序中,每行只能写一条语句若a是实型变量,C程序中允许赋值A=10,因此实型变量中允许存放整型数在C程序中,无论是整数还是实数,都能被准确无误地表示在C程序中,%是只能用于整数运算的运算符多选a, b, c以下

39、程序的输出结果是 fun(int x, int y, int z) z=x*x+y*y; main() int a=31; fun(5,2,a); printf(%d,a); 02931有确定值多选c, d以下函数值的类型是 fun ( float x ) float y; y= 3*x-4; return y; int 确定void float多选a, b以下所列函数首部中,不正确的是( )void play(var:integer,var b:integer)void play(int a,b)void play(int a,int b)Sub play(a as integer,b as

40、 integer)多选a, b, d以下只有在使用时才为该类型变量分配内存的存储类说明是autoregisterstaticextern多选a, b以下只有在使用时才为该类型变量分配内存的存储类说明是( ) autostaticregisterextern多选a, c在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是地址传递单向值传递由实参传给形参,不再由形参传回实参传递方式由用户指定多选b, c三、判断题 C语言中,函数的隐含存储类别是 extern对错判断ac程序是由c文件构成,而c文件是由函数构成对错判断ac语言中,每个函数都必须要有一个且只有一个main函数对错判断b变

41、量是在内存中值能改变的一段区域对错判断a对于开辟一个静态变量,我们没有必要对它进行初始化对错判断b对于任何函数,它都有一个返回值对错判断a若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b);在此函数调用语句中实参的个数是 4对错判断b下列程序运行的结果是_1 2 4 6 8 16_ void main( ) static int a =1,2,4,8,16; for(int i=0;i(sizeof(a)/sizeof(int);i+) printf(%dn,ai);对错判断b以下程序输出的最后的一个值是 120 int pp(int n) static int

42、 f=1; f=f*n;return f; main() int i; for(i=1;i=5;i+) printf(%dn,pp(i);对错判断a以下程序输出的最后一个值是115 int ff(int n) static int f=l; f=f*n; return f; main() int i; for(i=1;i=5;i+ )printf(%dn,ff(i); 对错判断b第九章 预处理命令一、单选题以下说法中正确的是( ) #define和#printf都是C语句 #define是C语句,而printf不是printf是C语句,但#define不是 #define和printf都不是C

43、语句单选d以下程序的输出结果是 #define f(X) X*X main() int a=6,b=2,c; c=f(a)/f(b);printf(%dn,c);963618单选c以下for语句构成的循环执行了多少次? #include #define N 2 #define M N+1 #define NUM (M+1)*M/2 main() int i , n=0; for ( i=1;i=NUM;i + + ) n + + ; printf(%d,n); printf(n); 5689单选c二、多选题以下叙述下确的是( )可以把define和if定义为用户标识符可以把define定义为用

44、户标识符不能把if定义为用户标识符define和if都不能定义为用户标识符多选b, c以下有关宏替换的叙述不正确的是宏替换不占用运行时间宏名也有类型宏替换只是字符替换宏名必须用大写字母表示多选b, d第十章 指 针一、单选题若有定义和语句: int *pp,*p,a=10,b=20; pp=&p;p=&a;p=&b;printf(%d,%dn,*p,*pp); 则输出结果是 10,20 10,10 20,10 20,20单选d若有以下定义: char s20=programming,*ps=s;则不能代表字符o的表达式是 ps+2 s2 ps2ps+=2,*ps单选a若有以下定义和语句: in

45、t a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则不能表示a数组元素的表达式是 *p a10 *a ap-a单选b设有如下函数定义:int f(char *s) char *p=s; while(*p!=0) p+; return(p-s);如果在主程序中用下面的语句调用上述函数,则输出结果为( )printf(%dn,f(goodbey!);8954单选a设有如下和程序段()char str=Hello;char *str;ptr=str;执行上面的程序段后,*(ptr+5)的值为()0 0 不确定的值 0的地址单选b设有说明int(*ptr)m;其中的标识符ptr是 M个

46、指向整型变量的指针 指向M个整型变量的函数指针 一个指向具有M个整型元素的一维数组的指针 具有M个指针元素的一维指针数组,每个元素都只能指向整型量单选c下面程序的输出是 #include #include main() char *p1=abc,*p2=ABC,str50=xyz; strcpy(str+2,strcat(p1,p2); printf(%sn, str); xyzabcABC zabcABC yzabcABC xyabcABC单选d下面程序的输出是 main( ) int a10=1,2,3,4,5,6,7,8,9,10,*p=a; printf(%dn,*(p+2); 3 4

47、12单选a下面程序的输出是 int aa33=2,4,6; main() int i, *p=&aa00; for(i=0; i2;i+) if(i=0) aaii+1=*p+1; else +p; printf(%d,*p); 23 263336单选a下面程序的输出是( )#include#includemain( ) char *p1=abc,*p2=ABC,str50=abc; strcpy(str+2,strcat(p1,p2); printf(%sn,str); xyzabcABC zabcABC yzabcABC ababcABC单选d下面程序的输出是( )int aa33=2,4

48、,6;main() int I,*p=&aa00; for(i=0;i2;i+) if(i=0) aaii+1=*p+1; else +p; printf(%d,*p);23263336单选a下面程序的输出是() main( ) int a12=1,2,3,4,5,6,*p=a; printf(%dn,*(p+2);3412单选a下面函数的功能是 int funl(char *x) char *y=x; while(*y+);return(y-x-1); 求字符串的长度 比较两个字符串的大小将字符串x复制到字符串y 将字符串x连接到字符串y后面单选a下面函数的功能是( ) int count(

49、char *x) char *y=x; while(*y+); return (y-x-1); 求字符的长度 比较两个字符的大小 将字符串x复制到字符串y 将字符串x边接到字符串y后面单选a以下不能正确进行字符串赋初值的语句是( ) char str5=good! char str=good! char *str=good! char str5=g,o,o,d单选a以下程序调用fingmax函数返回数组中的最大值 findmax(int *a,int n) int *p ,*s; for(p=a,s=a;p-as *p*s apas p-ap-s单选b有如下程序 main() char s=A

50、BCD,*P; for(p=s+1;ps+4;p+) printf(%sn,p); A)ABCDBCDCDDB)ABCDC)BCDD)BCDCDD单选d有如下程序段 int *p,a=10,b=1 p=&a; a=*p+b;执行程序段后,a的值为( )121110 编译错误单选b有如下说明 int a10=1,2,3,4,5,6,7,8,9,10,*p=a;则数值为9的表达式是( )。 *p+9 *(p+8) *P+=9 P+8单选b执行下面程序:main ( ) int a =9,8,7,6,5,4,3,2,1,0,*p=a; printf(%d,*p+7); 其输出的结果是( )1637

51、a7的地址单选a执行下面的程序,其输出的结果是( ) void f(int a,int b,int *c,int *d) a=30;b=40; *c=a+b;*d=*d-a; main() int a=10,b=20,c=30,d=40; f(a,b,&c,&d); printf(%d,%d,%d,%dn,a,b,c,d); 10,20,30,40 20,30,40,50 10,30,70,10 10,20,70,10单选d执行下面的程序,输出的结果是( ) main() int i=0,k=1; char s80,*p=s; gets(p); for(;*p!=n;p+) if(*p= )i

52、=0; else if(i=0)k+;i+; printf(%dn,k); 10120 没有结果单选b执行下面的程序: main() int a34=0,1,2,3,4,5,6,7,8,9,10,11; int *p3,j; for(j=0;j3;j+)pj=&aj0; printf(%d%d,*(*(p+2)+1),*(*(p+1)+2); 其输出的结果是( )14694196单选d指针s所指字符串的长度为 char *s=NameAddressn; 19 1518 说明不合法单选d设有以下定义:int a33=1,2,3,4,5,6,7,8,9; int (*ptr)3=a,*p=a0;则

53、下列能够正确表示数组元素a12的表达式:*(*ptr+1)2)*(*p+5)(*ptr+1)+2*(*(a+1)+2)单选d以下程序的输出结果是 #include main() char *a=abcdefghi;int k;fun(a),puts(a); fun(char *s) int x,y;char c; for(x=0,y=strlen(s)-1;xy;x+,y-) c=sy;sy=sx;sx=c;Ihgfedcbaabcdeghhiabcdedcbaihgfefghi单选a若有以下定义和语句: char *s1=12345,*s2=1234; printf(%dn,strlen(s

54、trcpy(s1,s2); 则输出结果是 45910单选a二、多选题int i; int *p=&i那么i等于下面的哪些值( )*p*&i*&p&*i多选a, b若int i;声明一个指针变量p,现在对p赋值的真确格式是( )int *p=&i ;int *p; *p=i;int *p; p=i; int *p;p=&i;多选a, d若有说明语句 char a=It is mine; char *p=It is mine;则以下不正确的叙述是a+1表示的是字符t的地址p指向另外的字符串时,字符串的长度受限制p变量中存放的地址值可以改变a中只能存放10个字符多选b, d若有说明语句char a

55、=It is time;char *p=It is mine;则以下正确的叙述是( )a+1表示的是字符t的地址p指向另外的字符串中,字符串的长度受限制p变量中存放的地址值可以改变a中只能存放10个字符多选a, c设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部( )。要求行参名为b。main() double s1022; int n; fun(s); void fun(double b22)void fun(double b022)void fun(double (*b)22) void fun(double b)多选a, b, c三、判断题以下程序

56、的输出结果是efgh main() char *p=abcdefgh,*r; long *q; q=(long*)p; q+; r=(char*)q; printf(%sn,r); 对错判断a变量的指针就是指向该变量指针变量的值对错判断a下面程序的输出是 hgfedcba #include main() char*a=abcdefgh; fun(a);puts(a); fun (char * s) int x=0,y;char c; for(y=strlen(s)-1;xy;x+,y-) c=sx;sx=sy;sy=c; 对错判断a下面程序输出数组中的最大值,由s指针指向该元素 main( )

57、 int a10=6,7,2,9,1,10,5,8,4,3,*p,*s; for(p=a, s=a; p-a*s 。对错判断a以下程序运行后的输出结果是98 main() char s =9876,*p; for ( p=s ; ps+2 ; p+) printf(%sn, p);对错判断b执行以下程序后,y的值是 19 void main() int a=2,4,6,8,10; int y=1,x,*p; p=&a1; for(x=0;xa),*+p-b); 其输出结果是( )8030813071207020单选c根据下面的定义,能打印字母M的语句是( )struct person char

58、 name9;int age;struct person class10=john,17,paul,19, Mary,18,Adam,16; prinft(%cn,class3.Name); prinft(%cn,class3.Name1);prinft(%cn,class2.Name1); prinft(%cn,class3.Name0);单选d根据下面的定义,能打印出字母M的语句是 struct person char name9; int age; struct person class10=John,17,Paul,19,Mary,18,Adam,16; printf(%cn,clas

59、); printf(%cn,1);printf(%cn,1);printf(%cn,0);单选d sizeof(double)是 一种函数调用一个双精度型表达式 一个整型表达式 一个不合法的表达式单选csizeof(float)是() 一种函数调用 一个双精度型表达式 一个整型表达式 一个不合法的表达式单选c二、多选题设有以下说明语句 struct ex int x ; float y; char z ; example;则下面的叙述中不正确的是 struct是结构体类型的关键字 example是结构体类型名 x,y,z都是结构体成员名struct ex不是结构体类型多选b, d设有以下说明语句 struct ex int x;float y;char z; example;则下面的叙述不正确的是( )struct结构类型的关键字 example是结构体类型名x,y,z 都是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论