版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 12/12C语言程序设计实验指导书 C 语言程序设计 实 验 指 导 书 电子工程学院 2012-2 实验一 C程序的运行环境和编辑、调试、运行简单C程序 一、实验目的 1.了解 Turbo C 的基本操作方法,学会独立使用该系统。 2.掌握在该系统上如何编辑、编译、运行一个C程序。 二、实验内容及步骤 1.进入C的工作环境 1)在Windouws环境下:“开始”“程序”“MS-DOS” 屏幕上进入 MS-DOS窗口 2)在Dos环境下:键入命令c: cd c:tc c:tc tc 屏幕上出现Turbo C的工作环境 2.熟悉Turbo C的工作环境 了解Edit窗口与Message窗口 了
2、解主菜单的8个菜单项 File Edit Compile Project Option Debug break/watch 3.输入并运行一个简单的程序 FileNew 输入源程序: main() printf(This is a C program.n); printf(OKn); 按F9进行编译和连接,观察屏幕上显示的编译信息。如果出现出错信息,则应找出原因并改正。 按RunRun(或按Ctrl+F9) 编译、连接、运行一起完成。 按RunUser screen(或按Alt+F5) 察看运行结果。 按任一键从用户屏切换回TC窗口。 4.输入并编辑第二个C程序 FileNew 输入源程序:
3、main ( ) int a,b,sum; a=123; b=456; sum=a+b; printf(sum is %dn, sum); 编辑、运行、调试该程序。 5.编辑、运行、调试自己编写的程序(至少一个程序) 如:输入上底、下底和高,计算梯形面积。 观察屏幕上显示的编译信息。如果出现出错信息,则应找出原因并改正。 用FileSave (或F2)保存程序(程序名为a1.c) 三、实验报告要求 写明: 1.实验目的 2.实验内容与步骤 3.编写的程序(题目,经调试、运行后正确的程序) 4.编译过程中出现的错误信息。 5.总结讨论本次实验的结果和收获。 实验二数据类型、运算符和表达式 一、实
4、验目的 1.掌握C语言的各种类型及其定义方法,赋值方法。 2.掌握不同类型之间赋值的规律。 3.学会使用各种算术运算符,特别是自加自减运算符。 4.进一步熟悉C程序的编辑、编译、连接和运行的过程。 二、实验内容及实验步骤 1.练习一个有关字符和整型的程序。 main() char c1,c2; c1=97; c2=98; printf(%c %cn,c1,c2); /*以字符形式输出*/ printf(%d %dn,c1,c2); /*转换为整数形式输出*/ 2.转义字符的练习。 main() printf(*r*n); printf(tOAbKn); printf(#n); printf(t
5、ABCtDEFtGHIn); printf(t123t456t789n); 对照输出,理解转义字符的含义。 3.自加自减程序的练习。 main() int a=5,b=3,c1,c2; a+; -b; c1=+a+b; c2=c1a/b; b=+a+b+c1-+c2; printf(a=%dnb=%dnc1=%dnc2=%dn,a,b,c1,c2); 4.各种类型混合运算的例子 main() int a=7,b=3; char c1=a,c2=66; float x=12.25; double y=1.3333333333; long d=5432789; a=x+b*x+y/2-d%(c1-
6、c2); printf(a=%d, b=%d,c1=%n,a,b,c1); printf(d=%ld, x=%f, y=%10.2fn,d,x,y); 5.上机改错题:请指出以下C程序的错误所在 (1) main(); float r,s; r=5.0; s=3.14159*r*r; printf(%fn,s) (2) main float a,b,c,v; a=2.0; b=3.0; c=4.0 v=a*b*c; printf(%fn,v) 6.调试、运行自己编写的程序。 (1)已知圆半径r=1.5,圆柱高h=3, 求圆周长,圆面积,圆球表面积, 圆球体积,圆柱体积。 (2)输入一个华氏温度
7、,要求输出摄氏温度。公式为c=5/9*(f-32). 三、实验报告要求 写明 1.实验目的 2.实验内容及步骤 3.编写的程序(题目,经调试、运行后正确的程序) 4.编译过程中出现的错误信息。 5.总结讨论本次实验中的问题和收获 i+和 + i的区别,i-和 -i的区别 各种类型混合运算时的类型转换 实验三顺序和分支结构的程序设计 一、实验目的 1.掌握C语言中使用最多的一种语句赋值语句的使用方法。 2.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。 3.熟练掌握if语句和switch语句。 二、实验内容及实验步骤 1.掌握各种格式转换符的正确使用方法 (1)输入程序 main(
8、) int a, b; float d, e; char c1, c2; double f, g; long m, n; unsigned int p, q; a = 61; b = 62; c1 = a; c2 = b; f = 3157.890121; g = 0.123456789; d = f; e = g; p = a = m = 50000; q = b = n = -60000; printf(a=%d, b=%dnc1=%c, c2=%cnd=%6.2f, e=%6.2fn, a, b, c1, c2, d, e); printf(f=%15.6f, g=%15.12fnm=%
9、ld, n=%ldnp=%u, q=%un, f, g, m, n, p, q); (2)运行此程序并分析结果。 (3)改用scanf 函数输入数据而不用赋值语句,scanf 函数如下: scanf(%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u, 输入的数据如下: 61,62,a,b,3.56,-6.87,3157.890121,0.123456789,50000, -60000,37678,40000 (说明:lf和ld格式符分别用于输入double型和long型数据) 分析运行结果。 (4)在(3) 的基础上将printf语句改为: printf(a=%d
10、, b=%dnc1=%c, c2=%cnd=%15.6f, e=%15.12fn, a, b, c1, c2, d, e); printf(f=%f, g=%fnm=%d, n=%dnp=%d, q=%dn, f, g, m, n, p, q); 运行程序。 2.字符的输入输出 #include main() char a,b; a=g; b=getchar(); putchar(a); putchar(b); 3.以下程序多处有错。若指定必须按下面的形式输入数据,并且必须按 下面指定的形式输出数据,请对该程序做相应的修改。 main double a,b,c,s,v; printf(inpu
11、t a,b,c: n); scanf(%d %d %d,a,b,c); s=a*b; v=a*b*c; printf(%d %d %d,a,b,c); printf(s=%fn, s, v=%dn,v); 当程序执行时,屏幕的显示和要求输入形式如下: input a,b,c:2.0 2.0 3.0 此处的2.0 2.0 3.0是用户输入的数据 a=2.000000,b=2.000000,c=3.000000 此处是要求的输出形式 s=4.000000,v=12.000000 4.编辑、运行、调试自己编写的程序 给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90 分以上为A,8089分
12、为B,7079分为C,6069分为D,60 分以下为E。 事先编好程序,要求分别用if语句和switch语句实现。运 行程序,并检查结果是否正确。 三、实验报告要求 写明: 1.实验目的 2.实验内容与步骤 3.编写的程序(题目,经调试、运行后正确的程序) 4.编译过程中出现的错误信息。 5.总结讨论本次实验的结果和收获。 实验四循环结构的程序设计 一、实验目的 1.熟练掌握while循环语句的应用。 2.熟练掌握dowhile循环语句的应用。 3.熟练掌握for循环语句的应用。 4.理解三者的区别和联系。 二、实验内容及实验步骤 1.求5! main() int n,t; n=1; t=1;
13、 while(tmax) max=aij; r=i; c=j; printf(max=%d ,row=%d ,colum=%d n,max,r,c); 3.测试、运行自己编写的程序。 (1)编写程序,将数组中所有奇数放在另一个数组中返回。 (2)输入若干有序数放在数组中。然后输入一个数,插入到此有序数列中,插入后,数组中的数仍然有序。请对插在最前、插在最后、插在中 间三种情况运行程序,以便验证程序是否正确。(3)求两个矩阵之和。 三、实验报告要求 写明: 1.实验目的 2.实验内容与步骤 3.编写的程序(题目,经调试、运行后正确的程序) 4.编译过程中出现的错误信息。 5.总结讨论本次实验的结
14、果和收获。 实验六数组(二) 一、实验目的 掌握字符数组的使用。 二、实验内容及实验步骤 1.输入一串字符,计算其中空格的个数。 #include stdio.h #include string.h main( ) char c30; int i,sum=0; gets(c); for(i=0;ic /* 以下是计算任意三角形面积的函数 */ float area(float a,float b,float c) float s,area_s; s=(a+b+c)/2.0; area_s=sqrt(s*(s-a)*(s-b)*(s-c); return(area_s); 2.上机调试下面的程序
15、,记录系统给出的出错信息,并指出出错原因。main() int x,y; printf(%dn,sum(x+y); int sum(a,b); int a,b; return(a+b); 3.测试、运行自己编写的程序。 (1)编写函数,对传送过来的三个数选出最大数和最小数,并通过形参 传回调用函数。 (2)写出两个函数,分别求出两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 (3)写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。 三、实验报告要求 写明: 1.实验目的 2.实验内容与步骤 3.编写的程序(题目,经调试、运行后正确的程
16、序) 4.思考题的解决方法。 5.总结讨论本次实验的结果和收获。 实验八 C程序的函数(二) 一、实验目的 1.掌握自定义函数的一般结构及定义函数的方法。 2.掌握形参、实参、函数原型等重要概念。 3.掌握函数声明、函数调用的一般方法。 二、实验内容及实验步骤 1.菜单程序。编写一个菜单程序,运行后首先在屏幕显示如下菜单, 当输入数值1后,调用显示“ void design2(); main() int op; /* 以下代码生成菜单 */ printf(n*); printf(n* Menu section *); printf(n* 1. Design( printf(n* 2. Desi
17、gn($) *); printf(n* 3. Exit *); printf(n*); printf(nPlease enter selection:); scanf(%d, if(op=1) design1(); else if(op=2) design2(); /* 以下是显示 char str31= for(i=1;i=p;q-) /* 元素后移 */ *(q+1)=*q; *p=n; /* 插入数据 */ printf(n插入数据后的数列:n); for(p=a,i=0;is2,则返回它们二者第一个不相同的ASCII码值(如“BOY”与“BAD”的第二个字母不相同,“O”与“A”之差为
18、79-65=14);如果s1s2,则输出正值;如果s12) /* 闰年处理 */ if(d.year%400=0|d.year%100!=0&d.year%4=0) sum+=1; printf(Total: %dn,sum); 程序调试: 运行程序,输入一个合法日期数据,察看并分析程序结果。 运行程序,输入一个月份非法的日期数据,察看并分析程序结果。 运行程序,输入一个日子非法的日期数据,察看并分析程序结果。 完善程序,使得在任何情况下,都能输出一个合理的结果。 用结构体指针改写上面的程序。 2.学生成绩问题。有10个学生,每个学生的数据包括学号、姓名、3门课的成绩。从键盘输入10个学生数据
19、,要求打印出每门课的总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。参考程序 /* 学生成绩问题程序 */ #include stdio.h #define N 10 struct student /* 定义结构体数据类型 */ char num5; /* 学号(不超过4位) */ char name10; /* 姓名(不超过9位) */ int score1; /* 成绩1 */ int score2; /* 成绩2 */ int score3; /* 成绩3 */ ; main() struct student stuN; /* 定义结构体数组 */ int
20、max=0,sum1=0,sum2=0,sum3=0; int i,k=0,total,ave1,ave2,ave3,average; for(i=0;imax) max=total; k=i; /* 第k个结构体元素为最高分学生数据 */ ave1=sum1/N; ave2=sum2/N; ave3=sum3/N; average=(stuk.score1+stuk.score2+stuk.score3)/3; printf(The average score of this class are:n); printf(score1=%d, score2=%d, score3=%dn,ave1
21、,ave2,ave3); printf(The student of maxscore is:n); printf(num:%s,name:%s,score1:%d,score2:%d,score3:%d,average:% dn, stuk.num,,stuk.score1,stuk.score2,stuk.scor e3,average); 程序调试: 先用三个学生的数据调试程序(将程序中符号常量N定义为3): 运行程序,输入三个学生的数据:学号不超过4字符,以回车键结束;姓名不超过9字符,以回车键结束;成绩数据之间用逗号分隔,以回车键结束。察看并分析程序结果。 运行程序
22、,输入的学号或姓名信息超过规定长度,察看并分析程序结果。用三个学生的数据调试通过后,再用10个学生数据进行测试。 三、实验报告要求 写明: 1.实验目的 2.实验内容与步骤 3.编写的程序(题目,经调试、运行后正确的程序) 4.思考题的解决方法。 5.总结讨论本次实验的结果和收获。 实验十三编程综合练习 一、实验目的 1.掌握C程序设计语言的相关知识,提高C程序的编程技巧; 2.学会使用文件相关函数进行编程综合练习。 二、实验内容及实验步骤 1.文本文件显示。用任何一种方法先创建一个文本文件string.txt,编 写程序将该文件的内容显示出来。 参考程序 /* 显示文本文件的程序 */ #i
23、nclude stdio.h main() FILE *fp; char ch; if(fp=fopen(string.txt,r)=NULL) printf(cannot open source file.n); exit(1); while(!feof(fp) ch=fgetc(fp); putchar(ch); fclose(fp); 程序调试 建立string.txt文本文件。 运行程序,察看并分析程序的运行结果。 删除string.txt文本文件后,运行程序,察看并分析程序的运行结果。 2.文件复制。编写一个文本文件复制函数,并在主函数main()中调用它, 将上面建立的文本文件st
24、ring.txt复制到文件backup.txt中。 参考程序 /* 文件复制程序 */ #includestdio.h void copy(char *,char *); /* 文件复制函数原型说明 */ main() char *source=string.txt; char *target=backup.txt; copy(source,target); void copy(char *source,char *target) FILE *fp_s,*fp_t; if(fp_s=fopen(source,r)=NULL) /* 以读方式打开源文件*/ printf(cannot open
25、source file.n); exit(1); if(fp_t=fopen(target,w)=NULL) printf(cannot open target file.n); exit(1); while(!feof(fp_s) fputc(fgetc(fp_s),fp_t); fclose(fp_s); fclose(fp_t); return; 程序调试 运行程序后,用文本编辑软件打开backup.txt文件察看结果。也可以使用上面的文本文件显示程序察看结果。 3.用文件存储学生数据。有5个学生,每个学生有3门课的成绩,从键盘输入数据(包括学生号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。 设5名学生的学号、姓名和3门课成绩如下: 99101 Wang 89 98 67 99103 Li 60 80 90 99106 Fun 75 91 99 99110 Ling 80 50 62 99113 Yuan 58 68 7l 参考程序 /* 用文件存储学生数据程序 */ #include stdio.h #define N 5 struct student /* 定义学生结构体数据类型 */ char num10; char name8; int score3; float ave; ; main() s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理专业能力评估标准本土化研究
- 医护沟通与协作
- 《教育文化学》课件 第五章-文化创新与教育变革
- 医疗护理文件书写规范与技巧
- 2026六年级下新课标依依惜别毕业季
- 护理质量持续改进方法分享
- 难治性膀胱过度活动症三线治疗策略2026
- 2026道德与法治六年级加油站 自律思维强化
- 2026二年级数学下册 数学广角价值观念
- 导管护理的团队协作与领导力
- 2026年自然资源管理知识手册基础试题库及参考答案详解(夺分金卷)
- 湖北省新八校2026年4月高三年级4月教学质量教研考试英语试卷(含答案)
- 2026河北省国控商贸集团有限公司招聘建设笔试参考题库及答案解析
- 2026年交管12123驾驶证学法减分试题(含参考答案)
- 2026年甘肃省陇南市宕昌县人民法院招聘聘用制司法辅助人员笔试备考试题及答案解析
- 2026年记者招聘无领导小组讨论题目
- 2025年浙江省综合性评标专家库评标专家考试历年参考题库含答案详解
- GB/T 19582.2-2008基于Modbus协议的工业自动化网络规范第2部分:Modbus协议在串行链路上的实现指南
- 纳米材料的力学性能课件
- 2.3二次函数与一元二次方程、不等式
- YB∕T 4645-2018 重型设备钢丝预应力缠绕组合施工及验收规范
评论
0/150
提交评论