全国计算机二级C语言笔试模拟85.docx

上传人:b****6 文档编号:15645536 上传时间:2023-07-06 格式:DOCX 页数:23 大小:22.48KB
下载 相关 举报
全国计算机二级C语言笔试模拟85.docx_第1页
第1页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第2页
第2页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第3页
第3页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第4页
第4页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第5页
第5页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第6页
第6页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第7页
第7页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第8页
第8页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第9页
第9页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第10页
第10页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第11页
第11页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第12页
第12页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第13页
第13页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第14页
第14页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第15页
第15页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第16页
第16页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第17页
第17页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第18页
第18页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第19页
第19页 / 共23页
全国计算机二级C语言笔试模拟85.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

全国计算机二级C语言笔试模拟85.docx

《全国计算机二级C语言笔试模拟85.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言笔试模拟85.docx(23页珍藏版)》请在冰点文库上搜索。

全国计算机二级C语言笔试模拟85.docx

全国计算机二级C语言笔试模拟85

二级C语言笔试模拟85

一、选择题

下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的。

1.数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及

A.数据的存储结构

B.计算方法

C.数据映象

D.逻辑存储

答案:

A

2.一些重要的程序语言(如C语言和Pascal语言)允许过程的递归调用。

而实现递归调用中的存储分配通常用

A.栈

B.堆

C.数组

D.链表

答案:

A

3.链表不具有的特点是

A.不必事先估计存储空间

B.可随机访问任一元素

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

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

答案:

B

4.对建立良好的程序设计风格,下面描述正确的是

A.程序应简单、清晰、可读性好

B.符号名的命名只要符合语法

C.充分考虑程序的执行效率

D.程序的注释可有可无

答案:

A

5.程序设计语言的基本成分是数据成分、运算成分、控制成分和

A.对象成分

B.变量成分

C.语句成分

D.传输成分

答案:

D

6.在软件测试设计中,软件测试的主要目的是

A.实验性运行软件

B.证明软件正确

C.找出软件中全部错误

D.发现软件错误而执行程序

答案:

D

7.下列选项中,不属于模块间耦合的是

A.数据耦合

B.同构耦合

C.异构耦合

D.公用耦合

答案:

C

8.如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是

A.选择

B.投影

C.连接

D.并

答案:

B

9.下列叙述中,正确的是

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

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

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

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

答案:

C

10.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。

其中数据独立性最高的阶段是

A.数据库系统

B.文件系统

C.人工管理

D.数据项管理

答案:

A

11.下列选项中属于C语言构造类型的是

A.指针类型

B.空类型

C.枚举类型

D.数组类型

答案:

D

12.表达式(double)(20/3)的值为

A.6

B.6.0

C.2

D.3

答案:

B

13.设有定义:

longx=123456L;,则以下能够正确输出变量x值的语句是

A.printf("x=%d\n",x);

B.printf("x=%ld\n",x);

C.printf("x=%8dL\n",x);

D.printf("x=%LD\n",x);

答案:

B

14.下列不正确的表达式是

A.a>b>c

B.c--,++b,a+=1

C.a=c+b>n-m=k

D.p++

答案:

C

15.以下选项中非法的字符串常量是

A.""

B."\X0\011"

C."\\"\t"

D."\n\007\n"

答案:

C

16.若有说明语句"inta;floatb;”,以下输入语句正确的是

A.scanf("%f%f",&a,&b);

B.scanf("%f%d",&a;&b);

C.scanf("%d,%f",&a,&b);

D.scanf("%6.2f%6.2f",&a,&b);

答案:

C

17.若有如下定义并赋值:

charch='a',a;

则执行语句"printf("%d",a=ch+2.6);”后的输出结果是

A.c

B.d

C.99

D.100

答案:

C

18.若有如下程序:

main()

{intm=-1;

printf("%d,%u,%0,%x",m,m,m,m);}

则程序运行后的输出结果是

A.-1,65535,177777,ffff

B.-1,-1,177777,fffe

C.-1,1,177777,ffff

D.-1,65535,177776,fffe

答案:

A

19.若有以下说明:

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};

charc='a',d,g;

则数值为4的表达式是

