二级C语言-115
(总分100, 做题时间90分钟)
printf函数和scanf函数的格式说明都使用什么字符开始
一、选择题
1. 
下列数据结构中,属于非线性结构的是______。
A 循环队列
B 带链队列
C 二叉树
D 带链栈
    分值: 1
答案:C
[解析] 线性结构是指数据元素只有一个直接前驱和直接后驱,线性表是线性结构,循环队列、带链队列和栈是指对插入和删除有特殊要求的线性表,是线性结构。而二叉树是非线性结构。
2. 
在面向对象方法中,实现信息隐蔽是依靠______。
A 对象的继承
B 对象的多态
C 对象的封装
D 对象的分类
    分值: 1
答案:C
[解析] 对象的封装性是指从外部看只能看到对象的外部特征,即只需知道数据的取值范围和可以对该数据施加的操作,而不需要知道数据的具体结构以及实现操作的算法。
3. 
软件设计中划分模块的一个准则是______。
A 低内聚低耦合
B 高内聚低耦合
C 低内聚高耦合
D 高内聚高耦合
    分值: 1
答案:B
[解析] 耦合性和内聚性是模块独立性的两个定性标准,是互相关联的。在软件设计中,各模块间的内聚性越强,则耦合性越弱。一般优秀的软件设计,应尽量做到高内聚,低耦合,有利于提高模块的独立性。
4. 
C语言中,下列不合法的字符常量是______。
A "\xff"
B "\65"
C "&"
D "\028"
    分值: 1
答案:D
[解析] 选项A,"\xff"中"\x"组合表示是一个十六进制数ffH=10进制的255,它代表一个不可见字符的ASCII码,合法。选项B"\65"同理""十三个十进制数"\ddd"表示的是八进制数。"\65"="\065"=10进制的53,是"F"的ASCII码表示。选项C,单"&"字,合法。选项D中"\028"同上表示是一个八进制数,但八进制数中逢八则进一,是不会出现8的,所以格式虽对但数值错了。不合法。
5. 
以下选项中,能用作用户标识符的是______。
A void
B 8_8
C _0_
D unsigned
    分值: 1
答案:C
[解析] 标识符由字母、数字和下划线组成。开头必须是字母或下划线且区分大小写。在C语言中,预先定义了一些标识符,以作专门用途,称为关键字,标识符不能与关键字相同。选项A和D是关键字,选项B是数字开头的,所以都不正确。
6. 
下列叙述中正确的是______。
A 程序执行的效率与数据的存储结构密切相关
B 程序执行的效率只取决于程序的控制结构
C 程序执行的效率只取决于所处理的数据量
D 以上三种说法都不对
    分值: 1
答案:A
[解析] 数据的存储结构、程序处理的数据量、程序的算法等都会影响程序执行效率。
7. 
软件详细设计产生的图如图所示。该图是______。
A N-S图
B PAD图
C 程序流程图
D E-R图
    分值: 1
答案:C
[解析] N-S图(也被称为盒图或CHAPIN图)、PAD(问题分析图)及PFD(程序流程图)是详细设计阶段的常用工具。E-R图即实体-联系图,是数据库设计的常用工具。从题中图可以看出该图属于程序流程图。
8. 
下列运算符中优先级最低的算符是______。
A ||
B !=
C <=
D +
    分值: 1
答案:A
[解析] C语言中规定运算符的优先顺序:一元算术运算符→二元算术运算符→关系运算符→逻辑运算符→赋值运算符,A项中为逻辑运算符,B项和C项都为关系运算符,D项为一元运算符。因此最低的是A项。
9. 
在E-R图中,用来表示实体联系的图形是______。
A 椭圆形
B 矩形
C 菱形
D 三角形
    分值: 1
答案:C
[解析] E-R图即实体-联系图(Entity Relationship Diagram),提供了表示实体型、属性和联系的方法,是用来描述现实世界的概念模型。构成E-R图的基本要素是实体型、属性和联系,其表示方法为:实体型(Entity):用矩形表示,矩形框内写明实体名;属性(Attribute):用椭圆形表示,并用无向边将其与相应的实体连接起来;联系(Relationship):用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:
1,1:n或m:n)。
10. 
有三个关系R、S和T如下:
R
A
B
C
a
1
2
b
2
1
c
3
1
S
A
B
C
d
3
2
T
A
B
C
a
1
2
b
2
1
c
3
1
d
3
2
其中关系T由关系R和S通过某种操作得到,该操作为______。
A 选择
B 投影
C 交
D 并
    分值: 1
答案:D
[解析] 关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元素。由题可以看出,T是R和S的并运算得到的。
11. 
下列关于C语言文件的叙述中正确的是______。
A 文件由一系列数据依次排列组成,只能构成二进制文件
B 文件由结构序列组成,可以构成二进制文件或文本文件
C 文件由数据序列组成,可以构成二进制文件或文本文件
D 文件由字符序列组成,其类型只能是文本文件
    分值: 1
答案:C
[解析] 本题考查文件的知识点,文件是由数据序列组成的,可以构成二进制文件或文本文件。
12. 
对于循环队列,下列叙述中正确的是______。
A 队头指针是固定不变的
B 队头指针一定大于队尾指针
C 队头指针一定小于队尾指针
D 队头指针可以大于队尾指针,也可以小于队尾指针
    分值: 1
答案:D
[解析] 循环队列是把队列的头和尾在逻辑上连接起来,构成一个环。循环队列中首尾相连,分不清头和尾,此时需要两个指示器分别指向头部和尾部。插入就在尾部指示器的指示位置处插入,删除就在头部指示器的指示位置处删除。
13. 
阅读以下程序:
#include<stdio.h>
main()
{ int case; float printF;
printf("请输入2个数: ");
scanf("%d%f", &case, &printF);
printf("%d%f\n", case, printF);
}
该程序在编译时产生错误,其出错原因是______。
A 定义语句出错,case是关键字,不能用作用户自定义标识符
B 定义语句出错,printF不能用作用户自定义标识符
C 定义语句无错,scanf不能作为输入函数使用
D 定义语句无错,printf不能输出case的值
    分值: 1
答案:A
[解析] 本题中定义了整形变量case,但case是关键字,关键字不能用作标识符。单精度printF不是关键字,因为标识符区分大小写。所以选项A不正确。
14. 
表达式:(int)((double)9/2)-(9)%2的值是______。
A 0
B 3
C 4
D 5
    分值: 1
答案:B
[解析] 本题考查了强制类型转换。9/2为double型,所以结果为4.5,又强制转换为整型,所以结果为4。9%2为取余运算,结果为1。最终结果4-1=3。
15. 
若有定义语句:“int x=10;”,则表达式x-=x+x的值为______。
A -20
B -10
C 0
D 10
    分值: 1
答案:B
[解析] 表达式x=-x+x可以写成x=x-(x+x),所以x的值为-10。
16. 
下面是有关C语言字符数组的描述,其中错误的是______。
A 不可以用赋值语句给字符数组名赋字符串
B 可以用输入语句把字符串整体输入给字符数组
C 字符数组中的内容不一定是字符串
D 字符数组只能存放字符串
    分值: 1
答案:D
[解析] 用来存放字符量的数组称为字符数组。字符数组也可以是二维或多维数组,对一个字符数组,如果不做初始化赋值,则必须说明数组长度,还可用printf函数和scanf函数一次性输出/输入一个字符数组中的字符串,而不必使用循环语句逐个地输入/输出每个字符。通常用一个字符数组来存放一个字符串。所以D选项不正确。
17. 
下面结构体的定义语句中,错误的是______。
A struct ord{int x; int y; int z; }; struct ord a;
B struct ord{int x; int y; int z; } struct ord a;