实验项目名称:分支和循环程序设计
姓名:吴振国专业:工学学号:3110103147 同组学生姓名:无联系电话152******** Email:1157086433@https://www.wendangku.net/doc/f010128536.html,
一、要求
1、掌握逻辑运算符的使用。
2、掌握用switch编程。
3、掌握for、while、do…while语句。
二、作业结果、实验程序及运行结果(必填)
ⅱ判断题
要求:实验程序使用文本方式,运行结果必须粘贴运行图(尽可能把图弄小一些)。
程序
#include
int main()
{
int n;
double grade,total,max,min;
n=total=max=0;
min=100;
printf("Enter grades:");
scanf("%lf",&grade);
while(grade>=0){
total=total+grade;
n++;
if(grade>=max)
max=grade;
if(grade<=min)
min=grade;
scanf("%lf",&grade);
}
if(n!=0)
printf("Grade average is %.2f\n",(total-max-min)/(n-2));
else
printf("Grade average is 0\n");
}
结果
三、讨论、心得
由自己根据情况写
1、掌握逻辑运算符的使用。
2、掌握用switch编程。
3、掌握for、while、do…while语句。
四、实验内容
(三)理论知识题
i. 单选题
1.对于if语句,以下()是正确的。
A、if语句可以嵌套,嵌套时的else总与它最近的没有else的if相匹配
B、如果有if(a>=3){if(a==3)y=1;}else y=10;,则else与第一个if匹配
C、如果有if(a>=3){if(a==3)y=1;}else y=10;,则else与第二个if匹配
D、if语句不可以嵌套
2.若a、b、c1、c2、x、y、均是整型变量,正确的switch语句是:______
A、
swich(a+b);
{ case 1:y=a+b; break;
case 0:y=a-b; break;
} B、
switch(a*a+b*b) {case 3:
case 1:y=a+b;break; case 3:y=b-a,break; }
C、
switch a
{case c1 :y=a-b; break case c2: x=a*d; break default:x=a+b;
} D、
switch(a-b)
{default:y=a*b;break;
case 3:case 4:x=a+b;break; case 10:case 11:y=a-b;break; }
3.下列程序段的输出结果是。 int k=1;
switch(k) {
case 1: putchar('P');
case 2:
case 3: putchar('Q'); break; case 4: putchar('R');
default: putchar('S');
}
A、P
B、PQ
C、PQR
D、PQRS
4.只有当输入的数据满足1<=month<=12时,循环语句才能正常退出。
A.do{
scanf("%d", &month);
} while (month >= 1 || month <= 12);
B.do{
scanf("%d", &month);
} while (month >= 1 && month <= 12);
C.do{
scanf("%d", &month);
} while (month < 1 || month > 12);
D.do{
scanf("%d", &month);
} while (month <= 1 || month >= 12);
ii. 判断题
1. while循环有可能循环体一次也不执行。
2 int x=0;while(1){x++;}存在语法错误,程序不会执行。
3 int x=0;for(;;){x++;}是死循环程序。
4.do-while语句先执行循环体,后判断循环条件,所以循环体至少会执行一次。
(二)编程:
从键盘输入一批评分数据(以输入负数表示输入结束),求去掉一个最高分、一个最低分后的平均得分。