《C语言程序设计》实验报告.doc

上传人:飞****2 文档编号:52744646 上传时间:2022-10-23 格式:DOC 页数:33 大小:165.50KB
返回 下载 相关 举报
《C语言程序设计》实验报告.doc_第1页
第1页 / 共33页
《C语言程序设计》实验报告.doc_第2页
第2页 / 共33页
点击查看更多>>
资源描述

《《C语言程序设计》实验报告.doc》由会员分享,可在线阅读,更多相关《《C语言程序设计》实验报告.doc(33页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C语言程序设计 实验报告 20122013学年第二学期 班 级姓 名学 号指导教师 实验一实验项目名称:C程序的运行环境和运行C程序的方法所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1了解在Visual C+ 6.0环境下如何编辑、编译、连接和运行一个C程序;2通过运行简单的C程序,初步了解C源程序的特点。二、预习内容:教材C语言程序设计教程第1章。三、实验内容:1. 在Visual C+ 6.0环境下输入并运行下面的程序: #include int main( ) printf(This is a C program.n); return 0; 2. 在Visual C+

2、 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. 运行结果(或截图): 2. (1) 改正后的源程序: (2) 运行结果(或截图):五、思考题: 1. 一个C程序上机的步骤有哪些? 答: 2. 组成C程序的基本单位是函数,一个函数包括哪几个部分? 答:成绩 指导教师签名 实验二实验项目名称:数据类型、运算符和表达式所使用的工

3、具软件及环境:Visual C+ 6.0一、实验目的: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环境下输入并运行下面的程序,观察分析运行结果。 #

4、include int main( ) int a=3,b=4,c=8; float d,e; d=a+b/c; e=a+(float)b/c; printf(d=%f,e=%fn,d,e); 3. 在Visual C+ 6.0环境下输入并运行下面的程序,观察分析运行结果。 #include main( ) 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环境下输入并运行

5、下面的程序,观察分析运行结果。 #include main( ) int a=4; a+=a-=a*a+a;printf(a=%dn,a); 四、实验结果: 1. 运行结果(或截图): 2. 运行结果(或截图):3. 运行结果(或截图):4. 运行结果(或截图):五、思考题: 1. 给变量命名应该注意哪些问题? 答: 2. 程序2的运行结果中,d和e的值为什么不同? 答:3. 程序3的运行结果中,i和j的值为什么不同?m和n的值为什么不同? 答: 4. 请分析表达式a+=a-=a*a+a的运算过程(写出运算步骤)。 答:成绩 指导教师签名 实验三实验项目名称:简单的输入输出及顺序程序设计所使用

6、的工具软件及环境:Visual C+ 6.0一、实验目的:1. 掌握整型、实型与字符型数据的正确输入方法(scanf函数的使用);2. 掌握整型、实型与字符型数据的正确输出方法(printf函数的使用);3. 掌握编写顺序程序的方法。二、预习内容:教材C语言程序设计教程第3章。三、实验内容:1. 编写C程序,按下列公式计算并输出S的值,其中a和b的值有键盘输入。main() int a,b;float s;scanf(“%d,%d”,&a,&b);s=2.0*a*b/(a+b) /(a+b);printf(“s=%fn”,s);输入并调试。将scanf函数改为scanf(“%d%d”,&a,&

7、b);再编译,运行。观察结果。2. 在Visual C+ 6.0环境下输入并运行下面的程序,观察分析程序运行过程及结果。 #include int main( ) int a,b,sum; printf(请输入第一个整数:); scanf(%d,&a);printf(请输入第二个整数:); scanf(%d,&b); sum=a+b;printf(%d+%d=%dn,a,b,sum); 3. 设圆半径r=1.5,编写程序求圆周长、圆面积和圆球的体积。要求用scanf语句输入半径,输出时取小数点后两位。四、实验结果: 1. 输入数据4,5输入修改后的数据4 545运行结果运行结果原因原因 2.

8、运行结果(或截图): 3. (1) 程序中用到的变量(类型)(2) 算法(用伪代码描述或自然语言)(3) 源程序清单(4) 运行结果(或截图)五、思考题: scanf(“%d,%d”,&a,&b)与scanf(“%d%d”,&a,&b)输入数据的方式有什么不同?从两种输入方式的对比中你得到什么启发? 答:成绩 指导教师签名 实验四实验项目名称:选择结构程序设计所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1. 正确使用关系运算符和关系表达式;2. 正确使用逻辑运算符和逻辑表达式;3. 熟练使用if语句实现选择结构程序;2. 熟练使用switch语句实现多分支选择结构程序。二、

9、预习内容:教材C语言程序设计教程第4章。三、实验内容:1. 下面程序的功能是:输入学生成绩,若成绩在90分以上,输出“Excellent!”;若成绩在6089分之间,输出“Pass!”;若成绩在60分以下,输出“Fail!”。请将程序补充完整,并上机运行程序。 #include int main( ) int score; printf(请输入分数(0-100):); scanf(%d, ); if(score100 | score0) printf(Input Error!n);else if( ) printf(Excellent!n); else if( ) printf(Pass!n)

10、; printf(Fail!n); 运行该程序4次,分别输入4个不同的数据,对应4种不同的情况,记录运行结果:输入数据运行结果2. 有如下分段函数:请输入x的值,求解对应的y值。3. 给出一个百分制成绩,要求输出成绩等级A、 B、 C、 D、 E。90-100为A,80-89为B,70-79为C,60-69为D,60分以下为E。用switch语句写。四、程序中所用的变量及其类型: 2. 3.五、算法(用伪代码或自然语言描述):2. 3. 六、源程序清单: 2. 3.七、实验结果: 2. 运行结果(执行程序3次,分别输入不同的3个数,对应3种不同的情况):输入数据运行结果3. 运行结果(执行程序

11、5次,分别输入5组不同的数据,对应5种不同的情况):输入数据运行结果成绩 指导教师签名 实验五实验项目名称:简单循环程序设计所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1. 掌握循环程序的基本结构;2. 熟练掌握while、dowhile及for语句,并会用来编写循环结构程序。二、预习内容:教材C语言程序设计教程第4章。三、实验内容:1.编写一个程序,计算并输出数列:1,3,5,2n-1,的前几项之和,其中n由键盘输入。要求分别用3种循环语句实现。方法1:用for语句实现。main() long s,n,k,i; scanf(“ “,&n);k=2*n-1; ; for(i

12、=1;i=k; ) s+=i;printf(“1+3+%ld=%ldn”,k,s);方法2:用while语句实现。main()long ,n,i=1; scanf(“%ld”,&n);while( )s+=i; ;printf(“1+3+%ld=%ldn”,2*n-1,s); 方法3:用do-while语句实现。main()long s=0,n,i=1; scanf(“%ld”,&n);dos+=i; i=i+2; while( );printf(“1+3+%ld=%ldn”,2*n-1,s); 填上所缺的空,运行程序,写出结果。2.输入两个正整数,求其中最大公约数和最小公倍数。四、程序中所用

13、的变量(类型及其初值):2. 五、算法(用伪代码描述):2. 六、源程序清单: 2.七、实验结果: 1. 在下表中写出输入的数据及其运行结果:方法1方法2方法3输入数据运行结果2. 运行结果(或截图):成绩 指导教师签名 实验六实验项目名称:多层循环程序设计及break、continue语句在循环程序中的应用所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1. 掌握多层循环程序的执行过程及设计方法;2. 掌握break及continue语句在循环程序中的使用方法。二、预习内容:教材C语言程序设计教程第4章。三、实验内容:1. 百马百担问题。有100匹马,驮100担。大马驮3担,

14、中马驮2担,两个小马驮1担。问大、中、小马各多少?(考虑适当减少循环次数)2. 编程输出100以内的所有素数。3. 编程输出所有水仙花数(所谓“水仙花数”,是指一个3位数,其各位数字的立方和等于该数本身,例如,153=13+53+33,所以153是一个水仙花数)。四、程序中所用的变量(类型及其初值):1. 2. 3.五、算法(用伪代码或自然语言描述):1. 2. 3.六、源程序清单: 1. 2. 3.七、实验结果: 1. 运行结果(或截图):2. 运行结果(或截图):3. 运行结果(或截图):成绩 指导教师签名 实验七实验项目名称:一维、二维和字符数组程序设计所使用的工具软件及环境:Visua

15、l C+ 6.0一、实验目的:1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法;2. 掌握字符数组的使用。二、预习内容:教材C语言程序设计教程第5章。三、实验内容:1. 从键盘输入一个整数n(n=10)和n个整数,存入数组a中,先依次输入各个数组元素的值,然后对数组a的所有元素值从小到大的顺序重新排列后,再依次输出。main()int a10,n,i,j,min,ax; printf(“input n=”);scanf(“%d”,&n);printf(“input array0a1a%d:n”,n-1);for(i=0;in;i+) scanf(“%d”, );printf(“befo

16、re sort:arrayn”);for(i=0;in:i+) printf(“%d”,ai);printf(“n”); for(i=0;i ;i+) min=i; for(j= ;jn;j+) if(ajamin) ; ax= ; ; =ax;printf(“after sort:arrayn”);for(i=0;in;i+) printf(“%d”,ai);2. 打印出以下杨辉三角形(要求打印出10行)。11 11 2 11 3 3 11 4 6 4 13.将两个字符串连接起来,不要用strcat函数。四、程序中所用的变量(类型及其初值):2. 3.五、算法(用伪代码描述):2. 3.六、

17、源程序清单: 2.3.七、实验结果: 1. 运行结果(执行程序3次,分别输入不同的n,对应3种不同的情况):输入整数n输入n个元素排序后结果2. 运行结果(或截图):3. 运行结果(或截图):成绩 指导教师签名 实验八实验项目名称:函数调用和参数传递所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1. 掌握定义函数的方法;2. 掌握函数实参与形参的对应关系。二、预习内容:教材C语言程序设计教程第6章6.16.4节。三、实验内容:1. 求2100间的素数。int prime(int);/* prime函数声明*/main( ) int m,flag; for(m=2;m=100;

18、m+=1) flag=prime(m);if( ) printf(“%4d”,m); int prime( ) int i,flag; for(i=2;ia;i+) if(a%i=0) ; if(i=a) flag=1;else flag=0;return ;2.求方程ax2+bx+c=0的根,用3个函数分别求当b2-4ac大于0、等于0和小于0时的根,并输出结果。从主函数输入a,b,c的值。四、算法(用伪代码或自然语言描述):2.五、源程序清单: 2.七、实验结果: 1. 运行结果:2. 运行结果(执行程序3次,分别输入不同的a,b,c,对应3种不同的情况):输入a输入b输入c方程的根144

19、2.551.5521.5成绩 指导教师签名 实验九实验项目名称:函数与预处理所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1. 掌握数组名作为函数参数;2. 掌握全局变量与局部变量;3掌握宏,文件包含的用法。二、预习内容:教材C语言程序设计教程第6章6.56.9节。三、实验内容:1. 从键盘输入10个数存入数组a中,调用fmax求数组中的最大值并输出。#include main( ) int a10,i,jmax; for(i=0;i10;+i) scanf(“%d”,&ai);jmax=fmax( ,10);printf(“%d”,jmax); fmax(int b,int

20、 t) int i,imax; imax=b0;for(i=1;iimax) ;return ;2.用“冒泡法”对输入的10个字符排序后按从小到大的次序输出。 #define N 10 char strN; sort( ) int i,j; char t; for(j=1;jN;j+) for(i=0;i ) t=stri; _ _; _ _; main() int i; for(i=0;i10;i+) scanf(%c,&stri); sort( ); for(i=0;iN;i+) printf(%c,stri); printf(n); 3.输入10个学生5门课程的成绩,分别用函数求:每个学

