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

考试总分:43分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

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

开始答题

试卷预览

  • 1. str是一个由数字和‘,:母字符组成的字符串,由变量num传人字符串长度。请补充函数proc(),该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。例如,str="abc3de987f9621",结果为:3987621。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。试题程序:#include#defineM80intbb[M];intproc(charstr[],intbb[],intnum){inti,n=0;for(i=0;i<NUM;I++){if(【1】){bb[n]=【2】:n++:}}return【3】;}voidmain(){charstr[M];intmum=0,n,i;printf("Enterastrin9:\n");gets(str);while(str[num])num++:n=proc(str,bb,num);printf("\nbb=");for(i=0;i<N;I++)printf("%d",bb[i]);}[18分]
  • 2. 学生的记录由学号和成绩组成,M名学生的数据已在主函数中放人结构体数组stu中,请编写函数proc(),它的功能是:把指定分数范围之外的学生数据放在b所指的数组中,分数范围之外的学生人数由函数值返回。例如,输入的分数是70和79,则应当把分数低于70和高于79的学生数据输出,不包含70分和79分的学生数据。主函数中把70放在low中,把79放在heigh中。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:#include#defineM16typedefstruct{charnum[10];ints:}STREC;intproc(STREC*a,STREC*b,int1,inth){}voidmain(){STRECstu[M]={{"GA005",55),{"GA003",96},{"GA002",80),{"GA004",68),{"GA001",88},{"GA007",74},{"GA008",85),{"GA006",89},{"GA015",90),{"GA013”,53),{"GA012",66},{"GA014”,82),{"GA011",73},{"GA017",69),{"GA018",64),{"GA016",86}};STRECh[M];inti,n,low,heigh,t;printf("Enter2integernumberlow&heigh:");scanf("%d%d",&low,&heigh);if(heigh{t=heigh:heigh=low;low=t;}n=proc(stu,h,low,heigh);printf("Thestudent’Sdataout%d--%d:\n",low,heigh);for(i=0;i<N;I++)printf("%S%4d\n",h[i].num,h[i].s);//输出指定分数范围内的学生记录printf("\n");}[18分]
  • 3. 下列给定的程序中,函数proc()的功能是:判断字符ch是,与str所指字符串中的某个字符相同;若相同,则什么也不做,若不同,则将其插在串的最后。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#include#include#include//****found****voidproc(charstr,charch){while(*str&&*str!=ch)str++;//****found****if(*str==ch){str[0]=ch;//****found****str[1]='0':}}voidmain(){charstr[81],ch;system("CLS");printf("\nPleaseenterastring:");gets(str);printf("\nPleaseenterthecharactertosearch:");ch=getchar();proc(str,ch);printf("\nTheresultis%s\n",str);}[24分]
  • 4. 有以下程序#includemain(){inta=1,b=2,c=3,x;x=(a^b)&C;printf("%d",x);}程序的运行结果是()。[1分]

    A0

    B1

    C2

    D3

  • 5. 下列程序输出结果是()。#includemain(){chara[]={'a','b','C','d','e','f','\0').inti,j;i=sizeof(a);j=strlen(a);printf("%d,%d",i,j);}[1分]

    A7,7

    B7,6

    C6,6

    D6,7

  • 6. 在面向对象方法中,()描述的是具有相似属性与操作的一组对象。[1分]

    A属性

    B事件

    C方法

    D

  • 7. 有以下程序:main(){inta=0,b=l0,c=0,d=0;if(a=1)b=1;c=2;elsed=3;printf("%d,%d,%d,%d\n",a,b,C,d);}程序输出()。[1分]

    A0,1,2,0

    B0,0,0,3

    C1,1,2,0

    D编译有错

  • 8. 函数fseek()的正确调用形式是()。[1分]

    Afseek(位移量,起始点,文件类型指针);

    Bfseek(文件类型指针,位移量,起始点);

    Cfseek(文件类型指针,起始点,位移量);

    Dfseek(起始点,位移量,文件类型指针);

  • 9. 执行语句“for(i=1;i++<4;);”后,变量i的值是()。[1分]

    A3

    B4

    C5

    D不定

  • 10. 以下程序运行后,输出结果是()。#include#definePT5.5#defineS(x)PT*x*Xmain(){inta=1,b=2:printf("%4.1f\n",s(a+b));}[1分]

    A49.5

    B9.5

    C22.0

    D45.0

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

    A0xFFEE

    B0x71

    C0x0071

    D0xFFF1

  • 12. 有下列程序:main(){intk=5:while(--k)printf("%d",k=1);printf("\n");}执行后的输出结果是()。[1分]

    A1

    B2

    C4

    D死循环

  • 13. 有以下程序:#include<structstu{intnum;charname[10]:intage;}voidfun(structstu*p){printf("%s\n",(*p).name);}themain(){structstustudents[3]={{9801,"Zhang".20},{9802,"Wang",19},{9803,"Zhao",18}}fun(students+2);}输出的结果是()。[1分]

    AZhang

    BZhao

    CWang

    D18

  • 14. 有以下程序:fun(intx,inty){return(x+y);)main(){inta=1,b=2,c=2,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}执行后的结果是()。[1分]

    A6

    B7

    C8

    D9

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

    A000102

    B000020

    C000122

    D000111

  • 16. 有以下程序:main(){intk=5;while(--k)printf("%d",k-=3);printf("\n");}执行后的输出结果是()。[1分]

    A1

    B2

    C4

    D死循环

  • 17. 若有定义语句:inta[3][6];,按在内存中的存放顺序,a数组的第10个元素是()。[1分]

    Aa[o][4]

    Ba[1][3]

    Ca[o][3]

    Da[1][4]

  • 18. 已知函数fread的调用形式为“fread(buffer,size,count,fp);”,其中buffer代表的是()。[1分]

    A存放读入数据项的存储区

    B一个指向所读文件的文件指针

    C一个指针,是指向输入数据存放在内存中的起始地址

    D一个整型变量,代表要读入的数据项总数

  • 19. 有以下结构体说明和变量的定义,且指针P指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是()。structnode{chardata;structnode*next:}a,b,*p=&a,*q=&b;[1分]

    Aa.next=q;

    BP.next=&b;

    Cp->next=&b;

    D(*p).next=q;

  • 20. 若有定义“intb[8],*p=b;”,则p+6表示()。[1分]

    A数组元素b[6]的值

    B数组元素b[6]的地址

    C数组元素b[7]的地址

    D数组元素b[o]的值加上6

  • 21. 有以下程序:#includemain(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break:elsei--;}i+=11:a+=i:}printf("%d\n",a);}程序的输出结果是()。[1分]

    A62

    B63

    C33

    D32

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

    A1

    B20

    C1-4

    D死循环

  • 23. 有以下程序#includemain(){FILE*fp;inta[0]一{1,2,3,0,0},i;fp=fopen("d2.dat,"wb");fwrite(a,sizeof(int),5,fp);fwrite(a,sizeof(int),5,fp);fclose(fp);fp=fopen("d2.dat","rb");fread(a.sizeof(int),10,fp);fclose(fp);for(i=0;i<10;i++)printft("%d",a[i]);}程序的运行结果是()。[1分]

    A1,2,3,0,0,o,0,0,0,0,

    B1,2,3,1,2,3,0,0,0,0,

    C123,0,0,0,0,123,0,0,0,0,

    D1,2,3,0,0,1,2,3,0,0,

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

    A3

    B6

    C9

    D随机数

  • 25. 若有定义:“inta[2][3];”,则对a数组的第i行第j列元素的正确引用为()。[1分]

    A*(*(a+i)+j)

    B(a+i)[j]

    C*(a+i+j)

    D*(a+i)+j

  • 26. 下列程序执行后的输出结果是()。main(){intx='f';printf("%c\n",'A'+(x-'a'+1));}[1分]

    AG

    BH

    CI

    DJ

  • 27. 下列特征中不是面向对象方法的主要特征的是()。[1分]

    A多态性

    B继承

    C封装性

    D模块化

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

    A5.5

    B5,11

    C11,11

    D11,5

  • 29. 算法的时间复杂度是指()。[1分]

    A执行算法程序所需要的时间

    B算法程序的长度

    C算法执行过程所需要的基本运算次数

    D算法程序中的指令条数

  • 30. 已知数据表A中每个元素距其最终位置不远,为了节省时间,应采用的算法是()。[1分]

    A堆排序

    B直接插入排序

    C快速排序

    D直接选择排序

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

    A用E—R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系

    B用E—R图只能表示实体集之间一对一的联系

    C用E—R图只能表示实体集之间一对多的联系

    D用E—R图表示的概念数据模型只能转换为关系数据模型

  • 32. 下面程序的功能是输出以下形式的金字塔图案:main(){inti,j;*for(i=l;i<-4;i++)***{for(j=1;j<=4-i;j++)printf("");*****for(j=1;j<=____;j++)printf("*");*******printf("\n");}}在下划线处应填入的是()。[1分]

    Ai

    B2*i一1

    Cn=2*i+1

    Di+2

  • 33. 以下程序的输出结果是()。main(){inta=1,b;for(b=1,b=8)break;if(a%2==1){a+=5;continue;}a=3;}printf("%d\n",b);[1分]

    A3

    B4

    C5

    D6

  • 34. 如果进栈序列为el、e2、e3、e4,则可能的出栈序列是()。[1分]

    Ae3、el、e4、e2

    Be2、e4、e3、el

    Ce3、e4、e2

    D任意顺序

  • 35. 以下程序的输出结果是()。main(){intRum=0;while(num<=2){num++;printf(”%d\n”,num);}}[1分]

    A1

    B1

    C1234

    D1223

  • 36. 有下列程序:intfun(intn){if(n==1)}return1;elsereturn(n+fun(n-1));}main(){intx;scanf("%d",&x);x=fun(x);printf("%d\n",x);)执行程序时,给变量x输入10,程序的输出结果是()。[1分]

    A55

    B54

    C65

    D45

  • 37. 有下列程序:intfun(intx[],intn){staticintsum=0,i:for(i0;ireturnsum;}main(){inta[]={1,2,3,4,5),b[]一{6,7,8,9),s=0:s=fun(a,5)+fun(b,4);printf("%d\n",s):}程序执行后的输出结果是()。[1分]

    A45

    B50

    C60

    D55

  • 38. 下述程序执行的输出结果是()。#includemain(){chara[2][4];strcpy(a,"are");strcpy(a[1],"you");a[0][3]='&';printf("%s\n",a):}[1分]

    Aare&you

    Byou

    Care

    D

  • 39. 若变量e为char类型,能正确判断出C为小写字母的表达式是()。[1分]

    A'a'<=c<='2'

    B(c>='a')||(c<='2')

    C('a'c)

    D(c>='a')&&(c<='2')

  • 40. 有以下结构说明和变量定义,指针p、q、r分别指向链表中的3个连续结点。structnode{intdata;structnode*next;)*p,*q,*r;现要将q所指结点从链表中删除,同时要保持链表的连续,以下不能按要求完成操作的语句是()。[1分]

    Ap->next=q->next;

    BP-next=P->next->next;

    Cp->next=r;

    Dp=q->next;

  • 41. 在C语言程序中可用做用户标识符的是()。[1分]

    Avoid123BBN

    Baa_abccas

    Cas+b3-123If

    D6fDoSIG

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

    A11

    B4

    C12

    D3

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

    Ax=4

    Bx=8

    Cx=6

    Dx=12

相关试卷
相关题库