C语言实验报告参考答案(原).pdf

上传人:索**** 文档编号:83235343 上传时间:2023-03-28 格式:PDF 页数:24 大小:200.75KB
返回 下载 相关 举报
C语言实验报告参考答案(原).pdf_第1页
第1页 / 共24页
C语言实验报告参考答案(原).pdf_第2页
第2页 / 共24页
点击查看更多>>
资源描述

《C语言实验报告参考答案(原).pdf》由会员分享,可在线阅读,更多相关《C语言实验报告参考答案(原).pdf(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1 C 语言实验报告参考答案实验一熟悉 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编写程序:(1)a=150,b=20,c=45,编写求 a/b、a/c(商)和 a%b、a%c(余数)的程序。(2)a=160,b=46,c=18,d=170

2、,编写求(a+b)/(b-c)*(c-d)的程序。答案:(1)#includemain()i nt 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);2(2)#includemain()i nt a,b,c,d;f loat x;a=160;b=46;c=18;d=170;x=(a+b)/(b-c)*(c-d);printf(a+b)/(b-c)*(c-d)=%fn,x);3.设变量

3、 a 的值为 0,b 的值为-10,编写程序:当ab 时,将 b 赋给 c;当 a=b时,将 0 赋给 c。(提示:用条件运算符)答案:#includemain()i nt 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 black2、(1)编译、连接无错,运行后屏幕上显示以下结果:a/b 的商=7a/c 的商=33 a/b 的余数=10a/c 的余数=15(2)编译、连接无错,运行后屏幕上

4、显示以下结果:(a+b)/(b-c)*(c-d)=3.编译、连接无错,运行后屏幕上显示以下结果: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);这条语句改成:%c%dn,a,b,c);问题 5 把 scanf(%c%c%d,&a,&b,&c);和 print

5、f(%c,%c,%dn,a,b,c);改成 scanf(%c%*c%c%*c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);2(1)从键盘输入两个八进制数,计算两数之和并分别用十进制和十六进制数形式输出。#include int main()int a,b,c;scanf(%d%d,&a,&b);c=a+b;printf(%dn,c);printf(%xn,c);r eturn 0;2(2)编写程序:从键盘输入两个实数a 和 x,按公式计算并输出y 的值:axexaaxay)ln()sin(5#include#includeint main()4 float a,x,

6、y;scanf(%f%f,&a,&x);y=pow(a,5)+sin(a*x)+exp(a*x)+log(a+x);printf(y=%fn,y);r eturn 0;五、调试和测试结果2(1)输入:12 14输出:26 1a2(2)输入:1 0输出:实验三选择结构程序设计四、设计流程(算法描述)(请写出上机内容 2(3)题的算法描述)主要是两两比较,然后得出最大的数五、程序清单(1)输入一个整数,若大于等于0,输出提示信息“is positive”,否则输出“is negative”。#include#includemain()int a;scanf(%d,&a);i f(a=0)print

7、f(the number is positven);elseprintf(the number is negetiven);r eturn 0;(2)输入两个整数a 和 b,若 a=b 时,求其积c 并显示;若ab 时,求其商c 并显示。#include main()int a,b,c;5 scanf(%d%d,&a,&b);i f(a=b)printf(c=%dn,a*b);elseprintf(c=%dn,a/b);r eturn 0;(3)输入 a、b、c 三个整数,输出最大数。#includemain()int a,b,c,x;scanf(%d%d%d,&a,&b,&c);i f(a=

8、b)x=a;elsex=b;i f(xc)x=c;printf(the max number is:%dn,x);r eturn 0;六、调试和测试结果2(1)输入:2输出:the number is positve输入:0输出:the number is positve输入:-2输出:the number is negetive2(2)输入:3 2 输出:c=6输入:2 3 输出:c=02(3)输入:3 2 1 输出:the max number is:3输入:2 3 1 输出:the max number is:3输入:1 2 3 输出:the max number is:3实验四循环结构

9、程序设计四、设计流程(算法描述)(请写出上机内容 2的算法描述)首先求出每一个给定数的所有因子和,然后从2 到 5000 循环,那一个数x6 与因子之和相等,就是完数。五、程序清单1编写程序:求1+2+3+100 和 12+22+33+1002。#include#includeint main()int i,j,sum;sum=0;f or(i=1;i=100;i+)sum+=i;printf(the sum is:%dn,sum);sum=0;f or(i=1;i=100;i+)j=pow(i,2);sum+=j;printf(the square sum is:%dn,sum);r etu

