当前位置:文档之家› 一维数组全面讲解

一维数组全面讲解

2014.5.22

该部分主要内容

1.数组的概念和用处

2.一维数组的定义

3.一维数组在内存中的存放?

4.如何引用数组元素

5.一维数组的初始化

6.一维数组简单编程举例

7.数组与指针

8.字符数组和字符串

1.数组的概念和用处

比如定义2个int型变量,通常会采用如下方法

int a1,a2;

再用这种方式定义多个int型变量,就显得繁琐,且不利于操作,C语言中使用数组来取代:

int a[10]//一下定义10个int型变量

这里的数组a是相同类型(int型)变量的有序集合,各个数组元素共用一个数组名称a,用下标来区分,其优点就是:表述简洁,可读性性高,而且便于循环遍历

2.一维数组的定义

一维数组好比数学中的数列,各个元素排成一排。c语言中,一维数组的定义方式为

类型说明符数组名[常量表达式];

类型说明符元素的数据类型,如int,char,float等。

数组名一个合法的标识符。

常量表达式表示数据元素的个数,即数组的长度。

例如:

int a[10]; /* 整型数组a,有10个元素*/

float b[10];/* 实型数组b,有10个元素*/

char c[20]; /* 说明字符数组c,有20个元素*/

int d[]; /* 整型数组d,元素个数在初始化时确定*/

需要注意的是:

这样定义数组是错误的:

int x=10, a[x]; /*常量表达式不能为变量!*/

int a(10); /*常量表达式必须放在[]中*/

int a[1.0] ; /*常量表达式只能为整型或省略*/

{

int a;

char a[10];

} /*数组名和其他变量名不能相同*/因此在给数组定义时,需要避免这几种类型的错误。

3.一维数组在内存中的存放?例int a[8] a[0]

a[1]

a[2]a[3]

a[6]

a[7]200420082012

201620282032

编译时,数组分配连续的内存,内存字节数=数组长度*sizeof(元素数据类型),例中数组占据内存长度为

8*sizeof(int)a 数组名(a )表示内存首地址,是地址常量

4.如何引用数组元素

?数组元素也是一种变量,其标识方法为数组名后跟一个下标。一般形式为:数组名[下标]

?例a[2];a[j++];a[j+i];/*下标只能为整型常量或整型表达式,使用诸如a[5.2],C编译器自动调整*/

?必须先定义数组,才能使用下标变量;

int a[10];

scanf("%d",&a[0]);

a[1]=10*a[0];

printf("%d",a[1]);

?使用下标不能越界,如这里使用a[10]则越界;C语言中不做越界检查,是常见严重错误之一;

5.一维数组的初始化

数组的赋值除了用赋值语句对数组元素逐个赋值外,还可采用初始化赋值和动态赋值的方法。

(1)对整个数组元素初始化

int a[5]={1,2,4,5,6} 相当于a[0]=1,a[1]=2,a[2]=4,a[3]=5,a[4]=6;

(2)对部分数组元素初始化

int a[5]={1,2,4} 相当于a[0]=1,a[1]=2,a[2]=4,a[3]=0,a[4]=0;

(3)可以省略数组长度,系统自动计算

int a[]={1,2,4,5,6} //长度就是5;

(4)未进行初始化时,数组各元素的值为随机值

(5)使用int a[5]={0};将数组各元素值都初始化为0;

6.一维数组编程举例

例1.逐个输入10个数到数组a中,然后输出数组a元素的最大值void main(){

int i,max,a[10];

printf("input 10 numbers:\n");

for(i=0;i<10;i++)//for结构,遍历数组各元素

{

scanf("%d",&a[i]);//获取输入值赋值给相应数组的元素

}

max=a[0];

for(i=1;i<10;i++)//再次遍历赋值后的数组各元素

{

if(a[i]>max)

max=a[i];

}

printf("maxmum=%d\n",max);

return;

}

例2.正序,逆序输出数组元素的值void main(){

int i,j;

int a[10]={1,2,3,4,6,7,8,9,0,5};

printf("正序元素\r\n");

for(i=0;i<10;i++)//正序遍历数组各元素

{

printf("%d\t",a[i]);

}

printf("\r\n逆序元素\r\n");

for(j=9;j>=0;j--)//逆序遍历数组各元素

{

printf("%d\t",a[j]);

}

return;

}

7.数组与指针

1

用指针操作一维数组

数组元素在内存中连续存放,知道数组首个元素的地址,就可以顺次得到其他元素地址,并实现对其他元素的间接访问。

示例

int a[10]

第一个元素(变量)a[0]

第一个元素地址&a[0]

第k个元素(变量)地址&a[0]+k -1 即&a[k-1]

