pascal测试,作对大大的加分,加50

来源:百度知道 编辑:UC知道 时间:2024/05/01 22:02:14
一:填空题。
1.ax2+bx+c的PASCAL的表达式是____________________
2.表达式2/4*5的值是____________,表达式10*4 mod 5*22/4*5的值是___________________
3.i是j的整数倍的布尔表达式是________________,m是偶数的布尔表达式是________________,
y在-2至-1之间的布尔表达式是__________________________,y是闰年的布尔表达式是_______________。
4.有一编码规则如下:
原码:1 2 3 …… 24 25 26
密码:26 25 24 ……3 2 1
已知原码变量x,则密码y的表达式是______________________________________。
二:编程题。
1.任给一个自然数n(n<=40000),求出这个自然数不同因数的个数。例如 n=6时,因为1,2,3,6这四个数均是6的因数,故输出为total=4。
2.有A、B、C、D四名偷窃嫌疑犯,其中一人是小偷,审问中,A说:“我
不是小偷”,B说:“C是小偷”,C说:“小偷肯定是D”,D说:“C
在冤枉人”,有三人说真话,一人说假话,问到底谁是小偷?
3.将1,2,...9共9个数字分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。
例如:三个三位数192,384,576满足以上条件。
快快

一、
1 a*x*2+b*x+c
2 2.5,0
3 i mod j=0,m mod 2=0,(y>-2)and(y<-1),((y mod 4=0)and(y mod 100<>0))or(y mod 400=0)
4 y:=27-x;
二、
1
var i,j,k,n:word;
a:array[1..40000]of 1..17;
begin
fillchar(a,sizeof(a),0);
readln(n);
for i:=2 to trunc(sqrt(n)) do begin
while n mod i=0 do begin
n:=n div i;
inc(a[i]);
end;
end;
j:=1;
for i:=2 to trunc(sqrt(n))do j:=j*(a[i]+1);
writeln(j);
readln;
end.
2
var a,b,c,d:boolean;
begin
for a:=false to true do
for b:=false to true do
for c:=false to true do
for d:=false to true do begin
if(a=a)and(b=(not(c)))and(c=(not (d)))and(d=(not (c)))then begin
if not(a) then write('A');
if not(b) then write('B');
if not(c) then write('C');
if not(d) then write('D');
end;
end;
readln;
end.
3
var i