函数练习题及答案.docx
《函数练习题及答案.docx》由会员分享,可在线阅读,更多相关《函数练习题及答案.docx(14页珍藏版)》请在冰豆网上搜索。
![函数练习题及答案.docx](https://file1.bdocx.com/fileroot1/2022-10/19/4a22b2ac-6cd8-4c55-93de-9bd08c35c38c/4a22b2ac-6cd8-4c55-93de-9bd08c35c38c1.gif)
函数练习题及答案
单项选择
==================================================
题号:
2914
函数定义时的参数为形参,调用函数时所用的参数为实参,则下列描述正确的就是()、
A、实参与形参就是双向传递
B、形参与实参可以同名
C、实参类型一定要在调用时指定
D、形参可以就是表达式
答案:
B
题号:
4060
以下程序的输出结果就是
main()
{intk=4,m=1,p;
p=func(k,m);
printf("%d,",p);
p=func(k,m);
printf("%d\n",p);
}
func(inta,intb)
{staticintm,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
A、8,20
B、8,16
C、8,17
D、8,8
答案:
C
题号:
2491
请阅读以下程序:
#include
#include
voidfun(intb[])
{staticinti=0;
do
{b[i]+=b[i+1];
}while(++i<2);}
main()
{intk,a[5]={1,3,5,4,9};
fun(a);
for(k=0;k<5;k++)printf("%d",a[k]);}
上面程序的输出就是()、
A、48579
B、48549
C、48999
D、13579
答案:
B
题号:
2643
有以下程序:
#include
voidfun(inta[],intn)
{inti,t;
for(i=0;i}
main()
{intk[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2;i<8;i++)printf("%d",k[i]);
printf("\n");
}
程序的运行结果就是()、
A、876543
B、321678
C、
D、345678
答案:
B
程序设计
==================================================
题号:
5340
/*------------------------------------------------
【程序设计】
--------------------------------------------------
题目:
给定n个数据,求最小值出现的位置
(如果最小值出现多次,求出第一次出
现的位置即可)。
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数
main与其它函数中的任何内容,仅在函数
station的花括号中填入所编写的若干语句。
*********Begin**********与**********End**********不可删除
------------------------------------------------*/
#include"stdio、h"
intstation(ints[],intn)
{
/*********Begin**********/
/**********End**********/
}
main()
{
inta[100],n,i,t;
scanf("%d",&n);
for(i=0;iscanf("%d",&a[i]);
t=station(a,n);
printf("themin_valuepositionis:
%d\n",t);
TestFunc();
}
TestFunc()
{
FILE*IN,*OUT;
intn;
inti[10];
into;
IN=fopen("in、dat","r");
if(IN==NULL)
{printf("Read");
}
OUT=fopen("out、dat","w");
if(OUT==NULL)
{printf("Write");
}
for(n=0;n<10;n++)
{
fscanf(IN,"%d",&i[n]);
}
o=station(i,10);
fprintf(OUT,"%d\n",o);
fclose(IN);
fclose(OUT);
}
示例代码:
inti,k;
k=0;
for(i=1;iif(s[i]
return(k);
题号:
5371
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
求小于形参n同时能被3与7整除的所有自然数之与的平方根,
并作为函数值返回。
例如若n为1000时,程序输出应为:
s=153、909064。
*********Begin**********与**********End**********不可删除
------------------------------------------------*/
voidTestFunc();
#include
#include
doublefun(intn)
{
/*********Begin**********/
/**********End**********/
}
main()
{printf("s=%lf\n",fun(1000));
TestFunc();
}
voidTestFunc()
{
FILE*IN,*OUT;
inti;
doubles;
IN=fopen("in、dat","r");
if(IN==NULL)
{
printf("Read");
}
OUT=fopen("out、dat","w");
if(OUT==NULL)
{
printf("Write");
}
fscanf(IN,"%d",&i);
s=fun(i);
fprintf(OUT,"%lf",s);
fclose(IN);
fclose(OUT);
}
示例代码:
inti;
doubles=0;
for(i=1;iif(i%3==0&&i%7==0)
s+=i;
returnsqrt(s);
程序填空
==================================================
题号:
599
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
功能:
计算并输出500以内最大的10个能被13或17整除的自然数之与。
-------------------------------------------------------*/
#include"stdio、h"
/***********FILL***********/
intfun(_____)
{
intm=0,mc=0,j,n;
/***********FILL***********/
while(k>=2&&_____)
{
/***********FILL***********/
if(k%13==0||_____)
{
m=m+k;
mc++;
}
k--;
}
/***********FILL***********/
_____;
}
main()
{
printf("%d\n",fun(500));
}
答案:
位置1:
intk
位置2:
mc<10【或】10>mc【或】mc<=9【或】9>=mc
位置3:
k%17==0【或】!
(k%17)【或】k/17*17==k
位置4:
returnm【或】return(m)
题号:
546
/*给定程序中,函数fun的功能就是:
将N×N矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。
例如,N=3,有下列矩阵
123
456
789
计算结果为
312
645
978
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
不得增行或删行,也不得更改程序的结构!
*/
#include
#defineN4
voidfun(int(*t)[N])
{inti,j,x;
/**********FILL**********/
for(i=0;i<___1___;i++)
{
/**********FILL**********/
x=t[i][___2___];
for(j=N-1;j>=1;j--)
t[i][j]=t[i][j-1];
/**********FILL**********/
t[i][___3___]=x;
}
}
main()
{intt[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10},i,j;
printf("Theoriginalarray:
\n");
for(i=0;i{for(j=0;jprintf("\n");
}
fun(t);
printf("\nTheresultis:
\n");
for(i=0;i{for(j=0;jprintf("\n");
}
}
答案:
位置1:
N
位置2:
N-1
位置3:
0
题号:
543
/*给定程序中,函数fun的功能就是:
将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新的数,并作为函数值返回。
例如,输入一个整数:
函数返回值为:
64862。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:
不得增行或删行,也不得更改程序的结构!
*/
#include
unsignedlongfun(unsignedlongn)
{unsignedlongx=0;intt;
while(n)
{t=n%10;
/**********FILL**********/
if(t%2==__1__)
/**********FILL**********/