实验7
巩固分支结构、循环结构、函数和数组的使用方法。
一、填空:阅读下列程序说明和程序,在可选答案中,挑选一个正确答案。填补(1) (2) (3) (4)处空白,并注释说明为什么
#include <stdio.h> void main( ) { int i, b = 1; double s; s=0; /*对s进行赋值,初始值为0*/ for(i = 1; i <= 15; i++) { s = s + double(i)/double(b); /*对s进行赋值*/ b=b+2; /*对b进行赋值*/ } printf("sum=%f\n", s); /*输出sum的值,为实数型*/ }
二、填空:阅读下列程序说明和程序,在可选答案中,挑选一个正确答案。填补(1) (2) (3) (4)处空白,并注释说明为什么。。
#include <stdio.h> void main( ) { int i, j, t, a[10]; printf("Enter 10 integers: "); for(i = 0; i < 10; i++) /*对i赋值初始值为0*/ scanf("%d",&a[i]); for(i = 1; i < 10; i++) for(j=0;j<10-i; j++) /*循环语句,对j赋初始值为0,j<10-i时循环,完成一个循环j+1*/ if(a[j]<a[j+1]) /*判断语句*/ { t = a[j]; a[j] = a[j+1]; a[j+1] = t; } printf("After sorted: "); for(i = 0; i < 10; i++) printf("%d ", a[i]); printf("\n"); }
三、编程,输入x后,根据下式计算并输出y值。
#include<stdio.h> #include<math.h> int main(void) { double x,y; /*定义两个双精度浮点型变量*/ printf("Enter x:\n"); /*输入提示*/ /*调用scanf()函数输入数据,变量名x前面要加&,%lf中的l是long的首字母*/ scanf("%lf",&x); /*if-else语句*/ if(x<-2){ y=x*x; } if(x>=-2&&x<=2){ y=2+x; } else{ y=sqrt(x*x+x+1); } printf("y=f(%f)=%.2f\n",x,y);/*调用printf()函数输出结果*/ return 0; }
四、编写程序,输入一批学生的成绩,遇0或负数则输入结束,要求统计并输出优秀(大于85)、通过(60~84)和不及格(小于60)的学生人数。
# include<stdio.h> int main(void) { int i,mark,good,pass,failure,n; /*good中放优秀,pass中放及格,failure中放不及格*/ printf("Enter n:"); /*输入提示*/ scanf("%d",&n); /*输入数据个数*/ printf("Enter %d marks:",n); /*提示输入n个成绩*/ scanf("%d",&mark); /*读入第一个成绩*/ good=mark; /*假设第一个成绩是优秀*/ for(i=1;i<n;i++) /*由于已经读了第一个数,循环执行n-1次*/ { scanf("%d",&mark); /*读入下一个成绩*/ if(mark>85) /*如果该成绩大于85*/ { good=mark; /*则该成绩符合,将被记录*/ } for(i=1;i<n;i++) { scanf("%d",&mark);/*读入一个成绩*/ if(mark>=60&&mark<=84) /*如果它符合条件*/
{ pass=mark; /*则该成绩符合,将被记录*/ } printf("pass=%d\n",pass); /*输出成绩*/ for(i=1;i<n;i++) { scanf("%d",&mark); /*读入一个成绩*/ if(mark<60) /*如果它符合条件*/ { failure=mark; /*则它将被记录*/ } printf("failure=%d\n",failure); /*输出成绩*/ } } } return 0; }