当前位置:文档之家› 第6章 数组和字符串 练习题

第6章 数组和字符串 练习题

第6章 数组和字符串 练习题
第6章 数组和字符串 练习题

一、选择题

1.下面正确的初始化语句是___

A. char str[]="hello";

B. char str[100]="hello";

C. char str[]={'h','e','l','l','o'};

D. char str[]={'hello'};

2.定义了一维int型数组a[10]后,下面错误的引用是___

A. a[0]=1;

B. a[10]=2;

C. a[0]=5*2;

D. a[1]=a[2]*a[0];

3.下面的二维数组初始化语句中,正确的是____

A. float b[2][2]={0.1,0.2,0.3,0.4};

B. int a[][]={{1,2},{3,4}};

C. int a[2][]= {{1,2},{3,4}};

D. float a[2][2]={0};

4.引用数组元素时,数组下标可以是____

A. 整型常量

B. 整型变量

C. 整型表达式

D. 以上均可

5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____

A. 24

B. 25

C. 18

D. 17

6.下列初始化字符数组的语句中,正确的是____

A. char str[5]="hello";

B. char str[]={'h','e','l','l','o','\0'};

C. char str[5]={"hi"};

D. char str[100]="";

7.给出下列代码,则数组初始化中哪项是不正确的?

byte[] array1,array2[];

byte array3[][];

byte [][] array4;

A.array2 = array1 B.array2=array3

C.array2=array4 D.array3=array4

8.下面程序的运行结果是____

main(){

int x=30;

int[] numbers=new int[x];

x=60;

System.out.println(numbers.length);

}

A. 60

B. 20

C. 30

D. 50

9.下面不是创建数组的正确语句

A.float f[][]=new float[6][6];

B.float f[]=new float[6];

C.float f[][]=new float[][6];

D.float[][]f=new float[6][];

10.下列关于Java语言的数组描述中,错误的是()。

A.数组的长度通常用length表示 B.数组下标从0开始

C.数组元素是按顺序存放在内存的D.数组在赋初值和赋值时都不判界

11.数组a的第三个元素表示为()

A. a(3)

B. a[3]

C.a(2)

D. a[2]

12.当访问无效的数组下标时,会发生

A. 中止程序

B. 抛出异常

C. 系统崩溃

D. 直接跳过

13.使用arraycopy()方法将数组a复制到b正确的是

A. arraycopy(a,0,b,0,a.length)

B. arraycopy(a,0,b,0,b.length)

C.. arraycopy(b,0,a,0,a.length)

D. arraycopy(a,1,b,1,a.length)

14.关于数组默认值,错误的是()。

A. char—>'\u0000'

B. Boolean—>true

C. float—>0.0f

D. int—>0

15.执行String[] s=new String[10];语句后,哪些结论是正确的?()

A.s[0] 为未定义 B.s.length 为9

C.s[9] 为 null D.s[10] 为 ""

16.关下面的表达式哪些是不正确的? ()

A.String s="你好";int i=3; s+=i;

B.String s="你好";int i=3; if(i==s){ s+=i};

C.String s="你好";int i=3; s=i+s;

D. String s=null; int i=(s!=null)&&(s.length()>0)?s.length():0;

17.下列语句会造成数组new int[10]越界是

A. a[0]+=9;

B. a[9]=10;

C.—a[9]

D. for(int i=0;i<=10;i++) a[i]++;

18.以下程序的运行效果。下面程序段执行完毕后,cont的值是()

String strings[ ]={"string","starting","strong","street","soft"};

intcont=0;

for(int i=0;i

if(strings[i].endsWith("ng"))

cont++;

A. 1

B. 2

C.3

D.4

19.如定义对象StringBuffer ch = new StringBuffer("Shanghai") 则

ch.length()=()

A. 7B.8C.9D.23

20.执行完代码"int[]x=newint[25];"后以下()说明正确的

A.x[24]为0

B. x[24]未定义

C. x[25]为0

D.x[0]为空

21.关于char类型的数组,说法正确的是()

A. 其数组的默认值是'A'

B. 可以仅通过数组名来访问数组

C. 数组不能转换为字符串

D. 可以存储整型数值

22.对于数组a[10],下列表示错误的是

A. a[0]

B. a(0)

C. a[9]

D. a[1]

23.下列数组声明,下列表示错误的是

A. int[] a

B. inta[]

C. int[][] a

D. int[]a[]

24.定义字符串:String str=“abcdefg”;则str.indexOf(?d?)的结果是()

A)'d' B) true C) 3 D) 4