第k个元素间接引用*(&a[0]+k -1)即*&a[k-1]

输入示例

for(j=0;j<10;j++)

{

scanf("%d",&a[j]);//也可使用scanf("%d",&a[0]+j); }

用指针变量

int *p=&a[0];

for(j=0;j<10;j++)

{

scanf("%d",p+j);

}

for(j=0;j<10;j++)

{

scanf("%d",p++);//自加指令速度快

}

2数组名代表指针常量

C 语言中对数组名有如下约定:1.数组名代表一个指针;2.指针指向数组的首个元素,且不能更改;3.基类型即为数组元素的数据类型。int a[10]//定义一个一维数组a 即是指向a[0]的指针,基类型为int 。a 与&a[0] 含义、用法完全相同,但书写更简单。要点

思考

输入示例

int a[10];

int *p=a;

/*输入数组元素*/

for(i=0;i<10;i++)

{

scanf("%d",&a[i]);//用&a[0]+i或a+i替换&a[i]效果一致}

/*打印数组元素*/

for(j=0;j<10;j++)

{

printf("%d",a[j]);//用*(a+j)或*p++替换a[j]效果一致/* 需要注意的是:

这里使用*a++替换a[j]则会报错,为什么?

因为a是指针常量,不能通过自加、自减运算改变自身值!*/ }

3指针和数组的一致性

指针和数组都可以采用下标间接或直接引用

int a[10];

int *p=a;

则*(a+1) = 2 ;a[1] = 2;

*(p+1) = 2;p[1] = 2;四种引用等效

需要强调的是:

当p指向数组a时,p和a可以使用相同的形式表示元素或地址;

但是p是变量,值可变,a则为常量,值不可变。

8.一维字符数组与字符串

存放字符数据的一维数组叫做一维字符数组,也常成为字符串数组;

其定义方法char a[10];

初始化方法为

char a[10]={'I','','a','m','','h','a','p','p','y'};

当进行部分初始化时,未初始化元素自动定为空字符——'\0';

C语言中,字符串是通过字符数组来存储

为了测试字符串的实际长度,C语言规定了一个字符串结束标志---'\0';如字符串“happy”,系统会自动为该字符串添加结束符'\0',该字符串有效长度为5,但在内存占据6个字符长度,第6个字节存放'\0',该字符串作为字符数组来存放;

例如char a[6]={"happy"};

和char a[6]="happy";

char a[6]={'h','a','p','p','y','\0'};三者等价

字符串输出举例

char a[]="I am a boy!"; int i=0;

printf("%s\r\n",a);

for(i=0;i<11;i++)

{

printf("%c",a[i]); }

几种常见字符串处理函数

1.从键盘得到一个字符串存入字符数组,并返回该数组的起始地址

gets(字符数组);

2.把字符串或字符数组中存放的字符串输出到终端puts(字符数组或字符串)

3.字符串拷贝

strcpy(目标字符数组,源字符串) //目标字符串必须足够大以容纳源字符串

4.字符串大小测试

strlen(字符数组或字符串)//遇到第一个结束符‘\0’时返回字符串有效长度

5.其他的如,字符串连接函数strcat,字符串比较函数strcmp等

本课要点回顾:

1.数组的概念,数组的定义语法;

2.数组与指针的关系;

3.字符串的存储,字符数组的初始化特点,字符串函数的简单介绍

课堂练习

随机输入10个数,用冒泡算法对10个数重新排序(由小到大)

思路提示:1.建立整形数组,用于从键盘接受10个数;

2.进行冒泡比较,第一轮从第一个数组元素,依次给相邻元素比较,如前一个元素值大于后者,则将二者元素值进行调换,经这一轮之后,数组中最大的值将被放入数组最后一个元素a[9];

3.第二轮同步骤2中的处理,操作范围除去最后一数组元素的其他数据元素,将数组中第二大值挑出放在a[8];

4.共计进行10-1次处理,该算法完成排序;

5,打印输出结果

数组练习题及答案

第五章数组练习题及答案 一、选择题 1、判断字符串a和b是否相等,应当使用() A、if(a==b) B、if(a=b) C、if(strcpy(a,b)) D、if(strcmp(a,b)) 2、以下正确的定义语句是() A、int a[1][4]={1,2,3,4,5}; B、float x[3][]={{1},{2},{3}}; C、long b[2][3]={{1},{1,2},{1,2,3}}; D、double y[][3]={0}; 3、以下各组选项中,均能正确定义二维实型数组a的选项是() A、float a[3][4]; float a[ ][4]; float a[3][ ]={{1},{0}}; B、float a(3,4); float a[3][4]; float a[ ][ ]={{0},{0}}; C、float a[3][4]; static float a[ ][4]={{0},{0}}; auto float a[ ][4]={{0},{0},{0}}; D、float a[3][4]; float a[3][ ]; float a[ ][4]; 4、下面程序的运行结果是() 1—5 DDCBA 6—10 BDABB 11—15 CCCBC 16—20 DDCBB 21—25 BBAAA 26—30 DBDDB #include "stdio.h" main() { char str[]="SSSWLIA",c; int k; for(k=2;(c=str[k]!='\0');k++) { switch(c) {case 'I':++k;break; case 'L':continue; default:putchar(c);continue; } putchar('*'); } } A、SSW* B、SW* C、SW*A D、SW 5、下面程序段是输出两个字符串中对应相等的字符。横线处应填入() char x[]="programming"; char y[]="Fortran"; int i=0;

实验六 一维数组程序设计

实验六一维数组程序设计 一、实验学时 2学时 二、实验目的 (一)掌握一维数组的定义、初始化方法; (二)掌握一维数组中数据的输入和输出方法; (三)掌握与一维数组有关的程序和算法; (四)了解用数组处理大量数据时的优越性。 三、预习要求 (一)理解数组的概念、利用数组存放数据有何特点; (二)一维数组的定义、初始化方法; (三)一维数组中数据的输入和输出方法。 四、实验内容 (一)下面的几个程序都能为数组元素赋值,请输入程序并运行。比较一下这些赋值方法的异同。 1.在定义数组的同时对数组初始化。 /* c6-1.c */ /*在定义数组的同时对数组初始化*/ #include "stdio.h" void main( ) { int a[4]={0,1,2,3}; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 2.不使用循环对单个数组元素赋值。 /* c6-2.c */ /*不使用循环对单个数组元素赋值*/ #include "stdio.h" void main( ) { int a[4]; a[0]=2;a[1]=4;a[2]=6;a[3]=8; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 3.用循环结构,从键盘输入为每个数组元素赋值,输出各数组元素。 /* c6-3.c */ /*利用循环通过键盘对数组元素赋值*/ #include "stdio.h" void main( ) { int i,a[4]; for(i=0; i<4; i++) scanf("%d",&a[i]); printf("\n"); for(i=0; i<4; i++) printf("%d ",a[i]);

JAVA一维数组二维数组运用的例子

题目:定义一个一维数组存储10个学生名字;定义一个二维数组存储这10个学生的6门课(C程序设计、物理、英语、高数、体育、政治)的成绩; 程序应具有下列功能: (1)按名字查询某位同学成绩 (2)查询某个科目不及格的人数,及学生名单 代码如下: import java.util.*; public class Test{ public static void main(String[]args){ Scanner input=new Scanner(System.in); String[]name={"a","b","c","d","e","f","g","h","i","l"};//存储学生的名字 int[][] grade={{50,60,70,80,90,10},{40,90,80,60,40,70},{60,80,70,60,40,90},{50,60,70,80,90,10}, {60,80,70,60,40,90},{60,70,80,90,70,70},{60,80,70,60,40,90},{60,80,70,60,40,90},{70, 80,90,70,70,70},{60,80,70,60,40,90}};//存储学生各科成绩 System.out.println("输入要查询成绩的学生名字:"); String chioce=input.nextLine(); for(int i=0;i<10;i++) { if(name[i].equals(chioce)) {System.out.println("学生:"+name[i]+"的成绩如下:"); System.out.println("C程序设计:"+grade[i][0]+"物理:"+grade[i][1]+"英 语:"+grade[i][2]+"高数:"+grade[i][3]+"体育:"+grade[i][4]+"政治:"+grade[i][5]+"\n"); break;} } System.out.println("******************************************************");

第六章数组习题答案

第六章数组习题答案 一、单项选择题 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( )

数组及其应用(详细教案)

提问:给一组数排序,这组数该如何存 放呢? 8 2 9 4 5 6 3 7 1 6 这就是本节课要解决的问题。 ?一个班学生的学习成绩 ?一行文字 ?一个矩阵 这些数据的特点是: 1.具有相同的数据类型 2.使用过程中需要保留原始数据 C语言为这些数据,提供了一种型:数组。所谓数组就是一组具有相数据的有序集合。 提出学习要求: 1 一维数组的定义和应用

2 二维数组的定义和应用 3 字符数组的应用 第七章数组 7.1一维数组及应用 7.1.1一维数组的定义方式 在C语言中使用数组必须先定义、后使用,定义数组也就确定了数组的首地址、数组元素的类型和个数(数组长度)。 一维数组的定义方式为: 类型说明符数组名[常量表达式]; 例如: 1) int a[5]; 说明整型数组a,a是数组名,有5个元素。但

是其下标从0开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。注意不能使用数组元素a[5]。 float b[10],c[20]; 说明实型数组b,b是数组名,有10个元素,实型数组c,有20个元素。 char ch[20]; 说明字符数组ch,有20个元素。 对于数组类型说明应注意以下几点:2) 数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。 3) 数组名的书写规则应符合标识符的书写规定。 4) 数组名不能与其它变量名相同。 例如:

