一、单项选择题:(请将正确答案的序号写在题前括号中,本题45分) ( ) 1. 启动WINDOWS后,不是桌面上常见的图标是( )。 A. 我的电脑 B. 回收站 C. 控制面板 D. 我的文档 ( ) 2. 字母在计算机中是以编码形式表示的。通用的编码是ASCII码,字母“a”的ASCII码是97,字母“z”的ASCII码是( )。 A. 120 B. 121 C. 122 D. 123 ( ) 3. 分析数字规律,找出后面数:20 ,22 ,25 ,30 ,37 ,( ) A.39 B< xmlnamespace prefix ="st1" ns ="urn:schemas-microsoft-com:office:smarttags" />.45 C.48 D.51 ( ) 4. 古时候,有四个长工在推测财主的财富到底有多少。甲说,他的钱不会超过25万贯。乙说,他的钱不会超过30万贯。丙说,他的钱绝对在40万贯以上。丁说,他的钱肯定没有50万贯。实际上只有一个长工说对了。以下哪一项为真,可支持上述观点?( ) A. 甲说的对 B. 财主的钱在50万贯以上 C.财主的钱财在40万贯—50万贯之间 D.丁说的对。 ( ) 5. A、B、C三人中一位是工人,一位是教师,一位是律师。已知:C仅比律师年龄大,A和教师不同岁,B比教师年龄小。问:A、B、C分别是什么身份? A. 工人、教师、律师 B. 律师、工人、教师 C. 工人、律师、教师 D. 教师、律师、工人 ( ) 6. 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第5天早上想再吃时,见只剩下一个桃子了。求第一天共摘了( )个? A. 46 B. 22 C. 94 D. 10 ( C ) 7. 用A表示某个人的总成绩,用B表示这个人的语文成绩,用C表示这个人的数学成绩。那么,用来表达总分不低于170分,同时数学成绩不低于90分,或者语文成绩不低于86分的逻辑表达式是 A. A>=170 AND B>=86 OR C>=90 B. 总分超过170,并且语文超过86或数学超过90 C. (A>=170) AND (B>=86 OR C>=90) D. (A>=170 AND B>=86) OR C>=90 ( ) 8. 当n为任意正奇数时,值总为true的表达式是( )。 A. n mod 2=0 B. n div 2=1 C. n-(n div 2)=1 D. n-trunc(n/2)*2=1 ( ) 9. 有下面程序段: a:=false; b:=false; c:=true; x:=10; if a then x:=x-5 else if b then if c then x:=36 else x:=45; 假设所有变量均已说明,程序运行后x的值是: A. 5 B. 10 C. 36 D. 45 ( ) 10. 下列FOR语句构成的循环,能执行且有输出的是: A. for i:=1 downto 5 do write(i); B. for i:=5 to 1 do write(i); C. for i:=5 to 5 do write(i); D. for i:=0.5 to 5.5 do write(i); ( ) 11. 下列程序段中,循环体执行的次数为: i:=1; repeat n:=i*i; i:=i+1 until n>i; A. 1 B. 2 C. 3 D. 4 ( ) 12. 有下列程序段: x:=2; y:=6; for i:=x to y do begin x:=3; y:=6; write(i) end 则FOR循环体的执行次数是: A. 0 B.3 C.4 D.5 ( ) 13. 程序段如下: for i:=1 to 5 do for j:=2 to i do writeln(‘*’); 输出’*’的个数是 A.5 B.10 C.15 D.25 ( ) 14. 已知有说明 const a=1; b=2; c=3; d=4; var w,x,y,z:integer; 执行语句 x:=a; x:=c; y:=a+2; z:=b; w:=d-a+b; 后,其值相等的变量是( )。 A. x,y B. x,z C. x,w D. y,z ( ) 15. 有下列程序段 for i:=1 to 10 do begin case i mod 4 of 0: ch:='a'; 1: ch:='b'; 2: ch:='c'; 3: ch:='d' end; write(ch); end; 运行后输出结果是( )。 A. abcdabcdab B. bcdabcdabc C. cdabcdadcd D. dabcdabcda 二、阅读程序,写出运行结果:(本题30分) 1 、程序清单: Program kk21; var d, p: integer; begin p:=1; for d:=5 downto 1 do p:=2*(p+1); writeln (p) end. 程序运行后输出: 2、程序清单: Program kk22; var i,j: integer; begin for i:= 1 to 8 do write(char(i*2+ord('A'))); writeln; for i:= 1 to 4 do begin for j:= 1 to i do write(‘*’); writeln; end; end. 程序运行后输出:
3、程序清单: Program kk23; Var m,a,b,c,d:integer; begin readln(m); a:=m div 1000; b:=(m-a*1000)div 100; c:=(m-a*1000-b*100)div 10; d:=m mod 10; write(d:3,c:3,b:3,a:3); end. 输入: 2685 输出: 三、完善程序(本题20分,每空4分) 1、植树节那天,有五位参加了植树活动,他们完成植树的棵数都不相同。问第一位同学植了多少棵时,他指着旁边的第二位同学说比他多植了两棵;追问第二位同学,他又说比第三位同学多植了两棵;…,如此类推,都说比另一位同学多植两棵。最后问到第五位同学时,他说自己植了10棵。到底第一位同学植了多少棵树? 程序清单: Program Ex31; Var i, a: integer; begin a:=10; for i :=1 to ① do a:= ② writeln(’The Num is’, a); readln; end. 程序中①为: ②为: 2、有100多个零件,如果分成4个零件一组,则多出2个;分成7个零件一组,则多出3个;若分成9个零件一组,则多出5个。问这堆零件有多少? 程序清单: Program Ex32; var i: integer; begin for i :=100 to 200 do if ③ and (i mod 7=3) and ④ then writeln(i); readln; end. 程序中③为: ④为:
六、编写程序(本题13分) 一光滑墙壁高X尺,有一个小虫从墙底部向上爬,每分钟爬Y尺。但每爬一分钟后都要休息一分钟,在休息期间又下滑一尺。编程:输入X和Y,计算该小虫最少几分钟可爬到顶端。
输入格式:包括一行数据,其中有两个数据,分别表示墙壁的高(尺)和小虫每分爬的高度(尺),两个数据之间用空格隔开。 输出格式:只有一个数据,表示小虫至少可爬到顶端的时间。 样例输入:4 2 样例输出:5 要求:① 分析题目,写出算法; ② 编程实现算法 算法: 算法一:模拟,设变量s表示当前经过的时间,p表示当前爬到的高度。S和p初始为0,每次p:=p+y,s:=s+1,判断p是否已经到达顶端(p>=x);若没有,则下滑一尺,即p:=p-1; s:=s+1; 循环操作,如果p>=x则立即结束循环,则不再下滑,直接得到答案。 算法二:数学方法 因为最后一次爬到顶端,是不下滑的,所以先把最后一次除去,即x:=x-y;,现在的高度x包含有几次上升和下滑,每次上升的实际高度是y-1,这里有两种情况:如果x能够整除y-1,那么所需的时间就是(x div (y-1))*2;如果x不能整除y-1,那么就还要多一次上升和下滑,即(x div (y-1)+1)*2。 |
|