25.下面程序段输出的结果是()

StringBufferbuf1;

String str=”北京2008”;

buf1=new StringBuffer(str);

System.out.println(buf1.charAt(2));

A. 2

B. 京

C.0

D.null

26.下面程序段输出的结果是()

String s=”ABCD”;

s.concat(“E”);

s.replace(…C?,?F?);

System.out.println(s);

A) ABCDEF B) ABFDE C) ABCDE D) ABCD

27.下面语句输出结果是( )。

char charArray[]={…a?,?b?,?c?,?d?,?e?,?f?};

StringBufferbuf1;

String str=”12345”;

buf1=new StringBuffer(str);

buf1.insert(4,charArray);

System.out.println(buf1.toString());

A) ab1234ef B) 1234abcdef5 C) 123456abcd D) abcd1234

二、填空题

1)数组的元素通过来访问,数组Array的长度为。

2)数组复制时,"="将一个数组的传递给另一个数组。

3)矩阵或表格一般用维数组表示。

4)如果把二维数组看成一维数组,那么数组的元素是数组。

5)Java中数组的下标的数据类型是。

6)不用下标变量就可以访问数组的方法是。

7)数组最小的下标是。

8)arraycopy()的最后一个参数指明。

9)向方法传递数组参数时,传递的是数组的。

10)数组初始化包括。

11)浮点型数组的默认值是。

12)对象型数组的默认值是。

13)对象类型的数组虽然被默认初始化,但是并没有构造函数。

14)二维数组的行的长度不同。

15)数组创建后其大小改变。

16)定义数组:char charArray[]={‘a’,’b’,’c’,’d’,’e’,’f’};

则String.valueOf(charArray,2,3)的结果是。

17)语句String s=new String(?java program!?);

System.out.println(s.substring(5,8));的输出结果是。

18)如有以下赋值语句:

x=new StringBuffer().append(?a?).append(4). append(?c?).toSt ring;

x的类型是;它的值是。

三、简答题

1. 如何声明和创建一个一维数组?

2. 如何访问数组的元素?

3.数组下标的类型是什么?最小的下标是什么?一维数组a的第三个元素如何表示?

4.数组越界访问会发生什么错误?怎样避免该错误?

5.给方法传递数组参数与传递基本数据类型变量的值有何不同?

6.复制数组有哪些方法?

7.数组创建后,其元素被赋予的默认值有哪些?

8. 如何声明和创建一个二维数组?

9.声明数组变量会为数组分配内存空间吗?为什么?

10.一个二维数组的行可以有不同的长度吗?如果可以,试创建一个此类型的数组。11.Java中的数组实际上是一个隐含的?数组类?的对象,而数组名实际上是该对象的一个引用,这种说法对吗?

五、编程题

1.有一个整数数组,其中存放着序列1,3,5,7,9,11,13,15,17,19。请将该序列倒序存放并输出。

2.编写一个程序,提示用户输入学生数量姓名和他们的成绩,并按照成绩的降序来打印学生的姓名。

3.编写一个程序,求出整数数组中最小元素的下标。如果这样的元素个数大于等于1,则返回下标最小的数的下标。

4.现在有如下的一个数组:

intoldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;

要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:intnewArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ;

5. 现在给出两个数组:

·数组A:?1,7,9,11,13,15,17,19:;

·数组b:?2,4,6,8,10?

两个数组合并为数组c,按升序排列。

6. 给定一个字符串(可以从控制台接收),按单词将该字符串逆序,比如给定"I really love you!",则输出是"you! love really I",为了简化问题,字符串中不包含标点符号。

7. java笔试题:请用JAVA实现字符串压缩算法。将字符串 aaabcdda(可以从控制台接收)编程实现将其转换为 3a1b1c2d1a。

8.(选做题)使用数组完成金额转换,长度限制在9位,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。

第六章数组习题答案

第六章数组习题答案 一、单项选择题 1. C语言中,一维数组下标的最小值是(B )。 A)1 B) 0 C) 视说明语句而定D) 无固定下限 2. 若有定义语句:int a[3][6];,按在内存中的存放顺序,a数组的第10个元素是( B )。A)a[0][4] B) a[1][3] C) a[0][3] D) a[1][4] 3. 设有数组定义:char str[ ]=”China0”,则数组str所占的空间为( D )字节。 A)4个B) 5个C) 6个D) 7个 4. 若有定义语句:char str[ ]=”ab\n\012\\\n”; 则执行语句:printf(“%d”,strlen(str));后,输出结果是( A )。 A)3 B) 4 C) 6 D) 12 5. 下列描述中不正确的是( C )。 A)字符型数组中可以存放字符串 B)可以对字符型数组进行整体输入、输出 C)可以对整型数组进行整体输入、输出 D)不能在赋值语句中通过赋值运算符”=”对字符型数组进行整体赋值 6. 当用户要求输入的字符串中含有空格时,应使用的输入函数是( C )。 A)scanf( ) B)getchar( ) C) gets( ) D) getc( ) 7. 有以下程序 #include main( ) { int i,x[3][2]={0}; for(i=0;i<3;i++) scanf(“%d”,x[i]); printf(“%3d%3d%3d\n”,x[0][0], x[0][1], x[1][0]); } 程序运行后的输出结果是()。 A)2 0 0 B) 2 0 4 C) 2 4 0 D) 2 4 6 8. 有以下程序 #include #include main( ) { char p[20]={‘a’,’b’,’c’,’d’},q[ ]=”abc”,r[ ]=”abcde”; strcpy(p+strlen(q),r); strcat(p,q); printf(“%d %d\n”,sizeof(p),strlen(p)); } 程序运行后的输出结果是( C )。 A)20 9 B) 9 9 C) 20 11 D) 11 11 9. 有以下程序 #include #include main( )

第六章 数组

第六章数组 一、选择题 1.在C语言中,引用数组元素时,其数组下标的数据类型允许是。(0级) A)整型常量B)整型常量或整型表达式 C)整型表达式D)任何类型的表达式 2.以下对一维整型数组a的正确说明是。(0级) A)int a(10); B)int n=10,a[n]; C)int n; scanf(“%d”,&n); int a[n]; D ) #define SIZ E 10 int a[SIZE];以下能对一维数组a进行正确初始化的语句是。(0级) A)int a[10]=(0,0,0,0,0); B)int a[10]={ }; C)int a[ ]={0}; D)int a[10]={10*1}; 4.不是给数组的第一个元素赋值的语句是。(0级) A)int a[2]={1}; B) int a[2]={1*2}; C)int a[2];scanf (“%d”,a);D)a[1]=1; 5.下面程序的运行结果是。(1级) main() {int a[6],i; for(i=1;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%2d",a[i]); } } A)-4 0 4 0 4 B)-4 0 4 0 3 C)-4 0 4 4 3 D)-4 0 4 4 0 6.下列定义正确的是。(1级) A)static int a[]={1,2,3,4,5} B) int b[]={2,5} C) int a(10) D) int 4e[4] 7.若有说明int a[][4]={0,0};则下列叙述不正确的是。(0级) A) 数组a的每个元素都可以得到初值0 B) 二维数组a的第一维的大小为1 C) 因为对二维数组a的第二维大小的值除以初值个数的商为1,故数组a的行数 为1 D) 只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值 8.设有char str[10],下列语句正确的是。(1级) A) scanf("%s",&str); B) printf("%c",str); C) printf("%s",str[0]); D) printf("%s",str); 9.下列说法正确的是。(0级) A) 在C语言中,可以使用动态内存分配技术定义元素个数可变的数组 B) 在C语言中,数组元素的个数可以不确定,允许随机变动

第六章数组

第6章数组 知识要点 数组和记录的概念、分类 数组的声明和记录的定义 数组的使用方法 学习任务 了解数组的概念和分类 理解数组的功能 掌握数组的定义、声明及使用方法 6.1 数组的概念 Visual Basic中的数组和数学中数组的概念基本类似,都是由一批互相联系的、有一定顺序的数据组成的集合。与数学中的数组不同的是,Visual Basic中的数组必须先声明,然后才能在程序中使用。一个数组中的所有数据,称为该数组的数组元素。 6.2 常规数组 常规数组,即大小固定的数组,也就是说常规数组中包含的数组元素的个数不变,它总是保持同样的大小,占有的存储空间当然也就保持不变。 6.2.1 常规数组的声明 语法: {Dim|Static|Public|Global|Private}< 数组名>[类型说明符]([下界] To 上界[,[下界] To 上界] [,...])[As < 类型说明词>] 功能: 声明常规数组的数组名、维数、上下界及其类型。 说明: 1.数组名与变量名命名规则相同。 2.数组元素在上下界内编号是联续的,上下界的范围不超过LONG数据所表示的数 的范围。 例:DIM COUNT(1 TO 15) AS INTEGER :一维整型数组,共有15个元素,即COUNT(1)-COUNT(15) DIM SUM&(10 TO 20): 4.数组元素下界可以省略,默认为0 例:DIM COUNT(15) AS INTEGER :COUNT(0)-COUNT(15)共16个元素。 设置OPTION BASE 1 则数组下标默认值为1。 OPTION BASE 0则数组下标默认值为0。 说明: 1.该语句必须在模块顶部的声明中使用,在数组声明语句之前,只影响本模块中定 义的数组。 2.一个模块中只能出现一次。 3.OPTION BASE 对ARRAY函数不起作用,即ARRAY函数创建的数组,下标的下 界始终为0