main() { int a; /*a为整型变量*/ float a[10]; /* 数组名a与上面的变量名a相同,错误!*/ …… } 是错误的。 5) 不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。 例如: #define FD 5 /* FD是符号常数*/ main() {

实验七 一维数组的应用

实验七一维数组的应用 实验时间:2010年11月19日 【实验目的】 1、掌握一维数组的定义、赋值和输入、输出的方法; 2、能用循环处理数组,用数组存储数据; 3、掌握与数组应用有关的算法(例如求最大值、最小值算法,冒泡法排序算法、选择法排序算法等)。 【实验内容】 1、一维数组的定义、赋值、输入和输出; 2、用循环处理数组,数组元素的引用; 3、数组的应用:求最大值、最小值问题,冒泡法排序,选择法排序。 【实验步骤】 一、在E或F盘上建立以自己的学号命名的文件夹。 二、上机验证题 1、分析以下程序,写出运行结果。 /* 文件名:ex7_1.c */ #include #define N 10 main ( ) { int k; float a[N],av,s; s=0.0; printf("请输入10个数:\n"); for (k=0; kav) printf("%.0f\t",a[k]); } 2、分析以下程序,写出运行结果 /* 文件名:ex7_2.c */ #include main ( ) {

int a[10],i,max,min,maxpos,minpos; printf("请输入10个整数:\n"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } max=min=a[0]; maxpos=minpos=0; for(i=0;i<10;i++) { if(maxa[i]) { min=a[i]; minpos=i+1; } } printf("max=%d,pos=%d\n",max,maxpos); printf("min=%d,pos=%d\n",min,minpos); } 3、分析以下程序,写出运行结果。 /* 文件名:ex7_3.c */ #include main ( ) { char str[20]; int i,num; gets(str); if(str[0]!=' ') { num=1; } else { num=0;

