C语言函数章节题库及答案部分注释
选择题
1.以下正确的说法是(C)。
建立函数的目的之一是 A)提高程序的执行效率。
B)提高程序的可读性。
C)减少程序的篇幅
D)减少程序文件所占的内存
2.以下正确的说法是(B)。
用户若需调用标准库函数,调用前必须重新定义。
用户可以重新定义标准库函数,若如此,该函数将失去原有含义
系统根本不允许用户重新定义标准库函数
用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包含到用户源文件中,系统自动去调。
3.以下正确的函数定义形式是(A)。
double fun(int x, int y)
double fun(int x; int y)
double fun(int x, int y);
double fun(int x,y);
4.以下正确的说法是(A)。在C语言中
实参和与其对应的形参各占用独立的存储单元
实参和与其对应的形参共占用一个存储单元
只有当实参和与其对应的形参同名时才共占用存储单元
形参时虚拟的,不占用存储单元
5.若调用一个函数,且此函数中没有return语句,则正确的说法是(A)。该函数
没有返回值
返回若干个系统默认值
能返回一个用户所希望的函数值
返回一个不确定的值
6.以下正确的说法是(C)。
定义函数时,形参的类型说明可以放在函数体内
return后边的值不能为表达式
如果函数值的类型与返回值的类型不一致,以函数值类型为准
如果形参与实参的类型不一致,以实参类型为准
7.C语言规定,简单变量作实参时,它和对应形参之间的数据传递方式是(B)。
地址传递
单向值传递 实参传给形参
由实参传给形参,再由形参传回给实参
由用户指定传递方式
8.以下程序有语法性的错误,有关错误原因的正确的说法是(C)。
main()
{ int G=5, k;
void prt_char(); void是不返回值,但却有k=prt_char(G)
…..
k=prt_char(G);
…..
}
语句void prt_char();有错,它是函数调用语句,不能用void说明
变量名不能用大写字母
函数说明和函数调用语句之间有矛盾
函数名不能使用下划线
9.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B)。
float型
int型
long型
double型
10.C语言规定,函数返回值的类型是由(D)。
return语句中的表达式类型所决定
调用该函数时的主调函数类型所决定
调用该函数时系统临时决定
再定义该函数时所指定的函数类型所决定
11.以下错误的描述是(D)。函数调用可以
出现在执行语句中
出现在一个表达式中
作为一个函数的实参
作为一个函数的形参
12.以下正确的描述是(B)。在C语言程序中
函数的定义可以嵌套,但函数的调用不可以嵌套
函数的定义不可以嵌套,但函数的调用可以嵌套
函数的定义和调用均不可以嵌套
函数的定义和函数的调用均可以嵌套
13.若用数组名作为函数调用的实参,传递给形参的是(A)。
数组的首地址
数组第一个元素的值
数组中全部元素的值
数组元素的个数
14.已有以下数组定义和f函数调用语句,则在f函数的说明中,对形参数组array的错定义方式为(D)。
int a[3][4];
f(a);
f( int array[ ][6])
f( int array[3][ ])
f( int array[ ][4])
f( int array[2][5])
15.若用一维数组名作函数实参,则以下正确的说法是(C)。
必须在主调函数中说明此数组的大小
实参数组类型与形参数组类型可以不匹配
在被调函数中,不需要考虑形参数组的大小
实参数组名与形参数组名必须一致
16.以下程序的正确运行结果是(C)。
#include “stdio.h”
void num()
{ extern int x,y; int a=15,b=10;
x=a-b;
y=a+b;
}
int x ,y;
main()
{ int a=7, b=5;
x=a+b;
y=a-b;
num();
printf(“%d, %d\n”, x, y);
}
A) 12, 2 B)不确定 C) 5, 25 D) 1, 12
17.凡是函数中未指定存储类别的局部变量,其隐含的存储类别是(A)。
A)自动(auto) B)静态(static)
C)外部(extern) C)寄存器(register)
18.在一个C源程序文件中,若定义一个