《C程序设计》课程实验报告_第1页
《C程序设计》课程实验报告_第2页
《C程序设计》课程实验报告_第3页
《C程序设计》课程实验报告_第4页
《C程序设计》课程实验报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、兰州商学院陇桥学院工学系课 程 实 验 报 告课程名称: 高级程序设计语言 专 业: 信息管理与信息系统 班 级: 2012级本科二班 学 号: 20120651229 姓 名: 柳彦军 指导教师: 于 岚 2013年06月26日实验一 熟悉C语言运行环境一、实验目的:1、熟悉C语言编程环境,Visual C+ 6.0,掌握运行一个C程序的基本步骤,包括编辑、编译、连接和运行。2、通过运行简单的C程序,初步了解C源程序的特点。3、了解程序调试的思想,能找出并改正C程序中的语法错误。二、实验内容:1、在E盘中建立自己的文件夹,存放程序。2、启动Visual C+ 6.0,进入C编译集成环境。3、

2、输入并运行几个简单程序。三、实验步骤1、启动Visual C+ 6.0,输入和编辑一个简单、正确的程序。在Visual C+主窗口菜单栏中选择“文件”“新建”“文件”选项卡,选择“C+ Source File”,然后在右边的“文件名”框内输入源文件名“lt1-1.c”,并在“位置”框选择E盘中自己建立的文件夹,单击“确定”按钮,出现编辑屏幕,即可编写程序。输入程序如下:#include /这是编译预处理指令 void main() /定义主函数 /函数开始的标志 printf(Lets study a C program.n); /输出所指定的信息 /函数结束标志选择“文件”菜单的“保存”命令

3、,保存程序。依次选择“文件”菜单的“编译”,“组建”,“运行”,实现对程序的编译及运行,弹出结果输出窗口。2、输入一个有错误的程序,修改程序,直到程序能正常运行。#include void main() int a,b,sum /声明部分,定义3个整型变量 a=123; /对变量a赋值 b=456; sum=a+b /进行a+b运算,把结果存放在变量sum中 printf(sum is: %dn,sum); /输出结果。d表示用十进制整数输出 3、输入并运行一个需要输入数据的程序:#include int max(int x,int y) /定义max()函数,函数值为整型,x,y为形式参数

4、int z; /定义main ()函数内部用到的变量z为整数 if(xy)z=x; /将x,y中较大的值赋给 else z=y; return(z); /将z值返回。通过max()函数带回调用处void main(); int a,b,c; printf(input a,b=); scanf(%d,%d,&a,&b); /输入变量a和b的值 c=max(a,b); printf(max is: %dn,c); 四、调试过程1、编译第1个程序时,在调试信息窗口中显示如下信息:成功编译。2、编译第2个程序时,在调试信息窗口中显示如下信息: 经查程序,发现int a,b,sum和sum=a+b两句末

5、漏写了“;”。在这两句末加上分号后,重新编译程序后,没有错误,编译成功。3、编译第3个程序时,在调试信息窗口中显示如下信息: 经查程序,发现void main();末尾多加了一个分号。删去分号,重新编译,没有错误,编译成功。五、实验结果1、第1个程序结果:2、第2个程序结果:3、第3个程序运行后输入8和5,输出结果:在运行后输入12和45,输出结果:六、实验总结:(实验中遇到的问题及解决方法,心得体会等)经过本次上机实验,我基本掌握运行一个C程序的基本步骤:编辑编译连接运行。了解了C源程序的特点及书写规则,如函数是程序的主要组成部分;每一个声明,每一个语句都必须以分号结尾。但预处理命令,函数头

6、和花括号“”之后不能加分号,等等。基本了解程序调试的思想,能找出并改正C程序中的语法错误。25实验二 熟悉C语言程序的结构一、实验目的:1、掌握C语言程序的结构特点。2、掌握基本的输入、输出函数。3、能够模仿例题编写简单的C语言程序。4、进一步熟悉C程序的编辑、编译、连接和运行的过程。*Very good!*二、实验内容:1、请参照本章例题,编写一个C程序,输出以下信息:。2、从键盘输入矩形的长和宽,计算该矩形的周长和面积。三、解题思路:1、题目要输出三行字符串,第1、3行是一串*,第2行是英文字符串,在程序里的函数体中可以用三句输出函数调用语句分别输出每一行的字符串。2、 第一步:定义四个变

