第 1 页:选择题 |
第 3 页:程序填空题 |
第 4 页:程序改错题 |
第 5 页:程序设计题 |
点击查看:2015计算机二级考试《C语言》冲刺试题及答案汇总
一、选择题
1有以下程序:
程序运行后的输出结果是( )O
A.321678B.876543C.1098765D.345678
参考答案:A
参考解析:本题中的函数fun()的功能是将数组k中前5个元素倒序,所以返回后数组k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印输出k[2]到k[7]元素的值,即321678,所以选择A。
2有以下程序段:
程序运行后的输出结果是( )。
A.a=10 b=50 C=30B.a=10 b=50 c=10C.a=10 b=30 c=10D.a=50 b=30 c:50
参考答案:B
参考解析:本题中a>b的条件不满足,所以不执行逗号表达式a=b,b=c;的操作,而是执行c=a操作,即c的值勾10。
3有以下程序:
程序运行后的输出结果是( )。
A.*2*6B.}3*5一C.}5D.*7
参考答案:D
参考解析:do……while语句是先执行后判断,所以第一次先执行循环体,判断i%3==1的条件,由于i为5,所以余数为2,条件不成立,执行i++,i的值为6,判断while条件为真;第二次执行循环体,同第一次循环的执行过程一样,i的值变为7,判断while条件为真;第三次执行循环体,此时i%3==1,条件成立,再判断i%5==2也成立,打印*与i的值,即*7,然后执行break语句,跳出循环。所以选择D选项。
4设有定义:int X=2;,以下表达式中,值不为6的是( )。
A.2*x.x+=2B.x++,2*xC.x*=(1+x)D.x*!x+1
参考答案:A
参考解析:A选项中逗号表达式先计算第一表达式2*x,然后计算表达式x+=2的值,即x=x+2即4,整个逗号表达式为第二个表达式的值4,所以选择A。B选项中首先计算逗号表达式中第一表达式x++,此时x为3,在执行第二个表达式2·X=2*3=6,所以逗号表达式为第二个表达式的值6。C选项的赋值表达式可以表示为x=x *(1+x)=2}(1+2)=6。D选项中的表达式可以表示为x=X}(x+1)=2·3=60
5有以下程序:
程序运行后的输出结果是( )。
A.9,18B.8,11C.7,11D.10,14
参考答案:D
参考解析:第一次循环a的值为1,满足条件,执行b+=a,与a+=2,则b的值变为3,a的值变为3。执行8++,a的值为4,满足条件进入第二次循环,执行完循环体后b的值为7,a的值为6。执行a++,a的值为7,满足条件进入第三次循环,执行完循环体后b的值为14,a的值为9。执行a++,a的值变为10,不满足条件,循环结束。所以选择D选项。’
6若a是数值类型,则逻辑表达式(a==1)I l(a!=1)的值是( )。
A.1B.0C.2D.不知道a的值,不能确定
参考答案:A
参考解析:逻辑或”I|”要求只要两边的运算对象有一个非零,结果就为真。虽然不知道a的值,但是若a为1,则左边运算对象为1;若a的值不是l,则右边运算对象的值为1,所以总能保证一边非零,所以结果为真,即1。
7有以下程序:
程序运行后的输出结果是( )。
A.7.5B.31.5C.程序有错无输出结果D.14.0
参考答案:C
参考解析:宏定义不是C语句,末尾不需要有分号。所以语句printf(”%4.1f\n”,S(8+b));展开后为parintf(”%4.1f\n”,3.5;*a+b}a+b;);所以程序会出现语法错误。
8以下叙述中正确的是( )。
A.在C语言中,预处理命令行都以“#”开头
B.预处理命令行必须位于c源程序的起始位置
C.#include必须放在C程序的开头
D.C语言的预处理不能实现宏定义和条件编译的功能
参考答案:A
参考解析:
预处理命令是以“#”号开头的命令,它们不是C语言的可执行命令,这些命令应该在函数之外书写,一般在源文件的最前面书写,但不是必须在起始位置书写,所以B、c错误。C语言的预处理能够实现宏定义和条件编译等功能,所以D错误。
9设有定义:
则a和b的值分别是( )。
A.87和6.0B.876和543.0C.87和543.0D.76和543.0
参考答案:A
参考解析:在格式字符前加入一个整数可以指定输入数据所占的宽度,所以赋值时会将87赋给int型变量a,把6.0赋给im型float型变量b。
10以下选项中,能用作数据常量的是( )。
A.115LB.0118C.1.5el.5D.0115
参考答案:A
参考解析:A选项中l15L表示ll5是长整型数据,合法。B选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B错误。c选项中e后面应该是整数不能是小数l.5,所以c错误。D选项中八进制常量应该是数字…0开始,而不是字母…O开始。
11有如下程序段:
其输出结果是( )。
A.123.141593B.1,23.141593C.12,3.141593D.123.1415930
参考答案:A
参考解析: printf函数中格式字符“%8.6”的含义是:变量Y的输出宽度为8(包括小数点),小数点后面保留6位小数,且右对齐。所以选择A。
12软件设计中模块划分应遵循的准则是( )。
A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合
参考答案:B
参考解析:软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚度应尽可能。
13下列关于线性链表的叙述中,正确的是( )。
A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C.进行插入与删除时,不需要移动表中的元素
D.以上说法均不正确
参考答案:C
参考解析:一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。线性链表中数据的插入和删除都不需要移动表中的元素,只需改变结点的指针域即可。
14有以下程序:
程序运行后的输出结果是( )。
A.1 2B.1 4C.123 4D.123 456
参考答案:D
参考解析:fprintf()函数向文本文件输出数据,将输出的内容按格式输出翻硬盘的文本文件中。执行两次fprintf后。文件中的内容为。l23 456”,所以D选项正确。
15有以下定义语句,编译时会出现编译错误的是( )。
A.char a=’\x2d’;B.char a=。\n。;C.char a=…a;D.char a=”aa”:
参考答案:D
参考解析:D选项中将字符串常量…aa赋给字符变量a是错误的。
16有以下程序:
程序执行后的输出结果是( )。
A.357B.753C.369D.751
参考答案:A
参考解析:二维数组t[][3]实际上指t[3][3]={{9,8,7},{6,5,41,{3,2,1}},通过循环语句for语句可以得到i=0,t[2][0]=3、i=1,t[1][1]=5、i=2,t[0][2]=7、i=3时循环结束即t[2][0]=3、t[1][1]=5、t[0][2]=7。因此A选项正确。
17以下叙述中错误的是( )。
A.使用三种基本结构构成的程序只能解决简单问题
B.结构化程序由顺序、分支、循环三种基本结构组成
C.C语言是-种结构化程序设计语言
D.结构化程序设计提倡模块化的设计方法
参考答案:A
参考解析:使用顺序,选择(分支),循环三种基本结构构成的程序可以解决所有问题,而不只是解决简单问题,所 以A错误。
18若有以下语句:typedef struct S{int 9;char h;}T;以下叙述中正确的是( )。
A.可用s定义结构体变量B.可用T定义结构体变量C.S是struct类型的变量D.T是struct S类型的变量
参考答案:B
参考解析:本题考查typledef重新声明一种结构体类型,那么T为结构体类型,而不是结构体变量,所以B选项正确。
19有两个关系R、S如下:
由关系R通过运算得到关系s,则所使用的运算为( )。
A.选择B.投影C.插入D.连接
参考答案:B
参考解析:投影运算是指对于关系内的域指定可引人新的运算。本题中S是在原有关系R的内部进行的,是由R中原有的那些域的列所组成的关系。所以选择8。
20设变量已正确定义并赋值,以下正确的表达式是( )。
A.X=Y+z+5,++YB.int(15.8%5)C.X=Y*5=X+ZD.X=25%5.0
参考答案:A
参考解析:B与D选项中取模运算符%的左右两个操作数均应为整数,所以B、D错误。c选项中不能将X+Y的值赋给表达式Y*5,所以c错误。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |