2010C语言实验报告参考答案.doc_第1页
2010C语言实验报告参考答案.doc_第2页
2010C语言实验报告参考答案.doc_第3页
2010C语言实验报告参考答案.doc_第4页
2010C语言实验报告参考答案.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2010C语言实验报告参考答案实验一 熟悉C语言程序开发环境及数据描述四、程序清单1编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black答案:#includemain()printf(The dress is longn);printf(The shoes are bign);printf(The trousers are blackn);2改错题(将正确程序写在指定位置)正确的程序为:#include main() printf(商品名称价格n); printf(TCL电视机¥7600n); printf(美的空调 ¥2000n); printf(SunRose键盘¥50.5n);2编写程序: a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。答案:#includemain()int a,b,c,x,y;a=150;b=20;c=45;x=a/b;y=a/c;printf(a/b的商=%dn,x);printf(a/c的商=%dn,y);x=a%b;y=a%c;printf(a/b的余数=%dn,x);printf(a/c的余数=%dn,y);4. 设变量a的值为0,b的值为-10,编写程序:当ab时,将b赋给c;当a=b时,将a赋给c。(提示:用条件运算符)答案:#includemain()int a,b,c;a=0;b=-10;c= (ab) ? b:a;printf(c = %dn,c);五、调试和测试结果1.编译、连接无错,运行后屏幕上显示以下结果: The dress is long The shoes are big The trousers are black3、 编译、连接无错,运行后屏幕上显示以下结果:a/b的商=7a/c的商=3a/b的余数=10a/c的余数=154. 编译、连接无错,运行后屏幕上显示以下结果:c =-10实验二 顺序结构程序设计四、程序清单1键盘输入与屏幕输出练习问题1 D 。问题2 改printf(%c,%c,%dn,a,b,c);这条语句 改成:printf(%c %c %dn,a,b,c);问题3 改scanf(%c%c%d,&a,&b,&c);这条语句 改为:scanf(%c,%c,%d,&a,&b,&c);问题4 改printf(%c,%c,%dn,a,b,c);这条语句 改成:printf(%c %c %dn,a,b,c);2(1)从键盘输入两个八进制数,计算两数之和并分别用十进制和十六进制数形式输出。#include int main()int a,b,c; printf(Enter a and b:);scanf(%o%o,&a,&b);c = a + b;printf(d:%dn,c);printf(x:%xn,c);return 0;2(2)编写程序:从键盘输入两个实数a和x,按公式计算并输出y的值: #include#includeint main() float a,x,y; scanf(%f%f,&a,&x);y = pow(a,5) + sin(a*x) + exp(a*x) + log(a+x);printf(y=%fn,y);return 0;3改错题正确的程序为:#include main()int a,b,c,s;scanf(%d%d%d,&a,&b,&c);s=a+b+c;printf(%d=%d+%d+%dn,s,a,b,c); /*输出s=a+b+c*/printf(%d+%d+%d=%dn,a,b,c,s); /*输出a+b+c=s*/五、调试和测试结果2(1) 输入: 12 14 输出:26 1a2(2) 输入:1 0输出:2.000000实验三 选择结构程序设计四、设计流程(算法描述) (请写出上机内容2(2)题的算法描述) 主要是两两比较,然后得出最大的数五、程序清单2(1) 输入整数x和a,计算并输出下列分段函数f(x)的值(保留2位小数),请调用log函数求自然对数,调用fabs函数求绝对值。程序为:#include #include main()int x,a;double y;printf(Enter a and x:);scanf(%d%d,&a,&x);if(fabs(x)!=a)y=log(fabs(float)(a+x)/(a-x)/(2*a);elsey=0;printf(a=%d,f(%d)=%.2fn,a,x,y); (2)输入a、b、c三个整数,输出最大数。#includemain() int a,b,c,x;scanf(%d%d%d,&a,&b,&c);if(a=b)x=a;elsex=b;if (xc)x=c;printf(the max number is:%dn,x);return 0;3改错题正确程序为:#include main()double n;printf(Enter n:);scanf(%lf,&n);if(n0)printf(%lf is less than 0n,n);else if(n=0)printf(%lf is equal to 0n,n);elseprintf(%lf is greater 0n,n);六、调试和测试结果2(1) Enter a and x:5 6a=5,f(6)=0.24Enter a and x:5 5a=5,f(5)=0.002(2) 输入:3 2 1 输出:the max number is:3 输入:2 3 1 输出:the max number is:3输入:1 2 3 输出:the max number is:3实验四 循环结构程序设计四、设计流程(算法描述)(请写出上机内容2的算法描述)首先求出每一个给定数的所有因子和,然后从2到5000循环,那一个数x与因子之和相等,就是完数。五、程序清单1编写程序:求1+2+3+100和12+22+33+1002。#include#includeint main() int i,j,sum;sum = 0;for (i=1;i=100;i+)sum += i;printf(the sum is:%dn,sum);sum =0;for(i=1;i=100;i+)j=pow(i,2);sum +=j;printf(the square sum is:%dn,sum);return 0; 2一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出25000中的所有完数。 #include#include main() int i,j,sum=0;for(i=2;i=5000;i+) /遍历从2到5000的所有数sum = 0; for (j=1;j=i/2;j+) /找出给定整数X的所有因子和if(i%j = 0)sum +=j;if(i = sum) /sum为因子和,如果和i相等,则输出printf(%d ,i);return 0; 3. 改错题正确的程序为:#include main()int n=1;int find=0;while(!find)if(n%5=1 & n%6=5 & n%7=4 & n%11=10)printf(n=%dn, n);find =1;n+;六、调试和测试结果1:结果:the sum is:5050 the square sum is:3383502:结果:6 28 496实验五 函数和预处理命令四、设计流程(算法描述)(请写出上机内容1的算法描述)利用循环将m乘n次五、程序清单1编写自定义函数long power(int m,int n),计算的值。利用此函数编程序实现:从键盘输入两个整数m和n,计算出的值。 #includelong power(int m,int n)/要返回的是long型int i;long s;/因为是要返回的数,所以这里也定义为long型s=1;for(i=1;i=n;i+)s *=m;return s;int main(void)int m,n;scanf(%d%d,&m,&n);printf(s=%ldn,power ( m,n);return 0; 2、写出两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。1 源程序如下:int zdgys(int n1,int n2)int y,i; for(i=n2;i=1;i-) if(n1%i=0&n2%i=0) y=i;break; return y;int zxgbs(int n1,int n2)int y,i; for(i=n1;i=n1*n2;i+) if(i%n1=0&i%n2=0) y=i;break; return y;main()int n1,n2,t; scanf(n1=%d n2=%d,&n1,&n2); if(n1n2) t=n1;n1=n2;n2=t; printf(zdgys=%d zxgbs=%d,zdgys(n1,n2),zxgbs(n1,n2);3、改错题正确程序如下:#include int fact(int n);int multi(int n);main()int i; double sum,item,eps; eps=1E-6; sum=1; item=1; for(i=1;item=eps;i+)item=fact(i)/multi(2*i+1); sum=sum+item; printf(“PI=%0.5lfn”,sum*2);return 0;int fact(int n)int i; int res=1; for(i=0;i=n;i+) res=res*i;return res;int multi(int n)int i; int res=1; for(i=3;i=n;i=i+2) res=res*i;return res; 六、调试和测试结果1、输入:2 3 输出:s=82、 输入:n1=24 n2=16输出:zdgys=8 zxgbs=482. 3、输出结果为:实验六 数组四、设计流程(算法描述)(请写出上机内容1的算法描述)设置两个变量分别指示头和尾。第一个和最后一个元素值互换,然后头和尾变量向里移动,最终到两变量相遇为止。五、程序清单1编写程序:从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序输出。自定义函数void antitone(int a,int n)实现将数组中的n个数据按逆序存放。 void antitone(int a,int n)int i,j;int k;i=0;j=n-1;while(ij)k=ai;ai=aj;aj=k;i +=1;j -=1;2已知某数列的前两项为2和3,其后每一项为其前两项之积。编程实现:从键盘输入一个整数x,判断并输出x最接近数列的第几项?#include#includevoid Mad(int a,int n)int i;a0=2;a1=3;for(i=2;iai;i+);k1 = abs(x-ai-1);k2 = abs(x-ai);if(k1k2)printf( x 最接近第%d项n,i+1);elseprintf(x 最接近第%d项n,i);return 0; 3、源程序如下:#include main() char c15;int i,word=0,num=0,space=0;for(i=0;i=14;i+)scanf(%c,&ci);for(i=0;i=0&cia&ciz) word+;printf(字符:%d 数字:%d 空格:%dn,word,num,space);六、调试和测试结果1、输入:1 2 3 4 5输出:5 4 3 2 12、输入:110输出:x 最接近第6项3、输入:sd234kj64jk mjk输出:字符:9数字:5空格:1实验七 数组和函数综合程序设计四、程序清单(请写出上机内容2、3中源程序)2、 原程序求得的是下三角形,经改进调试之后的程序为: #include #define N 6main()int i,j,sum=0;int aNN=0;printf(input 55 data:n);for(i=1;iN;i+) printf(Input the %d line data:n,i);for(j=1;j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论