全国计算机等级考试2019年二级C语言程序设计模拟试题2-真题无答案_第1页
全国计算机等级考试2019年二级C语言程序设计模拟试题2-真题无答案_第2页
全国计算机等级考试2019年二级C语言程序设计模拟试题2-真题无答案_第3页
全国计算机等级考试2019年二级C语言程序设计模拟试题2-真题无答案_第4页
全国计算机等级考试2019年二级C语言程序设计模拟试题2-真题无答案_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机等级考试2019年二级C语言程序设计模拟试题2(总分100,做题时间120分钟)选择题(每题1分,共40分)1.

下列叙述中正确的是(

)。A

循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B

在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C

在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D

循环队列中元素的个数是由队头指针和队尾指针共同决定2.

下列各序列中不是堆的是(

)。A

(91,85,53,36,47,30,24,12)B

(91,85,53,47,36,30,24,12)C

(47,91,53,85,30,12,24,36)D

(91,85,53,47,30,12,24,36)3.

设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=15,rear=20。现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为(

)。A

4B

6C

m-5D

m-64.

定义无符号整数类为UInt,下面可以作为类UInt实例化值的是(

)。A

-369B

369C

**D

整数集合{1,2,3,4,5}5.

一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈f顺序是(

)。A

12345ABCDEB

EDCBA54321C

ABCDE12345D

54321EDCBA6.

该系统结构图的最大扇出数是(

)。

A

nB

1C

3D

47.

软件设计中模块划分应遵循的准则是(

)。A

低耦合低内聚B

高耦合高内聚C

低耦合高内聚D

内聚与耦合无关8.

在数据库中,数据模型包括数据结构、数据操作和(

)。A

数据约束B

数据类型C

关系运算D

查询9.

在数据库设计中,描述数据间内在语义联系得到E-R图的过程属于(

)。A

逻辑设计阶段B

需求分析阶段C

概念设计阶段D

物理设计阶段10.

一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般都有一个教练,则实体运动队和队员的联系是(

)。A

一对多B

一对一C

多对一D

多对多11.

以下叙述中错误的是(

)。A

使用三种基本结构构成的程序只能解决简单问题B

结构化程序由顺序、分支、循环三种基本结构组成C

C语言是一种结构化程序设计语言D

结构化程序设计提倡模块化的设计方法12.

C源程序中不能表示的数制是(

)。A

十进制B

八进制C

二进制D

十六进制13.

关于C语言标识符,以下叙述错误的是(

)。A

标识符可全部由数字组成B

标识符可全部由下划线组成C

标识符可全部由小写字母组成D

标识符可全部由大写字母组成14.

若有定义语句:

intx=10;

则表达式x-=x+x的值为(

)。A

10B

-20C

0D

-1015.

以下叙述中正确的是(

)。A

分支结构是根据算术表达式的结果来判断流程走向的B

在C语言中,逻辑真值和假值分别对应1和0C

对于浮点变量x和y,表达式:x==y是非法的,会出编译错误D

关系运算符两边的运算对象可以是C语言中任意合法的表达式16.

以下合法的转义字符是(

)。A

'\x41'B

'\0x41'C

'\X41'D

'\0X41'17.

设有定义:doublex=2.12;,以下不能完整输出变量x值的语句是(

)。A

printf("x=%5.0f\n",x);B

printf("x=%f\n",x);C

printf("x=%1f\n",x);D

printf("x=%0.5f\n",x);18.

设有定义:

inta,b;floatx,y;

则以下选项中对语句所作的注释叙述错误的是(

)。A

scanf("%d%d",&a,&b,&x);/*多余的输入项不能获得输入数据*/B

scanf("%d%d%f",&a,&b);/*多余的格式符%f完全不起作用*/C

scanf("%d%f%d",&a,&b,&x);/*输入项与格式符类型不匹配,变量b和x得不到正确的输入数据*/D

scanf("Input:%d%d",&a,&b);/*格式串中允许加入格式符以外的字符串*/19.

有以下程序#include

main()

{

intx=1,y=0;

if(!x)y++;

elseif(x==0)

if(x)y+=2;

elsey+=3;

printf("%d\n",y);

}程序运行后的输出结果是(

)。A

0B

2C

