if(x!=0) if(x>0) y=1; else y=0;
??1(x?0)?1(x?0)?0(x?0)??1(x?0)????????A)y??0(x?0) B)y???1(x?0) C)y???1(x?0) D)y??1(x?0)
????1(x?0)0(x?0)1(x?0)0(x?0)????????29. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 ( D )。 D A)a<>0 B)!0 C)a=0 D)a 30. 假定所有变量均已正确说明,下列程序段运行后x的值是( B )。 B a=b=c=0; x=35; if(!A) x--; else if(b);
if(c) x=3; else x=4; A)34 B)4 C)35 D)3 二、阅读程序写出程序运行结果 1. 有以下程序
main( ) {
int x=0, y=0, z=0; ++x||++y||++z;
printf(\}
执行后输出结果是 1 0 0 。 -1 0 0 2. 若运行时给变量x输入12,则以下程序的运行结果是 0 。 0 main( ) {
int x,y;
scanf(―%d‖,& x); y=x>12?x+10:x-12; printf(―%d\\n‖,y); } 3. 有以下程序
main( ) {
int a=-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf(\ %d\\n\else
11
printf(\ %d\\n\
}
执行后输出结果是 1 0 。 1 0 4. 有以下程序 main( )
{
int m=5; if (m++>5)
printf(―%d \\n‖,m); else
printf(―%d \\n‖,m--);
}
执行后输出结果是 6 。 6 5. 有以下程序 main( )
{
int x=2, y= -1, z=2; if (x if(y<0) z=0; else z+=1; printf(―%d \\n‖, z); } 执行后输出结果是 2 。 2 6. 以下程序的运行结果是 6 。 6 main( ) { int m=5; if(m++>5) printf(\ e1se printf(\ } 7. 以下程序的输出结果是 2 。 2 main( ) { int x=2, y= -1, z=2; if (x if(y<0) z=0; else z+=1; printf(―%d \\n‖, z); } 8. 当a=1、b=3、c=5、d=4时,执行下面一段程序后,x的值为 2 。 2 if(a 12 if(c 9. 以下程序的输出结果是 a=-1 。 a=-1 main( ) { int a=100,x =10,y=20,okl=5,ok2=0; if (x if(y!=10) if(!okl) a=1; else if(ok2) a=10; else a=-1; printf( \ } 10. 请读下列程序 #include int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++;break; case 1: b++;break; } case 2: a++;b++;break; } printf(―a=%d,b=%d\\n‖,a,b); } 上面程序的输出结果是 a=2,b=1 。 a=2,b=1 三、程序填空题 1. 以下程序实现输出x,y,z三个数中的最大者。 main( ) { int x=4,y=6,z=7; int u,v; if ( 错误!未找到引用源。 ) x>y u=x; else 13 u=y; if ( 错误!未找到引用源。 ) u>z v=u; else v=z; printf(―v=%d‖,v); } 2. 以下程序实现:输入三个整数,按从大到小的顺序进行输出。 main( ) { int x,y,z,c; scanf(―%d%d%d‖,&x,&y,&z); if (y { c=x; x=y;y=c; } printf(―%d,%d,%d‖,x,y,z); } 3. 有四个数a,b,c,d,要求按从大到小的顺序输出。 main( ) { int a,b,c,d,t; scanf(―%d%d%d%d‖,&a,&b,&c,&d); if(a { t=a; a=b; b=t; } if( 错误!未找到引用源。 ) c { t=c; c=d; d=t; } if(a { t=a; a=c; c=t; } if( 错误!未找到引用源。 ) b { t=b; b=c; c=t; } if(b { t=b; b=d; d=t; } if(c { t=c; c=d; d=t; } printf(―%d %d %d %d\\n‖,a,b,c,d); } 4. 以下程序实现:输入圆的半径r和运算标志m,按照运算标志进行指定计算。 请在 填入正确内容。 标志 运 算 a 面 积 c 周 长 b 二者均计算 14 #define PI 3.14159 main( ) { char m; float r,c,a; printf (―input mark a c or b and r \\n‖); scanf (―%c%f‖,&m,&r); if (m= =‘a‘) { a=PI*r*r; printf(―area is %f‖,a); } if ( 错误!未找到引用源。m==‘c‘ ) m= =‘c‘ { c=2*PI*r; printf(―circle is %f‖,c); } if( 错误!未找到引用源。 m==‘b‘ ) m= =‘b‘ { a=pi*r*r; c=2*PI*r; printf(―area and circle are %f%f‖,a,c); } } 5. 输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一 个小写字母,则把它变成大写字母;其它字符不变。 main( ) { char ch; scanf(―%c‖,&ch); if ( 错误!未找到引用源。 ch<=‘Z‘&&ch>=‘A‘ ) ch>=‘A‘&&ch<=‘Z‘ ch=ch+32; else if (ch>=‘a‘&&ch<=‘z‘) 错误!未找到引用源。 ch=ch-32 ; ch=ch-32 printf(―%c‖,ch); } 6. 下面程序根据以下函数关系,对输入的每个x值,计算出y值。 x 2