10、rn 0;2 一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出25000中的所有完数。#include#include main()int i,j,sum=0;f or(i=2;i=5000;i+)写程序:计算sinx 的近似值,精确到10-6。!7!5!3sin753xxxxx7 其实)!12()1(sin)12(1n)1(nxxnn所以程序#include#include main()float x,sinx,i,t;printf(请输入一个 x 值(弧度值):);scanf(%f,&x);sinx=0;t=x;i=1;while(fabs(t)=1e-6)sinx=si

11、nx+t;t=t*(-x*x/(2*i*(2*i+1);i+;printf(sin(%.2f)=%.6fn,x,sinx);六、调试和测试结果1:结果:the sum is:5050 the square sum is:3383502:结果:6 28 4963、输入 0,输出 sin=输入,输出 sin=输入,输出 sin=实验五函数和编译预处理四、设计流程(算法描述)(请写出上机内容 2 的算法描述)求素数的方法就是:给定一个大于3 的数 x,从 2 到 X的平方根遍历,只要有数可以被 x 整除,就不是素数五、程序清单1编写自定义函数long power(int m,int n),计算nm的

12、值。利用此函数编程序实现:从键盘输入两个整数m和 n,计算出nm的值。#includelong power(int m,int n)编写自定义函数count(int x),计算 x 的因子个数。利用此函数找出并输出11000 中有奇数个不同因子的整数。#include8#includeint count(int x)i nt sum,i;sum=0;入:2 3输出:s=82.输出:共有668 个素数2.3、输出结果为:实验六数组四、设计流程(算法描述)(请写出上机内容 1 的算法描述)设置两个变量分别指示头和尾。第一个和最后一个元素值互换,然后头和尾变量向里移动,最终到两变量相遇为止。五、程序

13、清单1编写程序:从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序输出。自定义函数void antitone(int a,int n)实现将数组中的n 个数据按逆序存放。void antitone(int a,int n)i nt i,j;9 i nt 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)i nt i;a0=2;a1=3;

14、f or(i=2;in;i+)ai=ai-1*ai-2;int main(void)i nt a100,x,k1,k2;i nt i;M ad(a,100);程实现:输入10 个学生 5 门课的成绩并完成如下功能(1)求每个学生的平均分;(2)求每门课程的平均分。#include#include#define num 1010 typedef struct studentchar name20;f loat math;f loat englis;f loat computer;f loat Chinese;f loat history;STUDENT;int main(void)STUDENT

15、 stunum;i nt i;f loat score,sum,average;char s10;f loat scoreMath,scoreEng,scoreCom,scoreChi,scoreHis;f or(i=0;inum;i+)printf(Name:);gets(stui.name);printf(math score:);scanf(%f,&score);stui.math=score;printf(englis score:);scanf(%f,&score);stui.englis=score;printf(computer score:);scanf(%f,&score);

16、stuiputer=score;printf(Chinese score:);scanf(%f,&score);stui.Chinese=score;printf(history score:);scanf(%f,&score);stui.history=score;11 gets(s);ame);才能起到作用ath;sum+=stui.englis;sum+=stuiputer;sum+=stui.Chinese;sum+=stui.history;average=sum/5;printf(%ss average score is:%fn,stui.name,average);ath;sco

17、reEng+=stui.englis;scoreCom+=stuiputer;scoreChi+=stui.Chinese;scoreHis+=stui.history;printf(maths average score is:%fn,scoreMath/num);printf(engliss average score is:%fn,scoreEng/num);printf(computers average score is:%fn,scoreCom/num);printf(Chineses average score is:%fn,scoreChi/num);printf(histor

18、ys average score is:%fn,scoreHis/num);r eturn 0;实验七数组和函数四、程序清单(请写出上机内容2 中函数的源代码)void fun(int ttMN,int ppN)int i,j,max;for(j=0;jN;j+)max=tt0j;for(i=1;imax)max=ttij;ppj=max;五、调试和测试结果(写出上机内容1 中填空的内容)(1)(1)sum=0 (2)tii (3)1 12(2)(1)1 (2)i (3)ap+i 实验八指针(1)四、程序清单(请写出上机内容 2 中的函数)求出每个位上的数字,然后放在千位上的数字乘以1000,

