7函数.docx

上传人:b****9 文档编号:25432023 上传时间:2023-06-08 格式:DOCX 页数:21 大小:24.33KB
下载 相关 举报
7函数.docx_第1页
第1页 / 共21页
7函数.docx_第2页
第2页 / 共21页
7函数.docx_第3页
第3页 / 共21页
7函数.docx_第4页
第4页 / 共21页
7函数.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

7函数.docx

《7函数.docx》由会员分享,可在线阅读,更多相关《7函数.docx(21页珍藏版)》请在冰豆网上搜索。

7函数.docx

7函数

函数

一、选择题

1.以下函数定义正确的是:

A)doublefun(intx,inty)B)doublefun(intx;inty)

C)doublefun(intx,inty);D)doublefun(intx,y)

2.C语言规定,简单变量作实参,它与对应形参之间的数据传递方式是:

(0级)

A)地址传递;B)单向值传递;

C)双向值传递;D)由用户指定传递方式

3.以下关于C语言程序中函数的说法正确的是:

(0级)

A)函数的定义可以嵌套,但函数的调用不可以嵌套;

B)函数的定义不可以嵌套,但函数的调用可以嵌套;

C)函数的定义和调用均不可以嵌套;

D)函数的定义和点用都可以嵌套。

4.以下正确的函数形式是:

(1级)

A)doublefun(intx,inty)B)fun(intx,y)

{z=x+y;returnz;}{intz;returnz;}

C)fun(x,y)D)doublefun(intx,inty)

{intx,y;doublez;{doublez;

z=x+y;returnz;}z=x+y;returnz;}

5.以下说法不正确的是:

(1级)

C语言规定A)实参可以是常量、变量或表达式

B)形参可以是常量、变量或表达式

C)实参可以是任意类型

D)形参应与其对应的实参类型一致

6.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是。

(0级)

A)float型B)int型C)long型D)double型

7.以下错误的描述是。

(0级)

函数调用可以

A)出现在执行语句中B)出现在一个表达式中

C)做为一个函数的实参D)做为一个函数的形参

8.若用数组名作为函数调用的实参,传递给形参的是。

(0级)

A)数组的首地址B)数组第一个元素的值

C)数组中全部元素的值D)数组元素的个数

9.以下正确的说法是。

(0级)

如果在一个函数中的复合语句中定义了一个变量,则该变量

A)只在该复合语句中有效B)在该函数中有效

C)在本程序范围内有效D)为非法变量

10.以下不正确的说法为。

(0级)

A)在不同函数中可以使用相同名字的变量

B)形式参数是局部变量

C)在函数内定义的变量只在本函数范围内有效

D)在函数内的复合语句中定义的变量在本函数范围内有效

11.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为。

(0级)

A)自动(auto)B)静态(static)

C)外部(extern)D)寄存器(register)

12.下面程序的正确运行结果是:

(1级)

#include

voidmain()

{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语言规定:

函数返回值类型是由:

(0级)

A)return语句中的表达式类型决定

B)调用该函数时的主调函数类型决定

C)调用该函数时系统临时决定

D)定义该函数时所指定的函数类型

14.决定

14.下面函数调用语句中实参的个数为:

(1级)

func((exp1,exp2),(exp3,exp4,exp5))

A)1B)2C)4D)5

15.15.有一个如下定义的函数:

func(a){printf(“%d”,a);}

则该函数的返回类型是。

(1级)

A)与参数a的类型相同B)void类型

C)没有返回值D)无法确定

16.建立函数的目的之一是:

16.以下正确的说法是。

(0级)

A)提高程序的执行效率B)提高程序的可读性

C)减少程序的篇幅D)减少程序文件所占内存

17.以下正确的说法是以下正确的说法是。

(0级)

A)定义函数时,形参的类型说明可以放在函数体内

B)return后边的值不能为表达式

C)如果函数值的类型与返回值类型不一致,以函数值类型为准

D)如果形参与实参的类型不一致,以实参类型为准

18.以下正确的说法是。

(0级)

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

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

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

D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调

19.以下正确的说法是。

(0级)

在C语言中:

A)实参和与其对应的形参各占用独立的存储单元

B)实参和与其对应的形参共占用一个存储单元

C)只有当实参和与其对应的形参同名时才共占用存储单元

D)形参是虚拟的,不占用存储单元

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

(0级)

A)必须在主调函数中说明此数组的大小

B)实参数组类型与形参数组类型可以不匹配

C)在被调函数中,不需要考虑形参数组的大小

D)实参数组名与形参数组名必须一致

21.有如下函数调用语句

func(rec1,rec2+rec3,(rec4,rec5);

该函数调用语句中,含有的实参个数是。

(1级)

A)3B)4C)5D)有语法错

22.有如下程序

