第4章 程序设计三种基本结构
一、选择题:
【例1】(2002年4月)下面的程序的输出结果是( )。
#include
main( )
{
int i=010,j=10;
printf("%d,%d",++i,j--);
}
A. 11,10 B. 9,10
C. 010,9 D. 10,9
【答案】B (i的值是以八进制定义的)
【例2】(2002年4月)以下的程序的输出结果是( )。
main( )
{
int a=5,b=4,c=6,d;
printf(("d\n",d=a>b?)(a>c?a:c):(b));
}
A. 5 B. 4
C. 6 D. 不确定
【答案】C
【例3】(2002年4月)以下程序的输出结果是( )。
main( )
{
int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
A. 1 B. 0
C. 非0的数 D. -1
【答案】A
【例4】(2002年4月)以下程序的输出结果是( )。
main( )
{
char x=040;
printf("%o\n",x<<1);
}
A. 100 B. 80
C. 64 D. 32
【答案】A
【例5】(2002年9月)已知i,j,k为int型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2,k的值为3,以下选项中正确的输入语句是( )。
A. scanf("---",&I,&j,&k);
B. scanf("%d %d %d",&I,&j,&k);
C. scanf("%d,%d,%d",&I,&j,&k);
D. scanf("i=%d,j=%d,k=%d",&I,&j,&k);
【答案】C
【例6】(2002年9月)若有以下程序
main( )
{
int k=2,i=2,m;
m=(k+=i*=k);
printf(“%d,%d\n”,m,i);
}
执行后的结果是( )。
A. 8,6 B. 8,3
C. 6,4 D. 7,4
【答案】C
【考点解析】根据C语言中printf函数的用法可知,格式控制参数是d,即是输出是十进制的数,复合运算表达式是右结合性,先从右边开始计算i*=k得i=i*k=2*2=4,k+=i得k=k+i=2+4=6,所以m的值为6。输出结果为m=6,i=4。
【例7】(2003年4月)若有以下程序段(n所赋的是八进制数)
int m=32767, n=032767;
printf(“%d,%o\n”,m,n);
执行后输出结果是( )。
A. 32767,32767 B. 32767,032767
C. 32767,77777 D. 32767,77777
【答案】A
【例8】(2003年4月)有以下程序段
int m=0,n=0,char c='a';