2013年9月全国计算机等级《二级C语言程序设计》上机临考冲刺试卷(2)

考试总分:43分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

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

开始答题

试卷预览

  • 1. 请补充main()函数,该函数的功能是:计算3名学生各科的平均成绩。例如,当score[N][M]={{85,62,89.5,60,69),{90,96,84.5,100,85},{92,97,86,73,85))时,五门学科的平均分为:898586.777.779.7。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填人所编写的若干表达式或语句。试题程序:#include#include#defineN3#defineM5intmain(){inti,j;staticfloatscore[N][M]一{{85,62,89.5,60,69),{90,96,84.5,100,85},{92,97,86,73,85}};staticfloatarr[-N];system("CLS");for(i=0;i<M;I++)arr[i]=0.0:for(i=0;i<【1】;i++){for(j=0;j<【2】;j++)arr[j]+=score[i][j]:}for(i=0;i<M;I++)printf("\nsubject%d\taverage=%5.1f",i+1,【3】);return0;}[18分]
  • 2. 下列给定程序中,函数proc()的功能是:首先把b所指字符串中的字符按逆序存放,然后将str1所指字符串中的字符和Str2所指字符串中的字符,按排列的顺序交叉合并到str所指数组中,过长的剩余字符接在str所指数组的尾部。例如,当str1所指字符串中的内容为ABCDEFG,str2所指字符串中的内容为1234时,str所指数组中的内容应该为A483C2D1EFG;而当str1所指字符串中的内容为1234,str2所指字符串中的内容为ABCEDFG时,str所指数组中的内容应该为1G2F31:4DCBA。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#include#include#includevoidproc(char*strl,char*str2,char*str){inti,j;charch;i=0;j=strleu(str2)-1;//****found****while(i>j){ch=str2[i];str2[i]=str2[j];str2[j]=ch;i++;j--;}while(*str1||*str2){if(*str1){*str=*str1;str++;str1++;)if(*str2){*str=*str2;str++;str2++;)}//****found*****str=0:}voidmain(){chars1[100],s2[100],t[200];system("CLS");printf("\nEnters1string:");scanf("%s",sl);printf("\nEnters2string:");scanf("%s",s2);proc(s1,s2,t);printf("\nTheresultis:%s\n",t);}[24分]
  • 3. 请编写fun()函数,其功能是:计算并输出3~m所有素数的平方根之和。例如,若主函数从键盘给m输入50后,则输出为s=68.665791。请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。注意:m的值要大于2但不大于100。部分源程序给出如下。试题程序:#include#includedoublefun(intm){}voidmain(){intm;doubles;FILE*out:printf("\n\nInputm:");scanf("%d",&m);s=fun(m);printf("\n\ns=%f\n\n",s);out=fopen("outfile.dat","w");for(m=0;m<10;m++)fprintf(out,"%f\n",fun(m+80));felose(out);}[18分]
  • 4. 若变量a、i已正确定义,且i已正确赋值,合法的语句是()。[1分]

    Aa==l

    B++i

    Ca=a++=5

    Da=int(i)

  • 5. 与“y=(x>0?1:x<0?-1:0)”;的功能相同的if语句是()。[1分]

    Aif(x>0)y=1;elseif(x<0)y=1;elsey=0;

    Bif(x)if(x>0)y=1;elseif(x<0)y=-l;elsey=0;

    Cy=-lif(x)if(x>O)y=1;elseif(x=-0)y=0;elsey=-l;

    Dy=0;if(x>=0)if(x>=0)y=1;elsey=-l;

  • 6. 概要设计中要完成的事情是()。[1分]

    A系统结构和数据结构的设计

    B系统结构和过程的设计

    C过程和接口的设计

    D数据结构和过程的设计

  • 7. 下列可作为C语言赋值的语句的是()。[1分]

    Ax一3,y=5

    Ba=b=6

    Ci--;

    Da,c

  • 8. 表达式'5'-'1'的值是()。[1分]

    A整数4

    B字符4

    C表达式不合法

    D字符6

  • 9. 表示关系X<=Y<=Z的C语言表达式为()。[1分]

    A(X<=Y)&&(Y<=Z)

    B(X<=Y)AND(Y<=Z)

    C(X<=Y<=Z)

    D(X<一Y)&(Y<一Z)

  • 10. 以下函数返回a所指数组中最小的值所在的下标值:fun(int*a,intn){inti,j=0,P;p=j;for(i=j;i<N;I++)&NBSP;if(a[i]<A[J])____RETURN(P);}在下划线处应填入的是()。[1分]

    Ai=P

    Ba[p]=a[i]

    Cp=j

    Dp=i

  • 11. 在16位编译系统上,若有定义“inta[]={10,20,30},*p=&a;”,当执行“P++;”后,下列说法错误的是()。[1分]

    AP向高地址移了一个字节

    BP向高地址移了一个存储单元

    CP向高地址移了两个字节

    DP与a+1等价

  • 12. 以下程序的输出结果是()。main(){inta=7,b=8,*P,*q,*r;p=&a;q=&b;r=P;P=q;q=r;printf("%d,%d,%d,%a\n",*P,*q,a,b);}[1分]

    A8,7,8,7

    B7,8,7,8

    C8,7,7,8

    D7,8,8,7

  • 13. 下面描述中,不属于软件危机表现的是()。[1分]

    A软件过程不规范

    B软件开发生产率低

    C软件质量难以控制

    D软件成本不断提高

  • 14. 有如下程序:main(){intn[5]={0,0,0},i,k=2;for(i=0;i&printf("%d\n",n[k]););}该程序的输出结果是()。[1分]

    A不确定的值

    B2

    C1

    D0

  • 15. 设x=015,则x=x^017的值是()。[1分]

    A00001111

    B11111101

    C00000010

    D11000000

  • 16. 对下列二叉树进行中序遍历的结果是()。[1分]

    AACBDFEG

    BACBDFGE

    CABDCGEF

    DFcADBEG

  • 17. 下面的函数调用语句中func函数的实参个数是()。func((f2v1,v2),(v3,v4,v5),(v6,max(v7,v8)))[1分]

    A3

    B4

    C5

    D8

  • 18. 下列程序中c的二进制值是()。chara=2,b=4,c;c=a^b>>2;[1分]

    A00000011

    B00010100

    C00011100

    D00011000

  • 19. 有以下程序:voidfunl(char*p){char*q;q=P;while(*q!='\O'){(*q)++;q++;}}main(){chara[]={"Program"),*P;p=&a[3];funl(p);printf("%s\n",a);}程序执行后的输出结果是()。[1分]

    AProhsbn

    BPrphsbn

    CProgsbn

    DProgram

  • 20. 有如下程序:main(){intx=23;do{printf(”%d”,x--);}while(!x);}该程序的执行结果是()。[1分]

    A321

    B23

    C不输出任何内容

    D陷入死循环

  • 21. 下列程序的输出结果是()。#includemain(){inta=3,b=2,c=1;if(a<B)if(b<0)c=0;elsec++:printf("%d\n",c);}[1分]

    A2

    B0

    C1

    D不确定的值

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

    Ax=4

    Bx=8

    Cx=6

    Dx=12

  • 23. 已知i、j、k为int型变量,若要从键盘输入2、3、4,使i、j、k的值分别为2、3、4,下列正确的输入语句是()。[1分]

    Ascanf("%3d,‰3d,%3d",&i,&j,%k);

    Bscanf("%d,%d,%d",&i,8Lj,&k);

    Cscanf("%d%d%d",&i,&j,&k);

    Dscanf("i=%d,j=%d,k=%d",&i,&j,&k);

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

    Achars[5]={”ABCI)E”);

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

    Cchar*s;s="ABCDE";

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

  • 25. 若有“doublea;”,则正确的输入语句是()。[1分]

    Ascanf("%1f",a);

    Bscanf("%f",&a);

    Cseanf("%1f",&a);

    Dscanf("1e",&a);

  • 26. 下列程序的输出结果是()。#includemain(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=1;case1:case2:a=2default:a+=3;}}printf("%d",a);}[1分]

    A19

    B18

    C6

    D8

  • 27. 栈和队列的共同特点是()。[1分]

    A都是先进先出

    B都是先进后出

    C只允许在端点处插入和删除元素

    D没有共同点

  • 28. 若程序中有宏定义行:#defineN100则以下叙述中正确的是()。[1分]

    A宏定义行中定义了标识符N的值为整数100

    B在编译程序对C源程序进行预处理时用100替换标识符N

    C对C源程序进行编译时用100替换标识符N

    D在运行时用100替换标识符N

  • 29. 结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法[1分]

    A对象

    B数据结构

    C数据流

    D目标

  • 30. 下述程序用来输出两个字符串前7个字符中对应相等的字符及其位置号,则程序空白上应该填写的是()。#includemain(){chars1[]="chinese",s2[]="japanese";inti;for(i=0;s1[i]='\0'&&s2[i]!='\0';i++)if(s1[i]==s2[i]&&i<7)_____________;}[1分]

    Aputchar(s2[i]);putchar(i)

    Bputs(s1[i],i)

    Cprintf("%c%d\n",s2[i]。i)

    Dprintf("%C",s1[]);printf("%d\n",i)

  • 31. 下列程序的输出结果是()。#includemain(){inta[2][3]={{1,2,3),{4,5,6)),(*p)[3],i;p=a;for(i=0;i<3;i++){if(i<2)p[1][i]=p[1][i]-1;elsep[1][i]=1;}printf("%d\n",a[o][1]+a[1][1]+a[1][2]);}[1分]

    A8

    B7

    C12

    D9

  • 32. 有以下程序:main(){inta=1,b=3,C=5,*P;int*p1=&a,*p2=&b,*p3=&c;*p=*p1*(*p2);}执行后的输出结果是()。[1分]

    A1

    B2

    C3

    D4

  • 33. 下述程序的输出结果是()。#includemain(){charchE2][5]-{”1234”,”5678”},*p[2];inti,j,s=0;for(i=0;i<2;i++)p[i]=ch[i];for(i=0;i<2;i++){s=p[i][j]一'0';printf("%d",s);}}[1分]

    A6357

    B6135

    C1357

    D691357

  • 34. 以下程序的输出结果是()。main(){char*s="12134211";intv[4]=(0,0,0,0),k,i;for(k=0;s[k];k++){switch(s[k]){case'1':i=0;case'2':i=1;case'3':i=2;case'4':i=3;}}v[i]++:}for(k=0;k<4;k++)printf("%d",v[k]);[1分]

    A4211

    B0008

    C4678

    D8888

  • 35. 若变量a、b、x、i都已正确定义并赋值,则以下符合C语言语法的表达式是()。[1分]

    Aa+=a-=(b=4)*(a=3)

    Bx%(-3);

    Ca=a*3=2

    Dy=float(i)

  • 36. 简单的交换排序方法是()。[1分]

    A快速排序

    B选择排序

    C堆排序

    D冒泡排序

  • 37. 下列程序的输出结果是()。#includeintb=2:intfunc(int*a){b+=*a;returnb;}main(){inta=1,t=2;t+=func(&a):printf("%d\n",t);}[1分]

    A4

    B5

    C6

    D8

  • 38. 有以下程序:voidfun2(chara,charb){printf(”%c%c”,a,b);}chara='A',b='B';voidfunl(){a='C';b='D';}main(){funl();printf("%c%c",a,b);fun2('E','F');}程序的运行结果是()。[1分]

    ACDEF

    BABEF

    CABCD

    DCDAB

  • 39. 有下列函数定义:intfun(doublea,doubleb){returna*b;}若下列选项中所用变量都已经正确定义并赋值,错误的函数调用是()。[1分]

    Aif(fun(x,y)){……}

    Bz=fun(fun(x,y),fun(x,y));

    Cz=fun(fun(X,y)x,y);

    Dfun(x,y);

  • 40. 以下叙述中不正确的是()。[1分]

    A在不同的函数中可以使用相同名字的变量

    B函数中的形式参数是局部变量

    C在一个函数内定义的变量只在本函数范围内有效

    D在一个函数内的复合语句中定义的变量在本函数范围内有效

  • 41. 设有定义语句:intx[-6]={2,4,6,8,5,7),*p=X,i;要求依次输出X数组6个元素中的值,不能完成此操作的语句是()。[1分]

    Afor(i=0;i<6;i++)printf("%2d",*(p++));

    Bfor(i=0;i<6;i++)printf("%2d",*(pq-i));

    Cfor(i=0;i<6;i++)printf("%2d",*p++);

    Dfor(i=0;i<6;i++)printf("%2d",*(p)++);

  • 42. 若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是()。[1分]

    A函数的实参和其对应的形参共占同一存储单元

    B形参只是形式上的存在,不占用具体存储单元

    C同名的实参和形参占同一存储单元

    D函数的形参和实参分别占用不同的存储单元

  • 43. 对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为()。[1分]

    A125

    Bn/2

    Cn

    Dn+1

相关试卷
相关题库