资源描述:
《c理论自测题及参考答案(第3次)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、单选题1.以下关于函数的叙述中,正确的是。A.在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值B.在函数体中至少必须有一个return语句C.在函数体中可以定义另一个函数D.在函数体中可以调用函数自身2.以下关于变量的叙述中,不正确的是。A.一个变量的作用域完全取决于该变量声明的位置B.全局变量可以在函数以外的任何位置声明C.动态局部变量的生存期仅限于本次函数调用,无法将局部变量的值保存到函数下一次调用D.用static声明一个变量是为了限制其他编译单位引用该变量3.以下选项是一个自定义函数的
2、头部,其中正确的是。A.intfun(inta,b)B.intfun(inta,inta)C.intfun(inta[],intb)D.intfun(staticinta,intb)4.关于函数返回值,以下叙述中正确的是。A.函数返回值的类型由函数体内return语句包含的表达式类型决定B.函数返回值的类型由函数头部定义的函数类型决定C.若函数体中有多个return语句,则函数返回值是排列在最后的return语句中表达式的值D.若函数体内没有return语句,则函数没有返回值5.以下程序中main函数需要调用fun函数
3、,所给选项中正确的调用语句是。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’sgreat!”);}则调用f函数的正确形式是。A.f;B.f();C.f(void);D.f(1);7.已知有函数f的定义如下:intf(inta,intb){if(a
4、,得到的返回值是。A.2B.3C.2和3D.3和28.在以下程序中,需要在fun函数中声明一个int型的变量,所给选项中不能用作该变量名的是。A.xB.yC.aD.fun#includeinty;main(){inta=1;fun(a);}intfun(intx){/*int型变量声明位置*/14}9.若有程序:intx;intf(inty){return标识符;}#includeintw;main(){intz=2;f(z);}则在函数f中,return语句后允许出现的标识符是。A.
5、x或wB.x或yC.z或wD.NULL10.在main函数体内部和外部均允许出现的实体是。A.预处理命令B.操作语句C.另一函数的定义D.函数形式参数声明11.设有下列程序段:staticcharb=2;voidY(){staticfloatd=4;.......}inta=1;voidX(){intc=3;......}关于程序段中各变量的属性,以下叙述中错误的是。A.a是全局变量,函数X可以访问,函数Y不能访问B.b是全局变量,函数X和函数Y都可以访问C.c是动态局部变量,函数X可访问,函数Y不可访问D.d是静态局
6、部变量,函数X和函数Y都可以访问12.对应main函数中的fun函数调用,以下给出的四个fun函数定义的首部中,错误的是。main(){inta,n;fun(n,&a);}A.voidfun(intm,intx[])B.voidfun(ints,inth[41])C.voidfun(intp,int*s)D.voidfun(intn,inta)13.下列全局变量声明中,正确的是。A.autointi=1;B.floata=1,b=0.5,c=a+b;C.charfor=1;D.staticcharch;14.若有数组A
7、和B的声明“staticcharA[]="ABCDEF",B[]={'A','B','C','D','E','F'};”,则数组A和数组B的长度分别是。A.7,6B.6,7C.6,6D.7,715.以下程序运行后的输出结果是。A.22B.72C.75D.62#includemain(){chara[7]="a0 a0 ";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d",i,j);14}16.假定已有声明“chara[30],*p=a;”,则下列语句中能将
8、字符串"ThisisaCprogram."正确地保存到数组a中的语句是。A.a[30]="ThisisaCprogram.";B.a="ThisisaCprogram.";C.p="ThisisaCprogram.";D.strcpy(p,"ThisisaCprogram.");17.以下数组声明中正确的是。A.intn=10,a