2015年9月计算机二级C语言高分突破模拟卷汇总(2)
26下列字符数组初始化语句中,不正确的是( )。
A.
B.
C.
D.
参考答案:A
参考解析:本题考查2个概念:①用单引号括起来的一个字符常量只能存放一个字符;②C语言中没有字符串变量,只能用字符数组来存储字符串。
27下列选项中,均属于通用软件的是( )。
A.Windows XP、AutoCAD、PowerPoint
B.Visual FoxPr0、Excel、SPSS
C.Word、Photoshop、Excel
D.C十+、CorelDraw、Firefox 2.0
参考答案:C
参考解析:软件可以分为系统软件和应用软件两类,应用软件又可以分为针对具体应用问题而专门开发的订制应用软件和在许多行业与部门中可以广泛使用的通用应用软件。
28下述程序执行的输出结果是( )。
A.are&youB.youC.are D.&
参考答案:A
参考解析:strcpy实现的功能是复制,该操作把are复制到a中,a[o][3]= ˊ&ˊ,且strcpy(a[1],″you″)把you复制到a[1]中,故输出a为“are&you”。
29若有下列定义,则( )是对a数组元素地址的正确引用。
A
B.
C.
D.
参考答案:D
参考解析:本题考查数组元素地址的引用。选项A中,p+5引用的是.[5]的地址,而数组a只有5个元素,即a[o]、a[1]、a[2]、a[3]、a[4],所以引用错误(注:数组元素下标从0开始);选项B中,*a+1指的是将数组a的第1个元素加1;选项C中,不存在这种引用方式;选项D中,&a[0]引用的是数组的首地址。
30有以下程序:
程序运行结果是( )。
A.accxyy,bbxxyyB.ace,bbxxyyC.accxxyy,bbxxyy D.accbbxxyy,bbxxyy
参考答案:D
参考解析:主函数中语句fun(ss,aa)的功能是将字符串aa连接到字符串ss的末尾。
31有以下程序段:
当执行上述程序段,从键盘上输入55566 7777abc后,y的值为( )。
A.55566.0B.566.0C.7777.0 D.566777.0
参考答案:B
参考解析:变量j只接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到浮点型变量y中。
32表达式'5'一'1'的值是( )。
A.整数4B.字符4C.表达式不合法D.字符6
参考答案:A
参考解析:在C语言中,字符都是变为其对应的ASCⅡ码值来参加算术运算的,但字符间的相对位置关系还是不变的,字符5和字符1的ASCⅡ码值相差仍是4。
33有以下程序:
程序运行结果是( )。
A.xy,aaaaccB.aaaacc,xyC.xcc,aabcc D.ace,xabce
参考答案:D
参考解析:函数fun(char s[][10],int n)比较二维字符数组s[][10]的每个字符串的首字符大小,如果前一个字符串首字符大于后一个字符串的首字符,则交换这两个字符串的首字符。
34下列说法正确的是( )。
A.在C语言中,可以使用动态内存分配技术定义元素个数可变的数组
B.在C语言中,数组元素的个数可以不确定,允许随机变动
C.在C语言中,数组元素的数据类型可以不一致
D.在C语言中。定义一个数组后,就确定了它所容纳的元素的个数
参考答案:D
参考解析:在C语言中,数组元素的个数是确定的,不允许随机变动,数组定义好后,它所能容纳的元素的个数也就确定了,并且同一个数组中所有元素都是同一类型。
35有下列程序:
程序执行后的输出结果是( )。
A.45B.50C.60 D.55
参考答案:C
参考解析:在函数int fun(int x[],int n)的定义中,变量sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储中占据着永久的存储单元。函数intfun(int x[],int n)的功能是求出数组x[]各个元素的和,所以在主函数中,调用函数fun(a,5)后,变量sum=1+2+3+4+5=15,当再次调用fun(b,4)后,变量sum=15+6+7+8+9=45,所以s=15+45=60。
36有以下程序:
程序的输出结果是( )。
A.
B.
C.
D.
参考答案:D
参考解析:{int k=-3;if(k<=0)printf(″****\n″)else wind(″&&&&\n″);)中printf(″****\n″)缺少分号,因此会报编译错误。
37下列说法不正确的是( )。
A.调用函数时,实参可以是表达式
B.调用函数时,实参与形参可以共用内存单元
C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等
D.调用函数时,实参与形参的类型必须一致
参考答案:B
参考解析:本题考查函数调用的基本概念。调用函数时,实参的形式可以是具体的数值,也可以是表达式。实参将数值或表达式的值传递给形参,因而两者的类型必须保持一致。形参在运算过程中会发生改变,但不一定会影响到实参值,所以可知两者不共用内存单元。
下列关于信息系统的叙述中,错误的是( )。
A.广播电视是一种双向的、点到多点的信息交互系统
B.网络聊天是一种双向的、以信息交互为主要目的的系统
C.电话是一种双向的、点对点的、以信息交互为主要目的的系统
D.雷达是一种以感测和识别为主要目的的系统
参考答案:A
参考解析:广播/电视是一种单向的、点对多点(面)的以信息传递为主要目的的系统。
39设x=011050,则x=x&01252的值是( )。
A.0000001000101000
B.1111110100011001
C.0000001011100010
D.1100000000101000
参考答案:A
参考解析:本题主要考查按位与运算,x=011050的二进制形式为00010010000101000,01252的二进制形式为0000001010101010,两者相与得0000001000101000。
40以下关于typedef的叙述错误的是( )。
A.用typedef可以增加新类型
B.typedef只是将已存在的类型用一个新的名字来代表
C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名
D.用typedef为类型说明一个新名,通常可以增加程序的可读性
参考答案:A
参考解析:Typedef语句的作用仅仅是用“标识符”来表示已存在的“类型名”,并未产生新的数据类型。
二、程序填空题
41请补充函数proc(),该函数的功能是:把从主函数中输入的字符串str2接在字符串str1的后面。
例如,str1=”I am a”,str2=”student”,结果输出:I am a student。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
参考解析:
【1】*(pl+i)【2】+p2【3】*p2++
【解析】要将字符串str2接在字符串str后面,首先要得到字符串str1的长度,因此【1】填“*(p1+i)”。然后将字符串str2中的每一个字符接在字符串str1所有字符的后面,因此【2】填“*p2”;【3】填“*p2++”。
三、程序改错题
42下列给定程序中,函数proc()的功能是:根据输入的3个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回1;若不能,则返回0。
例如,输入3个边长为3,4,5,实际输入时,数与数之间以Enter键分隔而不是逗号。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
参考解析:
(1)错误:return 1;
正确:return 3;
(2)错误:return 3;
正确:return 1;
【解析】三条边都相等的三角形为等边三角形,按题目中要求,等边三角形返回3,若不是等边三角形也不是等腰三角形则返回1,因此,“return 1;”应改为“return 3;”;“re-turn 3;”应改为“return 1;”。
四、程序设计题
43请编写函数void proc(int X,int pp[],int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。
例如,若X中的值为50,则有3个数符合要求,它们是1,5,25。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。
试题程序:
参考解析:
【解析】按照题目中要求求出能整除x且不是偶数的各整数,可以通过判断小于整数x的所有整数能否整除x。将能整除x的所有奇数放入数组pp中。最后将符和条件的整数个数通过形参返回到主函数当中。