| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4354 人关注过本帖
标题:数组练习题
只看楼主 加入收藏
chao41091153
Rank: 2
等 级:论坛游民
帖 子:39
专家分:33
注 册:2010-5-26
结帖率:100%
收藏
已结贴  问题点数:4 回复次数:6 
数组练习题
一、选择题
1.下面对数组类型定义描述正确的是(  )
A)数组的下标类型是有序类型
B)一个数组中的各元素类型可以不一样
C)数组的下标类型若为整型,则其上界一定要大于下界
D)PASCAL语言数组下标的下界要大于等于零

2.设有说明var a:array['a'..'z'] of real;
则a数组是(  )
A)一个存放字符数据的数组 B)一个存放实型元素的数组
C)一个具有20个数据的数组 D)能够存放26个元素的数组

3.设有如下说明:
const a=1;b=2;c=3;
var x:array[1..5] of integer;
且已知x[1]:=1;x[2]:=7;x[3]:=9;x[4]:=1;x[5]:=6;
则表达式:
(x[b]-1>x[5])and(x[c]>0)or not(x[a+b]>(a+b))的值是:
A)true  B)false  C)0  D)1

4.已有数组说明:var a:array[1..10] of integer;
a[1] a[2] .................................a[10] 7 6 4 3 5 2 14 11 9 1


执行语句writlen(a[a[7] div a[3]])后的输出结果是:
A)4  B)6  C)3  D)14

5.已知有说明:VAR a:array[1..10]of integer;
               k,i:Integer;
下面程序段:
For i:=1 T0 10 DO
  IF a[i]>a[k] then k:=i;
writeln(a[k]);
输出的是
A)数组中数的平均值 C)数组中数的最小值
B)数组中数的总和  D)数组中数的最大值

6.如果计算机中4个字节存放一个实型数,若有说明:
VAR A:ARRAY[1..10] OF Real;
则数组A需占用的存储区域是
A)10字节 B)20字节 C)80字节 D)40字节

二、看程序写结果

1.

var a:array[-3..3] of integer;
   i,k:integer;
begin
 k:=0;
 for i:=-3 to 3 do
  if  i<0  then  a[i]:=k+1
   else  a[i]:=k+2;
 writeln(a[3]-a[-3])
end.
output:

 

2.var a:array[1..30] of longint;
 n,i:integer;
begin
 readln(n);
 a[1]:=0;a[2]:=1;
 for i:=3 to n  do a[i]:=a[i-1]+a[i-2];
 for i:=1 to n  do write(a[i]:8);
 writeln
end.
输入:10

输出:

 

3.

var i,s,max:integer;a:array[1..10] of integer;
 begin
  for i:=1 to 10 do read(a[i]);
  max:=a[1];s:=a[1];
  for i:=2 to 10 do
   begin
    if s<0 then s:=0;
    s:=s+a[i];
    if s>max then max:=s
   end;
  writeln(‘max=’,max)
 end.
 输入:-2 13 –1 4 7 8 –1 –18 24 6 

输出:max=

4.

var a:array['a'..'z'] of integer;
  b:char;
begin
 repeat
  read(b);
  if (b>='a')and(b<='z') then
   a[b]:=a[b]+1;
 until b='?';
 for b:='a' to 'z' do
  if a[b]<>0 then write(b,':',a[b],' ')
end.
输入:how many apples are there on the table?
输出:

 

5.

var a:array[1..10] of integer;
 i,j,temp:integer;
begin
 for i:=1 to 10 do read(a[i]);
 for i:=1 to 9 do
  for j:=i+1 to 10 do
   if a[i]<a[j] then
    begin
     temp:=a[i];a[i]:=a[j];a[j]:=temp
    end;
 for i:=1 to 10 do write(a[i]:8); writeln
end.
输入:87 65 35 156 5 54 7 68 9 81

输出:

 

6.

var a:array[0..1000] of integer;
 k,i,n,j:integer;
begin
 readln(n,k); j:=0;
 while n>=k do
 begin
  a[j]:=n mod k;  n:=n div k;  j:=j+1
 end;
 a[j]:=n;
 write(n,',',k,':');
 for i:=j downto 0 do write(a[i]:2); writeln
end.
输入:1288 3  输出:

 

三、填空题:请将每空的正确答案写在横线上

下面的程序从键盘接收任意6个数放入数组A中,假设这6个数为:8 1 4 2 5 6 ,则要输出一个具有如下内容的方阵。
8 1 4 2 5 6
6 8 1 4 2 5
5 6 8 1 4 2
2 5 6 8 1 4
4 2 5 6 8 1
1 4 2 5 6 8
var a:array[1..6] of integer;
 i,j,k:integer;
