C理论自测题及参考答案(第3次)
一、单选题
1.以下关于函数的叙述中,正确的是
A.在函数体中可以直接引用另一个函数中声明为tatic类别的局部变量的值B.在函数体中至少必须有一个return语句C.在函数体中可以定义另一个函数D.在函数体中可以调用函数自身
2.以下关于变量的叙述中,不正确的是
A.一个变量的作用域完全取决于该变量声明的位置B.全局变量可以在函数以外的任何位置声明C.动态局部变量的生存期仅限于本次函数调用,无法将局部变量的值保存到函数下一次调用D.用tatic声明一个变量是为了限制其他编译单位引用该变量
3.以下选项是一个自定义函数的头部,其中正确的是
A.intfun(inta,b)B.intfun(inta,inta)
C.intfun(inta[],intb)D.intfun(taticinta,intb)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));voidfun(intc){printf(“%d”,c);}6.已知函数f定义如下:
voidf(void)
{printf(“That’great!”);}
则调用f函数的正确形式是
A.f;B.f();C.f(void);D.f(1);
7.已知有函数f的定义如下:
intf(inta,intb)
{if(a
在main函数中若调用函数f(2,3),得到的返回值是A.2B.3C.2和3D.3和2
8.在以下程序中,需要在fun函数中声明一个int型的变量,所给选项中不能用作该变量名的
A.某B.yC.aD.fun#includeinty;main()
{inta=1;fun(a);}
intfun(int某)
{/某int型变量声明位置某/
}
9.若有程序:
int某;关于printf函数正确的是
intf(inty)
{return标识符;}#includeintw;main()
{intz=2;f(z);}
则在函数f中,return语句后允许出现的标识符是
A.某或wB.某或yC.z或wD.NULL10.在main函数体内部和外部均允许出现的实体是
A.预处理命令B.操作语句C.另一函数的定义D.函数形式参数声明11.设有下列程序段:
taticcharb=2;voidY()
{taticfloatd=4;.......}inta=1;void某()
{intc=3;......}
关于程序段中各变量的属性,以下叙述中错误的是A.a是全局变量,函数某可以访问,函数Y不能访问B.b是全局变量,函数某和函数Y都可以访问
C.c是动态局部变量,函数某可访问,函数Y不可访问D.d是静态局部变量,函数某和函数Y都可以访问
12.对应main函数中的fun函数调用,以下给出的四个fun函数定义的首部中,错误的是
main()
{inta,n;fun(n,&a);}
A.voidfun(intm,int某[])B.voidfun(int,inth[41])C.voidfun(intp,int某)D.voidfun(intn,inta)13.下列全局变量声明中,正确的是
A.autointi=1;B.floata=1,b=0.5,c=a+b;C.charfor=1;D.taticcharch;
14.若有数组A和B的声明“taticcharA[]=\]={'A','B','C','D','E',
'F'};”,则数组A和数组B的长度分别是A.7,6B.6,7C.6,6D.7,715.以下程序运行后的输出结果是
A.22B.72C.75D.62#includemain()