1、有以下程序(注:字符a的ASCII码值为97):
程序运行后的输出结果是( )。
A.789
B.abc
C.7890
D.979899
参考答案:A
参考解析:因为小写字符a,b,c的ASCII码值分别为97,98,99,而在do while循环语句中,每次对字符的ASCII码值取余数并输出,所以分别输出7,8,9。
2、有以下程序:
程序运行后的输出结果是( )。
A.7
B.10
C.8
D.9
参考答案:D
参考解析: 调用f(a,b)函数返回3,调用f(a,c)函数返回6,所以外层调用f(f(a,b),f(a,c));即调用f(3,6)函数返回9。
3、以下四个程序中,完全正确的是( )。
参考答案:B
参考解析: C语言中注释语句的注释方法是:/*注释内容*/或//注释一行。所以A与C错误,D选项中预编译命令indade<stdio.h>前丢掉了”#”号。所以选择B。
4、下列叙述中正确的是( )。
A.在switch语句中,不一定使用break语句
B.在switch语句中必须使用default
C.break语句必须与switch语句中的case配对使用
D.break语句只能用于switch语句
参考答案:A
参考解析: default语句在switch语句中可以省略,所以B错误;switch语句中并非每个case后都需要使用break语句,所以C错误;break语句还可以用于for等循环结构中,所以D错误。
5、有以下程序:
程序运行后的输出结果是( )。
A.7
B.5
C.3
D.9
参考答案:C
参考解析: 向switch语句块传送参数后,编译器会先寻找匹配的case语句块,找到后就执行该语句块,遇到break跳出;如果没有匹配的语句块,则执行default语句块。case与default没有顺序之分。所以第一次循环k的值为1,执行c+=k,c的值为l,再执行case 2后的语句c++,c的值为2,遇到break语句跳出循环;第二次循环k的值为2,执行case 2后面的语句c++,c的值为3,跳出循环。
6、以下关于typedef的叙述错误的是( )。
A.用typedef可以增加新类型
B.typedef只是将已存在的类型用一个新的名字来代替
C.用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名
D.用typedef为类型说明一个新名,通常可以增加程序的可读性
参考答案:A
参考解析: typedef并不是增加了新类型,而是用一个新名字替代已存在的类型,不能为变量说明一个新名,使用typedef可以增强程序的可移植性。所以A选项错误。
7、在E-R图中,用来表示实体联系的图形是( )。
A.椭圆形
B.矩形
C.菱形
D.三角形
参考答案:C
参考解析: 在E-R图中实体集用矩形,属性用椭圆,联系用菱形。