printf(“3 night\\n”);
printf(“Please enter your choice: ”); c=getcahr(); switch (c) {
case ‘1’: printf(“Good morning\\n”); brenk; case ‘2’: printf(“Good afternoon\\n”); break; case ‘3’: printf(“Good night\\n”); break; default: printf(“Selection error!\\n”); } }
5、输入一个年份和月份,打印出该月份有多少天(考虑闰年),用switch语句编程。 #include
int year, month;
printf(“Input year, month: ”); scanf(“%d %d”, &year, &month); switch (month) { case 1: case 3: case 5: case 7: case 8: case 10:
case 12: printf(“31 days\\n”); break; case 4: case 6: case 9:
case 11: printf(“30 days\\n”); break;
case 2: if ((year%4==0 && year0!=0)|| (year@0==0)) printf(“29 days\\n”); else
printf(“28 days\\n”); break;
default: printf(“Input error!\\n”); } }
习题6参考答案
编程题
1、编程计算2+4+6+…+98+100的值。
(1)利用for循环语句实现,在循环体外为sum赋初值0。 #include
int i, sum=0; for(i=2; i<=100; i+=2) sum+=i;
printf(“sum= %d\\n”, sum);
}
(2)利用while循环语句实现,在循环体外为i和sum赋初值。 #include
int i=2, sum=0; while(i<=100) { sum+=i; i+=2; }
printf(“sum= %d\\n”, sum); }
2、编程计算1*2*3+4*5*6+…+99*100*101的值。 #include
long term, sum=0; for(i=1; i<=99; i+=2) {
term=i*(i+1)*(i+2); sum+=term; }
printf(“sum= %d\\n”, sum); }
3、编程计算1!+2!+3!+…+10!的值。
(1)用累加和算法,累加项为term=term*i; i=1,2,…,10。Term的初始值为1,使用单重循环完成。 #include
long term=1, sum=0; int i;
for(i=1; i<=10; i++) { term*=i; sum+=term; }
printf(“1!+2!+3!+…+10! = %ld\\n”, sum); }
(2)用内层循环求阶乘,外层循环控制累加的项数。 #include
long term, sum=0; int i, j;
for(i=1; i<=10; i++) { term=1;
for(j=1; j<=i; j++) term*=j; sum+=term;
}
printf(“1!+2!+3!+…+10! = %ld\\n”, sum); }
4、编程计算a+aa+aaa+…+aa..a(n个a)的值,n和a的值由键盘输入。 #include
long term=0, sum=0; int a, i, n;
printf(“Input a, n:\\n”); scanf(“%d,%d”, &a, &n); for(i=1; i<=n; i++) {
term=term*10+a; sum+=term; }
printf(“sum=%ld\\n”, sum); }
5、参考答案: #include
float term, result=1; int n;
for(n=2; n<=100; n+=2)