第6章 同步练习数组(A)

2018-11-08 15:04

第6章 同步练习数组(A)

一、单项选择题

1.数组下标只允许是( )。

A.整型 B.字符型 C.有序类型 D.枚举类型和子界类型; 2.在引用数组元素时,数组元素的下标只可以是( )。

A.常量 B.表达式 C.变量 D.常量、变量及表达式均可。 3.以下数组说明错误的是( )。

A.var a:array[boolean]of integer; B.var a:array[i..j]of integer;

C.var num:array[0..8] of array['a'..'f']of integer; D.var a:array['a'..'z']of Boolean;

4.有数组说明:var a:array[1..8]ofinteger;则下列数组元素的引用正确的是( )。 A.a[8] B.a[10] C.a[5.5] D.a(0)

5.设数组a和变量i,j,k,m,n,均已说明,且各自赋值如下: I:=1;j:=2;k:=3;m:=4; for n:=l to 9 do a[n]:=n; 下面数组元素的值等于3的是( )。

A.a[i*j] B.a[m div j] C.a[a[j+k-2]] D.a[a[k-i]+3] 6.设有说明var a:array['A'..'E',1..4,boolean]of real; 则a['A',3]是( )。

A.一个实型的数组元素

B.一个数组,该数组具有两个实型数组元素 C.一个数组,该数组具有4*2个实型数组元素 D.一个数组,该数组具有5*4*2个实型数组元素

7.下列语句定义了一个二维数组score,其中定义正确的是( )。 A.type sore=array[1..3,1..20]of real; B.var sore:array[1..3,1..20]of real;

C.type al=array[1..20]of real;score=array[1..3]of al; D.var score=array[1..3]ofarray[1..20]of real; 8.有数组说明:var a:array[1..3,1..50]of integer;,则下列对数组元素的引用非法的是( )。

A.a[2,5] B.a[1+2,20] C.a[50,1] D.a[3,20] 9.若有数组说明:

type a=array[0..3,O..4]of char; var pup:a;

则下列说法正确的是( )。 A.此说明语句不正确

B.这是一个二维数组pup,包含3行4列,共12个元素 c.这是一个字符型数组

D.可以这样引用数组元素a[2,4]

10.已知m,n为常量,若有二维数组a的说明: var a:array[0..m,0..n];

则在元素a[i][j]前的元素个数为( )。

A.i*(n+1)+j B.j*(n+1)+i C.i*(n+1)+j-l D.i*(n+1)+j+1 11.若有二维数组a的说明:

var a:array[0..m,0._n];

则计算数组a的任一元素a[i][j]在数组中位置的公式为( )。

A.i*(n+1)+j B.j*(n+1)+i C.i*(n+1)+j-1 D.i*(n+j)+j+l 12.设4个字节存放一个实型数,若有说明:

var a:array[1..10]of array[boolean]of real; 则数组a需占用的存储空间是( )。

A.10字节 B.20字节 C.80字节 D.40字节

13.要用一个数组存放某班30人3门课的考试成绩(考试成绩保留1位小数),下面哪 个说明中的数组可以存放这些数据?( )

A.var score:array[1..3,1..30]of integer;

B.var score:array['A'..'C' ,1..30]of integer; C.var score:array[1..30,boolean]of real; D.var score:array[1..30,'A'..'C']of real; 14.有如下程序: Var

num:array[1..3]of integer; i,j:integer; begin

for i:=1 to 3 do num[i]:=i; i:=1;j:=3 ; repeat

num[i]:= num[j]+1;i:=i+1;j:=j-1; until i>3 ;

for i:=1 to 3 do write(num[i]:5); end.

该程序的运行结果是( )。

A.4 3 2 B.2 3 4 C.4 5 3 D.4 3 5 15.有如下程序:

program writeA; var

n:integer;

a:array[1..100]of integer; begin a[1]:=1;

for n:=2 to 100 dO a[n]:=a[n-1]+n;

writeln(a[15],’,’a[20]) end.

该程序运行后,输出的结果是( )。

A.15,20 B.150,240 C.120,240 D.120,210 16.有数组说明如下:

type

a=array[1..100]of integer; b=a;

var x:a; y:b;

z:array[1..100]of integer; 则下列语句止确的是( )。

A.x:=y; B.y:=z; C.x:=z; D.z:=y; 17.请看下面的程序: program test; type

tchar=array[1..26] of char; var

mechar:tchar;

procedure readchar(var x:array[1..26]of char); var

i:integer; begin

for i:=1 to 26 do readln(x[i]); end;

procedure writechar(var x:array[1..26] of char); var

i:integer; begin

for i:=1 to 26 do write(x[i]); end; begin

readchar(mehar); writechar(mehar); end.

其中有( )行语句有错误。

A.O B.1 C.2 D.3

18.字符串可以像其他数据类型一样进行赋值操作,例如: var a:string[5]; begin

a:= ’abcdefgh’; end.

这里字符串abcdefgh超出了字符串变量a的最大长度,所以( ) A.程序出错,不运行

B.程序运行,但是跳过赋值语句

C.程序运行,但是超出的部分将被截掉 D.程序会自动突破限制

19.下面有关字符串的关系表达式值为true是( )。 A.’A’>’B’ B. ’B’>lb’ C. ’ab'>'ac’。 . ’aA’>’Aa’ D

20.有字符串说明:var a,b,c:string;下面( )不能实现将a,b两个字符串连接。 A.c:=a+b: B.c:=a-b; C.c:=concat(a,b); D.insert(a,b,0); 二、填空题

1.数组下标必须是 类型,比如说,可以是 类型、 类型、 类型和 类型。下标的下界和上界必须是 量。

2.一维数组的定义格式为:type数组类型名=array[常量l..常量2]of 。其中常量1叫做 ,用于规定下标的 值;常量2叫做 , 用于规定下标的 值。并且下界必须 (填“大于”或 “小于”或“不大于”或“不小于”)上界。

3.数组的基类型就是数组中 的数据类型,它可以是 数据类型。 4.数组变量名必须是一个 的标识符。

5.数组中的每个元素都相当于一个相应类型的 。但是,数组元素没有单独的变量名,必须通过 和 来确定。因此,数组元素也称为下标变量。数组元素的引用格式为:数组变量名[ ]。

6.数组定义:vat num:array[16..4]ofreal;是 的,因为 。数组定义: var edge:array[0.1..0.9]of real;是 的,因为 。

7.使用数组时,通常是把数组元素当作相应类型的变量来使用,其类型由 决定。比如数组说明:var score:array[1..50]of real;数组score中的元素都是 。

8.引用数组元素时,下标可以是 、 或 。 9.枚举类型的定义格式: type

枚举类型名=(枚举值1,枚举值2,枚举值3,?,枚举值n);其中枚举类型名和枚举值都应该是合法的 。 10.有变量说明:

Var

age:O..300;

age是一个 类型。其中0叫做这个变量类型的 ,300叫做这个变量类型的 。 三、判断题

1.可以将性别定义为枚举类型:var sex=(male,female);。( ) 2.可以将棋子的颜色定义为枚举类型:type colChess=(red,black);。( ) 3.其实枚举值就是字符串。( )

4.不同类型的枚举值不能相互赋值或进行运算。( ) 5.可以将人的年龄定义为子界类型:var age:O..200;。( ) 6.可以将月份定义为子界类型:type month:1..12;。( ) 7.数组下标可以是任意数据类型。( )

8.定义数组必须先定义数组类型标识符,再定义该类型的数组变量。( ) 9.定义了数组类型标识符score后,可以这样引用数组元素:score[n]。( ) 10.可以这样定义数组var a:array[200..150];。( ) 11.可以这样定义数组varb:array[1..n];。( ) 四、阅读程序 1.程序清单: program lx641 ; var

i,s:integer;

a:array[1..5]of integer; begin s:=0;

for i:=1 to 5 do begin

read(a[i]); s:=s+a[i]; end; writeln;

writeln(s/5:8:2); end.

运行程序,输入“ll,12,13,14,15”后,输出结果为 。 2.程序清单: program lx642; var

