二十一、输入一个百分制成绩,输出成绩等级A、B、C、D、E,输入的数据在90~100分为A,80~89分为B,70~79分为C,60~69分为D,0~59分为E,否则显示出错。
1 #include <stdio.h> 2 3 void main(void) 4 { 5 int score, temp; 6 char grade; 7 8 printf("Input score: "); 9 scanf("%d", &score); 10 if ( score < 0 || score > 100) 11 printf("Error! "); 12 else 13 { 14 temp = score / 10; 15 switch(temp) 16 { 17 case 10: 18 case 9: grade = 'A'; break; 19 case 8: grade = 'B'; break; 20 case 7: grade = 'C'; break; 21 case 6: grade = 'D'; break; 22 default: grade = 'E'; break; 23 } 24 printf("score = %d, grade = %c ", score, grade); 25 } 26 }
结果:
(1)Input score:
89
score = 89, grade = B
(2)Input score:
105
Error!
二十二、编写一个含有嵌套switch语句的程序。
1 #include <stdio.h> 2 3 void main(void) 4 { 5 int x = 1, y = 10, z = 20, n = 0; 6 7 switch(x) 8 { 9 case 1: 10 switch(y) 11 { 12 case 10: n++; break; 13 case 11: n++; break; 14 } 15 case 2: 16 switch(z) 17 { 18 case 20: n++; break; 19 case 21: n++; break; 20 } 21 case 3: 22 n++; break; 23 } 24 printf("n = %d ", n); 25 }
结果:
n = 2(case 3标号未执行)
二十三、求1+2+3+...+100的值,并将其结果放在变量sum中。
1 #include <stdio.h> 2 3 void main(void) 4 { 5 int i, sum = 0; 6 7 for (i = 1; i <=100; i++) 8 sum = sum + i; 9 printf("1+2+3+...+100 = %d ", sum); 10 }
二十四、从键盘输入10个学生的成绩,编程实现输出各成绩和平均成绩。
1 #include <stdio.h> 2 3 void main(void) 4 { 5 int i, score, sum = 0; 6 float ave; 7 8 for (i = 1; i <= 10; i++) 9 { 10 scanf("%d", &score); 11 printf("%d ", score); 12 sum = sum + score; 13 } 14 printf(" "); 15 ave = (float)sum / 10; 16 printf("ave = %f ", ave); 17 }
二十五、在3~100之间所有3的倍数中,找出个位数为2的数。
#include <stdio.h> void main(void) { int i; for (i = 3; i <=100; i = i + 3) if (i % 10 == 2) printf("4d", i); //按4个字符位、右对齐形式输出 printf(" "); }