vb中一维二维数组应用

一维数组 排序 一、选择排序法: 数据已经放在一维数组中,要求从小到大排序。 数组 20 4 36 …… 45 109 3 下标 1 2 3 …… n-2 n-1 n 排序过程: 1、从第1项到第n项选择最小值,然后将第1项与最小项交换。 2、从第2项到第n项选择最小值,然后将第2项与最小项交换。 3、…… 4、从第n-1项到第n项选择最小值,然后将第n-1项与最小项交换。注意:最小值及下标由临时变量存储。 所以,需要两层循环:外层循环i执行n-1次,内层循环j执行n-i-1次For i=1 to n-1

最小值及下标由临时变量存储 tmpVal=第i项值 tmpId=第i项下标 For j=i+1 to n 若tmpVal >第j项值,则: tmpVal=第j项值 tmpId=第j项下标 next 将第i项与最小项交换 Next 从大到小呢? 二、冒泡排序法: 数据已经放在一维数组中,要求从小到大排序。 数组 20 4 36 …… 45 109 3 下标 1 2 3 …… n-2 n-1 n

两种方法:小数上浮和大数下沉。 小数上浮排序过程:从第n项到第k项,依次相临两项比较,若第m项小于第m-1项,则两项交换。(k从2到n) 第1次执行:结果是第1项至第n项中的最小值放到第1项中 1、若第n项小于第n-1项,将第n项与第n-1项交换。 2、若第n-1项小于第n-2项,将第n-1项与第n-2项交换。 3、…… 4、若第2项小于第1项,将第2项与第1项交换。 第2次执行:结果是第2项至第n项中的最小值放到第2项中 1、若第n项小于第n-1项,将第n项与第n-1项交换。 2、若第n-1项小于第n-2项,将第n-1项与第n-2项交换。 3、…… 4、若第3项小于第2项,将第3项与第2项交换。 …… 第n-1次执行: 1、若第n项小于第n-1项,将第n项与第n-1项交换。 所以,需要两层循环:外层循环i执行n-1次,内层循环j执行n-i次 For i=1 to n-1 For j=n to i+1 step -1 若第j项值<第j-1项值,则:

c语言程序设计 一维数组实验

