一、选择题
1. 有以下程序:
程序运行的结果是( )。
答:A
【解析】在do while循环中,总是先执行后判断,所以循环体至少会被执行一次。在循环中,如果满足
循环。
2. 以下叙述中正确的是( )。
A. 不同函数的形式参数不能使用相同名称的标识符
B. 用户自己定义的函数只能调用库函数
C. 实用的C 语言源程序总是由一个或多个函数组成
D. 在C 语言的函数内部,可以定义局部嵌套函数
答:C
【解析】C 项正确,一个实用的C 语言源程序总是由许多函数组成,这些函数都是根据实际任务,由用户自 己来编写。A 项错误,形参的作用域只在本函数内部,不同函数的形参标识符互不影响;B 项错误,可以调用C 提供的库函数,也可以调用由用户自己或他人编写的函数;D 项错误,C 语法规定,不能在函数内部定义其他函数。
3. 以下选项中,合法的一组C 语言数值常量是( )。
A.12. 0Xa23 4.5e0
B.028 .5e_3 -0xf
第 2 页,共 34 页 那么输出i 的值,退出循环,否则如果则跳出
C..177 4el.5 Oabc
D.0x8A 10.000 3.e5
答:A
【解析】A 项,C 语言中小数必须要有小数点,但是小数部分可以省略,12. 是合法的常量;C 语言中十六进制数以0X 或Ox 开头,0Xa23是指十六进制数a23; 在C 语言中,“e ”或“E ”后跟一个整数来表示以10为底的幂数,B 项,028表示的是八进制,以0开头,0后面的数字只能在0~7之间。C 项,4el.5,e 后面只能跟整数,Oabc 表示八进制,0后面的数字只能在(K7之间;D 项,10,000中不能有逗号。
4. 设有定义:intx=7, y=12;,则以下表达式值为3的是( )。
A. (y%=x)-(x%=5)
B.y%=(x%=5)
C.y%=x-x%5
D.y%=(x-x%5)
答:A
,A 项可改写成y=y%x,x=x%5,再计算y-x 计算【解析】A 项正确,a%=b表示a=a%(b )
的结果为3,满足题意;B 项为0, C 项为2, D 项等同于C 项。
5. 以下叙述中错误的是( )。
A. —个C 程序可以包含多个不同名的函数
B. —个C 程序只能有一个主函数
C.C 程序在书写时,有严格的缩进要求,否则不能编译通过
D.C 程序的主函数必须用main 作为函数名
答:C
【解析】一个C 程序有且只有一个主函数main 。一个C 程序可以包含多个不同名字的子函数。C 程序在书写时没有严格的缩进要求。
6. 对于一个正常运行的C 程序,以下叙述中正确的是( )。
A. 程序的执行总是从程序的第一个函数开始,在main 函数结束
B. 程序的执行总是从main 函数开始
C. 程序的执行总是从main 函数开始,在程序的最后一个函数中结束
D. 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
答:B
【解析】一个正常运行的C 程序总是从main 函数开始执行,最后返回到main 函数结束。
7. 以下选项中非法的C 语言字符常量是( )。
A. B. C.
第 3 页,共 34 页
D.
答:A
表示字符串,应该用双引号括起来。B 项,转义符
表示两位的十六进制数。 表示后退一格;C 【解析】A 项,项,
8. 有以下定义:
表示八进制数;D 项,
以下叙述中错误的是( )。
A.x 的内存地址与x.i 的内存地址相同
B.struct data是一个类型名
C. 初始化时,可以对x 的所有成员同时赋初值
D. 成员i 、c 和d 占用的是同一个存储空间
答:D
【解析】i 、c 、d 是结构体变量x 中的三个不同的成员,占用不同的存储空间。共用体的各成员占用同一个存储空间。
9. 设有两行定义语句:
intscanf ;
floatcase ;
则以下叙述正确的是( )。
A. 两行定义语句都不合法
B. 两行定义语句都合法
C. 第1行语句不合法
D. 第2行语句不合法
答:D
【解析】预定义标识符是系统已经有过定义的标识符,用户可以重新定义,可以作为变量名。scanf 为库函数名,属于预定义标识符,可以被用户重定义,第一行语句合法。C 语言关键字是被保留的,不能用作其他用途的一些标识符,它们在程序中都代表着固定的含义,用户不可重新定义。case 是选择结构switch 语句中的关键字,不可被用户重定义,第二行语句不合法。
10.有以下程序:
第 4 页,共 34 页