77范文网 - 专业文章范例文档资料分享平台

c语言上机指导(3)

来源:网络收集 时间:2019-01-05 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

实验四 循环结构程序设计

[实验目的]

1. 熟练掌握三种循环语句的应用。 2. 熟练掌握循环结构的嵌套。

3. 掌握break和continue语句的使用。 4. 练习调试与修改程序。

[实验内容]

1. 分别用while语句、do-while语句编写程序,计算e≈1+1/1!+1/2!+...+1/n! 实验步骤与要求: (1) 用单重循环编写程序

(2) 使误差小于给定的ε,设ε=10-5

(3) 除了输出e以外,同时还要输出总的项数n

2. 如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”。例如6的因子是1,2,3,且6=1+2+3,因此6是完数。编写程序找出1000之内的所有完数及这些完数的和。 实验步骤与要求: (1) 要求使用for循环

(2) 输出形式为:完数1+完数2...=和值 算法说明: (1) sum=0,m=2

(2) 当m<=1000时,反复执行(2.1)(2.2)(2.3)(2.4),否则转(3) (2.1)k=m/2,n=0,j=1

(2.2)当j<=k时,反复执行(2.2.1)(2.2.2) ,否则转(2.3) (2.2.1) if j是m的因子则执行n=n+j (2.2.2) j++

(2.3) if m=n 则输出完数m, sum=sum+m (2.4)m++ (3)输出m值

3. 输入并运行下面的程序,观察程序的运行结果。 #include\main( ) {int n; while (1)

