2015年计算机二级预测试卷(C语言)
- 计算机二级
- 关注:2.15W次
1定义结构体数组:
以上程序段的输出结果为( )。
A.2A3N4A5UB.112A3H4IC.1A2N3A4UD.2H3A4H5I
参考答案:A
参考解析:本题主要考查结构体数组的使用。x[i]为结构体xl-i]中的hum成员,x[i][2]是结构体x[i]中name成员的第3个元素。程序执行循环过程时:第1次循环,i=1,输出x[i],x[1][2]的值;第2次循环,i=2,输出x[2],x[2][2]的值,即3N;第3次循环,i=3,输出x[3],x[3][2]的值,即4A;第4次循环,i=4,输出x[4],x[4][2]的值,即5U。
2下述程序的输出结果是( )。
A.10234B.12344C.12334 D.12234
参考答案:B
参考解析:函数fun()的功能是从数组a中依次将当前值赋给一个元素,所以当函数fun(a,2,9)执行后,数组a[]={1,2,3,4,4,5,6,7,8,9,10),由题意依次取该数组前5个元素,所以选项B正确。
3数据的存储结构是指( )。
A.数据所占的存储空间
B.数据的逻辑结构在计算机中的存放形式
C.数据在计算机中的顺序存储方式
D.存储在计算机外存中的数据
参考答案:B
参考解析:数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式。
4下面描述中,不属于软件危机表现的是( )。
A.软件过程不规范
B.软件开发生产率低
C.软件质量难以控制
D.软件成本不断提高
参考答案:A
参考解析:软件危机的表现包括:①对软件开发的进度和费用估计不准确;②用户对已完成的软件系统不满意的现象时常发生;③软件产品的质量往往靠不住;④软件常常是不可维护的;⑤软件通常没有适当的文档;⑥软件成本在计算机系统总成本中所占的比例逐年上升;⑦软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势。
5下列运算符中优先级最高的算符是( )。
A.
B.
C.
D.
参考答案:A
参考解析:C语言中规定运算符的优先顺序:一元算术运算符一>二元算术运算符一>关系运算符一>逻辑运算符一>赋值运算符,A项是关系运算符,B项和D项都是逻辑运算符,C项是赋值运算符,因此优先级最高的是A项。
6利用fseek()函数可实现的操作是( )。
A.实现文件的顺序读写
B.改变文件的位置指针
C.实现文件的随机读写
D.以上答案均正确
参考答案:D
参考解析:本题考查fseek()函数,其功能是:改变文件的位置指针;辅助实现文件的顺序读写;辅助实现文件的随机读写。
7有以下程序:
程序的输出结果是( )。
.B,CC.C,D D.不确定的值
参考答案:A
参考解析:char ch;ch=ˊAˊ+ˊ5ˊ-ˊ3ˊ;//计算字符ˊAˊ+ˊ5 ˊ-ˊ3ˊ即ˊA ˊ+2,因为ˊ5 ˊ与ˊ3ˊASCL码就差2,得ˊC ˊprintf(″%d,%cn″,ch,ch);//%d是按整型输出,输出的是ch的ASC码,查表可得67//%c是按字符型输出,输出为C所以输出就为67,C。因此A为正确选项。
8以下叙述中正确的是( )。
-while语句构成的循环不能用其他语句构成的循环来代替
-while语句构成的循环只能用break语句退出
C.用do-while语句构成循环时,只有在while后的表达式为非零时结束循环
D.用do-while语句构成循环时,只有在while后的表达式为零时结束循环
参考答案:D
参考解析:选项A,可以用for循环代替;选项B,不满足条件时即条件的逻辑值为假(0)时退出,break也可以;选项C,while(条件),条件为真时进行循环,为假(0)时退出。
9读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是( )。
A.一个文件指针,指向待读取的.文件
B.一个整型变量,代表待读取的数据的字节数
C.一个内存块的首地址,代表读人数据存放的地址
D.一个内存块的字节数
参考答案:C
参考解析:fread函数中的参数buffer是内存块的首地址,输入的数据存入此内存块中。
10若变量a、b、x、j都已正确定义并赋值,则以下符合C语言语法的表达式是( )。
A.a+=&-=(b-4)*(a=3)B.x%(-3);C.a=a*3=2D.y=float(i)
参考答案:A
参考解析:取余运算符%两边都应是正数,赋值语句左边必须是变量,不能是表达式,强制转换语句强制类型应加括号,而非加在变量上。
二、程序填空题
请补充函数proc(),该函数的功能是:把字符串str中的字符按字符的ASCⅡ码升序排列,处理后的字符串仍然保存在原串中,字符串及其长度作为函数参数传人。
例如,如果输入“9fedcba”,则输出为“abcdefg”。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。
试题程序:
参考解析:
【1】i+1【2】str[j]=str[i]
【解析】:题目要求把字符串str中的字符按其ASCⅡ码值升序排列,可以使字符串中的每一个字符与其后的所有字符相比较,因此【1】填“i+1”;把该字符与ASCⅡ码值小于其本身而且位置在它后面的字符相交换,最后就可以使ASCⅡ码值小的在前、大的在后,因此【2】填“str[j]=str[i]”。
三、程序改错题
下列给定程序中,函数proc()的功能是:删除字符串str中所有空白字符(包括Tab字符、Enter符及换行符)。输入字符串时以“#”结束输入。
请修改程序中的错误,使它能得出正确的结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
参考解析:
错误:c[t]=″