一、选择题
1. 阅读以下程序:
该程序在编译时产生错误,其出错原因是( )。
A. 定义语句出错,case 是关键字,不能用作用户自定义标识符
B. 定义语句出错,printF 不能用作用户自定义标识符
C. 定义语句无错,scanf 不能作为输入函数使用
D. 定义语句无错,printf 不能输出case 的值
【答案】A
【解析】在C 语言中,关键字又称保留字,它是系统预先定义的,具有特定含义的标识符,
故不允许用户重新定义。case 为C 语言中的关键字,因此用户不能再定义标识符为case 的变量。
2. 有如下程序:
程序运行时,从键盘输入2,输出结果是( )。
A.ykpf
B.wind
C.xjoe
D.2222
【答案】A
【解析】程序执行过程为:定义字符数组str 并且初始化为:“wind”,定义password 并通过
scanf 函数从 键盘为其赋值2。定义指针p 并使其指向字符串。通过while 循环,将字符数组中每一个字符的码加2, 并且按字符格式输出每一个字符。程序运行后输出结果是:ykpf 。
3. 有以下程序
程序的运行结果是( )。
A.1
B.0
C.2
D.3
【答案】A
【解析】只有i=3时,才能进入内部循环。
4. 有以下程序:
程序运行后的输出结果是( )。
【答案】D
【解析】程序执行过程为:定义STU 类型数组,长度为2, 并为其初始
化
调
用函数
将变量值传入函数,
则
调用函数
strcpy
使函数调用结束。其中结构体数组中元素并没有发生改变,依次输出结果为:故D 项正确。
5. 若有定义doublea=22; inti=0,k=18; ,则不符合C 语言规定的赋值语句是( )。
A.a=a++,i++
B.i=(a+k)<=(i+k)
C.i=a%ll D.
【答案】C
【解析】C 项错误,在C 语言的算术运算符中,取余运算符“%”的左右两侧的两个运算分量必须是整数。A 项,赋值运算符的优先级高于“,”运算法,先进行赋值;B 项,将“=”右边的逻辑表达式的计算结果赋给变量i ; D 项,首先对变量a 求逻辑非操作,然后将结果赋值给变量i 。
6. 有以下程序
程序运行后的输出结果是( )。
【答案】A
【解析】注释之间计算机不参与编译,所以a 、b 值仍为0。
7. 以下选项中,当x 为大于1的奇数时,值为0的表达式是( )。
A.x%2==l
B.x/2
D.x%2==0
【答案】D
【解析】x 为大于1的奇数,x%2的值为1,x%2==0为假。
8. 若有以下函数首部
则下面针对此函数的函数声明语句中正确的是( )。 A.