一、选择题
1. 阅读以下程序:
该程序在编译时产生错误,其出错原因是( )。
A. 定义语句出错,case 是关键字,不能用作用户自定义标识符
B. 定义语句出错,printF 不能用作用户自定义标识符
C. 定义语句无错,scanf 不能作为输入函数使用
D. 定义语句无错,printf 不能输出case 的值
【答案】A
【解析】在C 语言中,关键字又称保留字,它是系统预先定义的,具有特定含义的标识符,
故不允许用户重新定义。case 为C 语言中的关键字,因此用户不能再定义标识符为case 的变量。
2. 设有定义:
以下语句中执行效果与其他三个不同的是( )。 A. B. C. D.
【答案】A
【解析】执行if 语句时,首先计算紧跟在if 后面一对圆括号中的表达式的值。如果表达式的
,则执行其后的if 子句,然后去执行if 语句后的下一条语句;如果表达式的值为非零(“真”)
A 项中if 子句只有c=a, BCD ,值为零(“假”)则跳过if 子句,直接执行if 语句后的下一条语句。
三项中if 子句包括c=a; a=b; b=c;
3. 若想给已定义为int 型的变量a 、b 、c 、d 赋整数1,以下选项中错误的语句是( )。
A.d=c,c=b,b=a,a=l;
B.d=c=b=a=l;
C.d=(b=c=(a=l); )
D.d=l,c=d>b=c,a=b;
【答案】A
【解析】赋值是将一个常量的值赋给一个变量,A 项中,变量c 初始值未定义,相当于一个未知数给变量d 赋值,不满足赋值为1的条件。
4. 以下叙述中正确的是( )。
A.C 程序中的注释只能出现在程序的开始位置和语句的后面
B.C 程序书写格式严格,要求一行内只能写一个语句
C.C 程序书写格式自由,一个语句可以写在多行上
D. 用C 语言编写的程序只能放在一个程序文件中
【答案】C
【解析】C 程序的注释可以出现在C 程序的任何位置,注释符号:“//”或“/*•••*/”。C 程序中,一行内可写多个语句,每条语句用分号“;”结束。用C 语言编写的程序可以放在多个程序文件中,用#indude命令行实现文件包含功能。
5. 以下选项中叙述正确的是( )。
A. 使用三种基本结构就可以实现任何复杂算法
B. 只要程序包含了三种基本结构中的任意一种,就是结构化程序
C. 程序语法错误要在运行时才能发现
D.C 语言程序不需要包含main ( )函数
【答案】A
【解析】结构化程序主要由循环结构、选择结构、顺序结构三种基本控制结构组成,它们组成的算法结构可 以解决任何复杂的问题,A 项正确。结构化程序设计是以模块化设计为中心,将待开发的软件系统划分为若干个 相互独立的模块,而不是说包含了三种基本结构就是结构化程序,B 项错误。程序语法错误是在编译过程中发现的,一般来说编译器只能检查语法和最简单的语义错误,而不检查程序的逻辑错误,C 项错误。C 程序总是从 main 函数开始执行,其他函数由main 函数直接或间接调用执行,所以C 语言程序必须包含main 函数,D 项错误。
6. 有以下程序:
己知字母A 的ASCII 码值为65, 程序运行后的输出结果是( )。
A.E , 68
B.D , 69
C.E , D
D. 输出无定值
【答案】A
【解析】C 语言中,字符型可以作为整型用,可以出现在任何需要整型的表达式中。该题中
c2, 然后将cl 按字母格式输出,c2按整型格式输出。 的main 函数将字符A 经过运算分别赋值给cl 、
7. 有如下定义:
以下对内嵌结构体成员的引用形式错误的是( )。
【答案】A
【解析】使用结构体指针对结构体成员进行访问时,形式为结构指针名->结构成员名,或者(*结构指针名). 结构成员名,题目中ps 为结构体指针,A 项错误。
8. 有以下程序:
程序的运行结果是( )。
【答案】C
【解析】调用f 函数时,将结构体数组名作为实参传给了形参指针,使结构体指针a 指向了结构体C 的首地址。因此,在f 函数中,对指针所指结构体中的成员的赋值就是对数组c 中元素的赋值,故返回主函数之后,数组c
中
成员的值已被更新,最终输出结果为