一、选择题
1. 以下叙述正确的是( )。
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 选项正确。
2. 有以下程序:
程序运行后的输出结果是( )。
A. B. C. D. 答:A
【解析】程序首先对name 数组进行初始化,再对元素输出字符串时,以 最后输出
3. 有以下程序:
第 2 页,共 34 页
赋值为由于用格式
作为结束标志,对应于0, 在输出时,系统认为后面已经结束,
程序的运行结果是( )。 A.flqv B.agmrw C.ekpuy D.flqvz 答:A
【解析】puts ( )函数将数组中存放的字符串输出到输出设备中,用结束符
取代字符串
strlen ( )函数是求字符串的实际长度(不包含结束标志),并且作为函数值
输出字符串W 为flqv , 故A 选项正确。
返回。程序中for 循环实现,将第i 个字符 串最后一个字符放入w 数组下标值为i 的位置,即最后将数组最后一个字符赋值为
4. 有以下程序:
程序运行后的输出结果是( )。
答:D
【解析】声明结构类型S 中有一个字符数组name , 在input , 为input 中成员name
初始化给name ,
由于
后,调用
函数
函数的形参为结构体指针,因此
第 3 页,共 34 页
函数中,定义了一个结构变量
执行功能是把
赋值
函数改变形参指针data 指向的
name 值的同时,也改变了实参input 的成员name 值;而形参value 为整型变量,是num 的一个副
本,修改了nnm 的副本,对num 本身不产生影响,所以输出为#,3。
5. 设有定义intx=2;,以下表达式中,值不为6的是( )。
A.x*=x+l B.x++, 2*x
C.x*=(1+x) D.2*x, x+=2 答:D
,此时为3, 然后做x*=3, 【解析】AC 两项,赋值运算优先级最低,所以先做x+1或(1+x)
即x=x*(x+l)=6;B 项,做x++运算后得到3, 然后做2*x运算得6, ;D 项,2*x虽然结果为4, 但此时x 的值仍为2, 所以最终为4。
6. 以下可以将任意一个两位整数n 的个位数与十位数对换的表达式为( )。
答:A
【解析】A 项
得到十位数字,
得到个位数字,将个位数乘以10加上十位数字
,
实现两位整数个位数与十位
是十位
实现将任意一个两位整数个位数与十位数对换,A 项正确。B
项
得到个位数字,
数之和,B 项错误。C 项
为十位数字,
不能实现题目中要求,C 项错误。D 项
数字,为原两位整数减去十位数字,不是个位数字,D 项错误。
7. 有以下程序:
程序运行后的输出结果是( )。
第 4 页,共 34 页