第十一章测试1.
下面叙述中不正确的是_______。
A:在一个函数中定义的变量只在本函数范围内有效
B:在不同的函数中可以使用相同名字的变量,它们在内存中占用不同的单元
C:在一个函数内的复合语句中定义的变量只在本函数范围内有效
D:函数中的形参是函数自己的局部变量
答案:C
2.
下面叙述中不正确的是_______。
A:函数可以没有形参,可是函数名后的一对括号却不能省略
B:在没有声明函数返回值类型时,函数返回值的类型默认为int
C:函数的类型可以是整型、实型、字符型,但不可以是指针型
D:在C语言中,不能在一个函数的内部再定义函数
3.
下面程序的输出结果是_______。
#include <stdio.h>
int function(int a, int b);
int main(void)
{
int x=5, y=3, s;
s = function(x, y);
printf("%d", s);
return 0;
}
int function(int a, int b)
{ return a*a - b*b; }
A:16 B:2 C:8 D:32 4.
下面程序的输出结果是_______。
#include <stdio.h>
long func(int n);
int main(void)
{
printf("%ld", func(5));
return 0;
}
long func(int n)
{
if (n > 2) { return func(n-1) + func(n-2); }
else { return 1; }
}
A:8 B:5 C:7 D:6 5.
下面程序的输出结果是_______。
#include <stdio.h>
int func(void);
int main(void)
{
int i, s;
for (i = 0; i < 4; i++) s = func();
printf("%d", s);
return 0;
}
int func(void)
{
static int x = 6;
x++;
return x;
}
A:10 B:9 C:8 D:7 6.
下面程序中应该补充(填写在横线位置)的代码是_______。
#include <stdio.h>
int max(int x, int y); //函数功能:求两数中的较大数
int main(void)
{
int a, b, c;
scanf("%d, %d", &a, &b);
c = __________________;
printf("max is %d", c);
return 0;
}
int max(int x, int y)
{
int z;
if (x > y) z = x; else z = y;
return z;
}
A:max(&a, &b);
B:max(x, y)
C:max(a, b)
D:int max(int a, int b)
7.
下面程序中应该补充(填写在横线位置)的代码中,有错的是
#include <stdio.h>
______________________________
int main(void)
{
int a, b, c;
scanf("%d, %d", &a, &b); c = min(a, b);
printf("min is %d", c);
return 0;
}
//函数功能:求两数中的较大数
int min(int x, int y)
{
int z;
z = x < y ? x : y;
return z;
}
A:int min(int x, int y)
B:int min(int, int);
C:int min(int x, int y);
D:min(int x, int y);
8.
下面程序的输出结果是_______。
#include <stdio.h>
void increment(void);
int main(void)
{
increment(); increment(); increment();
return 0;
}
void increment(void)
{
int x = 0;
x += 1;
printf("%d ", x);
}
A:1 1 1 B:1 C:1 2 3 D:3 3 3 9.
在函数调用中,若funA调用了函数funB,函数funB又调用了函数funA,则这是一个不合法的调用。
A:错 B:对 10.
在一个源程序文件中定义的全局变量的作用域为从定义该变量的位置开始至本文件结束。
A:错 B:对