C语言程序设计实验报告(实验1-12)_第1页
C语言程序设计实验报告(实验1-12)_第2页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、 14/14C语言程序设计实验报告(实验1-12) 文档从网络中收集,已重新整理排版.word版本可编辑.欢迎下载支持. C语言程序设计 实验报告 20132014学年第二学期 班级 姓名 学号 指导教师 实验一 实验项目名称:C程序的运行环境和运行C程序的方法 所使用的工具软件及环境:Visual C+ 6.0 一、实验目的: 1了解在Visual C+ 6.0环境下如何编辑、编译、连接和运行一个C程序; 2通过运行简单的C程序,初步了解C源程序的特点。 二、预习内容: 教材C语言程序设计教程第1章。 三、实验内容: 1. 在Visual C+ 6.0环境下输入并运行下面的程序: #incl

2、ude int main( ) printf(This is a C program.n); return 0; 2. 在Visual C+ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序 无语法错误,然后运行程序,并观察分析运行结果。 #include int main( ) int a,b,sum a=3; b=4; sun=a+b; print(“%d+%d=%dn”,a,b,sum); return 0; 四、实验结果: 1. 运行结果(或截图): This is a C program. Press any key to continue 2. (1) 改

3、正后的源程序: #include int main( ) int a,b,sum; a=3; b=4; sum=a+b; printf(%d+%d=%dn,a,b,sum); return 0; (2) 运行结果(或截图): 3+4=7 五、思考题: 1. 一个C程序上机的步骤有哪些? 答:上级输入与编辑源程序对原程序进行编译与库函数链接运行可执行的目标程序。 2. 组成C程序的基本单位是函数,一个函数包括哪几个部分? 答:一个函数包括两部分:分别为函数头或函数首部和函数体。 成绩指导教师签名 实验二 实验项目名称:数据类型、运算符和表达式 所使用的工具软件及环境:Visual C+ 6.0

4、一、实验目的: 1掌握整型、实型与字符型这三种基本类型的概念; 2掌握常量及变量的使用方法; 3. 掌握基本算术运算符及其表达式的使用方法; 4. 掌握+、-运算符、赋值运算符及其表达式的使用方法。 二、预习内容: 教材C语言程序设计教程第2章。 三、实验内容: 1. 在Visual C+ 6.0环境下输入下面的程序,编译、连接、调试该程序。 main( ) char m,n; m=280; n=320; printf(“%dt%dn”,m,n); printf(“%ct%cn”,m,n); 2. 在Visual C+ 6.0环境下输入并运行下面的程序,观察分析运行结果。 #include m

5、ain( ) int a,b,c,d,i,j,m,n; a=b=c=d=3; i=a+; j=+b; m=c-; n=-d; printf(a=%d,b=%d,c=%d,d=%d,i=%d,j=%d,m=%d,n=%dn,a,b,c,d,i,j,m,n); 4. 在Visual C+ 6.0环境下输入并运行下面的程序,观察分析运行结果。 #include main( ) int a=4; a+=a-=a*a+a; printf(a=%dn,a); 四、实验结果: 1. 运行结果(或截图): 24 64 2. 运行结果(或截图): d=3.000000,e=3.500000 d=3.000000

6、,e=3.375000 3. 运行结果(或截图): a=4,b=4,c=2,d=2,i=3,j=4,m=3,n=2 4. 运行结果(或截图): a=-32 五、思考题: 1. 给变量命名应该注意哪些问题? 答:每个变量必须进行数据类型说明; 2. 程序2的运行结果中,d和e的值为什么不同? 答:d的赋值语句中,除法是两个整型数字的运算,其结果没有小数位;而e中对b进行了强制转换为实型,所以其除法运算结果有小数位。 3.程序3的运行结果中,i和j的值为什么不同?m和n的值为什么不同?/改为程序3 答:i(m)是通过后自增(后自减)实现的,而后自增(后自减)是先参与其他运算,后对变量递增(递减);

7、 而j(n)是通过前自增(前自减)实现的,其是先对变量递增(递减),后再参与其他运算。 4. 请分析表达式a+=a-=a*a+a的运算过程(写出运算步骤)。 答:先将a -(a*a+a)赋值给a,再将a+a 赋值给a 。 成绩指导教师签名 实验三 实验项目名称:简单的输入输出及顺序程序设计 所使用的工具软件及环境:Visual C+ 6.0 一、实验目的: 1. 掌握整型、实型与字符型数据的正确输入方法(scanf 函数的使用); 2. 掌握整型、实型与字符型数据的正确输出方法(printf 函数的使用); 3. 掌握编写顺序程序的方法。 二、预习内容: 教材C 语言程序设计教程第3章。 三、

8、实验内容: 1. 编写C 程序,按下列公式计算并输出S 的值,其中a 和b 的值有键盘输入。 2 ) (2b a ab s += main() int a,b; float s; scanf(“%d,%d ”, s=2.0*a*b/(a+b) /(a+b); printf(“s=%fn ”,s); 输入并调试。 将scanf 函数改为scanf(“%d%d ”, printf(请输入第一个整数:); scanf(%d, printf(请输入第二个整数:); scanf(%d, sum=a+b; printf(%d+%d=%dn,a,b,sum); 3. 设圆半径r=1.5,编写程序求圆周长、圆

9、面积和圆球的体积。要求用scanf 语句输入半径,输出时取小数点后两位。 四、实验结果: 2. 运行结果(或截图): 请输入第一个整数:1 请输入第二个整数:2 1+2=3 3. (1) 程序中用到的变量(类型) 单精度浮点数 (2) 算法(用伪代码描述或自然语言) c = 2 * pi * r; s = pi * r * r; v = 4 * (pi * r * r * r)/3; (3) 源程序清单 #include int main( ) # define pi 3.14 float r, c, s, v; printf(请输入圆的半径:); scanf(%f, c = 2 * pi *

10、 r; s = pi * r * r; v = 4 * (pi * r * r * r)/3.0; printf(c = %.2f,s = %.2f,v = %.2fn, c, s, v); (4) 运行结果(或截图) 请输入圆的半径:1.5 c = 9.42,s = 7.07,v = 14.13 五、思考题: scanf(“%d,%d”,&a,&b)与scanf(“%d%d”,&a,&b)输入数据的方式有什么不同?从两种输入方式的对比中你得到什么启发? 答:第一种输入方式用户必须以“,”分隔,而第二者可用空格、回车分隔,用户在不知情的情况下,很难知道用“,”分隔输入的数据。所以编程人员可以在

11、scanf()语句前用printf()语句进行解释,让用户知道用什么来分隔输入的数据。 成绩指导教师签名 实验四 实验项目名称:选择结构程序设计 所使用的工具软件及环境:Visual C+ 6.0 一、实验目的: 1. 正确使用关系运算符和关系表达式; 2. 正确使用逻辑运算符和逻辑表达式; 3. 熟练使用if 语句实现选择结构程序; 2. 熟练使用switch 语句实现多分支选择结构程序。 二、预习内容: 教材C 语言程序设计教程第4章。 三、实验内容: 1. 下面程序的功能是:输入学生成绩,若成绩在90分以上,输出“Excellent!”;若成绩在6089分之间,输出“Pass!”;若成绩

12、在60分以下,输出“Fail!”。请将程序补充完整,并上机运行程序。 #include int main( ) int score ; printf(请输入分数(0-100):); scanf(%d , &score); if(score100 | score=90 ) printf(Excellent!n ); else if( score=60 ) printf(Pass!n ); else printf(Fail!n ); 运行该程序4次,分别输入4个不同的数据,对应4种不同的情况,记录运行结果: 2. 有如下分段函数: ? ? ?=10 ) printf( y = %fn, 3*x-1

13、1); else if ( x=1 ) printf( y = %fn, 2*x-1); else printf( y = %fn, x); 3. switch (score/10) case 10: printf(An); break; case 9: printf(An); break; case 8: printf(Bn); break; case 7: printf(Cn); break; case 6: printf(Dn); break; default: printf(En); 六、源程序清单: 2. # include int main (void) float x, y; p

14、rintf(请输入一个x:); scanf(%f, if ( x=10 ) printf( y = %fn, 3*x-11); else if ( x=1 ) printf( y = %fn, 2*x-1); else printf( y = %fn, x); return 0; 3. # include int main (void) int score; printf(请输入一个成绩:); scanf(%d, switch (score/10) case 10: printf(An); break; case 9: printf(An); break; case 8: printf(Bn)

15、; break; case 7: printf(Cn); break; case 6: printf(Dn); break; default: printf(En); return 0; 七、实验结果: 2. 运行结果(执行程序3次,分别输入不同的3个数,对应3种不同的情况): 3. 运行结果(执行程序5次,分别输入5组不同的数据,对应5种不同的情况): 成绩指导教师签名 实验五 实验项目名称:简单循环程序设计 所使用的工具软件及环境:Visual C+ 6.0 一、实验目的: 1. 掌握循环程序的基本结构; 2. 熟练掌握while、dowhile及for语句,并会用来编写循环结构程序。 二

16、、预习内容: 教材C语言程序设计教程第4章。 三、实验内容: 1.编写一个程序,计算并输出数列:1,3,5,2n-1,的前几项之和,其中n由键盘输入。要求分 别用3种循环语句实现。 方法1:用for语句实现。 main() long s,n,k,i; scanf(“ %ld “, k=2*n-1; s=0 ; for(i=1;i=1; j-)/此处for循环为求最大公约数 if( i%j = 0) greatest = j; else ; if( k % greatest = 0) printf(%d和%d的最大公约数为%d!n, i, k, greatest); break; else ;

17、least = i * k / greatest; printf(%d和%d最小公倍数为%d!n, i, k, least); return 0; 七、实验结果: 1. 在下表中写出输入的数据及其运行结果: 2. 运行结果(或截图): 请输入两个正整数(中间以空格分隔):36 12 36和12的最大公约数为12! 36和12最小公倍数为36! 成绩指导教师签名 实验六 实验项目名称:多层循环程序设计及break、continue语句在循环程序中的应用 所使用的工具软件及环境:Visual C+ 6.0 一、实验目的: 1. 掌握多层循环程序的执行过程及设计方法; 2. 掌握break及cont

18、inue语句在循环程序中的使用方法。 二、预习内容: 教材C语言程序设计教程第4章。 三、实验内容: 1. 百马百担问题。有100匹马,驮100担。大马驮3担,中马驮2担,两个小马驮1担。问大、中、小马各多少?(考虑适当减少循环次数) 2. 编程输出100以内的所有素数。 3. 编程输出所有水仙花数(所谓“水仙花数”,是指一个3位数,其各位数字的立方和等于该数本 身,例如,153=13+53+33,所以153是一个水仙花数)。 四、程序中所用的变量(类型及其初值): 1. 变量x, y, z均为整型变量,均未赋予初值 2. 整型变量x,y,均未赋予初值 3.整型变量i,m,n, n初值为0,m

19、、n未赋予初值 五、算法(用伪代码或自然语言描述): 1. for ( x=0; x int main (void) int i, j; for ( i = 1; i int main (void) int i; for(i=100;i void main() int a1010=1,j,i; for (i=0;i void main() char s180,s240; int i=0,j=0; printf(请输入数组s1:); gets(s1); printf(请输入数组s2:); gets(s2); while(s1i!=0) i+; while(s2j!=0) s1i+=s2j+; s

20、1i=0; printf(%sn,s1); 七、实验结果: 1. 运行结果(执行程序3次,分别输入不同的n,对应3种不同的情况): 2. 运行结果(或截图): 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 3. 运行结果(或截图): 成绩指导教师签名 实验八 实验项目名称:函数调用和参数传递 所使用的工具软件及环境:Visual C+ 6.0 一、实验目的: 1. 掌握定义函数的

21、方法; 2. 掌握函数实参与形参的对应关系。 二、预习内容: 教材C语言程序设计教程第6章6.16.4节。 三、实验内容: 1. 求2100间的素数。 int prime(int);/* prime函数声明*/ main( ) int m,flag; for(m=2;m ) t=stri; _ _; _ _; main() int i; for(i=0;i main() char ch25=1213,8421,*p2; int i,j,s=0; for(i=0;i0j+=2) s= ; printf(%d,s); 四重要变量用途说明: 1. 2. 3. 4. 5. 五、源程序补充后完整清单:

22、1. 2. 3. 4. 5. 六、实验结果(写出典型测试数据输入和输出) 1. 运行结果: 2. 运行结果: 3. 运行结果: 4. 运行结果: 5. 运行结果: 成绩指导教师签名 实验十一 实验项目名称:结构体与共用体 所使用的工具软件及环境:Visual C+ 6.0 一、实验目的: 1.掌握结构体的概念; 2.学会通过结构体成员来使用结构体; 3.正确使用结构体数组; 4.学会共用体成员值的输出。 二、预习内容: 教材C语言程序设计教程第8章。 三、实验内容: 1.读懂并输入程序,完成填空后输出结果。 建立学习成绩单结构,并建立一个同学王林(wanglin)的记录。 #include m

23、ain() struct grade /* 定义结构体类型 */ int number; char name10; int math; int english; ; struct wanglin; /* 结构体变量 */ printf(Please input the number, name, math, english:n); scanf(%d%s%d%d,/输入数据 printf(wangling grade is:%d%s%d%dn, wanglin.number,http:/./doc/327fc081f342336c1eb91a37f111f18582d00c18.html ,wa

24、nglin.math, wanglin.english); 2.编写一个程序,处理5个学生的信息,每个学生的信息包括:学号、姓名、三门成绩。要求输出成绩表(包括每个学生的学号、姓名、三门成绩及平均分数),并输出平均分在前3名的学生的姓名及平均分。 处理5个学生的信息的参考程序: #include stdio.h struct STU int sn; char name20; int score3; float average; students5= 1,A,81,80, 80,0, 2,B,51,80, 80,0, 3,C,61,80, 80,0, 4,D,71,80, 80,0, 5,E,4

25、1,80, 80,0 ; /5个学生数据初始化 void main() int i, j; struct STU t; for(i=0; i5; i+) for(j=0; j3; j+) studentsi.average += studentsi.scorej; /三门课成绩和 studentsi.average /= 3.0; /三门课成绩平均 for(i=0; i 4; i+) for(j=0; j4-i; j+) if(studentsj.averagestudentsj+1.average) /冒泡排序 t = studentsj; studentsj = studentsj+1; studentsj+1 = t; / studentsj与 studentsj+1通过第三方t交换。 printf( 输出平均分在前3名的学生的姓名及平均分:n); for(i=0; i3; i+) printf(%20s, ); printf(%10.2fn, studentsi.average ); 3输入和运行以下程序: #include stdio.h union data int i2; int b; /vc中整型占4字节 char c5; /vc中字符型占

温馨提示

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

评论

0/150

提交评论