intrunc(inta,intb)

{return(a+b);}

#include

voidmain()

{intx=2,y=5,z=8,r;

r=func(func(x,y),z);

printf(“%\d\n”,r);

}

该程序的输出的结果是。

(1级)

A)12B)13C)14D)15

23.有如下程序

longfib(intn)

{if(n>2)return(fib(n-1)+fib(n-2));

elsereturn

(2);

}

#include

voidmain()

{printf(“%d\n”,fib(3));

该程序的输出结果是。

(1级)

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

24.有以下程序

voidf(intx,inty)

{intt;

if(x

}

#include

voidmain()

{inta=4,b=3,c=5;

f(a,b);f(a,c);f(b,c);

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

}

执行后输出的结果是。

(1级)

A)3,4,5B)5,3,4C)5,4,3D)4,3,5

25.以下函数的功能是:

通过键盘输入数据,为数组中的所有元素赋值。

#defineN10

voidarrin(intx[N])

{inti=0;

while(i

scanf("%d",_________);

}

在下划线处应填入的是。

(2级)

A)x+iB)&x[i+1]C)x+(i++)D)&x[++i]

26.有以下程序

#include

voidmain()

{chars[]="\n123\\";

printf("%d,%d\n",strlen(s),sizeof(s));

}

执行后输出结果是。

(1级)

A)赋初值的字符串有错B)6,7

C)5,6D)6,6

27.以下叙述中正确的是。

(0级)

A)全局变量的作用域一定比局部变量的作用域范围大

B)静态(static)类别变量的生存期贯穿于整个程序的运行期间

C)函数的形参都属于全局变量

D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值

28.#include

voidmain()

{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;

printf("%d,%d,%d\n",d,f,e);

}

f1(intx,inty)

{intz;z=(x>y)?

x:

y;return(z);}

f2(intx,inty)

{intz;z=(x

x:

y;return(z);}

执行后输出的结果是。

(1级)

A)3,4,5B)5,3,4C)5,4,3D)3,5,4

29.以下程序的输出结果是。

(1级)

#include

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)1B)0C)非0的数D)–1

30.以下C语言中,对函数不正确的描述是。

(0级)

A)当用数组名作形参时,形参数组改变可使实参数组随之改变

B)允许函数递归调用

C)函数形参的作用范围只是局限于所定义的函数内

D)函数说明必须在主调函数之前

31.以下所列的各函数首部中,正确的是。

(1级)

A)voidplay(var:

Integer,varb:

Integer)B)voidplay(inta,b)

C)voidplay(inta,intb)D)Subplay(aasinteger,basinteger)

32.以下叙述中不正确的是。

(0级)

A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。

B)在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。

C)在C中,外部变量的隐含类别是自动存储类别。

D)在C中,函数形参可以说明为register变量。

33.以下对C语言函数的有关描述中,正确的是。

(0级)

A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参

B)C函数既可以嵌套定义又可以递归调用

C)函数必须有返回值,否则不能使用函数

D)C程序中有调用关系的所有函数必须放在同一个源程序文件中

34.一个数据类型为void的函数中可以没有return语句,那么函数的被调用时。

(0级)

A)没有返回值B)返回一个系统默认值

B)返回值由用户临时决定D)返回一个不确定的值

35.在下面的函数声明中,存在着语法错误的是。

(1级)

A)BC(inta,int);B)BC(int,int);

C)DC(int,int=5);D)BC(intx,inty);

36.以下函数值的类型是。

(1级)

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);}

main()

{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.以下程序的运行结果是:

main()

{inta=2,i;

for(i=0;i<3;i++)printf(“%4d”,f(a));}

f(inta)

{intb=0,c=3;

b++;c++;return(a+b+c);}

A)71013B)777

C)7911D)789

二、填空题

1.C语言规定,可执行程序的开始执行点是。

(0级)

2.在C语言中,一个函数一般由两个部分组成,它们是和

(0级)

3.函数swap(intx,inty)可完成对x和y值的交换。

在运行调用函数中的如下语句后,a[0]和a[1]的值分别为,原因。

(1级)

4.函数swap(arr,n)可完成对arr数组从第1个元素到第n个元素两两交换。

在运行调用函数中的如下语句后,a[0]和a[1]的值分别为,原因。

(1级)

5.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部。

要求形参名为b。

(1级)

main()

{doubles[10][22];

intn;┆

fun(s);

}

6.返回语句的功能是从返回。

(0级)

三、程序填空题

1.下面程序的功能是利用函数调用求两整数的最大公约数和最小公倍数,请填空。

(1级)

#include

voidmain()

{inta,b,c,d;

scanf(“%d,%d”,&a,&b);

c=gongyue(a,b);

(1);

printf(“gongyue=%d,gongbei=%d\n”,c,d);}

