_____。
a)ll b)20
c)2l d)31
答案:c
评析:函数func()的作用是返回两个形参的和,第一个形参是x、y分别自减和自增后的和,其中(x--,y++,x+y)是一个逗号表达式,它的值应该等于x+y,所以整个表达式(x--,y++,x+y)的值为13,而第二个形参的值为8(根据语法规则,应当先使用,后自增),所以func()的返回值为13+8=21。
(31)请读程序:
#include
main()
{
int a,b;
for(a=l,b=1;a<=100;a十+){
if(b>=20)break;
if(b%3==1){b+=3;continue;}
b-=5:
}
printf("%d\n",a);
}
上面程序的输出结果是_________。
a)7 b)8
c)9 d)10
答案:b
评析:break语句的作用是用于跳出循环体; continue语句的作用是用于跳出本次循环。执行第一次循环时,(b%3==1)为真,b=4,继续下一次循环,如此反复,当b=22时结束循环,共循环8次,即a=8。
(32)设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是__________。
a)x=x*100+0.5/100.0
b)x=(x*100+0.5)/100
c)x=(int)(x*100+0.5)/100.0
d)x=(x/100+0.5)*100.0
答案:c
评析:本题通过算术表达式的运算实现小数位数保留两位并四舍五入的操作,其中(int)(x*100+0.5)是指将(x*100+0.5)的值强制转换成整型。
(33)请读程序片段(字符串内没有空格字符):
printf("%d\n",strlen("ats\n012\1\\"));
上面程序片段的输出结果是____________。
a)ll b)10
c)9 d)8
答案:c
评析:这个语句的目的是输出"ats\n012\1\\"这个串的长度,在串中"\\"代表一个"\",而"\1"代表数字1,也占一个字符,"\n"是回车换行符,也占一个字符,加上a、t、s、0、l、2,共9个字符。
(34)运行以下程序后,如果从键盘上输入china撑<回车>,则输出结果为_________。
#include
main()
{
int v1=0,v2=0;char ch:
while((ch=getchar())!=’#’)
switch(ch)
{
case’a’:
case ’h’:
default:v1++;
case’0’:v2++:
}
printf("%d,%d\n",v1,v2);
}
a)2,0 b)5,0
c)5,5 d)2,5
答案:c
评析:执行完一个case后面的语句后,流程控制转移到下一个case继续执行。"case常量表达式"只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。(35)请选出可用作c语言用户标识符的一组标识符__________。
a)void b)a3.b3 c)for d)2a
define -123 -abc do
word if case sizeof
上一页 [1] [2] [3] [4] [5] [6] 下一页
责任编辑:小草