考试吧

计算机等级

考试吧>等级考试>计算机二级考试>C语言>模拟试题>正文
2016年计算机二级考试C语言冲刺模拟题(3)
考试吧 2016-02-29 16:29:29 评论(1)条

  点击查看2016年计算机二级考试C语言冲刺模拟题汇总

  一、选择题

  1[单选题] 设有定义:char*C;以下选项中能够使C正确指向一个字符串的是( )。

  A.char str( )=”string”;C=str;

  B.scanf(”%s”,

  C.;C.c=getchar( );

  D.*c=”strin9”;

  参考答案:A

  参考解析:A选项为正确用法,先将字符串存于字符数组中,然后将数组名赋给字符指针(数组名代表数组首地址,定义数组时为其分配确定地址)。C选项错误,getchar()函数只能输入一个字符给字符型变量,而不是字符指针。B选项和D选项有类似的错误,两个选项并无语法错误,但运行时可能会出现问题。因为在B选项和D选项中,字符指针没有被赋值,是个不确定的值,指向一个不确定的内存区域,这个区域可能存放有用的指令或数据。在这个不确定的区域重新存放字符串,可能会发生无法预知的错误。因此A选项正确。

  2[单选题] 若有以下程序

  

2016年计算机二级考试C语言冲刺模拟题(3) 

  则程序的输出结果是

  A.5,6,0B.6,0,0C.6。6,1D.5,6,1

  参考答案:C

  参考解析:本题重点考查C语言中for语句和逻辑表达式,for语句的一般形式为:

  for(表达式1;表达式2;表达式3)语句其循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循环变量增量)”都是选择项,即可以缺省,但“;”不能缺省。该题目中省了“表达式1(循环变量赋初值)”和“表达式3(循环变量增量)”。for(;a&&(b==0);){b+=a s a-=e++;}相当于while(a&&(b==0)){b+=a;a-=c++;}。因此c选项正确。

  3[单选题] 以下叙述中正确的是

  A.对于逻辑表达式:a++|| b++,设a的值为1,则求解表达式的值后,b的值会发生改变

  B.对于逻辑表达式:a++&&b++,设a的值为0,则求解表达式的值后。b的值会发生改变

  C.else不是一条独立的语句,它只是if语句的一部分

  D.关系运算符的结果有三种:0,1,-1

  参考答案:C

  参考解析:B选项和A选项中,&&、||都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值。而且&&、||的优先级比++高,所以题中只需判断a的值即可知道符合表达式的真假;D选项中,关系运算符的结果有“真”和“假”两种。因此c选项正确。

  4[单选题] 以下选项中合法的c语言常量是( )。

  A.,C—STR’B.2014.1C.”\l.0D.2EK

  参考答案:B

  参考解析:所谓常量是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,但使用单引号,错误,选项c,D,为实型常量中指数形式,但指数形式e(E)之前必须是数字,之后必须为整数,错误。故答案为B选项。

  5[单选题] 有以下程序-

  

2016年计算机二级考试C语言冲刺模拟题(3) 

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

  A.4B.2C.8D.1

  参考答案:C

  参考解析:在c语言中,需要在main函数后面定义函数,需要提前声明,否则调用报错,无法找到该函数。HI=f(f(f(n))),一共调用3次f()函数,f()函数是对n:it2,因此,结果是n}2}2$2,得到结果为8。故答案为c选项。

  6[单选题] 若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是( )。

  

2016年计算机二级考试C语言冲刺模拟题(3) 

  参考答案:A

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

  7[单选题] 有以下程序

  

