| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 722 人关注过本帖
标题:有练习题的进
只看楼主 加入收藏
chao41091153
Rank: 2
等 级:论坛游民
帖 子:39
专家分:33
注 册:2010-5-26
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
有练习题的进
我刚学C求几道数组练习题
搜索更多相关主题的帖子: 练习题 
2010-06-02 16:45
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:2 
https://bbs.bccn.net/thread-307696-1-1.html这里有好多题呢,足够你练习的!

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-06-02 16:54
凉小凉
Rank: 2
等 级:论坛游民
帖 子:55
专家分:33
注 册:2010-5-30
收藏
得分:2 
数组.rar (2.99 KB)
2010-06-02 17:09
凉小凉
Rank: 2
等 级:论坛游民
帖 子:55
专家分:33
注 册:2010-5-30
收藏
得分:0 
#include "graphics.h"
#define LEFT 0
#define TOP 0
#define RIGHT 639
#define BOTTOM 479
#define LINES 400
#define MAXCOLOR 15
main()
{
int driver,mode,error;
int x1,y1;
int x2,y2;
int dx1,dy1,dx2,dy2,i=1;
int count=0;
int color=0;
driver=VGA;
mode=VGAHI;
initgraph(&driver,&mode,"");
x1=x2=y1=y2=10;
dx1=dy1=2;
dx2=dy2=3;
while(!kbhit())
{
 line(x1,y1,x2,y2);
 x1+=dx1;y1+=dy1;
 x2+=dx2;y2+dy2;
 if(x1<=LEFT||x1>=RIGHT)
 dx1=-dx1;
 if(y1<=TOP||y1>=BOTTOM)
  dy1=-dy1;
 if(x2<=LEFT||x2>=RIGHT)
  dx2=-dx2;
 if(y2<=TOP||y2>=BOTTOM)
  dy2=-dy2;
 if(++count>LINES)
 {
  setcolor(color);
  color=(color>=MAXCOLOR)?0:++color;
 }
}
closegraph();
}
2010-06-02 17:19
凉小凉
Rank: 2
等 级:论坛游民
帖 子:55
专家分:33
注 册:2010-5-30
收藏
得分:0 
报歉发错了!!

2010-06-02 17:21
凉小凉
Rank: 2
等 级:论坛游民
帖 子:55
专家分:33
注 册:2010-5-30
收藏
得分:0 
一、选择题
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列上的数就是马鞍数。
2010-06-02 17:21
jmjy
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:44
专家分:146
注 册:2010-1-7
收藏
得分:2 
哇。。开个贴来吧
2010-06-02 17:22
快速回复:有练习题的进
数据加载中...
 
   



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

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