C语言程序设计题目及解答
一、判断题 (24分)
1. 函数的递归调用不过是一个函数直接地调用它自身。2分 2. 在c语言中,在main函数中定义的变量称为全局变量。2分 3. 静态变量和外部变量都是全局变量,它们的存储是静态的。2分 4. 静态局部变量只在本函数内可用。2分 5. 静态外部变量只在本文件内可用。
2分
2分
6. 变量根据其作用域的范围可以分作局部变量和全局变量.
2分
7. 任何数组在使用时必须先定义。2分
8. 如果想使一个数组中全部元素的值为1,可以写成 int a[10]={1*10};9. 如果定义数组int b[6]={1,2,3,4};则b[6]为0。
2分
2分
10. int n=10; int a[n];则数组a有10个元素。2分
11. int b[][3] = {1,2,3,4,5,6,7} ,表示数组b是3行3列的数组。
二、选择题 (36分)
1.根据下面函数print的定义,选出调用函数print(5378)的值是( )。 [A] 2分 void print(long n) {
if (n==0) return ; else{
print(n/10);
printf("% d", n%10);
return ; } }
A. 5 3 7 8 B. 8 7 3 5 C. 3 5 7 8 D. 8 7 5 3 2.根据下面函数f,选出f(f(3))的值是( )。 [C] 2分 int f(int x)
{
static int k=0; x=x+k; k--; return x;
}
A. 5 B. 3 C. 2 D. 4
3.如果在函数中定义一个变量,有关该变量作用域正确的是( )。 [A] 2分
A. 只在该函数中有效 B. 在该文件中有效 C. 在本程序中有效 D. 为非法变量 4.下列叙述中,正确的叙述项是( )。 [B] 2分
A. 定义函数时,必须要有形参
B. 函数中可以没有return语句,也可以有多条return语句 C. 函数f可以用f(f(x))形式调用,这种调用形式是递归调用 D. 函数必须有返回值
5.下列说法正确的是( ) [D] 2分
A. 在C语言中,可以使用动态内存分配技术定义元素个数可变的数组 B. 在C语言中,数组元素的个数可以不确定,允许随机变动