{printf(\Enter a number:\scanf(\if (n%2==1) {printf(\continue;} break;

}

printf(\}

[内容讨论]

1. 小结三种形式的循环使用的区别。 2.小结循环嵌套的规定和应用

实验五 模块化程序设计

[实验目的]

1.理解和掌握多模块的程序设计与调试的方法。 2.掌握函数的定义和调用的方法。 3.学会使用递归方法进行程序设计。

[实验内容]

1. 编写一个函数,判断一个数是不是素数。在主函数中输入一个整数,输出是否是素数的信息。

实验步骤与要求:

(1) 编写一个函数prime(n),返回给定整数n是否为素数。

(2) 编写一个主函数,输入一个整数,调用(1)中的函数,判断此整数是否为素数,并输出结果。 (3) 对于属于多函数程序,可以采用每个函数分别进行编辑、编译的方法,然后再连接、运行。如果编译有错时,可分别修改,这样便于调试。实验2和实验3也可以使用这样的调试方法。 2. 用梯形法求函数的定积分。 实验步骤与要求:

(1) 编制一个函数sab(a,b,n),其功能是求函数f(x)在[a,b]上的定积分,其中n为区间[a,b]的等分数。要求该函数在一个独立的文件中。

(2) 编制一个主函数以及计算被积函数值的函数f(x),在主函数中调用(1)中的函数计算并输出下列积分值。要求主函数与函数f(x)在同一个文件中。

(3) 编制另一个主函数以及计算被积函数值的函数f(x),在主函数中调用(1)中的函数计算并输出下列积分值。要求主函数与函数f(x)在同一个文件中。 说明:

用梯形法求定积分,梯形公式为 s=h[f(a)+f(b)]/2+hf(a+kh)其中,h=(b-a)/n

3. 用递归方法编写程序,求n阶勒让德多项式的值,递归公式为 1 (n=0) pn(x)=x (n=1)

((2n-1)xpn-1(x)-(n-1)pn-2(x))/n (n>1) 实验步骤与要求:

(1) 根据递归公式编制计算n阶勒让德多项式的递归函数p(n,x)。

(2) 编制一个主函数,由键盘输入n,x,调用(1)中的函数计算n阶勒让德多项式的值。 (3) 输入(n,x)=(4,2)运行该程序。然后自定义几组数据再运行该程序。 程序调试说明:

多模块的调试除了可以采用前面实验中采用的各种调试方法以外,还可以采用“回声打印”的调试方法。当函数之间要传递的数据较多时,容易出错。这时,在有关的输入数据之后加上输出语句,以便反映数据输入的情况。在函数之间有数据传递后,再用输出语句把传递后的数据输出,这样可以找到数据的错误处,以便分析原因,

[问题讨论]

1. 小结函数的定义及调用方法。 2. 小结函数中形参和实参的结合规则。

3. 编写和调试包含多模块的程序时,容易出现什么样的错误?根据自己的实践总结一下。

实验六 使用数组结构的程序设计

[实验目的]

1. 进一步掌握模块化程序设计方法。 2. 使用一维数组和二维数组的进行程序设计。 3. 练习并掌握数组作为函数参数的用法。 4. 至少掌握一种排序方法。

[实验内容]

1. 编写程序,对n个数从小到大排序。 实验步骤与要求:

(1) 任选一种排序方法进行编程。 (2) 用sort()函数进行排序。

(3) 在主函数中输入数据,调用sort()函数,分别打印出排序前和排序后的结果。

2. 找出一个二维数组中的鞍点,即该位置上的元素在所在行为最大,在所在列为最小。如果没有这样的元素,请打印出相应的信息。 实验步骤与要求:

(1) 画出此题的流程图。

(2) 编写程序求矩阵中所有的鞍点并上机调试。 (3) 输入的数据和输出的结果要详细记录。 3.统计一个班的学生成绩。要求程序具有如下功能: (1) 每个学生的学号和四门功课的成绩从键盘读入。 (2) 计算每个学生的总分和平均分。

(3) 按平均成绩进行排序,输出排序后的成绩单(包括学号、四门功课的成绩和平均分),给出名次。如果分数相同,则名次并列,其他学生名次不变。 实验步骤与要求:

(1) 每个功能为一个独立的函数。

(2) 调试程序时,可先输入少量学生的成绩作为实验数据。如可输入3名学生4门课成绩: 学号 成绩

9701 67,72,65,80 9702 75,82,94,95 9703 70,74,80,76

[问题讨论]

1.什么情况下使用数组?使用数组有什么好处?

2.排序的方法有很多,如冒泡法、选择法、希尔法等,请比较它们的优劣。

实验七 使用指针结构的程序设计

[实验目的]

1.掌握指针变量的定义与引用。

2.熟练使用函数指针、数组指针、字符串指针编写应用程序。

[实验内容]

1. 写一函数,求一个字符串的长度。 实验步骤与要求:

(1) 本部分习题要求全部用指针完成;

(2) 在main函数中输入字符串,并输出其长度; (3) 本题不能使用strlen()函数; 方法说明:

在主函数中定义一个指向字符串的指针变量pstr,并将输入的字符串的首地址赋值给pstr,然后调用求字符串长度的函数strlenth(char *p),得到字符串的长度。在函数strlenth(char *p)中,判断*p是否为’\\0’,如果不为’\\0’,则进行len++的操作,直到遇到’\\0’为止。然后返回len值。 求字符串长度的函数strlenth(char *p)算法如下: 1.定义int len=0;

2.当*p!=’\\0’时,重复执行(2.1)(2.2),否则算法终止。 (2.1)len=len+1 (2.2)p++ 3.return(len)

2. 编写一个函数,将数组中n个数按反序存放。 实验步骤与要求:

(1) 在主函数中输入10个数,并输出排好序的数。 (2) 编写函数invert()将10个数按反序存放。

3. 设一个函数,调用它时,每次实现不同的功能:(1)求两个数之和;(2)求两个数之差;(3)求两个数之积。实验步骤与要求:

(1)在主函数中输入2个数a,b,并输出a,b的和、差和乘积。 (2)分别编写函数add()、sub()、mul()计算两个数的和、差、积。

(3) 编写函数process(),分别调用函数add()、sub()、mul()。

[问题讨论]

实验八 使用结构体的程序设计

[实验目的]

1.掌握结构体类型和结构体变量的定义。 2.掌握结构类型变量的定义和使用;

3. 掌握链表的概念,初步学会对链表进行操作; 4. 掌握共用体的概念和使用。

[实验内容]

1.有五个学生,每个学生的数据包括学号,姓名,三门课的成绩,从键盘输入五个学生的数据,要求打印出每个学生的平均成绩,以及最高分的学生的数据(包括学号,姓名,三门课的成绩,平均分数)。 实验步骤与要求:

用一个函数输入五个学生的数据;用一个函数求总平均分;用函数找出最高分学生数据,总平均分和最高分的学生的数据都在主函数中输出。

2.三个人围成一圈,从第一个人开始顺序报号1,2,3。凡报到“3”者退出圈子,找出最后流在圈子中的人原来的序号。

3.建立一个链表,每个结点包括:学号,姓名,性别,年龄。输入一个年龄,如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。

[问题讨论]

实验九 使用文件的程序设计

[实验目的]

1. 掌握文件建立的方法。

2. 掌握包含文件操作的程序设计和调试方法。

[实验内容]

1.从键盘输入一个字符串,,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件“test”中保存。输入的字符串以“!”结束。

2.建立一个磁盘文件“emploee”,内存放职工的数据。每个职工的数据包括:职工姓名、职工号、性别、年龄、住址、工资、文化程度。要求将职工号、职工名、工资的信息单独抽出来另建一个职工工资文件。 实验步骤与要求:

(1)调试程序,输入数据并运行程序。 (2)用type命令显示新建立的文件内容。

[问题讨论]

1. 缓冲文件系统和非缓冲文件系统的区别? 2.文件打开和关闭的含义?为什么要打开和关闭文件?

实验十 综合程序设计

[实验目的]

综合运用所学知识,编写实用程序。 [实验内容]

用结构体变量构成一简单的学生成绩处理表程序,每个学生数据包括学号、姓名和三门课的成绩,如下:

学号 姓名 数学 外语 计算机 9310010 刘小华 88 70 84 .. .. .. .. ..

实验步骤及要求:

1.程序的所有功能用菜单驱动;(非基本要求) 2.在main函数中输入学生数据;

3.在count函数中计算每个学生的平均成绩; 4.在sort函数中按学生的平均成绩排序;

5.在put函数中按下表格式建立磁盘报表输出文件输出学生成绩;

6.写出实验报告(要求源程序清单、输入的数据清单、报表输出文件的数据清单)。

7.把所有函数做成一个磁盘文件,文件名为xscjb.c,可执行文件名为xscjb.exe,磁盘报表输出文件名为file.txt。

学生成绩表

学号 姓名 数学 外语 计算机 平均成绩 名次 .. .. .. .. .. .. ..

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库c语言上机指导(3)在线全文阅读。

c语言上机指导(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/405932.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: