一、选择题
1. 有以下结构体说明、变量定义和赋值语句
则以下scanf 函数调用语句有错误的是( )。
A. B. C. D. 【答案】D
【解析】
2. 有以下程序:
$
程序的运行结果是( )。 A.7, 6, 5 B.5, 5, 5 C.7, 5, 5 D.5, 6, 5 【答案】B
【解析】条件表达式的优先级高于赋值表达式,
中先执行
为否,则执行
和
运算,当以前缀形式出现时,则
将
先赋
先进行加一或减一操作,再取值,当以后缀形式出现时,则先取值,
再进行加一或减一操作。
此时b 为5, 赋给i ,i 为5;
给j ,再进行故最后输出的是5,5,5。
3. 若有定义语句intkl=10, k2=20; ,执行表达式为( )。
A.0和1 B.0和20
第 2 页,共 43 页
不是地址,不能用于scanf 函数中。
后,kl 和k2的值分别
C.10和1 D.10和20 【答案】B
【解析】在C 语言中,没有专门的“逻辑值”,而是用非0表示“真”,用0表示“假”。根据优先级,先计算括号内的。括号内先比较和比较的结果为假,值为0, 再赋值给
可得
一个括号不需运算,即的值不变,仍为20。
4. 下列叙述中正确的是( )。
A. 可以用关系运算符比较字符串的大小 B. 空字符串不占用内存,其内存空间大小是0 C. 两个连续的单引号是合法的字符常量 D. 两个连续的双引号是合法的字符串常量 【答案】D
【解析】A 项错误,关系运算符不能比较字符串大小,可以用函数库中的字符串比较函数来比较字符串的大小;B 项错误,空字符串占用一个字节的内存;C 项错误,字符常量是用单引号把一个字符括起来;D 项正确,两个连续的双引号是一个字符串常量,称为空串。
5. 以下叙述中正确的是( )。
A. 在scanf 函数的格式串中,必须有与输入项一一对应的格式转换说明符
B. 只能在printf 函数中指定输入数据的宽度,而不能在scanf 函数中指定输入数据占的宽度 C.scanf 函数中的字符串是提示程序员的,输入数据时不必管它 D. 复合语句也被称为语句块,它至少要包含两条语句 【答案】C
【解析】C 项正确,scanf 函数中的字符串是为了増加程序的可读性,并不影响数据的输入。A 项错误,可以在%和格式字符之间加入
号,作用是跳过对应的输入数据;B 项错误,可以
在格式字符前加入一个正整数指定输入数据所占的宽度;D 项错误,用一对花括号把若干语句括 起来构成一条复合语句。一个复合语句在语法上视为一条语句,在一对花括号内的语句数量不限。
6. 有以下程序:
t
程序运行后的输出结果是( )。
第 3 页,共 43 页
的大小,由于,故左边括号中的与
的值为0,由于0与任何值相与结果都是0, 故右边
A.0 B.1 C.2 D.3 【答案】C 【解析】
和
运算,当以前缀形式出现时,则先进行加一或减一操作,再取值,当以
结果为
然后输出b 的值。即b 为2。
后缀形式出现时,则先取值,再进行加一或减一操作。a 初始定义为1,b 为0, 先执行0, 即if 判断为假,执行
7. 有以下程序:
程序运行后的输出结果是( )。 A.tuv
B. 字符t 的ASCII 码值 C.t
D. 出错 【答案】C 【解析】表示。
8. 有以下程序:
程序运行后的输出结果是( )。 A.103,13 B.13, 13 C.10, 13 D.9, 13 【答案】D 【解析】C 语言中即
1010"0011=1001转成十进制为9。
第 4 页,共 43 页
的优先级高于因此先对s 取内容,然后将s 中的内容加2。
是
的意思是按位异或,表示先把10和3换算成二进制再进行异或,