ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:97.52KB ,
资源ID:831932      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-831932.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言实验报告参考源代码Word格式.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

c语言实验报告参考源代码Word格式.docx

1、 for(k=i+1;ki+10;k+) /*k不是素数时终止if语句的内层循环*/=k)break; /*k是素数时终止if语句的外层循环*/=i+10) /*i+1,i+9不是素数时*/ for(q=2; if(k%q=0)break;=k) /*i+10是素数时*/n+;56.求1,21范围内的梅森尼数 #include math.h main() long n,k=2,m,p,q; for(n=2;nm) printf(%5ld 2 3 5 7 13 17 197.求1000以内的亲密数对 main() int a,b,n,m,q,p; for(a=1;a1000;a+) n=0; f

2、or(q=1;=a/2; if(a%q=0) n+=q; for(b=a;b=1000;b+) m=0; for(p=1;p=b/2;p+) if(b%p=0) m+=p; if(a=m&b=n) printf(%5d%5d,a,b);/*Key:6 6 28 28 220 284 496 496*/实验6 数组及其应用3由N个有序整数组成的数列已放在一维数组中,下列给定程序中函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回1。折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(lowhigh,查找结束。请改正程序中的错误,使它能

3、得出正确的结果。#include #define N 10 int i,aN=-3,4,7,9,13,45,67,89,100,180 ,k=-1,m; int low=0,high=N-1,mid; printf(a数组中的数据如下:); for(i=0;N;i+) printf(%d , ai);Enter m: scanf(%d,&m); while(low=high) mid=(low+high)/2; if(m amid) low=mid+1; else k=mid;continue; =0) printf(m=%d,index=%dn,m,k); else printf(Not b

4、e found!n第一个错误:else If(m amid) 应改为:else if(m amid) 因C语言关键字必须小写。 第二个错误:else k=mid; 应改为:break; 因找到就可终止循环。4有一个3*4矩阵,找出每行中最大的元素并与第1列元素交换。具体要求如下:(1)使用二维数组存放该3*4矩阵。(2)定义并初始化该二维数组。(3)输出原矩阵和处理后的矩阵进行比较。【程序源代码】 int i,j,k,temp; int data34=12,15,7,11,14,6,10,21,25,7,16,45;the original matrix:=2; for(j=0;=3;%dt,

5、dataij); /*打印原矩阵*/ k=0; for(j=1; if(dataijdataik) k=j; temp=datai0; datai0=dataik; dataik=temp; /*求每行最大数并与第1列上的元素交换*/nthe handled matrix: for(j=0; /*打印处理后矩阵,此时第1列上的元素为每行的最大数*/5猴子选大王问题:n个人围坐一圈,并顺序编号1n,从1号开始数,每数到m个就让其出局,重复.。求最后出局者的编号。当n=50,m=3时 ,答案为11(1)使用一维数组存放每个人的编号,每数到m个数就让其出局,出局者编号为0。(2)使用for循环嵌套实

6、现。int a51,i,j,m=0,n; for(i=1;=50;i+)ai=i;/*为了符合习惯,数组下标从1开始,下标就是编号*/=50/3;j+) /*外层循环最多循环50/3次*/ if(ai!=0)m+; /*对未出局者计数*/if(m=3)ai=0,n=i,m=0;/*对出局者编号为0,并保存原编号,计数从0开始*/last: %dn /*最后出局者的编号*/实验7函数及其应用3排错题:下列给定程序中函数fun 的功能是:用递归算法求形参a 的平方根。请改正程序中的错误,使它能计算出正确的结果。注意:源程序不得增行或删行,也不得更改程序的结构!例如,a 为2 时,平方根值为:1.4

7、14214。math.h/*found*/void fun(double a, double x0) double x1, y;x1=(x0+a/x0)/2.0;if( fabs(x1-x0)=0.00001 ) 因只有 fabs(x1-x0)=0.00001才须递归。4设计一个程序,判断一个整数n 是否是素数。(1)编制一个函数int prime(number),判断整数number 是否是素数。(2)编制主函数,由键盘输入整数number,调用(1)中的函数,若返回值为真则是素数,否则不是素数。(3)分别用以下数据运行该程序:103,117。 int number;请输入一个正整数:sca

8、nf( %dnumber);if (prime(number)n %d是素数. ,number);elsen %d不是素数. int prime(number)int number;int flag=1,n;for(n=2;number/2&flag=1;if (number%n=0)flag=0;return(flag);5编写程序,通过两个自定义函数分别求两个正数的最大公约数和最小公倍数,用主函数调用这两个函数并输出结果。两个正数由键盘输入。(1)用辗转相除法实现。(2)输出要有文字说明,输出形式为:最大公约数具体值,最小公倍数具体值 8 和26, 64 和258(4) 辗转相除法:对于两

9、个数m 和n,将大数放在m 中,小数放在n 中,用n 去除m,若余数为0,则n 为最大公约数,否则将n 作为m,余数作为n,再用n 去除m,直到余数为0,则n 为最大公约数。hcf(u,v)int u,v;int a,b,t,r;a=u; b=v;while(r=b%a)!=0)b=a; a=r;return(a);lcd(u,v,h)int u,v,h;return(u*v/h);int u,v,h,l;%d,%du,&v);h=hcf(u,v);H.C.F=%dn,h);l=lcd(u,v,h);L.C.D=%dn,l);6请编写函数fun,函数的功能是:求出二维数组周边元素之和,作为函数

