一、选择题
1. 以下叙述中正确的是( )。
A. 语句
B. 对于字符串常量D. 在语句答:B
【解析】B 项正确,C 编译程序将自动在字符串常量最后添加串的存储单元,因此数组str 的长度大于字符串的长度。
2. 有以下程序:
程序运行的结果是( )。 A.10, 1 B.20, 1 C.10,2 D.20, 2 答:C
【解析】题目首先定义结构体st 的同时定义结构体数组data ,可
知
结构体指针p 指向数组的首地址,指向
的第二个元素data[l],
然后输出
3. 以下叙述正确的是( )。
即输出
则指向数组
所以分别为10和2。
AC 两项错误,可以直接用
字符串常量给一维字符数组赋初值,习惯上均省略花括号;D 项错误,’\0’会占用一个不属于字符
和
系统已自动在最后加入了
并不等价 字符,表示串结尾
C. 对于一维字符数组,不能使用字符串常量来赋初值
中,数组str 的大小等于字符串的长度
A.do —while 语句构成的循环,当while 语句中的表达式值为0时结束循环 B.do 一while 语句和while —do 构成的循环功能相同
C.while 一do 语句构成的循环,当while 语句中的表达式值为非0时结束循环
D.do —while 语句构成的循环,必须用break 语句退出循环 答:A
【解析】本题执行过程为:输入句,跳出分支结构;输入入
首先匹配easeO , 依次输出6, 6, 后执行break 语
匹配case2,输出8,执行break 语句,跳出分支结构;输
匹配casel ,
匹配default ,输出9,执行break 语句,跳出分支结构;输入
依次输出7,7, 执行break 语句,跳出分支结构。输入回车,结束循环。故A 选项正确。
4. 设有定义:以下表达式值不等于12的是( )。
答:D
【解析】逗号表达式的计算过程是从左到右逐个求每个表达式的值,取最右边一个表达式的值作为该逗号表达式的值。赋值运算结合性为由右向左结合,赋值运算符左值为变量,右值为变量或常量,且左右两边数据类型 相同才能实现赋值。成功实现赋值后以左值为返回值。逻辑表达式成立则返回1,不成立返回0。D 选项逻辑表 达式逗号表达式X ,y 取y 值为表达式值,然后赋值给取y 值为表达式值,然后赋值给式值12。故选择D 选项。
5. 有如下程序:
!
程序运行后的输出结果是( )。 A.1123 B.123 C.0123 D.001 答:A
【解析】程序执行过程为:for 循环开始,第一次循环,输出i=l,判断i<4成立,输出i=l,循环结束后i=2; 第二次循环,判断i<4成立,输出i=2, 循环结束后i=3; 第三次循环,判断i<4成立,输出i=3, 循环结束后i=4; 第四次循环,判断i<4不成立,退出循环。程序运行后的输出结果是1123, 故A 项正确。
不成立,则表达式值为0。B 选项
取y 值为表达
表达式值为12。C 选项逗号表达式
表达式值为12。A 选项逗号表达式
6. 有以下程序:
程序运行后的输出结果是( )。 A.5, 11 B.7, 1 C.7, 11 D.6, 1 答:B
【解析】第一' 次循环,a=l,b=b+a=3,a=a+2=3,b=b%10=3; 第二次循环,a=3,b=b+a=6,a=a+2=5,b=b%10=6;
第二次循环,a=5,b=b+a=ll,a=a+2=7,b=b%10=l; 结束循环。
7. 有以下程序:
程序的运行结果是( )。 A.23 B.26 C.33 D.36 答:A
【解析】题中把数组首元素地址赋值给指针变量q ,在for 循环体内,当把指针q 指向的单元值加1,等于3赋给循环体,此时i 不等于0, 指针q 地址加1,指向
8. 以下叙述正确的是( )。
A. 文件指针是指针类型的变量
B. 在使用文件指针时,不需要在内存中为其分配空间
时,满足if 语句,
后再次进人
接着输出q 指针指向单元的值2;
此时
因此最后函数输出的分别是2, 3。