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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

c语言实验指导修改学生版.docx

1、c语言实验指导修改学生版程序设计与算法语言实验指导一、目的和任务程序设计的学习在数学专业的教学中占有重要地位。在建立数学模型后,对模型的求解和检验中多数会需要借用程序执行来完成。程序设计与算法语言实验课的目的就是通过实验培养并提高学生编写程序的能力和计算机应用的能力。实验通过一些实例的编程学习,培养学生面向问题时建立逻辑清晰的思想,练习应用c语言进行程序编写并执行,对问题中的各有关量进行分析,给出结果。二、实验环境计算机机房三、实验时数16学时实验1 选择结构程序设计实验目标:1、熟悉并掌握vc+6.0开发环境;2、了解数据类型在程序设计语言中的意义;3、掌握C语言程序的顺序结构,并会编写、运

2、行;4、理解并掌握if语句和switch语句的执行流程;5、理解并掌握嵌套的选择结构的执行流程。实验内容:题目1:从键盘输入一个任意大小的实数x,如果x满足条件-29.5x30,则输出x及其绝对值,否则只输出x。题目2:从键盘输入一个字符,如是小写字母,则输出“small”,如是大写字母则输出“big”,如是数字则输出“number”,其他字符则输出“other”。题目3:设计一个四则运算的计算器。如输入:1+2则输出:1+2=3实验2 循环结构程序设计实验目标:1、掌握实现循环结构的三种流程控制语句while、dowhile、for的用法和执行过程;2、熟练掌握用循环方法实现几种常用算法。实

3、验内容:题目1:找出100999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出。例如:当x的值为5时,100999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500,共15个;当x的值为27时,100999之间各位上数字之和为27的整数有:999,只有1个。题目2:写出计算方程f(x)=(x+3)2-7在(-3,0)之间的实数根的程序。题目3:给定程序的功能是:计算下式前n项的和。例如, n的值为10时,得到结果:9.612558。 请在程序的下划线处填入正

4、确的内容并把下划线删除,使程序得出正确的结果。注意:不得增行或删行,也不得更改程序的结构!#include Void main() int n=-1;int i; double s, t; while(n0): ); scanf(%d,&n); /*found*/ s=【1】;/*found*/ for(i=1; i=【2】; i+) t=2.0*i;/*found*/ s=s+(2.0*i-1)*(2.0*i+1)/【3】; printf(nThe result is: %fn,s);实验3 数组实验目标:1、掌握一维数组的定义、赋值和输入输出的方法;2、掌握字符数组的使用;3、掌握与数组有

5、关的典型算法。实验内容:题目1:输出以下的杨辉三角形1 1 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1。 。 。 。 。 。 。 。 。 。 。 。 。 。要求:输出10行题目2:已有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入到数组中。如:原数组元素为:1 2 4 6 7 9 ,则输入 5 后插入到数组中形成新的序列:1 2 4 5 6 7 9 要求:写出算法思路分析的过程。题目3:折半查找。在有N个元素的数组(元素由小到大的顺序存放)中,查找x是否存在于该数组,如存在输出x在数组中的下标,如不存在则输出“non-existent!”折半查找的基

6、本思想说明:设查找数据的范围下限为low=0,上限为hig=N-1,求中点mid=(low+hig)/2,用x与中点元素(即mid作为下标的元素)比较,若相等即找到,停止查找;否则,若x大于中点元素,替换下限low=mid+1,到下半段继续查找;若x小于中点元素,替换上限hig=mid-1,到上半段继续查找;具体事例如下图:情况1)设要查找的数据x=5,则有:j 1 3 5 7 9 11 13low mid hig由于mid为下标的值是7 ,大于x,则修改上限higk 1 3 5 7 9 11 13Low mid hig由于mid为下标的值是3 ,小于x,则修改下限lowl 1 3 5 7 9

7、 11 13 hig Low mid由于mid为下标的值是5,等于x,则找到数据,结束查找。情况2)设要查找的数据x=8,则有:j 1 3 5 7 9 11 13low mid hig由于mid为下标的值是7 ,小于x,则修改下限lowk 1 3 5 7 9 11 13 low mid hig由于mid为下标的值是11,大于x,则修改上限higl 1 3 5 7 9 11 13 hig low mid由于mid为下标的值是9,大于x,则修改上限higm 1 3 5 7 9 11 13 hig low由于上限hig小于下限low,则表示没有找到,结束查找。实验4 函数实验目标:1、掌握函数的定义

8、和调用方法;2、掌握函数实参与形参的对应关系;3、理解和掌握数组作为函数参数的用法。实验内容:题目1:执行以下程序,写出执行结果,并分析。题目2:填写下述del函数内容,功能是删除整型数组中指定的数。如:数组中的数为: 4、8、9、7、0、1要删除的数为 9;删除后数组中的值为:4、8、7、0、1要求:写出算法思路分析的过程。实验5 指针实验目标:1、掌握有关指针的概念,会定义和使用指针变量;2、掌握指针和函数的关系;3、掌握指针和数组的关系。实验内容:题目1:(1)执行下列程序,并分析运行结果(2)试修改上程序,使得函数fun能够交换主调函数main中a,b的值。题目2:给定程序中,函数fu

