}
3、编程:把百分制成绩转换成5级记分制,要求用switch语句。
90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下:E 如:Input Score: 86 86的等级为B #include
if(score/10=9||score/10=10) score=5; switch(score) {
case 1:printf(―‘E‘‖);break; case 2:printf(―‘D‘‖);break; case 3:printf(―‘C‘‖);break; case 4:printf(―‘B‘‖);break; case 5:printf(―‘A‘‖);break; } }
3、用switch语句编程,输入2005年的任一个月,输出这个月的天数。 #include
printf(―Input month of 2005:‖); scanf(―%d‖,&x); switch(x) {
- 11 -
case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf(―2005年%d月有31天‖,%x);break; case 2:printf(―2005年%d月有28天‖);break;
case 4:case 6:case 9:case 11:printf(―2005年%d月有30天‖);break; } }
如:Input month of 2005: 10 2005年10月有31天
5 、给出一个不多于5位的正整数,要求: #include
printf(―输入不多于五位数的正整数x:‖); scanf(―%d‖,&x); a=x/10000; b=(x/1000); c=(x/100)% 100; d= (x/10)00; e=x000; if(a>0)
printf(―五位数\\n分别输出每一位数:a,b,c,d,e\\n逆序为:e,d,c,b,a‖); if(b>0)
printf(―四位数\\n分别输出每一位数: b,c,d,e\\n逆序为:e,d,c,b\\n‖); if(c>0)
printf(―三位数\\n分别输出每一位数: c,d,e\\n逆序为:e,d,c\\n‖); if(d>0)
printf(―二位数\\n分别输出每一位数: d,e\\n逆序为:e,d\\n‖); if(e>0)
printf(―一位数\\n分别输出每一位数: e\\n逆序为:e\\n‖); }
(1)求出它是几位数; (2)分别输出每一位数字;
(3)按逆序输出各位数字,例如原数为321,应输出123
第五章
一、单项选择题
1、有如下程序,该程序的输出结果是_______。
void main( ) {int n=9;
while(n>6){n--; printf(\);} }
- 12 -
A、876 B、987 C、8765 D、9876 2、continue语句的正确的用法是 。
A、跳过该循环体中剩余的语句而强行开始下一次循环。 B、在多重循环中,只能退出最靠近的那一层循环语句。 C、跳出多重循环。
D、无论在任何情况下,都中断程序的执行,退出到系统下一层。 3、有以下程序段,则下面的描述正确的是 。 int k=0;
while(k=0) k=k-1;
A、while循环执行10次 B、循环是无限循环 C、循环体语句一次也不执行 D、循环体语句执行一次 4、C语言中whi1e和do-while循环的主要区别是___ __。 A、do-while的循环体至少无条件执行一次
B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句 5、有以下程序,则以下叙述正确的是_______。
int t=0; while (t=1) {...}
A、循环控制表达式的值为0 B、循环控制表达式的值为1 C、循环控制表达式不合法 D、以上说法都不对 6、语句 while(!E); 中的表达式 !E 等价于 ________。 A、E==0 B、E!=1 C、E!=0 D、E==1 7、下面程序段的运行结果是 _,循环次数为 。 int n=0; while(n++<=2);
printf(\
A、2 B、3 C、4 D、有语法错 8、下面程序的运行结果是 。
#include
printf(\
} }
A、1 B、1 C、1 D、 1 2 2 2 3 3
- 13 -
4
9、以下程序段 ________。
x=-1; do{x=x*x; } while(!x);
A、是死循环 B、循环执行二次 C、循环执行一次 D、 有语法错误 10、有如下程序段,则程序段_ _____。
int x=3;
do{printf(\
A、输出的是 1 B、输出的是 1 和 -2 C、输出的是 3 和 0 D、是死循环 11、下面程序的运行结果是 _ ___。 #include
void main( ) { int y=10;
do{y--;} while(--y); printf(\; }
A、-1 B、0 C、1 D、8
12、若i 为整型变量,则以下循环执行次数是 _____。
for(i=2;i==0;) printf(\
A、无限次 B、0 次 C、1 次 D、2 次 13、执行语句 for(i=1;i++<4; ); 后变量 i 的值是______。
A、3 B、4 C、5 D、 不定 14、以下正确的描述是 _______.
A、continue 语句的作用是结束整个循环的执行 B、只能在循环体内和 switch 语句体内使用 break 语句
C、在循环体内使用 break 语句或 continue 语句的作用相同 D、从多层循环嵌套中退出时,只能使用 goto 语句 15、有以下程序,程序运行后的输出结果是______。 void main() { char b,c; int i; b='a'; c='A'; for(i=0;i<6;i++) { if(i%2) putchar(i+b); else putchar(i+c); }
printf(\ }
A、ABCDEF B、AbCdEf C、aBcDeF D、abcdef 二、程序填空题:
1、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。
- 14 -
void main( ) { float x,amax,amin; scanf(―%f‖,&x); amax=x;amin=x; while( x>=0 ) { if(x>amax) amax=x;
if( x
printf(―\\namax=%f\\namin=%f\\n‖,amax,amin); }
2、下列程序打印如下形式的图形。
* * * * * * * * * *
void main( )
{ for(int i=1;i<=4;i++)
{ for(int j=1; j<=i ;j++) printf( ―\\n‖ ); printf( ―*‖ ); } }
3、下列程序求100之内的自然数中偶数之和。
#include
{if (i%2==0) s=i+s ; i++ ; }
printf(―s=%d\\n‖,s ); }
4、下面程序的功能是:输出 100以内(不包含100)能被 3整除且个位数为 6的所有整数,请填空。
#include<stdio.h> void main() { int i, j;
for(i=1; i<100 ; i++)
if ( i%3==0&&i%6==0 )
- 15 -