全国计算机等级考试二级C语言模拟试题及答案(二)
全国计算机等级考试二级C语言模拟试题及答案(二)一、选择题(1)已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为A)GEDHFBCAB)DGEBHFCAC)ABCDEFGHD)ACBFEDHG正确答案: B(2)树是结点的集合,它的根结点数目是A)有且只有1B)1或多于1C)0或1D)至少2正确答案: A(3)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是A)e3,e1,e4,e2B)e2,e4,e3,e1C)e3,e4,e1,e2D)任意顺序正确答案: B(4)在设计程序时,应采纳的原则之一是A)不限制goto语句的使用B)减少或取消注解行C)程序越短越好D)程序结构应有助于读者理解正确答案: D(5)程序设计语言的基本成分是数据成分、运算成分、控制成分和A)对象成分B)变量成分C)语句成分D)传输成分正确答案: Dn(6)下列叙述中,不属于软件需求规格说明书的作用的是A)便于用户、开发人员进行理解和交流B)反映出用户问题的结构,可以作为软件开发工作的基础和依据C)作为确认测试和验收的依据D)便于开发人员进行需求分析正确答案: D(7)下列不属于软件工程的3个要素的是A)工具B)过程C)方法 D)环境正确答案: D(8)单个用户使用的数据视图的描述称为A)外模式B)概念模式C)内模式D)存储模式正确答案: A(9)将E-R图转换到关系模式时,实体与联系都可以表示成A)属性B)关系C)键D)域正确答案: B(10)SQL语言又称为A)结构化定义语言B)结构化控制语言C)结构化查询语言D)结构化操纵语言正确答案: C(11)下列叙述中正确的是A)C语言编译时不检查语法B)C语言的子程序有过程和函数两种C)C语言的函数可以嵌套定义D)C语言的函数可以嵌套调用正确答案: D(12)在C语言中,退格符是A)\nB)\tC)\fD)\b正确答案: Dn(13)以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)所有被调用的函数一定要在调用之前进行定义正确答案: A(14)在C程序中,判逻辑值时,用"非0"表示逻辑值"真",又用"0"表示逻辑值"假"。在求逻辑值时,用()表示逻辑表达式值为"真",又用()表示逻辑表达式值为"假"。A)1 0B)0 1C)非0 非0D)1 1正确答案: A(15)在C语言中,运算对象必须是整型数的运算符是A)%B)\C)%和\D)**正确答案: A(16)字符型数据在机器中是用ASCII码表示的,字符"5"和"7"在机器中表示为A)10100011和01110111B)01000101和01100011C)00110101和00110111D)01100101和01100111正确答案: C(17)若已定义:inta=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a<=25&&b--<=2&&c?printf("***a=%d,b=%d,c=%d\n",a,b,c):printf("###a=%d,b=%d,c=%d\n",a,b,c);程序输出的结果是A)***a=25,b=13,c=19B)***a=26,b=14,c=19C)###a=25,b=13,c=19D)###a=26,b=14,c=19正确答案: C(18)若有定义:inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A)2.500000B)2.750000Cn)3.500000D)0.000000正确答案: A(19)下列程序段的输出结果是:inta=1234;floatb=123.456;doublec=12345.54321;printf("%2d,%2.1f,%2.1f",a,b,c);A)无输出B)12,123.5,12345.5C)1234,123.5,12345.5D)1234,123.4,1234.5正确答案: C(20)若运行以下程序时,从键盘输入ADescriptor
(表示回车),则下面程序的运行结果是#includemain(){charc;intv0=1,v1=0,v2=0;do{switch(c=getchar()){case′a′:case′A′:case′e′:case′E′:case′i′:case′I′:case′o′:case′O′:case′u′:case′U′:v1+=1;default:v0+=1;v2+=1; } }while(c!=′\n′); printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);}A)v0=7,v1=4,v2=7B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11D)v0=13,v1=4,v2=12正确答案: D(21)设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段执行无限次正确答案: Bn(22)有如下程序main(){floatx=2.0,y;if(x<0.0)y=0.0;elseif(x>10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}该程序的输出结果是A)0.000000B)0.250000C)0.500000D)1.000000正确答案: D(23)执行下面的程序段后,变量k中的值为intk=3,s[2];s[0]=k;k=s[1]*10;A)不定值B)33C)30D)10正确答案: A(24)以下程序段的描述,正确的是x=-1;do{x=x*x;}while(!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误正确答案: C(25)以下选项错误的是A)main(){intx,y,z;x=0;y=x-1;z=x+y;}B)main(){intx,y,z;x=0,y=x+1;z=x+y;}C)main(){intnx;intinty;x=0,y=x+1;z=x+y;}D)main(){intx,y,z;x=0;y=x+1;z=x+y,}正确答案: D(26)有如下程序段inta=14,b=15,x;charc=′A′;x=(a&&b)&&(c<′B′);执行该程序段后,x的值为A)tureB)falseC)0D)1正确答案: D(27)下列程序执行后的输出结果是voidfunc1(inti);voidfunc2(inti);charst[]="hello,friend!";voidfunc1(inti){printf("%c",st[i]);if(i<3){i+=2;func2(i);}}voidfunc2(inti){printf("%c",st[i]);if(i<3){i+=2;func1(i);}}main(){inti=0;func1(i);printf("\n");}A)helloB)helC)hloD)hlm正确答案: C(28)以下函数返回a所指数组中最大值所在的下标值fun(int*a,intn){intni,j=0,p;p=j;for(i=j;ia[p])_________;return(p);}在下划线处应填入的内容是A)i=pB)a[p]=a[i]C)p=jD)p=I正确答案: D(29)下面说明不正确的是A)chara[10]="china";B)chara[10],*p=a;p="china"C)char*a;a="china";D)chara[10],*p;p=a="china"正确答案: D(30)以下程序的输出结果是#includevoidprt(int *x,int *y,int *z){printf("%d,%d,%d\n",++*x,++*y,*(z++));}main(){inta=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}A)11,42,3112,22,41B)11,41,2012,42,20C)11,21,4011,21,21D)11,41,2112,42,22正确答案: B(31)若有函数内部说明:inta[3][4];则数组a中各元素A)可在程序的运行阶段得到初值0B)可在程序的编译阶段得到初值0C)不能得到确定的初值D)可在程序的编译或运行阶段得到初值0正确答案: C(32)有如下程序main(){chars[]="ABCD",*p;for(p=s+1;pj共执行的次数是main(){inti=0,j=10,k=2,s=0;forn(;;){i+=k;if(i>j){printf("%d",s);break;}s+=i;}}A)4B)7C)5D)6正确答案: D(43)以下4个选项中,不能看做一条语句的是A);B)a=5,b=2.5,c=3.6;C)if(a<5);D)if(b!=5)x=2;y=6;正确答案: D(44)在C语言中,变量的隐含存储类别是A)autoB)staticC)externD)无存储类别正确答案: A(45)若有以下程序#includevoidf(intn);main(){voidf(intn);f(5);}voidf(intn){printf("%d\n",n);}则以下叙述中不正确的是A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB)若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数fC)对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明D)函数f无返回值,所以可用void将其类型定义为无返回值型正确答案: C(46)若有下面的说明和定义structtest{intml;charm2;floatm3;unionuu{charul[5];intu2[2];}ua;}nmyaa;则sizeof(structtest)的值是A)12B)16C)14D)9正确答案: A(47)以下程序的输出是structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structstaa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0]};main(){p=aa;printf("%d\n",++(p->x));}A)10B)11C)51D)60正确答案: C(48)若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是A)sizeof,&=,<<,^B)sizeof,<<,^,&=C)^,<<,sizeof,&=D)<<,^,&=,sizeof正确答案: B(49)函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是A)文件开始B)文件末尾C)文件当前位置D)以上都不对正确答案: B(50)有以下程序#includemain(){FILE*fp;inti=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d%d",&k,&n);printf("%dn%d\n",k,n);fclose(fp);}程序运行后的输出结果是A)2030B)2050C)3050D)3020正确答案: A二、填空题(1)数据结构分为逻辑结构与存储结构,线性链表属于【1】。正确答案: 1.(存储结构)(2)在面向对象方法中,类之间共享属性和操作的机制称为【2】。正确答案: 1.(继承)(3)耦合和内聚是评价模块独立性的两个主要标准,其中【3】反映了模块内各成分之间的联系。正确答案: 1.(内聚)(4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于【4】的联系。正确答案: 1.(一对多或1:N)(5)数据库设计分为以下6个设计阶段:需求分析阶段、【5】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。正确答案: 1.(数据库概念设计阶段)(6)以下程序的运行结果是【6】。#defineMAX(a,b)(a>b?a:b)+1main (){inti=6,j=8,k;printf("%d\n",MAX(i,j));}正确答案: 1.(9)(7)以下程序的功能是从健盘输入若干学生的成绩,并输出最高成绩和最低成绩,当输入负数时结束。请填空。main(){floatx,amax,amin;scanf("%f",&x);amax=x;amin=x;while(【7】){ifn(x>amax)amax=x;elseif【8】amin=x; elsescanf("%f",&x);}printf("\namax=%f\namin=%f\n",amax,amin);}正确答案: 1.(x>0)2.(xmain(){inti,j,【15】;charstr[]={"1234567"};for(i=0,j=strlen(str)【16】;i=0;--i){d=c[i];printf("%c",b【18】);}printf("\n");}正确答案: 1.(n%base)2.([d])(16)若给fun函数的形参s传送字符串:"]]6354abcc"(其中]表示空格字符),则函数的返回值是【19】。#includelongfun(chars[]){longn;intsign;for(;isspace(*s);s++);sign=(*s==′-′)?-1:1;if(*s==′+′||*s==′-′)s++;for(n=0;isdigit(*s);s++)n=10*n+(*s-′0′);returnsign*n;}正确答案: 1.(6354)n(17)设有定义"struct{inta;floatb;charc;}abc,*p_abc=&abc;",则对结构体成员a的引用方法可以是abc.a和p_abc【20】a。正确答案: 1.(->)