第6章 一维数组

合集下载

C语言程序设计第06章 数组

C语言程序设计第06章 数组

1 4 2 3 思考: 0 0 0 0 0 注意:在定义数组时,如果没有为数组变量 1、如果想使一个数组中全部10个元 赋初值,那么就不能省略数组的大小。而且 素值为0,可以怎样写? a数组不初始化,其数组元素为随机值。 1 4 0 2 3 0 0 0 0 100 2、如果想使一个数组中全部 个元 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 素值为1,又该怎样写? 例当对全部数组元素赋初值时,可以省略数组变量的大 char str[ ] = {'a', 'b', 'c', 'd', 'e' }; (5) 则数组str的实际大小为5。 小,此时数组变量的实际大小就是初值列表中表达式的个数。
//超出了数组的大小
(3) 表达式1是第1个数组元素的值,表达式2是第2个 数组元素的值,依此类推; 例 int a[5] = {0, 1, 2, 3, 4}; 经过以上定义和初始化后, a[0] = 0,a[1] = 1,a[2] = 2,a[3] = 3,a[4] = 4。
9
(4) 如果表达式的个数小于数组的大小,则未指定值的 数组元素被赋值为0; 例 int a[10] = {0, 1, 2, 3, 4};
7
<6>C语言中规定数组元素的下标总是从0开始, 例如int a[10];说明整型数组a,有10个元素。这10个
元素是: a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8], a
[9]; 注意最后一个元素是a[9],而不是a[10],该数 组不存在数组元素a[10]。 并且特别值得注意的是,C编译器对数组下标越 界不作检查。

C语言第六章_数组_2

C语言第六章_数组_2

if (a[i]>a[i+1])
{temp=a[i];a[i]=a[i+1];a[i+1]=temp;14}
#include <stdio.h> main(){ /*对10个整数排序*/
int a[10]={9, 8, 5, 4, 2, 0, 6, 1, 3, 7}, i, k; for (k=1;k<10;k++)
f0=1 (n=0m) ain(){
f1=1
(n=1) int i; long f [20]={1,1};
0 f1n=fn-1f+[0f]n-2 (nfo2r) (i=2;i<20;i++)
1
1
f[1]
2
2
f[2]
f[i]=f[i-2]+f[i-1];
3
3
f[3]
for(i=0;i<20;i++)
4
数组是具有一定顺序的若干同数据类型变 量的集合体。数组要有名称,要有规模。
一.一维数组定义
类型说明符 数组名[常量];
例如:int a[6]; a = = &a[0]
a
内存映象:编译时分配一片连续的内 存空间,数组名为该空间的首地址— —常量地址。
0 a[0]
1 a[1]
2 a[2]
3 a[3]
1
4 a[4]
4
一行一行地存储所有的数组 5
a[0][1] a[0][2] a[0][3] a[1][0] a[1][1]
元素,数组名为该空间的首 6 a[1][2]
地址——地址常量。
7 a[1][3]
8

C++程序设计 第六章 数组

C++程序设计  第六章 数组

C++程序设计第6章数组单个变量只能存放一个数据值。

当程序中要处理一组相同类型、彼此相关的一组数据时,单个变量就不适合了,就需要一种特殊的数据结构来处理,这就是数组。

数组(array)是一种派生类型。

一个数组能同时存放多个数据值,并能对每个数据进行访问。

本章将介绍一维数组、二维数组和字符数组的定义及使用。

6.1 一维数组一个数组(array)是由相同类型的一组变量组成的一个有序集合。

数组中的每个变量称为一个元素(element),所有元素共用一个变量名,就是数组的名字。

数组中的每个元素都有一个序号,称为下标(index)。

访问一个元素就可以用数组名加下标来实现。

数组必须先定义后使用。

6.1.1 一维数组的定义一维数组就是具有一个下标的数组。

定义一个数组有3个要素:类型、名称与大小。

语法格式为:<数据类型> <数组名> [<常量表达式>]其中,<数据类型>确定了该数组的元素的类型,可以是一种基本数据类型,也可以是已定义的某种数据类型。

<数组名>是一个标识符,作为数组变量的名字。

方括号中的<常量表达式>必须是一个正整型数据,其值为元素的个数,即数组的大小或长度。

注意这里的方括号[]表示数组,而不是表示可缺省内容。

例如,下面定义了三个不同类型的数组:int a[5]; //定义了一个int数组afloat b[20]; //定义了一个float数组bdouble c[5]; //定义了一个double数组c对于上面数组a,元素类型为int,a是数组名,方括号中的10表示数组的长度,即该数组包含了5个元素,分别是a[0]、a[1]、a[2]、a[3]、a[4]。

如果一个数组有n个元素,那么数组中元素的下标从0开始到n-1。

具有相同类型的数组可以在一条说明语句中定义。

例如:int a1[5], a2[4]; //同时定义两个整型数组具有相同类型的单个变量和数组也可以在一条语句中定义。

C++课件第六章数组

C++课件第六章数组

解决方法
在使用数组之前,应该为其所有元素 分配初始值。可以使用循环来遍历数 组并为每个元素赋值。同时,也可以 考虑使用标准库中的容器类,如 std:vector或std:array,它们可以自 动管理元素的初始化和销毁。
数组下标从0开始还是从1开始
总结词
详细描述
在C中,数组的下标从0开始而不是从 1开始。
C++课件第六章 数 组
目录
CONTENTS
• 数组的概述 • 数组的声明与初始化 • 数组的操作 • 数组的应用 • 数组的常见错误与注意事项 • 练习题与答案
01
数组的概述
数组的概述
• 请输入您的内容
02
数组的声明与初始 化
一维数组的声明与初始化
总结词
一维数组是具有线性结构的数组,可以通过指定数组大小来 声明和初始化。
插入排序
将数组分为已排序和未排序两部分,初始时已排序部分包含一个元素,之后从未排序部分 取出元素,并在已排序部分找到合适的插入位置插入,并保持已排序部分一直有序。重复 此过程,直到未排序部分元素为空。
数组在查找算法中的应用
线性查找
从数组的第一个元素开始,逐个比较,直到找到目标元素或遍历完整个数组。
详细描述
在C中,一维数组的声明需要指定数组的大小,例如int array[10]表示一个包含10个整数的数组。可以通过指定初始 值来初始化数组,例如int array[5] = {1, 2, 3, 4, 5}。如果没 有指定初始值,数组将自动被初始化为0或空值。
二维数组的声明与初始化
总结词
二维数组是具有矩阵结构的数组,可以通过指定行数和列数来声明和初始化。
详细描述
在C中,二维数组的声明需要指定行数和列数,例如int array[3][4]表示一个包含3行4列的二维数组。可以通过指 定初始值来初始化二维数组,例如int array[2][3] = {{1, 2, 3}, {4, 5, 6}}。如果没有指定初始值,数组将自动被初 始化为0或空值。

第6章 数组

第6章 数组
结束
一维数组的引用 数组的引用通常是对数组元素的引用。 一维数组元素的表示形式为: 数组名(下标 下标) 数组名 下标 说明: (1)下标可以是整型常量或整型表达式。 (2)引用数组元素时,下标值应在数组声 明的范围之内。否则将会出错。 (3)一般通过循环语句及InputBox函数给 数组输入数据。数组的输出一般用Print 方法、标签或文本框实现。
结束
Public Sub Command1_Click() Dim score! (5) , aver!, i% aver = 0 For i = 1 To 5 score(i) = InputBox("请输入第 & i & "个学生的成绩 请输入第" 个学生的成绩") 请输入第 个学生的成绩 Label4.Caption = Label4.Caption & score(i) & Space(5) aver = aver + score(i) Next i aver = aver / 5 Label5.Caption = Label5.Caption & aver & Space(5) For i = 1 To 5 If score(i) > aver Then Label6.Caption = Label6.Caption & score(i) & Space(5) End If Next i End Sub
结束
再将A(1)分别与A(3)、…、A(10)比较,并 且依次作出同样的处理。最后,10个数中 的最小者放入了A(1)中。 第2轮:将A(2)分别与A(3)、…、A(10)比 较,并依次作出同第1轮一样的处理。最后, 第1轮余下的9个数中的最小者放入A(2)中, 亦即A(2)是10个数中的第二小的数。 照此方法,继续进行第3轮… …

C语言等级考试 第六章重点汇总

C语言等级考试 第六章重点汇总

度可由编译器根据初始值表中的初值个数来确定。
如:int a[]={1,3,5,7,9}; 由于初始值表中包含5个数据,所以a数组的长度隐含地
确定为5。需要注意的是:如果没有初始值表或初始值表
中初值个数少于数组实际长度时,则在定义数组时,其长 度是不能省略的。同时,在不指定数组长度的情况下进行
数组定义时,在初始值表中必须要列出所有元素的初值。
[案例6.7]从键盘为一个5*5整型数组赋值,找出其中的 最小值不能感显示出来。 程序如下: main() {int x[5][5], i, j, min; for(i=0;i<5;i++) for(j=0;j<5;j++) scanf(“%d”,&x[i][j]); min=x[0][0]; for(i=0;i<5;i++) for(i=0;i<5;i++) if(min> x[i][j]) min=x[i][j]; printf(“The min is:%d\n”,min); }
[案例6.4]从键盘输入20个不同整数,并检查整数10是否包含 在这些数据中,若是的话,它是第几个被输入的? 程序为: main( ) { int i, a[20]; for(i=0;i<20;i++) scanf(“%d”,&a[i]); for(i=0;i<20;i++) {if(a[i]==10) {printf(“10 is the position %d\n”,i+1); break; } } }
6.1.2一维数组元素的引用
1. 引用数组中的任意一个元素的形式:
数组名[下标表达式]

C6数组--1,2

C6数组--1,2
第 4轮
1 2
4 5 7 9
第 5轮
a[3]
a[4] a[5]
初始状态
冒泡排序方法: 依次比较相邻的两个数,将小数放前面,大数 放后面. n个数排序需要进行n-1轮比较, 从第1轮到第n-1轮, 各轮的 比较次数依次为:n-1次、n-2次 … 1次
如何推广到任意个数排序?
#include <stdio.h> int main(void ) { int a[6] , i , j , t; for ( i=0 ; i<6 ; i++) scanf(“%d”, &a[i] ); for ( i=0 ; i<5 ; i++) for ( j=0 ; j<5-i ; j++) if ( a[j]>a[j+1] ) { t=a[j] ; a[j]=a[j+1] ; a[j+1]=t ; } for ( i=0 ; i<6 ; i++) printf( “%3d”, a[i] ); return 0; }
若数组在定义之后进行赋值,则只能利用循环语句对每个 数组元素依次赋值。 用双重循环实现
…… int arr[4][10],i,j; for(i=0;i<4;i++) for(j=0;j<10;j++) scanf (“%d”, &arr[i][j]); //arr[i][j]=…; ……
用单重循环实现
数组必须先定义,后使用 定义数组时只能用整常量表达式而不能用变量表达式表 示元素的个数
char name[0]; (×) float weight[10.3]; (×) int array[-100]; (×)

高树芳C语言程序设计--第六章

高树芳C语言程序设计--第六章

[解决方案]设置一个长度为10的类型为整型的数组
存储老题的年龄。
程序代码
5
6.1 一维数组的定义与使用
相关知识: 1.数组的概念 同类型的一组数据。 2.数组的维数 下标的个数 3.一维数组的定义 类型 数组名[常量表达式] 4.一维数组元素的引用 数组名[下标],如:a[1]
6
6.1 一维数组的定义与使用
案例6-10 输出中文大写数字 [案例任务] C语言的字符串知识
[解决方案]使用两维字符数组存储汉字的“壹”
和“拾”等字符串数据。
程序代码
28
6.3字符数组及字符串
相关知识: C语言的字符串知识应用: 数字转换为中国大写汉字数字字符。
29Biblioteka 编写C程序,输入8个整数,将其逆序输出,同 时要输出它们的和。
10
6.2 二维数组的定义与使用
案例6-4 求二维数组中最大数 案例6-5 整数四则运算测试程序
11
6.2 二维数组的定义与使用
案例6-4 求二维数组中最大数
[案例任务]
对于如下3×4的矩阵: 1 2 3 4 6 9 5 4 -10 10 0 -5 编程求出其中的最大值,并输出其所在的行 号和列号。
24
6.3字符数组及字符串
[课堂训练6-4] 统计字符数组中某类字符的个数。设有 一个长度不超过30的字符串s,统计其 中数字字符、大写字母、小写字母、其 它字符的个数。
25
6.3字符数组及字符串
案例6-9字符串处理函数 [案例任务] 从键盘输入两个字符串s1,s2,要求使用 字符串的常用处理函数strlen、strcat、 strcpy、strcmp等。
[解决方案]见流程图。
程序代码

第六章 数组.

第六章 数组.

sc(i, j) = InputBox("输入sc(" &i & "," & j & ") 的值") Next j Next I
3、数组在内存中存放的顺序 数组在内存中存放时,首先变化的是最后一维的 下标,然后变化倒数第二维的下标…(按行存放)。 例如,数组A(4,3)在内存中的分配如下:
A(0,0) A(1,0)
其表示形式: A(1),A(6) X(1,1), X1(1,6), X(2,6)
Y(0,0,0), Y(1,2,5)
6.2 一维数组
一、 一维数组的声明 (无隐式声明)
形式:
Dim 数组名([<下界>to]<上界>)[As <数据类型>] 或: Dim 数组名[<数据类型符>]([<下界>to]<上界>) ‘ 声明了a数组有6个元素 数组元数的数据类型
二、 访问整个数组
对于数组中的各个元素,我们可以用数组名称 (索引值)进行访问。然而,是无法只用数组名称就 对所有的元素进行计算。
例如:要把数组中的各元素值都加上1 这是错误的! Dim X(4)
X=X+1 For I=0 to 4 x(i)=x(i) +1 这是正确的!
Next
无法对数组中的所有元素同时进行运算处理。 但是,可以一次“读取”整个数组本身。
6.4 数据排序与查找
数据交换
将A和B两个变量中的数值交换
A=B B=A Temp=A
A=B
B=Temp
一、选择排序
算法思想:
1)对有n个数的序列(存放在数组a(n)中),从中选 出最小(升序)或最大(降序)的数,与第1个数交 换位置;

