1、C 语 言 ( 函 数 , 变 量 作 用 范 围 ) 一1 C 语言程序由函数组成,以下说法正确的是( A ).A)主函数可以在其它函数之前,函数内不可以嵌套定义函数B)主函数可以在其它函数之前,函数内可以嵌套定义函数C)主函数必须在其它函数之前,函数内不可以嵌套定义函数D)主函数必须在其它函数之前,函数内可以嵌套定义函数2 以下说法中不正确的是 ( A )。A) 主函数 main 中定义的变量在整个文件或程序中有效B) 不同的函数中可以使用相同名字的变量C) 形式参数是局部变量D) 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效 3 下面函数f(double x)
2、printf(“%6dn”,x);的类型为( C ).A) 实型 B)void 类型 C)int 类型 D) A)、B)、C)均不正确4 以下说法中正确的是( C ).A) C 语言程序总是从第一个定义的函数开始执行B)在 C 语言程序中,要调用的函数必须在 main 函数中定义C)C 语言程序总是从 main 函数开始执行D) C 语言程序中,main 函数必须放在程序的开始部分5 以下正确的函数定义是( C ).A) double fun(int x,int y); int z;z=x+y; return z;B) fun(int x,y)int z; return z;C) double
3、 fun(int x,int y)double z; z=x+y; return z;D) double fun( x, y)int x,y;double z; z=x+y; return z;6 定义为 void 类型的函数,其含义是 ( A ).A)调用函数后,被调用的函数没有返回值B)调用函数后,被调用的函数不返回C)调用函数后,被调用的函数的返回值为任意的类型D)以上三种说法都是错误的7 设有如下定义:int x=10,y=3,z ;则语句printf(“%dn“,z=(x%y,x/y);的输出结果是( D ).A) 1 B)0 C) 4 D)38 在 C 语言的函数中,( C )。A
4、)必须有形参 B)形参必须是变量名C)可以有也可以没有形参 D)数组名不能作形参9 函数调用语句 f(x,y),(a,b,c),(1,2,3,4);中,所含的实参个数是( C ).A) 1 B) 2 C) 3 D) 410 如果函数的首部省略了函数返回值的类型名,则函数被默认为( C )。A)void 类型 B)空类型C)int 类型 D)char 类型11 用数组名做函数的参数,实际上传递给形参的是( A ).A) 数组元素的首地址 B) 数组的第一个元素的值 C) 每一个数组元素 D)整个数组的个数12 C 语言允许函数值类型缺省定义,此时该函数值隐含的类型是( B ).A) floatB
5、)intC)long intD)void13 已有以下数组定义和 f 函数调用语句,则在 f 函数的说明中,对形参数组 array 的错误定义方式是( B ).int a34;f(a);A) f(int array 6)B)f(int array 3 )C)f(int array 4)D)f(int array 25)14 下列说法中正确的是( D ).A)调用函数时,实参变量与形参变量可以共用内存单元B)调用函数时,实参的个数、类型和顺序与形参可以不一致C)调用函数时,形参可以是表达式D)调用函数时,将为形参分配内存单元15 下列语句中,不正确的是 ( D )。A) c=2*max(a,b)
6、; B)m=max(a,max(b,c);C)printf(“%d“,max(a,b); D)int max(int x,int max(int y,int z) 16 以下函数调用语句:fun(x+y,x-y);中实际参数的个数是( B ).A) 1 B) 2 C) 4 D)517 C 语言可执行程序开始执行点为( C ).A)程序中第一条可执行语句 B) 程序中第一个函数C)程序中的 main 函数 D) 包含文件中的第一个函数18 若调用一个函数,且此函数中无 return 语句,则正确的说法是 ( D ).A) 没有返回值; B) 返回若干个系统默认值;C) 能返回一个用户所希望的函数
7、值;D) 返回一个不确定的值19 执行下列程序后, 变量 i 的值应为( A ).int ma(int x,int y) return x*y;main() int i;i = 5;i = ma(i,i-1)-7;A) 13 B) 17 C) 19 D) 以上都错20 下列程序的结果为( C ).change(int x,int y)int t;t=x;x=y;y=t;main()int x=2,y=3;change(x,y);printf(“x=%d,y=%dn“,x,y);A) x=3,y=2 B) x=2,y=3 C) x=2,y=2 D) x=3,y=321 执行下列程序后, 变量 a 的值应为( D ).int f(int x)return x+3;main()int a=1;while(f(a)=0; j-)printf(“%1d%c“,i+j, j?*:#);如果调用 f(3)将输出【 2*1*0#3*2*1#4*3*2# 】