7、量a,b,s,r;第二步:输入长和宽的值,并赋值给a,b;第三步:计算a*b,2*(a+b)分别赋值给s,r;第四步:输出面积s和周长r的值。四、编写程序:1、#include void main()printf(*n);printf( Very good!n);printf(*n);2、#include void main()int a,b,s,r;printf(请输入长和宽:);scanf(%d,%d,&a,&b);s=a*b;r=2*(a+b);printf(面积为%d,周长为%dn,s,r);五、实验结果: 1、第1个程序的结果: 2、六、实验总结:(实验中遇到的问题及解决方法,心得体

8、会等)通过本次学习我基本上掌握C语言程序的结构特点,能够理清头绪读懂c语言,能够熟练的用运基本的输入、输出函数,并能模仿例题编写简单的C语言程序,在实验一的基础上进一步熟悉C程序的编辑、编译、连接和运行的过程,感觉对c语言产生了浓厚的兴趣,期待之后的知识的学习。实验三 数据类型、运算符和简单的输入输出一、实验目的:1、掌握C语言数据类型,熟悉如何定义一个整形、字符型和实型的变量,以及对他们赋值的方法。2、掌握将数学公式装换为计算机语言。3、学会使用C的有关算术运算符,以及包含这些运算符的表达式。二、实验内容:1、计算存款利息。有1000元,想存一年。有三种方法可选: (1)活期,年利率为r1=

9、0.35% (2)一年期定期,年利率为r2=3.0% (3)存两次半年定期,年利率为r3=2.8%请分别计算出一年后按三种方法所得到的本息和。2、给定一个大写字母,要求用小写字母输出。(用getchar输入,putchar输出,和scanf输入,printf输出两种方法。)三、算法设计:1.第一步:先定义七个变量p,r1,r2,r3,p1,p2,p3;;第二步:分别把本金和各种存法赋值给p,r1,r2,r3;第三步:计算p*(1+r1),p*(1+r2),p*(1+r3/2)*(1+r3/2),的值,并分别赋值给p1,p2,p3;第四步:输出。2.方法一:第一步:定义一个字符型变量c;第二步:

10、用运getchar()语句输入一个大写字母,并赋值给c;第三步:用运petchar()输出c+32的值,即转换成小写输出。方法二:第一步:定义两个字符型变量c,e;第二步:从键盘输入一个大写字母并赋值给c;第三步:把c+32赋值给e;第四步:以字符型输出e的值。四、编写程序: 1、#includemain()float p,r1,r2,r3,p1,p2,p3;p=1000;r1=0.0035;r2=0.03;r3=0.028;p1=p*(1+r1);p2=p*(1+r2);p3=p*(1+r3/2)*(1+r3/2);printf(活期:%f,一年期定期:%f,存两次半年定期:%fn,p1,p

11、2,p3);2、方法一:#include void main()char c;c=getchar();putchar(c+32);putchar(n);方法二:#include void main()char c,e;printf(输入大写字母:);scanf(%c,&c);printf(小写为:%cn,e=c+32);五、实验结果: 1、 2、六、实验总结:(实验中遇到的问题及解决方法,心得体会等)通过本次试验我基本上掌握了C语言数据类型,熟悉了如何定义一个整形、字符型和实型的变量,以及对他们赋值的方法;掌握了数学运算与计算机语言的转换;并掌握了使用C的有关算术运算符,以及包含这些运算符的表

12、达式,感觉很不错,努力ing!实验四 顺序程序设计一、实验目的:1、掌握C语言中使用最多的一种语句赋值语句的使用方法。2、掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。二、实验内容:1、有若干只鸡和兔在同个笼子里,从上面数,有35个头;从下面数,有94只脚。编程求笼中各有几只鸡和兔?2、从键盘输入一个3位整数,要求反向输出该数。(如输入123,反向输出为321)三、算法设计:1、第一步:定义四个变量x,y,a,b;并给a,b分别赋值35,94;第二步:列方程表达式;第三步:输出求出的x,y。2.第一步:定义五个变量a,b,c,d,x;第二步:从键盘输入有一个三位数并赋值给x;第三

