C程序设计基础上机实验指导书 下载本文

内容发布更新时间 : 2024/5/18 13:42:01星期一 下面是文章的全部内容请认真阅读。

}

2.以下程序的功能是:从键盘输入一个字符型数据,若输入一个数字字符(?0?-?9?),则将其转换成相应的整数显示出来;若输入其它字符,则显示出错信息。

#include \void main( ) {

char c;

scanf(\

if('0'<=c<='9') /*条件表达式*/ { c=c-'0';

printf(\}

else printf(\} 实验步骤:

⑴ 上机调试以上程序;

⑵ 输入?0?—?9?之间的任何字符,验证输出结果是否和程序功能相符合; ⑶ 输入?0?—?9?之外的任何字符,例如,输入字母?a?,验证输出结果是否和程序功能相符合;

⑷ 将条件表达式if('0'<=c<='9')改为if('0'<=c&&c<='9'),重复2、3步骤。分析、比较以上的输出结果,总结字符变量c的取值在‘0’-‘9’之间在C语言编程中的正确描述。

3.if语句的第一种形式为基本形式 if(表达式) 语句; 其语义是:如果表达式的值非零(为真),则执行其后的语句, 否则不执行该语句。

编程:输入两个整数,输出其中的大数。

提示:输入两个数a,b。把a先赋予变量max,再用if语句判别max和b的大小,如max小于b,则把b赋予max。因此max中总是大数,最后输出max的值。

4.if语句的第二种形式为if-else形式 if(表达式) 语句1;

else 语句2;

其语义是:如果表达式的值非零(为真),则执行语句1,否则执行语句2 。程序填空题。下列程序用于完成对输入的整数判断它是奇数还是偶数,并给出相应的提示。试完成它缺少的部分,并上机验证。

#include \void main( ) {

int x;

scanf(\

if( ) printf(\ else printf(\

15

}

编程:输入两个整数,输出其中的大数。

提示:改用if-else语句判别a,b的大小,若a大,则输出a,否则输出b。 5.if语句的第三种形式为if-else-if形式(嵌套的if)

当有多个分支选择时,可采用if-else-if语句,其一般形式为: if(表达式1) 语句1;

else if(表达式2) 语句2;

else if(表达式3) 语句3;…else if(表达式m) 语句m; else 语句n;

其语义是:依次判断表达式的值,当出现某个值为真时, 则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n 。 然后继续执行后续程序。

编程:要求判别键盘输入字符的类别。可以根据输入字符的ASCII码来判别类型。由ASCII码表可知ASCII值小于32的为控制字符。 在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母, 在“a”和“z”之间为小写字母,其余则为其它字符。 这是一个多分支选择的问题,用if-else-if语句编程,判断输入字符ASCII码所在的范围,分别给出不同的输出。例如输入为“g”,输出显示它为小写字符。在嵌套中要特别注意if和else的配对问题。为了避免二义性,C语言规定,else 总是与它前面最近的if配对。 6. 分析以下程序的运行结果并上机调试。

程序1:

#include \void main() {

int a=3,b=4,c=5,d=0; if(a>b) d=a; else

if(c>b) d=c; else d=b;

printf(\}

程序2: #include \

void main() {

int a=3,b=4,c=5,d=0; if(a>b)

if(c>b) d=c; else d=b; else d=a;

printf(\

16

}

程序3:

#include \void main() {

int a=3,b=4,c=5,d=0; if(a>b)

if(c>b) d=c; else d=b;

printf(\}

程序4:

#include \void main() {

int a=3,b=4,c=5,d=0; if(a>b)

{if(c>b) d=c;} else d=b;

printf(\}

编程:比较键盘依次输入的两个数a和b的大小关系,并根据大小关系分别输出1(若a>b)、0(若a=b)、-1(若a

7.条件运算符和条件表达式

由条件运算符组成条件表达式的一般形式为: 表达式1? 表达式2: 表达式3

其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式3的值作为整个条件表达式的值。用条件表达式对4中要求的输出两个数中的大数的程序重新编程。

8.switch语句

C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为: switch(表达式) {

case 常量表达式1: 语句1; case 常量表达式2: 语句2; …

case 常量表达式n: 语句n; default : 语句n+1; }

在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出

17

整个switch 语句。 这是与前面介绍的if语句完全不同的,应特别注意。

程序分析题。分析以下程序,对分析的结果上机检验。 #include \void main( ) {

int x=1,y=0,a=0,b=0; switch(x) {

case 1:

switch(y) {

case 0: a++;break; case 1: b++;break; } //abc case 2:

a++;b++;break; }

printf(\}

在程序中的//abc前面,}后面添加一个break; 再次运行该程序,程序结果有何变化?在实验报告中对结果作出解释。

三、对上述实验进行总结,写出实验报告,把你通过本实验掌握的内容整理出来。

实验五 选择结构程序设计(二) 一、实验目的

进一步掌握选择结构程序设计,熟练运用选择语句编写程序,提高调试和修改程序的能力。 二、实验内容

1.输入三个整数,输出最大数和最小数。

分析:首先比较输入的a,b的大小,并把大数装入max, 小数装入min中,然后再与c比较,若max小于c,则把c赋予max;如果c小于min,则把c赋予min。因此max内总是最大数,而min内总是最小数。最后输出max和min的值即可。

2.有一函数:

18

x

y=

x<1 1=

2x-1

3x-11 x>=10

用scanf函数输入x的值(分别为x<1,1—10,>=10三种情况),求y值。 分析:y是一个分段表达式。要根据x的不同区间来计算y的值。所以应使用if语句。

3.编写程序,输入三角形三边 a、b、c,判断a、b、c能否构成三角形,若不能则输出相应的信息,若能则判断组成的是等腰、等边、直角还是一般三角形。实验步骤与要求:

(1) 输入一组数据3,4,8,观察程序运行结果,并与实验二中程序2做比较 (2) 另外再输入几组数据进行测试: 3,4,5 3,3,3 3,3,5

(3)如果程序有误,可采用“单步跟踪执行”的调试方法,确定错误的出处。 4.输入某学生的成绩,经处理后给出学生的等级,等级分类如下: 90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下: E 方法一:(用if语句的嵌套)

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

19