无纸化二级C模拟题模拟题1答案.docx

上传人:b****3 文档编号:2960944 上传时间:2022-11-16 格式:DOCX 页数:28 大小:27.54KB
下载 相关 举报
无纸化二级C模拟题模拟题1答案.docx_第1页
第1页 / 共28页
无纸化二级C模拟题模拟题1答案.docx_第2页
第2页 / 共28页
无纸化二级C模拟题模拟题1答案.docx_第3页
第3页 / 共28页
无纸化二级C模拟题模拟题1答案.docx_第4页
第4页 / 共28页
无纸化二级C模拟题模拟题1答案.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

无纸化二级C模拟题模拟题1答案.docx

《无纸化二级C模拟题模拟题1答案.docx》由会员分享,可在线阅读,更多相关《无纸化二级C模拟题模拟题1答案.docx(28页珍藏版)》请在冰豆网上搜索。

无纸化二级C模拟题模拟题1答案.docx

无纸化二级C模拟题模拟题1答案

1)下列排序方法中,最坏情况下时间复杂度最小的是

A)快速排序

B)直接插入排序

C)冒泡排序

D)堆排序

排序方法最坏时间复杂度最好时间复杂度平均时间复杂度

直接插入O(n2)O(n)O(n2)

简单选择O(n2)O(n2)O(n2)

起泡排序O(n2)O(n)O(n2)

快速排序O(n2)O(nlog2n)O(nlog2n)

堆排序O(nlog2n)O(nlog2n)O(nlog2n)

归并排序O(nlog2n)O(nlog2n)O(nlog2n)

所以选D

2)在数据库管理系统提供的数据语言中,负责数据的查询、增加、删除和修改等操作的是

A)数据定义语言

B)数据控制语言

C)数据操纵语言

D)数据管理语言

(1)数据定义语言:

负责数据的模式定义与数据的物理存取构建;

(2)数据操纵语言:

负责数据的操纵,如查询与增、删、改等;

(3)数据控制语言:

负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等。

所以选c

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

A)低耦合低内聚

B)内聚与耦合无关

C)低耦合高内聚

D)高耦合高内聚

4)下面属于白盒测试方法的是

A)边界值分析法

B)等价类划分法

C)基本路径测试

D)错误推测法

白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。

 

5.有两个关系R,S如下,由关系R和S通过运算得关系T,则所使用的操作为

R

B

C

D

a

0

k1

b

1

n1

S

B

C

D

f

3

k2

a

0

k1

n

2

x1

T

B

C

D

a

0

k1

A:

笛卡尔积

B:

自然连接

C:

D:

E:

6设某二叉树的前序序列为ABC,中序序列为CBA,则该二叉树的后序序列为:

A:

CBA

B:

ABC

C:

CAB

D:

BCA

a

b

c

7为了对有序表进行对分查找,则要求有序表:

A:

可以顺序存储也可以链式存储

B:

任何存储方式

C:

只能链式存储

D:

只能顺序存储

顺序存储结构中各数据元素在存储空间中是按逻辑顺序依次连续存放的,在链式存储结构中元素之间的关系通过指针来连接,所以不要求存储空间-定是连续的;顺序存储结构(或链式存储结构)既可以针对线性结构,也可以针对非线性结构,但像栈、队列这样的线性结构-般采用顺序存储结构(但也可以采用链式结构),树、二叉树这样的非线性结构-般采用链式存储结构(但也可以采用顺序存储结构);链式存储结构既可以存储无序表,也可以存储有序表,注意,链式存储结构存储的即使是有序表,也不能进行二分查找;链式存储结构比顺序存储结构要多使用存储空间,由于链式存储结构中要用额外空间来保存指针。

8下面属于整数类的实例是:

A:

0x518

B:

518E-2

C:

“-518”

D:

0.518

9下列叙述中正确的是

A循环链表是循环队列的链式存储结构

B循环队列是队列的顺序存储结构

C栈与队列都只能顺序存储

循环队列不是链式存储的。

10设有一个商店的数据库,记录客户及其购物情况,由三个关系组成:

商品(商品号,商品名,单价,商品类别,供应商),客户(客户号,姓名,地址,电邮,性别,身份证号),购买(客户号,商品号,购买数量),则关系购买的键为

A商品号

B客户号

C客户号,商品号,购买数量

D客户号,商品号

能惟一标识元组且不包括多余属性的属性组合称为关系的关键字。

商品的关键字为商品号、客户的关键字为客户号、购买的关键字为客户号,商品号的组合。

11以下叙述中正确的是

A每个后缀为.C的C语言源程序都可以单独进行编译

B在C语言程序中,只有main函数才可单独进行编译

C在C语言程序中,main函数必须放在其他函数的最前面

D每个后缀为.C的C语言源程序都应该包含一个main函数

 【解析】每一个C语言的文件或函数都可以单独编译,但只有main函数的才可以执行。

C语言是一种成功的系统描述语言,具有良好的移植性,每个后缀为.C的C语言源程序都可以单独进行编译。

12C语言主要是借助以下哪种手段来实现程序模块化

A定义常量和外部变量

B定义函数

C使用丰富的数据类型

D使用三种基本结构语句

【解析】C语言用函数实现软件的模块化设计。

13C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是

A在标识符中大写字母和小写字母被认为是相同的字符

B用户标识符可以由字母和数字任意顺序组成

C关键字可用作用户标识符,但失去原有含义

D预定义标识符可用作用户标识符,但失去原有含义

【解析】A)预定义标识符是C语言中的标识符,在C语言中也有特定的含义,如函数printf、scanf、sin等和编译预处理命令名(如define和include)。

预定义标识符可以作为用户标识符使用,只是这样会失去系统规定的原义。

这些关键字如下:

autobreakcasecharconstcontinue,defaultdodoubleelseenumexternfloatforgotoifintlong

14以下选项中合法的常量是

A0Xab

B2.7e

C123E0.2

D999

 【解析】0xab是十六进制表示的常量。

 

15若有定义和语句

Inta,b;

Scanf(“%d,%d,”&a,&b);

以下选项中的输入数据,不能把值3赋给变量a,5赋给变量b的是

A3,5,4

B3,5

C3,5

D3,5,

16以下叙述中错误的是

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

B数值型常量有正值和负值的区分

C常量可以用一个符号名来代表

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

 【解析】C语言中,常常用一个标识符来代表一个常量,称为符号常量。

符号常量在使用之前要先定义,定义格式如下:

#define<符号常量名>(常量)其中,<符号常量名)用标识符,习惯上用大写字母,<常量>可以是数字常量,也可以是字符 

17以下不能输出小写字母a的选项是

Aputchar(97);

Bputchar('a');

Cprintf("%c\n",'A'+32);

Dprintf("%c\n","a");

18若要实现total=1+2+3+4+5求和,以下程序段错误的是:

A:

inti=1,total=1;

While(i<5)

{total+=i;

i+=1;

}

B:

inti=0,total=0;

While(i<=5)

{total+=i;

i+=1;

}

C:

inti=0,total=0;

While(i<5)

{i+=1;

total+=i;

}

D:

inti=1,total=0;

While(i<=5)

{total+=i;

i+=1;

}

19有以下程序段

Scanf(“%d%d%d”,&a,&b,&c);

If(a>b)a=b;

If(a>c)a=c;

Printf(“&d\n”,a);

该程序段的功能是

A:

输出a的原始值

B:

输出a、b、c中的最大值

C:

输出a、b、c中值相等的数值

D:

输出a、b、c中的最小值

20有以下程序段

Charc1,c2,c3;

Scanf(“%c%c%c,&c1,&c2,&c3);

若要给c1,c2,c3分别输入字母A、B、C,则以下对输入形式的描述正确的是

A:

字母A、B、C之间可以用空格分隔

B:

字母A、B、C之间不能有分隔符

C:

字母A、B、C之间可以用tab键分隔

D:

字母A、B、C之间可以用回车符分隔

21有以下程序

#include

Main()

{intx;

Scanf(“%d”,&x);

If(x>10)printf(“1”);

Elseif(x>20)printf(“2”);

Elseif(x>30)printf(“3”);

}

若运行时输入:

35<回车>,则输出结果是

A:

2

B:

3

C:

1

D:

123

22有以下程序

#include

Main()

{inti=1,k=0;

For(;i<6;)

{switch(i%3)

{case0:

k++;

Case1:

k++;break;

Case2:

k++;continue;

}

i+=1;

}

Printf(“%d\n”,k);

}

程序的运行情况是

A输出6

B输出4

C输出5

D形成无限循环

I=1

I%3=1

Case1;k++;break退出for

这时i+=1没有执行

第二循环i任然为1

23下列定义数组的语句中,正确的是

A.intN=10;

Intx[N];

B#defineN10

Intx[N];

Cintx[];

D.intx[0..10];

24)有以下程序

#include

Intadd(inta,intb){return(a+b);}

Main()

{intk,(*f)(),a=5,b=10;

f=add;

}

则以下函数调用语句错误的是

A)k=f(a,b);

B)k=(*f)(a,b);

C)k=add(a,b);

D)k=*f(a,b);

答案d错误是因为优先级这样就成了k=函数返回值得指针了~而k是一个整形不能接受指针值~在执行的时候是*(f(a,b)),题目里面根本就没有f()函数,

int(*f)()//定义了一个指针变量f,他是指向一个返回值是整型变量的函数。

叫做指向函数的指针变量。

intadd(inta,intb){return(a+b);}//定义了一个函数add,函数有两个整型的参数。

返回值类型也是整型。

功能是计算两个整数相加。

大括号是函数体,就像main函数后面的大括号一样。

return是返回语句,是函数返回到调用它的函数。

后面的(a+b)是返回的值,即两个参数的相加结果。

k=f(a,b)//是一个赋值语句和函数调用语句。

用指针形式调用函数,将结果赋给k.前提f要指向函数add,要有f=&add;

k=(*f)(a,b)//是一个赋值语句和函数调用语句。

用指针形式调用函数,将结果赋给k.前提f要指向函数add,要有f=add;

25)有以下程序

#include

main()

{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

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

for(j=i;j<=i;j++)t+=b[i][b[j][i]];

printf(“%d\n”,t);

}

程序运行后的输出结果是

A)9

B)1

C)3

D)4

各个元素的值为:

b[0][0]=0;b[0][1]=1;b[0][2]=2;

b[1][0]=0;b[1][1]=1;b[1][2]=2;

b[2][0]=0;b[2][1]=1;b[2][2]=2;

第一层for循环是从0~2

第二层for循环是从i~i 

t初始为1

i和j的列表如下

i=0;j=0;t=t

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1