1、江苏省计算机等级考试笔试辅导(二级C语言)省 笔 试n考试时间:考试时间:2小时小时n满分:满分:60分分n成绩:合格、优秀成绩:合格、优秀n内容题型及分值内容题型及分值q信息技术信息技术选择题(选择题(20分)分)qC语言语言选择题(选择题(10分)分)填空题(填空题(30分):分):大概分布:大概分布:简单填空(简单填空(5分)分)阅读程序(阅读程序(13分)分)完善程序(完善程序(12分)分)国 笔 试n考试时间:考试时间:120分钟分钟n满分:满分:100分分n内容题型及分值内容题型及分值(1)选择。选择。40(2)程序填空。程序填空。18(3)程序改错。程序改错。18(4)程序编程。
2、程序编程。24语法考试要求及考题解析语法考试要求及考题解析1.C语言基本概念语言基本概念源程序格式、风格和结构。源程序格式、风格和结构。main函数特性。函数特性。C程序保存。程序保存。注注释位置释位置。【考题解析考题解析】填空题填空题在一个在一个C语言源程序中,语言源程序中,必不可少的是必不可少的是。答案:答案:mainmain函数函数 单选题单选题.以下叙述中正确的是以下叙述中正确的是。A在编译时可以发现注释中的拼写错误在编译时可以发现注释中的拼写错误BC语言程序的每一行只能写一条语句语言程序的每一行只能写一条语句Cmain()必须位于程序的开始必须位于程序的开始DC语言程序可以由一个或多
3、个函数组成语言程序可以由一个或多个函数组成答案:答案:D D 单选题单选题在一个源程序中在一个源程序中main函数的位置函数的位置。A必须在最开始必须在最开始B必须在最后必须在最后C必须在预处理命令的后面必须在预处理命令的后面D可以在其他函数之前或之后可以在其他函数之前或之后答案:答案:D单选题单选题下列叙述中正确的是下列叙述中正确的是。A.main函数必须出现在其他函数之前函数必须出现在其他函数之前B.main函数中至少必须有一条语句函数中至少必须有一条语句C.C程序总是从程序总是从main函数的第一条语句开始执行函数的第一条语句开始执行D.C程序总是在执行完程序总是在执行完main函数的最
4、后一条语句后结束函数的最后一条语句后结束答案:答案:C 单选题单选题以下叙述中正确的是以下叙述中正确的是。A.C语言系统以函数为单位编译源程序语言系统以函数为单位编译源程序B.main函数必须放在程序开始函数必须放在程序开始C.用户定义的函数可以被一个或多个函数调用任意多次用户定义的函数可以被一个或多个函数调用任意多次D.在一个函数体内可以定义另外一个函数在一个函数体内可以定义另外一个函数答案:答案:C全国选择题全国选择题以下叙述中正确的是以下叙述中正确的是()()。A)C语言程序将从源程序中第一个函数开始执行语言程序将从源程序中第一个函数开始执行B)可以在程序中由用户指定任意一个函数作为主函
5、数,程可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行序将从此开始执行C)C语言规定必须用语言规定必须用main作为主函数名,程序将从此开始作为主函数名,程序将从此开始执行,在此结束执行,在此结束D)main可作为用户标识符,用以命名任意一个函数作为可作为用户标识符,用以命名任意一个函数作为主函数主函数答案:答案:C全国选择题全国选择题以下叙述中正确的是以下叙述中正确的是()。A)C程序中的注释只能出现在程序的开始位置和语句的后程序中的注释只能出现在程序的开始位置和语句的后面。面。B)C程序书写格式严格,要求一行内只能写一个语句程序书写格式严格,要求一行内只能写一个语句C)C程
6、序书写格式自由,一个语句可以写在多行上程序书写格式自由,一个语句可以写在多行上D)用用C语言编写的程序只能放在一个程序文件中语言编写的程序只能放在一个程序文件中答案:答案:C全国选择题全国选择题以下叙述中正确的是以下叙述中正确的是()。A)C程序的基本组成单位是语句程序的基本组成单位是语句B)C程序中的每一行只能写一条语句程序中的每一行只能写一条语句C)简单简单C语句必须以分号结束语句必须以分号结束D)C语句必须在一行内写完语句必须在一行内写完答案:答案:C基本类型数据的表示及使用基本类型数据的表示及使用系统预定义类型标识符、类型修饰符的使用系统预定义类型标识符、类型修饰符的使用基本类型常量的
7、表示及使用基本类型常量的表示及使用字符串常量形式字符串常量形式 关键字。关键字。标识符。标识符。符号常量的定义与使用符号常量的定义与使用基本类型变量的声明、初始化基本类型变量的声明、初始化,直接引用变量直接引用变量【考题解析考题解析】单单选选题题在在C语语言言源源程程序序中中,不不带带任任何何修修饰饰符符的的浮浮点点数数直直接接量量(例如:(例如:3.14)都是按)都是按类型数据存储的。类型数据存储的。答案:答案:double单单选选题题已已知知sizeof(int)的的值值为为2,为为将将10!的的值值存存储储到到变变量量f中中(10!=3628800),变量),变量f的类型应声明为的类型应
8、声明为。AlongintBintCshortintDunsignedint答案:答案:A A单选题单选题以下常量表示中正确的是以下常量表示中正确的是。A.xff B.5L C.aEb D.3.14U答案:答案:B B单选题单选题以下语句中有语法错误的是以下语句中有语法错误的是。A.printf(%d,0e);B.printf(%f,0e2);C.printf(%d,0 x2);D.printf(%s,0 x2);答案:答案:A A单选题单选题表达式表达式“1e-8/2+1.0f”值的数据类型是值的数据类型是。A.intB.longC.floatD.double答案:答案:D单选题单选题以下局部
9、变量声明中正确的是以下局部变量声明中正确的是。A.intchar=2;B.voida=0;C.inta=b=0;D.inta,b=a=0;答案:答案:D单选题单选题以下选项中不能用作变量名的是以下选项中不能用作变量名的是。A_floatBswitchCsumD_123答案:答案:B B填填空空题题在在C语语言言系系统统中中,如如果果一一个个变变量量能能正正确确存存储储的的数数据据范范围为整数围为整数-32768 32767,则该变量在内存中占,则该变量在内存中占个字节。个字节。答案:答案:2 2单选题单选题以下选项中,不能用作以下选项中,不能用作标识符的是标识符的是。A.printB.FORC
10、.&aD._00答案:答案:C单选题单选题以下选项中,以下选项中,是是C语言关键字。语言关键字。AprintfBincludeCfunDdefault答案:答案:D单选题单选题执行语句执行语句“printf(”byebye101101“);”时输出时输出到屏幕的结果到屏幕的结果为为。答案:答案:byye101A运算符和表达式的表示及使用运算符和表达式的表示及使用赋值表达式,赋值运算符的左值要求赋值表达式,赋值运算符的左值要求算术表达式。算术表达式。+、-运算符左值要求。溢出。运算符左值要求。溢出。关系表达式与逻辑表达式,逻辑表达式优化处理关系表达式与逻辑表达式,逻辑表达式优化处理逗号表达式逗号
11、表达式条件表达式条件表达式表达式运算中操作数类型自动转换与强制转换表达式运算中操作数类型自动转换与强制转换【考题解析考题解析】单单选选题题若若有有声声明明“doublex=3,c,*a=&x,*b=&c;”,则则下下列列语语句中错误的是句中错误的是 。Aa=b=0;Ba=&c,b=a;C&a=&b;D*b=*a;答案:答案:C C单选题单选题若有声明若有声明“charss8=”Red“;”,则则sizeof(ss)的的值是值是。A8B4C3D1答案答案:A单选题单选题设有定义和声明如下:设有定义和声明如下:#defined2intx=5;floaty=3.83;charc=d;以下表达式中有语
12、法错误的是以下表达式中有语法错误的是。x+B.y+C.c+D.d+答案:答案:D D单选题单选题数学式数学式在在C程序中正确的表示形式为程序中正确的表示形式为。Asqrt(a)/2*bBsqrt(a)/2/bCsqrt(a)/2bDsqrta/(2*b)答案答案:B单选题单选题已知有声明已知有声明“longx,y;”且且x中整数的十进制表示有中整数的十进制表示有n位数字(位数字(4n10),若要求去掉整数),若要求去掉整数x十进制表示中的十进制表示中的最高位,用剩下的数字组成一个新的整数并保存到最高位,用剩下的数字组成一个新的整数并保存到y中,则中,则以下表达式中能正确实现这一功能的是以下表达
13、式中能正确实现这一功能的是。A.y=x/(10*(n-1)B.y=x%(10*(n-1)C.y=x%(long)pow(10,n-1)D.y=x%(10(n-1)答案:答案:C填空题填空题若有声明若有声明“doublex=10,y=5;”,则计算,则计算xy的库函数调的库函数调用形式是用形式是。答案:答案:pow(x,y)或或pow(10,5)填空题填空题若有声明若有声明“intx;”且且sizeof(x)的值为的值为2,则当,则当x值为值为时时“x+1x”为假。为假。答案:答案:32767填空题填空题若若有声明有声明“floaty=3.14619;intx;”,则计算表达则计算表达式式“x=
14、y*100+0.5,y=x/100.0”后后y的值是的值是。答案:答案:3.15 3.15 单选题单选题已知有声明已知有声明“inta=3,b=4,c;”,则执行语句,则执行语句“c=1/2*(a+b);”后,后,c的值为的值为。A.0B.3C.3.5D.4 答案:答案:A填空题填空题若有声明若有声明“inta=5,b=2;”,则表达式,则表达式“b+=(float)(a+b)/2”运算后运算后b的值为的值为。答案:答案:5填空题填空题已知有声明已知有声明“charch=g;”,则表达式,则表达式ch=ch-a+A的值为字符的值为字符的编码。的编码。答案:答案:G 单选题单选题已有声明已有声明
15、“inta=3,b=3,c=2;”,以下选项中值为以下选项中值为0的的表达式是表达式是。A.!a&!b&cB.!a|!b|cC.a=b&b=cD.a=b&bc答案答案:A单选题单选题已知有声明已知有声明“inta=3,b=4,c=5;”,以下表达式中值,以下表达式中值为为0的是的是。A.a&bB.ay=2.zyx.xy=1.x=(x=0,y=1,z=2)答案:答案:A填空题填空题数学式数学式对应的对应的C语言表达式为语言表达式为。答案:答案:sqrt(fabs(x)!=4*a/(b*c)或或sqrt(fabs(x)!=4*a/b/c单选题单选题已知有声明已知有声明“inta=12,b=15,c
16、;”,则执行表达式,则执行表达式“c=(a|(b-=a)”后,变量后,变量b和和c的值分别为的值分别为。A3.1B15,12C15,1D3,12答案答案:C填空题填空题数学式数学式所对应的所对应的C语言表达式为语言表达式为pow(x,)。答案:答案:1.0/3填空题填空题若有声明若有声明“inta=15,b=20,c=25,e;”,则执行语句,则执行语句“e=ab?-c:+c;”后变量后变量e的值是的值是。答案:答案:26单选题单选题以下选项中,不能表示函数以下选项中,不能表示函数功能的表达式是功能的表达式是。A.s=(x0)?1:(x0)?-1:0 B.s=x0?1:0)C.s=x0?1:x
17、=0?0:-1答案:答案:C C单选题单选题若有程序段若有程序段“charc=256;inta=c;”,则执行该程,则执行该程序段后序段后a的值是的值是。A.256B.65536C.0D.-1答案:答案:C C填填空空题题设设有有声声明明“inta=3,b=4;floatx=4.5,y=3.5;”,则则表表达达式式“(float)(a+b)/2+(int)x%(int)y”的的值值是是。答案答案:4.5填空题填空题若有声明若有声明“intr=2;”,则执行语句则执行语句“printf(”%d“,sizeof(2*3.14*r);”时输出时输出。答案:答案:8单选题单选题已知有声明已知有声明“i
18、ntn;floatx,y;”,则执行语句,则执行语句“y=n=x=3.89;”后,后,y的值为的值为。A.3B.3.0C.3.89D.4.0答案:答案:B单选题单选题已知有声明已知有声明“inta=3,b=4;”,下列表达式中合法的,下列表达式中合法的是是。A.a+b=7B.a=|b|C.a=b=0D.(a+)+答案:答案:C单选题单选题已已知知有声明有声明“inta=1,b=2;”,执行语句执行语句“while(-a0&-b0)a=b;”后变量后变量a、b的值是的值是。A.0,2B.0,1C.1,1D.2,2答案:答案:A 2.2.语句语句实现顺序结构的语句实现顺序结构的语句 表达式语句,空
19、语句,复合语句,函数调用语句表达式语句,空语句,复合语句,函数调用语句 标准输入输出库函数标准输入输出库函数printf(),scanf(),getchar(),putchar(),gets(),puts()【考题解析考题解析】单选题单选题已知已知int类型数据在内存中存储长度为类型数据在内存中存储长度为2个字节,以下个字节,以下语句中能正确输出整数语句中能正确输出整数32768的是的是。A.printf(%d,32768);B.printf(%ld,32768);C.printf(%f,32768);D.printf(%c,32768);答案:答案:B单选题单选题已知某编译系统中已知某编译系
20、统中sizeof(int)的值为的值为2,在该编译,在该编译系统中执行以下系统中执行以下语句时输出结果不是语句时输出结果不是39999。A.printf(%u,39999);B.printf(%d,39999);C.printf(%ld,39999);D.printf(%lu,39999);答案:答案:B单选题单选题若有声明若有声明“floatf=123.45678;”,则执行语句,则执行语句“printf(”%.3f“,f);”后,输出结果是后,输出结果是。.1.23e+02.123.457.123.456780.1.234e+02答案:答案:B单选题单选题已知有声明已知有声明“inta=1
21、,b=2,c=0;”,执行语句,执行语句“if(ab)c=a;a=b;b=c;”后变量后变量a、b的值是的值是。答案:答案:2,0单选题单选题已知有声明已知有声明“chars80;”,若需要将键盘输入的一,若需要将键盘输入的一个不含空格的字符串保存到个不含空格的字符串保存到s数组中,则下列语句中正确数组中,则下列语句中正确的是的是。A.scanf(%s,s);B.scanf(%s,s0);C.s=gets();D.s=getchar();答案:答案:A填空题填空题已知有声明和语句已知有声明和语句“inta;scanf(”a=%d“,&a);”,欲从键盘上输入数据使欲从键盘上输入数据使a中的值为
22、中的值为3,则正确的输入应是,则正确的输入应是。答案:答案:a=3单选题单选题若有声明若有声明“longa,b;”且变量且变量a和和b都需要通过键盘输都需要通过键盘输入获得初值,则下列语句中正确的是入获得初值,则下列语句中正确的是。A.scanf(%ld%ld,&a,&b);B.scanf(%d%d,a,b);C.scanf(%d%d,&a,&b);D.scanf(%ld%ld,&a,&b);答案:答案:D实现选择结构的语句实现选择结构的语句:if-else,switch【考题解析考题解析】单选题单选题若在一个若在一个C语言源程序中语言源程序中“e1”和和“e3”是表达式,是表达式,“s;”是
23、语句,则下列选项中与语句是语句,则下列选项中与语句“for(e1;e3)s;”功功能等同的语句是能等同的语句是。A.e1;while(10)s;e3;B.e1;while(10)s;e3;C.e1;while(10)e3;s;D.while(10)e1;s;e3;答案:答案:B单选题单选题已知有声明已知有声明“intx,y;”,若要求编写一段程序实现,若要求编写一段程序实现“当当x大于等于大于等于0时时y取值取值1,否则,否则y取值取值-1”,则以下程序段,则以下程序段中错误的是中错误的是。A.if(x=0)y=1;elsey=-1;B.y=x=0?1:-1;C.switch()D.switc
24、h(x-abs(x)casex=0:y=1;break;case0:y=1;break;default:y=-1;default:y=-1;答案:答案:C阅读程序阅读程序下列程序运行后的输出结果第一行是下列程序运行后的输出结果第一行是(1);第;第二行是二行是(2)。#includemain()inti,a=0,c=2;for(i=0;i2;i+)switch(+a,a*c)case1:printf(1);case2:printf(2);case3:printf(3n);break;default:printf(othern);答案答案:(1)23(2)other阅读程序阅读程序以下程序运行时
25、输出结果为以下程序运行时输出结果为(6)#includevoidmain()inti,sum=0;for(i=0;i0;j-=2)k+;B.for(j=0;j15;j+=2)k+;.for(i=0;i0;i-=2)k+;答案答案:A单选题单选题以下语句中有语法错误的是以下语句中有语法错误的是。A.for(;);B.do;while(1);C.while();D.p:;gotop;答案:答案:C阅读程序阅读程序 以下程序运行时输出结果最后一行是以下程序运行时输出结果最后一行是 。#includevoidmain()inta=1,b=1,i;for(i=1;i=2;i+)a=a+b;printf(
26、%d/%d,b,a);b=a+b;printf(%d/%dn,a,b);printf(n);答案答案:3/5,5/8阅读程序阅读程序 以下程序运行时输出结果是以下程序运行时输出结果是。#includevoidmain()ints=1,n=235;dos*=n%10;n/=10;while(n);printf(%dn,s);答案:答案:30跳转语句跳转语句:break,continue,return【考题解析考题解析】全国选择题全国选择题有以下程序有以下程序#include#includevoidmain()intx=8;for(;x0;x-)if(x%3)printf(%d,x-);conti
27、nue;printf(%d,-x);程序的运行结果是程序的运行结果是()。A)7,4,2,B)8,7,5,2,C)9,7,6,4,D)8,5,4,2,答案:答案:D3.构造类型数据构造类型数据基本类型数组(一维,二维)基本类型数组(一维,二维)数组声明及初始化数组声明及初始化 数组存储结构数组存储结构使用数组名引用数组元素使用数组名引用数组元素【考题解析考题解析】单选题单选题以下声明中错误的是以下声明中错误的是。Ainta2;Binta=0,1;Cinta3=0;Dinta34=0;答案答案:C C全国单选题全国单选题下列选项中,能正确定义数组的语句是()。下列选项中,能正确定义数组的语句是(
28、)。A)intnum0.2008;B)intnum;C)intN=2008;D)#defineN2008intnumN;intnumN;答案:答案:D全国单选题全国单选题已知有声明已知有声明“intm=5,4,3,2,1,i=0;”,下列,下列对对m数组元素的引用中,正确的是数组元素的引用中,正确的是。A)m-iB)m2*2C)mm0D)mmi答案:答案:B单选题单选题已知有声明已知有声明“chars20=”Hello“;”,在程序运行过,在程序运行过程中,若要想使数组程中,若要想使数组s中的内容修改为中的内容修改为“Good”,则以下,则以下语句中能够实现此功能的是语句中能够实现此功能的是。
29、As=Good;Bs20=Good;Cstrcat(s,Good);Dstrcpy(s,Good);答案:答案:D D填空题填空题若有声明若有声明“chars110=ABCDE,s210=A0;”,则语句,则语句“printf(%d,strlen(strcpy(s1,s2);”的输出结果的输出结果是是。答案:答案:3全国选择题全国选择题有以下程序有以下程序#includemain()inta5=1,2,3,4,5,b5=0,2,1,3,0,i,s=0;for(i=0;i5;i+)s=s+abi;printf(%dn,s);程序运行后的输出结果是():程序运行后的输出结果是():A)6B)10C
30、)11D)15答案:答案:C单选题单选题已知有声明已知有声明“inta44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;”,若需要引用值为,若需要引用值为12的数组元素,则下列选项中错误的是的数组元素,则下列选项中错误的是。A*(a+2)+3B*(*(a+2)+3)C*(a2+3)Da23答案:答案:A单选题单选题设有声明设有声明“intp10=1,2,i=0;”,以下语句中与以下语句中与“pi=pi+1,i+;”等价的是等价的是。A.pi=pi+;B.p+i=pi;C.p+i=pi+1;D.i+,pi-1=pi;答案:答案:D D阅阅读读程程序序以以下下程程
31、序序运运行行时时输输出出结结果果中中第第一一行行是是(1),第三行是第三行是(2)。#include#defineN5voidmain()staticcharaNN;inti,j,t,start=0,end=N-1;charstr=123,ch;for(t=0;t=N/2;t+)ch=strt;for(i=j=start;iend;i+)aij=ch;for(j=start;jstart;i-)aij=ch;for(j=end;jstart;j-)aij=ch;if(start=end)astartend=ch;start+,end-;生成矩阵:生成矩阵:1 1 1 1 1 1 2 2 2 1
32、 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1for(i=0;iN;i+)for(j=0;jN;j+)printf(%c,aij);printf(n);答案:答案:(1)11111 (2)12321阅读程序阅读程序以下程序运行时输出结果的第一行是以下程序运行时输出结果的第一行是(1),第三行是,第三行是(2)。#includevoidmain()inti,j,a33;for(i=0;i3;i+)for(j=0;j3;j+)if(ij)aij=1;elseaij=i-j+1;for(i=0;i3;i+)for(j=0;j3;j+)printf(%4d,aij);printf(n);
33、生成矩阵:生成矩阵:1 1 1 2 1 1 3 2 1答案答案:(1)1 1 1 (2)3 2 1 结构类型变量与数组结构类型变量与数组定义结构类型定义结构类型 结构类型变量、数组声明及初始化结构类型变量、数组声明及初始化用变量名引用结构变量(结构数组元素)的全体成员用变量名引用结构变量(结构数组元素)的全体成员用变量名引用结构变量(结构数组元素)的基本类型成员用变量名引用结构变量(结构数组元素)的基本类型成员【考题解析考题解析】单选题单选题若有结构类型定义若有结构类型定义“typedefstructtestintx,y2;TEST;”,则以下声明中,则以下声明中正确的是正确的是(27)。As
34、tructtestx;Bstructx;Ctestx;DstructTESTx;答案:答案:A单选题单选题以下结构变量以下结构变量stu1的声明形式中,错误的是的声明形式中,错误的是。typedefstructstucharname10;floatscore;STU;STUstu1;#defineSTUstructstuSTUcharname10;floatscore;stu1;structstucharname10;floatscore;stu1;structstucharname10;floatscore;STU;STUstu1;答案:答案:D单选题单选题若有定义若有定义“structcd
35、oublex,y;c1=1.2,1.3,c2=1.2,1.3,c3;structddoublex,y;d1=1.2,1.3,d2=1.2,1.3,d3;”,则以下表达式中正确的是则以下表达式中正确的是。A.c3=0B.c1=c2C.c3=c1D.d3=c1答案:答案:C阅读程序阅读程序以下程序运行后的输出结果第一行是以下程序运行后的输出结果第一行是(1);第二;第二行是行是(2)。#includestructnumintx,y;st=1,10,2,20,3,30,4,40,-1,-1,s12,s22;main()inti=0,j=0,k;for(k=0;stk.x!=-1;k+)if(stk.
36、x%2)s1i+=stk;elses2j+=stk;printf(%dn%dn,s10.y,s20.y);答案:答案:(1)10(2)204.指针类型数据指针类型数据基本类型变量的指针操作基本类型变量的指针操作基本类型变量地址的获取与保存。基本类型变量地址的获取与保存。指向基本类型变量的指针变量声明、初始化与赋值。指向基本类型变量的指针变量声明、初始化与赋值。引用指针变量指向的基本类型变量(使用运算符引用指针变量指向的基本类型变量(使用运算符*)【考题解析考题解析】填空题填空题若有声明若有声明char*p=%d,%dn;inta=1,b=2;则执行语句则执行语句“printf(p,a,b);”
37、时输出时输出(4)。答案:答案:1,2全国选择题全国选择题若有定义语句:若有定义语句:doublex,y,*px,*py,执行了执行了px=&x,py=&y;之后,正确的输入语句是()。之后,正确的输入语句是()。A)scanf(”%f%f”,x,y);B)scanf(”%f%f”,&x,&y);C)scanf(”%lf%le”,px,py);D)scanf(”%lf%lf”,x,y);答案:答案:C全国全国选择题选择题有以下程序有以下程序#includemain()intm=1,n=2,*p=&m,*q=&n,*r;r=p;p=q;q=r;printf(“%d,%d,%d,%dn”,m,n,
38、*p,*q);程序运行后的输出结果是程序运行后的输出结果是A)1,2,1,2B)1,2,2,1C)2,1,2,1D)2,1,1,2答案:答案:B全国选择题全国选择题有以下程序有以下程序#include#includeintfun(intn)int*p;p=(int*)malloc(sizeof(int);*p=n;return*p;main()inta;a=fun(10);printf(“%dn”,a+fun(10);程序的运行结果是()。程序的运行结果是()。A)0B)10C)20D)出错出错答案:答案:C(2)基本类型数组的指针操作基本类型数组的指针操作基本类型数组元素地址的获取、保存与算
39、术运算。基本类型数组元素地址的获取、保存与算术运算。引用指针变量指向的基本类型数组元素引用指针变量指向的基本类型数组元素 二维数组行地址的获取、保存及算术运算。二维数组行地址的获取、保存及算术运算。行指针变量的声明、初始化。行指针变量的声明、初始化。引用行指针变量指向的基本类型数组元素引用行指针变量指向的基本类型数组元素【考题解析考题解析】单选题单选题设指针变量占设指针变量占2个字节的内存空间,若有声明个字节的内存空间,若有声明“char*p=”123“;intc;”,则执行语句,则执行语句“c=sizeof(p);”后,后,c的值为的值为。A.1B.2C.3D.4答案答案:B B全国选择题全
40、国选择题若有定义语句:若有定义语句:doublex5=1.0,2.0,3.0,4.0,5.0,*p=x;则错误引用则错误引用x数组元素的是()。数组元素的是()。A)*pB)x5C)*(p+1)D)*x答案:答案:B单选题单选题若有声明若有声明“intx10=0,1,2,3,4,5,6,7,8,9,*p;”,则值不为则值不为4的表达式是的表达式是。Ap=x,*(p+4)Bp=x+4,*p+Cp=x+3,*(p+)Dp=x+3,*+p答案答案:C C单选题单选题已知有程序段已知有程序段 “charstr10=Aoyun,Beijing,*p=&str00;printf(%sn,p+10);”,则
41、执行则执行printf语句后输出为语句后输出为 。ABeijingBAoyunCingDng答案答案:A A单选题单选题已知有声明已知有声明“inti,a10,*p=a;”,现需要将,现需要将1 10保存到保存到a0 a9中,以下程序段中不能实现这一功能的是中,以下程序段中不能实现这一功能的是。A.for(i=0;i10;i+)ai=i+1;B.for(i=0;i10;i+)pi=i+1;C.i=1;while(pa+10)*p+=i+;D.i=1;while(pa+10)*a+=i+;答案:答案:D填空题填空题已知有声明已知有声明“inta32=1,2,3,4,5,6,*p=a0;”,则执行
42、语句,则执行语句“printf(”%dn“,*(p+4);”后的输出结果为后的输出结果为。答案:答案:5单选题单选题若有声明若有声明“inta34,*p=a0,(*q)4=a;”,则下列叙,则下列叙述中错误的是述中错误的是。.a23与与q23等价等价.a23与与p23等价等价.a23与与*(p+11)等价等价.a23与与p=p+11,*p等价等价答案:答案:B单选题单选题已知有声明已知有声明“int a33=0,*p1=a1,(*p2)3=a;”,以以下下表表达达式式中中与与“a11=1”不等价的表达式是不等价的表达式是。A.*(p1+1)=1B.p111=1C.*(*(p2+1)+1)=1D
43、.p211=1答案:答案:B B填填 空空 题题 若若 有有 声声 明明“char s10=”remind“;”,执执 行行“puts(s+2);”后的输出结果是后的输出结果是。答案答案:mind单选题单选题已知有声明:已知有声明:“chara=Itismine,*p=Itismine;”,下列叙述中错误的是下列叙述中错误的是。A.strcpy(a,“yes”)和和strcpy(p,“yes”)都是正确的都是正确的B.a=“yes”和和p=“yes”都是正确的都是正确的C.*a等于等于*pD.sizeof(a)不等于不等于sizeof(p)答案:答案:B B全国程序填空全国程序填空以下程序的功
44、能是:借助指针变量找出数组以下程序的功能是:借助指针变量找出数组元素中的最大值所在数组元素的下标值。元素中的最大值所在数组元素的下标值。#includemain()inta10,*p,*s;for(p=a;p-a10;p+)scanf(“%d”,p);for(p=a,s=a;p-a*s)s=_;printf(“index=%dn”,s-a);答案:答案:p(3)结构类型变量、数组的指针操作结构类型变量、数组的指针操作结构变量地址、结构数组元素地址的获取与保存。结构变量地址、结构数组元素地址的获取与保存。指向结构变量指针变量的声明、初始化与赋值。指向结构变量指针变量的声明、初始化与赋值。引用指针
45、指向的结构类型变量(结构类型数组元素)的引用指针指向的结构类型变量(结构类型数组元素)的基本类型成员基本类型成员结构变量成员的地址、结构数组元素成员的地址获取与结构变量成员的地址、结构数组元素成员的地址获取与保存。保存。指向结构变量成员的指针变量声明、初始化与赋值。指向结构变量成员的指针变量声明、初始化与赋值。【考题解析考题解析】单选题单选题已知有结构定义和变量声明如下:已知有结构定义和变量声明如下:structstudentcharname20;intscore;structstudent*h;stu,*p;int*q;以下选项中错误的是以下选项中错误的是。Ap=&stu;Bq=&stu.s
46、core;Cscanf(%s%d,&stu);Dstu.h=p;答案答案:C C 阅阅读读程程序序以以下下程程序序运运行行时时输输出出结结果果的的第第一一行行是是(1),第二行是第二行是(2)#includestructsintx,*y;*p;intd5=10,20,30,40,50;structsa5=100,&d0,200,&d1,300,&d2,400,&d3,500,&d4;voidmain()p=a;printf(%5d,p-x+);printf(%5dn,p-x);printf(%5d,*p-y);printf(%5dn,*+p-y);答案答案:(1)100101(2)1020 单
47、选题单选题设有结构定义及变量声明如下:设有结构定义及变量声明如下:structproductcharcode5;floatprice;y4=100,100;以下表达式中错误的是以下表达式中错误的是。A.(*y).code0=2;B.y0.code0=2;C.y-price=10;D.(*y)-price=10;答案:答案:D D(4)指针类型数组的声明和使用指针类型数组的声明和使用【考题解析考题解析】全国单选题全国单选题有以下程序有以下程序#includemain()char*a=abcd,ef,gh,ijk;inti;for(i=0;i4;i+)printf(%c,*ai);程序运行后输出的
48、结果是程序运行后输出的结果是A)aegiB)dfhkC)abcdD)abcdefghijk答案:答案:A全国单选题全国单选题若有定义语句:若有定义语句:inta410,*p,*q4;且且0=i4,则错误的赋值是()。则错误的赋值是()。A)p=aB)q=ac)q0=aD)p=&a21答案:答案:B全国填空题全国填空题有以下程序有以下程序#includemain()inta=1,2,3,4,5,6,*k3,i=0;while(i3)ki=&a2*i;printf(%d,*ki);i+;程序运行后的输出的结果是程序运行后的输出的结果是_答案:答案:1355.函数函数函数定义、函数声明、函数调用函数
49、定义、函数声明、函数调用(2)函数调用时函数调用时基本类型基本类型实参的传递与使用。实参与形参的实参的传递与使用。实参与形参的类型兼容性要求。实参类型的自动转换类型兼容性要求。实参类型的自动转换【考题解析考题解析】单选题单选题以下函数定义中正确的是以下函数定义中正确的是(25)。A.doublefun(doublex,doubley)B.doublefun(doublex;doubley)C.doublefun(doublex,doubley);D.doublefun(doublex,y)答案:答案:A A单选题单选题以下选项均为以下选项均为fun函数定义的头部,其中错误的是函数定义的头部,其
50、中错误的是。A.intfun(intx,inty)B.intfun(intx,intyx)C.intfun(intx,inty3)D.intfun(intx,int*y)答案:答案:B单选题单选题已知函数已知函数fun定义的头部为定义的头部为“voidfun(intx,inty)”,以下以下fun函数声明中正确的是函数声明中正确的是。A.voidfun(intx,inty);B.voidfun(intx,int*y);C.voidfun(int,int);D.voidfun(int,int*);答案:答案:C单选题单选题若有声明若有声明“longfun(int*x,intn,long*s);i
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922