i:integer;

a:array[1..20]of integer; begin

a[1]:=1 ; a[2]:=1;

for i:=3 to 20 do a[i]:=a[i-2]+a[i-1]; write(a[5]); end.

运行程序,输出结果为 。 3.程序清单:

program lx643; Var

i,j,s,a:integer;

num:array[1..10]of integer; begin s:=0 ; a:=0; j:=0 ;

for i:=1 to 10 do begin

read(num[i]);

if odd(num[i]) then s:=s+num[i] else

begin a:=a+num[i]; j:=j+1

end end;

writein(S);

writeln(trunc(a/j)); pnd

运行程序,输入“17 20 -12 16 4 5 77 0 8 14”后,输出结果为 五、完善程序

1.问题描述:输入某个班50名学生的成绩,排出名次,并且给出每个学生原来的编号 (即输入的次序)。

算法分析:定义两个数组。一个为实型数组a,用来存放读入的分数。另一个为整型数组b,用来记录每个学生原来的名次。开始数组b的元素的值依次为l,2,3,4,5,?50。当排序时,如果数组a的元素发生了交换,也同时交换它们所对应的数组b的元素,使其读入的数据与其对应的输入次序保持同步交换。

程序清单:

program lx651 ; Var

a:array[1..50]of real; b:array[1..50]of integer; i,j,tem:integer; temp:real; Begin

for i:=1 to 50 do read(a[i]);

for i:=1 to 49 do for j:=i+1 to 50 do if a[i]

①; ②; ③; ④; ⑤; ⑥; end;

for i:=1 to 50 do writeln(a[i],b[i]) end.

2.问题描述:输入一串字符,以“?”结束,统计各字母出现的次数,并按字母出现的多少输出(先输出字母出现多的,次数相同的按字母表顺序输出,不出现的字母不输出)。

程序清单:

program lx652 ; var

a:array [’a’.. ’z’]of integer; ch:char;

n:integer; begin

for ch:= ’a’to ’z’do a[ch]:=0 ; read(ch);

While ch<> ’? ’do begin

if(ch>=’a’)and(ch<=’Z’) then ;

; end; writeln ; n:=0;

for ch:= ’a’to ’Z’do if then n:=a[ch];

while do begin

for ch:=’a’to ’z’do if a[ch]=n

then writeln(ch,n); end

end.

3.问题描述:用筛选法求100以内的素数(质数)。

算法分析:素数是除了l和它本身以外没有其他约数的数。用筛选法求素数的方法是用质数筛去合数,从第一个素数2开始,把它的倍数去掉;这样2以后的第一个非0数就一定也是素数,把它的倍数也删了??重复这个删数过程,直到在所找到的素数后再也找不到一个非0数。把所有非0数输出。

程序清单:

Program lx653 ;

var

a:array[1..100]of integer; i,j,k:integer;

begin

for i:=1 to 100 do a[i]:=i ; a[1]:=0 ; i:=2 ;

While i<=100 do begln

k:=i;

while do begin

; a[k]:=0 ; end; i:=i+1:

while a[i]=0 do ; end;

for i:=1 to 100 do if then write(a[i],’ ’); end. 六、编写程序

1.输入一串字符,以“?”结束,统计其中小写英文字母出现的个数。 2.随机产生20个100以内的数,输出;按从小到大的顺序排序,输出。

3.从键盘输入30个整数,按顺序每5个数求出一个平均值,放在另一个数组中并输出。 4.从键盘输入若干个整数,其值在O~9的范围内,用-l作为结束标志。统计每个整数的出现次数,并按出现次数由多到少输出。

5.从键盘输入50个学生成绩,输出总分和平均分,排出名次并输出(每行5个)。 6.某超市出售4种水果,每公斤价格是:苹果2.50元,橘子1.80元,香蕉2.40元,菠萝2.60元。编一程序,从键盘输入水果的代码及重量,计算机便显示货物的名称、单价、重量及总价。设代码为:l苹果、2橘子、3香蕉、4菠萝。


第6章 同步练习数组(A).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1.第四批团队申报书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: