2014年全国计算机等级《二级C语言程序设计》考前押密试题(5)

考试总分:43分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

试卷介绍: 2014年全国计算机等级《二级C语言程序设计》考前押密试题(5)

开始答题

试卷预览

  • 1. 下列给定的程序中,函数proc()的功能是:用选择法对数组中的m个元素按从小到大的顺序进行排序。例如,排序前的数据为:1132-5214则排序后的数据为:-52111432请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#defineM20voidproc(inta[],intn){inti,j,t,P;//****found****for(j=0;j<N-1;J++);{P=j;for(i=j;i<N;I++)if(a[i]<A[P])p=i;t=a[p]];a[p]=a[j];//****found****a[p]=t:}}voidmain(){intarr[M]={11,32,-5,2,14).i,m=5;printf(”排序前的数据:”);for(i=0;i<M;I++)printf(”%d”,arr[i]):printf(”\n”);proc(arr,m):printf(”排序后的顺序:”);for(i=0;i<M;I++)printf(”%d”,arr[i]);printf(”\n”);}}[24分]
  • 2. 请补充函数proc(),该函数的功能是计算下面公式SN的值:例如,当N=20时,SN=29.031674。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。试题程序:#include#include#includedoubleproc(intn){doubles=1.0,s1=0.0;intk;for(【1】;k<=n;k++){s1=s:【2】;return【3】;}voidmain(){intk=0;doublesum:system(”CLS”):printf(”\nPleaseinputN=”):scanf(”%d”,&k);sum=proc(k):printf(”\nS=%Lf”.sum);}[18分]
  • 3. 请编写函数proc(),其功能是:将sir所指字符串中下标为偶数的字符删除.串中剩余字符形成的新串放在t所指数组中。例如,当sir所指字符串中的内容为abcdefg。则在t所指数组中的内容应是bdf。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:#include#include#include#include.%strin9.h>voidproc(char*str,chart[]){)voidmain(){,、hatstr[100].t[100];system(”CLS”):printf(”\nPleaseenterstringstr:”);scanf(”%S”.str):proc(sir,t);printl'(”\nTheresultis:%s\n”,t);)[18分]
  • 4. 有以下程序:#inrllldpmaln(){charch;oh='A'+'5'-'3':printf(”%d,%c\n”,ch,ch);}程序的输出结果是()。[1分]

    A67,C

    BB,C

    Cc,D

    D不确定的值

  • 5. 下列说法正确的是()。[1分]

    A在c语言中,可以使用动态内存分配技术定义元素个数可变的数组

    B在C语言中,数组元素的个数可以不确定,允许随机变动

    C在C语言中,数组元素的数据类型可以不一致

    D在C语言中,定义一个数组后,就确定了它所容纳的元素的个数

  • 6. 下列叙述中错误的是()。[1分]

    A一种数据的逻辑结构可以有多种存储结构

    B数据的存储结构与数据的处理效率无关

    C数据的存储结构与数据的处理效率密切相关

    D数据的存储结构在计算机中所占的空间不一定是连续的

  • 7. 有以下程序:main(){intx,i;for(i=l;i<=50;i++){x=i;if(x%2=0)if(x%3=0)if(x%7=0)printf(”%d,i)”;}}输出结果是()。[1分]

    A28

    B27

    C42

    D41

  • 8. 下列程序的运行结果为()。#includemain(){structdate{intyear,month,day;)today;printf(”%d\n”,sizeof(structdate));[1分]

    A8

    B6

    C10

    D12

  • 9. 软件生命周期中,花费最多的阶段是()。[1分]

    A详细设计

    B软件编码

    C软件测试

    D软件维护

  • 10. 若有定义“floata=25,b,*p=&b;”,则下列对赋值语句“*p=a;”和“p=&a;”的正确解释为()。[1分]

    A两个语句都是将变量a的值赋予变量P

    B*p=a是使P指向变量a,而p=&a是将变量的值赋予变量指针P

    C*p=a是将变量a的值赋予变量b,而&a是使P指向变量a

    D两个语句都是使P指向变量a

  • 11. 在Internet中,域名服务器的主要功能是实现()的转换。[1分]

    AIP地址到域名(主机名字)

    B域名到IP地址

    C主机IP地址和路由器IP地址之间

    D路由器IP地址之间

  • 12. 定义结构体数组:structstu{inthum;charnameE20];}X[5]={1,”1,"LI",2,”ZHAO”,3,”WANG”,4,”ZHANG”,5,”LIU”);for(i=1;i<5;i++)printf(”%d%c”,x[i].hum,x[i].name[2]);以上程序段的输出结果为()。[1分]

    A2A3N4A5U

    B1I2A3H4I

    C1A2N3A4U

    D2H3A4H5I

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

    AZhang

    BZhao

    CWang

    D18

  • 14. 设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句:if(a<B)if(c==d)y=0;elsey=1:该语句所表示的含义是()。[1分]

    Ay=0,a

    By=0,ay=1,a≥by一1,a≥b且c≠d

    Cy=0,a

    Dy=0,ay=1,a<B且C≠D&NBSP;&NBSP;&NBSP;y="1,c≠d

  • 15. 有下列函数定义:fun(floath){printf(”%f,%f\n”,h,h*h);)该函数的类型是()。[1分]

    Aint类型

    Bfloat类型

    Cvoid类型

    D函数无类型说明,定义有错

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

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

    Bputs(sl[i],i)

    Cprint[(”%c%d\n”,s2[i],i)

    Dprintf(”%c”,sl[i]);print[(”%d\n”,i)

  • 17. 有以下函数:charfun(char*p){returnP;}该函数的返回值是()。[1分]

    A无确功的值

    B形参P中存放的地址值

    C一个临时存储单元的地址

    D形参P自身的地址值

  • 18. 在一个C语言源程序文件中所定义的全局变量,其作用域为()。[1分]

    A所在文件的全部范围

    B所在程序的全部范围

    C所在函数的全部范围

    D由具体定义位置和extern说明来决定范围

  • 19. 有下列程序:main(){charp[]={'a','b','c'),q[]=”abc”;printf(”%d%d\n”,sizeof(p),sizeof(q));}程序运行后的输出结果是()。[1分]

    A44

    B33

    C34

    D43

  • 20. 设x=011050,则x=x801252的值是()。[1分]

    A0000001000101000

    B11111101000l1001

    C0000001011100010

    D1100000000101000

  • 21. 以下程序的输出结果是()。main(){intx=0.5;charz='a';printf(”%d\n”,(x&1)&&(z<'z'));}[1分]

    A0

    B1

    C2

    D3

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

    Ai=P

    Ba[p]=a[i]

    Cp=j

    Dp=i

  • 23. 有以下结构说明和变量定义,指针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;

  • 24. 下列程序的输出结果是f)。intf1(intx,inty){returnx>y?x:y;)intf2(intx,inty){returnx>y?Y:x;)main(){inta=4,b=3,c=5,d=2,e,f,g;e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));g=a+b+c十d-e-f;printf(”%d,%d,%d\n”,e,f,g);)[1分]

    A4,3,7

    B3,4,7

    C5.2,7

    D2,5,7

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

    A算法程序的长度

    B算法程序中的指令条数

    C算法程序所占的存储空间

    D算法执行过程中所需要的存储空间

  • 26. 设有下列程序段:charstr[]="HelloWorld":char*ptr;ptr=str;执行上面的程序段后,*(ptr+10)的值为()。[1分]

    A'\O'

    B'0'

    C不确定的值

    D'0'的地址

  • 27. 链表不具有的特点是()。[1分]

    A不必事先估计存储空间

    B町随机访问任意元素

    C插入、删除不需要移动元素

    D所需空间与线性表长度成正比

  • 28. 有以下程序:main(){union{charch[2];imd;d一0x4321;printf(”%x,%x\n”,s.ch[O],s.ch[1]);)S;在16位编译系统上,程序执行后的输出结果是()。[1分]

    A21,43

    B43,21

    C43,00

    D21,00

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

    AProhsbn

    BPrphsbn

    CPrqgsbn

    DProgram

  • 30. 若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是()。imt[3][3],*pt[3],k;for(k=0;k<3;k++)pt[k]-&t[k][o];[1分]

    At[2]Eo]

    Bt[2][2]

    Ctell[2]

    Dt[2][1]

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

    A00001111

    B11111101

    C00000010

    D11000000

  • 32. 若有定义语句:inta[2][3],*p[3];,则以下语句中正确的是()。[1分]

    Ap=a;

    Bp[o]=a;

    Cp[o]=&a[1][2];

    Dp[l]=&a;

  • 33. 利用fseek函数可实现的操作是()。[1分]

    A实现文件的顺序读写

    B改变文件的位置指针

    C实现文件的随机读写

    D以上答案均正确

  • 34. 有以下程序:#includemain(){intaaE33E33-{(2),{4),(6)},i,*p=&.aa[o][o];for(i=0;i<2;i++){i==0)aa[i][i+1]=*p+1;else++P:printf(”%d”,*p);}printf(”\n”);}程序的输出结果是()。[1分]

    A23

    B26

    C33

    D36

  • 35. 能正确表示“当x的取值在[1,10]和[100,11O]范围内为真,否则为假”的表达式是()。[1分]

    A(x>=1)&&(x=100)&&(X<=110)

    B(x>=1)&&(x=100)||(x<=110)

    C(x>=1)&&(x=100)&&(x<=110)

    D(x>=1)||(x=100)||(x<=110)

  • 36. 有以下程序:#includemain(){inty=10;for(;y>0;y——)if(y%3==0){printf(”%d”,——y);continue;)}程序的输出结果是()。[1分]

    A741

    B852

    C963

    D875421

  • 37. 下列程序的输出结果是()。#includevoidp(int*x){printf(”%d”,++*x);}voidmain(){inty=3;p(&y);}[1分]

    A3

    B4

    C2

    D5

  • 38. 若ch为char型变量,k为int型变量(已知字符a的ASCIl码是97),则执行下列语句后输出的结果为()。oh='b';k=10;printf(”%x,%0,”,ch,ch,k);printf(“k=%%d\n”,k);[1分]

    A因变量类型与格式描述符的类型不匹配,输出无定值

    B输出项与格式描述符个数不符,输出为0或不定值

    C62,142,k=%d

    D62,142,k=%10

  • 39. 执行下述程序后,输出的结果是()。#include#defineS(X)X*Xvoidmain(){inta=9,k=3,m=2;a/=S(k+m)/s(k+m);printf(”%d”,a);}[1分]

    A1

    B4

    C9

    D0

  • 40. 若有以下定义:chara;intb;floatC;doubled;则表达式a*b+b-c值的类型为()。[1分]

    Afloat

    Bint

    Cchar

    Ddouble

  • 41. 若有以下程序段,W和k都是整型变量::w=k:LB:if(w==0)gotoLE;W——:printf(”*”)gotoLB:LE;则不能与上面程序段等价的循环语句是()。J[1分]

    Afor(w=k;w!—0;w——)printf(”*”);

    Bfor(w=k;W;——w)printf(”*”);

    Cw=k;while(w——!=O)printf(”*”);

    Dw=k:W++;do{w——;printf(”*”);)while(w!=O);

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

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

    Bx%(-3);

    Ca=a*3=2

    Dv=float(i)

  • 43. 判断char型变量C是否为大写字母的最简单且正确的表达式是()。[1分]

    A'A'<=c<='Z'

    B(c>='A')||(c<='Z')

    C('A'=c)

    D(c>='A')&&(c<='Z')

相关试卷
相关题库