第三章作业 程序控制结构

2020-03-29 12:44

第三章 程序控制结构

通过本章实验作业应达目标

1.熟练掌握格式输入与格式输出函数与各种格式符的使用,掌握各类数据输入/输出的实现方法; 2.学会正确使用关系与逻辑运算,熟练构建关系与逻辑表达式;

3.练习并熟练掌握if、switch语句使用,实现二路与多路选择结构;

4.熟悉while、for、do_while、break、continue语句的作用与使用规范,能使用while语句、for语句、do_while语句实现循环结构;

5.掌握循环结构和选择结构之间嵌套、多重循环间嵌套的设计方法。 6.进行算法设计训练,能综合所学控制结构语句解决一般问题。

本章必须上交作业

第一部分 输入/输出作业要求

程序3_3.c上传至http://121.251.227.27:8080/c。源程序可以.cpp命名。 第二部分 分支结构作业要求

程序3_5.c、3_6.c、3_8.c上传至http://121.251.227.27:8080/c。 第三部分 循环控制结构作业要求 程序3_9.c、3_11.c、3_13.c、3_14.c、3_15.c、3_16.c、3_19.c上传至http://121.251.227.27:8080/c。

第一部分 顺序结构与输入/输出程序设计

实验一 一个三位数逆序输出

【实验目的】

了解顺序程序结构,学习调试程序。 【实验内容】

下面程序功能:键盘输入一个三位数,输出逆序后的数。例如,输入236,输出632。程序中有多处错误,改正后在机器上调试通过。程序以3_1.c命名。

#include void main() {int x,int y; int a,b,c; a=x/100; b=x/10; c=x;