第六章数组

第6章数组 6.1 问题导引与分析 到目前为止,我们所接触的变量类型(除文件类型外)为简单数据类型,其特点是对单一的变量进行数据处理和操作。在解决实际问题时,常需要处理大量的数据,如对1000个学生的成绩排序、对一批数据进行各种处理等问题,如果用简单变量来存储这些数据,要用到大量的简单变量,无论从存储还是处理都很不现实。Pascal语言引入了数组类型,能方便地解决批量数据处理问题。 数组是程序设计中最常用的结构数据类型,用来描述由固定数目的同一类型的元素组成的数据结构。 从形式上看,Pascal语言数组元素书写格式为:变量名[下标1,下标2,下标3,……],数组的每个元素和下标相关联,根据下标指示数组的元素。 只有一个下标的变量集合称为一维数组。 如:a[1],a[2],a[3],a[4],a[5],……,俗称a数组。 使用数组的方便之处在于数组的下标可以用变量来表示,如上述的a数组元素可以写成a[i]形式,通过灵活控制下标变量i,达到对数组元素进行批量处理和操作的目的。 6.1.1 问题导引 问题6.1 选票统计(Votes) 【问题描述】 国际运动协会组织了一个评选N佳运动员的活动,评选方式很特殊,先由网民投票选举,各国的网民可以任选自己喜爱的运动员,然后从中选出得票高于100万张的运动员N个,对他们用1到N进行编号,重新投票,根据不同的得票值,颁发不同的奖项,现在组织者想知道重新投票后,这N个运动员的票数,请你帮他完成。 【输入格式】 第一行,一个数,表示N个运动员;(1≤N≤1000) 第二行开始为一组以空格隔开的选票,选票值为1到N间的数,以-1为数据结束标志。选票数量不超出长型范围。 【输出格式】 按编号顺序输出编号和票数。 【输入样例】 3 3 1 2 3 2 1 2 3 1 2 2 1 3 3 1 2 3 3 -1 【输出样例】 1 5 2 6 3 7

练习题-第六章_数组(有答案)

一、填空题 1.在C语言中,二维数组元素在内存中的存放顺序是。 2.定义了二维数组:int array[4][5],该数组所占的内存空间为______字节。 3.假设有整型数组array[100][100],其中第66行,第66列元素array[66][66]在数 组中排列的位置(位置从1开始算起)为6566 。 4.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[2][1]得到的初值是 ________。 5.下面的程序段的运行结果是____he_____。 char x[ ]=“the teacher”; int i =0; while(x[++i] != ’\0’) if(x[i-1] = = ‘t’) printf(“%c”,x[i]); 二、单项选择题 1.下面程序( B )(每行程序前面的数字表示行号)。 1 main( ) 2 { float a[10]={0.0}; 3 int i; 4 for(i=0;i<3;i++) scanf(“%d”,&a[i]); 5 for(i=1;i<10;i++) a[0]=a[0]+a[i]; 6 printf(“%f\n”,a[0]); 7 } A)没有错误B)第2行有错误 C)第4行有错误D)第6行有错误 2.下面程序中有错误的行是(D)(每行程序前面的数字表示行号)。 1main( ) 2{ 3int a[3]={1}; 4int i; 5scanf(“%d”,&a); 6for(i=1;i<3;i++) a[0]=a[0]+a[i]; 7printf(“a[0]=%d\n”,a[0]); } A. 3 B. 6 C. 7 D. 5 3.以下不能对二维数组a进行正确初始化的语句是( C )。 A. int a[2][3] = {0}; B. int a[ ][3] = {{1,2},{0}}; C. int a[2][3] = {{1,2},{3,4},{5,6}}; D. int a[ ][3] = {1,2,3,4,5,6};

第六章数组解析

