二 填空题
1.若从键盘输入58,则以下程序输出的结果是 585858 。
main()
{ int a;
scanf(“%d”,&a);
if(a>50) printf(“%d”,a);
if(a>40) printf(“%d”,a);
if(a>30) printf(“%d”,a);
}
2.下面程序的运行结果是 -1 。
main()
{
int a=2, b=3, c;
c=a;
if(a>b) c=1;
else if(a==b) c=0;
else c=-1;
printf(“%d\n”,C);
}
3.以下程序实现:输入三个整数,按从大到小的顺序进行输出。请填空。
main()
{
int x, y, z, c;
scanf(“%d %d %d”, &x, &y, &z);
if( y>x ) { c=x; x=y; y=c;}
if( z>x ) { c=x; x=z; z=c;}
if( z>y ) { c=y; y=z; z=c;}
printf(“ %d %d %d”, x, y, z);
}
4.如果运行时输入字符Q,则下面程序的运行结果是 Q 。
main()
{
char ch;
scanf(“%c”, &ch);
ch=(ch>=‘A’&& ch<=‘Z’)? (ch+32):ch;
ch=(ch>=‘a’&& ch<=‘z’)? (ch-32):ch;
printf(“%c”, ch);
}
5.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式 x==0 。
6.表示“整数x的绝对值大于5”时值为“真”的C语言表达式是 x>5||x<-5 。
7.下列程序段的输出结果是 passwarn 。
int n='c';
switch(n++)
{ default: printf("error");break;
case 'a':case 'A':case 'b':case 'B':printf("good");break;
case 'c':case 'C':printf("pass");
case 'd':case 'D':printf("warn");
}
8.以下程序将两个数从小到大输出。
main()
{
float a, b, t ;
scanf( "%f %f" , &a, &b);
if(a>b)
{ t=a;
a=b ;
b=t;
}
printf(“%5.2f, %5.2f\n”, a, b);
}
9.若输入8642,以下程序的输出结果为 place=4,每位数字为:8,6,4,2 。
main()
{
long int num;
int gw, sw, bw, qw, ww, place;
printf(“请输入一个0~99999之间的整数:”);
scanf(“%ld”, &num);
if(num>9999) place=5;
else if(num>999) place=4;
else if(num>99) place=3;
else if(num>9) place=2;
else place=1;
printf(“place=%d,”, place);
printf(“每位数字为: ”);
ww=num/10000;
qw=(num-ww*10000)/1000;
bw=(num-ww*10000-qw*1000)/100;
sw=(num-ww*10000-qw*1000-bw*100)/10;
gw=num-ww*10000-qw*1000-bw*100-sw*10;
switch(place)
{case 5: printf(“%d, %d, %d, %d, %d”, ww, qw, bw, sw, gw); break;
case 4: printf(“%d, %d, %d, %d”, qw, bw, sw, gw); break;
case 3: printf(“%d, %d, %d”, bw, sw, gw); break;
case 2: printf(“%d, %d”, sw, gw); break;
case 1: printf(“%d”, gw); break;
}
}
10.若输入1988,程序运行的结果为 1988年是闰年 ;若输入1989,则结果为 1989年不是闰年 。
main()
{int year, leap;
scanf(“%d”, &year);
if(year%4) leap=0;
else if(year%100) leap=1;
else if(year%400) leap=0;
else leap=1;
if(leap) printf(“%d年是闰年。\n”, year);
else printf(“%d年不是闰年。\n”, year);
}
11.用以下程序把大写字母A~Z转换成对应的小写字母a ~ z,其他字符不转换。
main()
{char ch;
scanf ( "%c",&ch );
ch=( ch>='A'&&ch<='Z' )?ch+32:ch;
printf(“char=%c\n”, ch );
}
12.条件“20
13.若已知a=10, b=20, 则表达式!a
14.若已定义int a=25, b=14, c=19; 以下三目运算符(?:)所构成的语句的执行结果是
###a=26,b=13,c=19 。
a++<=25&&b--<=2&&c++?printf(“***a=%d, b=%d, c=%d\n”, a, b, C): printf(“###a=%d, b=%d, c=%d\n”, a, b, C);
15.以下两条if语句可合并成一条if语句为 if(a>b){y=2;printf("****y=%d\n",y);} else {x=1;printf("####x=%d\n",x);} 。
if(a<=b) x=1;
else y=2;
if(a>b) printf(“**** y=%d\n”, y);
else printf(“#### x=%d\n”, x);
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |