欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

    • 资源ID:97904892       资源大小:61.99KB        全文页数:54页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    C语言试验报告参考答案试验一 熟悉c语言程序开发环境与数据描述四、程序清单1 .编写程序实现在屏幕上显示以下结果:The dress is longThe shoes are bigThe trousers are black答案:#include<stdio. h>main ()(printf (/zThe dress is longn/z);printf (Z/The shoes are bign);printf (Z/The trousers are blackn/z);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,编写求(a+b) / (b-c) * (c-d)的程序。答案:(1) #include<stdio. h>一个数X与因子之和相等,就是完数。五、程序清单1.编写程序:求 1+2+3+100 和 12+22+3,+10()2。#include<stdio.h>#include<math. h>int main ()(int i, j, sum;sum = 0;for (i=l;i<=100;i+)sum += i;printf (/zthe sum is:%dn,sum);sum =0;for(i=l;i<=100;i+)j=pow(i, 2);sum +=j;printf ("the square sum is:%dnz,, sum);return 0;2. 一个数假如恰好等于它的因子之和,这个数就称为“完数”,编写程 序找出25000中的全部完数。#include<stdio. h>#include<math. h>main ()(int i, j, sum=0;for (i=2; i<=5000; i+) /遍历从 2 至I 5000 的全部数sum = 0;for (j=l; j<=i/2;j+) 找出给定整数X的全部因子和(if(i%j = 0)sum +二j;if (i = sum) sum为因子和,假如和i相等,则输出 printf (,z%d ,i);return 0;3.编写程序:计算sinx的近似值,精确到10一°.X3 X5X1sinx = x11F3!5!7!8(2az1)其实sinxC-l)07-0m所以程序 M (2 -1)!ttinclude <stdio. h>ttinclude <math. h>main ()(float x, sinx, i, t;printf (请输入一个x值(弧度值):);scanf(%f, &x);sinx=0; t=x;i=l;while (fabs (t)>=le-6) sinx=sinx+t;t二t* (-x*x/(2*i*(2*i+l);i+;printf (sin(%. 2f) -%. 6fn, x, sinx);六、调试和测试结果1:结果:the sum is: 5050the square sum is: 3383502:结果:6284963、输入 0,输出 sin(0.00) =0.000000输入 1.57,输出 sin(L57)=L 000000输入 0.5,输出 sin(0. 50) =0.479426试验五函数和编译预处理、设计流程(算法描述)(请写出上机内容2的算法描述)求素数的方法就是:给定一个大于3的数x,从2到X的平方根遍历,只要有数可以被x整除,就不是素数五、程序清单1.编写自定义函数long power (int m, int n),计算小的值。利用此函 数编程序实现:从键盘输入两个整数m和n,计算出力的值。#include<stdio. h>long power (int m, int n)要返回的是 long 型int i;long s;因为是要返回的数,所以这里也定义为long型s=l;for(i=l;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 .编写自定义函数prime (int x),推断x是否为素数。利用此函数编写 程序找出35000中的全部素数,并输出素数的个数。#include<stdio. h>#include<math. h>int prime(int m)(int i, k;k=sqrt(m);for(i=2;i<=k;i+)if (m%i-0) break;if(i>k)return 1;return 0;main ()(int i, k;k=0;for (i=3;i<=5000;i+)if (prime (i)=l) k+;printf (,z%d is a prime muber n,i); printf (共有%d 个素数n", k);)3 .编写自定义函数count (int x),计算x的因子个数。利用此函数找出 并输出1-1000中有奇数个不同因子的整数。#include<stdio. h>#include<math. h>int count (int x)int sum, i;sum=0;记住因子的个数for(i=l;i<=x/2;i+)if (x%i = 0)sum +=1;return sum+1;int main(void)(int i, y;for (i=l;i<=100;i+) y=count(i);if (y%2=l)printf (/z%dtzz, i);)return 0;六、调试和测试结果1 .输入:2 3输出:s=82 .输出:共有668个素数二o czukenp sanan-pp 工 ng,x a 工 e166716691693X697X69917091721X723X733X741三±753X7591.777±7831.787X789X8 0X±811X823±83XX8-1718611867X87XX8 73X8 7718 79±889X90X190*719±3X931193319491951X973X979±98719931999200320112017202720292039205320632 06 92081208320872 08 92 099211121X32X29213X2±372X4X2±432X532X6X2 ±7922032 2 0722X3222±223722392243225±226722692273228±228722932297230923XX23332339234123472351235*7237123772381238323892393239924112417242324372 44X2447245924672 4732 47725032521253X253925-132S492SSX25572579259±2S932 6 0926±7262X26332647265726592GG32G71267726832687268926932699270727112713271927292731274127492,75327672777278927912 ,797280128032819283328372843285±2857286X2 8 79288728972903290929X72927293929532957296329692 9 7X29993 00±3 0113019302330373 0<413049306130673079308330893109311931213137316331.6731693181318731913203320932X7322X3229325X325332573259327X32993 3 0X330733±333X933233329333X3343334733593361337±337333893391340734±334333 4493457346134633467346934913499351135173527352935333539354X35473557355935,71358135833593360736±336X73623363X363736433659367X36733677369±3697370X370937X93 72 73733307393761376737693,779379337973803382138233833384738513853386338773881388939073911391739193923392939313943394739673989-4001-1003400740±340JL9402±402 74049405 ±40s 7407340794091409340994±±±41.2741294±334±394±534X5*7415941*77420142±±421742194229423±42414243425342594261427X4273428342894297432074337433943 49435743634373439X43974409442±-1-123-1-1-IX4447-1-15 ±-1-163-1-18X-1483-1-1934s07451345X745±9452345474549456X4567458345914597460346214637463946434649465146574663467346 794691470347214723472 94733475 X4759478 3478 74789479 3479 9480±48X348 ±74831486X-487X-187748894903-1909-49X9493149334937-49-1349Hl.H»*e s s495,7 any key49674969t o coot io Lie4973-498749934999共有668个素数a3、输出结果为:c *C:Docu>ent s and SettingsqzDebugal. exe*100S 49162536496481r.Press any key to continue.试验六数组四、设计流程(算法描述)(请写出上机内容1的算法描述)设置两个变量分别指示头和尾。第一个和最终一个元素值互换,然后头和 尾变量向里移动,最终到两变量相遇为止。五、程序清单1.编写程序:从键盘输入一串整数保存到数组中,调用函数antitoneO 将数组反序输出。自定义函数void antitone(int a, int n)实现将数组中的n个数据按逆序存放。void antitone(int a口, int n)int i, j;int k;i=0;j=n-l;while (i<j)k=ai;ai=aj;aj=k;i +=1;j -二1;)2.已知某数列的前两项为2和3,其后每一项为其前两项之积。 编程实现:从键盘输入一个整数x,推断并输出x最接近数列的第 几项?#include<stdio. h>#include<math. h>void Mad(int a口,int n)a0=2;al=3;for(i=2;i<n;i+)ai = ai-l * ai-2;int main(void)(int a100, x, kl, k2; int i;Mad (a, 100);产生序列 printf (/zinput x:);scanf ("d, &x);i=0;for(;x>ai;i+);kl = abs(x-ai-l);main ()int a, b, c, x, y;a=150;b=20;c=45;x=a/b;y=a/c;printf Ca/b的商二%dn,x);printf Ca/c的商二%dn”, y);x=a%b;y=a%c;printf (/za/b 的余数=%dn, x);printf Ca/c的余数=%dn", y);(2)#include<stdio. h> main ()if (kl>k2)printf (/zthe most similar x number is:%dn,ai); elseprintf (/zthe most similar x number is:%dn/z, ai-l);return 0;3.编程实现:输入10个学生5门课的成果并完成如下功能(1)求每个学生的平均分;求每门课程的平均分。#include<stdio. h>#includemath h>#define num 10typedef struct student(char name20;float math;float englis;float computer;float Chinese;float history;STUDENT;int main(void)(STUDENT stunum;int i;float score, sum, average;char s 10;float scoreMath, scoreEng, scoreCom, scoreChi,scoreHis;for(i=0;i<num;i+)printf("Name: );gets(stui. name);printf("math score: );scanf(f, &score);stui. math = score;printf (/zenglis score: );scanf(%f, &score);stui. englis = score;printf("computer score: ); scanf(f,&score);stuiputer = score;printf ("'Chinese score: );scanf(f, &score);stui.Chinese = score;printf (''history score: );scanf(f, &score);stui.history = score;gets(s);功能是接受最终一个回车符,然后下一次 gets(stui. name);才能起到作用)求每个学生的平均分数for (i=0;i<num;i+)(sum=0;sum +=stui. math;sum +=stui.englis;sum +=stui puter;sum +=stui. Chinese;sum +=stui. history;average = sum/5;printf (s' s average score is:%fnz/, stui. name, average);求每门课的平均成果scoreMath=0;scoreEng=0;scoreCom=0;scoreChi=0;scoreHis=0;for(i=0;i<num;i+)scoreMath += stui. math;scoreEng+=scoreCom+=stui puter;scoreChi+=stui. Chinese;scoreHis+=printf ("math'saverage score is:%fn/z, scoreMath/num);printf (/englis,s average score is:%fn/z, scoreEng/num);printf (computer5 s average score is:%fnz/, scoreCom/num);printf ("Chinese's average score is:%fn,z, scoreChi/num);printf ("history's average score is:%fnz,, scoreHis/num);return 0;试验七数组和函数四、程序清单.(请写出上机内容2中函数的源代码)void fun(int ttMN, int ppN) int i, j, max;for(j=0; j<N; j+ ) max=tt0j;for(i=l;i<M;i+) if(ttij>max)max=ttij; ppj=max;)五、调试和测试结果(写出上机内容1中填空的内容)(3)(3) ap+i(1) (1) sum=0(2) t i i(2) (1) J (2)试验八指针(1)四、程序清单(请写出上机内容2中的函数)求出每个位上的数字,然后放在千位上的数字乘以1000,放在百位上的数 字乘以100,放在10位上的数字乘以10,然后相加。void fun(int a, int b,long *c)int alO, al, biO, bl;al0=a/10;al=a%10;bl0=b/10;bl=b%10;*c = alO * 1OOO + bl * 100 + al *10 + biO;五、调试和测试结果(请写出上机内容1的输出结果)1(1)输出结果为:8, 7, 7, 8(2) 6(3) (l)x=10 y=20(2)x=20 y=10(4) 1 int *p输入:1 2 3 4 5 62&ai13输出: 1 2 3 4 5 6pi试验九指针(2)设计流程(算法描述)(请写出上机内容2中的算法描述)五、程序清单1.已知一个整型数组a5,其各元素值为4,6,8,10,12。运用指针编程求数组元素之积。ttinclude <stdio.h>int main(void)(int a = 4, 6, 8, 10, 12, sum;int *p;sum=l;for (p=a;p<a+5;p+)(sum *= *p;)printf (%dn,sum);return 0;2 .定义函数int f (char *x, char y)推断x所指的字符串中是否包含字符y,若是则函数返回1,否则返回1。int f (char *x, char y)char *p;for (p=x; *p!=,0,; p+)if(*p = y)(printf (%cn, *p);return 1;return 0;)3 .定义函数void f (float x, int *y, float *z)将x的整数部分存于 y所指的存储单元,x的小数部分存于x所指的存储单元。void f(float x, int *y, float *z)(*y=(int)x;*z=x - *y;)试验十结构体四、程序清单(请写出上机内容2中的函数的源代码)void fun (struct STREC *a) int i;,a->ave=0;for(i=0;i<N;i+)a->ave+=a->si;a->ave/=N;)五、调试和测试结果(请写出上机内容1的填空结果)上机内容1的填空结果(1) ->sno (2) ->name (3) &t试验十一共用体与枚举 文件四、程序清单(请写出上机内容2中的程序源代码)ttinclude <stdio. h>ttinclude <string. h>ttinclude <stdlib.h>int main(void)(int i,sum;FILE *fd;char s10,*p,ch;if ( (fd=fopen(/zD: shi. txt,wt)=NULL)printf (z/creat the file failedn); exit (0);elsefor (i=l;i<100;i+)(if( (i%3 =0) && (i%5 = 0)(printf (%d, ,i);itoa(i,s, 10);转换成字符串fputs (s, fd);fputc (' ' , fd);)printf (n");fclose (fd);提取字符转换成数字输入if ( (fd=fopen(Z/D:shi. txt,rt)=NULL)int a, b, c, d;float 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.设变量a的值为0, b的值为TO,编写程序:当a>b时,将b赋给c;当a:b时,将。赋给c。(提示:用条件运算符)答案:#include<stdio. h>main ()(int a, b, c;a=0;b=-10;printf (/zopen the file failednz/);exit (0);)elseP二 S;sum=0;doch=fgetc (fd);if (ch =')(i=atoi (s);sum +=i;printf (z/%d ,i);strset (s,' 0');P=s;)else*p=ch;p+;while(ch != EOF);printf (数的和是:%dn,/, sum);fclose(fd);)return 0;试验十二参考答案试验十二参考答案:(可依据状况,弄清楚一个模块即可)题目:设某班有n位同学,每位同学的数据包括以下内容:学号(长 整型)、姓名(字符串)、数学成果(整型)、程序设计成果(整型)。设计 程序完成以下五项功能:新建数据档案、添加数据、删除数据、对输入的 数据进行排序和查询。注:输入数据时,要求学号不能相同,姓名可以相同。设计思路:1) .程序运行时,首先显示主菜单(模块)如下:1 .程序运行时,首先显示主菜单如下:1 .新建数据2 .添加数据3 .删除数据4 .排序5 .查询6 .退出用户输入序号后,程序进行相应操作。2).在主菜单中选择序号4,弹出子菜单选择排序方式,子菜单如下:1 .数学成果排序2 .程序设计成果排序3 .总分排序。4 .返回主菜单选择子菜单的序号后,程序能正确运行并在屏幕上显示按要求 排序后的相关信息。3.在主菜单中选择序号5,弹出子菜单选择查询方式,子菜单如下:1 .学号查询2 .姓名查询3 .数学成果查询4 .程序设计成果查询5 .总分查询6 .返回主菜单请按序号选择相应操作在子菜单中选择序号后,程序按以下方式工作。(1)学号查询:输入学号后,若该学号存在则显示与其相关的全部信 息,否则显示找不到的提示信息;(提示:查询到满足条件的结果后,查 询即可结束)(2)姓名查询:输入姓名后,若该姓名存在则显示与其相关的全部信 息,否则显示找不到的提示信息;(提示:运用字符串比较函数进行比较)(3)按科目查询:输入指定分数,程序运行后显示该科目中考试成果 大于等于指定分数的同学的学号、姓名以与该科成果并统计满足条件的人 数;(4)总分查询:输入指定分数,程序运行后显示总分成果大于等于指 定分数的同学的学号、姓名以与各科成果并统计满足条件的人数。C源程序清单如下:ttinclude stdio. httinclude stdlib.h#include "string. httinclude conio. hinclude "mem. h#include ctype. h#include "alloc. httdefine N 2 typedef struct zlchar noll;char name15;int score N;float sum;float average;int order;struct zl *next;STUDENT;/*Functions*/STUDENT *init(); /*initialize*/STUDENT *create();STUDENT *delete(STUDENT *h);STUDENT *searchno(STUDENT *h);void print (STUDENT *h);void search (STUDENT *h);void save(STUDENT *h);STUDENT *load();STUDENT *insert (STUDENT *h);STUDENT *sort (STUDENT *h);STUDENT *index(STUDENT *h);int menu_select(); /*menu*/*ma in*/main() int i;STUDENT *head;head=init ();clrscr ();for (;)switch(menu_select()(case 1:head=init();break;case 2:head=create();break;case 3:head=delete(head);break;case 4:print (head);break;case 5:search(head);break;case 6:head=searchno(head);break;case 7:save(head);break;case 8:head=load(); break;case 9:head=insert(head); break;case 10:head=sort(head);break;case 11:case 13:head=index(head);break;case 0:exit (0);menu select ()(char *menu 口 = *MENU*, 1. Init list", 2. Enter list”, 3. Delete a record from list”, 4. print list , 5. Search record by name”, 6. Search 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 (Xpress any key continuen);getchO ;clrscr ();gotoxy (1, 1);textcolor (YELLOW);textbackground(BLACK);gotoxy (10, 2);putch(0xc9);for (i=l;i<44;i+)putch(Oxcd);putch (Oxbb);for (i=3;i<20;i+)(gotoxy (10, i);putch(Oxba);gotoxy (54, i);putch(Oxba);)gotoxy (10, 20);putch(0xc8);for (i=l;i<44;i+) putch (Oxcd);putch(Oxbc);window(ll, 3, 53, 19);clrscr ();for(i=O;i<16;i+)gotoxy (10, i+1);cprintf(%s, menui);textbackground(BLACK);window(l, 1, 80, 25);gotoxy(10,21);do printf (z/n Enter you choice (0 :);scanf (s,s);c=atoi(s);while(c<0|c>14);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(,znout of memory");return NULL;inputs (z/enter no: (10 digitals . enter 0 to exit)/z, info->no, 11);if (info->no0=,0,) break; /"when the first number is 0, break*/inputs (z,enter name: (<15 letters)z/, info->name, 15);printf ("please input scores n);s=0; /*s is sum, begins with 0*/for (i=0;i<N;I+)(do if (i=0) printf ("'Please input Maths scores:/z);c=(a>b) ? b:a;printf (z,c = %dn,, c);五、调试和测试结果1.编译、连接无错,运行后屏幕上显示以下结果:The dress is longThe shoes are bigThe trousers are black2、(1)编译、连接无错,运行后屏幕上显示以下结果:a/b的商二7a/c的商=3a/b的余数二10a/c的余数=15(2)编译、连接无错,运行后屏幕上显示以下结果: (a+b)/(b-c)*(c-d)=-1064. 00003.编译、连接无错,运行后屏幕上显示以下结果:c =-10试验二依次结构程序设计四、程序清单1.键盘输入与屏幕输出练习问题1 D 。if (i=l)printf C'Please

    注意事项

    本文(C语言实验报告参考答案(原).docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开