第6章数组(一维数组)

第6章数组(一维数组)

9
31
1
for ( i=0; i<n-1; i++ ) for (( j=0; j<n-1-i; j++ ) for j=0; j<n-1; j++ ) 相邻两数比较, ) if ( a[j]>a[j+1] 前小后大 a[j]a[j+1]
• • • • • 其他不变,改变声明项为:int 其他不变,改变声明项为:int 其他不变,改变声明项为:int 其他不变,改变声明项为:int 其他不变,改变声明项为: int n; a[n]={0,1,2,3}; a[4]={0,1,2,3}; a[4]={2,8}; a[4]={2,4,6,8,10}; a[4]={2,4,6,d};
注意: 不能写成 b=a;
•例:(P159)
16
[例] N盏灯排成一排,从1到N按顺序依次编号。有N 个人也从1到N依次编号。第一个人(1号)将灯全部 关闭。第二个人(2号)将凡是2和2的倍数的灯打开。 第三个人将凡是3和3的倍数的灯做相反处理(该灯如 为打开的,将它关闭;如为关闭的,将它打开)。以 后的人都和3号一样,将凡是与自己相同的灯和是自 己编号倍数的灯做相反处理。请问:当第N个人操作 之后,哪几盏灯是点亮的。
17
#include <stdio.h> #define N 10 void main(void) { int lamp[N+1]; int i,j,k; for(i=1;i<=N;i++) /*将灯全部关闭*/ lamp[i]=0; for(i=2;i<=N;i=i+2) /*将凡是2和2的倍数的灯打开*/ lamp[i]=1; for(j=3;j<=N;j++) /*将3和3的倍数的灯做相反处理*/ for(i=j;i<=N;i=i+j) for(i=1,k=j;k<=N;k=i*j,i++) lamp[i]=!lamp[i]; for(i=1;i<=N;i++) if(lamp[i]) printf("%2d", i); }

C语言 — 第六章 数组(大学使用教程)

C语言 — 第六章 数组(大学使用教程)
21
数组常用的循环形式
法一 int i,a[100]; for(i=0;i<100;i++) a[i]=i; 法二 int i,a[100]; for(i=0;i<=99;i++) a[i]=i;
C程序中常用的是第一种方法。 程序中常用的是第一种方法。 此法中,循环变量的终值是“小于”而非“等于” 此法中,循环变量的终值是“小于”而非“等于” 数组长度!否则将导致“越界”的发生。 数组长度!否则将导致“越界”的发生。


• 数组是一组有序的同类型数据 。 • 数据称为数组的元素。 数据称为数组的元素。
6
数组的用处
保存大量同类型的相关数据 – 如矩阵运算,表格数据等 如矩阵运算,
数组的特点
快速地随机访问 一旦定义, 一旦定义,不能改变大小
7
§6.1 数组的定义与初始化
数组的定义 : 数组在使用前要进行定义: 名称、类型、维数、 数组在使用前要进行定义 名称、类型、维数、大小 定义格式: 定义格式: 类型标识符 数组名[常量表达式1][常量表达式2]…… 数组名[常量表达式1][常量表达式2] 1][常量表达式2]
如有数组 int a[5]; 其中数据为:2、4、23、6、78 其中数据为: 、 、 、 、 则存放情况如下: 则存放情况如下:
12
数组在内存 中的首地址
2000 2002
2的低位字节 的低位字节 2的高位字节 的高位字节 4的低位字节 的低位字节 4的高位字节 的高位字节
a[0] a[1] a[2] a[3] a[4]
即a=2000
2004 2006 2008
int a[5]={ 2,4, 23,6,78 };

