河北工业大学软件工程专业大二2019-2020数据结构与算法第十七单元试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河北工业大学软件工程专业大二2019-2020数据结构与算法
第十七单元试题
您的姓名: [填空题] *
_________________________________
1.算法的时间复杂度是用来衡量算法的效率的,时间复杂度越高,效率就越高。
[判断题] *
对
错(正确答案)
2.当表达式的值第一次为假时,while的循环体一次都不执行,do…while则执行一次循环体。
[判断题] *
对(正确答案)
错
3.while 语句是先计算表达式的值,再执行循环体,do…while是执行完一次循环体,再计算表达式的值。
[判断题] *
对(正确答案)
错
4.while是实现循环结构,do..while是实现选择结构。
[判断题] *
对
错(正确答案)
5.鸡兔同笼的算法是采用经典算法之穷举法解决的。
[判断题] *
对(正确答案)
6.鸡兔同笼不仅仅限于孙子算经中描述,也可以其它类似问题,如大人小孩吃面包的问题,或者是大小油瓶的问题。
[判断题] *
对(正确答案)
错
7.穷举法缺点是:运算量较大、只适合于“有几种组合”、“是否存在”、求解不定方程等类型的问题求解。
[判断题] *
对(正确答案)
错
8.穷举法也称枚举法列举所有可能,逐一试探。
[判断题] *
对(正确答案)
错
9.for语句小括号中间的两个分号不可省略,两分号之间的表达式可以省略,若省略,循环将成为死循环或无限循环。
[判断题] *
对(正确答案)
错
10.for循环格式中,表达式1一般代表的是循环要素中的循环控制变量(步长值)。
[判断题] *
对
错(正确答案)
11.--即自减,其意义是自身的值减去1。
[判断题] *
对(正确答案)
12.continue是继续的意思,只能用于循环结构语句中。
[判断题] *
对(正确答案)
错
13.break语句可用于循环结构中用来终止循环。
[判断题] *
对(正确答案)
错
14.两个整数的最小公倍数的求解一般以先求出它们的最大公约数,计算方法是两数相乘除以最大公约数。
[判断题] *
对(正确答案)
错
15.for循环格式中,各表达式之间的用的是逗号分隔的。
[判断题] *
对
错(正确答案)
16.循环跳转指的是在循环结构当中,出现的强制终止循环或跳过某些次的循环的一种操作。
[判断题] *
对(正确答案)
错
17.continue是可以用于switch语句中。
[判断题] *
对
错(正确答案)
18.continue是继续的意思,可以用于循环结构和选择结构中的switch语句中。
[判断题] *
对
错(正确答案)
19.两个数的最大公约数,一定比这两个数都小。
[判断题] *
对
错(正确答案)
20.假设a,b的最大公约数是M,最小公倍数是N,则一定有a*b/M=N。
[判断题] *对(正确答案)
错
21.两个数的最小公倍数一定比这两个数都大。
[判断题] *
对
错(正确答案)
22.计算两个数的最大公约数可以使用循环。
[判断题] *
对(正确答案)
错
23.循环结构是用来描述可以重复执行的程序。
[判断题] *
对(正确答案)
错
24.for循环嵌套for循环可解决孙子算经中提到的鸡兔同笼问题。
[判断题] *
对(正确答案)
错
25.用穷举法逐一列举可能是解决鸡兔同笼问题的办法之一。
[判断题] *
对(正确答案)
错
26.有穷性是算法需在有限步内结束,每一步在有限时间内结束。
鸡兔同笼作为算法之一,应具有该特性。
[判断题] *
对(正确答案)
错
27.鸡兔同笼问题只能使用二元一次方程组来求解。
[判断题] *
对
错(正确答案)
28.关于do-while和while;下面描述不正确的是()。
*
A.do……while结构先做while后面表达式的判断,若为真,则执行循环体,即{}里面的语句。
(正确答案)
B.do……while结构先做while后面表达式的判断,若为假,则执行循环体,即{}里面的语句。
(正确答案)
C.do(条件){ }while(判断);是先执行后判断的一种循环结构.(正确答案)
D.while与do..while两者无任何区别.(正确答案)
29."已知while的基本语法如下:
while(表达式)
{
语句1;
……
语句 n;
}
其中表达式是循环条件,语句为循环体。
则表达式可以为()。
[多选题]
*
A.关系表达式(正确答案)
B.逻辑表达式(正确答案)
C.算数表达式(正确答案)
D.常量值(正确答案)
30.int i;for(i=1;i<=100;i++){if(i==5)break;printf("welcome\t");}关于本程序段说法正确的是()。
*
A.循环执行5次(正确答案)
B.循环执行100次
C.循环输出4个welcome(正确答案)
D.break的作用是结束本次循环,继续下一次循环。
31.if(a==1){printf("one");}else if(a==2){printf("two");}else {printf("other");}关于这段代码运行说法正确的是()。
*
A.若a的值是1,则输出one。
(正确答案)
B.若a的值是2,则输出two。
(正确答案)
C.若a的值是5,则输出other。
(正确答案)
D.若a的值是-1,则无输出结果
32.经典算法之穷举法的优点()。
*
A.算法简单(正确答案)
B.逻辑清晰(正确答案)
C.易于理解(正确答案)
D.程序易于实现(正确答案)
33.鸡兔同笼问题可以是很多实际的问题如()。
*
A.孙子算经中的鸡兔同笼问题(正确答案)
B.大人小孩吃面包问题(正确答案)
C.大小油瓶装油问题(正确答案)
D.计算素数和问题
34.while循环小括号的表达式类型可以是()。
*
A.整型表达式(正确答案)
B.关系表达式(正确答案)
C.逻辑表达式(正确答案)
D.算术表达式(正确答案)
35.下列各项中代表使变量i的值减1的操作有是()。
*
A.i-=1(正确答案)
B.i-1
C.i++
D.i--(正确答案)
36.下列各项中代表使变量i的值加1的操作是()。
*
A.i++(正确答案)
B.i+=1(正确答案)
C.i=i+1(正确答案)
D.++i(正确答案)
37.break语句格式中,使用正确的是()。
*
A.while(条件) {break;}(正确答案)
B.其它三项都不对
C.for(;;) {break;}(正确答案)
D.do{ break; }while(条件);(正确答案)
38.环嵌套的就是一个循环结构体内还有另一个循环结构,也称为多重循环,假设下列题目中括号里都有正确的表达式,则循环嵌套正确的有()。
*
A.while() { while() { 语句; } }(正确答案)
B.for() { for() { 语句; } }(正确答案)
C.while() { for() { 语句; } }(正确答案)
D.if() { if() { 语句; } }
39.8和12的公约数有哪些()?*
A.4(正确答案)
B.2(正确答案)
C.3
D.1(正确答案)
40.鸡兔同笼问题可以使用for循环嵌套for循环完成,那么循环嵌套for可以嵌套()。
*
A.while语句(正确答案)
B.for语句(正确答案)
C.do-while语句(正确答案)
D.都不对
41.下列变量已正确定义,则语句不正确的是()。
*
A.2++;(正确答案)
B.++5;(正确答案)
C.i--;
D.3++;(正确答案)
42.break语句可以用于下列那些语法中()。
*
A.if
B.switch(正确答案)
C.for(正确答案)
D.while(正确答案)
43.while循环的小括号里的表达式的类型可以是()。
*
A.关系表达式(正确答案)
B.逻辑表达式(正确答案)
C.变量(正确答案)
D.常量(正确答案)
44.可以在循环语句中使用的语句有()。
*
A.break语句(正确答案)
B.continue语句(正确答案)
C.if语句(正确答案)
D.switch语句(正确答案)
45.for循环的小括号中的三个表达式分别是()。
*
A.初值(正确答案)
B.条件(正确答案)
C.增量(正确答案)
D.以上选项都不是
46.for循环的三个表达式可以省略的是()。
*
A.初值表达式可省(正确答案)
B.条件表达式可省(正确答案)
C.增量表达式可省(正确答案)
D.三个表达式都不可以省略
47.求两个数的最大公约数,依照方式不同其时间复杂度可能是()。
*
A.O(n)(正确答案)
B.O(log2n)(正确答案)
C.O(n*n)
D.O(1)
48.比孙子算经中的双层循环解决的鸡兔同笼问题的时间复杂度高的是()。
*
A.O(n*n*n)(正确答案)
B.O(2^n) ^表示幂(正确答案)
C.O(n!)(正确答案)
D.O(n^n) ^表示幂(正确答案)
49.今有雉(鸡)兔同笼,上有三十五头,下有九十四足。
问雉兔各几何?答案不正确的是()。
*
A.鸡23兔12
B.鸡12兔23(正确答案)
C.鸡22兔13(正确答案)
D.鸡13兔22(正确答案)
50.解决鸡兔同笼算法使用的双层循环可以是()。
*
A.for嵌套for(正确答案)
B.while嵌套while(正确答案)
C.do-while嵌套for(正确答案)
D.for嵌套do-while(正确答案)
51.鸡兔同笼算法具有的特性包括()。
*
A.有穷性(正确答案)
B.确定性(正确答案)
C.可行性(正确答案)
D.正确性
52.鸡兔同笼算法应具有的设计要求是()。
*
A.正确性(正确答案)
B.可读性(正确答案)
C.可行性
D.健壮性(正确答案)
53.已知do…while结构的基本语法如下
do
{
语句
}while(表达式);
下面对于do…while的叙述正确的是( )。
[单选题] [单选题] *
A.{}里面的语句只能放一条语句。
B.while后面小括号里的表达式只能放关系表达式。
C.while 小括号后面的分号可以省略
D.while 小括号后面的分号不可以省略(正确答案)
54."while的基本语法如下:
while(表达式)
{
语句1;
……
语句 n;
}
关于while结构描述正确的是( )。
[单选题]
*
A.while是当循环结构,先判断条件,如果条件为真则执行循环体语句。
(正确答案)
B.while循环与do...while循环没有区别
C.while循环结构中不可以使用if语句
D.while循环结构是先执行后判断
55."int i=10;
void main()
{
int i=5;
printf(""%d"",i);
}
该程序执行的结果是()。
[单选题]
[单选题] *
A 10
B 5(正确答案)
C 出错定义两个i
D 11
56.for(;;){printf("hello world\n");}关于本程序段说法正确的是()。
[单选题] *
A.for语句使用有误,两个分号中间的表达式不能省略
B.这是一个死循环,不停的输出hello world。
(正确答案)
C.这语句还可以简化,省略掉两个分号。
D.\n是一种转义字符,作用是水平制表。
57.运算符/和%的计算:表达式9/3和3%9的结果分别是()。
[单选题] *
A.3 3(正确答案)
B.3.0 0
C.3 3.0
D.3 0
58.运算符%的计算:表达式3%7和 7%3 的结果分别是()。
[单选题] *
A.1 1
B.2 4
C.3 1(正确答案)
D.7 3
59.if(3<2){printf("confirm");}else{printf("return");}()。
[单选题] *
A.return(正确答案)
B.confirm
C.confirmreturn
D.returnconfirm
60.下面关于while及do-while说法中,描述正确的是()。
[单选题] *
A.while与do..while没有区别
B.while是先执行后判断
C.do..while是先判断后执行
D.while是先判断后执行,条件为真时执行(正确答案)
61.鸡兔同笼问题可以用那种经典算法来解决()。
[单选题] *
A.迭代法
B.穷举法(正确答案)
C.递推法
D.分治法
62.如《孙子算经》中描述的鸡兔同笼问题之穷举算法的时间复杂度是()。
[单选题] *
A.O(n)
B.O(n*n)(正确答案)
C.O(nlog2n)
D.O(1)
63.鸡兔同笼问题若是转化为数学应用题,可以使用数学的()来解决。
[单选题] *
A.求最大值方法
B.四舍五入方法
C.解方程组法(正确答案)
D.比较大小法
64.有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。
求笼中各有几只鸡和兔?()。
[单选题] *
A.鸡有23只,兔有12只(正确答案)
B.鸡有12只,兔有23只
C.鸡有20只,兔有15只
D.鸡有15只,兔有20只
65.大油瓶每瓶装4千克,小油瓶2瓶装1千克,现有100千克油装了共60个瓶子。
问大小油瓶各多少个?()。
[单选题] *
A.大油瓶20个,小油瓶40个(正确答案)
B.大油瓶40个,小油瓶20个
C.大油瓶30个,小油瓶30个
D.大油瓶10个,小油瓶50个
66.一个大人一餐吃2个面包,两个小孩一餐吃1个面包,现在有大人和小孩共99人,一餐刚好吃了99个面包,大人、小孩各有多少人?()。
[单选题] *
A.大人33人,小孩66人(正确答案)
B.大人66人,小孩33人
C.大人22人,小孩77人
D.大人44人,小孩55人
67.for循环的嵌套经常用于穷举法算法的实现,那么关于循环嵌套的说法正确的是()。
[单选题] *
A.for循环不能嵌套while循环
B.while循环可以嵌套for循环(正确答案)
C.do-while循环不能嵌套for循环
D.for循环不能嵌套do-while循环
68.关于跳转语句continue、break常结合循环嵌套在穷举算法中使用,则关于这两个语句描述正确的是()。
[单选题] *
A.continue语句是结束本层循环
B.break是结束本次循环继续下一次循环
C.break完全可以替代continue使用
D.break是结束本层循环,若在多重循环包着该语句,则只能结束最内层循环。
(正确答案)
69.鸡兔同笼是一个历史悠久的问题,早在中国的数学典籍()中就有记载:“今有雉(鸡)兔同笼,上有三十五头,下有九十四足。
问雉兔各几何。
”()。
[单选题] * A.孙子算经(正确答案)
B.孙子兵法
C.九章算术
D.九章算经
70.两个整数为m,n,其最大公约数为r,最小公倍数为s,则有()。
[单选题] *
A.s=m*n/r(正确答案)
B.r=m*n/s
C.s+r=m*n
D.s/r=m+n
71."#include ""stdio.h""
void main()
{
int i,s;
for(i=1,s=0;i<=5;i++)
{
s*=i;
}
printf(""%d"",s);
}
以上代码的执行结果是:()"。
[单选题]
[单选题] *
A 0(正确答案)
B 24
C 6
D 120
72."#include ""stdio.h""
void main()//求和
{
//定义变量并初始化
int i,sum;
for(i=1,sum=0;i<=100;i++)
{
sum+=i;
}
printf(""和是%d"",sum);
}
以上代码求和结果应该是:()。
[单选题]
[单选题] *
A 都不对
B 2550
C 2500
D5050(正确答案)
73.for循环跟()循环一样,都属于先判断后执行。
[单选题] *
A.while(正确答案)
B.if
C.switch
D.do--while
75."void main()
{
int i,j;
for(i=1;i<=3;i++)
{
for(j=1;j<8;j++)
{
printf(""*"");
}
printf(""\n"");
}
}
以上代码输出一个()图形。
"。
[单选题] [单选题] *
A:三行三列
B 八行三列
C三行八列
D三行七列(正确答案)
76.12和8的最大公约数是()。
[单选题] *
A.8
B.4(正确答案)
C.12
D.2
74."#include ""stdio.h""
void main()
{
int i;
for(i=1;i<=100;i++)
{
if(i==5)
{
break;
}
}
printf(""%d\n"",i);
}
以上循环语句中,循环执行次数是是()。
[单选题]
[单选题] *
A 5(正确答案)
B 100
C 3
D 4
77.小明用10元钱正好买了20分和50分的邮票共35张,求这两种邮票名买了多少张?()。
[单选题] *
A.20分的邮票25张,50分的邮票10张(正确答案)
B.20分的邮票30张,50分的邮票5张
C.20分的邮票28张,50分的邮票7张
D.20分的邮票10张,50分的邮票25张
78.一次数学竞赛共有20道题.做对一道题得5分,做错一题倒扣3分,刘冬考了52分,你知道刘冬做对了几道题? ()。
[单选题] *
A.刘冬做对14道题(正确答案)
B.刘冬做对12道题
C.刘冬做对16道题
D.刘冬做对15道题
79.经典算法的()策略是解决鸡兔同笼问题的一般办法。
[单选题] *
A.迭代法
B.穷举法(正确答案)
C.递推法
D.分治法
80.穷举法的一般情况是把所有情况逐一列举,体现在程序中实际是()。
[单选题] *
A.循环嵌套(正确答案)
B.多分支判断
C.死循环
D.递归
81.52名同学去划船,一共乘坐11只船,其中每只大船坐6人,每只小船坐4人.求大船和小船各几只?()。
[单选题] *
A.大船4只,小船7只(正确答案)
B.大船5只,小船6只.
C.大船6只,小船5只.
D.大船7只,小船4只.
82.鸡兔同笼算法属于算法的一种,按照算法的特性来讲应具有()。
[单选题] *
A.正确性
B.健壮性
C.可读性
D.可行性(正确答案)
83.鸡兔同笼算法属于算法的一种,按照算法的设计要求来讲应具有()。
[单选题] *
A.可读性(正确答案)
B.可行性
C.有穷性
D.确定性
84.鸡兔同笼问题可以使用for循环嵌套for循环完成,那么for语句的语法正确的
是()。
[单选题] *
A.for(表达式1;表达式2;表达式3) 语句;(正确答案)
B.for(表达式1,表达式2,表达式3) 语句;
C.for(表达式1:表达式2:表达式3) 语句;
D.for(表达式1、表达式2、表达式3) 语句;
85.穷举法是经典算法之一是解决鸡兔同笼问题的有效方法,鸡兔同笼问题是最早
在()书中提及的。
[单选题] *
A.孙子算经(正确答案)
B.孙子兵法
C.九章算术
D.九章算经
86.已知共有鸡和兔15只,共有40只脚,问鸡和兔各有几只()。
[单选题] *
A.鸡有10只,兔有5只(正确答案)
B.鸡有5只,兔有10只
C.鸡有9只,兔有6只
D.鸡有6只,兔有9只
87.4和8的最小公倍数是()。
[单选题] *
A.8(正确答案)
B.12
C.16
D.32
88.算法的特性包括()。
[单选题] *
A.有穷性(正确答案)
B.正确性
C.可读性
D.健壮性
89.算法的设计要求包括()。
[单选题] *
A.有穷性
B.可读性(正确答案)
C.确定性
D.可行性
90.for循环和white循环的共同点是()。
[单选题] *
A.都是先执行后判断的循环
B.都行先判断后执行的循环(正确答案)
C.都属于直到型循环
D.都是分支结构语句
91.while循环属于当型循环,其循环变量的初值写在()。
[单选题] *
A.while语句{}中的第一句
B.while语句{}中的最后一句
C.while语句的上面(正确答案)
D.while语句的下面
92.关于循环语句描述正确的是()。
[单选题] *
A.for循环完全可以取代while循环(正确答案)
B.while循环是先执行后判断
C.do-while循环和for循环语法一样
D.for循环不能嵌套do-while循环
93.continue是跳转语句,用在下列哪些语句中()。
[单选题] *
A.for语句(正确答案)
B.switch语句
C.if语句
D.printf语句
94.在一个单层循环中的循环体某处想停止本次循环,继续下一次循环,应在该处使用()语句。
[单选题] *
A.break语句
B.return语句
C.continue语句(正确答案)
D.exit(0)语句
95.14和8的最大公约数是()。
[单选题] *
A.1
B.2(正确答案)
C.4
D.8
96.孙子算经的鸡兔同笼问题的使用双层循环解法的时间复杂度是()。
[单选题] *
A.O(n)
B.O(n*n)(正确答案)
C.O(nlog2n)
D.O(log2n)
97.以下经典著作中,哪本记载了最早的鸡兔同笼问题()。
[单选题] *
A.孙子算经(正确答案)
B.孙子兵法
C.九章算术
D.九章算经
98.笼子里有若干只鸡和兔。
从上面数,有8个头,从下面数,有26只脚,鸡和兔各有几只?()。
[单选题] *
A.兔有5只,鸡有3只。
(正确答案)
B.兔有3只,鸡有5只。
C.兔有4只,鸡有4只。
D.兔有2只,鸡有6只。
99.鸡兔同笼可以使用循环嵌套完成算法,则循环嵌套()。
[单选题] *
A.for不可嵌套while
B.while可以嵌套for(正确答案)
C.do-while不可嵌套for
D.只能是for嵌套for
100.鸡兔同笼算法双层循环里面判断条件使用()语句。
[单选题] *
A.if语句(正确答案)
B.switch语句
C.printf语句
D.for语句
101.鸡兔同笼是()经典算法解决的一类问题。
[单选题] *
A.穷举法(正确答案)
B.递推法
C.分治法
D.迭代法
102.鸡兔同笼也是算法的一种,具有算法的特性()。
[单选题] *
A.正确性
B.可读性
C.可行性(正确答案)
D.健壮性
103.鸡兔同笼算法具有算法的每一步都是确定没有二义性,这是()。
[单选题] *
A.有穷性
B.确定性(正确答案)
C.可行性
D.正确性
104.数据结构与算法里,较孙子算经中的双层循环解决的鸡兔同笼问题的时间复杂度低的是()。
[单选题] *
A.O(n*n)
B.O(nlog2n)(正确答案)
C.O(n*n*n)
D.O(2^n) ^表示幂
105.鸡兔同笼算法可以使用()来实现。
[单选题] *
A.if语句
B.switch语句
C.循环嵌套(正确答案)
D.printf语句。