第六章数组 在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。 一、一维数组 1、一维数组的定义 定义:数组中的每个元素只带一个下表时,这样的数组称为一维数组。 一般形式: 类型名数组名[常量表达式],······; 注意: (1)、数组名的命名规则和标识符的命名规则相同。 (2)、常量表达式要有方括号括起来,不能用圆括号。 (3)、常量表达式表示数组元素的个数(只能是整数),即数组长度,并且数组的第一个元素是从下标0开始的! (4)、常量表达式可以是常量也可以是符号常量,不能包含变量。 (5)、允许在同一个类型说明中说明多个数组和变量;例如:int a,b,c,d[10],e[5]; 2、一维数组元素的初始化 通过定义语句定义数组后,系统会根据数组元素的个数在内存中开辟一串连续的存储单元,这是存储单元没有确定的值。一维数组的初始化方式如下: a、在定义数组时,对数组元素赋初值,例如:int a[10]={0,1,2,3,4,5,6,7,8,9}; b、可以只给一部分元素赋初值,例如:int a[10]={0,1,2,3,4},表示只给数组的前5个元素赋初值,后5 个元素的值,系统自动默认为0。 c、在对全部数组元素赋初值时,可以不指定数组长度,例如:int a[]={0,1,2,3,4}; 注意: (1)、“{}”中的值不能超过数组元素的个数。 (2)、可以用“,”表示对应位置的元素为0,如:int a[100]={1,2,3,,,7,8,18,,,67}。 3、一维数组的引用 C语言规定: 数组必须先定义,后使用!并且只能逐个引用数组元素,而不能一次引用整个数组!其引用格式为:数组名[下标]; 其中,下标可以是整型常量也可以是整型表达式,例如:a[0]=a[5]+a[7]+a[2*3]

C语言第六章数组习题答案

第六章 数组 习题答案 2、0 4 3、0 6 4、&a[i] i%4==0 printf("\n"); 5、i+j==3_ a[i][j] 6、12 7、a[i][j]+b[i][j] printf(“\n ”) 8、按行存放 9、( a[i]>a[j]) 10、将串str2复制到串str1中后再将串str3连接到串str1之后 三、阅读题 1、如右图所示 2、AQM 3、AzyD 4、9198 5、如右图所示 6、92 7、1,2,5,7, 8、2 9、v1=5,v2=8,v3=6,v4=1 10、a*b*c*d* 四、编程题 1(1)选择法排序 #include void main( ) {int i,j,n=10,p,a[10];int temp; for(i=0;i