gongyue(intnum1,intnum2)

{inttemp,x,y;

if(__

(2)__)

{temp=num1;num1=num2;num2=temp;}

x=num1;y=num2;

while(__(3)_____)

{temp=x%y;x=y;y=temp;}

return(y);}

2.以下程序的功能是根据输入的“y”(“Y”)与“n”(“N”),在屏幕上分别显示出“ThisisYES.”与“ThisisNO.”。

请填空。

(1级)

2.#include

viodYesNo(charch)

{switch(ch)

{case‘y’:

case‘Y’:

printf(“\nThisisYES.\n”);

(1);

case‘n’:

case‘N’:

printf(“\nThisisNO.\n”);}

}

#include

voidmain()

{charch;printf(“\nEnterachar‘y’,’Y’or’n’,’N’:

”);

ch=

(2);printf(”ch:

%c”,ch);YesNo(ch);}

3.以下Check函数的功能是对value中的值进行四舍五入计算,若计算后的值与ponse值相等,则显示“WELLDONE!

!

”,否则显示计算后的值。

已有函数调用语句Check(ponse,value);请填空。

(1级)

viodCheck(intponse,floatvalue)

{intval;val=

(1);

printf(“计算后的值:

%d”,val);

if(val==ponse)printf(“\nWELLDONE!

!

\n”);

elseprintf(“\nSorrythecorrectansweris%d\n”,val);

}

4.以下程序的运行结果是输出如下图形。

请填空。

(1级)

*

***

*****

********

*****

***

*

#include

voida(inti)

{intj,k;for(j=0;j<=7-i;j++)printf(““);

for(k=0;k<

(1);k++)printf(“﹡”);

printf(“\n”);}

#include

voidmain()

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

(2);

for(i=3;i>=0;i--)(3);

}

5.函数fun的功能是:

使字符串str按逆序存放。

(2级)

voidfun(charstr[])

{

charm;inti,j;

for(i=0,j=strlen(str);i<

(1);i++,j--)

{m=str[i];

str[i]=

(2);

str[j-1]=m;

}

printf("%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=___

(1)___;

return(f);}

#include

voidmain()

{intn;floaty;

printf(“inputaintegernumber”);

scanf(“%d”,&n);

y=___

(2)____;

printf(“%d!

=%15.0f”,n,y);}

7.以下程序可计算10名学生1门功课成绩的平均分,请填空。

floataverage(floatarray[10])

{inti;floataver,sum=array[0];

for(i=1;__

(1)___;i++)

sum+=___

(2)___;

aver=sum/10;

return(aver);}

main()

{floatscore[10],aver;inti;

printf(“\ninput10scores:

”);

for(i=0;i<10;i++)scanf(“%f”,&score[i]);

aver=___(3)___;

printf(“\naveragescoreis%5.2f\n”,aver);

}

四、读程序写结果题

1.下面程序的运行结果是:

(1级)

#include

voidmain()

{inti=5;printf(“%d\n”,sub(i));}

sub(intn)

{inta;

if(n==1)a=1;elsea=n+sub(n-1);return(a);}

3.下面程序的运行结果是:

3.以下程序的运行结果是。

(1级)

#include

voidmain()

{increment();increment();increment();}

voidincrement()

{intx=0;x+=1;printf(“%d”,x);}

4.以下程序的运行结果是。

(1级)

inta=5;intb=7;

#include

voidmain()

{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.以下程序的运行结果是。

(1级)

main(){increment();increment();increment();}

increment(){staticintx=0;x+=1;printf(“%d”,x);}

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

(2级)

voidfun()

{staticinta=0;

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

}

#include

voidmain()

{intcc;

for(cc=1;cc<4;cc++)fun()

printf(“\n”);

}

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

(2级)

#include

voidf(intc)

{inta=0;

staticintb=0;

a++;

b++;

printf("%d:

a=%d,b=%d\n",c,a,b);

}

voidmain(void)

{inti;

for(i=1;i<=3;i++)f(i);

}

8.以下程序的输出结果是。

(2级)

#include

voidincrement(void);

voidmain(void)

{

increment();

increment();

}

voidincrement(void)

{

staticintx=8;

x++;

printf("x=%d\n",x);

}

9.若有以下程序,执行后输出结果是。

(2级)

intf(intx,inty)

{return((y-x)*x);}

#include

voidmain()

{inta=3,b=4,c=5,d;

d=f(f(3,4),f(3,5));

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

}

10.假如在运行程序时输入5,写出程序的运行情况及最终结果:

floatfac(intn)

{floatf;

if(n<0){printf(“n<0,dataerror!

”);

f=-1;}

elseif(n==0||n==1)f=1;

elsef=fac(n-1)*n;

return(f);

}

#include

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

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

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