C++课件第6章 数组

C++课件第6章 数组
第6章 数 组
学习目标




掌握数组的定义与使用方法,学会利用数组 编写程序。 掌握数组元素的初始化方法。 掌握字符数组处理字符串的技巧。 熟悉字符串处理函数的功能及使用方法。 掌握数组作为函数参数的使用方法。
6 数组

在需要处理一批具有相同类型而且又有密切关联的数 据时,数组是一个非常有用的可构造的数据类型(派生 数据类型) 。 派生数据类型:由已有的基本数据类型(char, float, double, …)或已构造的数据类型构造出的新类型。

由这种形式我们可以了解更高维的数组。一个三维数 组实际上可以看作是元素为二维数组的数组,依此类 推。
6.2.2 二维数组的初始化

二维数组的初始化:
1. 分行给二维数组赋初值。 int a[2][3]={{1,2,3},{4,5,6}};
1 2 3 4 5 6
1 2 3 4 5 6 2. 按数组的排列顺序对各数组元素赋初值。 int b[2][3]={1,2,3,4,5,6}; 1 0 0 0 5 0 0 0 3. 可以对部分元素赋初值。 9 0 0 0 1 0 0 0 int c[3][4]={{1},{5},{9}}; 5 6 0 0 0 9 7 0 int d[3][4]={{1},{5,6},{0,9,7}}; 1 2 3 4 5 6 4. 在对全部数组元素赋初值时,数组第一维的长度可以不指定。 0 0 3 0 0 0 0 0 int e[ ][3]={1,2,3,4,5,6}; 0 10 0 0 int f[ ][4]={{0,0,3},{0},{0,10}};
3.
4.
#include <iostream.h> void main(void) { int s[10]={ -56, -23, 0, 8, 10, 12, 26, 38, 65, 98 }; int low, high, binary, x; cout<<"input x="; cin>>x; low=0; high=9; binary=(low+high)/2; //确定折半位置 while ( x!=s[binary] && low<=high ){ if (x<s[binary]) high=binary-1; //在前半区间查找 else low=binary+1; //在后半区间查找 binary=(low+high)/2; } if (low<=high) cout<<"查找成功! 是数组中的第"<<binary<<"个元素。"<<endl; else cout<<"查找失败!"<<endl; }

