2013年9月全国计算机等级《二级C语言程序设计》专家预测卷(1)

考试总分:43分

考试类型:模拟试题

作答时间:60分钟

已答人数:967

试卷答案:有

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

开始答题

试卷预览

  • 1. 下列给定程序中,函数proc()的功能是:根据输入的3个边长(整型值),判断能否构成三角形:若能构成等边三角形,则返回3;若是等腰三角形,则返回2;若能构成三角形则返回1;若不能,则返回0。例如,输入3个边长为3,4,5,实际输入时,数与数之间以Enter键分隔而不是逗号。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#includeintproc(inta,intb,intc){if(a+b>c&&b+c>a&&a+c>b){if(a==b&&b==c)//****found****return1;elseif(a==b||b==c||a==c)return2;//****found****elsereturn3;}elsereturn0;}voidmain(){inta,b,C,shape;printf("\nlnputa,b,C:");scanf("%d%d%d",&a,&b,&c);printf("\na=%d,b=%d,c=%d\n",a,b,c);shape=proc(a,b,c);printf("\n\nTheshape:%d\n",shape);}[24分]
  • 2. 学生的记录由学号和成绩组成,M名学生的数据已在主函数中放入结构体数组stu中,请编写函数proc(),其功能是:按分数的高低排列学生的记录,高分在前。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:#include#defineMl6typedefstruct{charnum[l0];intS;}STREC:voidproc(STRECa[]){inti,j;STRECt;for(i=1;i排序*/for(j=0;j<M-1;J++)&NBSP;。if(a[j].s的记录,高分在前*/{t=a[j];a[j]=a[j+1];a[j+1]=t;)}voidmain(){STRECstu[M]={{"GA005",85),{"GA003",76},{"GA002",69},{"GA004",85),{"GA001",91),{"GA007",72),{"GA008",64),{"GA006",87),{"GA015",85),{"GA013",91),{"GA012",64),{¨GA014",91),{"GA011",66),{"GA017",64},{"GA018",64),{"GA016",72}};inti;proc(stu);printf("Thedataaftersorted:\n");for(i=0;i<M;I++){if(i%4==0)//每行输出4个学生记录printf("n");printf("%s%4d",stu[i],num,stu[i].s);}printf("\n");}[18分]
  • 3. 请补充main()函数,该函数的功能是:输入两个正整数numl和num2,求这两个数的最大公约和最小公倍数。例如,若输入的两个正整数为12,4,则它们的最大公约数为12,最小公倍数为4。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填人所编写的若干表达式或语句。试题程序:#include#includevoidmain(){inta,b,numl,num2,t;system("CLS"):printf("\nInputtwonumbers:\n");scanf("%d,%d",&numl,&num2);if(numl<NUM2){a=num2;b=num1:}else{a=num1;b=num2;}while(【1】){t=【2】a=b;b=t:}printf(“greatestcommondivisor:%d\n",a);printf("leastcommonmultiple:%d\n",【3】;}[18分]
  • 4. 以下不能输出字符A的语句是(注:字符A的ASCIl码值为65,字符a的ASCIl码值为97)()。[1分]

    Aprint[("%c\n",'a'-32);

    Bprint[("%d\n",'A');

    Cprintf("%c\n",65);

    Dprintf("%c\n",'B'-1);

  • 5. 设有如下函数定义:intfun(intk){if(k<1)return0;elseif(k==l)returnl;elsereturnfun(k-1)+1:}若执行调用语句:“n=fun(3);”,则函数fun总共被诃用的次数是()。[1分]

    A2

    B3

    C4

    D5

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

    AC语言程序是由过程和函数组成的

    BC语言函数可以嵌套调用,例如:fun(fun(x))

    CC语言函数不可以单独编译

    DC语言中除了main函数,其他函数不可作为单独文件形式存在

  • 7. 有以下程序:#includemain(){inta=1,b=0;if(--a)b++;elseif(a=0)b+=2;elseb+=3:print[("%d\n",b);}程序运行后的输出结果是()。[1分]

    A0

    B1

    C2

    D3

  • 8. 有以下程序:#includevoidfunc(intn){inti;for(i=0;i<=n;i++)printf("*"):printf("#");}main(){func(3);printf("????");func(4);printf("n\");程序运行后的输出结果()。[1分]

    A****#????***#

    B***#????****#

    C**#????****#

    D****#????*****#

  • 9. 结构化程序所要求的基本结构不包括()。[1分]

    A顺序结构

    BGOT0跳转

    C选择(分支)结构

    D重复(循环)结构

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

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

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

    C不允许使用GOT0语句

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

  • 11. 以下C语言用户标识符中,不合法的是()。[1分]

    A_1

    BAaBc

    Cab

    Da--b

  • 12. 若变量已正确定义,在语句“if(W)printf("%d\n",k);”中,以下不可替代w的是()。[1分]

    Aab+c

    Bch=getchar()

    Ca==b+C

    Da++

  • 13. 关于C语言中数的表示,以下叙述中正确的是()。[1分]

    A只有整型数在允许范围内能精确无误地表示,实型数会有误差

    B只要在允许范围内整型数和实型数都能精确地表示

    C只有实型数在允许范围内能精确无误地表示,整形数会有误差

    D只有用八进制表示的数才不会有误差

  • 14. 以下选项中关于C语言常量的叙述错误的是()。[1分]

    A所谓常量,是指在程序运行过程中,其值不能被改变的量

    B常量分为整型常量、实型常量、字符常量和字符串常量

    C常量可分为数值型常量和非数值常量

    D经常被使用的变量可以定义成常量

  • 15. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。则实体部门和职员间的联系是()。[1分]

    A1:m联系

    Bm:n联系

    C1:1联系

    Dm:l联系

  • 16. 设有定义:“inta=1,b=2,C=3;”,以下语句中执行效果与其他三个不同的是()。[1分]

    Aif(a>b)c=a,a=b,b=C;

    Bif(a>b){c=a,a=b,b=C;}

    Cif(a>b)c=a;a=b;b=C;

    Dif(a>b){c=a;a=b.b=C;)

  • 17. 下述程序的输出结果是()。#includemain(){inti;for(i=1;i=20)&&(i*i<=lOO))break;}printf("%d\n",i*i);}[1分]

    A49

    B36

    C25

    D64

  • 18. 对于循环队列,下列叙述中正确的是()。[1分]

    A队头指针是固定不变的

    B队头指针一定大于队尾指针

    C队头指针一定小于队尾指针

    D队头指针可以大于队尾指针,也可以小于队尾指针

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

    AC语言的可执行程序是由一系列机器指令构成的

    B用C语言编写的源程序不能直接在计算机上运行

    C通过编译得到的二进制目标程序需要连接才可以运行

    D在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件

  • 20. 下列叙述中,不符合良好程序设计风格的是()。[1分]

    A程序的效率第一,清晰第二

    B程序的可读性好

    C程序中有必要的注释

    D输人数据前要有提示信息

  • 21. 有以下程序:#includemain(){inta=2,b=2,C=2;print{("%d\n",a/b&c);}程序运行后的输出结果是()。[1分]

    A0

    B1

    C2

    D3

  • 22. 有以下程序:#include#defineS(x)(x)"x"2main(){intk一5,j=2;Drintf("%printf,",S(k+j));printf("%printf\n",S((k—j)));}程序运行后的输出结果是()。[1分]

    A98,18

    B39,11

    C39,18

    D98,11

  • 23. 有以下程序:#includedoublef(doublex);main(){doublea=0;inti;for(i=0;i<30;i+=10)a+=f((double)i);printf("%5.of\n",a);}doublef(doublex){returnx*x+1;}程序运行后的输出结果是()。[1分]

    A503

    B401

    C500

    D1404

  • 24. 有以下程序:#includedstdi0.h>#definef(x)X*x*xmain(){inta=3,S,t;s=f(a+1);t=f((a+1));printf("%d,%d\n",S,t);}程序运行后的输出结果是()。[1分]

    A10,64

    B10,10

    C64,10

    D64,64

  • 25. fun函数的功能是:通过键盘输入给x所指的整型数组所有元素赋值。在下划线处应填写的是()。#include#defineN5voidfun(intx[N]){intm;for(m=N-t;m>=O;m-)scanf("%d",____);}[1分]

    A%&X[++m]

    B&x[m+1]

    Cx+(m++)

    Dx+m

  • 26. 有以下程序:#includevoidfun(charc){if(c>'X')fun(c-1):printf("%C",c);}traia(){fun('z');}程序运行后的输出结果是()[1分]

    Axyz

    Bwxyz

    Cxzy

    Dzvx

  • 27. 若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是()。[1分]

    Aswitch(a+9){casecl:y=a-b;casec2:y=a+b;}

    Bswitcha*b{casel0:x=a+b;default:y=a-b;}

    Cswitch(a+b){casel:case3:y=a+b;break;case0:case4:y=a-b;}

    Dswitch(a*a+b*b){default:break;case3:y=a+b;break;case2:y=a-b;break;}

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

    Achars[5]={"ABCDE"};

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

    Cchar*S;S="ABCDE";

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

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

    A非零的数值型常量有正值和负值的区分

    B常量是在程序运行过程中值不能被改变的量

    C定义符号常量必须用类型名来设定常量的类型

    D用符号名表示的常量叫符号常量

  • 30. 有以下程序:#includestructstu{intnum;charname[l0];intage;};voidfun(structstu*p){printf("%s\n",p->name);}main(){structstux[3]={{01,"Zhang",20),{02,"Wang",l9},{03,"Zha0",l8}};fun(x+2);}程序运行后的输出结果是()。[1分]

    AZhang

    BZhao

    CWang

    D19

  • 31. 有以下程序:#include#includemain(){int*a,*b,*C;a=b=c=(int*)malloc(sizeof(int));*a=1;*b=2,*c=3;a=b:printf("%d,%d,%d\n",*a,*b,*c);}程序运行后的输出结果是()。[1分]

    A3,3,3

    B2,2,3

    C1,2,3

    D1,1,3

  • 32. 有以下程序(说明:字母A的ASCIl码值是65):#includevoidfun(char*s){while(*s){if(*s%2)printf("%C",*s);s++;}}main(){chara[]="BYTE";。Fun(a);printf("\n");}程序运行后的输出结果是()。[1分]

    ABY

    BBT

    CYT

    DYE

  • 33. 以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能。#defineMIN-2147483647intfindmax(intx[],intn){inti,max;for(i=0;i<N;I++){max=MIN;if(maxreturnmax;}造成错误的原因是()。[1分]

    A定义语句“inti,max;”中max未赋初值

    B赋值语句“max=MIN;”中,不应给max赋MIN值

    C语句“if(max

    D赋值语句“max—MIN;”放错了位置

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

    A数据的逻辑结构与存储结构必定是一一对应的

    B由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构

    C程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构

    D以上三种说法都不对

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

    A软件过程不规范

    B软件开发生产率低

    C软件质量难以控制

    D软件成本不断提高

  • 36. 以下选项中,合法的一组C语言数值常量是()。[1分]

    A028.5e-3-0xf

    B12.OXa234.5eO

    C.l774cl.5Oabc

    D0x8A10,0003.e5

  • 37. 有以下程序:#includevoidfun(char*C,intd){*c=*c+1,d=d+1;printf(%"c%,c",*c,d);}main(){charb='a'a='A';fun(&b,a);printf(%"c,%c\n",b,a);)程序运行后的输出结果是()。[1分]

    Ab,B,b,A

    Bb,B,B,A

    Ca,B,B,a

    Da,B,a,B

  • 38. 有三个关系R、S和T如下:由关系R和S得到关系T的操作是()。[1分]

    A自然连接

    B

    C

    D

  • 39. 面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是()。[1分]

    A模拟现实世界中不同事物之间的联系

    B强调模拟现实世界中的算法而不强调概念

    C使用现实世界的概念抽象地思考问题从而自然地解决问题

    D不强调模拟现实世界中的算法而强调概念

  • 40. 若有定义"int(*pt)[3];",则下列说法正确的是()。[1分]

    A定义了基类型为int的三个指针变量

    B定义了基类型为int的具有三个元素的指针数组pt

    C定义了一个名为*pt、具有三个元素的整型数组

    D定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组

  • 41. 设x、Y和z是int型变量,且x=4,y=6,z=8,则下列表达式中值为0的是()。[1分]

    Ax&&Y

    Bx<=Y

    Cx‖y+z&&y-z

    D!((x<Y)&&!Z‖1)

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

    A算法程序的长度

    B算法程序中的指令条数

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

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

  • 43. 以下函数不能用于向文件中写人数据的是()。[1分]

    Aftell

    Bfwrite

    Cfputc

    Dfprintf

相关试卷
相关题库