19、放在百位上的数字乘以 100,放在 10位上的数字乘以10,然后相加。void fun(int a,int b,long*c)int a10,a1,b10,b1;a10=a/10;a1=a%10;b10=b/10;b1=b%10;*c=a10*1000+b1*100+a1*10+b10;五、调试和测试结果(请写出上机内容1 的输出结果)1(1)输出结果为:8,7,7,8(2)6(3)(1)x=10 y=20(2)x=20 y=10(4)【1】int*p 【2】&ai 【3】pi 输入:1 2 3 4 5 6 输出:1 2 3 4 5 6实验九指针(2)设计流程(算法描述)(请写出上机内容 2

20、中的算法描述)当*(x+i)!=0 i=0*(x+i)=yTreturn 1i=i+1return 0F13 五、程序清单1已知一个整型数组a5,其各元素值为4,6,8,10,12。使用指针编程求数组元素之积。#include int main(void)int a=4,6,8,10,12,sum;i nt*p;sum=1;f or(p=a;pave=0;for(i=0;iave+=a-si;a-ave/=N;五、调试和测试结果(请写出上机内容1 的填空结果)上机内容 1 的填空结果(1)-sno (2)-name (3)&t实验十一共用体与枚举文件四、程序清单(请写出上机内容 2 中的程序源

21、代码)#include#include#include int main(void)i nt i,sum;FILE*fd;char s10,*p,ch;i f(fd=fopen(D:,wt)=NULL)printf(creat the file failedn);exit(0);elsefor(i=1;i100;i+)if(i%3=0)&(i%5=0)printf(%d,i);itoa(i,s,10);Init list,2.Enter list,3.Delete a record from list,4.print list,5.Search record by name,15 6.Sear

