1.下面程序运行结果为( )。请解释原因。
void main ( ) { char c = 'a'; if ('a' < c <= 'z') { printf ("LOW"); } else { printf ("UP"); } } |
A. LOW
B. UP
C. LOWUP
D. 程序语法错误
答:A,'a'<c不成立为假,及为0。而'z'为122,0<=122成立。故输出LOW。
2.请阅读以下程序,该程序()。请对选项进行解释。
void main( ) { int a = 5, b = 0, c = 0; if (a = b + c) printf ("***\n"); else printf ("$$$\n"); } |
A. 有语法错不能通过编译
B. 可以通过编译但不能通过连接
C. 输出***
D. 输出$$$
答:D,+的运算符高于=,故先算b+c,结果为0,而a的值为5,两者不相等,故输出$$$.
3.填空:以下程序运行结果是_____________,请解释。
void main( ) { int m = 5; if (m++ > 5) printf("%d\n", m); else printf("%d\n", m--); } |
答:m++使m=m+1,故m的值为6,6>5,所以输出为m,此时的m为6。
4.已知 int x = 10, y = 20, z = 30; 以下语句执行后x =___20_____, y=____30__,z=__30_____。请解释。
if (x > y) z = x; x = y; y = z; |
答:x的值为10,y的值为20,x不小于y,故不能将x的值赋给z。后将y的值赋给x,所以x的值变为20,又将z的值赋给y,所以y变为30,而z值不变,依旧为30。
5.下面的程序的功能是根据输入的百分制成绩score,转换成相应的五分制成绩grade并打印输出。转换的标准为:
当90≦score≦100时,grade为A; 当80≦score﹤90时,grade为B; 当70≦score﹤80时,grade为C; 当60≦score﹤70时,grade为D; 当score﹤60时,grade为E; |
请填空:(1)__&score________(2)__________(3)__________
(4)__________(5)__________(6)__________ (7)__________
#include <stdio.h> void main ( ) { int score, mark; scanf ("%d",____(1)______); mark = _____(2)_____; switch (mark) { default: printf ("%d--E", score); ______(3)____; case 10: case___(4)___: printf ("%d--A", score); break; case___(5)___: printf ("%d--B", score); break; case___(6)___: printf ("%d--C", score); break; case___(7)___: printf ("%d--D", score); break; } } |
6.
#include <stdio.h>
int main ( )
{
int year;
scanf("%d",&year);
if ((year%4==0&&year%100!=0)||(year%400==0))
printf("%d年是闰年\n",year);
else
printf("%d年不是闰年");
return 0;
}
7.
#include <stdio.h>
int main(){
int numA,numB,numC,MAX,MIN;
printf("请输入三个整数:");
scanf("%d %d %d",&numA,&numB,&numC);
if(numA>=numB){
if(numA>=numC){
MAX=numA;
if(numB>=numC){
MIN=numC;
}else{
MIN=numB;
}
}else{
MAX=numC;
MIN=numB;
}
}else{
if(numB>=numC){
MAX=numB;
if(numA>=numC){
MIN=numC;
}else{
MIN=numA;
}
}else{
MAX=numC;
MIN=numA;
}
}
printf("其中最大值为%d,最小值为%d",MAX,MIN);
return 0;
}
8.
#include <stdio.h>
int main(){
int a,b,c;
char op;
scanf("%d%c%d",&a,&op,&b);
switch (op)
{
case'+':
c=a+b;
printf("%d",c);
break;
case'-':
c=a-b;
printf("%d",c);
break;
case'*':
c=a*b;
printf("%d",c);
break;
case'/':
c=1.0*a/b*1.0;
printf("%f",c);
break;
}
return 0;
}