A.a[g-c]

B.a[4]

C.a['d'-'c']

D.a['d'-c]

答案:

D

20.下列if语句非法的是

A.if(a=B)x=1;

B.if(!

3.9)

C.if('a'&&x==y)y++;

D.if(x>y)scanf("%f",&y)elsescanf("%f",&x);

答案:

D

21.若有如下程序:

main()

{intx=1,n;

for(n=0;n<5;n++)

{switch(n)

{case3:

x+=3;

case2:

x+=2;

case1:

case0:

default:

x+=4;}}

printf("%d\n",x);}

则程序执行后的输出结果是

A.10

B.18

C.28

D.30

答案:

C

22.有以下程序

main()

{char*s="abcde";

s+=2;

printf("%ld\n",s);

}

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

A.cde

B.字符c的ASCII码值

C.字符c的地址

D.出错

答案:

C

23.以下程序段的输出为

staticchara[]="language",b[]="progratne";

char*ptr1,*ptr2;

intk;

ptr1=a;ptr2=b;

for(k=0;k<7;k++)

if(*(ptr1+k)==*(ptr2+k))

printf("%c",*(ptr1+k));

A.gae

B.ga

C.language

D.有语法错误

答案:

B

24.设有如下程序:

#include"stdio.h"

main()

{charc;

intm=0,n=0;

while((c=getchar())!

='\n')

{if(c>='A'&&c<='Z')m++;

elseif(c>='a'&&c<='z')n++;}

printf("m=%d,n=%d",m,n);}

如果从键盘上输入:

AbCdefGHj<回车>,则程序运行后的输出结果是

A.m=5,n=4

B.m=4,n=5

C.m=9,n=0

D.无确定值

答案:

B

25.若有以下定义语句:

doublea[5],*p=a;inti=0;

对a数组元素错误的引用是

A.a[i]

B.a[5]

C.p[4]

D.p[i]

答案:

B

26.若有如下程序:

main()

{inta=0,t=0;

while(!

a!

=0)t+=a++;

printf("%d,%d\n",t,A);}

则程序运行后的输出结果是

A.0,1

B.1,0

C.0,0

D.1,1

答案:

A

27.若有以下定义语句:

floata[11]={0,1,2,3,4,5,6,7,8,9,10};

则以下叙述中错误的是

A.a数组在内存中占44个字节

B.a数组的最后一个元素为a[10]

C.a数组的第一个元素为a[0]

D.以上定义语句给a数组所赋初值是整数,因此不能正确赋初值

答案:

D

28.有以下程序:

main()

{charnn[4][3]={"12","34","56","78"),*pn[4];

intk,s=0;

for(k=0;k<4;k++)pn[k)=nn[k];

for(k=1;k<4;k+=2)

s=s*10+pn[k][1]-'0';

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

}

程序的输出结果是

A.48

B.26

C.3478

D.576

答案:

A

29.C语言中,可用于说明函数的是

A.auto或static

B.extern或auto

C.static或extern

D.auto或register

答案:

C

30.若二维数组a有m列,且设a[0][0]位于数组的第一个位置上,则计算任一元素a[i][j]在数组中的位置的式子为

A.i*m+j

B.j*m+i

C.i*m+j-1

D.i*m+j+1

答案:

D

31.下面程序的输出结果是

func(intx)

{staticinta=2;

return(a+=x);}

rnain()

{intb=2,c=4,d;

d=func(b);

d=func(c);

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

A.4

B.6

C.8

D.12

答案:

C

32.以下程序运行后的输出结果是

main()

{chars[]="1234",*ps;

for(ps=s;ps<s+3;ps++)printf("%c",ps);

printf("\n");

}

A.123

B.112123

C.1234

D.乱码

答案:

D

33.以下关于宏的叙述中正确的是

A.宏名必须用大写字母表示

B.宏替换时要进行语法检查

C.宏替换不占用运行时间

D.宏定义中不允许引用已有的宏名

答案:

C

34.如果文件1包含文件2,文件2中要用到文件3的内容,而文件3中要用到文件4的内容,则可在文件1中用三个#include命令分别包含文件2、文件3和文件4。

在下列关于这几个文件包含顺序的叙述中,正确的一条是

A.文件4应出现在文件3之前,文件3应出现在文件2之前

B.文件2应出现在文件3之前,文件3应出现在文件4之前

C.文件3应出现在文件2之前,文件2应出现在文件4之前

D.出现的先后顺序可以任意

答案:

A

35.有以下程序段

main()

{chara[7]="abcdef";

charb[4]="ABC";

strcpy(a,b);

printf("%c",a[5]);

}

程序段运行后的输出结果是

A.a

B.\0

C.e

D.f

答案:

D

36.下面程序的输出结果是

#include<stdio.h>

f(b,n)

intb[],n;

{inti,r;

r=1;

for(i=0;i<=n;i++)

r=r*b[i];

returnr;

}

main()

{intx,a[]={2,3,4,5,6,7,8,9};

x=f(a,3);

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

}

A.720

B.120

C.24

D.6

答案:

B

37.下面程序的输出结果是

#include"stdio.h"

fun(x)

intx;

{

inty=0;

staticintz=5;

z=x++,y++;

return(z);

}

main()

inta=4,i,j;

for(i=0;i<2;i++)

j=fun(a++);

printf("%d",j);

}

A.0

B.3

C.4

D.5

答案:

D

38.对于以下程序段,设a和q都是整型变量,

a=q;

Loop:

if(a==0)gotoEnd;

Elseif(a>0){printf("&");a--;gotoLoop;}

ElsegotoEnd;

End;

不能与上面程序等价的是

A.a=q;

do

{f(a<0)break;

a--;printf("*");

}while(a);

B.a=q;

for(;a>0;a--)printf("&");

C.a=q;

while(a)

{printf("&");a--;}

D.for(a=q;a>0;--a,printf("*"));

答案:

C

39.有以下程序

#include<stdio.h>

#definePT5.5

#defineS(x)PT*x*x

main()

{inta=1,b=2;

printf("%4.1f\n",S(a+b));

}

程序运行后的输出结果是

A.49.5

B.9.5

C.22.0

D.45.0

答案:

B

40.设有以下语句:

structSS

{intno;charname[10];}PERSON;

则下面叙述中错误的是

A.struct是结构体类型的关键字

B.structSS是结构体类型

C.PERSON是结构体类型名

D.name是结构体成员名

答案:

C

41.若有以下说明和定义:

fun(int*c){……}

main()

{int(*a)()=fun,*b(),w[10],c;

}

在必要的赋值之后,对fun函数的正确调用语句是

A.a=a(w);

B.(*a)(&c);

C.b=*b(w);

D.fun(b);

答案:

B

42.指针变量p的基类型为double,并已指向一连续存储区,若p中当前的地址值为65490,则执行p++后,p中的值为

A.65490

B.65492

C.65494

D.65498

答案:

D

43.某个C程序中有4个函数t、u、v和w,执行时t调用了u和v,u调用了t和w,v调用了w,w调用了t和v。

以下叙述中正确的是

A.这4个函数都间接递归调用了自己

B.除函数t外,其他函数都间接递归调用了自己

C.除函数u外,其他函数都间接递归调用了自己

D.除函数v和w外,其他函数都间接递归调用了自己

答案:

A

44.设有如下的程序段:

inta[]=(1,2,3,4,5),*t;

t=a;

则下列说法正确的是

A.a和t的内容相同

B.a数组的长度和t所指的字符串长度相等

C.a和t完全相同

D.指针变量t指向数组a的第一个元素

答案:

D

45.若定义了以下函数:

voidf(……)

{……

*p=(double*)malloc(10*sizeof(double));

……

}

p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是

A.double*p

B.float**p

C.double**p

D.float*p

答案:

C

46.有以下程序:

#defineH15

#defineH2H1+1

#defineH3H2*H2/2

main()

{ints=0,k=H3;

while(k--)s++;

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

}

程序的输出结果是

A.30

B.10

C.29

D.19

答案:

B

47.下列程序的输出结果是

main()

{charch[2][5]={"6934","8254"},*p[2];

inti,j,s=0;

for(i=0;i<2;i++)

p[i]=ch[i];

for(i=0;i<2;i++)

for(j=0;p[i][j]>'\0'&&p[i][j]<='9';j+=2)

s=10*s+p[i][j]-'0';

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

}

A.6385

B.69825

C.63825

D.693825

答案:

A

48.以下程序

#include<string.h>

main()

{chara1[80],a2[80],*s1=a1,*s2=a2;

gets(s1);gets(s2)

if(!

strcmp(s1,s2))printf("*");

elseprintf("#");

printf("%d\n",strlen(strcat(s1,s2)));

}

如果从键盘上输入:

book<回车>

book<空格><回车>

则输出结果是

A.*8

B.#9

C.#6

D.*9

答案:

B

49.已知字符'0'的ASCII码的十进制数为48,并且数组的第0个元素在低位,有以下程序

#include<stdio.h>

main()

{

union{inti[2];longk:

charc[4];}r,*s=&r;

s->i[0]=0x39;s->i[1]=0x38;printf("%c\n",s->c[0]);

}

程序运行后的输出结果是

A.39

B.9

C.38

D.8

答案:

B

50.若有下面的说明和定义,则sizeof(structaA)的值是

struetaa

{intr1;doubler2floatr3;

unionuu{charu1[5];

longu2[2];

}ua;

}mya;

A.30

B.29

C.24

D.22

答案:

D

二、填空题

请将每空的正确答案写在【1】~【20】序号的横线上。

1.在一个容量为15的循环队列中,若头指针front=6,尾指针Year=9,则该循环队列中共有个元素。

答案:

3

2.软件工程的出现是由于。

答案:

软件危机的出现

3.软件设计模块化的目的是。

答案:

降低复杂性

4.软件开发环境是全面支持软件开发全过程的集合。

答案:

软件工具

5.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、和自定义完整性。

答案:

参照完整性

6.下面程序的功能是输出数组中最大的数,由a指针指向该元素。

请填空。

main()

{ints[]={6,7,2,13,9,1,12,10,5,8,4,3,11},*a,*b;

for(b=s,a=s;b-s<13;b++)

if()a=b;

printf("%d",*a);}

答案:

*b>*a

7.表达式10+'a'+1.5-0.5*'B'的结果是。

答案:

75.5

8.以下函数用以求x的y次方。

补足所缺语句。

Doublefun(doublex,inty)

{inti;doublez=1;

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

z=;

returnz;

}

答案:

[8]<y+1

[9]z*x

9.若输入字符串:

abcde<回车>,则以下while循环体将执行次。

while((ch=getchar())=='e')printf("*");

答案:

0

10.选择程序中的输入输出语句,以满足题目给定的输入输出数据形式。

main()

{inta;floatb;

}

输入形式:

3.52<空格>6<回车>

输出形式:

a*b=21.12

答案:

[11]scanf("%f<空格>%d",&b,&a);

[12]printf("a,b=%5.2f",a*b);

11.mystrlen函数的功能是计算str所指字符串的长度,并作为函数值返回。

请填空。

intmystrlen(char*str)

{inti;

for(i=0;!

='\0';i++);

return();

}

答案:

[13]str[i]或str+i

[14]i

12.函数fun的功能是使一个字符串按逆序存放。

请填空。

voidfun(charstr[])

{charm;inti,j;

for(i=0,j=strlen(str);i<;i++,j--)

{m=str[i];

str[i]=;

str[j-1]=m;

}

printf("%s\n",str);

}

答案:

[15]strlen(str)/2

[16]str[j-1]

13.下面程序的功能是求整数m、n的最大公约数,请填空。

main()

{intm,n,r;

scanf("%d,%d",m,n);

if(){r=m;m=n;n=r;}

while()

{r=m%n;m=n;n=r;}

printf("%d",m);

}

答案:

[17]m<n

[18]n!

=0

14.下面程序的功能是两个整数进行交换,请填空。

sub(int*x,int*y)

{

z=*x;*x=*y;*y=z;

return;}

main()

{intm,n,*t1,*t2;

scanf("%d,%d",&m,&n);

t1=&m;t2=&n;

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

答案:

[19]intz;

[20]sub(t1,t2);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2