一、选择题
1. 有以下程序
程序运行后的输出结果是( )。 A.-12 B.9 C.0 D.3 答:A
【解析】C 语言中,表达式从右向左计算。
等价于
2. 有以下程序:
程序运行后输出的结果是( )。
答:A
【解析】C 语言中可以将多条语句放在同一行,用右结合。首
先执行C ,使得C
的值也为5。然后执行下句逗号表达式中的执行
可以写成
而
等价于
隔开。赋值运算和逗号运算都是从左到
即将A 的值5赋给变量
即得A 的值为5, 然后执行
把B 的值0赋给A ,此时A 的值为0, 然后
使得B 的值为4, 最后打印输出。
3. 以下程序段中,与其他三个功能不同的程序段是( )。
答:A
【解析】B 、C 、D 项都表示对1到10进行累加后赋给s ,而A 项中含break 语句,循环体只执行一次,结束整个循环过程。
4. 有以下程序:
程序运行后的输出结果是( )。 A.6 B.1 C.0 D.3 答:D
【解析】按位与运算符。a=3=118,b=3=118,按位与结果为11B=3,D 项正确。
5. 有以下函数:
函数的功能是( )。 A. 查找x 和y 所指字符串中是否有
B.x 、y 所指字符串最前面连续相同的字符个数 C. 将y 所指字符串赋值给x 所指存储空间 D. 统计x 和y 所指字符串中相同的字符个数 答:B
【解析】由程序可知,定义语句中的x 和y 是用户标识符,在每个变量前的是一个说明符,循环执行只有在x 和y 所指字符串中最前面连续相同,并统计其个数,一旦不满足,则终止循环而返回相同个数II 。
6. 以下叙述正确的是( )。
A.C 程序总是以main ( )作为程序执行的起始行 B.main ( )函数若不带参数,其后面的一对圆括号可省略 C. 函数体内的定义语句和可执行语句允许任意穿插出现 D.C 语言中的语句之间必须用分号作为分隔符 答:A
【解析】main ( )函数后面的括号告诉编译器这是一个函数,不可以省略,排除B 选项;在复合语句中, 不仅可以有执行语句,还可以有定义语句,定义语句应该出现在执行语句的前面,故排除C 选项;C 语言中的某 些语句可以不用分号,例如if 语句,宏定义,故D 选项错误;答案为A 选项。
7. 有以下程序(字符a 的
码值为97)
程序运行后的输出结果是( )。 A.abc B.789 C.7890 D.979899 答:B
【解析】因为小写字符a 、b 、c 的
码的值分别为97、98、99, 而在
循环语句
中,每次对字符的码的值取余数并输出,所以分别输出7、8、9, B项正确。
8. 以下叙述中错误的是( )。
A. 在程序中凡是以“#”开始的语句行都是预处理命令行 B. 预处理命令行的最后不能以分号表示结束 C.#defineMAX是合法的宏定义命令行
D.C 程序对预处理命令行的处理是在程序执行的过程中进行的 答:D
,其中的末尾不得用“;【解析】在C 语言中,以“#”开头的行都称为“编译预处理命令行””结束,区别语句的定义和说明语句。C 项,中的宏定义为不带参数的宏命令行,宏名之后可以有替换文本,也可以没有。编译预处理是在编译程序对C 源程序进行编译前执行的。
9 在源程序的开始处加上,以下叙述正确的是 进行文件引用的原因( )。.
A.stdio. h文件中包含标准输入输出函数的函数说明,通过引用此文件以便能正确使用prinff 、