1 / 22
文档名称:

C语言练习-函数.doc

格式:doc   大小:169KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言练习-函数.doc

上传人:zbfc1172 2018/6/7 文件大小:169 KB

下载得到文件列表

C语言练习-函数.doc

文档介绍

文档介绍:1. 单项选择题
(1)在C语言程序中,下列叙述正确的是。
A. 函数的定义可以嵌套,但函数的调用不可以嵌套
B. 函数的定义不可以嵌套,但函数的调用可以嵌套
C. 函数的定义和调用都可以嵌套
D. 函数的定义和调用均不可以嵌套
【答】B
(2)在C语言程序中,下列叙述错误的是。
A. 形参是局部变量
B. 不同的函数中,可以使用相同名称的变量
C. 在一个函数的内部,可以在复合语句中定义变量
D. main()函数中定义的变量在整个文件或者程序中都有效
【答】D
(3)在C语言程序中,下列叙述正确的是。
A. 实参和对应的形参各占用独立的存储单元
B. 实参和对应的形参共占用一个存储单元
C. 形参是虚拟的,不占用存储单元
D. 只有当实参和对应的形参同名时才共占用存储单元
【答】A
(4)在C语言程序中,下列叙述正确的是。
A. 实参可以是常量、变量或表达式
B. 实参可以是任意类型
C. 形参可以是常量、变量或表达式
D. 形参与对应的实参类型要求可以不一致
【答】A
(5)在C语言程序中,简单变量做实参时,它和对应形参之间的数据传递方式是。
A. 地址传递
B. 单向值传递
C. 由用户指定传递方式
D. 由实参传给形参,再由形参传回给实参
【答】C语言函数调用时,只有单向的值传递,即实参将值传递给形参,传址调用也是一种单向的值传递,它是通过间接方式达到将形参回传给实参的。本题答案为B。
(6)下列关于return语句说法正确的是。
A. 必须在每个函数中都出现
B. 只能在除main()函数之外的函数中出现一次
C. 可以在同一个函数中多次出现
D. 在main()函数和其他函数中都可以出现
【答】C
(7)C语言中规定函数的返回值的类型是由。
A. return语句中的表达式类型所决定
B. 调用该函数时的主调用函数类型所决定
C. 调用该函数时系统临时决定
D. 在定义该函数时所指定的函数类型所决定
【答】D
(8)如果要限制一个变量只能被本源文件中的函数使用,必须通过来实现。
A. 静态内部变量 B. 外部变量声明
C. 静态外部变量 D. 内部变量声明
【答】C
(9)以下叙述中错误的是____。
A. 在C语言中,调用函数中,只能把实参的值传送给形参,形参的值不能传送给实参
B. 在C语言的函数中,最好使用外部变量
C. 在C语言中,形参只是局限于所在的函数
D. 在C语言中,默认的函数存储类型为extern
【答】B
(10)在一个源文件中定义的外部变量的作用域为。
A. 本文件的全部范围
B. 本程序的全部范围
C. 本函数的全部范围
D. 从定义该变量的位置开始至本文件结束
【答】D
(11)若有以下函数调用语句:
fun(a+b,(x,y),fun(n+k,d,(a,b)));
在此函数调用语句中实参的个数是。
A. 3 B. 4 C. 5 D. 6
【答】A
(12)以下程序的运行结果是。
#include <>
int fun(int m)
{
int n=0;
static int t=3;
m=t++;n++;
return(m);
}
main()
{
int m=2,i,j;
for (i=0;i<2;i++)
j=fun(m++);
printf("%d\n",j);
}
A. 7 B. 6 C. 5 D. 4
【答】函数fun()中的变量t是静态变量,第一次调用该函数时执行static int t=3,以后调用时忽略该初始化语句,但保留上次t的值。另外,函数fun()是传值调用。本题答案为D。
(13)以下程序的运行结果是。
#include <>
void fun(int *s,int *z)
{
static int j=3;
*z=s[j];
j--;
}
main()
{
int arr[]={1,2,3,4},i,p=0;
for (i=0;i<4;i++)
{
fun(arr,&p);
printf("%d",p);
}
printf("\n");
}
A. 1111 B. 4321 C. 2341 D. 4132
【答】B
(14)以下程序的运行结果是。
#include <>
int func(int a,int b);
main()
{
int k=4,m=1,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\