主题:[讨论]十道题,全答出有分
guozhushenyu
[专家分:30] 发布于 2007-07-29 20:33:00
1、已知整型变量a=1,b=1。编写一个程序实现交换a和b的值的功能
2、一列队伍进行1到4报数。写一个程序,输入某人的位置,判断他应该报多少?
3、对于比较难的试卷,老师通常会把卷面分数开根号以后再乘以10做最后成绩。由于卷子很多,按计算器太麻烦,请你写一个程序帮助老师完成这个工作。
4、输入3个数,把他们按照从小到大的顺序输出。
5、编一个能够让计算机和人玩石头剪刀布的游戏。例如:分别用0、2、5表示石头、剪刀、布。人输入0,计算机输出2,那么计算器输了。人输入2,计算机输出0,人输了。你的游戏不但能够输出计算机的选择,而且应该能够自动半段最后的输赢。(和计算机玩这类游戏的时候你显然应该知道,如果计算机会输,那么 一定是它在让你)
6、请问4325、5120、7834、11296、22178、33050是不是两个完全平方数之和?如果是,写出这两个完全平方数的平方根。
7、请把1081、4199、5893、27713、32017分解质因数
8、一个人的走路速度是2米/秒,跑步速度是4米/秒。他先走了2米,然后跑4米,接下来走6米,跑8米,如此下去。在每次走换成跑的时候,如果从上次休息开始计算,他经过的路程超过了100米(包括100米),他就会停下来休息3分钟。请问,他用了多少时间才能走(跑)完1000米的路程?
9、一个数,如果它是偶数就把他除以2,如果它是奇数就把它乘以3再加上1。反复进行这个操作。请问1234在经过了10,000,000,000次操作以后变成了哪个数?
10、编写一个猜数字的游戏。要求:随机地产生一个数作为答案。每次从键盘读入一个数。如果猜中就结束游戏,否则输出比答案大还是比答案小。如果7次还没有猜中就判输。
回复列表 (共25个回复)
11 楼
dorremon1992 [专家分:870] 发布于 2007-08-02 21:49:00
[quote]1.
program lx1;
var
x, y:integer;
procedure swapab(var a, b:integer); assembler;
asm
MOV AX, WORD PTR[b]
MOV BX, WORD PTR[a]
MOV WORD PTR[a], AX
MOV WORD PTR[b], BX
end;
begin
readln(x, y);
swap(x, y);
writeln(x);
writeln(y);
end.
[/quote]
上面的程序的过程名字还叫swapab,后面就叫做了swap 有没有运行过啊?
这种程序无论是空间还是时间都不是非常理想 最好不要用最好不要用这种方法。
12 楼
guozhushenyu [专家分:30] 发布于 2007-08-08 17:42:00
第4题之后的题目怎么没人说啊......
难道是不会......>_<
13 楼
shisutianxia [专家分:630] 发布于 2007-08-11 13:08:00
PROGRAM DFDF;
VAR I,N,M,J:LONGINT;
BEGIN
WRITELN('N=?');
READLN(N);
I:=0;J:=0;
WHILE(N<>2) DO
BEGIN
I:=N;J:=J+1;
IF ODD(N)THEN N:=N*3+1 ELSE N:=N DIV 2;
END;
M:=(100000000000-J) MOD 3;
IF M=0 THEN WRITE(2);
IF M:=1 THEN WRITE(1);
IF M:=2 THEN WRITE(4);
END.
好像是角谷猜想问题,对吧
14 楼
shisutianxia [专家分:630] 发布于 2007-08-11 13:11:00
PROGRAM DFDF;
VAR I,N,M,J:LONGINT;
BEGIN
WRITELN('N=?');
READLN(N);
I:=0;J:=0;
WHILE(N<>2) DO
BEGIN
I:=N;J:=J+1;
IF ODD(N)THEN N:=N*3+1 ELSE N:=N DIV 2;
END;
M:=(1000000000-J) MOD 3;
IF M=0 THEN WRITE(2);
IF M:=1 THEN WRITE(1);
IF M:=2 THEN WRITE(4);
END.
好像是角谷猜想
15 楼
zzy8200 [专家分:30] 发布于 2007-08-24 21:08:00
[10]
你要的游戏在这:
http://www.programfan.com/club/post-218632.html
原代码有没不知道......暂时没空编(该sleeping了)
[2]
*************
program ss;
var a,b,c,d:integer;
begin
readln(a);
case a mod 4 of
0:b:=4;
1:b:=1;
2:b:=2;
3:b:=3;
end;
writeln;
writeln('bao: ',b);
end.
{经测试可用 BY:ZZY8200}
***************
16 楼
zzy8200 [专家分:30] 发布于 2007-08-24 21:18:00
[3]
*********
program ss;
var a,b,c:real;
begin
while c<>2 do
begin
writeln('please input fen');
readln(a);
b:=sqrt(a);
b:=b*10;
writeln('fen:',b:8:3);
writeln('[again] input:1 [close] input:2');
readln(c);
end;
end.
{经测试可用 BY:ZZY8200}
***************
17 楼
zzy8200 [专家分:30] 发布于 2007-08-24 21:27:00
[4]
***************
program ss;
var a,b,c,d,e,f:real;
begin
readln(a,b,c);
if (a>b)and(a>c) then begin d:=a;a:=-9999;{够小吧} end else if (b>a)and(b>c) then begin
d:=b;b:=-9999; end else begin d:=c;c:=-9999; end;
if (a>b)and(a>c) then begin e:=a;a:=-9999; end else if (b>a)and(b>c) then begin
e:=b;b:=-9999; end else begin e:=c;c:=-9999; end;
if (a>b)and(a>c) then begin f:=a;a:=-9999; end else if (b>a)and(b>c) then begin
f:=b;b:=-9999; end else begin f:=c;c:=-9999; end;
writeln(f,e,d);
end.
{未测试 BY:ZZY8200}
***************
18 楼
zzy8200 [专家分:30] 发布于 2007-08-24 22:00:00
[5]
***************(电脑的是随机的)
program ss;
var a,b,c:integer;
begin
while c<>2 do
begin
writeln('please input 0,2,5');
readln(a);
randomize;
b:=random(3);
if b=1 then b:=5;
writeln('computer:',b);
if a=b then writeln('ping');
if ((a=0) and (b=2)) or ((a=2) and (b=5)) or ((a=5) and (b=0)) then writeln('Win');
if ((b=0) and (a=2)) or ((b=2 )and (a=5)) or ((b=5) and (a=0)) then writeln('Lose');
writeln('[again]:input:1 [close]:input:2');
readln(c);
end;
end.
{经测试可用 BY:ZZY8200}
***************
19 楼
zzy8200 [专家分:30] 发布于 2007-08-24 22:33:00
[6] 分析:更号33050为187多.取187
***************
program ss;
var a: integer;b,c:integer;
begin
for a:=1 to 187 do
for b:=1 to 187 do
if sqr(a)+sqr(b)=33050 then begin writeln(a,b,':33050'); c:=55;{这个随便} end;
if c<>55 then writeln('Wrong');
end.
{经测试可用 BY:ZZY8200}
***************
(其他照样写) [4]测试可用
20 楼
zzy8200 [专家分:30] 发布于 2007-08-24 22:49:00
[9]***************
program ss;
var a,b,c,d:integer;
begin
d:=1234;
for a:=1 to 100 do
for b:=1 to 10000 do
for c:=1 to 10000 do
begin
if odd(d)=false then begin d:=d div 2; end else d:=d*3+1;
end;
writeln(d);
end.
{经测试可用 BY:ZZY8200}
***************(也不必这么多次吧,整形都受不了了.
本人机子较烂,没出结果.自己算吧)
我来回复