函数的参数及传递方式.docx

上传人:b****7 文档编号:10274711 上传时间:2023-02-09 格式:DOCX 页数:23 大小:19.34KB
下载 相关 举报
函数的参数及传递方式.docx_第1页
第1页 / 共23页
函数的参数及传递方式.docx_第2页
第2页 / 共23页
函数的参数及传递方式.docx_第3页
第3页 / 共23页
函数的参数及传递方式.docx_第4页
第4页 / 共23页
函数的参数及传递方式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

函数的参数及传递方式.docx

《函数的参数及传递方式.docx》由会员分享,可在线阅读,更多相关《函数的参数及传递方式.docx(23页珍藏版)》请在冰豆网上搜索。

函数的参数及传递方式.docx

函数的参数及传递方式

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

求100-999之间的水仙花数

说明:

水仙花数是指一个三位数的各位数字的立方和是这个数本身。

例如:

153=1^3+5^3+3^3)。

-------------------------------------------------------*/

#include

intfun(intn)

{inti,j,k,m;

m=n;

/***********SPACE***********/

【?

】;

for(i=1;i<4;i++)

{

/***********SPACE***********/

【?

】;

m=(m-j)/10;

k=k+j*j*j;

}

if(k==n)

/***********SPACE***********/

【?

】;

else

return(0);}

main()

