A) day1:=Wed B) day2:=Wed C) day1:=day2 D) day2:=Sun
(40) 有下面程序段: a:=False; b:=False; c:=False; x:=15; IF a THEN x:=x-10 ELSE IF b THEN x:= x-5 ELSE IF c THEN x:=20 ELSE x:=25: 假设所有变量均已说明,程序运行后x的值是 A) 25 B) 20 C) 15 D) 5
(41) 设有程序: PROGRAM p41(Input,Output); TYPE arr=ARRAY[1..10] OF Char; VAR a:arr; i:Integer; BEGIN FOR i:=1 TO 10 DO IF NOT Eoln THEN REPEAT Read(a[i]) UNTIL a[i]<>’ ’ ELSE a[i]:=’*’; Readln; FOR i:=1 TO 10 DO Write(a[i]); Writeln END. 运行以上程序,输入I love You 则输出是 A) I love you B) Iloveyou C) I love you** D) Iloveyou**
(42) 设有程序: PROGRAM p42(Input,Output); VAR x,s:Integer; FUNCTION ms(a,b:Integer;VAR x:Integer):Integer; BEGIN x:=3*a-4*b+x; ms:=x MOD 10 END; BEGIN x:=3; s:=ms(ms(1,2,x),2*ms(1,2,x)x); Writeln(‘x=’,x) END 运行后,Writeln语句的输出结果是 A) x=-12 B) x=8 C) x=34 D) x=43
(43) 有下列程序段 VAR p,q,r:^Intetger; BEGIN New(p):p^:=1; q:=p;q^:=2; r:=p;r^:=3; Dispose(r); END; 执行后,p,q,r三个变量值的情况是 A) p^的值为1,q^的值为2,r的值无意义 B) p,q,r的值均无意义 C) p^的值为1,q^的值为2,r的值为3 D) p^的值为2,q^的值为2,r的值无意义
(44) 有条件语句 IF a<>b THEN IF a>b THEN IF a<>c THEN IF aTHEN S1 {设S1为PASCAL语句} ELSE S2 {设S2为PASCAL语句} ELSE S3 {设S3为PASCAL语句} 当a>b而同时a=c时,应执行的语句是 A) S3 B) S2 C) S1 D) 跳出该条件语句
(45) 设a,x为整型变量。有语句 CASE a OF 1,2,3,7; x:=a END; 下列语句与该CASE语句不等价的是 A) IF a IN [1,2,3,7,] THEN x:=a; B) IF a IN [7,1..3] THEN x:=a; C) IF (a=1)AND(a=2)AND(a=3)AND(a=7) THEN x:=a; D) IF (a=1)OR(a=2)OR(a=3)OR(a=7) THEN x:=a;
(46) 假定p,q,t分别为指向结点A,B,C的指针,每个结点中包含一个字符串和一个整数,如下图所示: 执行下列语句 p^:=q^; q^:=t^; t^:=p^; 后,p,q,t分别指向的结点和各结点内容正确的是 (47) 已知有函数定义 FUNCTION fn(a,b,c:Real);Real; BEGIN fn:=sin(a)/(sin(a-b)*sin(a-c)) END; 要计算下列m的值: 通过调用函数fn计算m的正确语句是 A) m:=fn(x,y,z)+fn(x,y,z)+fn(x,y,z) B) m:=fn(x-y)+fn(y-z)+fn(z-x) C) m:=fn(x,y,z)+fn(y,z,x)+fn(z,x,y) D) m:=fn(x)+fn(y)+fn(z)
(48) 设有变量说明:VAR r,s:RECORD a:Integer:b:Char END; x:Real; ch:Char; 下面赋值语句中错误的是 A) r:=s; B) s,b:=ch; C) x:=r,a; D) r,a:=x;
(49) 设有以下说明: TYPE t1=FILE OF Integer; VAR f1:t1: n:Integer; 且abc.dat是t1型文件,下面正确的程序段是 A) Assign(f1,’abc.dat’); B) Assign(f1,’abc.dat’); Write(f1,n); Reset(f1); Rewrite(f1); Readln(f1,n); Close(f1); Close(f1); C) Assign(f1,’abc.dat’); D) Assign(f1,’abc,dat’); Rewrite(f1); Rewet(f1); Writeln(f1,n); Read(f1,n); Close(f1); Close(f1);
(50) 设有类型说明TYPE arr=ARRAY[1..10] OF Char;请阅读下面过程PROCEDURE proc(VAR a:arr); VAR n,k:Integer; BEGIN n:=Ord(‘a’)-Ord(‘A’); FOR k:=1 TO 10 DO IF a[k] IN [‘a’..’z’] THEN a[k]:=Chr(Ord(a[k]-n) END; 此过程的功能是 A) 把a中的所有小写字母变成大写字母 B) 把a中的所有小写字母变成大写,大写字母变成小写 C) 把a中的所有大写字母变成小写字母 D) 把a中的每个字符按ASCII码顺序改为它前面的第n个字符
二、填空题(每空2分,共40分) 请将每空的正确答案写在答题卡上[1]至[20]序号的横线上,答在试卷上不得分。 |