程序设计基础练习题.docx
《程序设计基础练习题.docx》由会员分享,可在线阅读,更多相关《程序设计基础练习题.docx(15页珍藏版)》请在冰豆网上搜索。
![程序设计基础练习题.docx](https://file1.bdocx.com/fileroot1/2023-1/27/fbdc4605-64ae-48a7-98e1-8f45afee896e/fbdc4605-64ae-48a7-98e1-8f45afee896e1.gif)
程序设计基础练习题
程序设计基础练习题
(一)
一、填空题
1、已知:
a,b是整型变量,c是实型变量,对以下各组输入,执行readln(a,b,c)后的结果为:
A、正常输入 B、出错 C、等待输入
分别写出理由:
(1)41 3.7 7 __________
(2)41 37 __________
(3)41.0 37 7 __________
(4)41 37 0.7 __________
(5)41 3 0.7 33 __________
(6)'41' 3 0.7 __________
2、已知a1、a2和a3的布尔值分别是:
true、false、false.
(1)nota1andnota2=___________。
(2)a1ora2anda3=___________。
(3)(nota1ora2)and(a2ora3)=__________。
3、根据以下叙述内容,选择相应题号归类题写:
A、当布尔表达式的值为true时不再执行循环。
B、当布尔表达式的值为false时不再执行循环。
C、循环的特点是先判断,后执行,可能一次也不执行循环体。
D、循环的特点是先执行,后判断,至少执行一次循环体。
E、循环体中的语句成份个数超过一个的时候,必须构成复合语句。
F、循环体的语句成份个数超过一个的时候,不需要构成复合语句。
归类填写:
(1)当型循环WHILE______________________。
(2)直到型循环REPEAT_____________________。
4、CASE语句的执行过程是什么?
5、对于什么样的问题,用for循环比较合适。
而对于什么样的问题,需要使用while和repeat循环来处理。
6、设k为整型变量,用case语句重写下面的程序段。
if(k<=10)and(k>0)then
ifk>5then
ifk<8thenx:
=0
elsex:
=1
else
ifk>2thenx:
=3
elsex:
=4;
二、选择题
1、下列_______程序行是对的。
A、x:
=y:
=5; B、a+b:
=c3; C、y:
=1;y:
=y+1; D、i:
=x10'';
2、下列程序段运行后,变量value的值为__________。
x:
=20;
ifx>=10thenvalue:
=5*x else value:
=4*x;
A、100 B、80 C、90 D、70
3、下列程序段运行后,变量max的值为__________。
a:
=5;b:
=10;max:
=a;
ifb>maxthenmax:
=b;
A、5 B、10 C、5和10 D、以上都不是
4、下列程序段运行后,变量a,b的值为________。
a:
=3;b:
=4;
ifa>bthenbegint:
=a;a:
=b;b:
=t;end;
A、3,4 B、4,3 C、3,3 D、4,4
5、下列if语句中:
y:
=0;
ifx<0theny:
=5
elseifx<10theny:
=10
elsey:
=100;
试指出:
当x=80时,运行的结果是________,x=5时结果为________。
A、y=9 B、y=5 C、y=10 D、y=100 E、y=200
6、请从供选择的程序行中选出能计算机下列各算式的正确程序行:
begin
a:
=1;x:
=1;
repeat
_______________;
x:
=x+2;
untilx=21;
writeln('s=',s);
end.
(1)s=1+3+5+7+…+19 ( )
(2)s=-1+3-5+7-9+…+19 ( )
(3)s=1/(1*3)+1/(3*5)+1/(5*7)+…+1/(17*19) ( )
(4)s=1+(1+3)+(1+3+5)+…+(1+3+5+…+19) ( )
A、a*x;s:
=s+a;a:
=a*(-a)
B、s:
=s+x
C、a:
=-a;s:
=s+a*x
D、b:
=b+x;s:
=s+b
E、a:
=x*(x+2);s:
=s+1/a
F、b:
=b+x;a:
=-a;s:
=s+1/(a*b)
7、下列程序段是计算__________公式的。
s:
=0;t:
=1;
fori:
=1to10do
begin
t:
=t*i;
s:
=s+t;
end;
A、s=1+2+3+4+…+10 B、s=1*2*3*4*…*10
C、s=1+1*2+1*2*3+1*2*3*4+…+1*2*3*4*…*10 D、s=1+2*3+3*4+4*5+…9*10
三、判断题
1、PASCAL的语句分为两大类:
基本语句和复合语句。
( )
2、整型数据可以赋给实型变量。
( )
3、自定义场宽分为标准场宽和指定场宽。
( )
4、写语句必须带有输出项。
( )
5、一个变量或常量可以看成为一个表达式。
( )
6、程序中read;readln;均为合法语句。
( )
7、未定义场宽时,按隐含场宽输出。
( )
8、复合语句与程序执行部分中的“begin…end”的意义不同。
( )
9、布尔型数据是顺序型数据。
( )
10、nottrue的值是false。
( )
11、PASCAL中可以输入、输出一个布尔型数据。
( )
12、复合语句是一种构造型语句,它的地位和一个基本语句相同。
( )
13、情况常量也必须在说明部分说明。
( )
14、同一情况常量不能在同一个case语句中出现二次以上。
( )
15、情况常量在程序执行部分出现的次序可以是任意的。
( )
16、可用字符作为情况标号。
( )
17、判断下列语句的正误:
(1)x:
=3,y:
=4,e:
=5 ( )
(2)x*2:
=y; ( )
(3)x+1:
=y-2; ( )
(4)readln(a、b、c、d); ( )
(5)readln(a+b,c); ( )
(6)writeln(a:
=sqrt(9)); ( )
四、阅读程序
1、阅读程序,写出运行结果。
programex1(input,output);
var
a,b,s,d:
integer;
l,e,g:
boolean;
begin
a:
=3;b:
=7;
s:
=a+b;d:
=adivb;
l:
=a
=a=b;
g:
=a>b;
write('s=',s:
5);
writeln('d=',d:
5);
writeln('l=',l);
writeln('e=',e,'g=',g);
writeln(b/a:
5:
5)
end.
2、阅读程序,写出运行结果。
programex2(input);
var
a,b:
integer;
c,d:
boolean;
begin
a:
=8;b:
=7;
c:
=odd(a);d:
=odd(b);
writeln('c=',c);
writeln('d=',d);
ifa>bthen
begin
ifc=dthenwrite(c)
elsewrite(d)
end;
end.
3、阅读程序,写出运行结果。
programex3(input,output);
label10;
var
c:
char;
begin
forc:
='a'to'z'do
begin
ifc>'s'thengoto10;
write(c,'');
end;
10:
end.
4、阅读程序,写出运行结果。
programex4(input,output);
var
t,s,i:
integer;
begin
t:
=0;s:
=0;
fori:
=-5to5do
begin
t:
=t+1;
s:
=s+t+i;
end;
writeln('t,s=',t,s:
10);
end.
5、阅读程序,写出运行结果。
programex5(input,output);
var
t,n,s:
integer;
begin
t:
=1;n:
=3;s:
=0;
whiles<10do
begin
t:
=t*n;
s:
=s+t;
end;
write('s=',s);
end.
6、阅读程序,写出运行结果。
programex6(input,output);
var
p,m:
integer;
begin
p:
=20;m:
=2;
repeat
p:
=p-m;
m:
=m+3;
untilm>p;
write('m,p=',m,'',p);
end.
7、阅读程序,写出运行结果。
programex7(input,output);
var
n,a:
integer;
begin
n:
=6;a:
=0;
whilen>1do
begin
a:
=1;
repeat
write('*');
a:
=a+1;
untila>=n;
writeln;
n:
=n-1;
end;
end.
8、阅读程序,写出运行结果。
programex8(input,output);
var
i,j,k,s:
integer;
begin
s:
=0;
fori:
=3downto1do
begin
forj:
=1to3do
begin
k:
=0;
repeat
k:
=k+1;
s:
=s+k;
untilk=j;
end;
s:
=s-(k+1);
end;
write('s=',s);
end.
9、阅读程序段,写出运行后变量x的值。
x1:
=3;
x2:
=8;
fori:
=1to5do
begin
x:
=(x1+x2)*2;
x1:
=x2;x2:
=x;
end;
writeln('x=',x);
10、阅读程序段,并写出计算公式(假设x的值已给出)。
e:
=1;
a:
=1;
forn:
=1to10do
begin
a:
=a*x/n;
e:
=e+a;
end;
11、阅读程序,写出运行结果。
programex9(input,output);
var
r,c,i:
integer;
begin
i:
=20;
forr:
=1to5do
begin
write('':
r);
forc:
=1tor*2-1dowrite(c:
1);
writeln;
i:
=i-1;
end;
end.
五、完善程序
1、完善程序,使其能输出如下图形:
*
**
***
****
*****
programex4_5_1(input,output);
var
i,j:
integer;
begin
fori:
=1to________do
begin
write('':
_________);
forj:
=1to____________do
write(______________);
writeln;
end;
end.
2、下面是一个求:
1/1+1/2+2/3+3/5+5/8+8/13+13/21+21/32+…前20项的和的程序段,试将程序补充完整:
s:
=0;a:
=1;b:
=1;
fork:
=1to10do
begin
s:
=_________________;
a:
=_________________;
s:
=_________________;
b:
=_________________;
end;
writeln(s);
3、求出满足下列条件的二位数:
将此二位数的个位数与十位数字进行交换,可以得到一个新的数,要求新数与原数之和小于100(每行输出6个满足要求的数)。
begin
k:
=0;
fori:
=________to99do
begin
x:
=____________;
y:
=____________;
j:
=x*10+y;
if_________ then
begin
k:
=k+1;
write(i:
4);
___________________thenwriteln;
end;
end;
end.
六、编写程序
1、编写程序,分别用字符打印如下图形:
(1) *****
(2) @
***** @@
***** @@@
(3)自己设计一个图形并编程实现。
2、键入a,b二个变量的值,打印输出a+b的横式与竖式。
3、键入三个变量值a,b,c,将它们交换值打印输出。
4、求一个长方形的周长和面积。
5、键入一个四位整数(如3529),将其各位数字倒序(如9253)打印。
6、输入一个字符,输出该字符及其序数值。
7、输入两个字符,分别打印它们的前导值、后续值和字符码。
8、输入圆的半径,分别打印周长和面积值。
9、输入两个整数,输出它们的平方和及它们的平方根。
10、输入两个整数,输出它们相除的整数商及余数。
(用算式表示)
11、输入一个时间的秒数,分别将其换算为下述时间单位输出:
*小时 *天 *星期
12、读入二个整数,a,b,输出其中最小的数。
13、判断读入的整数a是奇数还是偶数。
14、读入二个字符,若这两个字符的ASCII码之差是奇数,打印这两个字符的后继字符,否则打印它们的前趋字 符。
15、将字母A、B、C、D或a、b、c、d转换成1、2、3、4,其余的字符转换成5。
16、输入三个数a,b,c,打印出最大者。
(1)不嵌套的if语句;
(2)嵌套的if语句
17、读一组整数,用0作为终止标志,打印其中正、负数的个数及各自的总和。
18、找出被2、3、5除时余数为1的最小的十个数。
19、选票统计:
有a、b、c、d四们候选人,n位投票人。
统计时,a、b、c、d以外的字符为弃权,按得票多少打 印出候选人代号及得票数。
20、按字母表的顺序和逆序每隔一个字母打印输出。
21、打印输入的n个整数中的最大、最小数及其序号。
22、打印以下各式的值:
(1)s=1+3+5+…+99
(2)s=1+1/2+1/3+…+1/100
(3)s=1×2+2×3+3×4+…+n×(n+1)
23、猴子吃枣问题。
猴子摘了一堆枣,第一天吃了一半,还嫌不过瘾,又吃了一个;第二天又吃了剩下的一半 零一个;以后每天如此。
到第十天,猴子一看只剩下一个了。
问最初有多少个枣子?
24、求e=1+1/1×2+1/1×2×3+1/1×2×3×4+…+1/1×2×3×4×…×n
25、齐王点兵的故事,相传齐王才智过人,从不直接点数自己军队的人数,只是让士兵先后以三人一排,五人 一排,七人一排地变换队形,而他每次只掠过一眼队伍排列尾数的人数就知道总人数了(不超过100人)。
26、警察局抓了a,b,c,d四名偷窃嫌疑犯,其中有一人是小偷。
审问中:
a说:
“我不是小偷。
”
b说:
“c是小偷。
”
c说:
“小偷肯定是d。
”
d说:
“c冤枉人!
”
现在已经知道四人中三人说的是真话,一个说的假话。
问到底谁是小偷。
27、甲乙丙丁戊五个人在运动会上分获百米、二百米、跳高、跳远和铅球冠军,有四个有猜测比赛结果:
a说:
乙获铅球冠军,丁获跳高冠军。
b说:
甲获百米冠军,戊获跳远冠军。
c说:
丙获跳远冠军,丁获二百米冠军。
d说:
乙获跳高冠军,戊获铅球冠军。
其中每个人都只说对一句,说错一句。
求五人各获哪项冠军。
28、打印以下图形:
(键入n,控制图形的行数,以下图形均为n=3)
(1)**** ****
(2)+ + (3)edcba (4) 1
**** **** ++ ++ cba 357
******** ++++++ a 91357
29、把一张一元钞票换成一分、二分和五分的硬币(每种至少一枚)。
问有哪几种换法?
30、求二个正整数的最大公约数和最小公倍数。
31、任给一个自然数n,求出这个自然数不同因数的个数。
例如n=6时,因为1、2、3、6这四个数均是6的因数,故输出为total=4。
32、有A、B、C、D、E五本书,要分给张、王、刘、赵、钱五位同