好文档 - 专业文书写作范文服务资料分享网站

C语言信息与计算科学 实验六

天下 分享 时间: 加入收藏 我要投稿 点赞

数学与软件科学学院 实验报告 课程名称:C语言程序设计 专业:信息与计算科学 实验编号: 实验六 指导教师:

姓名: 学号: 实验得分

一、实验目得

(1) 了解与掌握C语言环境下模块化程序设计得基础---—基于函数模块得程序设计技术;

(2) 复习C语言程序得基本结构特点,了解基于函数模块得程序模块及其调用关系、过程;

(3) 函数得声明、定义、使用方法; (4) 对各种变量属性得使用方法;

(5) 对C语言中常用得预编译命令得基本掌握。

二、实验内容

函数得声明、定义与使用方法。具体实例如下: (1) 编写一个在屏幕上画一条正弦曲线得函数;

(2) 编写一个函数,它可以求出给定数得所有因子,如下形式显示其结果:72=2*2*2*3*3;

(3) 分别写出一个求N个数得最大公约数与最小公倍数得递归函数; (4) 试编制n碟片hanoi塔得问题求解函数,并利用它求解4个盘片得结果;

(5) 试编写求n!得函数,并求n=7得结果。

2。有关变量得属性实验(静态、动态、全局、局部等方面)。

(1) 仔细分析以下程序得执行结果,然后上机运行如下程序段,并对各个变量得属性及其使用结果进行比较分析:

main()

{ /******(a)******/ int x=1;

{/******(b)******/ void prt(void); int x=3; prt();

printf("The second x is %d\\n\ }/******(c)******/

printf(\x is %d\\n",x); }

void prt(void)

{ /******(d)******/ int x=5;

printf(\ third x is %d\\n”,x); }/******(e)******/

(2) 仔细分析下列程序,就是否有错误之处?然后分析其执行结果,上机验证并对各个变量得存储属性及其结果进行比较分析:

#define LOW 11 #define HIGH 23 #define CHANGE 12 int i=LOW; main() {

int workover(int i); int reset(int i); int i=HIGH; reset(i/2、5);

printf("i=%d\\n",i); reset(i=i/3);

printf(\=%d\\n\ reset(i/2);

printf(\=%d\\n”,i); workover(i);

printf(”i=%d\n”,i); }

workover(int i); {

i=(i%i++)*((i*i)/(2*i)+4); printf(”i=%d\\n”,i); return (i); }

reset(int i); {

i=i〈=CHANGE?LOW:HIGH++; return (i); }

(3) 以下程序希望打印5行\*****”,能否做到?为什么?

int i; main() {

void prt();

for (i=0;i<5;i++) prt(); }

void prt() {

for (i=0;i<5;i++) printf("%c”,'*’); printf(\"); }

(4) 分析、编辑并执行以下程序,如果有错,请指出其错误原因,同时需要指出各个变量得存储属性。

/**********/ int last(void); int new(int);

int reset(void); exter int i; main(void) {

int i,j; i=reset();

for (j=1;j〈=3;j++) {

printf(“i=%d\\tj=%d\\n”,i,j);

printf(“next(i)=%d\t”,next(i)); printf(“last(i)=%d\\n\st()); printf(“new(i+j)=%d\\n”,new(i+j)); }

int next(void) {

return (i++); } }

/**********/ static int i=10; fast(void) {

rturn (i-=1_); }

new(int i) {

static int j=—5; return (i=j+=++i); }

/**********/ extern int i; reset() {

return (i); }

3.预编译命令实验。具体实例如下: (1) 一般宏替换实验; (2) 带参数得宏替换;

三、实验准备

(1) 编写所选实验题目得程序代码与流程图; (2) 检查源程序并给出其可能得运行结果说明。

四、实验步骤及结果

1、(1) 编写一个函数,它可以求出给定数得所有因子,如下形式显示其结果:72=2*2*2*3*3; 程序代码如下:

运行结果:

分析:此程序根据最小公倍数与辗转相除法写、

(2)分别写出一个求N个数得最大公约数与最小公倍数得递归函数;

运行结果:

分析: 此程序采用得就是辗转相除法,根据数学上面得只就是求得最大公约数以及最小公倍数。

(3)试编制n碟片hanoi塔得问题求解函数,并利用它求解4个盘片得结果; 程序如下:

C语言信息与计算科学 实验六

数学与软件科学学院实验报告课程名称:C语言程序设计专业:信息与计算科学实验编号:实验六指导教师:姓名:学号:实验得分一、实验目得(1
推荐度:
点击下载文档文档为doc格式
91zyi56cnp47le14lopx1jxus0hl5300vz6
领取福利

微信扫码领取福利

微信扫码分享