流程控制实验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C语言程序设计实验报告一、实验名称流程控制实验二、实验目的1.掌握复合语句、if语句、switch语句的使用,熟练掌握for、while、do-while三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句与标号语句。2.练习循环结构for、while、do-while语句的使用。3.练习转移语句和标号语句的使用。4.使用codeblocks开发环境中的调试功能:单步执行、设置断点、观察变量值。三、实验任务1.源程序改错题下面是计算s=n!的源程序,在这个源程序中存在若干语法和逻辑错误。要求在计算机上对这个例子程序进行调试修改,使之能够正确完成指定任务。例如,8!=40320。#includestdio.hvoidmain(){inti,n,s=1;printf(Pleaseentern:);scanf(%d,n);for(i=1,i=n,i++)s=s*i;printf(%d!=%d,n,s);}2.源程序修改替换题(1)修改第1题,分别用while和do-while语句替换for语句。(2)修改第1题,输入改为“整数S”,输出改为“满足n!≥S的最小整数n”。例如输入整数40310,输出结果为n=8。3.编程设计题(1)假设工资税金按以下计算方法计算:x1000元,不收税金;1000=x2000,收取5%的税金;2000=x3000,收取10%的税金;3000=x4000,收取15%的税金;4000=x5000,收取20%的税金;x5000,收取25%的税金。编写一个程序,输入工资金额,输出应收取的税金,要求用if和switch语句来实现。(2)编写一个程序,将输入的一行字符复制到输出,复制过程中将一个以上的空格字符用一个空格字符代替。(3)打印如下杨辉三角形。1/*第0行*/11/*第1行*/121/*第2行*/13311464115101051161520156117213535217118285670562881193684126126843691每个数据值可以由组合jiC计算(表示第i行第j列位置的值),而jiC的计算如下:10iC(i=0,1,2,…)j/1)j-(i*1jijiCC(j=0,1,2,3,…,i)本程序中为了打印出金字塔效果,要注意空格的数目。一位数之间是3个空格,两位数之间有2个空格,3位数之间只有一个空格,程序编制过程中要注意区分。(4)编写一个程序,将用户输入的任意正整数逆转,例如,输入1234,输出4321。四、实验步骤及结果1.源程序改错题更改后的正确程序:#includestdio.hintmain(),{inti,n,s=1;printf(Pleaseentern:);scanf(%d,&n);for(i=1;i=n;i++)s=s*i;printf(%d!=%d,n,s);return0;}2.源程序修改替换题(1)while语句型替换程序#includestdio.hintmain(){inti=1,n,s=1;printf(Pleaseentern:);scanf(%d,&n);while(i=n){s=s*i;i++;}printf(%d!=%d,n,s);return0;}(2)do-while语句型替换程序#includestdio.hintmain(){inti=1,n,s=1;printf(Pleaseentern:);scanf(%d,&n);do{s=s*i;i++;}while(i=n);printf(%d!=%d,n,s);return0;}3.编程设计题(1)税金收取问题程序:If语句型:#includestdio.hintmain(){doubleincome,tax,a,b;inx:printf(Pleaseentertheincome:\n);scanf(%lf,&income);a=income/1000;if(a=0){if(a=5)b=0.25;if(a=4)b=0.20;if(a=3)b=0.15;if(a=2)b=0.10;if(a=1)b=0.05;elseb=0.00;tax=income*b;printf(thetaxis%.1lf,tax);}else{printf(Entererror!\n);gotoinx;}}运行结果:Switch语句型:#includestdio.hintmain(){doubleincome,tax,a,b;inx:printf(Pleaseentertheincome:\n);scanf(%lf,&income);a=income/1000;if(a0){printf(Entererror!\n);gotoinx;}elseswitch((int)(a)){case0:b=0.00;break;case1:b=0.05;break;case2:b=0.10;break;case3:b=0.15;break;case4:b=0.20;break;default:b=0.25;break;}tax=income*b;printf(Thetaxis%.1lf,tax);return0;}运行结果:(2)字符复制输出和多个空白字符删除:#includestdio.hintmain(){intflag=1;charc;printf(pleaseintputsomechars:\n);while((c=getchar())!='\n'){switch(c){case'':if(flag){putchar(c);flag=0;}break;default:putchar(c);flag=1;}}if((c=getchar())=='\n')printf(%c,c);return0;}运行结果:(3)杨辉三角:#includestdio.h#defineM10#defineN10intmain(){inta[M][N],i,j;for(i=0;iM;i++){for(j=N;j=i;j--)printf(%2c,'');for(j=0;j=i;j++){if(i==j||j==0)a[i][j]=1;elsea[i][j]=a[i-1][j]+a[i-1][j-1];printf(%3d,a[i][j]);if(i==j)printf(\n);}}}运行结果:(4)数字逆转:#includestdio.hintmain(){longx,digit;printf(pleaseinputapositiveinteger:\n);scanf(%ld,&x);do{digit=x%10;printf(%ld,digit);x/=10;}while(x!=0);printf(\n);return0;}运行结果:五、实验体会通过这次C语言实验,我更进一步认识到了C语言学习理论、实践相结合的重要性。同时我也深深认识到if语句、if-else语句、switch、for、while以及do-while等在c语言实现中的重要作用,我会更加努力学习理论知识,时不时的上机实践来查找自己的不足进而是自己在C语言的学习上取得很大的进步,提高自己的实践能力。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功