当前位置:文档之家› 答案第七章函数..(可编辑修改word版)

答案第七章函数..(可编辑修改word版)

第七章函数一、选择题1.以下函数声明正确的是: C 。

(02~03 第一学期试题)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 。

(0 级)A)地址传递;B)单向值传递;C)双向值传递;D)由用户指定传递方式3.以下关于C语言程序中函数的说法正确的是: B 。

(0 级)A)函数的定义可以嵌套,但函数的调用不可以嵌套;B)函数的定义不可以嵌套,但函数的调用可以嵌套;C)函数的定义和调用均不可以嵌套;D)函数的定义和点用都可以嵌套。

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

(1 级)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;}5.以下说法不正确的是: B 。

(1 级)C 语言规定A)实参可以是常量、变量或表达式B)形参可以是常量、变量或表达式C)实参可以是任意类型D)形参应与其对应的实参类型一致6.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 B 。

(0 级)A)float 型B) int 型C)long 型D)double 型7.以下错误的描述是 D 。

(0 级)函数调用可以A)出现在执行语句中B)出现在一个表达式中C)做为一个函数的实参D)做为一个函数的形参8.若用数组名作为函数调用的实参,传递给形参的是 A 。

(0 级)A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数9.以下正确的说法是 A 。

(0 级)如果在一个函数中的复合语句中定义了一个变量,则该变量A)只在该复合语句中有效B)在该函数中有效C)在本程序范围内有效D)为非法变量10.以下不正确的说法为 D 。

(0 级)A)在不同函数中可以使用相同名字的变量B)形式参数是局部变量C)在函数内定义的变量只在本函数范围内有效D)在函数内的复合语句中定义的变量在本函数范围内有效11.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为 A 。

(0 级)A)自动(auto)B)静态(static)C)外部(extern)D)寄存器(register)12.下面程序的正确运行结果是: D 。

(1 级)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;b++; c++;return (a+b+c);}A)777B)71013C)7911D)78913.C 语言规定:函数返回值类型是由: D 。

(0 级)A)return 语句中的表达式类型决定B)调用该函数时的主调函数类型决定C)调用该函数时系统临时决定D)定义该函数时所指定的函数类型14 决定下面函数调用语句中实参的个数为: B 。

(1 级)func((exp1,exp2),(exp3,exp4,exp5))A) 1 B) 2 C) 4 D) 515返回值的类型int 。

(1 级)f(float a){ return a ;}A)与参数a 的类型相同B) void 类型C) 没有返回值D) 无法确定16建立函数的目的之一是: B 。

(0 级)A)提高程序的执行效率B) 提高程序的可读性C)减少程序的篇幅D) 减少程序文件所占内存17.正确 C 。

(0 级)A)定义函数时,形参的类型说明可以放在函数体内B)return 后边的值不能为表达式C)如果函数值的类型与返回值类型不一致,以函数值类型为准D)如果形参与实参的类型不一致,以实参类型为准18.以下正确的说法是 B 。

(0 级)A)用户若需调用标准库函数,调用前必须重新定义B)用户可以重新定义标准函数,若如此,该函数将失去原有含义C)系统根本不允许用户重新定义标准库函数D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调19.以下正确的说法是 A 。

(0 级)在C 语言中:A)实参和与其对应的形参各占用独立的存储单元B)实参和与其对应的形参共占用一个存储单元C)只有当实参和与其对应的形参同名时才共占用存储单元D)形参是虚拟的,不占用存储单元20.若使用一维数组名作函数实参,则以下正确的说法是 A 。

(0 级)A)必须在主调函数中说明此数组的大小B)实参数组类型与形参数组类型可以不匹配C)在被调函数中,不需要考虑形参数组的大小D)实参数组名与形参数组名必须一致21.有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是 A 。

(1 级)A)3 B) 4 C) 5 D)有语法错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) 12 B) 13 C) 14 D) 1523.有如下程序long fib(int n){ if(n>2) return(fib(n-1)+fib(n-2));else return(2);}main( ){ printf(“%d\n”,fib(3));该程序的输出结果是 B 。

(1 级)A}2 B}4 C}6 D} 824.有以下程序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 。

(1 级)A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,525.以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。

#define N 10void arrin(int x[N]){ int i=0;while(i<N)scanf("%d", );}在下划线处应填入的是 C 。

(2 级)A) x+i B) &x[i+1] C) x+(i++) D) &x[++i]26.有以下程序main(){ char s[]="\n123\\";printf("%d,%d\n",strlen(s),sizeof(s));}执行后输出结果是 C 。

(1 级)A)赋初值的字符串有错B) 6,7C) 5,6 D) 6,627.以下叙述中正确的是 B 。

(0 级)A)全局变量的作用域一定比局部变量的作用域范围大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);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 。

(1 级)A) 3,4,5 B) 5,3,4 C) 5,4,3 D)3,5,429.以下程序的输出结果是 C 。

(1 级)#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()printf(“%d\n”, a);}A) 1 B) 0 C) 非0 的数D) –130.以下C 语言中,对函数不正确的描述是 D 。

(0 级)A)当用数组名作形参时,形参数组改变可使实参数组随之改变B)允许函数递归调用C)函数形参的作用范围只是局限于所定义的函数内D)函数说明必须在主调函数之前31.以下所列的各函数首部中,正确的是 C 。

(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 。

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

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

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

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

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

(0 级)A)在C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参B)C 函数既可以嵌套定义又可以递归调用C)函数必须有返回值,否则不能使用函数D)C 程序中有调用关系的所有函数必须放在同一个源程序文件中34.一个数据类型为void 的函数中可以没有return 语句,那么函数的被调用时D 。

(0 级)A)没有返回值B) 返回一个系统默认值B)返回值由用户临时决定D) 返回一个不确定的值35.在下面的函数声明中,不存在着语法错误的是 D 。

(1 级)A)BC(int a, int);B)BC(int,int);C)DC(int,int=5);D)BC(int x, int y);36.以下函数值的类型是 A 。

(1 级)fun ( float x ){ float y;y= 3*x-4;return y;}A)int B)不确定C)void D)float37.有如下程序段,在Turbo C 环境下运行的结果为 B 。

相关主题