C理论自测题及参考答案(第3次)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

C.a

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=0.5, 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.以下程序运行后的输出结果是。

A.2 2

B.7 2

C. 7 5

D.6 2

#include

main()

{ char a[7]="a0\0a0\0"; int i,j;

i=sizeof(a); j=strlen(a);

printf("%d %d",i,j);

相关文档
最新文档