22、ch record by Number,7.Save the file,8.Load the file,9.insert record to list,10.sort by total scores,11.sort by maths scores,12.sort by program scores,13.index on number,0.Quit;char s3;int c,i;gotoxy(1,25);printf(press any key continue.n);getch();clrscr();gotoxy(1,1);textcolor(YELLOW);textbackground(

23、BLACK);gotoxy(10,2);putch(0 xc9);for(i=1;i44;i+)putch(0 xcd);putch(0 xbb);for(i=3;i20;i+)gotoxy(10,i);putch(0 xba);gotoxy(54,i);putch(0 xba);gotoxy(10,20);putch(0 xc8);for(i=1;i44;i+)putch(0 xcd);putch(0 xbc);window(11,3,53,19);clrscr();for(i=0;i16;i+)gotoxy(10,i+1);cprintf(%s,menui);textbackground(

24、BLACK);window(1,1,80,25);gotoxy(10,21);doprintf(n Enter you choice(013):);16 scanf(%s,s);c=atoi(s);while(c14);return c;STUDENT*init()return NULL;STUDENT*create()int i;int s;STUDENT*h=NULL,*info;for(;)info=(STUDENT*)malloc(sizeof(STUDENT);if(!info)printf(nout of memory);return NULL;inputs(enter no:(1

25、0 digitals.enter 0 to exit),info-no,11);if(info-no0=0)break;/*when the first number is 0,break*/inputs(enter name:(name,15);printf(please input scores n);s=0;/*s is sum,begins with 0*/for(i=0;iscorei);/*socre0 stores maths scores,socore1 stores program scores*/if(info-scorei100|info-scoreiscorei100|

26、info-scoreiscorei;info-sum=s;info-order=0;info-next=h;17 h=info;return(h);inputs(char*prompt,char*s,int count)char p255;doprintf(prompt);scanf(%s,p);if(strlen(p)count)printf(n too long!n);while(strlen(p)count);strcpy(s,p);/*Print infor*/void print(STUDENT*h)int i=0;STUDENT*p;clrscr();p=h;n);printf(|

27、rec|NO.|name|maths|program|sum|order|n);printf(|-|-|-|-|-|-|-|n);while(p!=NULL)i+;printf(|%3d|%-10s|%-15s|%7d|%9d|%4.2f|%3d|n,i,p-no,p-name,p-score0,p-score1,p-sum,p-order);p=p-next;printf(*end*n);STUDENT*delete(STUDENT*h)STUDENT*p,*q;char s11;clrscr();printf(please enter the number you want to dele

28、te n);scanf(%s,s);18 q=p=h;while(strcmp(p-no,s)&p!=NULL)q=p;p=p-next;if(p=NULL)printf(nlist no%s studentn,s);elseprintf(nnn*STUDENT*n);printf(|NO.|name|maths|program|sum|order|n);printf(|-|-|-|-|-|-|n);printf(|%-10s|%-15s|%7d|%9d|%4.2f|%3d|n,p-no,p-name,p-score0,p-score1,p-sum,p-order);printf(*end*n

29、);getch();if(p=h)h=p-next;elseq-next=p-next;free(p);printf(n have deleted No%s studentn,s);return(h);STUDENT*searchno(STUDENT*h)STUDENT*p,*q;char s11;clrscr();printf(please enter the number you want to search n);scanf(%s,s);q=p=h;while(strcmp(p-no,s)&p!=NULL)q=p;p=p-next;if(p=NULL)19 printf(n%s No F

30、ound!n,s);elseprintf(n%s Found!n,s);printf(nnn*STUDENT*n);printf(|NO.|name|maths|program|sum|order|n);printf(|-|-|-|-|-|-|n);printf(|%-10s|%-15s|%7d|%9d|%4.2f|%3d|n,p-no,p-name,p-score0,p-score1,p-sum,p-order);printf(*end*n);getch();return(h);void search(STUDENT*h)STUDENT*p;char s15;clrscr();printf(

31、please enter name for searchn);scanf(%s,s);p=h;while(strcmp(p-name,s)&p!=NULL)p=p-next;if(p=NULL)printf(n%s No Found!n,s);elseprintf(n%s Found!n,s);printf(nnn*STUDENT*n);printf(|NO.|name|maths|program|sum|order|n);printf(|-|-|-|-|-|-|n);printf(|%-10s|%-15s|%7d|%9d|%4.2f|%3d|n,p-no,p-name,p-score0,p-

32、score1,p-sum,p-order);printf(*end*n);20 STUDENT*insert(STUDENT*h)STUDENT*p,*q,*info;char s11;int s1,i;printf(please enter the this record will be located before n);scanf(%s,s);printf(nplease new recordn);info=(STUDENT*)malloc(sizeof(STUDENT);if(!info)printf(nout of memory);return NULL;inputs(enter n

33、o:(10 digitals),info-no,11);inputs(enter name:(name,15);printf(please input scores n);s1=0;for(i=0;iscorei);if(info-scorei100|info-scoreiscorei100|info-scoreiscorei;info-sum=s1;info-order=0;info-next=NULL;p=h;q=h;while(strcmp(p-no,s)&p!=NULL)q=p;p=p-next;if(p=NULL)if(p=h)h=info;21 elseq-next=info;el

34、seif(p=h)info-next=p;h=info;elseinfo-next=p;q-next=info;printf(n-have inserted%s student-n,info-name);return(h);/*SAVE*/void save(STUDENT*h)FILE*fp;STUDENT*p;char outfile10;printf(Enter outfile name,for example c:c:n);scanf(%s,outfile);if(fp=fopen(outfile,wb)=NULL)printf(can not open filen);exit(1);

35、printf(nSaving file.n);p=h;while(p!=NULL)fwrite(p,sizeof(STUDENT),1,fp);p=p-next;fclose(fp);printf(-save success!-n);STUDENT*load()STUDENT*p,*q,*h=NULL;FILE*fp;22 char infile10;printf(Enter infile name,for example c:c:n);scanf(%s,infile);if(fp=fopen(infile,rb)=NULL)printf(can not open filen);exit(1)

36、;printf(n-Loading file!-n);p=(STUDENT*)malloc(sizeof(STUDENT);if(!p)printf(out of memory!n);return h;h=p;while(!feof(fp)if(1!=fread(p,sizeof(STUDENT),1,fp)break;p-next=(STUDENT*)malloc(sizeof(STUDENT);if(!p-next)printf(out of memory!n);return h;q=p;p=p-next;q-next=NULL;fclose(fp);printf(-Read data s

37、uccessful!-n);return h;/*sort*/STUDENT*sort(STUDENT*h)int i=0;STUDENT*p,*q,*t,*h1;h1=h-next;h-next=NULL;while(h1!=NULL)t=h1;h1=h1-next;23 p=h;q=h;while(t-sumsum&p!=NULL)q=p;p=p-next;if(p=q)t-next=p;h=t;elset-next=p;q-next=t;p=h;while(p!=NULL)i+;p-order=i;p=p-next;printf(sort sucess!n);return h;/*index by number*/STUDENT*index(STUDENT*h)STUDENT*p,*q,*t,*h1;h1=h-next;h-next=NULL;while(h1!=NULL)t=h1;h1=h1-next;p=h;q=h;while(strcmp(t-no,p-no)0&p!=NULL)q=p;p=p-next;24 if(p=q)t-next=p;h=t;else t-next=p;q-next=t;printf(index sucess!n);return h;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