C语言入门学习-C上机实验三要求

发布时间 : 星期四 文章C语言入门学习-C上机实验三要求更新完毕开始阅读

上机实验三 循环结构综合练习

【实验二参考答案见后】

目的和要求:

(1)熟练掌握while、do…while、for语句的应用; (2)掌握循环的嵌套;

(3)掌握辗转相除法、迭代法、递推法等重要算法的基本要领; (4)了解将运行结果保存到数据文件的一般步骤。

实验内容: 一、编程题:

1.任意读入两个正整数,输出它们的最小公倍数。 【提示:先用辗转相除法求出两数的最大公约数,再用二者的乘积除以最大公约数即得最小公倍数。例如:75和120的最大公约数是15,而75*120/15=600即为最小公倍数。】 2.任意读入x的值(0

2

+ x3- x4 +…… -x2n + x2n+1……的值。当某

项的绝对值小于10-6时终止。(当x为0.5时,和值为0.333334)

【系统函数fabs(x)的功能是计算x的绝对值,前面需加math . h头文件】

3.一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹。编程计算:“它在第10次落地后,反弹多高”;“从第一次落下到第十次反弹,总共经过了多少米”。 (结果:反弹0.097656,共299.707031) 4.将1元人民币兑换成1分、2分、5分硬币,输出所有的兑换结果,并将结果保留到E盘文本文件rmb.txt中。(你能统计出一共有多少种兑换结果吗?) 【要求输出结果如下所示】 1分:0,2分:0,5分:20 ……

1分:0,2分:25,5分:10 ……

1分:100,2分:0,5分:0 【文件使用“五部曲”见最后!】

5.模仿下列“蓝色例题”,编程输出形如下图的平行四边形。 【要求:行数、每行星号数(即列数)由键盘输入。】

【提示:使用双重循环完成此题。外循环控制行数、内循环控制每行的空格数和星号数,每行输出的空格数比前一行少一个。】 ******

****** ****** ******

以下程序输出形如下图的平行四边形。 ******

****** ****** ******

#include main() {int i, j, k; int H, L;

scanf(\

for(i=1; i<=H; i++) /*控制输出H行*/

{for(k=1; k<=i; k++)printf(\ /*每行输出若干个空格,每行比前一行多输出一个空格*/ for(j=1; j<=L; j++)printf(\ /*每行输出L个星号*/ printf(\ /*每行最后换行*/ } }

二、完善题

以下程序的功能是:任意读入一个长整型数据,然后依次从低位到高位输出其每一位数位上的数字,最后输出其符号位,若为0,则不输出符号位,而输出“Is 0!”【注意:每空只能填一个语句或表达式,但语句的分号题目已给出。】例如:读入的数据为-3265478,则输出为:

8 7 4 5 6 2 3 -

#include main() {long x, y; char fh;

printf(\ _________________;

y=x; /*用y保留住x的原值*/ if(x<0)

{fh='-'; _________;}

else

fh='+';

printf(\ do

{printf(\ /* 注意x的作用!*/ x=x/10;

}while(x!=0); /*思考:为什么用直到型循环?*/ if(________)

printf(\ else

printf(\}

【实验二参考答案】 编程题:

1.给班主任编写一个小程序:当输入的学生成绩介于90到100分时,输出等级字符A;当输入的学生成绩介于80到89分时,输出等级字符B;当输入的学生成绩介于70到79分时,输出等级字符C;当输入的学生成绩介于60到69分时,输出等级字符D;当输入的学生成绩小于60分时,输出等级字符E。 【要求用两种方法完成本题:方法一使用多分支if语句,文件名为11.c;方法二使用switch语句(此方法为附加题,文件名为12.c。提示---先弄懂课堂例题“铅笔打折”的switch写法)】 【方法1:if】 #include main() {int fs;

printf(\ scanf(\ if(fs<60) printf(\ else if(fs<70)

printf(\ else if(fs<80)

printf(\ else if(fs<90)

printf(\ else printf(\ }

【方法2:switch】 #include main() {int fs;

printf(\ scanf(\ switch(fs/10)

{case 10:

case 9: printf(\ case 8: printf(\ case 7: printf(\ case 6: printf(\

default: printf(\ } }

2.以下程序完成的功能是:任意读入一个整数,如果是非负数,则进一步判断其是否为奇数,是就将字符型变量flag的值修改为' J'(代表奇数的意思);如果不是非负数,则将flag的值修改为'F '(代表负数的意思),最后输出flag的值。【程序的开头、结束部分已给出,请将中间红色省略号部分改为合适的语句】 #include main() {int x;

char flag='O'; /* 大写字母O,代表偶数的意思 */ scanf(\

……

printf(\}

#include main() {int x;

char flag='o'; /*小写字母o,代表偶数的意思*/ scanf(\

if(x>=0)

{if(x%2!=0)

flag='j';} /*用{}取消内if的配对资格*/ else

flag='f';

printf(\}

11111????...?35799的和。3.编程求出(值约为2.937775)

11111????...?35799,请编程求该式之和。【附加题:将上式改为(值约为0.780399)】

#include

main()

{int i; float s=0; i=1;

while(i<=99) {s=s+1.0/i; i=i+2; }

printf(\

联系合同范文客服:xxxxx#qq.com(#替换为@)