[2017年计算机二级c语言真题]2017年计算机二级C语言考前模拟试题及答案5

副标题:2017年计算机二级C语言考前模拟试题及答案5

时间:2023-08-20 18:39:01 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

 

  (1)以下叙述中错误的是(  )。

  A.c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

  B.c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

  C.用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中

  D.c语言源程序经编译后生成后缀为.obj的目标程序

  (2)以下选项中,合法的一组c语言数值常量是(  )。

  A.12.0Xa23 4.5e0

  B.028.5e…3 0xf

  C.177 4el.5 0abe

  D.0x8A 10,000 3.e5

  (3)以下选项中不合法的标识符是(  )。

  A.&a

  B.FOR

  C.pfint

  D.00

  (4)在软件开发中,需求分析阶段产生的主要文档是(  )。

  A.可行性分析报告

  B.软件需求规格说明书

  C.概要设计说明书

  D.集成测试计划

  (5)若有定义: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;

  (6)有以下程序:

  2016年计算机二级C语言考前30天必做题(3)

  在VC 6.0平台上编译运行,程序运行后的输出结果是(  )。

  A.10,6

  B.4,4

  C.2,4

  D.4。8

  (7)有以下程序:

  2016年计算机二级C语言考前30天必做题(3)

  当执行程序时,按下列方式输入数据(从第l列开始,代表回车,注意:回车也是一个字符]1234则输出结果是(  )。

  A.12

  B.12

  C.1234

  D.12343

  (8)以下关于逻辑运算符两侧运算对象的叙述中正确的是(  )。

  A.可以是任意合法的表达式

  B.只能是整数0或非0整数

  C.可以是结构体类型的数据

  D.只能是整数0或1

  (9)有以下程序:

  2016年计算机二级C语言考前30天必做题(3)

  程序运行后的输出结果是(  )。

  A.1,1,2,0

  B.0,0,0,3

  C.编译有错

  D.0,1,2,0

  (10)有以下程序:

  2016年计算机二级C语言考前30天必做题(3)

  2016年计算机二级C语言考前30天必做题(3)

  程序运行后的输出结果是(  )。

  A.a=2,b=2

  B.a=2,b=1

  C.a=1,b=l

  D.a=1,b=0

  (11)以下叙述中错误的是(  )。

  A.c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

  B.c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

  C.用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中

  D.c语言源程序经编译后生成后缀为.obj的目标程序

  (12)有以下程序段:

  2016年计算机二级C语言考前30天必做题(3)

  以下关于程序段执行情况的叙述,正确的是(  )。

  A.for循环语句固定执行8次

  B.当产生的随机数n为4时结束循环操作

  C.当产生的随机数n为1和2时不做任何操作

  D.当产生的随机数n为0时结束程序运行

  (13)有以下程序:

  2016年计算机二级C语言考前30天必做题(3)

  程序运行后的输出结果是(  )。

  A.8

  B.2

  C.4

  D.1

  (14)以下叙述中错误的是(  )。

  A.可以给指针变量赋一个整数作为地址值

  B.函数可以返回地址值

  C.改变函数形参的值,不会改变对应实参的值

  D.当在程序的开头包含头文件stdi0.h时,可以给指针变量赋NULL、、、

  (15)设已有定义:float x;,则以下对指针变量P进行定义且赋初值的语句中正确的是(  )。

  2016年计算机二级C语言考前30天必做题(3)

  (16)以下数组定义中错误的是(  )。

  2016年计算机二级C语言考前30天必做题(3)

  (17)有以下程序:

  2016年计算机二级C语言考前30天必做题(3)

  程序运行后的输出结果是(  )O

  A.321678

  B.876543

  C.1098765

  D.345678

  (18)有以下程序:

  2016年计算机二级C语言考前30天必做题(3)

  程序运行后的输出结果是(  )。

  A.一3,一l,1,3,

  B.B.一12,一3,0,0,

  C.C.0,1,2,3,

  D.D.一3,一3,一3,一3,

  (19)设有定义:char s[81];int i=0;,以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是(  )。

  2016年计算机二级C语言考前30天必做题(3)

  (20)设有定义:char p E]={’1’,‘2’,’3’},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是(  )。

  A.sizeof(p)

  B.sizeof(char)

  C.sizeof(*q)

  D.sizeof(p[0])

 

 

  (1)A【解析】C语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以A错误。由C语言构成的指令序列称c源程序,C源程序经过C语言编译程序编译之后生成一个后缀为.OBJ的二进制文件(称为目标文件);最后要由“连接程序”把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。

  (2)A【解析】C语言中八进制整型常量的开头是数字0,十六进制整型常量的数字开头是Ox。C语言中的实型常量

  有两种表示形式:小数形式,小数形式表示的实型常量必须要有小数点;指数形式,以“e”或“E',后跟一个整数来表示以l0为底数的幂数,且规定字母e或E之前必须要有数字,且e或E后面的指数必须为整数。B选项中028错误,八透割中没有数字8。c选项中4el.5中e后面的指数不是整数:D选项中3.e5小数点后面缺少数字。

  (3)A【解析】C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。因为C语言中区分大小写,所以B选项中的。FOR。可以作为标识符来用。A选项中含有非法字符&,所以选择A。

  (4)B【解析】A错误,可行性分析阶段产生可行性分析报告。c错误,概要设计说明书是总体设计阶段产生的文档。D错误,集成测试计划是在概要设计阶段编写的文档。B正确,需求规格说明书是后续工作如设计、编码等需要的重要参考文档。

  (5)B【解析】取模运算符“%”,二元运算符,具有左结合性,参与运算的量均为整型。选项8中的a变量是doable实型,所以8不符合规定。

  (6)D【解析】C语言中利用sizeof()函数判断数据类型长度,在VC 6.0平台中,整型int占有4个字节,doable型数据占有8个字节。

  (7)D【解析】按照从键盘输入的数据可以_判断字符l给了变量a,字符2给了变量b,字符即回车给了变量c,字符3给了变量d。所以打印输出的结果为D选项。

  (8)A【解析】C语言的逻辑运算符比较特别,它的操作数没有明确的数据类型,可以是任意合法的表达式,所以选择A。

  (9)C【解析】本题中ff(a=1)b=1;与else d=3;之间多了语句c=2;所以会出现else语句的位置错误的编译失败提示。

  (10)B【解析】C88e常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的Case语句,就从此case子句执行下去,不在进行判断,直到碰到break或函数结束为止。所以执行内层switch(y)时只执行了a++,此时a的值为1。然后执行外层case 2语句的a十+;b++;a为2,b为1。所以结果为B。

  (11)A【解析】C语言中的非执行语句不会被编译,不会生成二进制的机器指令,所以A错误。由C语言构成的指令序列称c源程序,C源程序经过C语言编译程序编译之后生成一个后缀为.OBJ的二进制文件(称为目标文件);最后要由“连接程序”把此.OBJ文件与C语言提供的各种库函数连接起来生成一个后缀为.EXE的可执行文件。

  (12)D【解析】Case常量表达式只是起语句标号作用,并不是该处进行条件判断。在执行switch语句时,根据switch的表达式,找到与之匹配的ease语句,就从此cafle子旬执行下去,不再进行判断,直到碰到break或函数结束为止。简单的说break是结束整个循环体,而continue是结束单次循环。B选项中当产生的随机数n为4时要执行打印操作。c选项中当产生的随机数为l和2时分别执行cage3与case4后面语句的内容。由于存在break语句所以for循环不是固定执行8次,执行次数与产生的随机数n有关系。

  (13)A【解析】第一次调用Ill=f(f(f(1))),第二次为m

  =f(f(2)),第三次为m=f(4),即返回值为8。

  (14)A【勰析l不能将一个整数直接赋给指针变量作为地址,所以A是错误的。函数的返回值可以是地址,即指针。函数调用中形参值的变化不会传递给实参。

  (15)B【解析】指针是用来存放地址的变量,用(类型名+指针变量名)的形式定义。赋值时应将某个变量地址即8Ⅸ赋给指针变量,所以选择8。

  (16)D【解析】D选项中x[2][3]定义的是一个两行三列的二维数组,而在给数组元素赋值时却赋成了三行,所以错误。

  (17)A【解析】本题中的函数fun()的功能是将数组k中前5个元素倒序,所以返回后数组k中的元素排列是5,4,3,2,1,6,7,8,9,10。所以打印输出k[2]到k[7]元素的值,即321678,所以选择A。

  (18)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选项。

  (19)C【解析】字符串的输入不能使用scanf(”%s”,s);而应该使用9ets(s)。

  (20)A【解析】根据题目中的定义可以知道sizeof(p),计算的是数组P中所有元素所占用的字节数,而不是ch”型数据所占字节数。

  一、选择题

  (21)B【解析】栈是先进后出的原则组织数据,所以人栈最早的最后出栈,所以选择B。

  (22)D【解析】循环队列有队头和队尾两个指针,但是循环队列仍是线性结构的,所以A错误;在循环队列中只需要队头指针与队尾两个指针来共同反映队列中元素的动态变化情况,所以B与C错误。

  (23)C【解析】当有序线性表为顺序存储时才能用二分法查找。可以证明的是对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较l092n次,而顺序查找需要比较n次。

  (24)A【解析】链式存储结构既可以针对线性结构也可以针对非线性结构,所以B与C错误。链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以D错误。

  (25)D【解析】数据流图中带箭头的线段表示的是数据流,即沿箭头方向传送数据的通道,一般在旁边标注数据流名。

  (26)B【解析】在需求分析阶段可以使用的工具有数据

  流图(DFD图),数据字典(DD),判定树与判定表,所以选择B。

  (27)A【解析】对象有如下一些基本特点:标识性、分类性、多态性、封装性、模块独立性好。所以选择A。

  (28)B【解析】因为一间宿舍可以住多个学生即多个学生住在一个宿舍中,但一个学生只能住一间宿舍,所以实体宿舍和学生之间是一对多的关系。

  (29)C【解析】数据管理发展至今已经历了三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。其中最后一个阶段结构简单,使用方便逻辑性强物理性少,在各方面的表现都,一直占据数据库领域的主导地位,所以选择C。

  (30)D【解析】自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,所以根据T关系中的有序组可知R与S进行的是自然连接操作。

  (31)B【解析】在一个C语言程序中可以进行多种算法的实现,对算法的个数没有规定,所以B错误。

  (32)A【解析】A选项中l15L表示ll5是长整型数据,合法。B选项是八进制常量的表示方法,但是在八进制中不能含有数字8,所以B错误。c选项中e后面应该是整数不能是小数l.5,所以c错误。D选项中八进制常量应该是数字…0开始,而不是字母…O开始。

  (33)D【解析】C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。所以D选项中的连接符不合法。

  (34)A【解析】8与D选项中取模运算符%的左右两个操作数均应为整数,所以B、D错误。c选项中不能将X+Y的值赋给表达式Y*5,所以c错误。

  (35)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

  (36)C【解析】z=X++,Y++,++y;因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式表示成(Z=x++),(Y++),(++y)。然后从左向右先计算表达式Z=X++,因为x++先使用后自增,所以z的值为1,X的值为2。再计算逗号表达式第二个表达式Y++,此时Y的值为2,最后计算第三个表达式++y,Y的值为3。

  (37)A【解析】本题目中字符变量cl是字符‘A’的ASCIl码加上4,即69所对应的字符‘E’。字符变量c2是字符‘A’的ASCIl码加上3,即68所对应的字符‘D’。但是打印输出时,cl以%C的格式输出,所以是E,c2以%d的格式输出,所以是68。

  (38)A【解析】条件表达式:x=表达式17表达式2:表送式3的含义是:先求解表达式1,若为非0(真),则求解表达芪2,将表达式2的值赋给x。若表达式1的值为0(假),则求辞表达式3,将表达式3的值赋给x。在本题中与表达式1::x—y)等价的是(x—Y<0I|x—Y>O)。

  (39)D【解析】在if else语句中else总是与离它最近的f配对。本题目中x为l所以!X为0,所以执行else if语句中的内容,判断(x==O)是否成立,因为x为1所以条件不成立,听以else if内部的if…else语句不再执行,所以Y的值还是初蛤值0。

  (40)A【解析】B选项中switch((int)x);语句中不应该有最后的分号。switch(exprl),中的exprl不能用浮点类型或10n9类型,也不能为一个字符串,所以c错误。ca”后面常量表达式的类型必须与switch后面表达式的类型一致,所以D错误。

2017年计算机二级C语言考前模拟试题及答案5.doc

本文来源:https://www.wddqw.com/vuvn.html