C语言练习题(答案)(同名2105)(共32页)_第1页
C语言练习题(答案)(同名2105)(共32页)_第2页
C语言练习题(答案)(同名2105)(共32页)_第3页
C语言练习题(答案)(同名2105)(共32页)_第4页
C语言练习题(答案)(同名2105)(共32页)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、福建省高等学校计算机等级考试(二级C语言)选择题试题库答案试题C1.在C语言源程序中,以下叙述正确的是()。A.main函数必须位于文件的开头B.每行只能写一条语句C.程序中的一个语句可以写成多行D.每个语句的最后必须有点号 C2.关于C语言的源程序的叙述中,错误的是()。A.C语言的源程序由函数构成B.main函数可以书写在自定义函数之后C.必须包含有输入语句D.一行可以书写多个语句 C3.关于C语言数据类型的叙述,正确的是()。A.枚举类型不是基本类型B.数组不是构造类型C.变量必须先定义后使用D.不允许使用空类型 C4.C程序中main函数的位置()。A.必须在最开始B.必须在系统库函数

2、后面C.可以在自定义函数后面D.必须在最后 B5.C语言的函数体由()括起来。A.()B.C.D./*/ D6.关于C语言的叙述中,不正确的是()。A.C程序可由一个或多个函数组成B.C程序必须包含一个main()函数C.C程序的基本组成单位是函数D.注释说明只能位于一条语句的后面 D7.以下叙述不正确的是()。A.C程序的执行总是从main函数开始B.一个C源程序必须包含一个main函数C.C语言程序的基本组成单位是函数D.在编译C程序源程序时,可发现注释中的拼写错误 C8.结构化程序设计的三种基本结构是()。A.函数结构、分支结构、判断结构B.函数结构、嵌套结构、平行结构C.顺序结构、分支

3、结构、循环结构D.分支结构、循环结构、嵌套结构 C9.对于C语言源程序,以下叙述错误的是()。A.可以有空语句B.函数之间是平等的,在一个函数内部不能定义其它函数C.程序调试时如果没有提示错误,就能得到正确结果D.注释可以出现在语句的前面 D10.下面关于C语言用户标识符的描述,正确的是()。A.不区分大小写B.用户标识符不能描述常量C.类型名也是用户标识符D.用户标识符可以作为变量名 D11.以下()是正确的变量名。A.5fB.ifC.f.5D._f5 D12.以下()是正确的常量。A.E-5B.1E5.1C.a12D.32766L D13.以下()是正确的变量名。A.a.beeB.-p11

4、C.intD.p_11 C14.以下()是正确的字符常量。单引号括起来A.cB.C.WD.32a A15.以下()是不正确的字符串常量。双引号括起来A.abc B.1212C.0D. B16.以下()是错误的整型常量。A.-0xcdfB.018 /八进制数不能超过8C.0xeD.011 B17.以下()是正确的浮点数。A.e3 /e前面必须有数字,指数必须为整数B.62C.2e4.5D.123 A18.若有说明语句:charc=95;则变量c包含()个字符。A.1 ddd :表示1到3位八进制数所代表的字符B.2 xhh表示 1到2位十六进制数所代表的字符C.3D.语法错误 A19.若有定义:

5、inta=2;则正确的赋值表达式是()。A.a-=(a*3)B.double(-a) /(double)(-a)C.a*3D.a*4=3 C20.语句x=(a=3,b=+a);运行后,x、a、b的值依次为()。A.3,3,4 /逗号运算符及逗号表达式B.4,4,3C.4,4,4D.3,4,3 B21.语句a=(3/4)+3%2;运行后,a的值为()。A.0B.1 /注意除号/ 两边均为整型时,结果为整数(不含小数点)C.2D.3 A22.char型变量存放的是()。/考查变量类型A.ASCII代码值B.字符本身C.十进制代码值D.十六进制代码值 C23.若有定义:intx,a;则语句x=(a=

6、3,a+1);运行后,x、a的值依次为()。A.3,3 /考查逗号表达式及逗号运算符B.4,4C.4,3D.3,4 B24.若有定义:inta;则语句a=(3*4)+2%3;运行后,a的值为()。A.12B.14C.11D.17 A25.若有定义:inta,b;doublex,则以下不符合C语言语法的表达式是()。A.x%(-3) /%两侧均应为整型数据B.a+=-2C.a=b=2D.x=a+b B26.若有定义:intx=2,y=3;floati;,则以下符合C语言语法的表达式是()。A.x=x*3=2 /x*3不是一个变量名B.x=(y=1)C.i=float(x) /应改为i=(floa

7、t)xD.i%(-3) /%两侧均应为整型数据C27.设double型变量a,b,c,e均有值;对代数式(3ae)/(bc),不正确的C语言表达式是()。A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*c /改为3*a*e/b/cD.a*e/c/b*3 B28.下面叙述正确的是()。A.2/3与2.0/3.0等价B.(int)2.0/3与2/3等价C.+5与6等价 /单独写+5是错误的,可以写成a=+5D.A与A等价 A29.下面叙述中,错误的是()。A.其算术运算对象不包含函数B.%(模运算符)的运算对象只能为整型量C.算术运算符的结合方向是自左至右D.自加和自减运算符的结合

8、方向是自右至左 A30.下面叙述正确的是()。/+ -只能用于变量,而不能用于常量或表达式A.强制类型转换运算的优先级高于算术运算B.若a和b是整型变量,(a+b)+是合法的C.A*B是不合法的D.A+B是合法的 B31.若有定义:intk,i=2,j=4;则表达式k=(+i)*(j-)的值是()。A.8B.12/注意前缀 后缀的区别C.6D.9 C32.设整型变量a为5,使b不为2的表达式是()。A.b=(+a)/3B.b=6-(-a)C.b=a%2 /结果为1D.b=a/2 C33.若有定义:inta=1,b=2,c=3;则语句+a|+b&+c;运行后b的值为()。A.1B.0C.2 /注

9、意运算的不完全性D.3 B34.若有定义:inti,j;则表达式(i=2,j=5,i+,i+j+)的值是()。A.7B.8C.9D.10 B35.若有定义:inta,b;则表达式(a=2,b=5,a*2,b+,a+b)的值是()。A.7B.8C.9D.10 B36.若有定义:intm=5,n=3;则表达式(m+1,n+1,(-m)+(n-)的值是()。A.6B.7C.8D.9 B37.已知inta;使用scanf()函数输入一个整数给变量a,正确的函数调用是()。A.scanf(%d,a);B.scanf(%d,&a);C.scanf(%f,&a);D.scanf(%lf,&a); D38.已

10、知doublea;使用scanf()函数输入一个数值给变量a,正确的函数调用是()。A.scanf(%ld,&a);B.scanf(%d,&a);C.scanf(%7.2f,&a); /输入数据时不能规定精度D.scanf(%lf,&a); B39.已知chara;使用scanf()函数输入一个字符给变量a,不正确的函数调用是()。A.scanf(%d,&a);B.scanf(%lf,&a); /字符型变量与整型等价,但不与浮点型等价C.scanf(%c,&a);D.scanf(%u,&a); B40.putchar()函数的功能是向终端输出()。/ char *str0;.;puts( st

11、r0);A.多个字符B.一个字符C.一个实型变量值D.一个整型变量表达式 D41.getchar()函数的功能是从终端输入()。A.一个整型变量值B.一个实型变量值C.多个字符D.一个字符 D42.若有定义:intx=1234,y=123,z=12;则语句printf(%4d+%3d+%2d,x,y,z);运行后的输出结果为()。A.123412312B.12341234123412341231231231212C.1234+1234+1234D.1234+123+12 A43.已有如下定义和输入语句,inta;charc1,c2;scanf(%d%c%c,&a,&c1,&c2);若要求a、c

12、1、c2的值分别为10、A和B,正确的数据输入是()。A.10AB /输入数据时,遇空格、回车、TAB、及非法输入 或按规定的宽度结束B.10ABC.10ABD.10AB B44.已有如下定义和输入语句:inta,b;scanf(%d,%d,&a,&b); /“格式控制”字符串中除了格式说明还有其他字符,则输入/时应在相应位置输入若要求a、b的值分别为10和20,正确的数据输入是()。A.1020B.10,20C.a=10,b=20D.10;20 D45.以下程序的运行结果是()。voidmain()inta=65;charc=A;printf(%x,%d,a,c);A.65,aB.41,aC

13、.65,65D.41,65 A46.下面叙述中,()不是结构化程序设计中的三种基本结构之一。A.数据结构B.选择结构C.循环结构D.顺序结构 A47.下面叙述中,()不是结构化程序设计三种基本结构的共同特点。A.先判断后执行B.单入口,单出口C.程序中没有执行不到的语句D.无死循环 A48.结构化程序设计不包括()。A.最优化B.自顶而下,逐步细化C.模块化设计D.结构化编码 D49.以下运算符中优先级最高的是()。A.B.|C.&D.+ /初等运算符() 单目 算术 关系 逻辑(不含!) 赋值 逗号A50.若有定义:intx=3,y=4;则表达式!x|y的值为()。A.1B.OC.3D.4

14、A51.若有定义:inti=7,j=8;则表达式i=j|ij的值为()。A.1B.变量i的值C.0D.变量j的值 C52.若希望当a的值为奇数时,表达式的值为真,a的值为偶数时,表达式的值为假。则不能满足要求的表达式是()。A.a%2=1B.!(a%2=0)C.!(a%2)D.a%2 D53.若有定义:intx=3,y=4,z=5;则值为0的表达式是()。A.x&yB.x=yC.x|y+z&y-zD.!(xy)&!z|1) /考查运算符优先级 A54.若有定义:inta=5,b=2,c=1;则表达式a-bb)&(y=cd)的值为()。A.0B.1C.5D.6 A61.若有定义:inta=2,b

15、=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是()。 /(float)(a+b)/2=2.5A.3.5B.3.0C.2.5D.2.0 C62.若有定义:intb=7;floata=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是()。A.2.5 /(b/2*(int)(a+c)/2)=10 注意运算顺序B.3.5C.4.5D.5.5 C63.若有定义:inta=6,b=2;charc1=a,c2=b;则表达式a+b%5+c2-c1的值是()。A.7B.8C.9D.表达式错误 B64.以下的if语句中,

16、x的值一定被重新赋值的是()。A.if(x=y)x+=y;B.if(xy&x!=y); /注意if语句后的空语句;x+=y;C.if(x!=y)scanf(%d,&x);elsescanf(%d,&y);D.if(xy)z=x+y;elsez=x-y;A.3B.-1C.4D.不确定 D68.若有定义:inta=1,b=2,c=3;则执行以下程序段后a,b,c的值分别为()。if(a=6)printf(%dn,n);elseprintf(%dn,+n);A.4B.5C.6D.7 B73.设有整型变量x,下述语句()不会出现死循环。A.for(;x+=1);B.for(;(x=getchar()!

17、=n;);C.while(1)x+;D.for(x=10;x-); B74.对于整型变量x,与while(!x)等价的是()。A.while(x!=0)B.while(x=0)C.while(x!=1)D.while(x) A75.对于整型变量x和y,语句for(x=0,y=0;(y!=123)&(x4);x+)y+;中的“y+;”被执行()。A.4次B.0次C.123次D.3次 B76.在c语言中while循环和do-while循环的主要区别是()。A.do-while循环体内可以使用break语句,while循环体内不能使用break语句B.do-while的循环体至少无条件执行一次,wh

18、ile的循环体不是C.do-while循环体内可以使用continue语句,while循环体内不能使用continue语句D.while的循环体至少无条件执行一次,do-while的循环体不是 B77.以下程序段运行后,循环体运行的次数为()。inti=10,x;for(;i10;i+) x=x+i;A.10B.0C.1D.无限 D78.以下程序段运行后变量n的值为()。inti=1,n=1;for(;i3;i+) continue;n=n+i;A.4B.3C.2D.1 B79.以下程序的运行结果是()。voidmain()intsum=0,item=0;while(item5)item+;s

19、um+=item;if(sum=5)break;printf(%dn,sum);A.10B.15C.5D.6 C80.以下程序的运行结果是()。voidmain()intsum=0,item=0;while(item=6)break;printf(%dn,sum);A.10B.15C.6D.7 B81.以下程序的运行结果是()。voidmain()intsum=0,item=0;while(item5)item+;if(item=2)continue;sum+=item;printf(%dn,sum);A.10B.13C.15D.1 A82.下列数组定义中,正确的是()。A.inta5=0;B

20、.inta=012; / inta=0,1,2; 注意元素与元素之间加逗号C.inta5=0; / inta5=0;D.inta; /必须指明数组大小A83.下列数组定义中,正确的是()。A.inta10;B.intn=10,an; /下标必须是常量表达式C.intN=10;intaN;D.intn;scanf(%d,&n);intan; A84.已知inta10;则对a数组元素引用不正确的是()。A.a10 /10个元素的数组下标范围从0到9 ,故此题越界B.a3+5C.a10-10 /引用数组元素时,下标可以是整型常量或整型表达式D.a5 B85.若有定义:inta3=0,1,2;则a1的

21、值为()。A.0B.1C.2D.3 A86.若有定义:inta5=1,2,3,4,5;则语句a1=a3+a2+2-a3-1;运行后a1的值为()。A.6B.5C.1D.2 D87.以下能对一维数组a进行正确初始化的语句是()。A.inta5=(0,0,0,0,0);B.inta5=0; /注意使用大括号C.inta5=1,2,3,4,5,6,7;/多余2个D.inta=0; /定义一个只有一个元素的一维数组,指为0D88.下面程序段的运行结果是()。inti=0,a=3,4,5,4,3;doai+;while(a+i5);for(i=0;i5);for(i=0;i2);for(i=0;i5;i

22、+)printf(%d,ai);A.112345B.12345C.1112131415D.1112345 C91.设有如下程序段:inta33=1,0,2,1,0,2,1,0,1,i,j,s=0;for(i=0;i3;i+)for(j=0;ji;j+)s=s+aij;则执行该程序段后,s的值是()。A.0B.1C.2D.3 B92.有如下定义inta3=1,2,3,4,5,6,7,8; /考查二维数组的初始化则数组a的行数是()。A.2B.3C.4D.无法确定的 D93.以下数组定义中,正确的是()。A.inta23=1,2,3,4,5,6,7;/多余1个B.inta=1,2,3,4,5,6,

23、7,8,9; /第二维长度不能省C.inta2=1,2,3,4,5,6;D.inta4=6; A94.若有定义:inta34=1,2,0,1,2,3;则a11的值为()。A.0B.1,2C.1D.3 A95.若有定义:inta33;则表达式&a21-a的值为()。A.7 /&a21-a 代表两者之间的元素个数,类似指向同种类型的指针相减B.8C.6D.9 C96.若有定义:inti=0,x=0;inta33=1,2,3,4,5,6,7,8,9;则以下程序段运行后x的值为()。for(;i字符串2,返回一个正整数,否则返回负整数B.0 /strcmp(str1,str2)C.-1D.2 B106

24、.以下程序段运行后屏幕输出为()。charstr=abcd; 注意代表一个反斜杠字符printf(%d,strlen(str);A.4B.5C.6D.7 A107.以下程序段运行后屏幕输出为()。charstr80;strcpy(str,hello);printf(%d,strlen(str);A.5B.6C.7D.80 B108.若有定义:charstr16=abcdm,*ps,*str2=abcdef;()是正确的。A.strcpy(str1,str2);B.表达式strcmp(str1,str2)的值大于0C.str1=str2;D.表达式strlen(str1)的值为6 A109.设有

25、如下函数定义:intfun(char*str)char*p=str;while(*p!=0)p+;return(p-str);则以下语句执行后的输出结果是()。/返回字符串个数printf(%dn,fun(Student);A.7B.8C.9D.10 A110.以下程序的运行结果是()。intfun(intarray44)intj;for(j=0;j4;j+)printf(%2d,array2j);printf(n);main()inta44=0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0;fun(a);A.2005B.1004C.0120D.0450 C111.如下fun函数

26、的类型是()。fun(floatx)doubley;intz;y=x*x;z=(int)y;return(z); A.voidB.doubleC.intD.float B112.以下程序运行后屏幕输出为()。#includeintf(intx,inty)return(x+y);main()inta=2,b=3,c;c=f(a,b);printf(%d+%d=%dn,a,b,c);A.0B.2+3=5 C.2+3=0D.3+2=5 D113.以下程序运行后屏幕输出为()。 /考查全局变量与局部变量的区别及范围#includeinta=2,b=3;intmax(inta,intb)intc;c=a

27、b?a:b;return(c);main()inta=4;printf(%d,max(a,b);A.2,3B.2C.3D.4 B114.以下程序运行后屏幕输出为()。#includevoidf(inti) /两个函数中的a不一样inta=2;a=i+;printf(%d,a);main()inta=1,c=3;f(c);a=c+;printf(%d,a);A.4,3B.3,3C.4,5D.3,5 D115.若有如下函数定义: /注意静态变量的使用intfun()staticintk=0;return+k;以下程序段运行后屏幕输出为()。inti;for(i=1;i=5;i+)fun();pri

28、ntf(%d,fun();A.0B.1C.5D.6 D116.下面程序的输出结果是()。#includeintglobal=100;fun()intglobal=5;return+global;voidmain()printf(%dn,fun();A.100B.101C.5D.6 B117.下列关于C语言函数的描述中,正确的是()。A.函数的定义可以嵌套,但函数的调用不可以嵌套B.函数的定义不可以嵌套,但函数的调用可以嵌套C.函数的定义和函数的调用都可以嵌套D.函数的定义和函数的调用都不可以嵌套 D118.若有以下宏定义,#defineMOD(x,y)x%y则执行以下程序段后,z的值是()。i

29、ntz,a=15,b=100;z=MOD(b,a);A.100B.15C.11D.10 B119.以下叙述中,正确的是()。A.“#definePRICE=30”定义了与30等价的符号常量PRICEB.预编译处理命令行都必须以“#”开头C.宏名只能包含大写字母和数字字符 /可以包括小写字母D.在程序的一行上可以书写几个有效的宏定义 A120.以下叙述中,正确的是()。A.宏展开不占用运行时间,只占用编译时间B.预编译处理命令行必须以分号结束C.一个源程序只能有一个预编译处理命令行D.使用带参数的宏定义时,应该说明每个参数的数据类型 C121.以下的叙述中不正确的是()。A.宏展开不占用运行时间

30、,只占用编译时间B.宏名无类型C.宏名必须用大写字母表示D.预处理命令行都必须以#号开始 A122.若有定义:#definePI3,则表达式PI*2*2的值为()。A.12B.4C.3D.不确定 C123.以下程序运行后,屏幕输出为()。#defineMIN(a,b)(a)(b)?(a):(b)main()intx=2,y=3,z;z=2*MIN(x,y);printf(%d,z);A.2B.3C.4D.6 A124.下面程序的输出结果是()。#include#defineSQR(x)(x*x)voidmain()inta,b=3;a=SQR(b+2);printf(n%d,a);A.11B.

31、25C.不定值D.产生错误 C125.下面程序的输出结果是()。#include#defineONE1#defineTWOONE+1#defineTHREETWO+1voidmain()printf(%dn,THREE-ONE);A.产生错误B.1C.2D.3 B126.以下叙述中正确的是()。A.预处理命令行必须位于C源程序的起始位置B.在C语言中,预处理命令行都以#开头C.每个C程序必须在开头包含预处理命令行:#includeD.C语言的预处理不能实现宏定义和条件编译的功能 D127.设有以下语句,则()是对a数组元素的不正确引用,其中0a10=0,1,2,3,4,5,6,7

32、,8,9,*p=a;A.ap-aB.*(&ai)C.piD.*(*(a+i) C128.对于基类型相同的两个指针变量之间,不能进行的运算是()。A.B.=C.+D.- B129.执行以下程序段的输出结果是()。inta=10,*p=&a;printf(%d,+*p);A.10B.11C.变量a的地址D.变量a的地址+1 A130.以下程序段运行后*(p+3)的值为()。chara=good;char*p;p=a;A.dB.0C.存放d的地址D.o C131.以下程序段运行后*(+p)的值为()。chara5=work;char*p;p=a; A.wB.存放w的地址C.oD.存放o的地址 B13

33、2.若有定义:int*p,a=4;p=&a;则以下均代表地址的是()。A.a,pB.&a,pC.&a,*pD.a,*p D133.若有说明语句:double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是()。A.*p=&a;scanf(%lf,p);B.*p=&a;scanf(%lf,*p);C.p=&a;scanf(%lf,*p);D.p=&a;scanf(%lf,p); A134.在16位编译系统上,若有定义inta=10,20,30,*p=&a;当执行p+;后下列叙述错误的是()。A.p向高地址移了一个字节B.p与a+1等价C.语句printf(%d,*p);输出20D.

34、p指向数组元素a1 B135.下面语句正确的是()。A.int*p;*p=20;B.char*s=abcdef;printf(%sn,s);C.charstr=abcd;str+;/数组名不能改变D.charstr=a,b,c;printf(%s,str); /%s输出字符串,必须以0结束D136.若有以下程序段,且0i4,0j3,则不能正确访问a数组元素的是()。inti,j,(*p)3;inta3=1,2,3,4,5,6,7,8,9,10,11,12;p=a;A.*(*(a+i)+j)B.pijC.(*(p+i)jD.pi+j B137.若函数fun的函数头为:intfun(inti,intj)且函数指针变量p定义如下:int(*p)(inti,intj);则要使指针p指向函数fun的赋值

温馨提示

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

评论

0/150

提交评论