计算机二级《C语言》选择题题库与答案
(1)程序流程图中带有箭头的线段表示的是( )。
A.图元关系
B.数据流
C.控制流
D.调用关系
(2)结构化程序设计的基本原则不包括( )。
A.多态性
B.自顶向下
C.模块化
D.逐步求精
(3)软件设计中模块划分应遵循的准则是( )。
A.低内聚低耦合
B.高内聚低耦合
C.低内聚高耦合
D.高内聚高耦合
(4)在软件开发中,需求分析阶段产生的主要文档是( )。
A.可行性分析报告
B.软件需求规格说明书
C.概要设计说明书
D.集成测试计划
(5)算法的有穷性是指( )。
A.算法程序的运行时问是有限的。
B.算法程序所处理的数据量是有限的
C.算法程序的长度是有限的
D.算法只能被有限的用户使用
(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n一1)/2的排序方法是( )。A.快速排序
B.冒泡排序
C.直接插入排序
D.堆排序
(7)下列关于栈的叙述正确的是( )。
A.栈按“先进先出”组织数据,
B.栈按“先进后出”组织数据
C.只能在栈底插入数据
D.不能删除数据
(8)在数据库设计中,将E—R图转换成关系数据模型的过程属于( )。
A.需求分析阶段
B.概念设计阶段
C.逻辑设计阶段
D.物理设计阶段
(9)有三个关系R、s和T如下:
由关系R和s通过运算得到关系T,则所使用的运算为( )。
A.并
B.自然连接
C.笛卡尔积
D.交
(10)设有表示学生选课的三张表,学生s(学号,姓名,性别,年龄,身份证号),课程c(课号,课名),选课SC(学号,课号,成绩),则表sc的关键字(键或码)为( )。
A.课号,成绩
B.学号,成绩
C.学号,课号
D.学号,姓名,成绩
(11)以下叙述中错误的是( )。
A.c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
B.c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中
D.c语言源程序经编译后生成后缀为.obj的目标程序
(12)以下选项中,合法的一组c语言数值常量是( )。
A.12.0Xa23 4.5e0
B.028.5e…3 0xf
C.177 4el.5 0abe
D.0x8A 10,000 3.e5
(13)以下选项中不合法的标识符是( )。
A.&a
B.FOR
C.pfint
D.00
(15)若有定义:double a=22;inti=0,k=18;,则不符合c语言规定的赋值语句是( )。
A.i=(a+k)<=(i+k);B.i=a%11;
C.a=a++,i++;D.i=!a;
(16)有以下程序:
在VC 6.0平台上编译运行,程序运行后的输出结果是( )。
A.10,6
B.4,4
C.2,4
D.4。8
(17)有以下程序:
当执行程序时,按下列方式输入数据(从第l列开始,代表回车,注意:回车也是一个字符]1234则输出结果是( )。
A.12
B.12
C.1234
D.12343
(18)以下关于逻辑运算符两侧运算对象的叙述中正确的是( )。
A.可以是任意合法的表达式
B.只能是整数0或非0整数
C.可以是结构体类型的数据
D.只能是整数0或1
(19)有以下程序:
程序运行后的输出结果是( )。
A.1,1,2,0
B.0,0,0,3
C.编译有错
D.0,1,2,0
(20)有以下程序:
程序运行后的输出结果是( )。
A.a=2,b=2
B.a=2,b=1
C.a=1,b=l
D.a=1,b=0
程序段的输出结果是( )。
(22)有以下程序段:
以下关于程序段执行情况的叙述,正确的是( )。
A.for循环语句固定执行8次
B.当产生的随机数n为4时结束循环操作
C.当产生的随机数n为1和2时不做任何操作
D.当产生的随机数n为0时结束程序运行
(23)有以下程序:
程序运行后的输出结果是( )。
A.8
B.2
C.4
D.1
(24)以下叙述中错误的是( )。
A.可以给指针变量赋一个整数作为地址值
B.函数可以返回地址值
C.改变函数形参的值,不会改变对应实参的值
D.当在程序的开头包含头文件stdi0.h时,可以给指针变量赋NULL、、、
(25)设已有定义:float x;,则以下对指针变量P进行定义且赋初值的语句中正确的是( )。
(26)以下数组定义中错误的是( )。
(27)有以下程序:
程序运行后的输出结果是( )O
A.321678
B.876543
C.1098765
D.345678
(28)有以下程序:
程序运行后的输出结果是( )。
A.一3,一l,1,3,
B.B.一12,一3,0,0,
C.C.0,1,2,3,
D.D.一3,一3,一3,一3,
(29)设有定义:char s[81];int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是( )。
(30)设有定义:char p E]={’1’,‘2’,’3’},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是( )。
A.sizeof(p)
B.sizeof(char)
C.sizeof(*q)
D.sizeof(p[0])
参考答案与解析
(1)C
【解析】在数据流图中,用标有名字的箭头表示数据流。在程序流程图中,用标有名字的箭头表示控制流。所以选择C。
(2)A
【解析】结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用got0语句,所以选择A。
(3)B
【解析】软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的要求,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性强,易于理解和维护。模块之间的耦合应尽可能的低,模块的内聚度应尽可能。
(4)B
【解析】A错误,可行性分析阶段产生可行性分析报告。c错误,概要设计说明书是总体设计阶段产生的文档。D错误,集成测试计划是在概要设计阶段编写的文档。B正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。
(5)A
【解析】算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。有穷性是指算法程序的运行时间是有限的。
(6)D
【解析】除了堆排序算法的比较次数是O(nl092n),其他的都是n(n一1)/2。
(7)B
【解析】栈是按“先进后出”的原则组织数据的,数据的插入和删除都在栈顶进行操作。
(8)C
【解析】E—R图转换成关系模型数据则是把图形分析出来的联系反映到数据库中,即设计出表,所以属于逻辑设计阶段。
(9)D
【解析】自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以8错误。笛卡尔积是用R集合中元素为第一元素,s集合中元素为第二元素构成的有序对,所以c错误。根据关系T可以很明显地看出是从关系R与关系s中取得相同的关系组所以取得是交运算,选择D。
(10)C
【解析】学号是学生表s的主键,课号是课程表c的主键,所以选课表SC的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,所以选择C。
(11)A
【解析】C语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以A错误。由C语言构成的指令序列称c源程序,C源程序经过C语言编译程序编译之后生成一个后缀为.OBJ的二进制文件(称为目标文件);最后要由“连接程序”把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。
(12)A
【解析】C语言中八进制整型常量的开头是数字0,十六进制整型常量的数字开头是Ox。C语言中的实型常量有两种表示形式:小数形式,小数形式表示的实型常量必须要有小数点;指数形式,以“e”或“E',后跟一个整数来表示以l0为底数的幂数,且规定字母e或E之前必须要有数字,且e或E后面的指数必须为整数。B选项中028错误,八透割中没有数字8。c选项中4el.5中e后面的指数不是整数:D选项中3.e5小数点后面缺少数字。
(13)A
【解析】C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。因为C语言中区分大小写,所以B选项中的。FOR。可以作为标识符来用。A选项中含有非法字符&,所以选择A。
(14)A
【解析】B选项中函数pow(x,C)错误应该直接使用exp(x)函数。c选项中函数ah(n^x+e“x)错误,应该使用fabs()返回浮点数的绝对值。D选项中pow(x,n)参数顺序错误。
(15)B
【解析】取模运算符“%”,二元运算符,具有左结合性,参与运算的量均为整型。选项8中的a变量是doable实型,所以8不符合规定。
(16)D
【解析】C语言中利用sizeof()函数判断数据类型长度,在VC 6.0平台中,整型int占有4个字节,doable型数据占有8个字节。
(17)D
【解析】按照从键盘输入的数据可以_判断字符l给了变量a,字符2给了变量b,字符即回车给了变量c,字符3给了变量d。所以打印输出的结果为D选项。
(18)A
【解析】C语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可以是任意合法的表达式,所以选择A。
(19)C
【解析】本题中ff(a=1)b=1;与else d=3;之间多了语句c=2;所以会出现else语句的位置错误的编译失败提示。
(20)B
【解析】C88e常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的Case语句,就从此case子句执行下去,不在进行判断,直到碰到break或函数结束为止。所以执行内层switch(y)时只执行了a++,此时a的值为1。然后执行外层case 2语句的a十+;b++;a为2,b为1。所以结果为B。
(21)C
【解析】由于内层循环for(k=1;k<3;k++)后面直接跟了空语句“;”所以在循环内部什么操作也不做,跳出外层循环后执行打印语句,所以打印了一个“t”,选择c。
(22)D
【解析】Case常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的ease语句,就从此cafle子旬执行下去,不再进行判断,直到碰到break或函数结束为止。简单的说break是结束整个循环体,而continue是结束单次循环。B选项中当产生的随机数n为4时要执行打印操作。c选项中当产生的随机数为l和2时分别执行cage3与case4后面语句的内容。由于存在break语句所以for循环不是固定执行8次,执行次数与产生的随机数n有关系。
(23)A
【解析】第一次调用Ill=f(f(f(1))),第二次为m
=f(f(2)),第三次为m=f(4),即返回值为8。
(24)A
【解析】不能将一个整数直接赋给指针变量作为地址,所以A是错误的。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。
(25)B
【解析】指针是用来存放地址的变量,用(类型名+指针变量名)的形式定义。赋值时应将某个变量地址即8Ⅸ赋给指针变量,所以选择8。
(26)D
【解析】D选项中x[2][3]定义的是一个两行三列的二维数组,而在给数组元素赋值时却赋成了三行,所以错误。
(27)A
【解析】本题中的函数fun()的功能是将数组k中前5个元素倒序,所以返回后数组k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印输出k[2]到k[7]元素的值,即321678,所以选择A。
(28)A
【解析】本题中由fun函数可知,b[O]=a[o][0]一a[0][3]=1—4=一3,b[1]=a[1][1]一[1][2]=6—7=一1,b[2]=a[Z][2]一[2][1]=11一10=1,b[3]=8[3][3]一[3][1]=16—13=3。所以主函数中打印Y数组元素的值为A选项。
(29)C
【解析】字符串的输入不能使用scanf(”%s”,s);而应该使用9ets(s)。
(30)A
【解析】根据题目中的定义可以知道sizeof(p),计算的是数组P中所有元素所占用的字节数,而不是ch”型数据所占字节数。
【计算机二级《C语言》选择题题库与答案】相关文章:
计算机二级《C语言》选择题题库及答案11-16
2016计算机二级C语言题库及答案04-22
2017计算机二级C语言上机题库及答案08-07
2016年计算机二级《C语言》选择题题库05-20
2016年计算机二级c语言题库及答案08-12
计算机二级c语言题库2016精选06-23