函数答案 (2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A)地址传递;B)单向值传递;
C)双向值传递;D)由用户指定传递方式
3.以下关于C语言程序中函数的说法正确的是:B。
A)函数的定义可以嵌套,但函数的调用不可以嵌套;
B)函数的定义不可以嵌套,但函数的调用可以嵌套;
C)函数的定义和调用均不可以嵌套;
D)函数的定义和点用都可以嵌套。
4.以下正确的函数形式是:D。
则下面叙述正确的是:。
A)只有a[0][0]元素可得到初值0;
B)数组a中每个元素均可得到初值0。
C)数组a中各元素都可得到初值,但值不一定为0;
D)此说明语句不正确
40.以下程序的运行结果是:。
main( )
{ int a=2,i;
for(i=0;i<3;i++) printf(“%4d”,f(a) ) ; }
C)系统根本不允许用户重新定义标准库函数
D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
19.以下正确的说法是D。
在C语言中:A)实参和与其对应的形参各占用独立的存储单元
B)实参和与其对应的形参共占用一个存储单元
C)只有当实参和与其对应的形参同名时才共占用存储单元
B)静态(static)类别变量的生存期贯穿于整个程序的运行期间
C)函数的形参都属于全局变量
D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值
28.main()
{int a=4,b=3,c=5,d,e,f;
d=f1(a,b); d=f1(d,c);
e=f2(a,b); e=f2(e,c);
b++; c++;
return (a+b+c);}
A)777B)71013C)7911D)789
13.13.C语言规定:函数返回值类型是由:D。
A)return语句中的表达式类型决定
B)调用该函数时的主调函数类型决定
C)调用该函数时系统临时决定
D)定义该函数时所指定的函数类型决定
14.
14.下面函数调用语句中实参的个数为:B。
A) 12B) 13C) 14D) 15
23.有如下程序
long fib(int n)
{ if(n>2) return(fib(n-1)+fib(n-2));
else return(2);
}
main( )
{ printf(“%d\n”,fib(3));
该程序的输出结果是B。
A}2B}4C}6D} 8
f=a+b+c-d-e;
printf("%d,%d,%d\n",d,f,e);
}
f1(int x, int y)
{int z; z=(x>y)?x:y; return(z); }
f2(int x, int y)
{int z; z=(x<y)?x:y; return(z); }
执行后输出的结果是C。
A) 3,4,5 B) 5,3,4 C) 5,4,3 D)3,5,4
25.以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。
#define N 10
void arrin(int x[N])
{ int i=0;
while(i<N)
scanf("%d",_________);
}
在下划线处应填入的是C。
A) x+i B) &x[i+1] C) x+(i++) D) &x[++i]
38.下面程序的输出结果是:。
int m=13;
int fun( int x, int y)
{ int m=3;
return( x*y-m); }
main( )
{int a=7,b=5;
printf(“%d\n”, fun(a,b)/m); }
A)1 B)2 C)7 D)10
39.若有说明语句:static int a[3][4]={0};
func((exp1,exp2),(exp3,exp4,exp5))
A) 1 B) 2 C) 4 D) 5
115.有一个如下定义的函数:
func(a) { printf(“%d”,a); }
1616
16.以下正确的说法是C。
建立函数的目的之一是:A)提高程序的执行效率B)提高程序的可读性
C)减少程序的篇幅D)减少程序文件所占内存
D)形参是虚拟的,不占用存储单元
20.若使用一维数组名作函数实参,则以下正确的说法是D。
A)必须在主调函数中说明此数组的大小
B)实参数组类型与形参数组类型可以不匹配
C)在被调函数中,不需要考虑形参数组的大小
D)实参数组名与形参数组名必须一致
21.有如下函数调用语句
func(rec1,rec2+rec3,(rec4,rec5);
main()
{ double s[10][22];
int n; ┆

fun(s);

}
6.返回语句的功能是从被调函数返回主调函数。
三、程序填空题
1.下面程序的功能是利用函数调用求两整数的最大公约数和最小公倍数,请填空。
f( int a)
{ int b=0,c=3;
b++; c++; return(a+b+c); }
A)7 10 13 B)7 7 7
C)7 9 11 D)7 8 9
二、填空题
1.C语言规定,可执行程序的开始执行点是main()。
2.在C语言中,一个函数一般由两个部分组成,它们是函数首部和函数体

3.函数swap(int x,int y)可完成对x和y值的交换。在运行调用函数中的如下语句后,a[0]和a[1]的值分别为不变,原因单向值传递。
main( )
{ inti=2,p,k=1; int f(int a,int b)
p=f(i,++k); { int c;
printf(“I=%d,p=%d”,k,p); if(a>b) c=1;
} else if (a==b) c=0;
else c=-1;return(c); }
A)1,0B)2,0C)2,-1D)1,1
A) void play(var :Integer,var b:Integer)B) void play(int a,b)
C) void play(int a,int b)D) Sub play(a as integer,b as integer)
32.以下叙述中不正确的是C。
A)在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。
26.有以下程序
main()
{ char s[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));
}
执行后输出结果是C。
A)赋初值的字符串有错B) 6,7
C) 5,6 D) 6,6
27.以下叙述中正确的是B。
A)全局变量的作用域一定比局部变量的作用域范围大
4.函数swap(arr,n)可完成对arr数组从第1个元素到第n个元素两两交换。在运行调用函数中的如下语句后,a[0]和a[1]的值分别为交换了,原因地址传递。
5.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部void fun(double b[][22])。要求形参名为b。
5.以下说法不正确的是:B。
C语言规定A)实参可以是常量、变量或表达式
B)形参可以是常量、变量或表达式
C)实参可以是任意类型
D)形参应与其对应的实参类型一致
6.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是B。
A) float型B) int型C)long型D)double型
7.以下错误的描述是D。
17.以下正确的说法是C。
A)定义函数时,形参的类型说明可以放在函数体内
B)return后边的值不能为表达式
C)如果函数值的类型与返回值类型不一致,以函数值类型为准
D)如果形参与实参的类型不一致,以实参类型为准
18.以下正确的说法是B。
A)用户若需调用标准库函数,调用前必须重新定义
B)用户可以重新定义标准函数,若如此,该函数将失去原有含义
29.以下程序的输出结果是A。
#include <stdio.h>
int f(void)
{ static int i = 0;
int s =1;
s += i;
i++;
return (s);
}
void main(void)
{
int i, a = 0;
for (i=0; i<5; i++) a += f()
24.有以下程序
voidf(int x,int y)
{ int t;
if(x<y){ t=x; x=y; y=t; }
}
main()
{ int a=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,5 B) 5,3,4 C) 5,4,3 D) 4,3,5
C)函数必须有返回值,否则不能使用函数
D) C程序中有调用关系的所有函数必须放在同一个源程序文件中
34.一个数据类型为void的函数中可以没有return语句,那么函数的被调用时D。
A)没有返回值B)返回一个系统默认值
B)返回值由用户临时决定D)返回一个不确定的值
35.在下面的函数声明中,存在着语法错误的是C。
该函数调用语句中,含有的实参个数是A。
A) 3B) 4C) 5D)有语法错
22.有如下程序
int runc(int a,int b)
{ return(a+b);}
main( )
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
printf(“%\d\n”,r);
}
该程序的输出的结果是D。
第七章
一、选择题
1.以下函数定义正确的是:A。
A)double fun(int x, int y) B)double fun(int x; int y)
C)double fun(int x, int y) ; D)double fun(int x ,y)
2.C语言规定,简单变量作实参,它与对应形参之间的数据传递方式是:B。
B)在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。
C)在C中,外部变量的隐含类别是自动存储类别。
D)在C中,函数形参可以说明为register变量。
33.以下对C语言函数的有关描述中,正确的是A。
A)在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B) C函数既可以嵌套定义又可以递归调用
A)只在该复合语句中有效B)在该函数中有效
C)在本程序范围内有效D)为非法变量
10.以下不正确的说法为D。
A)在不同函数中可以使用相同名字的变量
B)形式参数是局部变量
C)在函数内定义的变量只在本函数范围内有效
D)在函数内的复合语句中定义的变量在本函数范围内有效
11.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为A。
A)BC(int a, int);B)BC(int,int);
C)DC(int,int=5);D)BC(int x,inty);
36.以下函数值的类型是A。
fun ( float x )
{ float y;
y= 3*x-4;
return y;
}
A)intB)不确定C)voidD)float
37.有如下程序段,在TurboC环境下运行的结果为。
函数调用可以
A)出现在执行语句中B)出现在一个表达式中
C)做为一个函数的实参D)做为一个函数的形参
8.若用数组名作为函数调用的实参,传递给形参的是A。
A)数组的首地址B)数组第一个元素的值
C)数组中全部元素的值D)数组元素的个数
9.以下正确的说法是A。
如果在一个函数中的复合语句中定义了一个变量,则该变量
A)自动(auto)B)静态(static)
C)外部(extern)D)寄存器(register)
12.下面程序的正确运行结果是:D。
main( )
{int a=2,i;
for(i=0;i<3;i++) printf(“%4d”,f(a) ); }
f( int a)
{ int b=0; static int c=3;
printf(“%d\n”, a);
}
A) 15B) 0 C)非0的数D)–1
30.以下C语言中,对函数不正确的描述是D。
A)当用数组名作形参时,形参数组改变可使实参数组随之改变
B)允许函数递归调用
C)函数形参的作用范围只是局限于所定义的函数内
D)函数说明必须在主调函数之前
31.以下所列的各函数首部中,正确的是C。
A)double fun(int x,int y)B)fun (int x,y)
{z=x+y;return z;}{int z;return z;}
C)fun(x,y)D)double fun(int x,int y)
{int x,y; double z; {double z;
z=x+y; return z;} z=x+y; return z;}
相关文档
最新文档