2022年程序设计语言实验指导书 .pdf
程序设计语言C实验指导书适用专业:计算机科学与技术软件工程上海应用技术学院2009-2-20 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 16 页 - - - - - - - - - I 目录实验一顺序结构程序设计. 1实验二分支结构程序设计. 2实验三循环结构程序设计一. 3实验四( 1)循环结构程序设计二. 4实验四( 2) 循环结构程序设计三. 5实验五数组 . 6实验六数组和字符串. 7实验七函数 . 8实验八函数 . 9实验九指针 . 10 实验十结构体 . 11 实验十一文件 . 12 实验十二综合 . 13 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 16 页 - - - - - - - - - 程序设计语言实验指导书第 1 页实验一顺序结构程序设计实验目的:1.掌握 C 语言程序结构。2.掌握变量的定义和使用。3.掌握输入输出函数的使用。4.掌握赋值语句的使用。内容:1.从键盘输入两个数,计算两个数的和,然后输出。注意:带下划线的内容表示是从键盘输入的,实际上机时并不显示下划线,其余的内容是程序输出的。2.从键盘输入一个华氏温度,请转换成摄氏温度后输出。3.电路图如下所示,从键盘输入5 个电阻的电阻值,计算并输出总的电阻值。R1 R2 R3 R4 R5 A123 B456 SUM=A+B=123+456=579 请输入一个华氏温度:12.34 和华氏温度12.34 度相对应的摄氏温度为-10.92 度请输入 r1、r2、r3、r4 和 r5(使用空格分隔) : 1.1 2.2 3.3 4.4 5.5 总电阻R= 0.89 欧姆名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 16 页 - - - - - - - - - 程序设计语言实验指导书第 2 页实验二分支结构程序设计实验目的:1.掌握逻辑表达式的使用方法。2.掌握 if 和 switch 语句的使用方法。3.掌握一些简单的算法。内容:1.有下列函数,写一段程序,输入x 的值,输出y 的值x (x1) y= 2x-1 (1=x=10) 2.输入一个不超过6 位的正整数, 输出该数的最高位和最低位,如果该数是一位数,则输出该数。然后再输出该数是几位数。程序需要对输入的数进行合法性检查,对小于0和大于 6 位的数要有提示。3.输入一个0 到 100 的百分制成绩,转换成五级制A、B、C、D 和 E。程序中首先需要对输入的数进行合法性检查,对小于0 和大于100 的数要有提示,然后转换部分使用switch 语句实现。X123 1,3 N3 X 2 2 N 1 X 2 Error X6 分数 85 等级 B 分数 -5 分数小于0,非法!分数 120 分数大于100,非法!X-3 Y-3 X1 Y1 X5 Y9 X10 Y19 X40 Y109 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 16 页 - - - - - - - - - 程序设计语言实验指导书第 3 页实验三循环结构程序设计一实验目的:1.掌握循环结构的使用方法。2.掌握 while 和 for 语句的使用方法。3.掌握程序单步调试的方法。4.掌握一些简单的算法。内容:1.公式的计算201iisum101)1(iiisumx=N! 2.输入最多 10 个整数,找出最大值、最小值,并计算平均值。3.输入一个不超过6 位的正整数, 分别输出该数的每一位,并用逗号分隔, 如果该数是一位数,则输出该数。然后再输出该数是几位数。程序需要对输入的数进行合法性检查,对小于 0 和大于 6 位的数要有提示。N5 n1 1 n2 3 n3 5 n4 7 n5 9 Max=9 Min=1 Avg=5 X123 1,2,3 N3 X2 2 N1 X 2 Error X6 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 16 页 - - - - - - - - - 程序设计语言实验指导书第 4 页实验四( 1)循环结构程序设计二实验目的:1.掌握单重循环和多重循环结构的使用方法。2.掌握程序单步调试的方法。3.掌握一些简单的算法。内容:1.输入 N,计算公式Niiisum1)1(的值。2.输入一个正整数n( 1 n 200) ,输出所有的整数对,其相乘的积等于n。3.编程打印数字金字塔。N=5 .1 .121 .12321 .1234321 .123454321 N=20 1*20=20 2*10=20 4*5=20 N=0 Error N=300 Error N=3 .1 .121 .12321 N=5 sum=(1+2)+(2+3) +(3+4)+(4+5) +(5+6) =35 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 16 页 - - - - - - - - - 程序设计语言实验指导书第 5 页实验四( 2) 循环结构程序设计三实验目的:1.掌握单重循环和多重循环结构的使用方法。2.掌握程序单步调试的方法。3.掌握一些简单的算法。内容:1.输入 N,计算公式Niijjis u m110) )(的值,其中N0。2.每个大于 1 的数的立方都可以表示成一连续奇数之和,试证实2 到 10 的数都满足这样的规律。3.用牛顿迭代法求方程在下面方程在1.5 附近的根:不做 !4.2(3)=8 3+5=8 3(3)=27 7+9+11=27 4(3)=64 1+3+5+7+9+11+13+15=64 5(3)=125 21+23+25+27+29=125 xn=1.5 x=nnn.nnn y=f(nnn.nnn)=nnn N=4 sum=1 +2+3 +3+4+5 +4+5+6+7 =40 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 16 页 - - - - - - - - - 程序设计语言实验指导书第 6 页实验五数组实验目的:1.掌握一维数组和二维数组的定义、赋值和输入输出的使用方法。2.掌握与数组有关的算法。内容:1.输入 n 及 n 个整数 (nDate2. S1 Name=wang Score=60 80 90 S2=ZHANG Score=70 78 87 S3=Li Score=95 66 89 S4=yANG Score=67 89 90 S5= No Name MAT PHY CHM AVG Y/N 3 Li 95 66 89 83 Y 1 Wang 60 80 90 77 4 Yang 67 89 90 82 Y 2 Zhang 70 78 87 78 S1=abc S2=123456 Length of S1=3 Length of S2=6 S1+S2=abc123456 S1=abcdef S2=1234 Length of S1=6 Length of S2=4 S2+S1=1234abcdef 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 16 页 - - - - - - - - - 程序设计语言实验指导书第 8 页实验七函数实验目的:1.掌握函数定义的方法。2.掌握函数调用、实参和形参的传递方法。3.掌握变量作用域和变量类型的使用方法。内容:1.从键盘输入数行数据,每行三个正整数n1、n2 和 n3,三个 0 表示输入结束。每输入完一行,输出n1 和 n2 之间(包括n1 和 n2)能被 n3 整除的数的个数。要求用一个函数实现统计整除数个数的功能,其首部为: int aliquot(int n1, int n2, int n3) 2.求组合数。计算)!( !),(nmnmnmC其中计算C(m,n)的函数首部为: int cmn(int m, int n) 计算阶乘的函数首部为: int fac(int n) 并用 cmn 函数打印杨辉三角形。3.从键盘输入最多50个整数, 0 表示结束。将该批数据存入一个数组中,然后调用ReverseAndCount函数将数据在数组中的存放次序颠倒并统计出大于平均数的个数,输出结果。ReverseAndCount函数的功能为颠倒数据存放的次序和统计大于平均数的个数,其首部为:int ReverseAndCount(int n, int s) 如果为了程序的结构,你还可以添加其他的子程序。如,可以编写计算数组中数据的平均值的函数,还可将ReverseAndCount函数分成两个子程序实现等。1 2 3 0 2 10 2 5 0 0 0 1 2 3 4 5 0 5 numbers inputted. Reverse: 5 4 3 2 1 Count: 2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 16 页 - - - - - - - - - 程序设计语言实验指导书第 9 页实验八函数实验目的:1.掌握函数调用、实参和形参的传递方法。2.掌握变量作用域和变量类型的使用方法。3.掌握递归子程序的编写和使用方法。内容:1.从键盘输入数行数据,每行最多20 个正整数,每行最后用0 表示行结束。一个以0 开始的行表示输入结束。每输入完一行, 输出该行数据的个数、平均值和有几个数据大于该行的平均值。用一个函数实现数据输入的功能,其首部为: int input(int s) input的参数为输入的数据,函数返回值大于0 表示该行输入的数据个数,0 表示输入结束。用一个函数实现求平均值的功能,首部为: int Average(int n, int s) Average的参数是n 个数的数组,函数返回值为平均值。用一个函数实现统计大于平均值的数据个数,首部为: int Count(int avg, int n, int s) 2.组合问题,由组合的基本性质可知: (1)C(m,n)=C(n-m ,n) (2)C(m,n+1)=C(m,n)+C(m-1 ,n) 公式 (2) 是一个递归公式,一直到满足C(1,n)=n 为止。当 n d:mydocmyagain.txt copied. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 16 页 - - - - - - - - - 程序设计语言实验指导书第 13 页实验十二综合 (实验不做 ) 实验目的1.提高综合应用流程控制语句的能力;2.提高对复杂流程结构的程序的编写能力和调试能力;3.掌握利用数组的组织存储数据以及一些实用的算法。4.掌握对文件的操作。实验内容编写和调试一个具有能对用一维数组建立的顺序表进行各种操作的应用程序。实验步骤1. 写程序显示如下菜单1. 插入 (插入一个数据 ) 2. 删除 (删除一个数据 ) 3. 排序 (排序) 4. 输出 (输出表中所数据 ) 0. 退出 (退出程序 ) 2. 用输入函数输入菜单选择的数字(0-4)对其他输入要提示错误信息流程控制结构如图 1 所示。3顺序表的数据类型自选, 可以先使用基本类型, 在此基础上修改使用结构体类型。4每个功能模块要求用函数实现。5在菜单中增加“写入文件”和“读取文件”选项,能将顺序表中的数据写入文件和从文件读取数据。6 (选做)使用链表来实现。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 16 页 - - - - - - - - - 程序设计语言实验指导书第 14 页1 2 3 4 0 其他显示菜单等待输入删除插入出错处理排序退出输出结束退出?N Y 开始图 1名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 16 页 - - - - - - - - -