资源描述:
《南京大学2004年C语言期末试卷(附答案).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《C语言程序设计》期末笔试试卷(2004年6月4日上午,120分种,闭卷)系别学号姓名成绩一、单项选择1、以下关于C源程序的叙述中正确的是(1)。A.所有的变量声明只能出现在函数之内B.所有的预处理命令只能出现在函数之外C.在一个函数的定义体内允许定义另一个函数D.在一个函数的调用表达式内允许调用另一个函数2、以下标识符中除(2)外,其它都必须先声明后使用。A.变量B.数据类型C.语句标号D.枚举常量3、声明局部变量时若缺省存储类型说明符,则等同于使用了以下存储类型说明符中的(3)。A.autoB.registerC.staticD.extern4
2、、已有声明:chara[4]=”Tom”,b[10]=”Tom”;以下表达式中只有(4)的值可以用于正确表示a数组和b数组中存储的字符串是相等的。A.strcmp(a,b)B.!strcmp(a,b)C.a==bD.a[4]==b[4]5、已有声明:“intx=1,y[10]={0};”以下表达式中除(5)外,其它都是错误的。A.*&x=1B.&x=0C.y=x++;D.++(x=y[0])6、已有声明“inta[3][3]={{1},{2,3},{4,5,6}},*p=&a[0][0];”,则以下表达式中除(6)外其它的值均为3。A.a[1][1
3、]B.*(a[1]+1)C.*p+4D.p[4]7、声明“int*fp();”中出现的标识符fp是(7)。A.int型变量B.指向int型变量的指针变量C.指向返回“int*”类型值的函数的指针变量D.返回值为“int*”类型的函数8、以下对象中除(8)外,其它均在程序开始执行前获得存储空间并一直保持到程序终止运行。A.函数B.全局变量C.静态局部变量D.函数的形式参数9、已知有函数f的定义:voidf(intx[],intn){intj;for(j=0;j4、9)。A.inta[10],y=10;f(a[10],y);B.inta[10],y=10;y=f(a,y);C.inta[10],y=10;f(a)D.inta[10],y=10;f(a+1,y-1);10、已知有函数f的定义:intf(floatx[][3],floaty[],intn){..},在以下四个f函数的声明选项中,正确的是(10)。A.intf(float[][3],float[],int);B.intf(floatx[][3],y[],int);C.intf(floatx[][],floaty[],intn);D.intf(flo
5、atx[][3],floaty[]);11、以下程序在编译时在第四行报错,如果决定修改该行声明中出现的局部变量a的名字,则下列选项中除(11)以外其它都可以用来替换变量名a。A.bB.cC.dD.e#definec2intb;voidd(inta){inta=1;7printf("%d",a);}main(){inte=1;d(e);}12、设有函数定义:intf(inta,intb){returna>b?(a,b):(b,a);},则在调用函数f(2,3)后得到的返回值是(12)。A.2B.3C.2和3D.3和213、以下声明中完全正确(没有编译
6、错误和警告错误)的是(13)。A.charn=2,p[n];B.char*p[2]={“a”,”b”,”c”};C.char(*p)[2]=”a”;D.char*p();14、已知有声明intj,a[][4]={1,2,3,4,5},*p=&a[0][0];执行了语句for(j=0;j<6;j++)p[j]*=p[j];以后,a[1][0]的值是(14)。A.16B.25C.5D.015、已知有声明inta[]={1,2,3};以下选项中(15)是对a数组元素的正确引用。A.aB.&aC.*aD.*a[0]16、已知有如下的结构类型定义,下列说法中
7、不正确的是(16)。A.允许将成员标识符“y”改为“x”B.允许将成员标识符“y”改为“z”C.允许将成员标识符“y”改为“w”D.标识符“x”可以缺省[结构定义]structx{inty;floatz;struct{doublew;}u;};17、已知有以下结构类型定义和数组的声明,在给出的四个选项语句中除(17)外,其它均输出“zhao”。A.puts(ps[0].name);B.puts((*ps).name);C.puts(p->name);D.puts((--p)->name);[结构定义与声明]structp{charname[20];
8、struct{inty,m,d;}birthday;}ps[2]={“Zhao”,{1980,2,3},”Wang”,{1