9、n的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000移动后的输出为:46 32 40 45 48 30 6 17 15 26请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。注意:不得对源程序增行或删行,也不得更改程序的结构!题目3:函数fun的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。

10、合并的方式是:将a中的十位和个位数依次放在变量c的十位和千位上,b中的十位和个位数依次放在变量c的个位和百位上。例如,当a45,b=12。调用该函数后,c=5241。注意: 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。实验6 结构体实验目标:掌握结构体类型变量的定义和使用;通过该实验把C语言中的几个主要知识(如:顺序结构、选择结构、循环结构、数组、函数等)得到综合应用。实验内容:题目:建立一个简单的学生成绩管理系统。具体功能如下:(1)录入学生信息的功能。每个学生的数据包括学号、姓名、四门课的成绩。(2)打印学生信息的功能。(3)计算学生平均成绩

11、的功能。程序设计与算法语言实验报告专业班级姓名学号实验项目 实验一 选择结构程序设计实验目的1、熟悉if、switch语句形式。2、掌握程序设计的基本方法。3、学会简单的选择结构程序设计方法。实验内容题目1:从键盘输入一个任意大小的实数x,如果x满足条件-29.5x30,则输出x及其绝对值,否则只输出x。要求:写出算法思路分析的过程。题目2:从键盘输入一个字符,如是小写字母,则输出“small”,如是大写字母则输出“big”,如是数字则输出“number”,其他字符则输出“other”。题目3:设计一个四则运算的计算器。如输入:1+2则输出:1+2=3题目1:算法设计分析(用流程图表示算法是怎

12、么实现的。如有多个函数,那么你是怎么组织这些函数的,为什么要这么划分,各个函数之间的调用关系是什么样的)实验测试结果及结果分析(列出几组输入和输出结果,针对这些输入和输出做分析)结果分析题目2:算法设计分析实验测试结果及结果分析题目3:算法设计分析实验测试结果及结果分析实验总结(略)附录 实验程序代码(该部分请加注释)/*程序定义部分:*/*主函数部分:调用选择界面函数,再依据用户的选择,调用相应函数,实现相关功能*/void main() FNODE *head; int n=0; *另注:1、源代码部分请附加适当的注释说明;2、打分的表格请置于实验报告最后一页的底端;3、请遵照本实验范例的

13、文字大小和段落格式排版;4、实验报告双面打印;5、每个实验15分计。-序号项目得分总分1实验报告排版(2分)2算法思想分析(3分)3源代码(7分)4实验结果及分析(3分)实验报告雷同者均视为未做。抄袭请慎重!【1-1】#include#include void main() float x,y; /定义浮点数x,y printf(请输入x:n);/屏幕上显示请输入xy scanf(%f,&x);/输入x y=sqrt(x*x);/开平方根 if(x-29.5)/判断范围x是否同时满足大于等于-29.5和小于等于30 printf(%f %f,x,y);/输出 else /不然 printf(%

14、f,x);/输出【1-2】#include void main() char a;/定义字符 printf(n请输入一个字符:);/换行+屏幕上输出(XXX) a=getchar();/输入一个字符 if(a=0&a=A&a=a&a=z)/如果 printf(smalln); Else/不然 printf(othern); system(pause);/停留在dos界面 【1-3】#includevoid main() int a,b;/定义数字 char c;/定义运算符 printf(请输入数字:n); scanf(%d,&a);/输入数字 printf(请输入运算符:n); scanf(

15、 %c,&c);/输入运算符 printf(请输入数字:n); scanf(%d,&b);/输入数字 switch(c) case 42:printf(%d*%d=%d,a,b,a*b); break;/42的ASCII是* case 43:printf(%d+%d=%d,a,b,a+b); break;/43的ASCII是+ case 45:printf(%d-%d=%d,a,b,a-b); break;/45的ASCII是- case 47:printf(%d/%d=%d,a,b,a/b); break;/47的ASCII是/【2-1】#includevoid main() int s,n

16、=100; /*s是和sum的缩写 n的起始值为100而且是整数*/ printf(输入你要的三位数的和:n );/RT scanf(%d,&s);/输入s while(n1000)/在n1000即小于等于999之前一直寻找以下符合条件的数字 int a=n%10;/a个位 int b=n/10;/b十位 int c=n/100;/c百位 n+;/i的自增 if(a+b+c=s)/如果abc加起来符合你输入的三位数之和 printf( %d,n);/输出所有符合条件的100-999的数字 system(pause);/dos黑框停留【2-2】#include#define f(x) (x+3)

17、*(x+3)-7)/宏定义void main() float a=-3,b=0,c,eps=1e-5;/a下界b上界 c是中间变量 eps=1e-5是区间的极限大小 while (b-a)eps)/当上界下界还大于极小的极限时执行下面 c=(a+b)/2;/对区间区中值 if(f(c)=0)/如果c是函数的根 break;/跳出循环 else/否则 if(f(a)*f(c)0) b=c;/是否c是 else a=c;/否则c作为新的a 也就是缩小下界 printf(实数根=%fn,c); system(pause);【2-3】#includevoid main() int i,n=-1;/定义

