《二级C习题册.pdf》由会员分享,可在线阅读,更多相关《二级C习题册.pdf(86页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一部分:选 择 题(4 0分,2分/小题)第一章程序设计概述 第二章c语言概述1、下面关于c 语言的叙述中,正确的是()A.每行只能写一条语句 B.程序中必须包含有输入语句C.m ain函数必须位于文件的开头 D,每条语句最后必须有一个分号2、下面关于C 语言的叙述中,错误的是()A.若一条语句较长,也可分写在下一行上B.构成C 语言源程序的基本单位是表达式C.C 语言源程序中大、小写字母是有区别的D.一个C 语言源程序可由一个或多个函数组成3、下面叙述错误的是()A.所有语句都必须以分号;结束 B.语句是构成C 语言源程序的基本单位C.C 语言源程序必须包含一个main。函数 D.注释部分
2、在程序编译和运行时不起作用4、C 程序中main函数的位置()A.必须位于程序文件的最前面 B.必须在系统库函数后面C.可以在自定义函数后面 D.必须位于程序文件的最后面5、C 语言的函数体由()括起来A.()B.C.D./*/6、关于C 语言的叙述中,不正确的是()A.C 程序可由一个或多个函数组成 B.C 程序必须包含一个main。函数C.C 程序的基本组成单位是函数 D.注释说明只能位于一条语句的后面7、一个程序的执行是从()A.本程序的第一个函数开始,到最后一个函数结束B.本程序的main函数开始,到 main函数结束C.本程序的main函数开始,到最后一个函数结束D.本程序的第一个函
3、数开始,到 main函数结束8、结构化程序设计的三种基本结构是()A.函数结构、分支结构、判断结构 B.函数结构、嵌套结构、平行结构C.顺序结构、分支结构、循环结构 D.分支结构、循环结构、嵌套结构9、调试程序是指对程序进行()A.编辑 B,编译 C.查错和排错 D.连接10、C 语言中,复合语句的构成是将一系列语句置于()A.begin与 end之间 B.一对圆括号()之间C.一对花括号“”之间 D.一对方括号“口”之间11、构成C 语言源程序的基本单位是()A.语句 B.过程 C.表达式 D.函数12、以下叙述正确的是()。A.注释部分可单独占用行,也可跟在语句的后面B.函数体定界符也可用
4、一对方括号“口”C.C语言源程序每一行就是一条语句D.由于C 语言源程序都是从main。函数开始执行,所以main。函数必须位于程序文件最前面13、()是结构化程序设计应遵循的原则。A.选用的控制结构可有多个入口和一个出口B.不可使用嵌套基本控制结构表示复杂程序逻辑C.应使用顺序、选择、循环三种基本控制结构表示程序逻辑D.为提高程序效率,应尽量使用goto语句14、描述一个算法可以有不同的方式,常见的有()。A.汇编语言、高级语言和低级语言B.自然语言、流程图和伪代码C.机器语言、汇编语言和高级语言D.高级语言、自然语言和伪代码15、C 源程序的编译是指对源程序()A.进行 录 入 与 编 辑
5、 B.生成以二进制代码形式表示的目标程序C.进 行 查 错 与 解 释 D.进行连接与运行第三章数据类型、运算符与表达式1、在 C 语言中,正确的用户标识符是()A.3f B._for C.struct D._f.52、C 语言的基本数据类型包括()A.整型、实型、字符型 B.整型、实型、字符型、逻辑型C.整型、字符型、逻辑型 D.整型、实型、逻辑型3、以 下()是正确的常量A.E-5 B.1E5.1 C.al2 D.32766L4、以 下()是正确的变量名A.a.bee B.-pl 1 C.int D.p_l 15、以 下()是正确的字符常量A.c B.7 r C.W D.32a”6、以 F
6、()是不正确的字符串常量Aabc B.1212 C.0 D.7、C 语言的整型数据在内存中的存储形式是()A.原码 B.反码 C.补码 D.ASCII码8、以 下()是正确的浮点数A.e3 B.62 C.2e4.5 D.1239、下列不属于C 语言关键字的是()A.continue B.integer C.static D.signed10、C 语言的字符型数据在内存中的存储形式是。A.原码 B.补码 C.反码 D.ASCII11、在 C 语言中,变量所分配的内存空间大小是()A.由变量的类型决定 B.由用户自己决定 C.任意的 D.均为两个字节12、关于C 语言数据类型,叙述正确的是()A.
7、变量使用前应定义相应的数据类型B.不允许使用空类型C.指针类型属于基本类型 D.结构类型并不是构造类型13、TurboC中,基本数据类型存储空间长度的排列顺序是()A.charintlong intfloatdouble B.char=intlong intfloatdoubleC.charintlong intfloat=double D.char=intlong int若有下列语句段:char chr;int a;scanf(c%(,&chr,&a);拟从键盘将E 和 6 分别赋予变量chr和 a,正确的数据输入是()oA.B6 B.B,6 C.6B D.6,B48、在 C 语言中,判定逻
8、辑值为“真”的最正确的叙述是()A.1 B.非 0 的数 C.大于0 的数 D.非 0 的整数49、下列程序段的运行结果是()oint a=66;char c=A;printf(,%c+%c=%dn,c,a,c+a);(注:字母A的 ASCII 值为 65)A.65+B=131 B.A+66=131 C.65+66=131 D.A+B=13150、能正确表示数学关系式800=y=500的 C 语言表达式为()A.(y=500)B.(y=500)C.800=y=500 D.(y=500)51 若有定义:intx=3,y=4;则表达式!xlly的 值 为()A.1 B.O C.3 D.452、若有
9、定义:inti=7,j=8;则表达式i司livj的 值 为()A.1 B.变量i 的值 C.0 D.变量j 的值53、若希望当a 的值为奇数时,表达式的值为“真”,a 的值为偶数时,表达式的值为“假。则不能满足要求的表达式是()A.a%2=l B.!(a%2=0)C.!(a%2)D.a%254、若有定义:intx=3,y=4,z=5;则值为0 的表达式是()A.x&y B.x=yC.xlly+z&y-z D.!(xy)&!zlll)55、若已定义:inta=l,b=2,c=2;则表达式(a+b)/LO/c的 值 是()。A.1.5 B.l C.0.0 D.1.056、C 语言中,能正确表示条件
10、10 xv20的逻辑表达式是()A.10 x10llx10&10)&(x5的表达式是()A.(x-y)5ll(x-y)5 C.(x-y)5 D.(x-y)*(x-y)2564 若有定义:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y 的 值 是()A.3.5 B.3.0 C.2.5 D.2.065、若有定义:imb=7;floata=2.5,c=4.7;则表达式 a+(b/2*(im)(a+c)/2)%4 的 值 是()A.2.5 B.3.5 C.4.5 D.5.566、以下程序的运行结果是()#define M(a
11、,b)a*bmain()(int x=3,y=2,sl,s2;sl=M(x+y,x-y);s2=M(x-y,x+y);printf(%d,%dnn,s l,s2);)A.-1,7 B,5,5 C.7,-1 D.5,-567、以下叙述中,正确的是()A.#define PRICE=30”定义了与30等价的符号常量PRICEB.预 编 译 处 理 命 令 行 都 必 须 以 开 头C.程序中使用带参的宏时,参数类型要与宏定义时一致D.宏名只能包含大写字母和数字字符68、以下叙述中,正确的是()A.宏展开不占用运行空间,只占用编译时间B.预编译处理命令行必须以分号结束C.一个源程序只能有一个预编译处
12、理命令行D.使用带参数的宏定义时,应该说明每个参数的数据类型69、以下的叙述中不正确的是()A.宏展开不占用运行时间,只占用编译时间 B.宏名无类型C.宏名必须用大写字母表示 D.预处理命令行都必须以#号开始70、以下程序运行后,屏幕输出为()#define MIN(a,b)(a)(b)?(a):(b)main()(int x=2,y=3,z;z=2*MIN(x,y);printf(u%d,z);)A.2 B.3 C.4 D.671、下列#inchide命 令 中,正确的是()A.#inclue string.h B.#include string.hC.#include(string.h)D
13、.#include72、下面程序的输出结果是()#include#define ONE 1#define TWO ONE+1#define THREE TWO+1void main()printf(M%dnM,THREE-ONE);A.产生错误 B.1 C.2 D.373、下列叙述错误的是()oA.预处理命令行都必须以#号开始B.#define PER 1.5的作用是用标识符PER代 表 1.5C.C语言源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率D.宏定义可出现在源程序中任意合适的位置,且必须在行末加分号74、以下程序的运行结果是()#define ADD(x)x+xmai
14、n()int m=l,n=2,k;k=ADD(m+n)*3;printf(%d,k);A.9 B.10 C.12 D.1875、下面程序的运行结果是()#define M 10#define S(x)x*x#define F(x)(x*x)main()(int nl,n2;nl=1000/S(M);n2=1000/F(M);printf(,%d,%dnM,n 1 ,n2);)A.10,10 B.1000,10 C.10,1000 D.1000,100076.在对无符号数的位运算中,操作数左移一位相当于()。A.操作数除以2 B.操作数乘以2 C.操作数除以4 D.操作数乘以477.若有定义:i
15、nt a=20,b=28,c;则执行语句c=(aM)2;后 c 的值为()。A.2 B.5 C.32 D.9278.若有定义:int a=5,b=7,c;则执行语句c=a&b后 c 的 值 为()。A.12 B.2 C.6 D.579.下面程序段的运行结果是()。int a=5,b=6;printf(%dalb);A.5 B.6 C.7 D.880、以下程序段运行后,c 的二进制值是()。int a=2,b=3,c=10;c=alb;A.00000001 B.00000010 C.00101000 D.01010000第四章程序控制结构1、下列程序段的运行结果是()。int a=6,b=5;i
16、f(ab+)printf(True:%dnn,+a);else printf(False:%dn,b+);A.True:7 B.False:6 C.False:5 D.True:62、若已定义int a,b,c,k;下列程序段与语句k=(ab?(ac?l:O):O);功能等价 的 是()。A.if(ab)&(ac)k=l;else k=0;B.if(ab)II(ac)k=l;else k=0;C.if(ab)k=0;else if(ac)k=l;else k=0;D.if(ac)k=l;else if(ab)k=0;else k=0;3、下列程序段的运行结果是()oint x;if(x=3)p
17、rintf(M%dnn,x+);else if(x3)printf(%dn,x+2);else printf(,%dn,*,x+3);A.4 B.5 C.6 D.34、下 列()不能当作一条语句。A.if(k0)m=l;else n=2;B.m=l,n=2,k=3;C.if(k0);D.if(k=O)m=l;n=2;5、以下程序段运行时,若从键盘输入1 0,则输出结果是()int a;scanf(d”,&a);if(a+10)printfCt%dn,a);elseprintf(%dn”,+a);A.2 B.11 C,3 D.126、以下程序的运行结果是()void main()(int x,y
18、=l,z;z=-l;if(z=0)z=-z;elsex=y0?3:5;printf(u%dn,x);)A.-1 B.3 C.1 D.57、对于整型变量x,下属if语 句()与赋值语句:x=x%2=0?l:0;不等价。A.if(x%2!=0)x=0;else x=l;B.if(x%2)x=l;else x=0;C.if(x%2=0)x=l;else x=0;D.if(x%2=l)x=0;else x=l;8、以下程序段运行的结果是()int a,b,c,x;a=b=c=0;x=15;if(!a)x;else if(b);if(c)x=3;else x+=4;printf(%dnn,x);A.15
19、 B.17 C.18 D.199、若有定义:inta=l,b=2,c=3;则执行以下程序段后a,b,c的值分别为()if(ab)c=a;a=b;b=c;A.a=1 ,b=2,c=3 B.a=2,b=3,c=l C.a=2,b=3,c=3 D.a=2,b=l,c=l10、以下程序段运行后变量a 的 值 为()int x=6,y=5;int a;a=(x=y+)?x:y+l;11、下列程序段的运行结果是()int a=6;switch(+a)A.OB.1 C.6 D.5case 7:printf(n%d n,a);case 6:case 5:printf(u%d”,a+);break;printf
20、(M%d n,a);default:printf(u%d a+);A.8 B.7 C.7 7 D.7 812、下列程序段的运行结果是()oint k=8;switch(k%5)default:printf(nDD);case 1:printf(AAH);break;case 2:printf(uBBn);case 0:printf(CC);A.CCB.AA C.DDAA D.DD13、以下程序的运行结果是()void main()(int n=,e,;switch(n-)(defalut:printf(6)printf(u%dn,n);elseprintf(dn”,+n);)A.4 B.5 C
21、.6 D.716、下面关于switch语句的叙述中,错误的是()A.case后面的表达式可以是关系表达式B.switch语句是多分支选择语句C.每一个case后面的值必须互不相同,否则会出现矛盾的现象D.在执行一个case分支后,可用一个break语句使流程跳出switch语句17、若有定义:inta=l,b=2,c=3;则以下程序段运行后c 的 值 为()if(ab)c=a*b;elsec=a-b;A.2 B.O C.1 D.-l18、若有定义:imx;以下不会产生死循环的是()A.for(;(x=getchar()!=,n,;);B.while(l)x+;C.for(i=10;i+);D.
22、for(;x+=1);19、在循环语句的循环体中,break语句的作用是()A.暂停程序的运行 B.结束本次循环C.继续执行break语句之后的循环体各语句D.提前结束循环,接着执行该循环后续的语句20、循环语句的循环体中,continue语句的作用是()。A.继续执行continue语句之后的循环体各语句B.结束本次循环,并跳出循环C.结束本次循环 D.立即终止程序运行21、以下程序段运行后,循环体中的“count+=2;”语句运行的次数为()int i,j,cuont=0;for(i=l;i 在 c 语言中while循环和do-while循环的主要区别是()A.do-while循环体内可以
23、使用break语句,while循环体内不能使用break语句B.do-while的循环体至少无条件执行一次,while的循环体不是C.do-while循环体可以使用continue语句,while循环体内不能使用continue语句D.while的循环体至少无条件执行一次,do-while的循环体不是23、以下程序段运行后,循环体运行的次数为()int i=0,x;for(;i 10;i+)x=x+i;A.10 B.0 C.1 D.无限24、以下程序段运行后变量n 的 值 为()int i=l,n=l;for(;i3;i+)continue;n=n+i;A.4 B.3 C.2 D.125、有以
24、下程序:void main()int i;for(i=0;i3;i+)switch(i)(case 1 :printf(44%d,i);case 2:printf(d”,i);case 3:printf(d”,i);)执行后输出的结果是OA.11122 B.01222 C.013020 D.12026、以下程序的运行结果是()void main()int sum=0,item=0;while(item=6)break;)printf(%drT,sum);)A.10 B.15 C.6 D.727、以下程序的运行结果是()voin main()int sum=0,item=0;while(item
25、5)(item+;if(item=2)continue;sum+=item;)printf(*%dn,sum);)A.10 B.13 C.15 D.128、以下程序段执行后变量sum 的 值 为()int ij=l,sum=0;for(i=l,i=3,i+)(sum+=j;j+;)A.5 B.3 C.6 D.429、以下程序的运行结果是()#includemain()(int y=10;doy-;while(-y);printf(%dn,y);)A.1 B.2 C.-l D.O30、下列程序段运行时,语句k+=2;执行的次数是()。int i,k=0;for(i=7;i3;i-,i)k+=2;
26、A.3 B.2 C.l D.43 1、下列程序段运行后m的 值 为()oi n t i,j,m=O;f o r(i=l;i =3;i+)f o r(j=2;j =5)s u m+=2;A.1 0 B.8 C.6 D.43 3、下列程序段执行时,循环体的执行次数是()。i n t i=7,a=0;f o r (i+;i v 8;i+)a+=2;A.O次 B.l次 C.8次 D.7次3 4、下列程序段的运行结果是()oi n t i;f o r(i=3;i =l;i)s w i t c h(i)(c a s e 1:p r i n t f(%d ,i);b r e a k;c a s e 2:p
27、r i n t f(n%dH,i);d e f a u l t:p r i n t f(H%dn,i);)A.3 2 2 1 B.3 2 1 C.3 2 2 1 1 D.3 3 2 13 5、下列程序段的运行结果是()oi n t a=0,i=l;w h i l e(i =1 0)i f(i%3=l)a+=i;+i;p r i n t f(d n”,a);A.1 2 B.2 2 C.2 1 D.3 7第五章数组I、c语言中数组元素下标的数据类型是()A.实型常量 B.整型常量或整型表达式 C.任何类型的表达式 D.字符型常量2、下列数组定义中,正确的是()A.i n t a 1 0 J;B.i
28、 n t n=1 0,a n J;C.i n t N=1 0;i n t a N ;D.i n t n;s c a n f(%d ,&n);i n t a n ;3、若已定义:i n t a 1 3 ;则不能正确引用a数组的元素的是()A.a O B.a I 0 C.a 1 0+3 D.a 1 3-5 4、若有定义:i n t a 3 =0,l,2;则 a l 的 值 为()A.O B.1 C.2 D.35、若有定义:i n t a 5 =1,2,3,4,5;则语句 a l =a 2 +a 2+2 -a 3-l ;运行后 a l 的 值 为()A.6 B.5 C.I D.26、以下合法的数组定
29、义是()A.i n t a =s t r i n g”;B.i n t a 5 =O,l,2,3,4,5;C.c h a r a =0,l,2,3,4,5);D.c h a r s=“s t r i n g ;7、若有如下程序段:c h a r s 1 0 ;s=a b c d”;p r i n t f(5);f o r(i=0;i 2);f o r(i=0;i 5;i+)p r i n t f(%d ,a i );A.1 1 2 3 4 5 B.1 2 3 4 5C.1 1 1 2 1 3 1 4 1 5 D.1 1 1 2 3 4 51 0、西面关于数组的叙述中,正确的是()A.数组必须先
30、定义,然后使用 B.定义数组时,可不加类型说明符C.定义数组后,可通过赋值运算符“二”对该数组名直接赋值D.在数据类型中,数组属于基本类型1 1、一下程序段的运行结果是()i n t i=0,a =6,5,3,7);d oa i +;w h i l e(a i j 4);f o r(i=0;i 4;i+)p r i n t f(n%d ,a i );A.6 5 3 7 B.7 5 6 3 C.7 5 3 7 D.5 6 7 31 2、有如下程序段:i n t t J 3 =1,2,3,4,5,6,7,8,9,1 0,1 1,1 2);p r i n t f(u%d n ,t 2 1 l );则
31、执行该程序段后输出结果是()A.8 B.7 C.4 D.21 3、以下程序段运行后s的 值 是()i n t a 3 3 =1,2,3,1,2 3,1,2,3);i n t i,j,s=l;f o r(i=0;i 3;i+)f o r(j=i;j 3;j+)s*=a i j ;A.1 8 B.1 0 8 C.2 D.1 21 4、以下不能对二维数组a r r进行正确初始化的语句是()A.i n t a r r 2 3 =0;B.i n t a r r 3 =1,2,3,4,5;C.i n t a r r 3 =1,2,3,4,5,6;D.i n t a r r 2 3 =1,3,4,5);1
32、5、若有定义:尔如3 4 =1,2,0,1,2,3;则4 1 川 的 值 为()A.O B.1,2 C.1 D.31 6、若有定义:i n t a 3 3 ;则表达式&a -a的 值 为()A.7 B.8 C.6 D.917、若有定义:加1=0冰=0;皿凯3 3 =1,2,3,4,5,6,7,8,9;则以下程序段运行后*的值为()f o r(;i 3;i+)x+=a i 2-i ;A.O B.1 2 C.1 5 D.1 81 8、若有定义i n t a 2 3 ;则对数组元素的非法引用的是()A.a 0 l/2 B.a l f l C.a 4-4 0 D.a 0 3 1 9、以下数组定义中,正
33、确的是()A.i n t a =1,2,3,4,5;B.i n t a 2 =0,;C.i n t a 2 2 =l,2,3;D.i n t a =1,2,3,4);2 0、若有定义 i n t 叫3 =1,2,3,4,5,6,7,8,9;则表达式 s i ze o f(a)/s i ze o f(a )的 值 为()A.3 B.4 C.5 D.92 1、以下程序段运行后s的 值 是()i n t a 3 3 =1,2 3,4,5,1,2,3,4);i n t i,j,s=l;f o r(i=0;i 3;i+)f o r(j=i+l;j 3;j+)s*=a i j ;A.6 B.1 2 0 C
34、.2 4 D.4 8 02 2、设已定义:i n t a 4 =0,0;则下列描述错误的是()A.数组a的每个元素都可得到初值0 B.二维数组a的第一维大小为1C.数组a的行数为1D,只有元素a 和a 1 可得到初值0,其余元素均得不到初值02 3、下列程序段的运行结果是()。i n t a =l,3,4,6,9,i,x=l;f o r(i=0;i 3;i+)x+=a i+l ;p r i n t f(%d n ,x);A.9 B.1 4 C.1 5 D.1 02 4、下列程序段的运行结果是()。i n t a =8,7,6,5,4,3,2,1 ,i,s u m=0;f o r(i=0;i 8
35、;i+)i f(i v=3)s u m+=a i ;e l s e s u m-=a i ;p r i n t f(%d n ,s u m);A.O B.1 6 C.1 0 D.1 52 5、下列程序段的运行结果是()。int a=0,l,2,3,4,5,6,7,8,9,i=0,t;while(i=7)t=ai;ai=ai+2;ai+2=t;i+=2;for(i=0;i10;i+)printf(n%du,ai);A.0123456789 B.2143658709 C.2468013579 D.135792468026、下列程序段的运行结果是()oint 叫=2,4,6,8,10,i;for(i
36、=0;i4;i+)ai=ai+1 +2;for(i=0;i5;i+)printf(%d n,ai);A.4 6 8 10 10 B.4 6 8 10 12 C.6 8 10 12 10 D.6 8 10 12 1427、下列程序段的运行结果是()。nt a=6,5,4,3,2,l),i;for(i=0;i6;i+)if(i%2)ai+=2;for(i=0;i6;i+)printf(%d,ai);A.6 7 4 5 2 3 B.8 5 6 3 4 1 C.8 7 6 5 4 3 D.6 7 6 5 4 528、以下程序段运行的结果是()。int a3=1,2,3,4,5,6,7,8,9 ;pri
37、ntf(%dn,a 1 2);A.2 B.5 C.6 D.829、若有定义:int a ;则表达式sizeof(a)的 值 为()A.O B.l C.4 D.830、若有定义:int a3=1,2,3,4,5;则以下描述中正确的是()。A.数组a 包含5 个 元 素 B.数组a 的第一维大小可以取任意值C.数组a 的行数为5 D.元素a02的初值为3第 六 章 指针1、设有以下语句,则()是对a 数组元素的不正确引用,其中0=i10。int a 10=0,1,2,3,4,56,7,8,9,*p=a;A.alp-aj B.*(&ai)C.pi D.*(*(a+i)2、若有定义int*pl,*p2
38、;则指针变量p l、p2不能进行运算的是()A.v B.C.+D.-3、以下关于指针概念的叙述中,错误的是()A.一个指针变量只能指向同一类型的变量 B.一个变量的地址称为该变量的指针C.两个同类型的指针变量可以作加减运算D.任何指针变量都可以与空指针NULL进行比较4、以下程序段运行后*(p+3)的 值 为()char aU=good;char*p;p=a;A.d B(T C.存放d 的地址 D.O5、以下程序段运行后*(+p)的 值 为()chara5=work”;char*p;p=a;A.Z B,存放w,的地址 C.o D.存放o 的地址6、若有定义:int*p,a=4;p=&a;则以下
39、均代表地址的是()A.a,p B.&a,p C.&a*p D.a,*p7、若有说明语句:double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是()A.*p=&a;scanf(%lf,p);B.*p=&a;scanf(4t%lf*p);C.p=&a,scanf(“lF,*p);D.p=&a;scanf(4t%lfp);8、若已定义:intx=12;对int*p=&x;和*p=x;这两条语句的正确理解是()A.语句是在对指针变量p 定义时初始化,使 p 指 向 X;而语句是将变量x 的值赋给指针变量P 所指向的变量B.语句和中的*p 含义相同,都表示给指针变量赋值C.语句是在对
40、指针变量p 定义时初始化,使 p 指 向 x;而语句是将变量x 的值赋给指针变量PD.语句和的执行结果都是把变量x 的地址赋给指针变量p9、下面语句正确的是()A.int*p;*p=20;B.char*s=,abcdef,;printf(若已定义:inta=5,*p;且 p=&a;则以下表示中不正确的是()A.&(*p)=&a B.*(&a)=a C.&(*p)=p D.*(p+)=a+12、若有以下程序段,则*p+的 值 是()int*p;int a=1,2,3,4,5,6,7,8,9,10,11,12);p=a+3;A.2 B.3 C.5 D.413、以下程序段的运行结果是()int xJ
41、=2,3,4,5,67,*p=x;int i,s=0;for(i=l;i6;i+)s+=pli+J;printf(u%du,s);A.12 B.15 C.25 D.2714、下面程序的运行结果是()main()(int x=36,y=63;int*p,*q,*t;p=&x;q=&y;t=p;p=q;q=t;printf(%d,%dnH,x,y);)A.36,36 B.63,63 C.36,63 D.63,3615、以下程序段运行后x 的 值 为()int a=1,2,34,5,6,7;int i,x,*p;x=l;p=&a2;for(i=0;i3;i+)x*=*(p+i);A.不确定 B.24
42、 C.120 D.6016、以下程序段运行后x 的 值 为()int a=l,2,3,b=4,2,5);int*p,*q;int i,x;p=a;q=b;for(i=0;i3;i+)if(*(p+i)=*(q+i)x=*(p+i)*2;A.2 B.4 C.5 D.不确定17、以下程序运行结果是()main()(char a口=1357”,*p;for(p=a;pa+4;p+)printf(s”,p);)A.1357 B.1357357577 C.7531 D.753153131118、下面程序的输出结果是()#includevoid main()(int i;char*s=abc;for(i=
43、0;i3;i+)printf(,%snM,s+i);)A.abcbecB.cbeabcC.abccbeD.aababc19、下面程序的输出结果是()#includevoid main()(char*str=12345,*ps=str+4;printf(u%cnn,ps-4);)A.1 B.2 C.3 D.错误20、以下程序执行时,输 入 123 4 5 回车,输 出 为()#include#define N 5void main()(int aN;int*p=a;while(pa)printf(,%d,*(-p);)A.5 4 3 2 1 B.1 2 3 4 5 C.2 345 1 D.4 3
44、 2 1 521.以下程序段的运行结果是()int x=2,3,4,5,6,7,*p=x;int i,s=0;for(i=1 ;i6;i+=2)s+=*(p+i);printf(%d,s);A.27 B.25 C.12 D.1522.以下程序运行结果()main()(int a=9,8,7,6,5,4,*p,*q,i;p=a;q=p+5;for(i=0;i 若有定义:int a=2;则语句a=strcmp(“miss”Jmiss);运行后a 的 值 为()A.1 B.0 C.-1 D.230、以下对C 语言字符数组描述中,正确的是()A.可以用length函数计算字符数组中字符串的长度B.可以
45、在赋值语句中通过赋值运算符三”对字符数组整体赋值C.存放在字符数组中的字符串,以(T作为该字符串结束标志D.字符数组只能存放字符串,不能存放字符31、以下程序段运行后屏幕输出为()char str801;strcpy(str,hellou);printf(%dn,strlen(str);A.5 B.6 C.7 D.8032、若有定义:charstrl6=abcdm:*ps,*str2=abcdef”lj()是正确的A.strcpy(strl,str2);B.表达式 strcmp(strl,st的值大于 0C.strl=str2;D.表达式 strlen(strl)的值为 633、已有定义:ch
46、ar strl 15=university”,str2 15;则以下语句中正确的是()A.str2=strl;B.str2=college;C.scanf(%s”,&str2);D.printf(%s”,strl);34 设已定义:char sl20=You are”,s29=welcome!”;若要形成字符串You are welcome!,J,正确的语句是OA.strcat(sl,s2);B.strcpy(sl,s2);C.s1+s2;D.sl&s235、若已定义:inta=5,*pl=&a;floatf=6.5,*p2=&f;则下列正确的赋值语句是()。A.p2=pl;B.pl=&f;C
47、.f=*pl+*p2;D.p2=&a;36、若已定义:inta,b=5,*p=&a;与语句a=b;等价的是()。A.a=*p;B.*p=*&b;C.a=&b;D.a=*p;37、变量的指针,其值是该变量的()。A.值 B.标识符 C.一个标志 D.内存单元地址38、若已定义:int a5=1,2,3,4,5,*pa=a;下列叙述错误的是()。A.pa与 a 的值相等 B.a+与 pa+的作用相同C.a2与 pa2的值相等 D.*(pa+2)与 a2的值相同39、若已定义:im a5=l,2,3,4,5),*p=a;且p 值未发生变化,下 歹 U 不能表示al地 址 的 是()。A.p+1 B.
48、a+C.a+1 D.+p40、下列程序的运行结果是()。void main()int a5=2,3,5,11,4,b5=121,6,9,8);int*pa=a,*pb=b;int i;for(i=0;i5;i+)if(*(pa+i)*(pb+i)printf(u%d,*(pa+i);)A.5 B.2 5 4 C.3 11 D.241、下列程序的运行结果是()。void main()char str=abcdH,*p=str;int i;while(*p)printf(,%c,*(p+);A.cd B.abcd C.abc D.bcd42、下列程序的运行结果是()ovoid main()int
49、a=ll,b=22,temp;int*pa=&a,*pb=&b;temp=*pa;*pa=*pb;*pb=temp;printf(n%d,%dn,a,b);)A.11,11 B.22,22 C.22,11 D.11,2243、下列程序的运行结果是()ovoid main()int a=l,2,3,4,5,7),*p;p=a;*(p+3)+=2;printf(n%d,%dnM,*p,*(p+3);A.1,5 B.1,3 C.1,4 D.1,644、若已定义:inta5=123,4,5;int*p=&a3;则下列值为 3 的 是()。A.a+2 B.*p C.p-a D.p-a045、若已定义:i
50、nta3=3,6,9,*p=a;则对数组元素al错误引用的是()。A.pl B.*p+1 C.*(&al)D.*(a+1)46、若已定义:inta5,*p=a;则不能正确表示al地址的是()。A.p+l B.+p C.a+1 D.+a47、以下程序段的输出结果是()。int a5=l,3,5,7,9,*p;p=&a2;printf(%d”,*(+p);printf(%dn,p-a);A.7 3 B.5 3 C.7 4 D.9 448、若已定义charstra50,strb50;能正确从键盘读入字符串的是()A.gets(strb,stra);B.scanf(M%s%su,stra50,strb