1、流程管理流程控制实验(流程管理)流程控制实验C语言程序设计实验方案一、 实验名称 流程控制实验 二、实验目的1.掌握复合语句、if语句、switch语句的使用,熟练掌握for、while、do-while三种基本的循环控制语句的使用,掌握重复循环技术,了解转移语句和标号语句。2.练习循环结构for、while、do-while语句的使用。3.练习转移语句和标号语句的使用。4.使用codeblocks开发环境中的调试功能:单步执行、设置断点、观察变量值。三、 实验任务1源程序改错题下面是计算s=n!的源程序,于这个源程序中存于若干语法和逻辑错误。要求于计算机上对这个例子程序进行调试修改,使之能够
2、正确完成指定任务。例如,8!=40320。#includevoidmain()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%的
3、税金;3000=x4000,收取15%的税金;4000=x5000,收取25%的税金。编写壹个程序,输入工资金额,输出应收取的税金,要求用if和switch语句来实现。(2)编写壹个程序,将输入的壹行字符复制到输出,复制过程中将壹个之上的空格字符用壹个空格字符代替。(3)打印如下杨辉三角形。1/*第0行*/11/*第1行*/121/*第2行*/133114641151010511615201561172135352171182*881193684126126843691每个数据值能够由组合计算(表示第i行第j列位置的值),而的计算如下:(i=0,1,2,)(j=0,1,2,3,i)本程序中为了
4、打印出金字塔效果,要注意空格的数目。壹位数之间是3个空格,俩位数之间有2个空格,3位数之间只有壹个空格,程序编制过程中要注意区分。(4)编写壹个程序,将用户输入的任意正整数逆转,例如,输入1234,输出4321。四、 实验步骤及结果1源程序改错题更改后的正确程序:#includeintmain(),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语句型替换程序#includeintmain()inti=1,n,s=1;pr
5、intf(Pleaseentern:);scanf(%d,&n);while(i=n)s=s*i;i+;printf(%d!=%d,n,s);return0;(2)do-while语句型替换程序#includeintmain()inti=1,n,s=1;printf(Pleaseentern:);scanf(%d,&n);dos=s*i;i+;while(i=n);printf(%d!=%d,n,s);return0;3编程设计题(1)税金收取问题程序:If语句型:#includeintmain()doubleincome,tax,a,b;inx:printf(Pleaseenterthein
6、come: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);elseprintf(Entererror!n);gotoinx;运行结果:Switch语句型:#includeintmain()doubleincome,tax,a,b;inx:printf(Pleaseentertheincome:n);scanf(%lf,&
7、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)字符复制输出和多个空白字符删除:#includeintmain()intflag=1;charc;print
8、f(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)杨辉三角:#include#defineM10#defineN10intmain()intaMN,i,j;for(i=0;i=i;j-)printf(%2c,);for(j=0;j=i;j+)if(i=j|j=0)aij=1;elseaij=ai-1j+ai-1j-1
9、;printf(%3d,aij);if(i=j)printf(n);运行结果:(4)数字逆转:#includeintmain()longx,digit;printf(pleaseinputapositiveinteger:n);scanf(%ld,&x);dodigit=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语言的学习上取得很大的进步,提高自己的实践能力。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1