2016年计算机二级考试C语言冲刺模拟题(3) 

  程序运行后的输出结果是

  A.41;20;80;B.41;22;64;C.40;21;80;D.43;20;81;

  参考答案:A

  参考解析:声明结构类型S中有两个整形变量x,y,在main函数中,为s结构类型定义一个数组变量data初始化3个结构体元素,分别两两赋值给结构体中的x,y。在for循环中,对3个结构体元素y值转换成二进制数后向右移一位,再对此时x,y值依次进行输出,答案为A选项。

  8[单选题] 设有定义:char*C;以下选项中能够使C正确指向一个字符串的是( )。

  A.char str( )=”string”;C=str;

  B.scanf(”%s”,

  C.;C.c=getchar( );

  D.*c=”strin9”;

  参考答案:A

  参考解析:A选项为正确用法,先将字符串存于字符数组中,然后将数组名赋给字符指针(数组名代表数组首地址,定义数组时为其分配确定地址)。C选项错误,getchar()函数只能输入一个字符给字符型变量,而不是字符指针。B选项和D选项有类似的错误,两个选项并无语法错误,但运行时可能会出现问题。因为在B选项和D选项中,字符指针没有被赋值,是个不确定的值,指向一个不确定的内存区域,这个区域可能存放有用的指令或数据。在这个不确定的区域重新存放字符串,可能会发生无法预知的错误。因此A选项正确。

  9[单选题] 若有以下程序

  

2016年计算机二级考试C语言冲刺模拟题(3) 

  则程序的输出结果是

  A.5,6,0B.6,0,0C.6。6,1D.5,6,1

  参考答案:C

  参考解析:本题重点考查C语言中for语句和逻辑表达式,for语句的一般形式为:

  for(表达式1;表达式2;表达式3)语句其循环中的“表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循环变量增量)”都是选择项,即可以缺省,但“;”不能缺省。该题目中省了“表达式1(循环变量赋初值)”和“表达式3(循环变量增量)”。for(;a&&(b==0);){b+=a s a-=e++;}相当于while(a&&(b==0)){b+=a;a-=c++;}。因此c选项正确。

  10[单选题] 以下叙述中正确的是

  A.对于逻辑表达式:a++|| b++,设a的值为1,则求解表达式的值后,b的值会发生改变

  B.对于逻辑表达式:a++&&b++,设a的值为0,则求解表达式的值后。b的值会发生改变

  C.else不是一条独立的语句,它只是if语句的一部分

  D.关系运算符的结果有三种:0,1,-1

  参考答案:C

  参考解析:B选项和A选项中,&&、||都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值。而且&&、||的优先级比++高,所以题中只需判断a的值即可知道符合表达式的真假;D选项中,关系运算符的结果有“真”和“假”两种。因此c选项正确。

  11[单选题] 以下选项中合法的c语言常量是( )。

  A.,C—STR’B.2014.1C.”\l.0D.2EK

  参考答案:B

  参考解析:所谓常量是指在程序运行的过程中,其值不能被改变的量。在C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。选项A是字符串,但使用单引号,错误,选项c,D,为实型常量中指数形式,但指数形式e(E)之前必须是数字,之后必须为整数,错误。故答案为B选项。

  12[单选题] 有以下程序-

  

2016年计算机二级考试C语言冲刺模拟题(3) 

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

  A.4B.2C.8D.1

  参考答案:C

  参考解析:在c语言中,需要在main函数后面定义函数,需要提前声明,否则调用报错,无法找到该函数。HI=f(f(f(n))),一共调用3次f()函数,f()函数是对n:it2,因此,结果是n}2}2$2,得到结果为8。故答案为c选项。

  13[单选题] 若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是( )。

  

2016年计算机二级考试C语言冲刺模拟题(3) 

  参考答案:A

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

  14[单选题] 有以下程序

  

2016年计算机二级考试C语言冲刺模拟题(3) 

  程序运行后的输出结果是

  A.41;20;80;B.41;22;64;C.40;21;80;D.43;20;81;

  参考答案:A

  参考解析:声明结构类型S中有两个整形变量x,y,在main函数中,为s结构类型定义一个数组变量data初始化3个结构体元素,分别两两赋值给结构体中的x,y。在for循环中,对3个结构体元素y值转换成二进制数后向右移一位,再对此时x,y值依次进行输出,答案为A选项。

  15[单选题] 有以下程序:

  

2016年计算机二级考试C语言冲刺模拟题(3) 

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

  A.x=4B.X=8C.x=6D.x=12

  参考答案:B

  参考解析:eoulinue的作用是跳出循环体中剩余的1语句而进行下一次循环。第一次执行外循环i的值为0,执行|x++,x的值变为l,第一次执行内层循环j的值为0,不满足if1条件,执行x++,x的值变为2,第二次内循环j的值为1,if条1件成立,跳出本次循环,第三次执行内循环j的值为2,不满足l if条件,x的值变为3,第四次执行内循环j的值为3满足条件1跳出本次内循环,x的值加l,即为4,第一次外循环结束。第1二次执行外循环时,同理,i的值被加了,4次,变为8,所以选择I,B选项。

  二、程序填空题

  下列给定程序的功能是调用fun函数建立班级通信录。通信录中记录每位学生的编号、姓名和电话号码。班级人数和学生信息从键盘读入,每个人的信息作为一个数据块写到名为my—file5.dat的二进制文件中。

  请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

  注意:部分源程序给出如下。

  不得增行或删行,也不得更改程序的结构!

  试题程序:

  

2016年计算机二级考试C语言冲刺模拟题(3) 

  

2016年计算机二级考试C语言冲刺模拟题(3) 

  

  三、程序修改题

  下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t中,然后把s中的字符按逆序连接到字符串t的后面。

  例如,当s中的字符串为“ABCDE”时,则t中的字符串应为“ABCDEEDCBA'’。

  请改正程序中的错误,使它能得出正确的结果。

  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

  试题程序:

  

2016年计算机二级考试C语言冲刺模拟题(3) 

  

2016年计算机二级考试C语言冲刺模拟题(3) 

  四、程序设计题

  函数fun的功能是:将两个两位数的正整数a,b合并成一个整数放在C中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。

  例如,当a=45,b=12时,调用该函数后c=4152。

  注意:部分源程序给出如下。

  请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

  试题程序:

  

2016年计算机二级考试C语言冲刺模拟题(3) 
展开全文
评论(1条) 发表
Copyright © 2004-
考试吧(m.566.com)北京美满明天科技有限公司
社会统一信用代码:91110108MA01WU311X
帮助中心