for(j=i+1;j void main( ) {int i,j,n=10,p,a[10];int temp; for(i=0;ia[j]) {temp=a[i];a[i]=a[j];a[j]=temp;} printf("\n排序后的一维数组:\n"); for(i=0;i void main( ) {int a[11],i,n=10,k; int point; printf("\n 请输入原始数据:\n"); for(i=0;ik) {point=i; break;} if(i!=n) {for(i=n;i>point;i--) a[i]=a[i-1]; a[point]=k;} /*从后向前方式*/ else a[n]=k; printf("插入后的数是:\n"); for(i=0;i int main() {int i,j,upp,low,dig,spa,oth; char text[3][80];

第6章 数组

第6章数组 考试大纲要求: ?一维数组和多维数组的定义、初始化和引用 ?字符串与字符数组。 数组和指针约占考核内容的18.2%。 数组:若干个相同类型数据的有序集合。数组中的每个元素就和相同类型的变量一样可以使用,入赋值、运算、输入、输出等。 6.1 一维数组的定义、初始化和引用 ? 例:int a[5];float b[4]; char c[2*4+3]; #defeine N 20 int arrary_a[N]; float array_b[N+3]; char array_ch[N]; 定义数组时应该注意: 1. 数组的类型指元素的取值类型。一个数组只能有一种类型。 2. 数组名必须是合法的标识符,数组不能与程序中其它变量同名。 3. 数组元素在内存中连续存放;数组的名字表示数组在内存中所分配存储单元的首地址,因此,数组名是一个地址常量。 4. 数组元素的个数不能改变。 5. 表示数组长度的方括号内只能是常量表达式,不能出现变量。以下定义是错误的: int n=5,a[n]; 6. 可以使用符号常量表示数组长度。如: #define N 20 int arrry[2*N+1]; ?一维数组的引用:——数组名[下标] 下标从0开始到数组长度-1。理论上下标值要小于数组元素个数,但C语言不进行数组越界检查,即使下标越界,往往也能通过编译。 ?一维数组的初始化 1. 所有元素初始化:int a[4]={1,3,5,7}; float b[3]={3.5,-2.8,14.6}; char name[5]={'L','i','l','i','n'}; 2. 可以给一部分元素进行初始化: int a[4]={1}; ——a[0]=1,a[1]=0,a[2]=0 3. 如果给所有元素初始化,可以省略数组长度: int a[]={1,2,3,4} ——a的长度为4 char name[]={'L','i','l','i','n'}; ——name长度为5

第六章:数组

一维数组: 1、定义一个10个元素的整数数组,赋值为1-10,按如下格式输出数组中的全部数据。 a[0]=1 a[1]=2 ………… 2、打印出Fibonacci数列:从第3个数开始的每个数的值为前两个数之和。 1 1 2 3 5 8 …… 3、输入10个学生的成绩到一个数组中,查找出最低分数及最高分数,计算出总分以及平 均分,计算出及格人数以及成绩在平均分以上的人数。 4、有一个数组,内放10个整数。要求找出最小的数和它的下标,然后把它和数组中最前 面的元素对换位置,找出最大的数和它的下标,然后把它和数组中最后面的元素对换位置。 5、利用随机函数产生10个1-100随机数,并存入数组中。 注解:产生随机数的方法 1)包含库文件#include "Stdlib.h" 使用用randomize()随机种子函数及随机数生产函数random(101),参数表示范围2)使用用randomize()随机种子函数 随机数生产函数rand (),无参数,产生int数据类型范围内的随机数 6、将数组中所有元素的值向后移动一位,最后一个元素的值移动到第一个元素中;(将数 组中所有元素的值向前移动一位,第一个元素的值移动到最后一个元素中) 7、将数组中元素的值先按原序输出,逆置(第一个与最后一个交换,第二个与倒数第二个 交换,依次类推)后再输出一次; 8、将一个数组中的元素反向复制到另一个数组中,输出这两个数组。 9、编程输入一个小写字母,以该字母为第一个字母按字母表逆序输出字母表中所有小写字 母。(例:输入m ,则输出:mlkjihgfedcbazyxwvutsrqpon)(利用数组或不利用数组两种方式编程) 10、输入一个数,在数组中找到第一个比它大的数,将输入的数据插入到这个数的前面。 11、将两个数组中的元素交叉复制到一个新的数组中。 12、定义一个整数数组,求出奇数和偶数个数 13、有30个0-9之间的数字,分别统计0-9出现的次数 14、用筛选法求100之内的素数 筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛子。具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。 15、下面的程序从键盘接收任意5个数放入数组A中,假设这5个数为:8 1 4 2 5,则要输 出一个具有如下内容的方阵。 16、十五个猴子围成一圈选大王,依次1-7 循环报数,报到7 的猴子被淘汰,直到最后一

第6章 数组-实验5

实验五数组应用 班级:学号:姓名:成绩: 一.实验目的 1.熟练掌握数组及数组元素的概念。 2.掌握一维数组、二维数组的定义、初始化以及使用。 3.掌握字符数组以及字符串的定义、初始化以及使用。 4.掌握数组相关的常用算法。 二.使用的设备和仪器 计算机+Windows XP +Visual C++6.0 三.实验内容及要求 1、输入10个整数,存放在一维数组中,求出这10个数中的最大、最小值 以及这10个数的平均值。 2、求一个N*N矩阵对角线元素之和。 3、某个学习小组有5名学生,共开设了3门课程,要求编程输入该小组所 有学生各门课程的成绩,然后按照总成绩从高到低进行排序,并输出排序后的结果。 4、打印杨辉三角。例如,n=5时,输出以下图形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 5、已知一个由小到大排好序的数组,现插入一个新的值,要求保持由小到 大的顺序并输出。 6、将一个数组中的值进行重新存放。例如,原来的数值为1,3,9,5,4;要 求改为4,5,9,3,1。 7、输入一个班N个学生的信息,包括学号、姓名以及C语言的成绩。然后 通过输入某一学生的姓名进行查找,如果找到,输出其相关的信息;如果未找到,输出“本班无此人”。 8、输入一篇文章,包含3行文字,每行最多有20个字符,要求统计出总字 符数,字母、数字、空格以及其他字符的个数。 四.实验步骤 1、#include void main() {

int i,a[10],big,small,total=0; for(i=0;i<10;i++) { printf("第%d个数是",i+1); scanf("%d",&a[i]); } big=a[0]; small=a[0]; for(i=0;i<9;i++) { if(small>a[i+1]){small=a[i+1];} } for(i=0;i<9;i++) { if(big

相关主题
文本预览
相关文档 最新文档