第6章+函数文档格式.docx

上传人:b****3 文档编号:17528846 上传时间:2022-12-07 格式:DOCX 页数:12 大小:19.49KB
下载 相关 举报
第6章+函数文档格式.docx_第1页
第1页 / 共12页
第6章+函数文档格式.docx_第2页
第2页 / 共12页
第6章+函数文档格式.docx_第3页
第3页 / 共12页
第6章+函数文档格式.docx_第4页
第4页 / 共12页
第6章+函数文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

第6章+函数文档格式.docx

《第6章+函数文档格式.docx》由会员分享,可在线阅读,更多相关《第6章+函数文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

第6章+函数文档格式.docx

scanf("

%d"

&

a);

b=prime(a);

if(b==1)

printf("

thenumberisaprimenumber."

else

thenumberisnotaprimenumber."

}

intprime(inta){……}

实验二求最大公约数与最小公倍数

熟练函数的嵌套调用。

编写两个函数,分别求两个正整数的最大公约数和最小公倍数,结果作为函数返回值返回。

在main函数中实现输入与输出。

以6_2.c命名本程序并上交。

voidmain()

intgongyueshu(inta,intb);

intgongbeishu(inta,intb);

inta,b,c,d;

pleaseinputtwointegernumbers:

"

%d%d"

a,&

b);

c=gongyueshu(a,b);

d=gongbeishu(a.b);

gongyueshuis%d\ngongbeishuis%d"

c,d);

intgongyueshu(inta,intb)

{……}

intgongbeishu(inta,intb)

【实验提示】

可以在最小公倍数中嵌套调用最大公约数函数。

实验三报数问题

掌握数组和函数的应用。

m个人围成一圈,1,2,3循环报数,报到3的人退出,并将退出的序号依次存到数组p中,包括最后一个人的序号。

到最后只余1人,输出最后留下的是第几号(最初的序号,以1起始)。

若m=6,则输出n=1<

CR>

364251;

若m=10,则输出n=4<

36927185104;

若m=100,则输出n=91<

369……1005891。

函数intfun(intn,intp[])实现上述功能,返回n个人中最后余的1人的起始序号,并将退出的序号顺序写入p指向的数组中。

以6_3.c命名本程序并上交。

intbaoshu(intn,intp[])

voidmain()

{intm,a[10000],i,num;

scanf("

&

m);

num=fun(m,a);

n=%d\n"

num);

for(i=0;

i<

m;

i++)

%8d"

a[i]);

实验四数组中插入元素的函数

学习在一维数组中插入元素的方法。

参照给定的主函数,编写一个函数voidinsert(inta[],intn,inty),它的功能是:

把y值插入到有n个数的有序的a数组中,y的值从键盘读入。

插入后,数组中的数仍然有序。

以6_4.c命名本程序并上交。

对照下面三种情况运行程序:

1)插在最前2)插在最后3)插在中间。

inta[11]={2,4,6,8,10,12,14,16,18,20};

voidinsert(inta[],intn,intnumber);

inti,x;

originalarrayis:

for(i=0;

10;

%5d"

insertanewnumber:

x);

insert(a,10,x);

11;

%d"

voidinsert(inta[],intn,intnumber)

若输入数11,输出246810111214161820

输入数1,输出12468101214161820

输入数33,输出246810121416182033

1.若x插入数组的中间,插入后此元素之后的数,依次后移一个位置。

例如查找到11应该放置在a[5]的位置上,原来a[5]的数据12以及其后的所有元素后移一位。

2.后移元素的过程,应该注意从数组的末尾开始依次a[n]=a[n-1],a[n-1]=a[n-2]……

 

实验五从数组中删除数据

深入理解数组做函数参数。

编写函数intdelnum(inta[],intnum,intn),用于在长度是n的数组a中,删除一个值为num的元素。

删除后数组的长度作为函数的返回值返回。

注意,num在数组中可能不只一个。

请以6_5.c命名本程序并上交。

#defineN10

{inta[N],num;

scanf(“%d”,&

num);

输入N个数到数组a中;

调用delnum函数在数组a中删除指定的数num;

输出删除了num后的数组a;

定义并编写delnum函数

实验六求数组逆序的函数

熟练掌握操作数组的方法及数组名作函数参数的使用方法。

从键盘输入int型数组a[20]的20个元素值,编写一个函数实现对数组元素数据的逆序放置。

即第1个元素与第20个元素互换,第2个元素与第19个元素互换,……,第10个元素与第11个元素互换。

请完善下述程序并以6_6.c命名本程序。

voidnixu(inta[],intn);

/*逆序函数声明*/

inta[20],x;

for(x=0;

x<

20;

x++)

a[x]);

Beforeinvert,thearrayis:

a[x]);

printf(“\n”);

nixu(a,20);

/*调用逆序函数,注意实参是什么*/

\nAfterinvert,thearrayis:

voidnixu(inta[],intn)

inti,t;

for(i=0;

________;

i++)

{t=a[i];

________;

a[n-1-i]=t;

}

实验七全局变量与局部变量

掌握全局变量和局部变量在程序中的关系。

下面的程序运行后的结果是_____________。

intx=3,y=5;

intmax(intx,inty)

intz;

z=x>

y?

x:

y;

return(z);

intx=8;

printf("

max=%d\n"

max(x,y));

实验八变量的静态存储方式

熟悉static定义静态变量的用法。

下面程序运行后的输出结果是_____________。

varfunc()

{intvar=0;

staticintstatic_var=0;

\40:

varequal%d\n"

var);

staticvarequal%d\n"

static_var);

var++;

static_var++;

{inti;

3;

varfunc();

实验九宏的使用

掌握宏的定义和使用。

作业1.#define命令练习,写出运行结果。

#include"

stdio.h"

#defineTRUE1

#defineFALSE0

#defineSQ(x)((x)*(x))

intnum;

intagain=1;

Programwillstopifinputvaluelessthan50.\n"

while(again)

{

Pleaseinputnumber==>

Thesquareforthisnumberis%d\n"

SQ(num));

if(num>

=50)

again=TRUE;

else

again=FALSE;

作业2.编写宏,求两个数的最大值。

请以6_9.c命名本程序并上交。

习题

1.有如下程序

longfib(intn)

{if(n>

2) return(fib(n-1)+fib(n-2));

else return

(2);

{printf("

%d\n"

,fib(3));

该程序的输出结果是( )

A、2B、4C、6D、8

2.在C语言中,函数的隐含存储类别是()

A、autoB、staticC、externD、无存储类别

3.以下所列的各函数首部中,正确的是()

A、voidplay(var:

Integer,varb:

Integer)

B、voidplay(inta,b)

C、voidplay(inta,intb)

D、Subplay(aasinteger,basinteger)

4.以下程序的输出结果是()

A、0B、29C、31D、无定值

fun(intx,inty,intz)

{z=x*x+y*y;

main()

{inta=31;

fun(5,2,a);

,a);

5.以下程序的输出结果是()

 f(intb[],intm,intn)

{intI,s=0;

for(i=m;

n;

i=i+2)s=s+b[i];

returns;

main()

{intx,a[]={1,2,3,4,5,6,7,8,9};

x=f(a,3,7);

x);

A、10B、18C、8D、15

6.以下程序的输出结果是()

A、1B、2C、3D、4

longfun(intn)

{longs;

if(n==1||n==2) s=2;

elses=n-fun(n-1);

returns;

%ld\n"

fun(3));

7.以下程序的输出结果是()

 intf()

{staticinti=0;

ints=1;

s+=i;

i++;

returns;

 main()

 {inti,a=0;

5;

i++) a+=f();

,a);

A、20B、24C、25D、15

8.以下程序的功能是调用函数fun计算:

m=1-2+3-4+…+9-10,并输出结果。

请填空。

int 

fun( 

n)

m=0,f=1,i;

for(i=1;

=n;

m+=i*f;

f= 

_____________ 

;

return 

main()

m=%d\n"

 

_________ 

9.以下程序输出的最后一个值是_____________

intff(intn)

{staticintf=l;

f=f*n;

returnf;

=5;

i++)printf("

,ff(i));

10.以下函数的功能是:

求x的y次方,请填空。

doublefun(doublex,inty)

doublez;

for(i=1,z=x;

i<

i++) z=z*_______;

returnz;

11.以下正确的说法是()

A、用户若需要调用标准库函数,调用前必须重新定义

B、用户可以重新定义标准库函数,如若此,该函数将失去原有定义

C、系统不允许用户重新定义标准库函数

D、用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。

12.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是()

A、地址传递

B、值传递

C、有实参传给形参,再由形参传给实参

D、由用户指定传递方式

13.下面程序的输出是()

inti=2;

printf(“%d%d%d”,i*=2,++i,i++);

A、8,4,2B、8,4,3

C、4,4,5D、4,5,6

14.以下不正确的说法是()

A、register变量可以提高变量使用的执行效率

B、register变量由于使用的是CPU的寄存器,其数目是有限制的

C、extern变量定义的存储空间按变量类型分配

D、全局变量使得函数之间的“耦合性”更加紧密,不利于模块化的要求

15.C语言函数返回类型的默认定义类型是____________

16.函数的实参传递到形参有两种方式:

____________和____________。

17.C语言变量按其作用域分为____________和____________。

按其生存期分为____________和____________。

18.已知函数定义:

voiddothat(intn,doublex){……},其函数声明的两种写法为____________,____________。

19.C语言变量的存储类别有____________,____________,____________和____________。

20.在一个C程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要定义的存储类别为____________。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1