21、生平均分,并输出;每门课的平均分,并输出。4.定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。四、程序中所用的变量(数据类型):3.4.五、算法(用伪代码或自然语言描述):3.六、源程序清单: 3.4.七、实验结果: 1. 运行结果(或截图):2. 运行结果(或截图):3. 运行结果(或截图):4. 运行结果(或截图):成绩 指导教师签名 实验十实验项目名称:指针所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1通过实验进一步掌握指针的概念,会定义和使用指针变量。2能正确使用数组的指针和指向数组的指针变量。3能正确使用字符

22、串的指针和指向字符串的指针变量。4了解指向函数的指针变量。二、预习内容:教材C语言程序设计教程第7章。三、实验内容:1.输入2个整数,交换顺序后输出,程序要求使用指针处理。程序提示:自定义交换函数:void swap(int *p1,int *p2) /实现*p1与*p2交换/main函数结构如下:int n1,n2;int *q1,*q2;/输入2个数,q1,q2分别指向这n1,n2这2个数swap(q1,q2); /调用函数swapprintf(“%5d%5d”,n1,n2); /输出交换后的值2. 将一个数组的10个元素反序,用一函数实现。程序提示:在主函数中用for循环通过scanf函

23、数输入数组元素值,调用函数,用for循环输出结果。void inverse(int *p) 循环for(i=0;i10/2;i+) *(p+i)与*(p+9-i)交换,就能实现反序3.下面程序是用指针法将一个字符串a复制到字符串b中,修改程序实现问题(1)(2)。 main()char a=I am a boy.,b20, *p1,*p2;int i;p1=a;p2=b;for( ; *p1!=0;p1+,p2+)*p2=*p1;*p2=0;printf(string a is:%sn,a);printf(string b is:);for(i=0;bi!=0;i+)printf(%c,bi)