{

inti;

for(i=100;i<1000;i++)

/***********SPACE***********/

if(【?

】==1)

printf("%disok!

\n",i);

}

答案:

======(答案1)======

k=0

======(答案2)======

j=m%10

======(答案3)======

return

(1)

======(答案4)======

fun(i)

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

统计一个字符串中的字母、数字、空格和其它字符的个数。

-------------------------------------------------------*/

#include

voidfun(chars[],intb[])

{

inti;

for(i=0;s[i]!

='\0';i++)

if('a'<=s[i]&&s[i]<='z'||'A'<=s[i]&&s[i]<='Z')

b[0]++;

/***********SPACE***********/

elseif(【?

】)

b[1]++;

/***********SPACE***********/

elseif(【?

】)

b[2]++;

else

b[3]++;

}

main()

{

chars1[80];inta[4]={0};

intk;

/***********SPACE***********/

【?

】;

gets(s1);

/***********SPACE***********/

【?

】;

puts(s1);

for(k=0;k<4;k++)

printf("%4d",a[k]);

}

答案:

======(答案1)======

'0'<=s[i]★&&★s[i]<='9'

======(答案2)======

s[i]★==★''

======(答案3)======

voidfun(chars[],intb[])

======(答案4)======

fun(s1,a)

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

在键盘上输入一个3行3列矩阵的各个元素的值(值

为整数),然后输出主对角线元素的平方和,并在

fun()函数中输出。

要求:

用for循环实现

------------------------------------------------*/

#include

void

main()

{

inti,j,s,a[3][3];;

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

{

for(j=0;j<3;j++)

scanf("%d",&a[i][j]);

}

s=fun(a);

printf("Sum=%d\n",s);

}

intfun(inta[3][3])

{

/**********Program**********/

/**********End**********/

}

答案:

----------------------

intsum;

inti;

sum=0;

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

sum=sum+a[i][i]*a[i][i];

returnsum;

----------------------

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

用冒泡法对数组a进行由小到大的排序。

-------------------------------------------------------*/

#include

voidfun(inta[],intn)

{

inti,j,t;

/***********SPACE***********/

for(j=0;【?

】;j++)

/***********SPACE***********/

for(i=0;【?

】;i++)

/***********SPACE***********/

if(【?

】)

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

}

main()

{

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

/***********SPACE***********/

【?

】;

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

printf("%3d",a[i]);

}

答案:

======(答案1)======

j<=n-1

======(答案2)======

i

======(答案3)======

a[i]>a[★i★+★1★]

======(答案4)======

fun(a,10)

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

数组名作为函数参数,求平均成绩。

-------------------------------------------------------*/

#include

floataver(floata[])/*定义求平均值函数,形参为一浮点型数组名*/

{

inti;

floatav,s=a[0];

for(i=1;i<5;i++)

/***********SPACE***********/

s+=【?

】[i];

av=s/5;

/***********SPACE***********/

return【?

】;

}

voidmain()

{

floatsco[5],av;

inti;

printf("\ninput5scores:

\n");

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

/***********SPACE***********/

scanf("%f",【?

】);

/***********SPACE***********/

av=aver(【?

】);

printf("averagescoreis%5.2f\n",av);

}

答案:

======(答案1)======

a

======(答案2)======

av

======(答案3)======

&sco[i]

======(答案4)======

sco

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

编写函数fun对主程序中用户输入的具有10

个数据的数组a按由大到小排序,并在主程序中输出

排序结果。

要求:

用for循环实现

------------------------------------------------*/

#include

void

intfun(intarray[],intn)

{

/**********Program**********/

/**********End**********/

}

main()

{

inta[10],i;

printf("请输入数组a中的十个数:

\n");

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

scanf("%d",&a[i]);

fun(a,10);

printf("由大到小的排序结果是:

\n");

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

printf("%4d",a[i]);

printf("\n");

}

答案:

----------------------

intk,j,t;

for(k=0;k

for(j=k+1;j

if(array[k]

{

t=array[k];

array[k]=array[j];

array[j]=t;

}

----------------------

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

编写函数fun将一个数组中的值按逆序存放,并在

main()函数中输出。

例如:

原来存顺序为8,6,5,4,1。

要求改为:

1,4,5,6,8。

要求:

用for循环实现

------------------------------------------------*/

#include

#defineN5

void

voidfun(intarr[],intn)

{

/**********Program**********/

/**********End**********/

}

main()

{

inta[N]={8,6,5,4,1},i;

for(i=0;i

printf("%4d",a[i]);

printf("\n");

fun(a,N);

for(i=0;i

printf("%4d",a[i]);

}

答案:

----------------------

inti,t;

for(i=0;i

{t=arr[i];

arr[i]=arr[n-1-i];

arr[n-1-i]=t;

}

----------------------

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

有一个一维数组score,内放10个学生的成绩,用一

个函数来求平均成绩。

例如:

如果10个学生的成绩分别为92,87,68,56,92,84,

70,65,90,60则平均成绩为:

76.400000

要求:

用for循环实现

------------------------------------------------*/

#include

void

floataverage(floatarray[10])

{

/**********Program**********/

/**********End**********/

}

main()

{

floatscore[]={92,87,68,56,92,84,70,65,90,60};

printf("averagescoreis%f\n",average(score));

}

答案:

----------------------

inti;

floataver,sum=array[0];

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

sum=sum+array[i];

aver=sum/10;

returnaver;

----------------------

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:

以下search函数的功能是利用顺序查找法从数组a的10个元

素中对关键字m进行查找。

顺序查找法的思路是:

从第一个

元素开始,从前向后依次与关键字比较,直到找到此元素

或查找到数组尾部时结束。

若找到,返回此元素的下标;

若仍未找到,则返回值-1。

请填空。

-------------------------------------------------------*/

#include

intsearch(inta[10],intm)

{inti;

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

/***********SPACE***********/

if(【?

】)returni;

return-1;

}

main()

{inta[10],m,no;

...

/***********SPACE***********/

no=search(【?

】);

/***********SPACE***********/

if(【?

】)

printf("\nOKFOUND!

%d",no+1);

else

printf("\nSorryNotFound!

%d");

}

答案:

======(答案1)======

a[i]==m

======(答案2)======

a,m

======(答案3)======

no>=0

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:

以下程序中swap函数是交换数组中两个元素的值,main函

数中调用该函数。

请完成程序。

-------------------------------------------------------*/

voidswap(inta[2])

{intt;

t=a[0];

/***********SPACE***********/

【?

】;

/***********SPACE***********/

【?

】;

}

main()

{intm[]={1,2};

printf(″m[0]=%d,m[1]=%d″,m[0],m[1]);

/***********SPACE***********/

【?

】;

printf(″m[0]=%d,m[1]=%d″,m[0],m[1]);

}

答案:

======(答案1)======

a[0]=a[1]

======(答案2)======

a[1]=t

======(答案3)======

swap(m)

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:

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

m=1-2+3-4+…+9-10,

并输出结果。

请填空。

-------------------------------------------------------*/

intfun(intn)

{intm=0,f=1,i;

for(i=1;i<=n;i++)

{m+=i*f;

/***********SPACE***********/

f=【?

】;

}

returnm;

}

main()

{

/***********SPACE***********/

printf("m=%d\n",【?

】);

}

答案:

======(答案1)======

-f

======(答案2)======

fun(10)

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:

下面的程序是多次求两个数之积,请填空。

-------------------------------------------------------*/

main()

{intx,y,z;

scanf("%d%d",&x,&y);

while(x!

=0)

{z=mul(x,y);

printf("%d*%d=%d",x,y,z);

/***********SPACE***********/

【?

】("%d%d",&x,&y);

}

}

intmul(inta,intb)

{

/***********SPACE***********/

【?

】;

c=a*b;

/***********SPACE***********/

【?

】;

}

答案:

======(答案1)======

scanf

======(答案2)======

intc

======(答案3)======

returnc

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:

下面rotate函数的功能是:

将n行n列的矩阵进行转置,

即把矩阵的行列的值互换,请填空。

-------------------------------------------------------*/

#defineN4

voidrotate(inta[][N])

{inti,j,t;

for(i=0;i

/***********SPACE***********/

for(j=0;【?

】;j++)

{t=a[i][j];

/***********SPACE***********/

【?

】;

a[j][i]=t;

}

}

答案:

======(答案1)======

j<=i

======(答案2)======

a[i][j]=a[j][i]

函数调用时的实参和形参之间的数据是单向的【1】传递.

答案:

======(答案1)======

函数调用语句func((e1,e2),(e3,e4,e5))中含有【1】个实参.

答案:

======(答案1)======

2

对fun函数的正确调用为:

fun(a+b,fun(a+b,(a+b)));则fun函数有【1】个形参.

答案:

======(答案1)======

2

下面add函数的功能是求两个参数的和,并将和值返回调用函数.

函数中错误的部分是【1】;改正后为【2】.

voidadd(floata,floatb)

{floatc;

c=a+b;

returnc;

}

答案:

======(答案1)======

voidadd(floata,floatb)

======(答案2)======

floatadd(floata,floatb)

函数调用语句func((f1,f2),(f2,f3,f4),f5)中含有【1】个参数.

答案:

======(答案1)======

3

C语言程序中,当调用函数时().

A)实参和虚参各占一个独立的存储单元

B)实参和虚参可以共用存储单元

C)可以由用户指定是否共用存储单元

D)计算机系统自动确定是否共用存储单元

答案:

A

数组名作为实参数传递给函数时,数组名被处理为().

A)该数组的长度

B)该数组的元素个数

C)该数组的首地址

D)该数组中各元素的值

答案:

C

以下函数调用语句中实参的个数是().

exce((v1,v2),(v3,v4,v5),v6);

A)3

B)4

C)5

D)6

答案:

A

以下函数调用语句中实参的个数是().

func((e1,e2),(e3,e4,e5));

A)2

B)3

C)5

D)语法错误

答案:

A

有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));该函数调用语句中,含有的实参个数是().

A)3

B)4

C)5

D)有语法错

答案:

A

执行下面程序后,输出结果是().

main()

{inta=45,b=27,c=0;

c=max(a,b);

printf("%d\n",c);

}

intmax(x,y)

intx,y;

{intz;

if(x>y)z=x;

elsez=y;

return(z);

}

A)45

B)27

C)18

D)72

答案:

A

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

main()

{inta=1,b=2,c=3,d=4,e=5;

printf("%d\n",func((a+b,b+c,c+a),(d+e)));

}

intfunc(intx,inty)

{

return(x+y);

}

A)15

B)13

C)9

D)函数调用出错

答案:

B

求平方根函数的函数名为().

A)cos

B)abs

C)pow

D)sqrt

答案:

D

函数的形式参数隐含的存储类型说明是().

A)extern

B)static

C)register

D)auto

答案:

D

若使用一维数组名作函数实参,则以下正确的说法是().

A)必须在主调函

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

当前位置:首页 > PPT模板 > 商务科技

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

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