函数的参数及传递方式文档格式.docx
《函数的参数及传递方式文档格式.docx》由会员分享,可在线阅读,更多相关《函数的参数及传递方式文档格式.docx(23页珍藏版)》请在冰点文库上搜索。
%disok!
\n"
i);
答案:
======(答案1)======
k=0
======(答案2)======
j=m%10
======(答案3)======
return
(1)
======(答案4)======
fun(i)
统计一个字符串中的字母、数字、空格和其它字符的个数。
voidfun(chars[],intb[])
{
for(i=0;
s[i]!
='
\0'
;
if('
a'
<
=s[i]&
&
s[i]<
z'
||'
A'
Z'
)
b[0]++;
elseif(【?
】)
b[1]++;
】)
b[2]++;
else
b[3]++;
main()
chars1[80];
inta[4]={0};
intk;
gets(s1);
puts(s1);
for(k=0;
k<
k++)
%4d"
a[k]);
'
0'
=s[i]★&
★s[i]<
9'
s[i]★==★'
'
fun(s1,a)
/*------------------------------------------------
【程序设计】
--------------------------------------------------
在键盘上输入一个3行3列矩阵的各个元素的值(值
为整数),然后输出主对角线元素的平方和,并在
fun()函数中输出。
要求:
用for循环实现
------------------------------------------------*/
void
inti,j,s,a[3][3];
for(i=0;
3;
for(j=0;
j<
j++)
scanf("
%d"
&
a[i][j]);
s=fun(a);
Sum=%d\n"
s);
intfun(inta[3][3])
/**********Program**********/
/**********End**********/
----------------------
intsum;
sum=0;
sum=sum+a[i][i]*a[i][i];
returnsum;
用冒泡法对数组a进行由小到大的排序。
voidfun(inta[],intn)
inti,j,t;
for(j=0;
【?
】)
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
inti,a[10]={3,7,5,1,2,8,6,4,10,9};
10;
%3d"
a[i]);
=n-1
n-j-1
a[i]>
a[★i★+★1★]
fun(a,10)
数组名作为函数参数,求平均成绩。
floataver(floata[])/*定义求平均值函数,形参为一浮点型数组名*/
floatav,s=a[0];
5;
s+=【?
】[i];
av=s/5;
return【?
voidmain()
floatsco[5],av;
\ninput5scores:
);
%f"
【?
】);
av=aver(【?
averagescoreis%5.2f\n"
av);
a
av
sco[i]
sco
编写函数fun对主程序中用户输入的具有10
个数据的数组a按由大到小排序,并在主程序中输出
排序结果。
intfun(intarray[],intn)
inta[10],i;
请输入数组a中的十个数:
a[i]);
fun(a,10);
由大到小的排序结果是:
intk,j,t;
for(k=0;
n-1;
for(j=k+1;
n;
if(array[k]<
array[j])
t=array[k];
array[k]=array[j];
array[j]=t;
编写函数fun将一个数组中的值按逆序存放,并在
main()函数中输出。
原来存顺序为8,6,5,4,1。
要求改为:
1,4,5,6,8。
#defineN5
voidfun(intarr[],intn)
inta[N]={8,6,5,4,1},i;
N;
fun(a,N);
inti,t;
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
floataverage(floatarray[10])
floatscore[]={92,87,68,56,92,84,70,65,90,60};
averagescoreis%f\n"
average(score));
floataver,sum=array[0];
sum=sum+array[i];
aver=sum/10;
returnaver;
题目:
以下search函数的功能是利用顺序查找法从数组a的10个元
素中对关键字m进行查找。
顺序查找法的思路是:
从第一个
元素开始,从前向后依次与关键字比较,直到找到此元素
或查找到数组尾部时结束。
若找到,返回此元素的下标;
若仍未找到,则返回值-1。
请填空。
intsearch(inta[10],intm)
{inti;
=9;
i++)
if(【?
】)returni;
return-1;
{inta[10],m,no;
...
no=search(【?
\nOKFOUND!
no+1);
\nSorryNotFound!
a[i]==m
a,m
no>
=0
以下程序中swap函数是交换数组中两个元素的值,main函
数中调用该函数。
请完成程序。
voidswap(inta[2])
{intt;
t=a[0];
{intm[]={1,2};
printf(″m[0]=%d,m[1]=%d″,m[0],m[1]);
a[0]=a[1]
a[1]=t
swap(m)
以下程序的功能是调用函数fun计算:
m=1-2+3-4+…+9-10,
并输出结果。
intfun(intn)
{intm=0,f=1,i;
i<
=n;
i++)
{m+=i*f;
f=【?
returnm;
m=%d\n"
-f
fun(10)
下面的程序是多次求两个数之积,请填空。
{intx,y,z;
%d%d"
x,&
y);
while(x!
=0)
{z=mul(x,y);
%d*%d=%d"
x,y,z);
】
("
intmul(inta,intb)
c=a*b;
scanf
intc
returnc
下面rotate函数的功能是:
将n行n列的矩阵进行转置,
即把矩阵的行列的值互换,请填空。
#defineN4
voidrotate(inta[][N])
{inti,j,t;
{t=a[i][j];
a[j][i]=t;
=i
a[i][j]=a[j][i]
函数调用时的实参和形参之间的数据是单向的【1】传递.
值
函数调用语句func((e1,e2),(e3,e4,e5))中含有【1】个实参.
2
对fun函数的正确调用为:
fun(a+b,fun(a+b,(a+b)));
则fun函数有【1】个形参.
下面add函数的功能是求两个参数的和,并将和值返回调用函数.
函数中错误的部分是【1】;
改正后为【2】.
voidadd(floata,floatb)
{floatc;
c=a+b;
returnc;
floatadd(floata,floatb)
函数调用语句func((f1,f2),(f2,f3,f4),f5)中含有【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
func((e1,e2),(e3,e4,e5));
A)2
B)3
D)语法错误
有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5));
该函数调用语句中,含有的实参个数是().
D)有语法错
执行下面程序后,输出结果是().
{inta=45,b=27,c=0;
c=max(a,b);
%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
以下程序的输出结果为().
{inta=1,b=2,c=3,d=4,e=5;
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
若使用一维数组名作函数实参,则以下正确的说法是().
A)必须在主调函