2011高级语言程序设计实验任务书(4)

2019-03-11 10:20

高级语言程序设计实验任务书

ave= ; printf (\ printf (\ for (i=0; i

if ( ) printf(\}

8. 综合编程题:打印如下杨辉三角形

1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

编程点拨:

杨辉三角形有如下特点: ① 只有下半三角形有确定的值; ② 第一列和对角线上的元素值都是1;

③ 其它元素值均是前一行同一列元素与前一行前一列元素之和。第16页

高级语言程序设计实验任务书

实验五 函数与编译预处理

一、实验目的

1. 掌握定义函数的方法。

2. 掌握函数实参与形参的对应关系以及“值传递”的方法。 3. 掌握函数的嵌套调用和递归调用的方法。

4. 掌握全局变量和局部变量,动态变量、静态变量的概念和使用方法。

二、实验内容和步骤

1. 阅读程序,通过调试该程序,熟悉函数的调用方法及单步跟踪键。 #include void main()

{ void fun(int i, int j, int k); int x,y,z; x=y=z=6; fun(x,y,z);

printf(\}

void fun(int i, int j, int k) { int t; t=(i+j+k)*2; printf(\}

2. 阅读程序注意函数调用过程中形参、实参的关系。 #include void main() { int x=10,y=20;

void swap (int ,int);

printf(\swap(x,y);

printf(\ }

void swap (int m,int n) { int temp;

printf(\temp=m;m=n;n=temp;

printf(\}

把用户自定义函数swap()中的形式参数m和n对应改成x和y,使其与实参变量同名,再用F7

第17页

高级语言程序设计实验任务书

跟踪程序的运行,看看有什么变化。

相关知识:形参具有“用之则建,用完则撤”的特点。在函数定义时,函数名后面圆括号内的参数称为形参;在函数调用时,函数名后面圆括号内的参数称为实参。对于实参,在调用函数中对其进行定义时,不仅指明它的类型,而且系统还为其分配存储单元。而对于形参,定义时仅仅只是指明它的类型,并不在内存中为它们分配存储单元,只是在调用时才为其分配临时存储单元,函数执行结束,返回调用函数时,该存储单元立即撤销。

3. 程序是实现求素数的,请填空完成该程序,并上机运行测试。 #include #include void main() { int m;

; /* 申明求素数函数 */ printf(\scanf(\

; /* 调用求素数函数 */ }

void prime(int n) { int i,k; k=sqrt(n); for(i=2;i<=k;i++)

if (n%i==0) break; if(i>=k+1)

printf(\else printf(\ }

4. 程序的功能是从键盘上输入的若干个数并求出最大值。请填空完成该程序。

#include void main( ) { int i;

int s[10], max;

/* Findmax()函数的申明 */ ; printf(\ /* 输入10个数据到s数组中 */ ; /* 调用Findmax函数 */ ;

for (i=0;i<10; i++)

printf(\

第18页

高级语言程序设计实验任务书

}

printf(\ max is %d \

int Findmax( int x[ ], int n ) { int max,i; max=x[0]; for ( i=1; i

相关知识:练习形参是数组的函数申明、调用格式;复习数组的输入方法。

5. 程序的功能是从键盘上输入的若干个数按升序排序。请调试检查该程序中的错误,程序如下:

#include void main( ) { int i , k; }

void sort( int x[n], int n ) { int i, j, temp,min; for ( i=0; i

for(j=i+1;j

if ( x[j] < x[min])

min=j; float s[100], j ; printf(\for (i=0; scanf(\

s[i]=j; sort(s, i);

for (k=0; k

printf( \printf(\

if(min!=i) { temp=x[i]; x[i]=x[min]; x[min]=temp; } } }

错误提示:形参和实参的数据类型不一致;一般形参数组在说明时不指定数组的长度,而

第19页

高级语言程序设计实验任务书

仅给出类型、数组名和一对方括号;用户自定义函数sort()没有申明过。

注意:for (i = 0; scanf(\这一行中for语句第二个表达式的使用形式,此处用了scanf()函数的出错来结束输出循环。请读者查一下教材后面的附录,看看什么时候scanf()函数返回0,此时就可以结束循环。

6. 阅读如下递归程序,其功能是什么?上机调试。

#include void main( ) { int m, k;

void dtoo( int n ,int r );

printf(\

scanf(\ printf( \ a number in (2,8,16):\ scanf(\

dtoo(m,k);

}

void dtoo( int n ,int r ) { if(n>=r) dtoo(n/r,r); printf(\ }

7.预习下面程序,写出预习结果,上机验证并写出分析。 变量的作用范围

# define LOW 10 # define HIGH 5 # define CHANGE 2 int i = LOW ; #include void main( )

{ int workover ( int i ) , reset ( int i ); int i = HIGH ; reset ( i / 2) ;

printf(\ reset ( i = i / 2) ; printf(\ reset ( i / 2) ;

printf(\ workover ( i );

printf(\ }

第20页


2011高级语言程序设计实验任务书(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:-信息提示

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: