算法与程序的设计会考习题带答案解析.docx
- 文档编号:14605392
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:24
- 大小:63.13KB
算法与程序的设计会考习题带答案解析.docx
《算法与程序的设计会考习题带答案解析.docx》由会员分享,可在线阅读,更多相关《算法与程序的设计会考习题带答案解析.docx(24页珍藏版)》请在冰点文库上搜索。
算法与程序的设计会考习题带答案解析
2013-2014学年度
《算法与程序设计》模块会考复习题
一.选择题
1.计算机解决问题的过程是____B___。
A.确定方案分析问题设计步骤设计程序
B.分析问题确定方案设计步骤设计程序
C.分析问题设计步骤确定方案设计程序
D.设计程序分析问题设计步骤确定方案
2.程序设计语言的分类是A。
A.机器语言、汇编语言和高级语言B.顺序结构、分支结构和循环结构(程序的三种结构)
C.低级语言、中级语言和高级语言D.自然语言、伪代码和流程图
3.流程图中表示判断的是B。
A.矩形框B.菱形框C.圆形框D.椭圆形框
计算判断平行四边形:
输出圆角矩形:
开始和结束
4.在Java系统中设计程序,源代码文件的扩展名是___C____。
A.txtB.classC.javaD.doc
文本文件java编译后,字节码word文件
图片文件jpg,gif,bmp视频avi,wmv,flv,3gp,MP4音频mp3,wma,wav,mid
5.用于将两个或多个字符串连接起来的运算符是D。
A.*B.++C.&D.+
&&与,都为真则真,否则假
||或,其一为真就为真
%取余数14%4结果为2
运算顺序,先乘除,再加减,再比较>=,在非,与,或。
6.下列可以作为合法变量名的是A。
A.$1B.classC.2bD.a*2
(1)字母开头,后面跟着字母或数字
(2)字母又包含$,_
不能为java关键字。
区分大小写。
7.关于java规则错误的是A。
A.Java语句不区分大小写B.主类名必须与文件名一致
C.main()是程序执行的起点D.Java语句以分号结尾
8.要想正确的调试出程序,在保存Java源程序时主类名必须与文件名__A。
A.完全一致B.完全不同C.可以相同也可以不同D.大小写可以不一样
9.下列不合法的运算符是C。
A.==B.!
=C.<>D.>=
==判断是否等于!
=不等于>=大于或等于<=小于或等于
10.下面关于算法的描述,错误的是C。
A.算法可以用自然语言来表示B.算法可以用流程图来表示
C.同一种算法只能用一种程序语言来实现D.同一种算法可以用不同的程序语言来实现
11.定义变量:
inta;则变量a的类型是D。
A.字符型B.浮点型C.逻辑型D.整数型
char2字节float4字节boolean1bit8位=1字节int4字节
byte字节型1字节【-128,127】short短整型2字节long长整型8字节
12.变量x、y、z的值分别是1、3、5,执行语句组:
x=y;y=z;z=x后,x、y、z的值分别是B。
A.351B.353C.531D.513
=表示赋值,把右边值传给左边
x=y=3
Y=z=5
Z=x=3(x在前两步已经变为3)
13.表达式50%7的值是B。
A.0B.1C.2D.3
14.语句System.out.println();可实现的功能是A。
A.输出一个空行B.输出一个空格C.什么都不做D.出现错误信息
15.下列选项中哪个不属于程序设计的三种基本结构C。
A.顺序结构B.选择结构(分支结构)C.条件结构D.循环结构
16.下面的流程图应属于哪种程序结构C(有返回的箭头就为循环)。
N=1000
N满足条件?
N=N+1
输出结果
False
True
A.顺序结构B.分支结构C.循环结构D.都不适合
17.假设inta=2;intb=3;则执行b+=a语句后b的值是D。
A.2B.1C.6D.5
b+=a,相当于b=b+a=3+2=5
同理b*=a,为b=b*a
18.在调试程序过程中,下列哪一种错误是计算机检查不出来的?
C
A.编译错误B.执行错误C.逻辑错误D.任何错误计算机都能检查出来
19.Java程序中注释语句的格式是B。
A.//*注释容*//B./*注释容*/除此之外//也表示注释
C./注释容/D./*注释容//
20.在java的应用程序中,程序执行时A方法是应用程序的执行入口。
A.main()B.private()C.class()D.static()
21.随机产生[10,60]的整数的表达式是D。
A.(int)(Math.random()*60)B.(Math.random()*51+10)
C.(int)(Math.random()*50+10)D.(int)(Math.random()*51+10)
【m,n】随机整数公式为(int)(Math.random()*(n-m+1)+m),可得出结果
另外,考试需要知道反推返回(int)(Math.random()*60),由式子无加数,即+0,推出m为0
又n-m+1=60,n-0+1=60,得出n=59所以【m,n】围是[0,59]
22.只定义5个元素的int型数组的最大下标值是B。
A.5B.4C.6D.7
数组最大下标,为数组长度减1,5-1=4
23.若需要将字符串类型变量转换为整型,使用的方法是B。
A.integer.parseint()B.Integer.parseInt()
C.double.parsedouble()D.Double.parseDouble()
Integer.parseInt(),Double.parseDouble(),Long.parseLong(),Float.parseFloat()
24.在publicstaticvoidmain(Stringargs[])主方法中,使用命令行方式输入数据,第一个参数将传递给数组元素A。
A.args[0]B.args[1]C.args[n]D.都不对
25.下列方法中,可实现求出不大于x的最大整数的是____C_____。
A.Math.sqrt(x);根号
B.Math.pow(x,y);x的y次幂
C.Math.floor(x);不大于
D.Math.round(x);4舍5入
Math.abs(x)x的绝对值
Math.random()[0,1)随机小数
26.用于返回x的绝对值的方法是A。
A.Math.abs(x)B.Math.round(x)C.Math.sqrt(x)D.Math.pow(x,y)
27.switch(表达式)语句中,表达式的值必须是___B_____类型。
A.StringB.intC.longD.double
28.在for循环中执行__A语句后终止某个循环,使程序跳到循环体外的第一个可执行语句。
A.breakB.continue跳过本次,执行下一个C.return返回调用函数D.stop
29.下面哪种循环结构在条件表达式被计算之前至少执行了一次循环体语句?
C
A.forB.whileC.do-whileD.都不是
30.假设a=8;b=4;则执行max=(a>b)?
a:
b;语句后,max的值是A。
A.8B.4C.12D.2
?
:
简化的if结构
if(a>b)
max=a
else
max=b
二、操作题(读程序判断运行结果、程序填空)
1.publicclasslx
{publicstaticvoidmain(Stringargs[])
{
inta,b,c,d;
a=6;
b=3;
c=(a+b)*(a-b);//(6+3)*(6-3)=9*3=27
d=(a+b)/(a-b);//(6+3)/(6-3)=9/3=3
System.out.print(a+""+b+""+c+""+d);
}}
上面程序的运行结果是A
A.63273B.36273C.6363D.27363
2.publicclasslx//编译javaclx.java运行javalx98
{publicstaticvoidmain(Stringargs[])
{intx=Integer.parseInt(args[0]);//args[0]从dos窗口输入的第一个参数,即9
doubley;
if(x>0)
{y=Math.sqrt(x);}//开根号
else
{y=Math.abs(x);}//绝对值
System.out.println("y="+y);//不变容双引号,变化容不加号,直接+连接
}
}
以命令行方式运行上面程序,输入数据9的结果D
A.y=9.0B.y=-9.0C.y=91D.y=3.0
3.publicclasslx
{publicstaticvoidmain(Stringargs[])
{intx=2;
switch(x)//要点,根据switch的值,执行对应的case,
{case1:
System.out.println(Math.pow(3,2));3的2次幂
break;
case2:
System.out.println(Math.abs(-5));//x的值为2,则执行本case,即取-5的绝对值,结果为5
break;
case3:
System.out.println(Math.sqrt(9));根号9
break;
case4:
System.out.println(Math.max(7,10));求7和10的最大值
break;
}}}
上面程序的运行结果是B
A.9B.5C.3D.10
4.publicclasslx
{publicstaticvoidmain(Stringargs[])
{ints=0;//s初值为0
for(inta=1;a<=10;a=a+3)//a的围是1,4,7,10
{s=s+a;//累加s+=a;sum=sum+a
System.out.print(s+"");//一般情况,此语句在for外面,结果只有一个s最终值
}
}}
a的围是1,4,7,10
当a=1时,s=s+a=0+1=1
当a=4时,s=s+a=1+4=5
当a=7时,s=s+a=5+7=12
当a=10时,s=s+a=12+10=22
又因为输出语句在循环,所以每次都输出,得出输出结果为151222
若输出语句在循环外,则只有最后的输出22
上面程序的运行结果是D
A.1512B.14710C.147D.151222
5.publicclasslx
{
publicstaticvoidmain(Stringargs[])
{intx=1;//x初值为1
do
{if(x%2==0&&x%3==0)//x能被2,且能被3整除//改为||输出结果为2,3,4,6,8,9,10,12,14,15
{System.out.print(x+"");}
x++;//x每次加1,等同于x=x+1或x+=1;
}while(x<=15);//x小于等于15时运行程序
X的围是1到15中,能被x能被2,且能被3整除的数,即6,12
}}
上面程序的运行结果是D
A.2346B.1C.6D.612
6.publicclasslx
{publicstaticvoidmain(Stringargs[])
{ints=0;
intt=0;
for(intx=11;x<=15;x=x+1)//x的围是11,12,13,14,15
{if(x%2==0)//x的围能被2整除的数累加,即s=12+14=26
{s=s+x;}
else
{t=t+x;}//t为x的围,不能被2整除的数累加,11+13+15=39
}
System.out.print(s+"");
System.out.print(t);
}}
上面程序的运行结果是C
A.1115B.3926C.2639D.1511
7.publicclasstest
{
publicstaticvoidmain(Stringargs[])
{
inta[]={1,3,5,7,9};//数组,下标从0开始
for(intj=0;j<=4;j++)
{
System.out.print(a[j]+"");//输出数组的所有成员
}
}
}
上面程序的运行结果是B
A.a[0]a[1]a[2]a[3]a[4]B.13579C.a[j]D.01234
输出改为”a”+j+“]”
8.publicclasslx
{
publicstaticvoidmain(Stringargs[])
{
inta[]={1,2,3},b[]={4,5,6},c[];
c=a;//c=a={1,2,3}
a=b;//a=b={4,5,6}
b=c;//b=c={1,2,3}
System.out.println("a数组的值是:
"+a[0]+""+a[1]+""+a[2]);
System.out.println("b数组的值是:
"+b[0]+""+b[1]+""+b[2]);
}
}
上面程序的运行结果是D
A.a数组的值是:
a[0]a[1]a[2]B.a数组的值是:
123
b数组的值是:
b[0]b[1]b[2]b数组的值是:
456
C.a数组的值是:
b[0]b[1]b[2]D.a数组的值是:
456
b数组的值是:
a[0]a[1]a[2]b数组的值是:
123
9.publicclasslx
{publicstaticvoidmain(Stringargs[])
{inti,j;
for(i=1;i<3;i++)
{for(j=1;j<=3;j++)//若改为j=i;共执行5次,即i=1时,for(j=1;j<=3;j++)3次
i=2时,for(j=2;j<=3;j++)2次,共5次
{System.out.println(i+"*"+j+"="+i*j);}
}
//双层for循环的解法,具体化外循环,分析循环。
当i=1时,j的围是for(j=1;j<=3;j++)循环3次
当i=2时,j的围是for(j=1;j<=3;j++)循环3次
得出输出语句,共执行3+3=6次
}}
程序运行完成后,打印输出语句被执行的次数为____D______。
A.2B.3C.5D.6
10.importjava.io.*;
publicclasslx
{
publicstaticvoidmain(Stringargs[])throwsIOException
{InputStreamReaderreader=newInputStreamReader(System.in);
BufferedReaderinput=newBufferedReader(reader);
System.out.print("请输入一个正整数:
");
Stringx=input.readLine();
inta=Integer.parseInt(x);
ints=1;//s=1,表示假设a是质数
for(inti=2;i<=(a-1);i++)//i的围从2到a-1,
{if(a%i==0)//找到一个能被a整除的i,则a不是质数
{s=0;}
}
if(s==1)
{System.out.println(a+"是素数");}
else
{System.out.println(a+"不是素数");}
}
}
运行程序时,输入数据:
13,则程序显示的结果是_____A_____。
A.13是素数B.13不是素数C.s=0D.s=1
*下面的四道题,请依据题目的要求,将程序补充完整。
11.请计算并输出1-5的平方值,程序运行结果如下图。
publicclasslx
{
publicstaticvoidmain(Stringargs[])
{doubles,i;
for(i=1;
;
)//i的围是1到5,推出
(1)应该填写i<=5,
(2)为i=i+1
{s=Math.pow(
);//s为i的平方,则(3)填写底数i,(4)填写平方,即2
System.out.println(
+"的平方值是:
"+s);//(5)为项数,即i
}
}}
填空
处应选择C
A.i=5B.i<5C.i<=5D.i=2
填空
处应选择A
A.i++B.s++C.i+=2D.s+=2
填空
处应选择B
A.xB.iC.2D.s
填空
处应选择D
A.yB.sC.iD.2
填空
处应选择D
A.sB.Math.pow(x,y)C.xD.i
12.三个连续的自然数,依次是4、7、9的倍数,问这三个自然数最小是多少?
程序运行结果如下图。
publicclasslx
{publicstaticvoidmain(Stringargs[])
{inti=0;
intx=0;
while(
)
{
;
if((i%4==0)&&(
)&&(
)
//三个连续的自然数能被4,7,9整除。
又因为i%4==0,则(3)是i+1能被7整除,(4)是i+2能被9整除
{x=1;}//符合条件,x=1,又有循环前x=0,推出x为循环判断的条件。
可以推出
(1)是x==0时,运行
//i每次加1,推出
(2)为x=x+1
}
System.out.println("这三个连续的自然数是:
"+i+""+
+""+(i+2));
}}
填空
处应选择B
A.x=0B.x==0C.i=0D.i==0
填空
处应选择A
A.i++B.x++C.x=1D.i=1
填空
处应选择D
A.i%7==0B.i%7=0C.(i+1)%7=0D.(i+1)%7==0
填空
处应选择D
A.i%9==0B.i%9=0C.(i+2)%9=0D.(i+2)%9==0
填空
处应选择C
A.iB.i+2C.i+1D.x
13.圆周率π的计算公式为:
π/4=1-1/3+1/5-1/7+1/9…+(-1)(i+1)/(2n-1),编程求π的近似值。
程序运行结果如下图。
//本题先考虑1+1/3+1/5+.....1/(2n-1)的式子
结果为累加,则s初值为0
通项是s=s+1/(2*i-1)
doubles=0;
for(inti=1;i<=10000;i++)
s=s+1/(2*i-1);
比较累加与本题的区别,看出本题奇数项为加号,偶数项为减号,在不敢变数值的情况下,只有-1的n次幂可以解决。
publicclasslx
{
publicstaticvoidmain(Stringargs[])
{
doublei,x;
double
;
for(i=1;i<=10000;i++)
{x=Math.pow(
);
s=s+x*(
);
}
System.out.println("π的近似值为:
"+
);
}}
填空
处应选择B
A.sB.s=0C.x=0D.s=1
填空
处应选择A
A.-1B.iC.i+1D.s+1
填空
处应选择C
A.-1B.iC.i+1D.s+1
填空
处应选择D
A.1/2*i-1B.1/2i-1C.1/(2i-1)D.1/(2*i-1)
填空
处应选择C
A.sB.4sC.4*sD.x
14.斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”。
经过月数:
---1---2---3---4---5---6---7---8---9---10---11---12
兔子对数:
---1---1---2---3---5---8--13--21--34--55--89—144
请编写程序,输出斐波那契数列的前20项。
程序运行结果如下图。
publicclasslx
{
publicstaticvoidmain(Stringargs[])
{intf[]=
;
f[1]=1;
f[2]=1;
System.out.println(
);
System.out.println("f[2]=1");
for(inti=
;i<=20;i++)
{f[i]=
;
System.out.println("f["+i+"]="+
);
}
}}
填空
处应选择C
A.newint[0]B.newint[10]C.newint[25]D.newint[f]
填空
处应选择A
A."f[1]=1"B.f[1]=1C."f[2]=1"D.f[2]=1
填空
处应选择D
A.0B.1C.2D.3
填空
处应选择B
A.f[i+1]+f[i+2]B.f[i-1]+f[i-2]C.f[i-1]-f[i-2]D.f[i]+f[i+1]
填空
处应选择D
A.f[i+1]B.f[i+2]C.f[i-1]D.f[i]
三、作品题(编程题)
1.已知密度计算公式是:
p=m/v。
某物体,重量是350kg,体积是2.8m3,请编程求出该物体的密度。
publicclasslx
{publicstaticvoidmain(Stringargs[])
{intm=350;
doublev=2.8;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 程序 设计 会考 习题 答案 解析