c语言教学第6章 数组

c语言教学第6章  数组

§ 6.1 基本概念
整形、实型、字符型都属于基本类型。 其存储特点是:每个变量单独存储,亦称简单变 量。 如:char X=„a‟; int y1=0,y2; y2=X-1; 各变量之间独立存放,没有任何联系。
数组
数组是一种构造的数据类型,在计算机中分配连续 的内存空间。 数组:按序排列的具有相同类型的变量的集合。 用一符号名(数组名)来表示这一数组; 用数组名跟下标来唯一确定数组中的元素;
四、二维数组的初始化 (按行存放) 1、按存放顺序赋值 如:int x[2][3]={1,2,3,4,5,6}; 2、按行赋值 如:int x[2][3]={ {1,2,3},{4,5,6} }; 3、部分赋值 如:static int x[2][3]={1,2,4}; static int x[2][3]={ {1,2,},{4} }; 4、省略第一维长度 如: static int x[][3]={1,2,3,4,5,6,7};
课后 练习:分别定义一个一维数组和一个二维数组并 初始化,找出一维数组和二维数组中的最大元素和最小 元素以及对应的下标。
§6.4
字符数组
定义形式: char 数组名[exp]
一 、字符数组的定义 如:char c[5]; 在C语言中没有专门的字符串 c[0]=„h‟; c[1]=„a‟ 变量,而是将字符串存入字符数 c[2]=„p‟; c[3]=„p‟; 组来处理。 c[4]=„y‟; 即用一个一维数组来存放一 还可以这样定义: 个字符串,每个元素存放一个字 int c[5]; 符。
c[0]=„h‟; c[2]=„p‟; c[4]=„y‟; c[1]=„a‟ c[3]=„p‟;
二、字符数组的初始化
1、按单个元素赋值
static char c[10]={„s‟,„t‟,„o‟,„r‟,„e‟};