24、;(1)将第一个for循环改为while循环;(2)分别用指针变量p1和p2输出字符串a 和b。4. 用一个函数实现两个字符串的比较,自定义compare函数已给出,编写main函数:设p1指向字符串s1,p2指向字符串s2。要求当两个字符相同时返回0,若两个字符串不相等,则返回返回它们二者第一个不同字符的ASCII码的差值。两个字符串s1,s2由主函数输入,compare函数的返回值也由主函数输出。程序提示:使用以下函数进行比较:int compare(char *p1,char *p2)int i;for(i=0;*(p1+i)!=0;i+) if(*(p1+i) != *(p2+i) b

25、reak; /不相等,循环结束return *(p1+i)-*(p2+i);main()5.下面的程序的功能是将字符数组ch中第2维下标是偶数的元素取出后,构成一个十进制整数。#includemain()char ch25=1213,8421,*p2;int i,j,s=0;for(i=0;i2;i+) pi= ;for(i=0;i0& pij=9;j+=2) s= ;printf(%d,s);四重要变量用途说明:1.2.3.4.5.五、源程序补充后完整清单:1.2.3.4.5.六、实验结果(写出典型测试数据输入和输出) 1. 运行结果:2. 运行结果:3. 运行结果:4. 运行结果:5. 运

26、行结果:成绩 指导教师签名 实验十一实验项目名称:结构体与共用体所使用的工具软件及环境:Visual C+ 6.0一、实验目的:1.掌握结构体的概念;2.学会通过结构体成员来使用结构体;3.正确使用结构体数组;4.学会共用体成员值的输出。二、预习内容:教材C语言程序设计教程第8章。三、实验内容:1. 读懂并输入程序,完成填空后输出结果。建立学习成绩单结构,并建立一个同学王林(wanglin)的记录。#include main() struct grade /* 定义结构体类型 */ int number; char name10; int math; int english; ; struct

27、 wanglin; /* 结构体变量 */ printf(Please input the number, name, math, english:n); scanf(%d%s%d%d, , wanglin.name, ,&wanglin.english);/输入数据 printf(wangling grade is: %d%s%d%dn, wanglin.number,wanglin.name,wanglin.math, wanglin.english); 2.编写一个程序,处理5个学生的信息,每个学生的信息包括:学号、姓名、三门成绩。要求输出成绩表(包括每个学生的学号、姓名、三门成绩及平均

28、分数),并输出平均分在前3名的学生的姓名及平均分。处理5个学生的信息的参考程序:#include stdio.hstruct 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,41,80, 80,0 ; /5个学生数据初始化void main() int i, j; struct STU t; for(i=0; i5; i+) for(j=0; j3; j+) students

29、i.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+) pr

30、intf(%20s, studentsi.name); printf(%10.2fn, studentsi.average ); 3输入和运行以下程序:#include stdio.hunion data int i2; int b; /vc中整型占4字节 char c5; /vc中字符型占1字节u;void main( )scanf(%d%d,&u.i0,&u.i1);printf(%d,%d,%d,%c%,%cn, u.i0,u.i1,u.b,u.c0,u.c4);输入两个整数97 67给u.i0和u.il,分析运行结果。四结构体、共用体说明(作用、成员类型,初始值等):1.2.3.五、源程序补充后完整清单:1.六实验结果1运行结果(写出典型测试数据输入和输出):2运行结果(写出输出结果):3运行结果(分析运行结果)成绩 指导教师签名

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com