18、整型变量i n double s,t;/定义双精度浮点小数s t while(n0):);/显示 scanf(%d,&n);/输入 s=0;/【1】s的初始值 for(i=1;i=n; i+)/【2】i从1开始 执行次数取决于n t=2.0*i;/分母是奇数(从1开始)的二倍 s=s+(2.0*i-1)*(2.0*i+1)/(t*t); /【3】累加求和直到循环部分结束 printf(nThe result is: %fn,s);/输出【3-1】#include #include#define N 11/看到N全部换成11void main() int n=0,aNN,i,j; /定义n行从0

19、开始的杨辉三角,二维数组a1111,i行,j列 printf(请输入杨辉三角的行数:); scanf(%d,&n); printf(n%d行杨辉三角为:nn,n); for(i=1;i=n;i+)/杨辉三角的两边的数为1 ai1=aii=1;/控制二位数组的边和对角线,把边和对角线全赋值成1,循环从1开始,ai1为第一个数 for(i=3;i=n;i+) for(j=2;j=i-1;j+)/控制除了边及对角线的内部的数 aij=ai-1j-1+ai-1j;/某一个数=上一排同列的数+上一排左一列的数,除了边和对角线 for(i=1;i=n;i+) for(j=1;j=i;j+)/j=i控制输出

20、下三角,不输出其它的数, printf(%5d,aij); printf(n);/当一行输出完以后换行继续下一行的输出 为了数字不堆一起 美观 printf(n);/美观 system(pause);/防闪退【3-2】#includemain() int a7=1,2,4,6,7,9,i,j,x;/定义一个7位数组 printf(现有排列1 2 4 6 7 9 nn请输入一个数:nn); scanf(%d,&x);/输入x for(i=0;i7;i+) if(xi;j-) aj=aj-1;/由倒二a6开始往倒一a7前移,即a6a7 a5a6. aj=x;/新的挪出来的空位填入x printf(

21、nn现在的排列是:nn);/输出 for(i=0;i7;i+) printf( %d,ai);/输出重排数组 printf(nn);【3-3】#include#define N 7void main() int i,aN=1,3,5,7,9,11,13,k,x,low,high,mid; /low,high查找数组元素范围的下标 printf(a 数组中的数据如下:); for(i=0;iN;i+) printf(%4d,ai); printf(n); printf(输入要查找的数x:); scanf(%d,&x); low=0; high=6; /设置low,high初始查找范围 while

22、(low=high) /当有查找范围,进入循环 mid=(low+high)/2; /求mid,查找范围的中间元素下标 if(x=amid) /如果中间元素等于被查找数,找到,跳出循环 k=mid; break; else if(xamid) /m比中间元素小 high=mid-1; /m应该在中间元素的左边,修改查找范围 else low=mid+1; /m应该在中间元素的右边,修改查找范围 if (lowhigh,已经没有查找范围了【4-1】#includesp(int x,int y)/定义一个叫sp的函数(sp前没有,表示缺省int),形参or入口函数为int x,int y int

23、t,i;/ t=x;/x的值赋给t x=y;/y的值赋给x y=t;/t的值赋给y(x的值赋给y)实现对xy的值互换 /省略return或无任何表达式无返回值main()/无返回值 int a,b;/ a=7;/ b=9;/ printf(函数调用前a=%d b=%dn,a,b);/ sp(a,b);/调用函数 printf(函数调用后a=%d b=%dn,a,b); /省略return或无任何表达式无返回值【4-2】#includevoid del(int b,int n,int y)/ b是数组,n是数组元素总共有几个,假设y是查找并要删的 int i,j,cnt=0;/cnt是次数 fo

24、r(i=0;in;i+) if(bi=y)/当找到第i个等于y时 for(j=i;jn;j+) bj=bj+1;/把后面的值赋到i的位置 #define N 6void main() int aN=4,8,9,7,0,1,i,x; printf(请输入要查找并删除的数据:); scanf(%d,&x); del(a,N,x);/调用函数 for(i=0;iN-1;i+) printf(%dt,ai);/ t能够让间距变大 printf(n);【5-1】void fun(int*a,int*b)/实参ab作为形参直接改动 int k; k=*a;*a=*b;*b=k;/a指向k b指向a k指向

25、bvoid main() int a=3,b=6; int *x,*y;/定义指针xy printf(before:%d %dt,a,b); x=&a;y=&b;/x指向a的地址 y指向b的地址 /*x指向a的值 *y指向b的值 fun(x,y);/函数对ab直接进行操作 printf(after:%d %dn,*x,*y);【5-2】#include#include#define N 10/定义函数部分double fun(double*x) int i,j; double s,av,yN; s=0; for(i=0;iN;i+)/ s=s+xi;/叠加 /*found*/ av=s/N;/平均数 for(i=j=0; iav)/全体逐个比较 /*found*/ yj+=xi;xi=-1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1