《2022年程序方案与编程实验版指导书》由会员分享,可在线阅读,更多相关《2022年程序方案与编程实验版指导书(20页珍藏版)》请在金锄头文库上搜索。
1、个人资料整理仅限学习使用校内讲义程序设计与编程实验指导书编写:李玲吉林大学通信工程学院2006.5.20 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 20 页个人资料整理仅限学习使用目录实验一 Turbo C 环境的认识与使用 1 实验二 数据类型、运算符和表达式4 实验三 分支结构程序设计7 实验四 循环结构程序设计8 实验五 数组程序设计 8 实验六 函数程序设计 10 实验七 指针结构程序设计12 实验八 结构体与共用体程序设计13 实验九 文件程序设计 14 附录: Visual C+ 5.0 的基本用法 15 精选学习资料
2、 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 20 页个人资料整理仅限学习使用实验一 Turbo C 环境的认识与使用一、实验目的熟悉 Turbo C 运行环境、创建c 程序文件的过程。掌握 C语言中使用最多的一种语句赋值语句的使用方法。掌握各种类型数据的输入输出方法,能正确使用各种格式转换符。二、实验内容1在 C 编辑环境下,输入下列程序。然后将其以p1.c 为文件名保存到d 盘的 cc目录中。 若 d 盘中没有cc 子目录,则需要自己建立)启动 C编辑环境开始程序MS-DOS 方式,在MS-DOS 方式下键入:cdtcbintcEnter)则
3、此时 C语言编辑环境已启动。按 Esc 键后,光标落在编辑区中,键入程序。程序输入完成后,利用Alt+F将File菜单的子菜单显示在屏幕上,选择Save,此时显示一个对话框,在对话框中输入:d:ccshiyan.cEnter)则程序被保存。利用 Alt+X 退出 C语言编辑环境。再次启动C语言编辑环境,键入tc 回车)。打开上面保存的程序shiyan.c。同时按下Alt+F将 File菜单的子菜单显示在屏幕上,选择Load,此时显示一个对话框,在对话框中输入:d:ccshiyan.c回车),则此时p1.c 程序被显示在程序的编辑窗口中。将上面的程序改名为pp1.c 保存到d 盘的 cc 目录中
4、 d:cc )。同时按下Alt+F将 File菜单的子菜单显示在屏幕上,选择Write to,此时显示一个重命名对话框,在对话框中输入:d:ccshiyan1.cEnter),则此时shiyan1.c程序被保存到 d盘 cc 子目录中,此时编辑窗口右上方的文件名为:shiyan1.c。编译shiyan1.c程序。同时按下Alt+C ,则屏幕上显示编译子菜单,当光带落到第一个子菜单项Compile to OBJ上时按回车键,则程序编译开始,编译完成后显示编译结果。运行shiyan1.c程序。浏览完编译结果后,若程序没有错误,按键盘中的任意一个键,则回到编辑窗口,此时同时按下Alt+R ,则显示编
5、译子菜单,当光带落到第一个子菜单项Run 上时按回车键,则链接、运行开始。运行完成后,利用Run子菜单中的User screen命令观察运行结果。输入并运行下面的程序#include 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 20 页个人资料整理仅限学习使用void main( char c1,c2。c1=x。c2=y。printf(“%c %cn” ,c1,c2 。 (1. 运行此程序。(2. 在此基础上增加一个语句,运行,并分析结果。printf(“%d%dn”,c1,c2 。(3. 将第 2 行改为:int c1,c2。运行
6、 ,并观察结果。(4. 将第 3 、4 行改为:c1 = x 。c2 = y 。运行 ,分析其运行结果。(5. 将第 3 、4 行改为:c1 = ” x”。c2 = ” y”。运行 ,分析其运行结果。(6. 将第 3 、4 行改为:c1 = 300 。c2 = 400 ;运行 ,分析其运行结果。3(1. 输入程序#include void main( int a,b。char c1,c2。float d,e。 double f,g。long m,n 。unsigned p,q。a=61。b=62。c1=a。 c2=b d=3.56 。e=-6.87 。f=1234.567809 。g=0.12
7、3456789 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 20 页个人资料整理仅限学习使用m=20000 。n=-30000 。p=12345。q=50000。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.12nm=%ldc,n=%ldnp=%u,q=%un”,f,g,m,n,p,q。 (2. 运行此程序并分析结果。(3. 在此基础上,修改程序的第8-13 行:a = 61 。 b = 62。c1 = a。
8、c2 = b。f = 3157.890121。 g = 0.123456789。d = f。 e = g。p = a = m = 50000。 q = b = n = -60000。运行程序 , 分析结果。(4. 改用 scanf 函数输入数据而不用赋值语句,scanf 函数如下:scanf( “%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u”,&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,&p,&q。输入的数据如下:61,62,a,b,3.56,-6.87,3157,890121,0.123456789,50000,-60000,37678,
9、40000 . 在(4 的基础上将printf语句改为:printf(“a=%d, b=%d nc1=%c, c2=%cnd=%15.6f, n”, a, b, c1, c2, d, e。printf(“f=%f, g=%fn”, f, g, m, n, p, q。运行程序。(6. 将 p、q 改用 %o格式符输出。(7. 将 scanf 函数中的 %lf 和%ld 改为 %f 和%d ,运行程序并观察分析结果。三、学时安排及要求2 学时,在作实验前事先预习并编写好实验源程序。凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程成绩并向学院报告。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入
10、本课程设计成绩并向学院报告。四、实验报告内容1实验用源程序。2实验方法及结果分析。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 20 页个人资料整理仅限学习使用实验二数据类型、运算符和表达式一、实验目的掌握C 语言数据类型,熟悉如何定义一个整形、字符型和实型的变量,以及对他们赋值的方法。掌握不同的类型数据之间赋值的规律。学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加+)和自减 - )运算符的使用。二、实验内容1输入程序:#include void main( int i,j,m,n。i=8 。j=10 。m=+i
11、。n=j+ 。printf(“%d, %d,%d,%d”,i,j,m,n。 (1. 运行程序,注意 i 、j 、 m 、n 各变量的值,分别作以下改动并运行。(2. 将第 4、5 行改为:m = i+ 。n = +j。再运行。(3. 将程序改为:#include void main( int i,j。i=8 。j=10 。printf(“%d, %d”,i+,j+。 (4. 在(3的基础上,将printf 语句改为:printf(“%d,%d ”, +i, +j。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 20 页个人资料整理仅限学
12、习使用(5. 将 printf 语句改为:printf(“%d,%d,%d,%d ”, i, j, i+, j+。(6. 将程序改为:#include void main( int i,j,m=0,n=0。i=8 。j=10 。m+=i+。n-=-j。printf(“i=%d, j=%d,m=%d,n=%d ”,i,j,m,n。 2编程序,用getchar 函数读入两个字符给c1、c2,然后分别用putchar函数和 printf函数输出这两个字符。上机运行程序,比较用printf和 putchar 函数输出字符的特点。3 输入如下三组数据,求出每组数据之和,并输出结果:256 43.5 37
13、 -12.418 17.3 294 -16.4 25 34.4 107.6 299 首先预计每组之和,然后将程序执行结果与预计值比较。 选作 (1 读入 a、b、c, 执行如下操作:作 a/b 运算,把a、b、c 打印在一行上;作 a*b+c 运算,把a、b、c 及 a*b+c打在另一行上。输入 a, b a10.0 aa-10.0 aa+10.0 ba 输出 a,b ba-b 结束y no y no 开始精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 20 页个人资料整理仅限学习使用(2 变量 a、b 中各存有一个整数,交换两数后输出
14、。三、学时安排及要求2 学时,在作实验前事先预习并编写好实验源程序。凡发现抄袭,抄袭者与被抄袭者皆以零分计入本课程成绩并向学院报告。凡发现实验报告或源程序雷同,涉及的全部人员皆以零分计入本课程设计成绩并向学院报告。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验三分支结构程序设计一、实验目的了解 C语言表示逻辑量的方法以 0 代表“假”,以非0 代表“真”)。学会正确使用逻辑运算符和逻辑表达式。熟练掌握if语句和 switch语句。结合程序掌握一些简单的算法。学习调试程序。二、实验内容1本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。有一函数:用 scanf 函
15、数输入x 的值 分别为 x1、1x10、x10 三种情况),求y 值。2给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90 分以上为A,8189 分为 B,7079 分为 C,6069 分为 D,60 分以下为 E。事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。再运行一次程序,输入分数为负值 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 20 页个人资料整理仅限学习使用4输入一个整数,判断该数的奇偶性。输出相应的标志even- 偶数 odd- 奇数,请记住这两个单词)5根据输入的三角
16、形的三边判断是否能组成三角形,若可以则输出它的面积和三角形的类型。三、学时安排及要求2 学时,在作实验前事先预习并编写好实验源程序。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验四循环结构程序设计一、实验目的掌 握 循 环 结 构 的 三 种 形 式 : 当 型 循 环 结 构 、次数型结构 (for ,以及三种形式的相互转换。掌握 break 语句、 continue语句的格式、功能、作用。二、实验内容编写下列程序,上机调试、验证。1键盘上输入10 个数,求其平均值。2输出 1100 之间,其数的平方在150200 之间的第一个数,如找到,退出循环,输出该数的平方。反之,继续查找
17、。3求出所有各位数字的立方和等于1099 的三位整数。4输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。在得到正确结果后,请修改程序使之能分别统计大小写字母、空格、数字和其它字符的个数。三、学时安排及要求4 学时,在作实验前事先预习并编写好实验源程序。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验五数组程序设计一、实验目的掌握一维数组和二维数组的定义、初始化、赋值和输入输出的方法;掌握字符数组和字符串函数的使用;精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 20 页个人资料整理仅限学习使用掌握与数组有关
18、的算法 下面程序的功能是输出数组s 中最大元素的下标。 main) int k,p; int s=1,-9,7,2,-10 ,3; forp=0,k=p;p6;p+) ifsk)_; printf 下面程序的功能为求主、次对角线元素之和。 main) static int a3=9,7,5,3,1, 2,4,6,8 ; int i,j ,s1=0,s2=0; fori=0;i3 ;i+ ) forj=0;j3 ;j+ ) if_) s1=s1+aij; if_) s2=s2+aij; printf“ %dn%dn”, s1,s2); 【提示】主要考虑主对角线行、列之间有何关系?次对角线行、列之
19、间的关系?3 编写下列程序,上机调试、验证。1)求 2 个 33 矩阵对应元素之和,并存入矩阵C中,然后输出矩阵C 。设计步骤:定义 3 个 33 矩阵 a,b,c;设计用双重循环给矩阵a、b 赋值;用双重循环求矩阵a、b 对应元素之和并赋给矩阵c;精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 20 页个人资料整理仅限学习使用用双重循环输出矩阵c 对应的元素。2)输入单精度型一维数组a10 ,计算并输出a 数组中所有元素的平均值。设计步骤:定义一个单精度型一维数组a10 ;用单重循环给一维数组a10 赋值;用单重循环求一维数组a10
20、 所有元素之和;在循环外求平均值并输出。三、学时安排及要求2 学时,在作实验前事先预习并编写好实验源程序。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验六函数程序设计一、实验目的掌握定义、调用函数的方法;掌握函数实参与形参的对应关系以及“值传递”的方式;掌握函数的嵌套调用和递归调用的方法;掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。掌握函数程序设计的一般方法和应用。二、实验内容1阅读下列程序,分析程序完成的功能,然后上机验证结果。1) main ) void f); float a10 ;int i; fori=0;i; fa); void fint b) float
21、 sum=0,aver ;精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 20 页个人资料整理仅限学习使用int i; for(i=0;i sum+=bi;aver=sum/10.0 ; printf(“%d ”, aver ; 输入数据为:23 43 12 46 90 65 44 76 78 86 输出结果为:在主函数中的void f);作用是什么?可以改变其形式吗?2) main ) int i=5; printf“%dn”subi ); subint n) int a; ifn= =1) return 1;a=n+subn-1
22、); returna); 【思考】写出该程序的运行结果并熟悉递归函数的实现过程。3) main) int x=5, y=0; printf“x=%5d y=%5d n”, x,y); func); printf“x=%5d y=%5d n”, x,y); func); func ) static int x=4;int y=10; x=x+2; y=y+x; printf“x0=%5d y0=%5d n”, x,y); 分析该程序的运行结果并给出简单解释。2编写下列程序。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 20 页个人资料
23、整理仅限学习使用1)计算 10 名学生 1 门课成绩的平均分。程序设计要求:用自定义函数来实现,注意自定义函数的形式及参数之间的传递,用主函数来调用自定义函数实现功能。)2)计算 s=5! 7! 9!用递归算法编写)三、学时安排及要求2 学时,在作实验前事先预习并编写好实验源程序。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验七指针结构程序设计一、实验目的通过实验进一步掌握指针的概念,会定义和使用指针变量;掌握内存单元和地址、变量与地址、数组与地址的关系;掌握取地址运算符与指针运算符;能正确使用数组的指针和指向数组的指针变量;能正确使用字符串的指针和指向字符串的指针变量;能正确使用
24、指向函数的指针变量;了解指向指针的指针的概念及其使用方法。二、实验内容1写出下列程序的运行结果。main) char *str=“ENGLISH ”,“ MATH ”,“ MUSIC ”,“ PHYSICS ”,“CHEMISTRY ”;char *q; int num; q=str;fornum=0 ;num5 ;num+ )printf“%sn”, *q+); 该程序的运行结果为:2有下面的程序,读程序,写出当输入1,2 时的运行结果。main) int a23=2,4,6,8,10,12 ,*p )3 ,i ,j ; p=a; scanf“%d ,%d ”, &i,&j);精选学习资料
25、- - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 20 页个人资料整理仅限学习使用 printf“a%d%d=%dn ”, i ,j ,* 编写一个函数s(a,n ,其中 a 是一个一维整型数组,n 是数组长度 , 通过指针求数组中的平均数。(2 输入 100 个实数,利用指针求其中的最大值和平均值。三、学时安排及要求2 学时,在作实验前事先预习并编写好实验源程序。四、实验报告内容1实验用源程序。2实验方法及结果分析。实验八结构体与共用体程序设计一、实验目的掌握结构体类型变量的定义和使用;掌握结构体类型数组的概念和使用;掌握链表的概念,初步学会对链表
26、进行操作;掌握共用体的概念与使用。二、实验内容编程序,然后上机调试运行。1有10 个学生,每个学生的数据包括学号、姓名、3 门课的成绩,从键盘输入10 个学生数据,要求打印出3 门课总平均成绩,以及最高分的学生的数据( 包括学号、姓名、3 门课的成绩、平均分数。要求用 input函数输入10 个学生数据;用average 函数求总平均分;用max函数找出最高分的学生数据;总平均分和最高分学生的数据都在主函数中输出。2建立一个链表,每个结点包括:学号、姓名、性别、年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。选作)3建立某班若干学生的成绩表,以总成绩按降序排序,以如
27、下格式输出:选作)姓名性别平时成绩期中成绩期末成绩总评成绩张平男 70 62 71 ?王英男 71 63 87 ?李明女 82 67 75 ?班平均?精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 20 页个人资料整理仅限学习使用总评成绩平时*20%+期中 *30%+期末 *50% 要求:全班人数临时输入,实验时可输入少量几个,计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件 stud 中。设 5 名学生的学号、姓名和3 门课成绩如下:20051001 Wang 89,98,67.5 20051313 Li 60,80,90
28、 20051532 Fun 75.5 ,91.5 ,99 20050911zhang 100,50,62.5 20051720 Yuan 58,68,7l 在向文件stud 写入数据后,应检查验证stud 文件中的内容是否正确。2将上题stud文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入一个新文件stu_sort中在向文件stu_sort写入数据后,应检查验证stu_sort文件中的内容是否正确。3对上题已排序的学生成绩文件进行插入处理,插入一个学生的3 门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。要插入的学生数据为:20050
29、108 Xin 90,95,60 在向新文件stu_new 写入数据后,应检查验证stu_new 文件中的内容是否正确。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 20 页个人资料整理仅限学习使用三、学时安排及要求2 学时,在作实验前事先预习并编写好实验源程序。四、实验报告内容1实验用源程序。2实验方法及结果分析。附录:Visual C+ 5.0 的基本用法1. 进入 C+ 工作环境建立个人子目录:第一次上机时先在E 盘上建立一个sw1 子目录,在sw1 子目录下,再建立以自己学号后三位为目录名的子目录,如学号为9911001 的
30、同学,可以用001 为子目录名。然后按以下步骤进行操作。启动 Visual C+ 5.0:双击 Windows 桌面上的Visual C+ 5.0图标或单击Windows 桌面上“开始”按钮,在“程序”中选择“Visual C+ 5.0”运行即可。2. 编译、运行C+ 源程序创建一个新的工程文件Project file)启动Visual C+5.0 编译系统后,出现“Microsoft Developer Studio”窗口,该窗口菜单条有个菜单项. 单击 “ File ” 菜单,在其下拉菜单中选择“New” ,屏幕上出现一个“ New ”对话框,在该对话框中选择“ Projects” 标签,
31、出现“Project”对话框。(2. 选 择 工 程 类 型 为 “ Win32 Console Application” , 这 时 , 在 右 边 的Platforms选框中就会出现Win 32 。(3. 输入工程名字。在“Project name”选框中输入所指定的工程文件名字,例如: 1st 。(4. 输入路径名。在“Location”选框中,输入你将要把所建立的工程文件放入何处的路径名。例如,要将工程文件放在E 盘下已建立好的子目录E:sw1001子目录中,所以该选取路径为:E:sw10011st。选择 “OK”按钮,该工程文件已建立。精选学习资料 - - - - - - - - -
32、 名师归纳总结 - - - - - - -第 16 页,共 20 页个人资料整理仅限学习使用图 1 创建新的工程文件建立源文件再次选择 “File ”菜单中的 “New ”选项,在四个标签中选择“File ”标签,在其对话框选项中,选择“C+ Source File” ,并在右边的Add project的选择框内打勾,激活其下面的选项,然后在File框内输入源文件名如1st ),单击“OK ”按钮,出现编辑屏幕,即可编写程序. 选择“ Build ”菜单,单击下拉菜单中的“Compile 1st.cpp”,这时系统开始对当前的源程序进行编译,在编译过程中, 将所发现的错误显示在屏幕下方的“Bu
33、ild ”窗口中。根据错误提示,修改程序后再重新编译,如还有错误,再继续修改、编译,直到没有错误为止。(2. 编译无误后进行连接,这时选择“Build ”菜单中的 “Build 1st.exe”选项。同样,对出现的错误要进行更改,直到编译连接无错为止。这时,在“Build ”窗口中会显示如下信息:1st.obj- 0 error(s, 0 warning(s,说明编译连接成功,并生成以源文件名为名字的可执行文件. 运行程序,选择“Build ”菜单中的“! Execute 1st.exe”选项。这时,会出现一个“MS-DOS ”窗口,输出结果显示在该窗口中. 运行结束后,可以回到“File ”菜单,点击“ Close Workspace”选项,关闭当前文件窗口。若要编辑新的源程序,可以再次打开“File ”菜单,重新建立工程文件,步骤如上所述。也可以点击“File ”菜单中的“ Open Workspace ”选项,打开一个已经存在的源文件。图 4 编辑运行源程序精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 19 页,共 20 页个人资料整理仅限学习使用图 5 执行后的结果呈现精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 20 页,共 20 页