2014年全国计算机等级《二级C语言程序设计》上机考试冲刺试题(2)

考试总分:43分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

试卷介绍: 2014年全国计算机等级《二级C语言程序设计》上机考试冲刺试题(2)

开始答题

试卷预览

  • 1. M名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数proc()。它的功能是:找出学生的最高分,由函数值返回。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:#include#include#defineM8struetslist(doubleS;slruclMist*next;);typedefstructslistSTREC:doubleproc(STRgC*h)(}STREC*creeli(double*S){STREC*h,*p,*q;inti=0;h=p=(STREC*)malloe(sizeof(STREC));p->s=0:while(is=s[i];++p->next=q;p=q;}p->next=NULL:returnh;//返回链表的首地址}voidoutlist(STREC*11){STREC*p;p=h;printf(”head”);do{printf(“->%2.0f”,p->s);p=p-2>next;)//输出各分数while(p->next!=NULL):print[(”\n\n”);)voidmain(){doublestu[M]={60,70,80,90,65,75,85,95,max:STREC*h:h=ereat(stu);oullist(h):max=proc(h):printf(”max=%6.1f\n”,max):)[18分]
  • 2. 给定程序的功能是计算score中m个人的平均成绩aver,将低于aver的成绩放在below中,通过函数名返回人数。例如,当score=(10,20,30,40,50,60,70,80,90},m=9时,函数返回的人数应该是4,below={10,20,30,40)。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。试题程序:#include#includeintfun(intscore[],intm,intbelow[]),inti,j=0;floataver=0.0;for(i=0:i<2m;i++)aver+=score[i];aver/=(float)m;for(i=0:i<2m;i++)if(score[i]<2aver)below[j++]=【1】;returnj;}voidmain(){inti,n,below[9];intscore[9]={10,20,30,40,50,60,70,80,90);n=fun(score,9,【2】);printf(”\nBelowtheaveragescoreare:%d\n”,n);for(i=0;i<2n;i++)printf(”%d”,【3】);}[18分]
  • 3. 下列给定程序中,函数proc()的功能是:从字符串str中,删除所有大写字母'F'。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#includevoidproc(char*str){inti,j;//****found****for(i=j=0;str[i]!='0';i十十)if(str[i]!='F')//****found****str[j]=str[i];str[j]='\0';}voidmain(){charstr[80];printf(”\nEnterastring:”);gets(str);printf(”Theoriginalstring:”);puts(str);proc(str);printf(”Thestringafterdeleted:”);puts(str);printf(”\n\n”);)[24分]
  • 4. 在下列给出的表达式中,与while(E)中的(E)不等价的表达式是()。[1分]

    A(!E==0)

    B(E>0||E<0)

    C(E==0)

    D(E!=0)

  • 5. 下列叙述中正确的是()。[1分]

    A在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式

    B实型变量中允许存放整型数

    C若a和b类型相同,在执行赋值a=b后,b中的值将放入a中,但b中的值不变

    D在C程序中,求取余运算符“%”两边的类型相同时才能进行运算

  • 6. 下列程序的执行结果是()。#includemain(){inta,b,C;a=b=2,C=1:c=(a4-+)-1;printf(”%d,%d”,a,c);c+=-a+++4-(++b);printf(”%d,%d”.a。c);[1分]

    A3,14,1

    B3,14,2

    C2,04,1

    D2,14,1

  • 7. 函数调用strcat(strcpy(strl,str2),str3)的功能是()。[1分]

    A将字符串str1复制到字符串str2中后再连接到字符串str3之后

    B将字符串str1连接到字符串str2之后再复制到字符串str3之后

    C将字符串str2复制到字符串str1之后再将字符串str3连接到字符串str1之后

    D将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中

  • 8. 有以下程序:voidfun(char*A.char*b){a=b;(*a)++;}main(){charc1='A',c2='a',*p1,*p2;p1=&c1;p2=*c2;fun(p1,p2);print{(”%c%c\n”,c1,c2);)程序运行后的输出结果是()。[1分]

    AAb

    Baa

    CAa

    DBb

  • 9. C语言中的简单数据类型有()。[1分]

    A整型、实型、逻辑型

    B整型、实型、字符型

    C整型、字符型、逻辑型

    D整型、实型、逻辑型、字符型

  • 10. 下列程序的输出结果是()。#include#includevoidfun(intb[]){staticinti=0;do{b[i3+一b[i+1];)while(++i<2);)main(){intk,a[53={1,3,5,4,9);fun(a);for(k=0;k<5;k++)printf(“%d”,a[k]);}[1分]

    A13579

    B48579

    C48549

    D48999

  • 11. 表达式“~0x11”的值是()。[1分]

    A0xFFEE

    B0x71

    C0x0071

    D0xFFEl

  • 12. 为表示关系:X≥y≥z,应使用的C语言表达式是()。[1分]

    A(x>=y)&&(y>=z)

    B(x>=y)AND(y>=x)

    C(x>=y>=z)

    D(x>=y)&(y>=z)

  • 13. 以下程序的输出结果是()。main()(charch[3][4]={"123”,“456”.”78”),*P[3];inli;for(i==-0;i<3;i++)p[i]=ch[i];for(i=0;i<3;i++)printf(”%s”。p[i]);}[1分]

    A123456780

    B123456780

    C12345678

    D147

  • 14. 下列叙述中正确的是()。[1分]

    A一个逻辑数据结构只能有一种存储结构

    B逻辑结构属于线性结构,存储结构属于非线性结构

    C一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率

    D一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率

  • 15. 若有下列定义(设int类型变量占2个字节):inti=8,j=9;则下列语句:printf(”i=%%d,j=%%d\n”,i,j);输出的结果是()。[1分]

    Ai=8,j=9

    Bi=%d,j=%d

    Ci=%8,j=%9

    D8,9

  • 16. #includemain(){inta,b,s;scanf(“%d%d“,8La,8Lb);s=a:if(as=s:printf(”%d\n”,s);}若执行以上程序从键盘上输入3和4时,则输出结果是()。[1分]

    A14

    B16

    C18

    D20

  • 17. 以下程序的输出结果是()。main(){inti;for(i=0;i<3;i++)switch(i)fcase0:printf(”%d”,i);case2:printf(”%d“,i);default:printf(”%d”,i);}[1分]

    A000102

    B000020

    C000122

    D000111

  • 18. 对如下二叉树进行后序遍历的结果为()。[1分]

    AABCDEF

    BDBEAFC

    CABDECF

    DDEBFCA

  • 19. 若执行以下程序时从键盘上输入9,则输出结果是()。main(){intn;scanf("%d",&n);if(n++<10)printf("%d\n",n)elseprintf("%d\n",n--);}[1分]

    A11

    B10

    C9

    D8

  • 20. 有以下程序#includeintfun(chars[]){intn=0:while(*s='0')(n=10*n+*s-'0';s++;}return(n);}main()(chars[10]={'6''1','*','4','*','9','*','0','*'};printf(”%d”,fun(s));)程序运行的结果是()。[1分]

    A9

    B61490

    C61

    D5

  • 21. 下列程序的运行结果为()。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=2,b=3,c=1,d=3,t;printf(”%d\n“,(MAX(a+b,c+d))*100);)[1分]

    A500

    B5

    C4

    D400

  • 22. 有下列程序:main(){inti,j,x=0;for(i-0,i<2;i++){x++:for(j=0;j<=3;j++){if(j%2)continueX++;}x++:}printf(”x=%d\n”,x);f程序执行后的输出结果是()。[1分]

    Ax=4

    Bx=8

    Cx=6

    Dx=12

  • 23. 以下程序的输出结果是()。voidprt(int*m,intn){inti;for(i=0;i<N;I++)MFI]++;}main(){inta[]={1,2,3,4,5),i;prt(a,5);for(i=0;i<5;i++)printf(”%d,”,a[i]);)[1分]

    A1,2,3,4,5

    B2,3,4,5,6

    C3,4,5,6,7

    D2,3,4,5,l

  • 24. 下列叙述中正确的是()。[1分]

    Abreak语句只能用于switch语句体中

    Bcontinue语句的作用是使程序的执行流程跳出包含它的所有循环

    Cbreak语句只能用在循环体内和switch语句体内

    D在循环体内使用break语句和continue语句的作用相同

  • 25. 关于结构化程序设计原则和方法的描述错误的是()。[1分]

    A选用的结构只准许有一个入口和一个出口

    B复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现

    C不允许使用GOTO语句

    D语言中若没有控制结构,应该采用前后一致的方法来模拟

  • 26. 为了避免在嵌套的条件语句ifelse中产生二义性,C语言规定,else子句总是与(.)配对。[1分]

    A缩排位置相同if

    B其前面最近的if

    C其后面最近的if

    D同一行上的if

  • 27. C语言结构体类型变量在程序执行期间,()。[1分]

    A所有成员一直驻留在内存中

    B没有成员驻留在内存中

    C部分成员驻留在内存中

    D只有一个成员驻留在内存中

  • 28. 以下选项中不正确的实型常量是()。[1分]

    A2.607E-1

    B0.8103e2

    C-77.77

    D456e-2

  • 29. 下列程序执行后的输出结果是()。main(){inta[3][3],*P,ij;p一&.aEo]Eo];for(i=P;i<9;i++)p[i]=i-i+1;printf(”%d\n”,a[1][2]);}[1分]

    A3

    B6

    C9

    D随机数

  • 30. 一些重要的程序设计语言(如C语言和Pascal语言)允许过程的递归调用,而实现递归调用中的存储分配通常用()。[1分]

    A

    B

    C数组

    D链表

  • 31. 若有以下程序:#includevoidsub(doublex,double*y,double*z){*Y=*y-1.0;*z=*z+x;)main(){doublea=2.5,b9.0,*pa,*pb;pa=&a;pb=&b;sub(b-a,pa,pa);printf(”%f\n”,a);)程序的输出结果是()。[1分]

    A9.000000

    B1.500000

    C8.000000

    D10.500000

  • 32. 有下列程序:voidsort(inta[],intn){inti,j,t;for(i=0;j<N-1;I++)for(j=i+1;j<N;J++)if(a[i])main(){intaa[1O]={1,2,3,4,5,6,7,8,9,1O),i;sort(aa+2,5);for(i=0;i<10;i++)printf(”%d,”,aa[i]);printf(”\n”);}程序运行后的输出结果是()。[1分]

    A1,2,3,4,5,6,7,8,9,10,

    B1,2,7,6,3,4,5,8,9,10,

    C1,2,7,6,5,4,3,8,9,10,

    D1,2,9,8,7,6,5,4,3,10,

  • 33. 有以下程序段intj;floaty;charname[50];scanf(”%2d%f%s”,&j,&y,name);当执行上述程序段,从键盘上输入555667777abe后,Y的值为()。[1分]

    A55566.0

    B566.0

    C7777.0

    D566777.0

  • 34. 下列程序的输出结果是()。main()finta,b,d=25;a=d/10%9;b=a&&(-1);printf(”%d,%d\n”,a,b);)[1分]

    A6,1

    B2,1

    C6,0

    D2,0

  • 35. 假定所有变量均已正确说明,下列程序段运行后x的值是()。a=b=c=0;x=12;if(!a)x--;elseX=5:if(c)x=3:elsex=4:[1分]

    A11

    B4

    C12

    D3

  • 36. 关系数据库管理系统能实现的专门关系运算包括()。[1分]

    A排序、索引、统计

    B选择、投影、连接

    C关联、更新、排序

    D显示、打印、制表

  • 37. 有下列程序:main(){intx=5;do{printf(“%d”,x-=4);)while(!(--x));)程序的输出结果是()。[1分]

    A1

    B20

    C1-4

    D死循环

  • 38. 设fun()函数的定义形式为voidfun(charch,floatx){…}则下列对函数fun的调用语句中,正确的是()。[1分]

    Afun(”ahc”,3.0);

    Bt=fun('D',16.5):

    Cfun('65',2.8);

    Dfun(32,32);

  • 39. 下列叙述中正确的是()。[1分]

    A只能在循环体内和switch语句体内使用break语句

    Bcotinue语句的作用是结束整个循环的执行

    C在循环体内使用break语句或continue语句的作用相同

    D从多层循环嵌套中退出时,只能使用got0语句

  • 40. 以下程序的输出结果是()。main()(charst[20]=”hello\0\t\\\”;printf(”%d%d\n“,strlen(st),sizeof(st));}[1分]

    A99

    B520

    C1320

    D2020

  • 41. 有下列程序:fun(intx。inty){staticintm=0,i=2;I+=m+1;m=i+x+y;returnm;}Rain(){intj=1,m=1,k;k=fun(i,m);prjntf(”%d,”,k);k=fun(j,m);printf(”%d\n”,k);)执行后的输出结果是()。[1分]

    A5,5

    B5,11

    C11,11

    D11.5

  • 42. 下列能正确进行字符串赋值的是()。[1分]

    Achars[5]={¨ABCDE”);

    Bchars[5]={'A','B','C','D','E'};

    Cchar*s;s=”ABCDE”;

    Dchar*s;printf(”%S”,s);

  • 43. 有以下程序:#includemain()(inta[]={2,4,6,8,lo),y=1,x,*P;p=&a[1];for(x=0;x<3;x++)y+=*(p+x);print{(”%d\n”,Y);}程序的输出结果是()。[1分]

    A17

    B18

    C19

    D20

相关试卷
相关题库