1D

320.

有以下程序#include

main()

{

inta,b;

for(a=0;a<3;a++)

{

scanf("%d",&b);

switch(b)

{

default:printf("%d,",++b);

case1:printf("%d,",++b);

case2:printf("%d,",++b);

}

}

}执行时输入:123<回车>,则输出结果是(

)。A

2,3,3,4,5,6,B

2,3,4,C

2,2,3,4,4,4,D

2,3,4,3,4,4,21.

有以下程序#include

main()

{

inta=-1,b=-1;

for(;++a;)++b;

printf("%d,%d\n",a,b);

}程序运行后的输出结果是(

)。A

0,-1B

0,0C

-1,-1D

结果不确定22.

以下叙述中正确的是(

)。A

三种循环for、while、do-while可以互相嵌套B

循环发生嵌套时,最多只能两层C

循环嵌套时,如果不进行缩进形式书写代码,则会有编译错误D

for语句的圆括号中的表达式不能都省略掉23.

有以下程序#include

main()

{

inta=1,b=1;

while(a--)

b--;

printf("%d,%d\n",a,b);

}程序的运行结果是(

)。A

-1,-1B

0,0C

-1,0D

1,124.

以下数组定义中错误的是(

)。A

intx[2][3]={1,2,3,4,5,6};B

intx[][3]={0};C

intx[][3]={{1,2,3},{4,5,6}};D

intx[2][3]={{1,2},{3,4},{5,6}};25.

有以下程序#include

main()

{

char*p1=0;

int*p2=0;

float*p3=0;

printf("%d,%d,%d\n",sizeof(p1),sizeof(p2),sizeof(p3));

}程序运行后的输出结果是(

)。A

4,4,4B

1,4,8C

1,2,4D

1,1,426.

字符数组a和b中存储了两个字符串,判断字符串a和b是否相等,应当使用的是(

)。A

if(strcmp(a,b)==0)B

if(strcpy(a,b))C

if(a==b)D

if(a=b)27.

C语言程序的模块化通过以下哪个选项来实现?

)A

函数B

变量C

程序行D

语句28.

有以下程序#include

intm1(intx,inty)

{

returnx<=y?x:y;

}

intm2(intx,inty)

{

returnx<=y?y:x;

}

intfun(inta,intb)

{

returna+b;

}

main()

{

intx=2,y=3,z=1;

printf("%d\n",fun(m1(x,y),m2(y,z)));

}程序的运行结果是(

)。A

5B

6C

4D

329.

以下叙述正确的是(

)。A

C语言函数不可以单独编译B

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

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

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

有以下程序#include

intf(intx);

main()

{

intn=1,m;

m=f(f(f(n)));

printf("%d\n",m);

}

intf(intx)

{

returnx*2;

}程序运行后的输出结果是(

)。A

4B

2C

8D

131.

有以下程序:#include

voidfun(inta[],intn)

