1
D.传递给函数的实参类型 二、 程序阅读题
《C语言函数》习题
1、int f( ) {
static int a1 = 0; static int a2 = 1; //change 学号 姓名
一、 选择题
1、在函数原型说明中,
不是必要的。
A.参数类型 B.函数名 C.函数参
数名 D.函数类型
2、以下不正确的描述为 A.在函数之外定义的变量称为外部变量,外部变量是全局变量。
B.在一个函数中既可以使用本函数中的局部变量,又可以使用全局变量。 C.外部变量定义和外部变量说明的含义不同。
D.全局变量的作用域称为文件作用域,但必须符合“定义在前,使用在后”的规则。 3、以下不正确的描述为
A.调用函数时,实参可以是变量,也可以是表达式。
B.调用函数时,实参的个数可以多于形参个数,也可以少于形参个数。
C.调用函数时,系统将为形参分配内存单元。
D.调用函数时,实参必须与对应的形参类型相兼容。
4、C语言中函数返回值的类型是由
决定的。 A.return语句中的表达式类型 B.调用该函数的主调函数类型 C.定义函数时所指定的函数类型
a1 = a2;
return(a2 += 2 * a1 +1);
} void main( ) { int i, sum;
for(i = sum = 0; i<5; i++) { sum+=f( ); printf(\
}
}
运行该程序,输出 行结果
第一行的输出是
第三行的输出是
将标有//change的注释行改为:int a2 =1 ;则第五行的输出是 2、int c = -1;
void f(int a, int b) { static int c = 2;
a && b++ || c--; printf(\}
void main( ) { int I;
for(I = 0; I<=1; I++)
1
f(I, c);
printf(”c=%d\\n”,c);
}
程序共产生 次输出 程序的第一次输出是 程序的最后一次输出是 3、void f(int b,int t){ int m; if(b } } 以上函数若用f(1,6)调用,输出共有 行,输出第一行为 ,最后一行为 。 4、void sub(int n){ int m,r; if(n==0){printf(\ m=n/10;r=n; printf(\ sub(m); printf(\void main(){ int a=367; sub(a); printf(\ 以上函数输出共有 行,输出 2 第一行为 ,最后一行为 。 5、执行下面程序共产生 行输 出,第一行输出和最后一行输出分别是 及 。 void f(int); int main() { f(3); } void f(int n) { static int s=5; int a=5; if(n!=0) { s++;a++; printf(\f(n-1); } } 6、int HT(int n,im x){ if(n==O)return 1: if(n==1)return 2*x: else return 2*x*HT(n-1 , x)-2*(n-1)*HT(n-2,x); } void main( ){ int x,m,n; x=2; for(n=1;n<4;n+=2){ m=HT(n,x); printf(\ } } 程 序 的 运 行 结 果 为 和 。 2