您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 四川师范大学c语言实验报告
第1页共43页实验一数据类型和表达式实验(验证性实验2学时)一、目的要求:(1)了解C语言中数据类型的意义。(2)理解常用运算符的意义。(3)掌握C语言表达式的运行规则。(4)编写实验报告。二、实验内容(参考实验指导书):1、计算由键盘输入的任何两个双精度数据的平均值。(1)算法描述:将数据代入公式(a+b)/2,输出结果。(2)源代码及说明:#includestdio,hmain(){doublea,b;scanf(%lf%lf,&a,&b);printf(%lf,(a+b)/2);}(3)测试数据:26(4)运行结果:4.00000(5)问题及解决方法:问题:格式符使用“%f”,输出结果总是0.000000。解决方法:格式符改为”%lf”。2、写一个输入7个数据的程序,把输入的数据代入a+b*(c–d)/e*f–g表达式进行运算。(1)算法描述:将数据代入公式a+b*(c–d)/e*f–g,输出结果。(2)源代码及说明:#includestdio.hmain(){inta,b,c,d,e,f,g;scanf(%d%d%d%d%d%d%d,&a,&b,&c,&d,&e,&f,&g);printf(%d,a+b*(c-d)/e*f-g);}(3)测试数据:1234567(4)运行结果:-6(5)问题及解决方法:无3、编写一个C语言程序,测试下列各表达式:i,ji+1,j+1第2页共43页i++,j++++i,++ji+++++j(1)算法描述:定义变量并将其分别代入各表达式中,输出结果。(2)源代码及说明:#includestdio.hmain(){inti=2,j=3;printf(%d%d\n,i,j);printf(%d%d\n,i+1,j+1);printf(%d%d\n,i++,j++);i=2,j=3;printf(%d%d\n,++i,++j);i=2,j=3;printf(%d\n,(i++)+(++j));}(3)测试数据:23(4)运行结果:23;34;23;34;6(5)问题及解决方法:问题:没有注意变量的使用。解决方法:重新定义变量。4、输入存款金额money,存期year和年利率rate,根据下列公式计算存款到期时的利息interest(税前),输出时保留2位小数。interest=money(1+rate)year-money(1)算法描述:利用函数pow(),将数据代入公式interest=money(1+rate)year-money输出结果。(2)源代码及说明:#includestdio.h#includemath.hmain(){doublemoney,rate,interest;intyear=0;scanf(%lf%lf,&money,&rate);scanf(%d,&year);interest=money*pow(1+rate,year)-money;printf(%.2lf,interest);}(3)测试数据:1000.12(4)运行结果:21.00(5)问题及解决方法:问题:求利率的多次幂解决方法:利用math函数库里的pow()函数第3页共43页5、输入华氏温度,输出对应的摄氏温度。计算公式如下:c=5*(f-32)/9其中,c表示摄氏温度,f表示华氏温度。(1)算法描述:将数据代入c=5*(f-32)/9,输出结果。(2)源代码及说明:#includestdio.hmain(){doublec,f;scanf(%lf,&f);c=5*(f-32)/9;printf(摄氏温度为:%lf,c);}(3)测试数据:90.0(4)运行结果:32.222222(5)问题及解决方法:无三、实验总结:1.通过实验我清楚的知道了双精度型数据的格式说明符的使用。2.学会使用pow()函数。实验二分支结构程序设计实验(验证性实验2学时)一、目的要求:(1)了解和掌握分支语句的使用,包括if语句的各种形式以及switch语句。(2)编写实验报告。二、实验内容(参考实验指导书):1、编写一个程序完成输入一个整数,输出它的符号。(1)算法描述:if(i0)输出“+”。if(i0)输出“-”。if(i=0)输出“0”。(2)源代码及说明:#includestdio.hmain(){inti;printf(请输入一个整数:\n);scanf(%d,&i);if(i0){第4页共43页printf(+\n);}elseif(i=0)printf(0\n);elseprintf(-\n);}(3)测试数据:5-6(4)运行结果:+-(5)问题及解决方法:无2、请编写居民应交水费,并提供各种测试数据。居民应交水费y(元)与月用水量x(吨)的函数关系式如下:0x0y=f(x)=4x/30≤x≤152.5x–10.5x15(1)算法描述:ifx0=f(x)=0;if0=x=15=f(x)=4x/3ifx15=f(x)=2.5x-10.5(2)源代码及说明:#includestdio.hmain(){floatx,y;scanf(%f,&x);if(x0){y=0;printf(应交水费%f元\n,y);}elseif(x=0&&x=15){y=4*x/3;printf(应交水费%f元\n,y);}else{y=2.5*x-10.5;printf(应交水费%f元\n,y);}}(3)测试数据:-1820(4)运行结果:0.00000010.66666735.200000第5页共43页(5)问题及解决方法:无3、请根据输入的学生成绩给出成绩等级的判断,判断规则如下:如果输入的成绩大于等于90,则输出优秀;如果输入的成绩小于90、大于等于80,则输出良好;如果输入的成绩小于80、大于等于70,则输出中等;如果输入的成绩小于70、大于等于60,则输出及格;其他输出不及格。(1)算法描述:ifscore=90输出优秀if80=score90输出良好if70=score80输出中等if60=score70输出及格else输出不及格(2)源代码及说明:#includestdio.hmain(){intscore;scanf(%d,&score);if(score=0&&score=100){switch(score/10){case10:case9:printf(优秀);break;case8:printf(良好);break;case7:printf(中等\n);break;case6:printf(及格\n);break;case5:case4:case3:case2:case1:case0:printf(不及格\n);break;default:printf(你输入的成绩非法\n)}}printf(你输入的成绩非法\n);第6页共43页}(3)测试数据:9886756453105-22(4)运行结果:优秀良好中等及格不及格输入不合法输入不合法(5)问题及解决方法:问题:大于100的分数未给出明确结果解决方法;在代码中加上对高于100分的限制4、运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下:s=250km没有折扣250km≤s500km2%折扣500km≤s1000km5%折扣1000km≤s2000km8%折扣2000km≤s3000km10%折扣3000km≤s15%折扣设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费的计算公式为:f=p*w*s*(1–d)请编程实现:从键盘输入基本运费p,货物重w,距离s,计算输出用户最终需要支付的运费。(1)算法描述:if(s250)d=0.0if(s=250&&s500)d=0.02if(s=500&&s1000)d=0.05if(s=1000&&s2000)d=0.08if(s=2000&&s3000)d=0.1elsed=0.15然后再将数据代入公式money=p*w*s*(1-d),输出money。(2)源代码及说明:#includestdio.hmain(){doublep,w,s,money,d;scanf(%lf%lf%lf,&p,&w,&s);if(s250){d=0.0;}elseif(s=250&&s500){d=0.02;}elseif(s=500&&s1000){d=0.05;第7页共43页}elseif(s=1000&&s2000){d=0.08;}elseif(s=2000&&s3000){d=0.1;}elsed=0.15;money=p*w*s*(1-d);printf(总运费为:%.2lf,money);}(3)测试数据:102230(4)运行结果:4600.00(5)问题及解决方法:无三、实验总结:掌握了if和switch分支语句的使用。实验三循环结构程序设计实验(验证性综合性实验2学时)一、目的要求:(1)使用循环语句完成累乘、图像输出的程序编写。(2)掌握较复杂结构程序的编写。(3)掌握程序调试的方法。(4)编写实验报告。二、实验内容(参考实验指导书):1、已知xyz+yzz=532,其中x、y、z都是数字(0~9),编写一个程序求出x、y、z分别代表什么数字。(1)算法描述:fori=1到9forj=1到9forz=1到9if满足xyz+yzz=532则输出x、y、z(2)源代码及说明:#includestdio.hmain(){intx,y,z;for(x=0;x=9;x++)第8页共43页{for(y=0;y=9;y++){for(z=0;z=9;z++){if(x*100+y*10+z+y*100+z*10+z==532)printf(%d%d%d\n,x,y,z);}}}}(3)测试数据:(4)运行结果:321(5)问题及解决方法:无2、编写一个程序打印如下对称图形(行数由键盘输入1~9范围的值),例如下面是输入的数字4时的情形:4444444333332221222333334444444(1)算法描述:for(i=number;i0;i--){for(k=number;k=i;k--){printf();}for(j=0;ji*2-1;j++){printf(%d,i);}for(i=2;i=number;i++){for(k=number;k=i;k--)}for(j=0;ji*2-1;j++){printf(%d,i);}(2)源代码及说明:#includestdio.hmain(){intnumber;inti,j,k;scanf(%d,&number);第9页共43页for(i=number;i0;i--){for(k=number;k=i;k--){printf();}for(j=0;ji*2-1;j++){printf(%d,i);}printf(\n);}for(i=2;i=number;i++){for(k=number;k=i;k--){printf();}for(j=0;ji*2-1;j++){printf(%d,i);}printf(\n);}}(3)测试数据:4(4)运行结果:4444444333332221222333334444444(5)问题及解决方法:无3、学校有近千名学生,在操场上排队,5人一行余2人,7人一行余3人,3人一行余1人,编写一个程序求该校的学生人数。(1)算法描述:for(x=1;x1000;x++)if满足x%5==2&&x%7==3&&x%3==1则输出x(2)源代码及说明:#includestdio.hmain(){第10页共43页intx;for(x=1;x1000;x++){if(x%5==2&&x%7==3&&x%3==1)printf(%d\n,x);}}(3)测试数据:(4)运行结果:52157262367472577682787
本文标题:四川师范大学c语言实验报告
链接地址:https://www.777doc.com/doc-3351740 .html