全国计算机二级C语言分类模拟题507.docx

上传人:b****1 文档编号:1082255 上传时间:2023-04-30 格式:DOCX 页数:16 大小:21.79KB
下载 相关 举报
全国计算机二级C语言分类模拟题507.docx_第1页
第1页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第2页
第2页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第3页
第3页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第4页
第4页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第5页
第5页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第6页
第6页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第7页
第7页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第8页
第8页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第9页
第9页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第10页
第10页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第11页
第11页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第12页
第12页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第13页
第13页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第14页
第14页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第15页
第15页 / 共16页
全国计算机二级C语言分类模拟题507.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

全国计算机二级C语言分类模拟题507.docx

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

全国计算机二级C语言分类模拟题507.docx

全国计算机二级C语言分类模拟题507

二级C语言分类模拟题507

选择题

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

A.65490

B.65492

C.65494

D.65498

答案:

D

2.对于while(!

E)s;,若要执行循环体s,则E的取值应为______。

A.E等于1

B.E不等于0

C.E不等于1

D.E等于0

答案:

D

[解答]while语句的一般形式为:

while(表达式)语句;,其中表达式是循环条件,语句为循环体。

while语句的语义是:

计算表达式的值,当值为真(非0)时,执行循环体语句。

该题中如要执行语句s,则!

E应为真,因此E应等于0,故D选项正确。

3.简单程序设计步骤中不包括______。

A.编码

B.确定算法

C.安装编译程序

D.调试

答案:

C

[解答]简单程序设计步骤为确定数据结构、确定算法、编码、调试、整理文档,不包括安装编译程序,故答案为C选项。

4.在长度为n的有序线性表中进行二分法查找,最坏情况下需要比较的次数是______。

A.O(n)

B.O(n2)

C.O(log2n)

D.O(nlog2n)

答案:

C

[解答]当有序线性表为顺序存储时才能用二分法查找。

可以证明的是,对于长度为n的有序线性表,在最坏情况下,二分法查找只需要比较log2n次,而顺序查找需要比较n次,因此本题答案为C。

5.软件生命周期是指______。

A.软件的定义和开发阶段

B.软件的需求分析、设计与实现阶段

C.软件的开发阶段

D.软件产品从提出、实现、使用维护到停止使用退役的过程

答案:

D

[解答]通常把软件产品从提出、实现、使用、维护到停止使用、退役的过程称为软件生命周期。

A、B、C选项均为生命周期的一部分。

故选D选项。

6.以下叙述正确的是

A.C语言比其他语言高级

B.C语言可以不用编译就能被计算机识别执行

C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式

D.C语言出现的最晚、具有其他语言的一切优点

答案:

C

[解答]C语言是一种高级语言,必须编译成目标代码才能执行,故选项B错误;与其他语言相比C语言更接近于硬件,更“低级”:

程序语言是不断发展的,不断有新的语言出现,C语言不是出现最晚的,故选项A和选项D错误;高级语言类似于人类的自然语言和数学语言。

所以,c选项为所选。

7.设有函数定义:

voidsub(intk,charch){…}则以下对函数sub的调用语句中,正确的是______。

A.sub(1,97);

B.sub(2,'97');

C.n=sub(3,'a');

D.sub(4,"a");

答案:

A

[解答]函数的参数有两个,第一个是整型,第二个是字符类型,在调用函数时,实参必须一个是整型,一个是字符型相容的类型(整型)。

A选项中97为字符‘a’的ASCII码,可以作为字符传入函数,A选项正确。

B选项‘97’不是合法字符,字符单引号里面只能有一个字符,B选项错误。

函数sub返回类型为空,即不返回任何值,故C选项中将函数返回值赋给n是不正确的调用方法,C选项错误。

D选项“a”为字符串,也不是合法的字符,D选项错误。

8.有以下程序

#include<stdio.h>

main()

{inta[5]={2,4,6,8,10},*p,**k;

p=a;k=&p;

printf("%d",*(p++));

printf("%d\n",**k);

}

程序运行后的输出结果是______。

A.24

B.44

C.22

D.46

答案:

A

[解答]*(p++),表达式为a[0]的值,为2,执行后p指向a[1],**k为*p实际为a[1],输出4,所以选择A。

9.设有定义语句int(*f)(int);,则以下叙述正确的是______。

A.f是基类型为int的指针变量

B.f是指向函数的指针变量,该函数具有一个int类型的形参

C.f是指向int类型一维数组的指针变量

D.f是函数名,该函数的返回值是基类型为int类型的地址

答案:

B

[解答]本题考查的是指向函数的指针。

语句“int(*f)(int);”是对一个函数的声明,其中f是指向该函数的指针,该函数有一个整型的参数,函数返回值类型为整型。

故答案选B。

10.以下程序段中,与语句“k=a>b?

(b>c?

1:

0):

0;”功能相同的是______。

A.if(a>b)&&(b>c)k=1;

elsek=0;

B.if((a>b)||(b>c))k=1;

elsek=0;

C.if(a<=b)k=0;

elseif(b<=c)k=1;

D.if(a>b)k=1;

elseif(b>c)k=1;

elsek=0;

答案:

A

[解答]本题考查了双重三目运算符的用法。

例如:

表达式a>b?

c:

d可以看成,当a>b时取c的值,否则取d的值。

在本题中k=a>b?

(b>c?

1:

0):

0可以看做:

当b>c时为真,则k=a>b?

1:

0。

当b<c时则k=a>b?

0:

0。

也就是说,当a>b并且b>c时,k=1,否则k=0。

所以A选项符合题意。

11.数据库管理系统中负责数据模式定义的语言是______。

A.数据定义语言

B.数据管理语言

C.模式描述语言

D.数据控制语言

答案:

C

[解答]模式描述语言(DataDescriptionLanguage,DDL)是用来描述、定义的,体现、反映了数据库系统的整体现。

12.有下列程序:

main()

{intx=5;

do

{printf("%d",x-=4);}

while(!

(--x));

}

程序的输出结果是______。

A.1

B.20

C.1-4

D.死循环

答案:

C

[解答]本题考查do-while循环。

先执行do的内容,也就是printf语句,x=x-4=1,输出1,判断while循环的控制条件,--x=0,则!

(--x)为非零,循环条件成立,执行下一次循环;x=x-4=-4,输出-4,判断while循环的条件,--x=-5,则!

(--x)为零,循环条件不成立,结束循环。

13.以下程序的输出结果是______。

#include<stdio.h>

main()

{inta[3][3]={0,1,2,0,1,2,0,1,2),i,j,s=1;

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

for(j=i;j<=i;j++)

s+=a[i][a[j][j]];

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

}

A.3

B.4

C.1

D.9

答案:

B

14.有以下程序

#include<stdio.h>

main()

{FILE*fp;inti,a[6]={1,2,3,4,5,6};

fp=fopen("d2.dat","w+");

for(i=0;i<6;i++)fprintf(fp,"%d\n",a[i]);

rewind(fp);

for(i=0;i<6;i++)fscanf(fp,"%d",&a[5-i]);

fclose(fp);

for(i=0;i<6;i++)printf("%d,",a[i]);

}

程序运行后的输出结果是______。

A.6,5,4,3,2,1,

B.1,2,3,4,5,6,

C.4,5,6,1,2,3,

D.1,2,3,3,2,1,

答案:

A

[解答]第一个循环将数组a里数据写入文件,rewind函数将文件指针回到开头,第二个循环将文件里数据倒序写入a数组,第三个循环将a数组数据输入,则是a之前数据里的倒序,选择A。

15.以下选项中,不能正确赋值的是______。

A.chars1[10];s1="chest";

B.chars2[]={'C','t','e','s','t'};

C.chars3[20]="Chest";

D.char*s4="Ctest\n"

答案:

A

[解答]语言中不能将字符串常量直接赋给数组。

但在赋初值时可以。

16.以下程序中与语句k=a>b?

(b>c?

1:

0):

0;功能等价的是

A.if((a>b)&&(b>c))k=1;

elsek=0;

B.if((a>b)‖(b>c))k=1;

elsek=0;

C.if(a<=b)k=0;

elseif(b<=c)k=1;

elsek=0;

D.if(a>b)k=1;

elseif(b<c)k=1;

答案:

A

[解答]三目运算表达式的规则为如果“?

”前面的表达式的值为真,则取“:

”前的表达式的值,否则,取“:

”后面表达式的值。

分析题目中给出的表达式可知,如果a>b和b>c同时成立,k=1,否则k=0。

17.假定x和y为double型,则表达式x=2,y=x+3/2的值是______。

A.3.500000

B.3

C.2.000000

D.3.000000

答案:

D

[解答]在x=2,y=x+3/2中,3/2=1,2+1=3,因此表达式的值为3,因为x、y为double型变量,故选择D选项。

18.以下选项中,与k=n++完全等价的表达式是。

A.k=n,n=n+1

B.n=n+1,k=n

C.k=++n

D.k+=n+1

答案:

A

[解答]k=n++的意思是先将n的值赋给k,然后n的值再加1,选项A)符合题意;选项B)和C)是先使n的值加1,然后再赋值给k;选项D)等价于k=k+(n+1)。

19.算法的时间复杂度是指

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

B.算法程序的长度

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

D.算法程序中的指令条数

答案:

C

[解答]算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度。

所谓算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算的次数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。

20.若变量已正确定义,在if(W)printf("%d\n",k);中,以下不可替代W的是______。

A.a<>b+c

B.ch=getchar()

C.a==b+c

D.a++

答案:

A

[解答]选项A是非法的表达式,C语言中没有<>运算符。

21.以下叙述中错误的是______。

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

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

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

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

答案:

C

[解答]在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。

符号常量在使用之前必须先定义,其一般形式为:

#define标识符常量。

22.字符串”\nabcdef\\”的长度是______。

A.8

B.6

C.10

D.4

答案:

A

23.若有定义和语句:

inta,b;scanf("%d,%d",&a,&b);以下选项的输入数据中,不能把值3赋给变量a,5赋给变量b的是______。

A.3,5,

B.3,5,4

C.3,5

D.3,5

答案:

C

[解答]在输入3和5之间除逗号外不能有其他字符。

24.以下选项中不合法的标识符是______。

A.print

B.FOR

C.&a

D._00

答案:

C

[解答]合法的标识符只能由字母、数字或下划线组成。

C选项中&a出现非法字符“&”。

故本题答案为C。

25.有以下程序

#include<stdio.h>

main()

{inti,s=0,t[]={1,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2)s+=*(t+i);

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

}

程序执行后的输出结果是______。

A.25

B.20

C.45

D.36

答案:

A

[解答]本题考查的是通过数组首地址引用数组之素。

当数组名出现在表达式中时,它类似于一个指针常量,该指针始终指向该数组第1个元素的位置,它的指向不能被改变。

但它又与普通的指针常量有所区别:

对数组名使用sizeof运算符时,得到整个数组所占内存的大小;而对于指针常量,在TC中返回的始终是2(TC中,一个指针占2个字节的内存)。

所以,要获得数组t的第i个元素的内容,既可以使用常规的t[i]表达式,也可以将数组名t看作一个指针常量,使用表达式*(t+i)来获取数组t的第i个元素的内容。

在本题中,for循环会循环5次,循环变量i从0开始每次增加2,所以s=t[0]+t[2]+t[4]+t[6]+t[8]=25。

26.若变量都已正确说明,则以下程序段______。

#include<stdio.h>

main()

{inta=3;

intb=2;

printf(a>b?

"***a=%d":

"###bb=%d",a,b);}

A.输出为:

***a=3

B.输出为:

###b=3

C.输出为:

***a=3##b=5

D.全部错误

答案:

A

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

A.变量

B.函数

C.程序行

D.语句

答案:

B

[解答]C语言程序的模块化通过函数来体现,所以选择B。

28.有以下程序:

#include<stdio.h>

#include<string.h>

main()

{

charstr[12]={'s','t','r','I','n','g'};

printf("%d\n",strlen(str));

}

程序运行后的输出结果是______。

A.6

B.7

C.11

D.12

答案:

A

[解答]数组初始化时,如果在说明数组时给出了长度,但没有给所有的元素赋予初始值,而只依次给前面的几个数组元素赋予初值,那么C语言将自动对余下的元素赋初值,如果为字符数组,自动赋值“\0”,即str[12]={'s','t','r','i','n','g','\0',‘\0','\0','\0','\0','\0'}。

strlen函数求字符串长度,统计长度时以“\0”结束,即统计到长度为6时结束,strlen函数返回值为6,故A选项正确。

29.在软件开发过程中,软件结构设计是描述______。

A.数据存储结构

B.软件体系结构

C.软件结构测试

D.软件控制过程

答案:

B

[解答]从工程管理角度来看,软件设计分两步完成:

概要设计和详细设计。

概要设计(又称结构设计)将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式。

30.若变量c为char类型,能正确判断出c为小写字母的表达式是______。

A.'a'<=c<='z'

B.(c>='a')||(c<='z')

C.('a'<=c)and('z'>c)

D.(c>='a')&&(c<='z')

答案:

D

[解答]字符型数据在计算机内部是以ASCII存储的,英文大写字母和小写字母在ASCII码表中都是连续的,大写字母A到Z是从65到90的,小写字母a到z是从97到122,所以只要变量c大于a并且小于z就能保证其为小写字母。

31.以下对结构体变量mix中成员x的正确引用是______。

struct

{intt;intx;

}mix,*p;

p=&mix;

A.(*p).mix.x

B.(*p).x

C.p->mix.x

D.p.mix.x

答案:

B

[解答]结构体变量中的成员有3种引用方式:

①结构体变量名.成员名;②指针变量名->成员名:

③(*指针变量名).成员名。

32.有以下程序:

#include<stdio.h>

main()

{shortc=124;

c=c______;

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

若要使程序的运行结果为248,应在下画线处填入的是______。

A.>>2

B.|248

C.&0248

D.<<1

答案:

D

[解答]短整型在存储时占用16位,按照移位运算,如果右移两位就等于原数除以4,结果为31,如果左移一位相当于原数乘以2,结果为248,所以选择D。

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

#include<stdio.h>

intf(intn);

main()

{inta=3,s;

 s=f(a);s=s+f(a);printf("%d\n",s);

}

intf(intn)

{staticinta=1;

 n+=a++;

 returnn;

}

A.7

B.8

C.9

D.10

答案:

C

[解答]本题考查静态局部变量。

第一次调用f函数时,将实参a值3传给形参变量n,此时,静态局部变量a的值为1,经过n+=a++运算后,n为4,a为2,return语句将4带回到main函数赋给s;第二次调用f函数时,将实参a值3(注意,实参a的值并未改变)传给变量n,此时,静态局部变量a的值为2,经过n+=a++运算后,n为5,a为3,return语句将5带回到main函数,s=s+f(a)=4+5=9。

34.若x、i、j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为______。

A.4

B.16

C.32

D.52

答案:

C

35.程序流程图中带有箭头的线段表示的是______。

A.图元关系

B.数据流

C.控制流

D.调用关系

答案:

C

[解答]在数据流图中,用标有名字的带箭头线段表示数据流。

在程序流程图中,用标有名字的带箭头线段表示控制流,因此本题答案为C。

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

当前位置:首页 > 人文社科 > 法律资料

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

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