C理论自测题及参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、单选题
1.以下关于函数的叙述中,正确的是。
A.在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值
B.在函数体中至少必须有一个return语句
C.在函数体中可以定义另一个函数
D. 在函数体中可以调用函数自身
2. 以下关于变量的叙述中,不正确的是。
A.一个变量的作用域完全取决于该变量声明的位置
B.全局变量可以在函数以外的任何位置声明
C.动态局部变量的生存期仅限于本次函数调用,无法将局部变量的值保存到函数下一次调用
D.用static声明一个变量是为了限制其他编译单位引用该变量
3. 以下选项是一个自定义函数的头部,其中正确的是。
A. int fun(int a, b)
B. int fun(int a, int a)
C. int fun(int a[],int b)
D. int fun(static int a,int b)
4. 关于函数返回值,以下叙述中正确的是。
A. 函数返回值的类型由函数体内return语句包含的表达式类型决定
B.函数返回值的类型由函数头部定义的函数类型决定
C.若函数体中有多个return语句,则函数返回值是排列在最后的return语句中表达式的值D.若函数体内没有return语句,则函数没有返回值
5. 以下程序中main函数需要调用fun函数,所给选项中正确的调用语句是。
A. fun(1,2);
B. fun((1,2));
C. f();
D. fun(fun(1));
void fun (int c)
{ printf(“%d”,c ); }
6. 已知函数f定义如下:
void f(void)
{ printf(“ That’s great!”);}
则调用f函数的正确形式是。
A. f;
B. f();
C. f(void);
D. f(1);
7. 已知有函数f的定义如下:
int f(int a, int b)
{ if (a
在main函数中若调用函数f(2,3),得到的返回值是。
A. 2
B. 3
C. 2和3
D. 3和2
8. 在以下程序中,需要在fun函数中声明一个int型的变量,所给选项中不能用作该变量名的
是。
A. x
B. y D. fun
#include<>
int y;
main()
{ int a=1;
fun(a);
}
int fun(int x)
{ /* int 型变量声明位置*/
}
9.若有程序:
int x;
int f(int y)
{ return 标识符 ; }
#include<>
int w;
main()
{ int z=2; f(z); }
则在函数f中,return语句后允许出现的标识符是。
A. x或w
B. x或y
C. z或w
D. NULL
10. 在main函数体内部和外部均允许出现的实体是。
A. 预处理命令
B. 操作语句 C.另一函数的定义 D.函数形式参数声明
11.设有下列程序段:
static char b=2;
void Y ( )
{ static float d=4;....... }
int a=1;
void X ( )
{ int c=3; ...... }
关于程序段中各变量的属性,以下叙述中错误的是。
A. a是全局变量,函数X可以访问,函数Y不能访问
B. b是全局变量,函数X和函数Y都可以访问
C. c是动态局部变量,函数X可访问,函数Y不可访问
D. d是静态局部变量,函数X和函数Y都可以访问
12.对应main函数中的fun函数调用,以下给出的四个fun函数定义的首部中,错误的是。
main()
{ int a,n;
fun(n,&a);
}
A.void fun(int m,int x[]) B.void fun(int s,int h[41]) C.void fun(int p,int *s) D.void fun(int n,int a)
13. 下列全局变量声明中,正确的是。
A.auto int i=1; B. float a=1, b=, c=a+b;
C. char for=1;
D. static char ch;
14.若有数组 A和B的声明“static char A[ ] = "ABCDEF",B[ ] = { 'A', 'B', 'C', 'D', 'E',
'F'} ;”,则数组A和数组B的长度分别是。
A. 7,6
B. 6,7
C. 6,6
D. 7,7
15.以下程序运行后的输出结果是。
2 2 C. 7 5 2
#include<>
main()
{ char a[7]="a0\0a0\0"; int i,j;
i=sizeof(a); j=strlen(a);
printf("%d %d",i,j);