程序填空: 1、将数组a中所有偶数删除,把奇数按原顺序依次存放到a[0]、a[1]、a[2]、……、中。例如:若a数组中的数据最初排列为:9、1、4、 2、 3、6、5、8、7,删除偶数后a数组中的数据为:9、1、3、5、7。 #include main() { int a[9]={9,1,4,2,3,6,5,8,7},i,k=0; for(i=0;i<9;i++) if(__【1】__) a[k++]=a[i]; for(i=k;i<9;i++) a[i]=0; for(i=0;__【2】__;i++) printf("%4d",a[i]); printf("\n"); } 2、将所有大于1小于整数m的非素数存入数组a中。例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。 #include #define N 100 main() { int a[N],i,j,k=0,m; __【1】__ for(i=2;i #define N 20 main() { int fibonaci[N],i; for(i=0;i

vb课后练习答案习题解答 (5)

第5章数组与记录 5.1 填空题 1.若要定义一个包含10个字符串元素,且下界为1的一维数组s,则数组说明语句为()。 答案:Dim s(1 To 10) As String 2.若要定义一个元素为整型数据的二维数组a,且第一维的下标从0到5,第二维下标从-3到6,则数组说明语句为()。 答案:Dim a(0 To 5,-3 To 6) As Integer 3.如果数组元素的下标值为实数,则VB系统会按()进行处理。 答案:四舍五入原则 4.数组元素个数可以改变的数组称为();数组元素可以存放不同类型数据的数组称为()。 答案:可调数组、可变类型数组 5.数组刷新语句用于()。若被刷新的数组是数值数组,则把所有元素置();若被刷新的数组为字符串数组,则把所有元素置()。 答案:清除指定数组内容、0、空字符串 10.控件数组是由一组类型和()相同的控件组成,共享()。 答案:名字、同一个事件过程 11.控件数组中的每一个控件都有唯一的下标,下标值由()属性指定。 答案:Index 12.建立控件数组有两种方法:()和()。 答案:在设计阶段通过相同Name属性值来建立、在程序代码中使用Load方法 5.2 选择题 1.下列一维数组说明语句错误的是()。 a) Dim b(100) AS Double b) Dim b(-5 To 0) AS Byte c) Dim b(-10 To –20) AS Integer d) Dim b(5 To 5) AS String 答案:c 2.若有数组说明语句为:Dim a(-3 To 8),则数组a包含元素的个数是()。 a) 5 b) 8 c) 11 d) 12 答案:d 3.设有数组说明语句:Dim c(1 To 10),则下面表示数组c的元素选项中()是错误的。 a) c(i-1) b) c(5+0.5) c) c(0) d) c(10) 答案:c 4.下列数组说明语句中正确的是()。 a) Dim a(-1 To 5,8)AS String b) Dim a(n,n)AS Integer c) Dim a(0 To 8,5 To –1)AS Single d) Dim a(10,-10)AS Double

【精选资料】VB控件 数组 过程复习题 参考答案2