printf(\ scanf(\ y=100c+10b+a;

printf(\ }

【思考】 如果输入的数据可以是任意大小的数,并不限制一定是一个三位数,怎样才能将该数逆序并输出?

实验二 字符数据输入/输出

【实验目的】

学习字符数据的输入与输出,学习getchar()/putchar()函数使用。 【实验内容】

用getchar()函数输入两个字符给c1、c2,然后分别用putchar()分别输出这两个字符,再输出它们的ASCII。程序以3_2.c命名。 【思考】

能否将输入的两个字符转换大小写后再一次输出?即输入是大写字符则输出对应小写字符,输出小写字符则输出对应的大写字符。

实验三 复数乘法

【实验目的】

学习格式化输入/输出操作。 【实验内容】

编写程序读入两个复数并输出这两个复数的乘积。输入输出如下图。程序以3_3.c命名并上交。

程序运行时用户只须输入两个复数的实部与虚部。

两个复数的乘积仍然是一个复数,复数的乘法按照以下法则进行: 设z1=a+bi,z2=c+di(a、b、c、d∈R)是两个任意复数,则它们的积为: (a+bi)(c+di)=(ac-bd)+(ad+bc)i。

【提示】

程序运行时屏幕首先显示:

输入5,回车后屏幕再次给出输入提示 virtualpart:

输入3,回车后屏幕显示该复数,并给出输入第二个复数的提示。

输入第二个复数的实部与虚部,最后输出这两个复数相乘得到的第三个复数。

注意,数学概念中的复数a+bi是一个非实型数据,在C语言中是没有复数类型的,因此没有办法定义一个变量来保存一个数学概念中的复数。为描述并记录复数,我们在此用两个float类型的变量分别记录一个复数的实部与虚部,用这两个变量描述一个数学概念中的复数。显示时以×× + ×× i的方式展示数据。具体说,计算机内是没有复数类型的,程序中用两个实型数据描述一个复数。复数的计算实质是对实部与虚部的计算,结果放在相应表示复数实部与虚部的变量里。

第二部分 分支结构程序设计

实验一 大小写转换

【实验目的】 熟悉关系与逻辑运算,了解if-else的顺序与嵌套层次关系。 【实验内容】

下面程序希望完成大小写字母转换功能。若输入一个大写字母,则转化为小写输出;若输入小写字母则转化为大写输出;对其他字母则原样不变输出。程序以3_4.c命名,运行程序,分别输入一次大写、一次小写字母、一次‘#’进行验证。如果程序有错,请改正。

#include void main() {char ch;

ch=getchar();

if('a'<=ch<='z') ch-=32; if('A'<=ch<='Z') ch+=32; putchar(ch);putchar('\\n'); }

实验二 算术运算

【实验目的】

学习if~else、switch语句的使用。 【实验内容】

键盘输入一个算术的运算式子,输出运算结果。这里我们规定可以接收五个算术运算的符号:+、-、*、/、^(乘方)。程序以3_5.c命名并上交。

下图是输入输出的示意图: 输入一个加法的算术式:

输入一个除法的算术式:

输入一个乘方的算术式:

求3的平方根:

【实验提示】

本程序需要从键盘接收一个表达式,根据表达式中的运算符号实现相应的运算并将结果保存下来并输出。

C语言本身是没有乘方运算符的,可以调用数学函数pow(x,y)求x的y次方。注意一定要包含。 【思考】

输入的表达式实质是按多个不同类型的数据来获取数据的。程序中需要定义多个变量来接收表达式中包含的数据与运算符,并设计相应的输入/输出函数实现。

实验三 金额计算

【实验目的】

学习分析与解决实际问题的能力,综合嵌套使用if~else或switch语句。 【实验内容】

某服装店经营套服。以50套为限,若购买数量不少于50套,每套80元;不足50套时每套90元;单买上衣每件60元,单买裤子每条45元。若购买金额大于10000元,则超过10000元部分可以打九折。

编写金额计算程序,实现:键盘读入所买上衣c和裤子t的数量,计算应付款总额。程序以3_6.c命名并上交。

实验四 利息计算

【实验目的】

综合使用选择结构语句,解决实际问题。 【实验内容】

RMB现期银行整存整取利率如下表: 时间 活期 半年 一年 二年 三年 五年 年利率(%) 0.72 2.43 3.15 3.5 4.70 5.70 编写程序,要求输入存款总额(以元为单位)与存款期限(以月为单位),计算并输出到期时的利息总额、利息税(20%)与实得利息。

两档期限之间以活期计算,如存款期限为50个月,则36个月按3.96%计算利息,14个月按0.72%计算利息。程序以3_7.c命名。

实验五 判断天数

【实验目的】

熟练使用switch语句,并设计精巧程序。 【实验内容】

按yyyy-mm-dd格式输入一个日期,如2004-10-31,判断这是这一年的第几天。程序以3_8.c命名并上交。

【实验提示】

以2004-10-31为例,先把前九个月的天数加起来,然后再加上31天。需要考虑的是,当年是闰年,2月为29天,否则2月为28天。也可以2月固定按28天计算,当年是闰年且月份大于2时,多加一天。

第三部分 循环程序设计

1.循环设计

循环是在循环条件为真时重复执行一组循环体语句的控制结构,是计算机解题的一个基本结构。循环控制有两种基本方法:计数法和标志法。

(1)计数器控制的循环

事先准确地知道循环次数,因此设计一个循环控制变量,由变量值来控制循环次数。每循环一次,循

环变量的值会递增(增值通常为1或-1),当其值达到终值时结束循环。

(2)标志控制的循环

事先不知道准确的循环次数,由某一目标值标记循环的结束。如,例3-23中以变量sum的值达到标记值1000作为循环的结束,例3-24中就是以键盘输入一个负数为标记结束循环。

2.基本算法

程序设计的首要工作是算法设计,离开了算法也就没有了程序。算法,是指完成某一项工作而采取的方法和步骤,具体到程序设计,是对解题过程的准确而完整的描述,并用一种程序设计语言的来实现。

循环主要用来解决程序设计中两类基本的算法:穷举和迭代。

1. 穷举算法

穷举的基本思想是对问题的所有可能状态一一测试,直到找到解或将全部可能状态都测试过为止。穷举是一种重复型算法,其核心是设计循环,在循环体中依次测试。

例3- 1 输入两个正整数x和y,求其最大公约数。 #include void main() {

int x,y,i,flag;

flag=1; /*flag是标志变量,当其值为0时表示已找到公约数*/ printf(\ scanf(\

for(i=x

if(x%i==0&&y%i==0) flag=0; /*条件满足,就改变标志变量的值*/ else i--;

printf(\ }

两个数中的小者到1之间任何一个数都有可能是公约数,因此用变量i从大到小一一穷举,直到找到为止。若两数互质,当i==1时也能使条件满足。

2. 迭代算法

按照特定规律和方法,重复地由旧值递推出新值,并由新值代替旧值,直至问题解决为止,这种解决问题的方法为迭代。迭代的关键因素是:迭代初值、迭代公式和迭代次数(精度要求)。

例3- 2 使用辗转相除法求两数的最大公约数。

辗转相除法:如果x除以y的余数为0,则除数y就是最大公约数,或余数不为0,则被除数x被除数y取代,除数y被余数取代,再用新的x除以新的y,判断余数是否为0,如果不为0,则重复此迭代过程,直至余数为0,此时的除数y即为最大公约数。

#include void main() {

int x,y,temp;

printf(\ scanf(\ temp=x%y;

while(temp!=0) {

x=y; /*迭代*/ y=temp; /*迭代*/ temp=x%y;


第三章作业 程序控制结构.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:财务报表分析(一)历年计算题及公式

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: