}
}
C语言数组与函数阶段测试题答案
一、选择题( 18*2=36 分)
1、 在定义“ int a[5][6]; ”后,第 11个元素是 【 C 】
A、a[2][5] B 、a[2][4]C 、 a[1][4] D 、a[1][5]
2、假定 int 类型变量占用两个字节,其定义: int x[10]={0,2,4};, 则数组 x 在内存中所 占字节数是 【 D 】。
A、3 B 、 6 C 、10 D 、20
3、当接受用输入的含空格的字符串地,应使用的函数是 【 B 】
A、scanf() B 、gets()C 、 getchar() D 、getc()
4、设有数组定义: char array[]= ”China”; 。则数组 array 所占的空间为 【 C 】
A、4 个字节 B 、5个字节 C 、6 个字节 D 、7个字节
5、设有变量定义: int a [ ] = {1,2,3,4};
执行语句 a[3] = - - a[0]? a[1]
执行语句 a[3] = - - a[0]? a[1] + + : a[2] + +; 的值依次为 【 D 】
A、 1,2,3,4B 、 0,3,3,4 C
6、以下程序的输出结果是 【 C 】
void main( )
{int i, x[3][3] = { 1,2,3,4,5,6,7,8,9}
for(i= 0;i < 3; i + +) printf("3%d", x[i][2 - i]); } A 、 1 5 9 B 、 1 4 7 C
7、不能把字符串: Hello !赋给数组 b 的语句是
A 、 char b [10] = {‘H' ‘e' ‘l '
B 、char b [10] ; b =“Hello! ”;
C 、 char b [10] ; strcpy(b,“Hello!
D 、char b [10] = “Hello! ”;
执行后,数组的元素
、 0,2,3,4 D
、3 5 7 D
B 】
l ' ‘o' ‘ ! '};
);
a[0], a[1], a[2], a[3]
、0,2,4,3
8、在函数间传递数据的四种方式中,不能把被调函数的数据带回到主调函数的是 【 A 】
A、值传递B、地址传递C、返回值传递D全局外部变量
9、以下关于函数的叙述中不正确的是 【 B 】
A 、 C 程序是函数的集合,包括标准库函数和用户自定义函数
B、在C语言程序中,被调用的函数必须在 main函数中定义
C、在C语言程序中,函数的定义不能嵌套
D、在C语言程序中,函数的调用可以嵌套
10、 若用数组名作为函数调用的实参,则传递给形参的是【 A 】
A、数组的首地址B 、数组的第一个元素的值
C、 数组中全部元素的值D 、数组元素的个数
11、 C语言中,凡未指定存储类别的局部变量的隐含存储类别是【A】
A、auto B、 staticC、 externD、register
12、 若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实 参的个数是 【 A 】
A、 3B、 4C、 5
D、 6
并将其放在调用之后,则在调用之
并将其放在调用之后,则在调用之
13、若程序中定义函数
float myadd(float a, float b) { return a+b;}
前应对该函数进行说明。以下说明中错误的是 【 A 】 A、 float myadd( float a,b);
B、float myadd(float b, float a);
C、float myadd(float, float);
D、float myadd(float a, float b);
14、以下函数值的类型是 【 A 】
fun (float x) { float y; y= 3*x-4; return y;}
A、 int B 、不确定 C 、 void D 、 float
15、 #include
f(in b[], int n)
{ int i, r;r=1;
for(i=0; i<=n; i++) r=r*b[i]; return r; } main()
{ int x, a[]={ 2,3,4,5,6,7,8,9}; x=f(a, 3); printf("%d\n",x); } 上面程序的输出结果是 【 B 】
A、 720 B 、 120 C 、 24D 、 6
有以下程序:
int f(int n)
{ if(n= =1) return 1; else return f(n-1)+1;
} main()
{ int i,j=0; f