常用标准控件作业 一、选择题 1.下列关于属性设置的叙述错误的是_______B__。 A.一个控件具有什么属性是Visual Basic预先设计好的,用户不能改变它 B.一个控件具有什么属性值是Visual Basic预先设计好的,用户不能改变它 C.一个控件的属性既可以在属性窗口中设置,也可以用程序代码设置 D.一个控件的属性在属性窗口中设置后,还可以再利用程序代码为其设置新值 2.以下过程是标签Label1的___A______事件。 Prviate Sub Label1_Click( ) End Sub A.单击 B.双击 C.拖拽 D.移动 3.下列控件中可设置滚动条是____C_____。 A.检查框(复选框) B.框架 C.文本框 D.标签框 4.标签所显示的内容,由___C______属性值决定。 A. Text B. Name C. Caption D. Alignment 5.定时器的定时间隔单位是__C_______。 A. 秒 B. 微秒 C. 毫秒 D. 分 6.检查框(复选框)的控件名称为______B___。 A. OptionBotton B. CheckBox C. PictureBox D. Image 7.若要求向文本框输入密码时,只在文本框中显示&号,则应当在此文本框的属性窗口中设置______D___。 A. Text属性值为& B. Caption属性值为& C. PasswordChar属性值为空 D. PasswordChar属性值为& 8.若要设置定时器的定时间隔,可通过__A_______属性来设置。 A. Interval B. Value C. Enabled D. Text 9.若要设置定时器的定时间隔设为5秒,应将Interval属性值设为_D________。 A. 5 B. 50 C. 500 D. 5000 10.若要使不可见命令按钮显示出来,可通过设置_____A____属性的值为True来实现。 A.Visible B.Enabled C.Default D.Value 11.若要使定时器起作用,应将其__D_______属性设置值设为True。 A.Interval B.Value C.Text D.Enabled 12.若要使命令按钮失效,可设置_____B____属性为False来实现。 A.Value B.Enabled C.Visible D.Cancel 13.若要向列表框新增列表项,可使用_____D____方法来实现。 A.Add B.RemoveItem C.Clear D.AddItem 14.要获得垂直滚动条Vscrollbar控件所能表示的最大值,可通过调用该控件的_____B____属性来实现。 A.Value B.Max C.Min https://www.doczj.com/doc/e6891758.html,rgeChange 15.要将命令按钮上的文字设置为“粗体”可通过设置__B_______属性值为True来实现。 A.FontItalic B.FontBold C.FontUnderline D.FontSize 16.要将命令按钮上的文字设置为“斜体”可通过设置____A_____属性值为True来实现。 A.FontItalic B.FontBold C.FontUnderline D.FontSize 17.要将命令按钮上的字体设为“隶书”,可设置______C___的属性为“隶书”。 A.FontBold B.BackItalic C.FontName D.FontSize 18.以下选项中,不属于单选按钮属性的是____D_____ A.Enabled B.Caption https://www.doczj.com/doc/e6891758.html, D.Min 19.组合框的风格可通过____C_____属性来设置。 A.BackStyle B.BorderStyle C.Style D.Sorted 20.标签的边框由_____C____属性的设置来决定。 A.BackColor B.BackStyle C.BorderStyle D.AutoSize 21.单选按钮的控件名称为____D_____。 A.Botton B.CheckBox C.PictureBox D.OptionBotton 22.单选按钮的当前状态可通过___A______属性来访问。 A.Value B.Checked C.Selected D.Caption 23.当滚动条中的滑块位置变化时,将触发其___C______事件。 A.LostFocus B.SetFocus C.Change D.GetFocus 24.假定Picture1和Form1分别为图片框和窗体的名称,以下语句___A______可清除图片框中的文本信息。 A.Picture1.cls B.Picture1.clear C.Form1.cls D.Form1.clear 25.确定一个窗体或控件的大小的属性是_____B____。 A.Width或Height B.Width和Height C.Top或Left D.Top和Left

实验(6)-数组-参考答案

C语言程序设计实验教学(6) 【实验目的】数组的应用是很重要的一章。通过实验掌握一维数组的主要应用,并理解数组的存储。对二维数组的处理要比较熟悉。 【实验要求】一维数组的题目要求全面掌握,应用循环结构完成一维数组的输入、处理和输出。二维数组能够完成简单的数据处理和应用。 【实验课时】8.0 【实验内容】 一维数组: 1、定义一个可以存放10个元素的int数组a,输入10个数,并逆序输出。 #include #include void main( ) {int a[10], i; clrscr(); printf("Please input array a :"); for(i=0;i<10;i++) scanf("%d", &a[i]);/* 由键盘逐次输入值赋予数组各元素*/ for(i=9;i>=0;i--) /* 变量i递减控制着数组元素倒序输出*/ printf("%5d", a[i]); } 2、用数组来保存Fibonacci数列前20项数值,以每5个数据为一行进行 输出。 #include #include void main( ) {int i; long f[20]; clrscr(); f[0]=1;f[1]=1; for(i=2;i<20;i++)

f[i]=f[i-1]+f[i-2]; for(i=0;i<20;i++) {if(i%5==0) printf("\n"); printf("%10ld",f[i]); } } 3、统计具有10个元素的自然数数组num中的奇数个数。 #include #include void main( ) {int i,num[10],count=0; clrscr(); for(i=0;i<10;i++) {printf("enter NO %d : ",i+1);/*给予输入提示*/ scanf("%d",&num[i]); if(num[i]%2!=0) count++;} printf("Count is:%d\n",count ); } 4、计算整数数组a中的最大值及其所在的下标。 #include #include void main( ) {int i,max,p,a[10]; clrscr(); printf("please enter 10 data:\n"); for(i=0;i<10;i++) scanf("%d",&a[i]); max=a[0];p=0; for(i=1;i<10;i++)

C语言程序设计 一维数组

5.1一维数组 5.1.1找最小数 【例5-1】输入10个整数,找出其中的最小数,然后输出这10个数和最小数。 参考程序如下: /*程序5-1.c*/ #include int main() { int i,min,a[10];/*定义数组*/ printf("Enter data:");/*提示输入*/ for(i=0;i<10;i++) scanf("%d",&a[i]);/*输入10个数*/ min=a[0];/*假设下标为0的元素最小*/ for(i=1;i<10;i++)/*找最小值a[i]*/ if(a[i]

一维数组试题

C语言考试试题[一维数组] 姓名:学号:成绩: 一、填空题:(每题1分,共10分) 1、数组是构成的集合。 2、数组元素被顺序连续地存放在内存中,并通过进行访问。 3、数组元素的下标从开始。长度为n的数组中,最后一个元素下标为。 4、一维数组是最简单的数组,其定义形式是:。 5、一个C字符串是以结束的字符序列。 6、专门用于字符串的输入和输出的函数是。 7、float fv[]={0,4,5,12,-7,56.8,0};数组fv的长度是_________。 8、存储字符串“\0”占用________字节的存储单元。 9.有定义int a[]={4,6,78,3456,98,2,89};该数组元素最大的下标为___________。 二、单项选择题,请将答案写在下列答题卡中(每题2分,共24分 )。 1、以下正确的概念是() A、数组名的规定与变量名不相同。 B、数组名后面的常量表达式用一对圆括号括起来。 C、数组下标的数据类型为整型常量或整型表达式。 D、在C语言中,一个数组的数组下标从1开始。 2、对数组初始化正确的方法是: A、int a(5)={1,2,3,4,5}; B、int a[5]={1,2,3,4,5}; C、int a[5]={1…5}; D、int a[5]={0,1,2,3,4,5}; 3、若有以下的数组定义:char x[]=”12345”; char y[]={‘1’,’2’,’3’,’4’,’5’}; 则正确的描述是:() A、x数组和y数组长度相同 B、x数组长度大于y数组长度 C、x数组长度小于y数组长度 D、两个数组中存放相同的内容 4、以下程序运行时,从键盘输入:AhaMA Aha<回车>,则下面程序的 运行结果是() #include main() {char s[80],c=’a’; int m=0; scanf(“%s”,s); while(s[m]!=’\0’) { if(s[m]==c) s[m]=s[m]-32; else if(s[m]==c-32) s[m]=s[m]+32; m++;} puts(s);} A、ahAMa B、AhAMa C、AhAMa ahA D、ahAMa ahA 5、给出以下定义:char x[]=”abcdefg”; char y[]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};则正确的叙述为:() A 数组A和数组属于空数组 B 数组X和数组Y的长度相同 C 数组X的长度大于数组Y的长度D数组X的长度小于数组Y的长度 6、下面程序的运行结果是() main() {char a[]=”morning”,t;int m,n=0; for(m=1;m<7;m++) if(a[n]

C语言一维数组的定义和引用

C语言一维数组的定义和引用 在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。本章介绍数值数组和字符数组,其余的在以后各章陆续介绍。 7.1一维数组的定义和引用 7.1.1一维数组的定义方式 在C语言中使用数组必须先进行定义。一维数组的定义方式为:类型说明符数组名[常量表达式]; 其中:类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。 例如: int a[10]; 说明整型数组a,有10个元素。 float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。 char ch[20]; 说明字符数组ch,有20个元素。 对于数组类型说明应注意以下几点: 数组的类型实际上是指数组元素的取值类型。对于同一个数组,其所有元素的数据类型都是相同的。 数组名的书写规则应符合标识符的书写规定。 数组名不能与其它变量名相同。 例如: main() { int a; float a[10]; …… } 是错误的。 方括号中常量表达式表示数组元素的个数,如a[5]表示数组a有5个元素。但是其下标从0开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]。 不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常量表达式。 例如: #define FD 5 main() { int a[3+2],b[7+FD];

Java数组练习题(带答案)