10、值返回。二维数组中的值在主函数中赋予。例如,若二维数组中的值为1 3 5 7 92 9 9 9 46 9 9 9 81 3 5 7 0则函数值为61。#include#define M 4#define N 5int fun( int a MN)int i,j,s=0;M; for(j=0; if(i=0|j=0|i=M-1|j=N-1) s+=aij; return s;void main() int aaMN=1,3,5,7,9,2,9,9,9,4,6,9,9,9,8,1,3,5,7,0; int i, j, y; printf (The original data is :n i for

11、 (j=0; j%cn,getone,putone);void hanoi(int n,char one ,char two,char three)if(n=1) move(one,three); hanoi(n-1,one,three,two);move(one ,three);hanoi(n-1,two,one,three);int n;Input the number of disks:n);The step to moving %3d disks: nhanoi(n,A,BC【程序改进源代码】int n=0;n+;step %d: %c,n,getone,putone);实验9 指针及

12、其应用1以下函数调用Reverse()函数按逆序重新放置数组A 中的元素,请补全程序。void Reverse(int *p, int a, int b)int c;while (_)c=*(p+a);*(p+a)= _;*(p+b)=c;_;int main()int AN, i;for (i=0; i+), _);Reverse(A, 0, N-1);%-4dreturn 0;第一空应填:b 第二空应填:*(p+b) 或 pb /*用指针方法或用下标方法*/ 第三空应填:a+,b+ 或+a/a+=1/a=a+1,+b/b+=1/b=b+1 第四空应填:Ai 或 A+i /*用数组元素的地址

13、或数组的首地址加偏移量的方法*/ 第五空应填:*(A+i) 或 Ai /*用指针方法或用下标方法*/2记录以下程序的运行结果,并进行分析。int a=10, b=0, *pa, *pb;pa=&a, pb=&b;%d,%d,%d,%dn,*pa,*pb);a=20, b=30;*pa=a+, *pb=b+;(*pa)+;(*pb)+;分析程序运行:_运行结果:10,0,10,0 21,31,21,31 22,32,22,32 分析:因为pa=&a;pb+&所以*pa和a是同一个变量,占据内存同一存储单元。注意该程序与下面程序的区别:int a=10, b=0, c=a, d=b;,c,d);c

14、=a+, d=b+;c+;d+; 21,31,20,30因为c=a+;相当于c=a;a+;而a和c是两个不同的变量,所以c+不影响a的值。3设计一个程序,统计字符串中大写字母的个数。 (1)字符串的长度从键盘输入,并以此分配存储空间。(2)使用指针变量遍历字符串。【程序源代码1:用数组存放字符串】#define N 80int capital(char *p)int count=0; while(*p) if(*p=*pchar *c,n;Input the length of a string: getchar(); c=malloc(n+1); free(c);指针用法的总结:指针是一个特

15、殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。实验10 结构体与共用体2程序设计(1)有5 个学生,每个学生的数据包括学号、姓名、3 门课的成绩,从键盘输入5 个学生数据,要求输出3 门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3 门课的成绩、平均分数)。要求:用一个 input 函数输入5 个学生数据;用一个output 函数输出5 个学生数据;用一个average 函数求总平均分;用max 函数找出最高分学生数据;总平均分和最高分的学生的数据都在主函数中输出。【程序框架】#includestruct student int num;char name20;float score3;float avg;/*函数声明*/void input(s

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2