第四章 函数
一、选择题
1.以下正确的函数原形说明语句是
A.void fun (int x); B.float fun (void y);
C.double fun (x); D.int (char ch);
2.若函数的定义为:
fun (char ch)
{
…
}
那么该函数的返回值是
A.void 型 B.char 型 C.float 型 D.int 型
3.以下说法中正确的是
A.C语言程序总是从第一个的函数开始执行
B.在C语言程序中, 要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的float型main()函数必须放在程序的开始部分
4.以下函数中,函数返回的正确写法是
A.char fun() B.int fun()
{ {
… …
return”abcde” return;
} }
C.void fun() D.void fun()
{ {
… …
return; return(5);
} }
5.如果一个函数没有返回值,那么该函数的类型是
A.int B.float C.char D.void
6.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回实参
D.传递方式由用户指定
7.一个函数的形式参数的作用域是
A.main()主函数 B.这个函数体
C.从定义处到文件尾 D.整个程序
8.在一个函数里不能说明
A.全局变量 B.静态变量
C.局部变量 D.静态局部变量
9.在函数main()外有变量定义语句static int i;,则变量i的作用域为
A.main()主函数 B.main()函数所在文件
C.从定义处到文件尾 D.整个程序
10.C语言中auto型变量是
A.存储在动态存储区中 B.存储在静态存储区中
C.存储在外存储器中 D.存储在计算机CPU的寄存器中
11.以下所列的各函数首部中,正确的是
A.void play(var :integer,var b:integer)
B.void play(int a,b)
C.void play(int a,int b)
D.Sub play(a as integer,b as integer)
12.在C语言中,函数的隐含存储类别是
A.auto B.static
A.auto B.static
C.extern D.无存储类别
13.在C语言中,形参必须是
A. 常量 B. 变量 C. 数值 D. 表达式
*14.有以下函数
char fun(char *p)
{ return p; }
该函数的返回值是
A.无确切的值 B.形参p中存放的地址值
C.一个临时存储单元的地址 D.形参p自身的地址值
15.下列关于函数的说法中错误的是
A.任何函数(包括主函数main())都是由函数说明和函数体两部分组成。
B.根据函数是否需要参数,可将函数分为无参函数和有参函数两种。
C.调用有参函数时,调用函数将赋予这些参数实际的值。
D.将函数定义中的参数表称为实际参数表。
16.有参函数的返回值,是通过函数中的______语句来获得的。
A.return
B.printf
C.scanf
D.函数说明
17.以下关于形参和实参的说明中,错误的是
A.实参和形参占用不同的内存单元,即使同名也互不影响。
B.实参在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。
C.实参对形参的数据传送是双向的。可以把实参的值传送给形参,也可以把形参的值反向地传送给实参。
D.形参变量只有在被调用时,才分配内存单元。
18.以下关于函数的递归调用说法中错误的是
A.在递归调用中,调用函数又是被调用函数,执行递归函数将反复调用其自身。
B.为了防止递归调用无终止地进行,必须在函数内有终止递归调用的手段。
C.每调用一次就进入新的一层。
D.在递归调用中每一次调用该函数时,所使用的实参都相同。
19.以下关于变量的作用域的说法中,错误的是
int f1(int a)
{ int b, c;
……
}
main()
{ int m, n;
}
A. b,c的作用域在f1的范围内
a的作用域为f1和main函数
m,n作用域为main()函数
B. a,b,c作用域仅限于函数f1()中
20.C语言的函数
A. 可以嵌套调用,不能递归调用 B. 可以嵌套定义
C. 既可以嵌套调用,也可以递归调用 D. 不可以嵌套调用
二、阅读程序,写出运行后的输出结果
1.main()
{ int k=4, m=1, n;
n=fun(k,m);
printf(“%d,”,n);
n=fun(k,m);
printf(“%d\n”,n);
}
int fun (int x,int y)
( static int m=0,j=2;
j+=m+1;
m=j+x+y;
return(m);
}
A.8, 17 B.8, 16 C.8, 20 D.8, 8
2. void incr()
{ static int s=0;
++s;
printf(“%d\n”,s);
}
main()
{ incr();
incr();
incr();
}
A.1 B. 1 C. 0 D. 0
1 2 1 0
1 3 2 0
3.int m=14,n=26;
max(int x,int y)
{ int max;
max=x>y?x:y;
return(max);}
main()
{ int m=32;
printf("%d",max(m,n));
}
A.14 B.26 C.32 D.随机数
4. int a,b;
void fun()
{ a=100;b=200;}
main()
{ int a=5,b=7;
fun();
printf("%d%d\n",a,b);
}
A.10020 B.57 C.200100 D.75
5.fun(int p)
{ int k=1;
static t=2;
k=k+1;t=t+1;
return(p*k*t);
}
main()
{ int x=4;
fun(x);
printf("%d",fun(x));
}
A.24 B.32 C.16 D.40
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论