一填空题 1)数组的元素通过下标来访问,数组Array的长度为Array.length 。 2)数组复制时,"="将一个数组的引用传递给另一个数组。 3)JVM将数组存储在栈(堆或栈)中。 4)数组的二分查找法运用的前提条件是数组已经排序。 5)Java中数组的下标的数据类型是整型。 6)数组最小的下标是0 。 7)arraycopy()的最后一个参数指明复制元素的个数。 8)向方法传递数组参数时,传递的是数组的引用。 9)数组初始化包括数组的申明,创建和初始化。 10)数组下标访问超出索引范围时抛出数组越界异常 11)浮点型数组的默认值是0.0f 。 12)数组创建后其大小不能改变。 二选择题 1.下面错误的初始化语句是_ABD__ 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]后,下面错误的引用是_B__ 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.引用数组元素时,数组下标可以是_D___ A. 整型常量 B. 整型变量 C. 整型表达式 D. 以上均可 5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____ A. 24 B. 25 C. 18 D. 17 6.下列初始化字符数组的语句中,正确的是__B__ A. char str[5]="hello"; B. char str[]={'h','e','l','l','o','\0'}; C. char str[5]={"hi"}; D. char str[100]=""; 7.数组在Java中储存在 C 中 A. 栈 B. 队列 C. 堆 D. 链表 8.下面程序的运行结果是____ main() { int a[][]={{1,2,3},{4,5,6}}; System.out.printf("%d", a[1][1]); } A. 3 B. 4 C. 5 D. 6 9.下面程序的运行结果是_C___ main() {

C语言数组练习及答案

第四部分数组 4.1 选择题 1. 以下关于数组的描述正确的是(c )。 A. 数组的大小是固定的,但可以有不同的类型的数组元素 B. 数组的大小是可变的,但所有数组元素的类型必须相同 C. 数组的大小是固定的,所有数组元素的类型必须相同 D. 数组的大小是可变的,可以有不同的类型的数组元素 2. 以下对一维整型数组a的正确说明是(d )。 A.int a(10); B. int n=10,a[n]; C.int n; D. #define SIZE 10 scanf("%d",&n); int a[SIZE]; int a[n]; 3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是(c )。 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 页脚内容1

4. 以下对一维数组m进行正确初始化的是(c )。 A. int m[10]=(0,0,0,0) ; B. int m[10]={ }; C. int m[ ]={0}; D. int m[10]={10*2}; 5. 若有定义:int bb[ 8];。则以下表达式中不能代表数组元bb[1]的地址的是(c )。 A. &bb[0]+1 B. &bb[1] C. &bb[0]++ D. bb+1 6. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是(d )。 A. 3 B. 6 C. 10 D. 20 7. 若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是(d ) A. a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c] 8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入(a )。 #include main() { int a[10],i=0; while(i<10) scanf("%d",________ ); 页脚内容2

数组的综合应用例子

数组的综合应用例子 时间:2009-6-19 8:54:45 点击:1409 数组的综合应用 为了加深对数组的理解,下面结合一些常用算法的编程来更加深入地学习和使用数组。由于一维数组和二维数组是程序设计中最常用的数组形式,因此这里的举例均为一维和二维数组。 1.数组元素的输入和输出 [例5-12] 由用户输入5个数组元素的值并把它们输出在窗体上。 Option Explicit Private Sub Command1_Click() Dim a(1 To 5) As Integer, i As Integer For i=1 To 5 a(i)=InputBox("请输入第" & Str(i) & "个元素") Next For i=1 To 5 Print "a (";i; ")="; a(i) Next End Sub 程序运行后,单击命令按钮,执行事件过程Command1_Click。若输入5个值10,20,30,40,50,则窗体上显示的输出结果是: a(1)=10 a(2)=20 a(3)=30 a(4)=40 a(5)=50 程序中声明了一个具有5个元素的一维整型数组,分别用循环语句输入、输出数组元素的值。在循环体内,数组元素用循环控制变量i作下标,i值的不同就表示数组元素的不同。在程序中引用数组元素时,其下标可以使用表达式。只要表达式的结果不超出数组定义的上界和下界范围,下标表达式就是合法的。例如本例中,若i=2,则: a(i+1)的值为30; a(a(i+3)\10)的值为50。 下标表达式的值还可以是实数,此时VB将自动对其进行四舍五入取整。例如: a(1+0.4)的值是10; a(2+0.5)的值30。 2.数组元素插入删除

C语言编程一维数组的使用

实验三一维数组的使用 【实验目的】 1掌握一维数组、二维数组的定义和初始化方法。 2熟悉使用字符数组处理字符串处理的方法。 【实验内容】 1.输入10个学生的成绩,求平均成绩,并将低于平均成绩的分数打印出来. 编写程序: #include void readdata (float score[10]) { int i; printf("依次输入10个学生的成绩:\n"); for(i=0;i<10;i++) scanf("%f",&score[i]); return; } float aver(float score[10]) { float sum; int i; for(sum=0,i=0;i<10;i++) sum=sum+score[i]; return(sum/10); } void printff(float score[10],float ave) { int i; printf("低于平均分的成绩为:\n"); for(i=0;i<10;i++) if(score[i]

ave=aver(score); printf("average=%6.2f\n",ave); printff(score,ave); } 2、将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1。要求改为1,4,5,6,8。 编写程序: #include int main() { int i,j,a[5]={8,6,5,4,1},b[5]; for(i=0,j=4;i<5,j>=0;i++,j--) b[j]=a[i]; for(i=0;i<5;i++) a[i]=b[i]; for(i=0;i<5;i++) cout< int main() { int a[10]; int i = 0,j=0; int max,temp; for(i=0;i<10;++i) { printf("Please input the %dth number:",i+1); scanf("%d",&a[i]); } printf("The arry has been input is:\n"); for(i=0;i<10;i++) { printf("%d,",a[i]); } printf("\n"); for(i=0;i<10;i++) { max=i;

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