{

inti,t;

for(i=0;i

{

t=a[i];

a[i]=a[n-1-i];

a[n-1-i]=t;

}

}

main()

{

intk[10]={1,2,3,4,5,6,7,8,9,10},i;

fun(k,5);

for(i=2;i<8;i++)printf("%d",k[i]);

printf("\n");

}程序运行的结果是(

)。A

345678B

876543C

1098765D

32167832.

若有定义语句:

intyear=2009,*p=&year;

以下不能使变量year中的值增至2010的语句是(

)。A

(*p)++;B

*p++;C

++(*p);D

*p+=1;33.

有以下程序#include

#include

voidfun(double*p1,double*p2,double*s)

{

s=(double*)calloc(1,sizeof(double));

*s=*p1+*(p2+1);

}

main()

{

doublea[2]={1.1,2.2},b[2]={10.0,20.0},*s=a;

fun(a,b,s);

printf("%5.2f\n",*s);

}程序的输出结果是(

)。A

**B

**C

**D

**34.

以下叙述中错误的是(

)。A

当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULLB

函数可以返回地址值C

改变函数形参的值,不会改变对应实参的值D

可以给指针变量赋一个整数作为地址值35.

设p是指针变量,语句p=NULL;等价于(

)。A

p='0';B

p='';C

p="";D

p=0;36.

以下叙述中正确的是(

)。A

在C语言中,预处理命令行都以“#”开头B

预处理命令行必须位于C源程序的起始位置C

#include必须放在C程序的开头D

C语言的预处理不能实现宏定义和条件编译的功能37.

若要使用C数学库中的sin函数,需要在源程序的头部加上

#include

关于引用数学库,以下叙述正确的是(

)。A

将数学库中sin函数的源程序插入到引用处,以便进行编译链接B

将数学库中sin函数链接到编译生成的可执行文件中,以便能正确运行C

通过引用math.h文件,说明sin函数的参数个数和类型,以及函数返回值类型D

实际上,不引用math.h文件也能正确调用sin函数38.

有以下程序#include

typedefstructstu

{

charname[10];

chargender;

intscore;

}STU;

voidf(STUa,STU*b)

{

*b=a;

printf("%s,%c,%d,",b->name,b->gender,b->score);

}

main()

{

STUa={"Zhao",'m',290},b={"Qian",'f',350};

f(a,&b);

printf("%s,%c,%d\n",,b.gender,b.score);

}程序运行后的输出结果是(

)。A

Zhao,m,290,Zhao,m,290B

Qian,f,350,Zhao,m,290C

Qian,f,350,Qian,f,350D

Zhao,m,290,Qian,f,35039.

下面结构体的定义语句中,错误的是(

)。A

structord{intx;inty;intz;}structorda;B

structord{intx;inty;intz;};structorda;C

structord{intx;inty;intz;}a;D

struct{intx;inty;intz;}a;40.

有以下程序#include

typedefstruct{intb,p;}A;

voidf(Ac)

{

intj;

c.b+=1;

c.p+=2;

}

voidmain()

{

inti;

Aa={1,2};

f(a);

printf("%d,%d\n",a.b,a.p);

}程序运行后的输出结果是(

)。A

2,4B

1,2C

1,4D

2,3程序填空题41.

给定程序中,函数fun功能是:找出100~999之间(含100和999)所有整数中各位上数字之和为x(x为一正整数)的整数,然后输出;符合条件的整数个数作为函数值返回。

例如,当x值为5时,100~999之间各位上数字之和为5的整数有:104、113、122、131、140、203、212、221、230、302、311、320、401、410、500。共有15个。当x值为27时,各位数字之和为27的整数是:999。只有1个。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的结构!/**********code.c**********/

#include

intfun(intx)

{

intn,s1,s2,s3,t;

n=0;

t=100;

/**********found**********/

while(t<=①______)

{

/**********found**********/

s1=t%10;s2=(②______)%10;

s3=t/100;

/**********found**********/

if(s1+s2+s3==③______)

{

printf("%d",t);

n++;

}

t++;

}

returnn;

}

voidmain()

{

intx=-1;

while(x<0)

{

printf("Pleaseinput(x>0):");

scanf("%d",&x);

}

printf("\nTheresultis:%d\n",fun(x));

}

/**********-code.c**********/程序修改题42.

绐定程序MODI1.C中函数fun的功能是:从低位开始取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为:7654321时,t中的数为:642。

请改正程序中的错误,使它自能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!/**********code.c**********/

#include<stdio.h>

/**********found**********/

voidfun(longs,longt)

{

longsl=10;

s/=10;

*t=s%10;

/**********found**********/

while(s<0)

{

s=s/100;

*t=s%10*sl+*t;

sl=sl*10;

}

}voidmain()

{

longs,t;

printf("\nPleaseenters:");

scanf("%ld",&s);

fun(s,&t);

printf("Theresultis:%ld\n",t);

}

/**********-code.c**********/程序设计题43.

学生的记录由学号和成绩组成,N名学生的数据已在主函数中敲入结构体数组s中,请编写函数fun,它的功能是:按分数的高低排列学生的记录,高分在前。注意:部分源程序给出如下。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。/**********code.c**********/

#include<stdio.h>

#defineN16

typedefstruct

{

charnum[10];

ints;

}STREC;

voidfun(STRECa[])

{

STRECtmp;

inti,j;

for(i=1;i<N;i++)

for(j=0;j<N-1;j++)

{

/*请按题目要求,完成一下代码*/

}

}

main()

{

STRECs[N]=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论