begin
 for i:=1 to 6 do read(__________);
 for i:=1 to 6 do
 begin
  if i=1 then k:=1
   else k:=____________;
  for j:=1 to_________do
  begin
   write(a[k]:2);
   if k=6 then k:=1
    else k:=______________
  end;
  writeln
 end
end.

 

下面的程序将n个学生的英文成绩从键盘输入,按0—59分、60—69分、70—79分、80—89分和90—100分分组统计人数。
const n=20;
var i,k:integer;

    s:array[1..5]of integer;

    a:array[l..n]of integer;

begin

  for i:=1 to _____ do

  s[i]:=0;

  for i:=1 to _____ do

  begin

    _______________;

    if a[i]>=90 then k:=1

    else if a[i]>=80 then k:=2

     else if a[i]>=70 then k:=3

        else if a[i]>=60 then k:=4

          else k:=5;

    s[k]:=_______

  end;

  for i:=1 to 5 do
    write(a[i]:4);

  writeln

end.

 
 
四、编写程序

1.随机产生20个100以内的数,输出;按从小到大的顺序排序,输出。

2.判断一字符串是否是回文数,如121、12321、ABA等(字符串输入时以‘.’结束)。
如输入:12321.
输出:yes

3.围绕着山顶有10个洞,一只兔子和一只狐狸住在各自的洞里,狐狸总想吃掉兔子,一天兔子对狐狸说,你想吃我有一个条件,你先把洞编号1到10,你从第10洞出发,先到第1号洞找我,第二次隔一个洞找我,第三次隔两个洞找我,以后依次类推,次数不限,若能找到我你就可以饱餐一顿,在没找到我之前不能停止,狐狸一想只有10个洞,寻找的次数又不限,哪有找不到的道理,就答应了条件,结果狐狸跑得昏了过去也没找到兔子,请问兔子躲在哪个洞里。程序中可假定狐狸找了1000次。

4.求一个5 X 5数阵中的马鞍数,输出它的位置。所谓马鞍数,是指在行上最小而在列上最大的数。如下:
  5 6 7 8 9
  4 5 6 7 8
  3 4 5 2 1
  2 3 4 9 0
  1 2 5 4 8
  则1行1列上的数就是马鞍数。
 
有答案更好   但不能不回帖  不回帖者杀无赦



[ 本帖最后由 chao41091153 于 2010-6-2 17:03 编辑 ]
搜索更多相关主题的帖子: 练习题 
2010-06-02 16:48
tzp876301129
Rank: 2
等 级:论坛游民
帖 子:29
专家分:31
注 册:2010-5-16
收藏
得分:0 
太好了,顶顶!(*^__^*)
2010-06-02 16:53
a8979595
Rank: 2
等 级:论坛游民
帖 子:34
专家分:54
注 册:2010-5-31
收藏
得分:0 
#include <stdio.h>
main()
{
    int a[20];
    int i,j,temp;
    printf("请输入20大于100的个数字");
    for(j=0;j<=19;j++)
    {
        scanf("%d",&a[20]);
    }
    for(i=0;i<=19;i++)
    {
        if(a[l]<a[i+1])
            {
                temp=a[i];
                a[i]=a[i+1];
                a[i+1]=temp;
            }
        printf("%d",a[i]);
    }
}
看了编程的题目就会这一题所以写了,不知道对吗。
2010-06-02 21:25
a8979595
Rank: 2
等 级:论坛游民
帖 子:34
专家分:54
注 册:2010-5-31
收藏
得分:0 
编程题第四题;
#include <stdio.h>
main()
{
    int a[5][5]={5 ,6, 7, 8, 9,  4 ,5 ,6 ,7 ,8,
3 ,4 ,5 ,2 ,1,2, 3 ,4, 9, 0, 1, 2 ,5, 4, 8};
int i,j,min,max;
for(i=0;i<=4;i++)
 {  
    if(a[i]<a[i+1])
      {
            min=a[i];
      }
        printf("%d",i);
 for(j=0;j<=4;j++)
    {
        if(a[i][j]>a[i][j+1])
            {
                max=a[i][j];
            }
            printf("%d",j);
    }
}
}
我这个机子上没有编译器,所以不知道是否正确。
2010-06-02 21:38
Kid_X
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:216
专家分:515
注 册:2007-10-8
收藏
得分:0 
LZ的题目好像不是C语言的。
2010-06-02 23:46
周小胖
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-4-26
收藏
得分:0 
求答案
2012-05-18 10:42
NJ1188
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-3-12
收藏
得分:0 
学习中,顶。
2016-03-12 10:46
快速回复:数组练习题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035820 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved