C语言实验指导书-jal 下载本文

C语言实验指导书

{

float r,h,l,v,pi; pi=3.1415926;

scanf(“%f,%f”,&r,&h); l=2*pi*r;

v=pi*r*r*h;

printf(“圆周长为:%6.2f\\n”,l); printf(“圆柱体积为:%6.2f”,v);

}

【例4】输入一个摄氏温度,要求输出华氏温度。公式为f=9/5*c+32 main() { float c,f; scanf(“%f”,&c); f=9.0/5*c+32;

printf(“c=%5.2f,f=%5.2f\\n”,c,f); }

【练习】

1. 已知圆半径r=1.5,圆柱高h=3, 求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。

2.输入一个华氏温度,要求输出摄氏温度。公式为c=5/9*(f-32)

- 11 -

C语言实验指导书

实验四 选择结构程序设计

【目的与要求】

1.了解C语句中表示逻辑量的方法(以0代表“假”以1代表“真”); 2.学会正确使用关系运算符、逻辑运算符和关系表达式、逻辑表达式; 3.熟练掌握if语句和switch语句的使用。

【上机内容】

【示例】

【例1】已知三个数a,b,c,找出最大值放于max中。

分析:需定义四个变量a,b,c和max,a,b,c保存输入的任意三个数,max是用来存放结果最大值的。第一次比较a和b,把大数存入max中,因a,b都可能是大值,所以用if语句中if?else? 形式。第二次比较max和c,把最大数存入max中,用if语句的第一种形式if?形式。max即为a,b,c中的最大值。

#include \ main()

{

int a,b,c,max; /*定义四个整型变量*/ scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); /*注意输入数据的格式*/ if(a>=b) max=a; /*若a>=b,则max=a*/ else max=b; /*否则max=b*/ if (c>max) max=c; /*c是最大值*/ printf(\

}

若输入下列数据,分析程序的执行顺序并写出运行结果 (1)a=1,b=2,c=3 (2)a=2,b=1,c=3 (3)a=3,b=2,c=1 (4)a=3,b=1,c=2 (5)a=3,b=3,c=2 (6)a=2,b=1,c=2

【例2】输入某学生的成绩,经处理后给出学生的等级,等级分类如下: 90分以上 (包括90):A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下: E

- 12 -

C语言实验指导书

方法一:(用if嵌套`)

分析:由题意知如果某学生成绩在90分以上,等级为A;否则,如果成绩大于80分,等级为B;否则,如果成绩大于70分,等级为C;否则,如果成绩大于60分为D;否则,如果成绩小于60分,等级为E。当我们输入成绩时也可能输错,出现小于0或大于100,这时也要做处理,输出出错信息。因此,用if嵌套结构,先判断输入的成绩是否在0~100之间。

#include\ main() { int score;

char grade;

printf(\ scanf(\

if(score>100||score<0) printf(\ else

{

if(score>=90) grade='A'; else if(score>=80) grade='B'; else if(score>=70) grade='C'; else if(score>=60) grade='D';

else grade='E';

printf(\ }

}

输入若干测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。

方法二:用switch语句

分析:switch 语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除10取整,化为相应的常数。

#include\ main() { int g,s;

char ch;

printf(\ scanf(\

- 13 -

C语言实验指导书

s=g/10; if(s<0||s>10)

printf(\ else {

switch (s){ case 10:

case 9: ch='A'; break; case 8: ch='B'; break; case 7: ch='C'; break; case 6: ch='D'; break; default: ch='E'; }

printf(\ }

}

输入测试数据,同方法一一样调试程序并写出结果。 【例3】有一函数: ?x? y??2x?1?3x?11?x?11?x?10 x?10用scanf函数输入x的值(分别为x<1,1~10,>=10三种情况),求y值。 分析:y是一个分段函数表达式。要根据x的不同区间来计算y的值,所以应使用if语句。

main() { int x,y;

printf(“please input x:”); scanf(“%d”,&x); if(x<1) y=x;

else if (x<10) y=2*x-1; else y=3*x-11; printf(“y=%d\\n”,y);

}

【练习】

1.C语言如何表示“真”与“假”?系统如何判断一个量的“真”与“假”? 2.写出下面各逻辑表达式的值。设a=3,b=4,c=5

- 14 -