13、步:通过计算将百位上的数赋值给a,十位的赋值给b,各位赋值给c。第四步:d=a*100+b*10+c;第五步:输出新值。四、流程图:(手绘)五、编写程序:1.#include void main()int x,y,a=35,b=94;x=(4*a-b)/2;y=(b-2*a)/2;printf(鸡有=%d,兔有=%dn,x,y);2. #include void main()int a,b,c,d,x;printf(输入一个三位数:);scanf(%d,&x);a=x/100;b=x/10%10;c=x%10;d=c*100+b*10+a;printf(反向输出结果为:%dn,d);六、实验结

14、果:1. 2. 七、实验总结:(实验中遇到的问题及解决方法,心得体会等) 通过练习我掌握了C语言中使用最多的一种语句赋值语句的使用方法,区分开了等于与赋值的不同,并能熟练的用运,并掌握了各种类型数据的输入输出的方法与表示字符,能正确使用各种格式转换符。实验五 选择结构程序设计一、实验目的:1、了解C语言表示逻辑量的方法(以0代表“假”,以非0代表“真” )。2、学会正确使用逻辑运算符和逻辑表达式。3、熟练掌握if语句和switch语句。+4、结合程序掌握一些简单的算法。二、实验内容:1、编写程序,计算下面分段函数的值: x-5 (x10)y=4x+2 (x=10)要求:自变量x与函数值y均为单

15、精度类型,输出结果保留2位小数。2、从键盘输入一个整数作为月份,判断该月是哪个季节?(用switch语句)三、算法设计: 1. 第一步:定义两个单精度变量x,y; 第二步:从键盘输入一个数并赋值给x; 第三步:判断x与10的关系; 第四步:若大于十则执行y=4*x+2; 否则执行y=x-5; 第五步:输出y的值。2.第一步:先定义一个变量a;第二步:从键盘输入月份并赋值给a;第三步:用运switch语句把2,3,,4定义为春季,以此类推定义其它月份;第四步:输入一个月份,判断。第五步:经判断并输出结果。四、流程图:(手绘)五、编写程序:1. #include void main()float

16、x,y;printf(请输入x的值);scanf(%f,&x);if(x=10)y=(float)(4*x+2);elsey=(float)(x-5);printf(y=%.2fn,y);2. #include void main()int a;printf(输入月份:);scanf(%d,&a);switch(a) case 2: case 3: case 4: printf(春季!n,a);break; case 5: case 6: case 7: printf(夏季!n,a);break; case 8: case 9: case 10: printf(秋季!n,a);break; c

17、ase 11: case 12: case 1: printf(冬季!n,a);break; default: printf(错误!n);六、实验结果:1. 2.五、实验总结:(实验中遇到的问题及解决方法,心得体会等)通过练习掌握了C语言表示逻辑量的方法和表示符号,并学会正确使用逻辑运算符和逻辑表达式,熟练掌握if语句和switch语句两种选择语句,结合程序掌握一些简单的算法,不错,要不断加油!实验六 循环结构程序设计一、实验目的:1、熟悉掌握用while语句,do-while语句和for语句实现循环的方法。2、掌握在程序设计中用循环的方法实现一些常用算法(如穷举、迭代、递推等)。二、实验内容

18、:1、求1!+2!+3!+20!。(用单循环、多循环两种方法)2、输出所有“水仙花数”。(用单循环、多循环两种方法)三、算法设计:1.第一步:定义四个变量i,n,t=1,sum=0;第二步:用运for循环执行;第三步:输出值。 2.(单循环)第一步:定义四个变量x,y,z,h; 第二步:对x进行for循环; 第三步:把x的个十百位上的数分别赋值给h,z,y; 第四步:判断(y*y*y)+(z*z*z)+(h*h*h)的值是否等于x的值,若等于则输 出水仙花数,并进行下一次循环,若不是,则直接进行下一次循环。(多循环)第一步:定义四个变量x,y,z,h; 第二步:对x,y,z分别进行for循环;

19、 第三步:判断(x*x*x)+(y*y*y)+(z*z*z)的值是否等于h的值,若等于则输出水仙花数,并进行下一次循环,若不是,则直接进行下一次循环。四、流程图:(手绘) 五、编写程序:1. #include void main() int i,t=1,sum=0;for(i=1;i=20;i+)t=t*i;sum=sum+t;printf(1!+2!+20!=%dn,sum);多循环. #include void main() int i,n,t=1,sum=0; for(n=1;n20;n+)for(i=n;i=n;i+)t=t*i;sum=sum+t;printf(1!+2!+20!=%

20、dn,sum);2.单循环:#include void main()int x,y,z,h;for(x=100;x=999;x+)y=x/100;z=x/10%10;h=x%10; if(x=(h*h*h)+(y*y*y)+(z*z*z)printf(水仙花树:%dn,x);多循环:#include void main()int x,y,z,h;for(x=1;x=9;x+)for(y=0;y=9;y+)for(z=0;zs2,输出一个正数;若s1=s2,输出0;若s1s2,输出一个负数。不要用strcmp函数。两个字符串用gets函数读入。输出的正数或负数的绝对值应是相比较的两个字符相应字符

21、的ASCII码的差值。三、算法设计:(算法设计思路、流程图、源程序)1.编程首先需简要定义个存储数据的数组,具体如下:第一步:定义一个一位数组a10,并定义三个整形变量; 第二步:从键盘输入十个数; 第三步:用for循环进行大小判断; 第四步:输出排序后结果。2.要简洁的输出杨辉三角以及美观的格式,则应该先定义一个十一位(也可定义为十位)的二位数组,在输出时记得用空格或Tab进行同行区间话分,具体如下: 第一步:宏定义M、N,定义二维数组aMN: 第二步:给ai1、aii赋初值为1; 第三步:对其它元素进行循环运算; 第四步:输出结果。3.本编程需要用字符串函数,所以先要进行#include

22、,再进行之后计算: 第一步:定义两个数组,以及所需变量; 第二步:键盘随便输入两个字符串; 第三步:进行计算; 第四步:输出结果。四、流程图(要求手绘):五、源程序: 1.#includevoid main()int a10,i,j,t;printf(请输入10个数:);for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10;i+)printf(%d ,ai); printf(n); for(j=0;j9;j+) for(i=0;i9-j;i+)if(aiai+1)t=ai+1;ai+1=ai;ai=t;for(i=0;i10;i+)printf(%d ,ai);pr

23、intf(n);2. #include #define N 11#define M 11void main() int aMN,i,j,c;for(i=1;i=11;i+) ai1=aii=1; for(i=3;i=11;i+) for(j=2;ji;j+)aij=ai-1j+ai-1j-1;for(i=1;i=11;i+) for(j=1;j=i;j+)printf(%d ,aij); printf(n); 3.#include #include #define M 100void main()char s1M,s2M;int a,b,i,d=1;printf(输入第一个字符串:n); sc

24、anf(%s,s1);printf(输入第二个字符串:n);scanf(%s,s2);for(i=0;is2i)a=s1i-s2i; printf(%dn,a);break;if(s1is2i)b=s1i-s2i; printf(%dn,b);break;if(s1i=s2i)d=0; if(d=0) printf(%dn,d);四、实验结果1、第1个程序结果:2、第2个程序结果:3、第3个程序结果:五、实验总结:(实验中遇到的问题及解决方法,心得体会等)通过实验掌握了一维数组和二维数组的定义、赋值和输入输出的方法,能熟练的对数组进行排序、取最值等算法和字符数组、字符串函数的使用,相比以前,自

25、我感觉数组比较难!实验八 函 数一、实验目的:1、熟悉定义函数的方法。2、熟悉声明函数的方法。3、熟悉调用函数时实参和形参的对应关系,以及“值传递”的方式。4、掌握函数的嵌套调用与递归调用。二、实验内容:1、写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。2、猴子吃桃子问题:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,求第一天共摘下来多少个桃子?三、实验步骤及调试过程:1、编写第1题的程序:#include #include void prime(int x)int i,c,d;c=1;for(i=2;ix;i+)if(x%i=0) c=0;break;if(c)printf(%d是素数!,x);else printf(%d是不素数!,x);void m

温馨提示

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

评论

0/150

提交评论