A.由于do-while循环中循环体语句只能是可执行语句,所以循环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C.在do-while循环体中,是先执行一次循环,再进行判断
D.do-while循环中,根据情况可以省略while
【参考答案】C
18.以下程序的运行结果是( )
sub(int x,int y,int *z)
{*z=y-x;}
main()
{ int a,b,c;
sub(10,5,&a);
sub(7,a,&b);
sub(a,b,&c);
printf(″%4d,%4d,%4d\n″,a,b,c);
}
A.5,2,3 B.-5,-12,-7 C.-5,-12,-17 D.5,-2,-7
【参考答案】B
19.对下面程序描述正确的一项是(每行程序前面的数字表示行号)( )
① main()
② {
③ float a[3]={0.0};
④ int i;
⑤ for(i=0;i<3;i++)scanf(″%d″,&a[i]);
⑥ for(i=1;i<3;i++)a[0]=a[0]+a[i];
⑦ printf(″%f\n″,a[0]);
⑧ }
A.没有错误 B.第3行有错误 C.第5行有错误 D.第7行有错误
【参考答案】C
20.下面程序的输出结果是( )
struct st
{ int x;
int *y;
} *p;
int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
main()
{ p=aa;
printf(″%d\n″,++p->x);
printf(″%d\n″,(++p)->x);
printf(″%d\n″,++(*p->y));
}
A.10 B.50 C.51 D.60
20 60 60 70
20 21 21 31
【参考答案】C