C语言程序设计 第6章

C语言程序设计 第6章

#include <stdio.h> #include <stdlib.h> main( ) { int a[10]; /*定义数组*/ int k,j; float ave,s; k=0;s=0.0; for(j=0;j<10;j++) /*用数组存放10个随机整数*/ a[j]=rand()%50; printf("数组中的值:"); for(j=0;j<10;j++) /*输出10个随机整数*/ printf("%6d",a[j]); printf("\n"); for(j=0;j<10;j++) { if(a[j]%2==0) /*如果数组元素的值为偶数*/ {s+=a[j];k++;} /*累加及偶数个数计数*/ } if(k!=0) {ave=s/k; printf("偶数的个数:%d\n偶数的平均植:%f\n",k,ave);} }
(2)定义一个二维数组a[N][5],数组每行存放一名 学生的数据,每行前4列存放学生4门单科成绩,第5列 存放学生的总分。 (3)输入N个学生的单科成绩,存入二维数组a中。 (4)通过变量sum累加计算每位学生的总分,然后 赋值给每行的最后一个元素。 (5)输出数组第5列上的值,即为每个学生的总分。
for(i=0;i<N;i++) { sum=0; for(j=0;j<4;j++) /*计算当前学生的总分*/ sum+=a[i][j]; a[i][4]=sum; } for(i=0;i<N;i++) /*输出每个学生的总分*/ printf("第%d个学生的总分为:%d\n",i+1,a[i][4]); }

河南理工大学C语言课后习题答案精解第六章

河南理工大学C语言课后习题答案精解第六章

a[1][1] a[1][2] a[1][3] 1 0 -1
a[2][1] a[2][2] a[2][3] 2 1 0
a[3][1] a[3][2] a[3][3]
0 1 2
0 1
0
第六章 数组
2. 写出程序的运行结果
(4) 程序四:
#include <stdio.h> main( ) { int i, s; i的ASCII码为105 char s1[100], s2[100]; printf(“input string1:\n”); n的ASCII码为110 gets(s1); printf(“input string2:\n”); gets(s2); s=-5 i=0; while((s1[i]==s2[i]) && (s1[i]!=„\0‟)) i++; if((s1[i] ==„\0‟) && (s2[i]==„\0‟)) s=0; 输入数据: aid else s=s1[i]-s2[i]; printf(“%d\n”,s); and }
B.a[a[4]]
C. a[a[3]]
D. a[a[5]]
第六章 数组
1. 选择题 (6) 要求定义包含8个int类型元素的一维数组,以下错误的定义 语句是 A A. int N=8; B. #define N 3 int a[N]; int a[2*N+2]; C. int a[ ]={0,1,2,3,4,5,6,7} D. int a[1+7]={0}
第六章 数组
3. 程序填空 (3)把一个整数转换成 #include <stdio.h> #define M 80 void main() { long int n=1234567; char s[M]; int j=0; while ( n!=0 ) { s[j]= n%10+’0’; n/=10; j++; } s[j]='\0' ; printf("\n%s",s); }

C语言程序设计知识点—第6章 数组

C语言程序设计知识点—第6章 数组
[练习]以下能正确定义一维数组的选项是( ) A.int a[5]={0,1,2,3,4,5}; B.char a[]={0,1,2,3,4,5} C.char a={„A‟,‟B‟,‟C‟}; D.int a[5]=”0123”; 答案:B
[练习]以下叙述中错误的是( ) A.对于 double 类型数组,不可以直接用数组名对数组进行整体输入或输出 B.数组名代表的是数组所占存储区的首地址,其值不可改变 C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出”下标越界”
[练习]以下程序的输出结果是( )
main()
{
int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for (i=0;i<3;i++)
s+=a[i][j]+a[i][3-i-1];
printf(“%d\n”,s);
}
答案:30
[练习]有以下程序:
#include <stdio.h>
puts 函数完全可以由 printf 函数取代。 当需要按一定格式输出时,通常使用 printf
~ 10 ~
C 语言程序设计知识点
主讲教师:杨剑
函数。 字符串示例
#include <stdio.h> void main() {
char line[30]; int i,count = 0; printf("\n 请输入一行字符:\n "); gets(line); i=0; while(line[i] != '\0') { if(line[i] == ' ') count++; i++;

6-数组

6-数组

C语言国考题知识点分类汇总(第6章数组)2008-2012一、一维数组25.下列选项中,能正确定义数组的语句是( D )。

2010.4A.int num[0…2008]; B.int num[]; C.int N=2008; D.#define N 2008int num[N]; int num[N]; 31.有以下程序,运行结果是( C )。

2008.4#include<stdio.h>main(){ int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]]++;for(i=1;i<5;i++)printf(“%d”,c[i]);printf(“\n”);}A.1 2 3 4 B. 2 3 4 4 C. 4 3 3 2 D. 1 1 2 329.有以下程序,其运行结果是( C )。

2009.9#include<stdio.h>main(){ int a[]={2,3,5,4},i;for(i=0;i<4;i++)switch(i%2){ case 0:switch(a[i]%2){ case 0:a[i]++;break;case 1:a[i]--;}break;case 1:a[i]=0;}for(i=0;i<4;i++)printf(“%d”,a[i]);printf(“\n”);}A.3344 B. 2050 C. 3040 D. 030429.有以下程序,其运行后的输出结果是( C )。

2010.4#include<stdio.h>main(){ int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;for(i=0;i<5;i++)s=s+a[b[i]];printf("%d\n",s);}A.6 B. 10 C. 11 D. 1527.下列定义数组的语句中,正确的是( B )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

其中:<类型>可以是Java中任意的数据类型, <数组名>为用户自定义的一个合法的变量名, []指明该变量是一个数组类型变量。Java在定 义数组时并不为数组元素分配内存,仅为<数组 名>分配一个引用变量的空间
int a[]; String [] person;
int b[100]; // 错误,声明数组时不能指定其长度
12
或者
<类型> <数组名>[ ] = {<表达式1>,<表达式2>,…};
编译程序自动根据<表达式>个数算出数组的长 度,并分配相应空间
int[ ] Array = {1,2,3,4};
2013-8-9
7
Java语言程序设计——Java实用教程(第2版)
一维数组静态初始化
数组成员是引用类型的也可静态初始化
2013-8-9
4
Java语言程序设计——Java实用教程(第2版)
创建一维数组对象
和创建其他Java对象一样,同样使用new关键 字创建一维数组对象,格式为:
数组名 = new 元素类型 [元素个数];
例如:
int [] Array = new int[100]; // 创建一个int型数组,存放100个int类型的数据
堆内存 内存 0 0 ... 0 Array
2013-8-9
0
6
Java语言程序设计——Java实用教程(第2版)
一维数组静态初始化
定义数组的同时可对数组元素进行显式初始化 ,有动态初始化和静态初始化 静态初始化:定义数组时为数组元素分配空间 并赋值:
<类型>[] <数组名> = {<表达式1>,<表达式2>,…};
第一个元素从0开始,例如 a[0]表示数组a的第一个 元素
2013-8-9
2
Java语言程序设计——Java实用教程(第2版)
数组的创建过程
1. 声明数组
说明数组的名称和数组元素的数据类型
语法:数组元素类型 数组名[ ]
2. 创建数组空间
数组名 = new 数组元素类型[数组元素个数] 基本数据类型的数组可同时赋初值
2013-8-9
5
Java语言程序设计——Java实用教程(第2版)
创建一维数组对象
Java虚拟机在堆区中为数组分配内存空间,创建一个包 含100个元素的int型数组,数组成员都是int型,占4字 节,整个数组对象在堆中占400字节。之后,给每个数 组成员赋予其数据类型的默认值,int型的默认值是0
3. 创建数组元素并初始化
元素为基本数据类型的数组可省略第3步
元素为类对象的数组,要创建和初始化每个元素
2013-8-9
3
Java语言程序设计——Java实用教程(第2版)
一维数组的定义
一维数组的定义格式有如下两种:
方式1:<类型><数组名>[];
方式2:<类型>[] <数组名>;
11
1 2 3 4 5 6 7 8 9 10 11 12 13
2013-8-9
Java语言程序设计——Java实用教程(第2版)
使用数组需要注意:
数组元素必须初始化才能使用
数组元素下标从0开始
数组的属性length存储数组元素的个数 系统自动检查是否有数组下标越界的情况
2013-8-9
10
Java语言程序设计——Java实用教程(第2版)
数组举例
class Book { String title; Book(String t) { title = t; } } public class Test { public static void main(String[] args) { Book[] book = new Book[5]; for (int i=0; i<book.length; i++) { book[i] = new Book("book " + i); } System.out.println(book[4].title); } }
Java语言程序设计
JAVA语言程序设计
信息工程学院 康密军
QQ:859393762
2013年8月9日星五
Java语言程序设计——Java实用教程(第2版)
6.1 一维数组
数组:常用数据结构
相同数据类型的元素按一定顺序线性排列
数组元素:基本数据类型,类的对象
数组的特点
相同数据类型的元素的集合 各元素有先后顺序 数组元素用数组名和其在数组中的位置标识
Point[ ] pa = { new Point(1,4), new Point(3,9) };
class Point { int x,y;

}
Point(int a,int b){
x = a; y = b; }
2013-8-9
8
Java语言程序设计——Java实用教程(第2版)
引用类型数组的内存布局
内存
堆内存
1 4 3 9 15 18
Point
Point Point
Pa
2013-8-9
9
Java语言程序设计——Java实用教程(第2版)
一维数组动态初始化
数组定义与为数组分配空间和赋值分开进行

2013-8-9
int a[ ] = new int[3]; a[0] = 1; a[1] = 5; 同样,引用类型的数组成员也可动态初始化 Point[ ] pa = new Point[3 ]; pa[0]= new Point(1,4); pa[1]= new Point(3,9); class Point { int x,y; Point(int a,int b){ x = a; y = b; } }
相关文档
最新文档