1.函数可以嵌套调用但不能嵌套定义。
T
2.阅读程序,选择程序的运行结果()。
#include "stdio.h" int try(int); int main() { int x; x=try(5); printf(“%d\n”, x); } int try(int n) { if(n>0) return(n*try(n-2)); else return(1); }
A.1
B.120
C.均错误
D.15
D
3.执行下面程序,正确的输出是()。
int x = 5, y = 7;
void swap ( )
{
int z ;
z = x ; x = y ; y = z ;
}
int main(void)
{
int x = 3, y = 8;
swap ( ) ;
printf ("%d,%d \n", x , y ) ;
return 0 ;
}
A.3,8
B.5,7
C.7,5
D.8,3
A
swap交换的是全局变量x,y。但是如果在main函数里定义了x,y就是局部变量,当全局变量和局部变量出现重名时, 在局部变量作用域内,全局变量失效
4.下列程序的输出结果是
void f(int v,int w)
{ int t;
t=v; v=w; w=t;
}
int main(void)
{ int x=1, y=3, z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf("%d,%d,%d\n", x, y, z);
return 0;
}
A.2,3,1
B.1,3,2
C.1,2,3
D.3,1,2
B f函数不带回返回值
5.以下正确的函数声明形式是( )。
A.int func(int x , int y)
B.int func(int , int);
C.int func(int x ; int y);
D.int func(int x , y);
B
6.以下正确的说法是()。
A.形参是虚拟的,不占用内存单元
B.只有当实参与其对应的形参同名时才占用一个共同的存储单元
C.实参与其对应的形参共同占用一个存储单元
D.实参与其对应的形参各占用独立的存储单元
D
7.以下对C语言中函数的有关描述正确的是
A.C程序中有调用关系的所有函数必须放在同一个源程序文件中。
B.C函数既可以嵌套定义又可以递归调用。
C.函数必须有返回值,否则不能使用函数。
D.调用函数时只能把实参的值传送给形参,形参的值不能传送给实参。
8.以下对C语言中函数的有关描述正确的是
A.C程序中有调用关系的所有函数必须放在同一个源程序文件中
B.C函数既可以嵌套定义又可以递归调用。
C.函数必须有返回值,否则不能使用函数。
D.调用函数时只能把实参的值传送给形参,形参的值不能传送给实参。
D c函数可以递归调用,但不能嵌套定义。void函数没有返回值
9.一个递归算法必须包括()。
A.终止条件和循环部分
B.递归部分
C.终止条件和递归部分
D.循环部分
C
10.有以下函数定义:
void fun(int n, double x){......}
下列选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )。
A.void fun(x,n);
B.fun(x,n);
C.k=fun(10,12.5);
D.fun(int y, double m);
B D,变量x,y,重复定义了
C,fun没有返回值,无法赋值给k
11.在一个被调用函数中,关于 return 语句使用的描述,错误的是( )。
A.被调用函数中,一个 return 语句可以返回多个值给调用函数B.
被调用函数中可以不用 return 语句
C.被调用函数中可以使用多个 return 语句
D.被调用函数中,如果有返回值,就一定要有 return 语句
A
12.输出10到99之间各位数字之和为12的所有整数。要求定义和调用函数sumdigit(n)计算整数n的各位数字之和。请将函数补充完整。
运行示例:
39 48 57 66 75 84 93
#include <stdio.h>
int main(void)
{
int i;
int sumdigit(int n);
for(i = 10; i <= 99; i++)
if ( sumdigit(i) == 12 )
printf("%d ", i);
return 0;
}
int sumdigit(int n)
{
int sum;
sum = 0;
do
{
sum = sum + n%10;
n = n/10;
}
while(n != 0);
return sum;
}
13.定义递归函数sum(n)计算1+2+...+n, 其中n的类型是int,函数类型是double。
int sum( int n )
{
int s;
if ( n == 1)
s = 1;
else
s = n + sum( n - 1);
return s;
}
14.阅读程序,写出程序输出结果。
下列程序将输出___
__。 #include <stdio.h>
void swap(int x, int y)
{ int t; t=x; x=y; y=t; return; }
int main(void)
{ int a=3, b=2;
swap(a, b);
printf("%d#%d#", a, b);
return 0; }
3#2#