函数答案 2Word格式文档下载.docx
- 文档编号:17339367
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:21
- 大小:26.45KB
函数答案 2Word格式文档下载.docx
《函数答案 2Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《函数答案 2Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
10.以下不正确的说法为D。
A)在不同函数中可以使用相同名字的变量
B)形式参数是局部变量
C)在函数内定义的变量只在本函数范围内有效
D)在函数内的复合语句中定义的变量在本函数范围内有效
11.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为A。
A)自动(auto)B)静态(static)
C)外部(extern)D)寄存器(register)
12.下面程序的正确运行结果是:
D。
main()
{inta=2,i;
for(i=0;
i<
3;
i++)printf(“%4d”,f(a));
}
f(inta)
{intb=0;
staticintc=3;
b++;
c++;
return(a+b+c);
A)777B)71013C)7911D)789
13.13.C语言规定:
函数返回值类型是由:
A)return语句中的表达式类型决定
B)调用该函数时的主调函数类型决定
C)调用该函数时系统临时决定
D)定义该函数时所指定的函数类型决定
14.
14.下面函数调用语句中实参的个数为:
B。
func((exp1,exp2),(exp3,exp4,exp5))
A)1B)2C)4D)5
115.有一个如下定义的函数:
func(a){printf(“%d”,a);
1616
16.以下正确的说法是C。
建立函数的目的之一是:
A)提高程序的执行效率B)提高程序的可读性
C)减少程序的篇幅D)减少程序文件所占内存
17.以下正确的说法是C。
A)定义函数时,形参的类型说明可以放在函数体内
B)return后边的值不能为表达式
C)如果函数值的类型与返回值类型不一致,以函数值类型为准
D)如果形参与实参的类型不一致,以实参类型为准
18.以下正确的说法是B。
A)用户若需调用标准库函数,调用前必须重新定义
B)用户可以重新定义标准函数,若如此,该函数将失去原有含义
C)系统根本不允许用户重新定义标准库函数
D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
19.以下正确的说法是D。
在C语言中:
A)实参和与其对应的形参各占用独立的存储单元
B)实参和与其对应的形参共占用一个存储单元
C)只有当实参和与其对应的形参同名时才共占用存储单元
D)形参是虚拟的,不占用存储单元
20.若使用一维数组名作函数实参,则以下正确的说法是D。
A)必须在主调函数中说明此数组的大小
B)实参数组类型与形参数组类型可以不匹配
C)在被调函数中,不需要考虑形参数组的大小
D)实参数组名与形参数组名必须一致
21.有如下函数调用语句
func(rec1,rec2+rec3,(rec4,rec5);
该函数调用语句中,含有的实参个数是A。
A)3B)4C)5D)有语法错
22.有如下程序
intrunc(inta,intb)
{return(a+b);
}
{intx=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%\d\n”,r);
该程序的输出的结果是D。
A)12B)13C)14D)15
23.有如下程序
longfib(intn)
{if(n>
2)return(fib(n-1)+fib(n-2));
elsereturn
(2);
{printf(“%d\n”,fib(3));
该程序的输出结果是B。
A}2B}4C}6D}8
24.有以下程序
voidf(intx,inty)
{intt;
if(x<
y){t=x;
x=y;
y=t;
main()
{inta=4,b=3,c=5;
f(a,b);
f(a,c);
f(b,c);
printf("
%d,%d,%d\n"
a,b,c);
执行后输出的结果是D。
A)3,4,5B)5,3,4C)5,4,3D)4,3,5
25.以下函数的功能是:
通过键盘输入数据,为数组中的所有元素赋值。
#defineN10
voidarrin(intx[N])
{inti=0;
while(i<
N)
scanf("
%d"
_________);
在下划线处应填入的是C。
A)x+iB)&
x[i+1]C)x+(i++)D)&
x[++i]
26.有以下程序
{chars[]="
\n123\\"
;
%d,%d\n"
strlen(s),sizeof(s));
执行后输出结果是C。
A)赋初值的字符串有错B)6,7
C)5,6D)6,6
27.以下叙述中正确的是B。
A)全局变量的作用域一定比局部变量的作用域范围大
B)静态(static)类别变量的生存期贯穿于整个程序的运行期间
C)函数的形参都属于全局变量
D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
28.main()
{inta=4,b=3,c=5,d,e,f;
d=f1(a,b);
d=f1(d,c);
e=f2(a,b);
e=f2(e,c);
f=a+b+c-d-e;
d,f,e);
f1(intx,inty)
{intz;
z=(x>
y)?
x:
y;
return(z);
f2(intx,inty)
z=(x<
执行后输出的结果是C。
A)3,4,5B)5,3,4C)5,4,3D)3,5,4
29.以下程序的输出结果是A。
#include<
stdio.h>
intf(void)
{staticinti=0;
ints=1;
s+=i;
i++;
return(s);
voidmain(void)
{
inti,a=0;
for(i=0;
i<
5;
i++)a+=f()
printf(“%d\n”,a);
A)15B)0C)非0的数D)–1
30.以下C语言中,对函数不正确的描述是D。
A)当用数组名作形参时,形参数组改变可使实参数组随之改变
B)允许函数递归调用
C)函数形参的作用范围只是局限于所定义的函数内
D)函数说明必须在主调函数之前
31.以下所列的各函数首部中,正确的是C。
A)voidplay(var:
Integer,varb:
Integer)B)voidplay(inta,b)
C)voidplay(inta,intb)D)Subplay(aasinteger,basinteger)
32.以下叙述中不正确的是C。
A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。
B)在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。
C)在C中,外部变量的隐含类别是自动存储类别。
D)在C中,函数形参可以说明为register变量。
33.以下对C语言函数的有关描述中,正确的是A。
A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B)C函数既可以嵌套定义又可以递归调用
C)函数必须有返回值,否则不能使用函数
D)C程序中有调用关系的所有函数必须放在同一个源程序文件中
34.一个数据类型为void的函数中可以没有return语句,那么函数的被调用时D。
A)没有返回值B)返回一个系统默认值
B)返回值由用户临时决定D)返回一个不确定的值
35.在下面的函数声明中,存在着语法错误的是C。
A)BC(inta,int);
B)BC(int,int);
C)DC(int,int=5);
D)BC(intx,inty);
36.以下函数值的类型是A。
fun(floatx)
{floaty;
y=3*x-4;
returny;
A)intB)不确定C)voidD)float
37.有如下程序段,在TurboC环境下运行的结果为。
main()
{inti=2,p,k=1;
intf(inta,intb)
p=f(i,++k);
{intc;
printf(“I=%d,p=%d”,k,p);
if(a>
b)c=1;
}elseif(a==b)c=0;
elsec=-1;
return(c);
A)1,0B)2,0C)2,-1D)1,1
38.下面程序的输出结果是:
。
intm=13;
intfun(intx,inty)
{intm=3;
return(x*y-m);
{inta=7,b=5;
printf(“%d\n”,fun(a,b)/m);
A)1B)2C)7D)10
39.若有说明语句:
staticinta[3][4]={0};
则下面叙述正确的是:
A)只有a[0][0]元素可得到初值0;
B)数组a中每个元素均可得到初值0。
C)数组a中各元素都可得到初值,但值不一定为0;
D)此说明语句不正确
40.以下程序的运行结果是:
{inta=2,i;
for(i=0;
i++)printf(“%4d”,f(a));
f(inta)
{intb=0,c=3;
b++;
return(a+b+c);
A)71013B)777
C)7911D)789
二、填空题
1.C语言规定,可执行程序的开始执行点是main()。
2.在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体
3.函数swap(intx,inty)可完成对x和y值的交换。
在运行调用函数中的如下语句后,a[0]和a[1]的值分别为不变,原因单向值传递。
4.函数swap(arr,n)可完成对arr数组从第1个元素到第n个元素两两交换。
在运行调用函数中的如下语句后,a[0]和a[1]的值分别为交换了,原因地址传递。
5.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;
请写出fun函数的首部voidfun(doubleb[][22])。
要求形参名为b。
main()
{doubles[10][22];
intn;
┆
┆
fun(s);
6.返回语句的功能是从被调函数返回主调函数。
三、程序填空题
1.下面程序的功能是利用函数调用求两整数的最大公约数和最小公倍数,请填空。
main()
{inta,b,c,d;
scanf(“%d,%d”,&
a,&
b);
c=gongyue(a,b);
d=a*b/c;
printf(“gongyue=%d,gongbei=%d\n”,c,d);
gongyue(intnum1,intnum2)
{inttemp,x,y;
if(__num1<
num2__)
{temp=num1;
num1=num2;
num2=temp;
x=num1;
y=num2;
while(__y!
=0_____)
{temp=x%y;
x=y;
y=temp;
return(x);
2.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“ThisisYES.”与“ThisisNO.”。
请填空。
(1级)
#include<
viodYesNo(charch)
{switch(ch)
{case‘y’:
case‘Y’:
printf(“\nThisisYES.\n”);
break;
case‘n’:
case‘N’:
printf(“\nThisisNO.\n”);
{charch;
printf(“\nEnterachar‘y’,’Y’or’n’,’N’:
”);
ch=getchar();
printf(”ch:
%c”,ch);
YesNo(ch);
3.以下Check函数的功能是对value中的值进行四舍五入计算,若计算后的值与ponse值相等,则显示“WELLDONE!
!
”,否则显示计算后的值。
已有函数调用语句Check(ponse,value);
viodCheck(intponse,floatvalue)
{intval;
val=(int)value+((value-(int)value)>
0.499?
1:
0));
printf(“计算后的值:
%d”,val);
if(val==ponse)printf(“\nWELLDONE!
\n”);
elseprintf(“\nSorrythecorrectansweris%d\n”,val);
4.以下程序的运行结果是输出如下图形。
*
***
*****
********
*****
***
#include<
voida(inti)
{intj,k;
for(j=0;
j<
=7-i;
j++)printf(““);
for(k=0;
k<
2*i+1;
k++)printf(“﹡”);
printf(“\n”);
}
main()
{inti;
for(i=0;
i++)a(i);
for(i=3;
i>
=0;
i--)a(i);
5.函数fun的功能是:
使字符串str按逆序存放。
voidfun(charstr[])
{
charm;
inti,j;
for(i=0,j=strlen(str);
j/2;
i++,j--)
{m=str[i];
str[i]=str[j-1];
str[j-1]=m;
%s\n"
str);
6.以下程序使用递归法求n!
请填空。
floatfac(intn)
{floatf;
if(n<
0){printf(“n<
0”dataerror);
f=-1;
elseif(n==0||n==1)f=1;
elsef=___n*f(n-1)___;
return(f);
{intn;
floaty;
printf(“inputaintegernumber”);
scanf(“%d”,&
n);
y=___f(n)____;
printf(“%d!
=%15.0f”,n,y);
7.以下程序可计算10名学生1门功课成绩的平均分,请填空。
floataverage(floatarray[10])
floataver,sum=array[0];
for(i=1;
_i<
10____;
i++)
sum+=___array[i]___;
aver=sum/10;
return(aver);
{floatscore[10],aver;
inti;
printf(“\ninput10scores:
10;
i++)scanf(“%f”,&
score[i]);
aver=___average(score)___;
printf(“\naveragescoreis%5.2f\n”,aver);
四、读程序写结果题
1.下面程序的运行结果是:
15。
main(){inti=5;
printf(“%d\n”,sub(i));
sub(intn)
{inta;
if(n==1)a=1;
elsea=n+sub(n-1);
return(a);
2.下面程序的运行结果是:
i=7;
j=6;
x=7
i=2;
j=7;
x=5
main(){inti=2,x=5,j=7;
fun(j,6);
printf(“i=%d;
j=%d;
x=%d\n”,i,j,x);
fun(inti,intj)
{intx=7;
x=%d\n”,i,j,x);
3.以下程序的运行结果是111。
main(){increment();
increment();
}
increment(){intx=0;
x+=1;
printf(“%d”,x);
4.以下程序的运行结果是A+B=9。
inta=5;
intb=7;
main(){inta=4,b=5,c;
c=plus(a,b);
printf(“A+B=%d\n”,c);
plus(intx,inty){intz;
z=x+y;
return(z);
5.以下程序的运行结果是123。
increment(){staticintx=0;
6.以下程序的输出结果是246。
voidfun()
{staticinta=0;
a+=2;
printf(“%d”,a);
{intcc;
for(cc=1;
cc<
4;
cc++)fun()
7.以下程序的输出结果是。
1:
a=1,b=1
2:
a=1,b=2
3:
a=1,b=3
#include<
voidf(intc)
{inta=0;
staticintb=0;
a++;
b++;
printf("
%d:
a=%d,b=%d\n"
c,a,b);
voidmain(void)
for(i=1;
=3;
i++)f(i);
8.以下程序的输出结果是。
x=9
x=10
STDIO.H>
voidincrement(void);
{
increment();
voidincrement(void)
staticintx=8;
x++;
x=%d\n"
x);
9.若有以下程序,执行后输出结果是9。
intf(intx,inty)
{return((y-x)*x);
{inta=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
%d\n"
d);
10.假如在运行程序时输入5,写出程序的运行情况及最终结果:
5!
=120。
{floatf;
if(n<
0){printf(“n<
0,dataerror!
f=-1;
elseif(n==0||n==1)f=1;
elsef=fac(n-1)*n;
return(f);
{intn;
floaty
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 函数答案 函数 答案