当前位置:文档之家› 第七章 数组

第七章 数组

第七章 数组
第七章 数组

第七章数组1、以下能正确定义二维数组的是

A)int a[][3]; B)int a[][3]=2{2*3};

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

2、有以下程序

int f(int a)

{ return a%2; }

main()

{ int s[8]={1,3,5,2,4,6},i,d=0;

for (i=0;f(s);i++) d+=s;

printf("%d\n",d); }

程序运行后的输出结果是

A)9 B)11 C)19 D)21

3、若有以下程序

main()

{ Int a[4][4]= {{1,2,-3,-4},{0,-12,-13,14},

{-21,23,0,-24},{-31,32,-33,0}};

int i, j, s=0;

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

{ for (j=0; j<4; j++)

{ if (a[i][j] < 0) continue;

if (a[i][j] == 0) break;

s += a[i][j];

}

}

printf("%d\n", s);

}

执行后输出结果是【】。

4、有以下程序

main()

{ char s[]="\n123\\";

printf("%d,%d\n ", strlen(s), sizeof(s)); } 执行后输出结果是

A)赋初值的字符串有错 B)6,7 C)5,6 D)6,6

5、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。

#define N 10

void arrin(int x[N])

{ int i=0;

while(i

scanf("%d", );

}

在下划线处应填入的是

A)x+i B)&x[i+1] C)x+(i++) D)&x[++i] 6、有以下程序

main()

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

int i,j,k=2;

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

{ printf("%d ",m[k][i]); }

}

执行后输出结果是

A)4 5 6 B)2 5 8 C)3 6 9 D)7 8 9

7、以下能正确定义数组并正确赋初值的语句是

A)int N=5,b[N][N]; B)int a[1][2]={{1},{3}};

C)int c[2][]= {{1,2},{3,4}}; D)int d[3][2]={{1,2},{34}};

8、有以下程序

main()

{ int p[7]={11,13,14,15,16,17,18}, i=0,k=0; while(i<7 && p[i]%2) { k =k+ p[i]; i++; } printf("%d\n", k);

}

执行后输出结果是

A)58 B)56 C)45 D)24

9、以下程序运行后的输出结果是【】

main()

{ int i,n[]={0,0,0,0,0};

for(i=1;i<=4;i++)

{ n[i]=n[i-1]*2+1;

printf("%d ",n[i]); } }

10、以下程序运行后的输出结果是【】

main()

{ int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++)

for(j=i+1;j<3;j++) a[j][i]=0;

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

{for(j=0;j<3;j++) printf("%d ",a[i][j]);

printf("\n");

} }

11、以下能正确定义一维数组的选项是

A)int num[]; B)#define N 100 int num[N];

C)int num[0..100]; D)int N=100; int num[N];

12、以下不能正确定义二维数组的选项是

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

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

13、有以下程序

main( )

{ char a[]=”abcdefg”,b[10]=”abcdefg”;

printf(“%d%d\n”,sizeof(A),sizeof(B) ); }

执行后输出结果是

A) 7 7 B) 8 8 C) 8 10 D) 10 10

14、以下程序运行后的输出结果是 ______ 。

main()

{ int p[7]={11,13,14,15,16,17,18};

int i=0,j=0;

while(i<7 && p%2==1) j+=p[i++];

printf("%d\n",j);

}

15、以下程序运行后的输出结果是 _______ 。

main()

{ int a[4][4] = {{1,2,3,4},{5,6,7,8}, {11,12,13,14},{15,16,17,18}}; int i=0,j=0,s=0;

while(i++<4)

{

if(i==2||i==4) continue;

j=0;

do{ s+=a[j]; j++; } while(j<4);

} printf("%d\n", s);

}

16、有以下程序

main()

{ int x[]={1,3,5,7,2,4,6,0},i,j,k; for(i=0; i<3; i++)

for (j=2; j>=i; j--)

if(x[j+1]>x[j])

{k=x[j];x[j]=x[j+1];x[j+1]=k;}

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

for(j=4;j<7-i;j++)

if(x[j+1]>x[j])

{k=x[j];x[j]=x[j+1];x[j+1]=k;}

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

for(j=4;j<7-i;j++)

if(x[j]>x[j+1])

{ k=x[j];x[j]=x[j+1];x[j+1]=k;}

for (i=0;i<8;i++) printf("%d",x); printf("\n");

}

程序运行后的输出结果是:

A)75310246 B)01234567

C)76310462 D)13570246

程序设计基础(C)第七章数组习题

学号:姓名:成绩: 程序设计基础(C)第七章数组习题 一、选择题 1.下列叙述中错误的是()。 A)对于double 类型数组,不可以直接用数组名对数组进行整体输入或输出 B)数组名代表的是数组所占存储区的首地址,其值不可改变 C)在程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息D)可以通过赋初值的方式确定数组元素的个数 2.下列关于字符串的叙述中正确的是()。 A)C 语言中有字符串类型的常量和变量 B)两个字符串中的字符个数相同时才能进行字符串大小的比较 C)可以用关系运算符对字符串的大小进行比较 D)空串一定比空格打头的字符串小 3.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。 A)scanf( ) B)getchar( ) C)gets( ) D)getc( ) 4.若有定义语句:int a[3][6];,按在内存中的存放顺序,a 数组的第10 个元素是()。 A)a[0][4] B)a[1][3] C)a[0][3] D)a[1][4] 5.已有定义:char a[ ]="xyz",b[ ]={'x', 'y', 'z'};,下列叙述中正确的是()。 A)数组a 和b 的长度相同 B)a 数组长度小于b 数组长度 C)a 数组长度大于b 数组长度 D)上述说法都不对 6.下列程序的输出结果是()。 main( ) { char a[7]="a0\0a0\ 0"; int i,j; i=sizeof(a); j=strlen(a); printf("%d %d\n",i,j); } A)2 2 B)7 6 C)7 2 D)6 2 7.下列能正确定义一维数组的选项是()。 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"; 8.有以下程序 #include main() { int a[]={2,3,5,4},i; for(i=0;i<4;i++) switch(i%2) { case 0:

第07章数组和向量

第7章:数组和向量 学习目标 ?理解数组的概念 ?声明、创建、初始化数组。 ?使用对象作为数组元素 ?复制数组 ?多维数组 ?数字包装类及其子类 ?命令行参数 ?Vector向量类 介绍数组 ?数组是用来储存一组同类型数据的数据结构。Java将数组当做对象来处理。 10个 double 型元素构成的数组:double[] myList = new double[10] 数组声明 myList ?数据类型[] 数组名; 例: int[] myList; ?数据类型 数组名[]; 例: int myList[]; 创建数组 ?数组名= new 数据类型[数组大小]; 例:myList = new double[10]; 一步创建和声明数组 ?数据类型[] 数组名 = new 数据类型[数组大小]; double[] myList = new double[10]; ?数据类型 数组名[] = new 数据类型[数组大小]; double myList[] = new double[10]; 初始化数组 ?使用循环: for (int i = 0; i < myList.length; i++) myList[i] = (double)i; ?一步创建、声明、初始化数组: double[] myList = {1.9, 2.9, 3.4, 3.5}; 例7.1:划分成绩等级 ?程序从键盘上读入的学生成绩(int),挑选最好的成绩并且根据下表确定分数等级: –如果分数>=最高分数-10,等级为A –如果分数>=最高分数-20,等级为B –如果分数>=最高分数-30,等级为C –如果分数>=最高分数-40,等级为D 其他情况等级为E ? 源程序:AssignGrade.java 对象的数组 ?声明和创建: Circle[] circleArray = new Circle[10]; ?初始化:

第7章 数组1

第7章数组 一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。) 7.1 若有说明 int a[3][4];则a数组元素的非法引用是 A)a[0][2*1] B)a[1][3] C)a[4-2][0] D)a[0][4] 正确答案:D 7.2 在C语言中,引用数组元素时,其数组下标的数据类型允许是 A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 正确答案:C 7.3 执行下面的程序段后,变量k中的值为 int k=3, s[2]; s[0]=k; k=s[1]*10; A)不定值B)33 C)30 D)10 正确答案:A 7.4 定义如下变量和数组: int k; int a[3][3]={9,8,7,6,5,4,3,2,1}; 则下面语句的输出结果是 for(k=0;k<3;k++)printf("%d",a[k][k]); A)7 5 3 B)9 5 1 C)9 6 3 D)7 4 1 正确答案:B 7.5 下列程序执行后的输出结果是 main() {char arr[2][4]; strcpy(arr[0],"you"); strcpy(arr[1],"me"); arr[0][3]=‘&’; printf("%s\n",arr[0]); } A)you&me B)you C)me D)err 正确答案:A 7.6 设有数组定义: char array[]="China"; 则数组 array所占的空间为 A)4个字节B)5个字节C)6个字节D)7个字节

正确答案:C 7.7 以下不正确的定义语句是 A)double x[5]={2.0,4.0,6.0,8.0,10.0}; B)int y[5]={0,1,3,5,7,9}; C)char c1[]={‘1’,’2’,’3’,’4’,’5’}; D)char c2[]={‘\x10’,’\xa’,’\x8’}; 正确答案:B 7.8 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是 A)2 B)3 C)4 D)无确定值 正确答案:B 7.9 对以下说明语句的正确理解是 int a[10]={6,7,8,9,10}; A)将5个初值依次赋给a[1]至a[5] B)将5个初值依次赋给a[0]至a[4] C)将5个初值依次赋给a[6]至a[10] D)因为数组长度与初值的个数不相同,所以此语句不正确 正确答案:B 7.10 若有说明:int a[][4]={0,0};则下面不正确的叙述是 A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1 C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小 D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值 正确答案:D 7.11 有以下程序 main() {char a[]={‘a’, ‘b’, ‘c’,’d’, ‘e’, ‘f’, ‘g’,’h’,’\0’}; int i,j; i=sizeof(a); j=strlen(a); printf("%d,%d\b",i,j); } 程序运行后的输出结果是 A)9,9 B)8,9 C)1,8 D)9,8 正确答案:D 7.12 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存

第七章字符数组与指针练习题参考答案(2)

第七章字符数组与字符串 【题7.29】下面是对s的初始化,其中不正确的是。 A)char s[5]={“abc”};B)char s[5]={‘a’,‘b’,‘c’}; C)char s[5]=“”;D)char s[5]=“abcdef”; 【题7.30】下面程序段的运行结果是。 char c[5]={‘a’,‘b’,‘\0’,‘c’,‘\0’}; printf(“%s”,c); A)‘a’‘b’ B)ab C)ab c 【题7.31】对两个数组a和b进行如下初始化 char a[]=“ABCDEF”; char b[]={‘A’, ‘B’,‘C’,‘D’,‘E’,‘F’}; 则以下叙述正确的是。 A)a与b数组完全相同B)a与b长度相同 C)a和b中都存放字符串D)a数组比b数组长度长 提示:‘\0’是字符串结束的标志 【题7.32】有两个字符数组a、b,则以下正确的输入格式是。 A)gets(a,b); B)scanf(“%s %s”,a,b); C)scanf(“%s %s”,&a,&b);D)gets(“a”),get(“b”); 【题7.33】有字符数组a[80]和b[80],则正确的输出形式是。 A)puts(a,b); B)printf(“%s %s”,a[],b[]); C)putchar(a,b); D)puts(a),puts(b); 【题7.34】下面程序段的运行结果是。 char a[7]=“abcdef”; char b[4]=“ABC”; strcpy(a,b); printf(“%c”,a[5]); A)空格B)\0 C)e D)f 提示:复制后a[0]=‘A’,a[1]=‘B’,a[2]=‘C’,a[3]=‘\0’, a[4]=‘e’,a[5]=‘f’, a[6]=‘\0’,

第七章 数组

第七章数组 数组是程序设计语言中最基本,最重要的组成部分,本章的习题将从C语言数组的基本概念出发,讨论C 语言数组的特点和使用方法,并通过典型的例题和常见算法研究数组的一般应用,本章的主要内容包括: ●数组基本概念。包括:数组的定义,数组的类型,数组维数,体积,数组元素和数组下标的概念,数组 说明,对数组进行初始化的方法,多维数组中元素的排列次序及初始化等问题。 ●字符型数组。包括:字符型数组与其它数组的区别,字符串及其特点,对字符型数组进行初始化,使用 不同的库函数输入输出字符串,对字符串的简单处理(求串长,串复制,串连接,串比较,串反向等) 等。 ●数组与函数之间的关系。包括:将数组作为组与函数之间进行传递等。 ●常见的使用数组的算法。包括:排序算法,查找算法等。 7.1 选择题 【7.1】错误的说明语句是。 A)static char word[ ]={‘T’,’u’,’r’,’b’,’o’,’\0’}; B)static char word[ ]={“Turbo\0”}; C)static char word[ ]=”Turbo\0”; D)static char word[ ]=‘Turbo\0’; 【7.2】已知:char s[5],c;register int b;则调用函数scanf的正确语句是。 A)scanf(“%s%c”,s,c); B)scanf(“%d%c,&b,&c); C)scanf(“%d%c”,b,&c); D)scanf(“%s%c”,s,&c); 【7.3】要说明一个有10个int元素的数组,应当选择语句 。 A) int a [10]; B) int a[2,5]; C) int a [ ]; D) int *a[10]; 【7.4】合法的数组说明语句是。 A)int a[ ]=”string”; B)int a[5]={0,1,2,3,4,5,}; C)char a=”string”; D)char a[]={0,1,2,3,4,5,}; 【7.5】在下述对C语言字符数组的描述中错误的是。 A)字符数组可以存放字符串 B)字符数组中的字符串可以进行整体输入输出 C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D)字符数组的下标从0开始

vb第七章 数组

第七章数组 一、一维静态数组 7-1-1编写应用程序,输入10个数到数组中,并统计其中正数的个数、正数的和以及负数的个数、负数的和。要求:用InputBox函数输入10个数并显示在文本框中,统计结果显示在标签中。 Private Sub Form_Load() Dim i, zs, zsg, fsg, fs As Integer Dim a(1 To 10) As Integer Text1 = "" For i = 1 To 10 a(i) = InputBox("请输入" & "个数") If a(i) >= 0 Then zs = zs + 1 zsg = zsg + a(i) End If If a(i) < 0 Then fs = fs + 1 fsg = fsg + a(i) End If Text1 = Text1.Text & Space(5) & a(i) Next i Label1 = "正数的和" & zsg Label2 = "正数个数" & zs Label3 = "负数个数" & fs Label4 = "负数的和" & fsg End Sub 7-1-2编写应用程序,随机生成50个[1,100]之间的整数,并求出这50个数中的最大值。要求:随机生成的50个整数显示在文本框中,求出的最大值显示在另一个文本框中。Private Sub Form_Load() Dim a(1 To 50) As Integer Dim i, z As Integer For i = 1 To 50 a(i) = Int(100 * Rnd + 1) Text1 = Text1.Text & Str(a(i)) Next i For i = 1 To 50 a(1) = z If a(i) > z Then z = a(i) If a(i) < z Then z = a(1) Next i Text2.Text = "最大值是" & z

C语言复习题及答案-第七章-数组

C语言复习题及答案-第七章-数组

第七章数组 (8学时) 学习目的与要求: 1 、重点掌握一维数组的定义和引用; 2 、基本掌握二维数组的定义和引用; 3 、重点掌握字符型数组的定义与引用; 4 、能正确使用字符串处理函数; 5 、学会使用数组解决实际问题。 重点: 1 、一维数组的定义与引用; 2 、二维数组的定义与引用; 3 、字符数组的定义与引用; 第1讲 知识归纳: 1、一维数组的定义:类型说明符数组名[ 常量表达式] ; (1) (1)数组名后必须用方括弧[ ] ,用其他括 弧均错误; (2) 方括弧中的常量表达式表示数组的元素个数; (3) 方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量; 2、一维数组的引用: 数组名[ 下标] //下标从0开始,可以是整型常量或整型表达式; (1) 注意:数组元素引用时,不要超出数组范围; 如int a[10] ;

二、填空题 1、构成数组的各个元素必须具有相同的类型。C语言中数组的下标必须是整正数、0或整型表达式。如果一维数组的长度为n ,则数组下标的最小值为0,最大值为n-1。 2、在C语言中,一维数组的定义方式为:类型说说明符数组名[常量表达式]。 3、已知数组b定义为int b[ ]={9,6,3};,则b的各元素的值分别是, 最小下标是,最大下标的。9,6,3 0 ,2 4、在C语言中数组名是一个常量,不能对其进行加、减及赋值操作。 5、已知数组T为一有10个单元的整型数组,正序输出T中的10个元素的值的语句为: for (j=0;j<10;j++) printf(“%d”,T[j]); 下面的语句试图按相反的顺序显示输出T中的10个元素的相反数;请补充完整下面的语句:for(j=9;j>=0;j- -)printf(“%d”,T[j]); 三、综合题 1、下面程序(每行程序前面的数字表示行号),请指出存在错误的行号(3) 1 main() 2 { 3 int a[3]={3*0}; 4 int i; 5 for(i=0;i<3;i++) scanf("%d",&a[i]);

第七章数组上机作业

第七章数组 通过本章实验作业应达目标 1.学习并掌握一维数组与二维数组的定义、使用及初始化方法。 2.熟练掌握字符数组和字符串的使用方法。 3.掌握数组的一种排序算法。 4.学会用数组保存多个相关的同类数据,并对这一组数据进行各类操作。 本章上交作业 程序7_1.c、7_3.c、7_5.c、7_7.c上传至211.64.135.121/casp。 实验一一维数组的定义和简单应用 【实验目的】 学会定义一维数组,掌握一维数组的遍历操作,掌握在一组数组中求最大值、最小值的方法。 【实验内容】 从键盘读入5个成绩到一个数组中,求其中的最大值,最小值和平均成绩。在屏幕上显示输入成绩的提示信息,用键盘输入一个成绩,接着提示输入下一个,直到结束。以7_1.c命名本程序并上交。 程序运行界面 【实验提示】 求最大(小)值通常用“打擂台”的方法。首先设计两个变量,如max和min分别用来存放最大值和最小值,并将数组的首元素赋给这两个变量,这就是到目前为止的最大(小)值,然后利用循环依次比较其他的元素,总是将当前最大(小)值赋给max和min,直至比较到最后,max和min中的数据就是最大值和最小值。 求平均值还要设置一个变量sum,用来累加各元素的值。 实验二一维数组的排序 【实验目的】 熟练掌握一维数组三种基本排序方法:选择法,冒泡法,比较法。 【实验内容】

从键盘上接收10个成绩,存放到一个一维数组score中,分别利用三种排序方法,将数组从小到大排序并在屏幕上显示排序结果。分别以7_2_1.c、7_2_2.c和7_2_3.c命名三个程序。 【实验提示】 所谓排序是指把一组杂乱无章的数据按照大小顺序排列。 将被排序的n个数据存放在一个数组中, 假如按升序排列。我们将数组定义为a[n],数据存放在a[0] 到 a[n-1] 中。 1.比较排序法 将a[0]与a[1]比较,若a[1]a[1],则二者交换,否则不变,a[1]再与a[2]比较,前者大就交换,…,依次两两比较至到a[n-2]与a[n-1]比较,经过一轮以后,最大者“沉”到了最后,小数往上“冒”,所以得名“冒泡法”。第二轮比较数组的前n-1个,即a[0]~a[n-2] 。重复此过程,直到所有的元素比较完毕。 实验三一维数组元素的调换 【实验目的】 进一步加强对数组的应用。 【实验内容】 找出数组中的最小数和次小数,并把最小数和a[0]中的数对调、次小数和a[1]中的数对调,其余数据位置不变。 例如,程序运行时若输入:2 4 6 11 3 9 7 0 5 8,则输出:0 2 6 11 3 9 7 4 5 8。以7_3.c 命名本程序并上交,部分程序如下。 #define N 10 main()

C语言复习题及答案 第七章 数组

第七章数组 (8学时) 学习目的与要求: 1 、重点掌握一维数组的定义和引用; 2 、基本掌握二维数组的定义和引用; 3 、重点掌握字符型数组的定义与引用; 4 、能正确使用字符串处理函数; 5 、学会使用数组解决实际问题。 重点: 1 、一维数组的定义与引用; 2 、二维数组的定义与引用; 3 、字符数组的定义与引用; 第1讲 知识归纳: 1、一维数组的定义:类型说明符数组名[ 常量表达式] ; (1) (1)数组名后必须用方括弧[ ] ,用其他括弧均错误; (2) 方括弧中的常量表达式表示数组的元素个数; (3) 方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量; 2、一维数组的引用: 数组名[ 下标] //下标从0开始,可以是整型常量或整型表达式; (1) 注意:数组元素引用时,不要超出数组范围; 如int a[10] ; //可以引用的数组元素为a[0]……a[9] , a[10] 不是本数组元素; 3、一维数组的初始化: (1) (1)可以在定义数组后,立刻赋值;如int a [3] = { 1,3, 5} ; 但下面这样是错误的: int a[3] ; a = { 1,3, 5} ; (2) (2)可以给数组的部分元素赋值,不赋值的元素,默认值为int 0, char, …?, float 0.0 ; 如int a [3]= {1,3 } ; //a[0] =1 ; a[1]= 3 ; a[2]= 0 ; (3) 在对数组全部元素赋初值时,可以不指定元素个数; (4) 可以在循环控制下,给数组各元素赋值; 如:int a[10] ; for ( i=0 ; i <10 ;i ++ ) a [ i ] = i ; 基础训练(A) 一、选择题 1、在c语言中,引用数组元素时,其数组下标的数据类型允许是()。 A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 2、要说明一个有10个int元素的数组,应当选择语句()。 A) int a[10]; B) int a(10); C) int a[9] D) int a[11] 3、以下对数组的正确定义是:()。 A) float b[5.0] B) float b[5] C) float b(5) D) float b[] 4、对以下说明语句的正确理解是()。 int a[10]={6,7,8,9,10}; A)将5个初值依次赋给a[1]至a[5]

第7章 数组

第7章数组 一、选择题 1.以下对一维数组a的正确说明是:( )。 A) char a(10);B) int a[]; C) int k=5,a[k];D) char a[3]={‘a’,‘b’,‘c’}; 2.以下能对一维数组a进行初始化的语句是: ( )。 A) int a[5]=(0,1,2,3,4,) B) int a(5)={ } C) int a[3]={0,1,2} D) int a{5}={10*1} 3.在C语言中对一维整型数组的正确定义为 ( )。 A) int a(10); B) int n=10,a[n]; C) int n;a[n]; D) #define N 10 int a[N]; 4、已知:int a[10]; 则对a数组元素的正确引用是()。 A) a[10] B) a[3.5] C) a(5) D) a[0] 5. 执行下面的程序段后,变量k中的值为( )。 int k=3, s[2]; s[0]=k; k=s[0]*10; A) 不定值 B) 33 C) 30 D) 10 6.下述对C语言中字符数组的描述错误的是 ( )。 A)字符数组可以存放字符串 B)字符数组中的字符串可以整体输入和输出 C)可在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D)可在对字符数组定义时通过赋值运算符“=”对字符数组整体初始化 7.若有以下数组说明,则数值最大的和最小的元素下标分别是 ( )。 int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; A)1,12 B)0,11 C)1,11 D)0,12 8.下面初始化与此初始化charc[ ]=“I am happy”;等价的是 ( )。 A) char c[ ]={‘I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’,’\0’}; B) char c[ ]={‘I’,’am’,’happy’}; C) char c[ ]={‘I’, ’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’}; D)char c[ ]={‘I’,’am’,’happy’,’\0’}; 9. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是 ( )。 A) 3 B) 6 C) 10 D) 20 10.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( ) A) 2 B) 3 C) 4 D)无确定值 11.以下定义语句中,错误的是 ( ) A) int a[]={1,2}; B) char *a; C) char s[10]=“test”; D) int n=5,a[n]; 12.下面程序段的输出结果是: ( ) int i; int x[3][3]={1,2,3,4,5,6,7,8,9}; for (i=0;i<3;i++) printf("%2d ",x[i][2-i]); A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 9 13.对二维数组的正确定义是() A) int a[ ] [ ]={1,2,3,4,5,6}; B)int a[2] [ ]={1,2,3,4,5,6};

第七章 数组

第七章数组 一、选择题 1.在C语言中引用数组元素时,下面关于数组下标数据类型的说法错误的是_______________。 A) 整型常量B) 整型表达式C) 整型常量或整型表达式D)任何类型的表达式2.以下能正确定义一维数组a的选项是________________。 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"; 3.以下能正确定义一维数组a的选项是________________。 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]; 4.若有定义:int a[10];则正确引用数组a元素的是____________。 A) a[10] B) a[3] C) a(5) D) a[-10] 5.以下不正确的数组定义是____________。 A) double x[5]={2.0, 4.0, 6.0, 8.0, 10.0} ; B) int y[5]={0., 1, 3, 5, 7, 9} ; C) char c1[]={'1', '2', '3', '4', '5'}; D) char c2[]={'\x10', '\xa', '\x8'}; 6.以下叙述中错误的是_______________。 A) 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 B) 数组名代表的是数组所占存储区的首地址,其值不可改变 C) 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息 D) 可以通过赋初值的方式确定数组元素的个数 7.以下正确的二维数组定义是______________。 A) int a[][]={1, 2, 3, 4, 5, 6}; B) int a[2][]={1, 2, 3, 4, 5, 6}; C) int a[][3]={1, 2, 3, 4, 5, 6}; D) int a[2,3]={1, 2, 3, 4, 5, 6}; 8. 以下对二维数组a进行初始化正确的是______________。 A) int a[2][]={{1, 0, 1}, {5, 2, 3}}; B) int a[][3]={{1, 2, 3}, {4, 5, 6}}; C) int a[2][4]={{1, 2, 3}, {4, 5}, {6}}; D) int a[][3]={{1, 0, 1}, {}, {1, 1}}; 9. 以下不能对二维数组a进行初始化的是___________。 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}; 10. 若有定义:int a[3][4];则正确引用数组a元素的是___________。 A) a[2][4] B) a[3][3] C) a[0][0] D) a[3][4] 11. 若定义了int b[][3]={ 1, 2, 3, 4, 5, 6, 7};则b数组第一维的长度是___________。 A) 2 B) 3 C) 4 D) 无确定值 12. 若有定义:int a[3][4]={0};则以下叙述中正确的是___________。 A) 只有元素a[0][0]可得到初值0 B) 此说明语句不正确 C) 数组a中各元素都可得到初值,但其值不一定为0 D) 数组a中每个元素均可得到初值0 13.若有定义:int a[][4]={0, 0};以下叙述中错误的是_____________。 A)数组a的每个元素都可得到初值0B)二维数组a的第一维大小为1 C)因为初值个数除以a中第二维大小的值的商为0,故数组a的行数为1 D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0

C语言复习题及答案 第七章 数组教程文件

C语言复习题及答案第七章数组

第七章数组 (8学时) 学习目的与要求: 1 、重点掌握一维数组的定义和引用; 2 、基本掌握二维数组的定义和引用; 3 、重点掌握字符型数组的定义与引用; 4 、能正确使用字符串处理函数; 5 、学会使用数组解决实际问题。 重点: 1 、一维数组的定义与引用; 2 、二维数组的定义与引用; 3 、字符数组的定义与引用; 第1讲 知识归纳: 1、一维数组的定义:类型说明符数组名[ 常量表达式 ] ; (1) (1)数组名后必须用方括弧 [ ] ,用其他括弧均错误; (2) 方括弧中的常量表达式表示数组的元素个数; (3) 方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量; 2、一维数组的引用: 数组名[ 下标 ] //下标从0开始,可以是整型常量或整型表达式; (1) 注意:数组元素引用时,不要超出数组范围; 如 int a[10] ; //可以引用的数组元素为a[0]……a[9] , a[10] 不是本数组元素; 3、一维数组的初始化: (1) (1)可以在定义数组后,立刻赋值;如 int a [3] = { 1,3, 5} ; 但下面这样是错误的: int a[3] ; a = { 1,3, 5} ; (2) (2)可以给数组的部分元素赋值,不赋值的元素,默认值为int 0, char, ‘’, float 0.0 ; 如 int a [3]= {1,3 } ; //a[0] =1 ; a[1]= 3 ; a[2]= 0 ; (3) 在对数组全部元素赋初值时,可以不指定元素个数; (4) 可以在循环控制下,给数组各元素赋值; 如:int a[10] ; for ( i=0 ; i <10 ;i ++ ) a [ i ] = i ; 基础训练(A) 一、选择题 1、在c语言中,引用数组元素时,其数组下标的数据类型允许是()。

第七章 数组

第七章数组1、以下能正确定义二维数组的是 A)int a[][3]; B)int a[][3]=2{2*3}; C)int a[][3]={}; D)int a[2][3]={{1},{2},{3,4}}; 2、有以下程序 int f(int a) { return a%2; } main() { int s[8]={1,3,5,2,4,6},i,d=0; for (i=0;f(s);i++) d+=s; printf("%d\n",d); } 程序运行后的输出结果是 A)9 B)11 C)19 D)21 3、若有以下程序 main() { Int a[4][4]= {{1,2,-3,-4},{0,-12,-13,14}, {-21,23,0,-24},{-31,32,-33,0}}; int i, j, s=0; for (i=0; i<4; i++) { for (j=0; j<4; j++) { if (a[i][j] < 0) continue; if (a[i][j] == 0) break; s += a[i][j]; } } printf("%d\n", s); } 执行后输出结果是【】。 4、有以下程序 main() { char s[]="\n123\\"; printf("%d,%d\n ", strlen(s), sizeof(s)); } 执行后输出结果是 A)赋初值的字符串有错 B)6,7 C)5,6 D)6,6 5、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10 void arrin(int x[N]) { int i=0; while(i

C语言复习题及标准答案-第七章-数组

第七章数组(8学时) 学习目的与要求: 1、重点掌握一维数组的定义和引用; 2 、基本掌握二维数组的定义和引用; 3 、重点掌握字符型数组的定义与引用; 4、能正确使用字符串处理函数; 5 、学会使用数组解决实际问题。 重点: 1 、一维数组的定义与引用; 2 、二维数组的定义与引用; 3 、字符数组的定义与引用; 第1讲 知识归纳: 1、一维数组的定义:类型说明符数组名[ 常量表达式]; (1) (1)数组名后必须用方括弧[],用其他括弧均错误; (2) 方括弧中的常量表达式表示数组的元素个数; (3)方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量;2、一维数组的引用: 数组名[下标]//下标从0开始,可以是整型常量或整型表达式; (1) 注意:数组元素引用时,不要超出数组范围; 如int a[10]; //可以引用的数组元素为a[0]……a[9] , a[10] 不是本数组元素; 3、一维数组的初始化: (1) (1)可以在定义数组后,立刻赋值; 如inta [3]={ 1,3, 5}; 但下面这样是错误的: inta[3] ; a ={1,3, 5} ; (2) (2)可以给数组的部分元素赋值,不赋值的元素,默认值为int 0, char,‘’,float 0.0; 如inta [3]={1,3 } ; //a[0] =1; a[1]= 3 ; a[2]=0 ; (3) 在对数组全部元素赋初值时,可以不指定元素个数; (4) 可以在循环控制下,给数组各元素赋值; ??如:int a[10] ; for ( i=0 ; i <10;i ++ ) ???a [ i ]=i ; 基础训练(A) 一、选择题 1、在c语言中,引用数组元素时,其数组下标的数据类型允许是()。 A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 2、要说明一个有10个int元素的数组,应当选择语句()。 A)int a[10];B) inta(10);C)inta[9]D)inta[11] 3、以下对数组的正确定义是:( )。 A) float b[5.0]B) float b[5] C)float b(5)D) floatb[] 4、对以下说明语句的正确理解是()。 int a[10]={6,7,8,9,10};

第7章 数组

第7章数组 一、单选题 1.在C语言中,一维数组的定义方式为:类型说明符数组名()。 A.[常量表达式] B.[整型表达式] C.[整型常量]或[整型表达式] D.[整型常量] ( 知识点:一维数组的定义;难度系数:1;答案:A ) 2.以下关于数组的描述中,正确的是:()。 A.在程序中可以对数值数组中的数据进行整体使用 B.数组与基本类型变量一样,在使用前必须先定义 C.在同一个数组中,不同的元素可能会是不同的数据类型 D.在定义数组时,数组大小可以是变量或变量表达式 ( 知识点:一维数组的定义;难度系数:1;答案:B ) 3.以下关于数组的描述中,错误的是:()。 A.对于同一个数组,其所有元素的数据类型都是相同的 B.数组的类型实际上是指数组元素的取值类型 C.有定义:int a[3]; 则定义了a[1]、a[2]、a[3]三个数组元素 D.int a[10]; 说明整型数组a,有10个元素 ( 知识点:一维数组的定义;难度系数:1;答案:C ) 4.假设int型变量占两个字节的存储单元,若有定义: int x[10]={0,2,4}; 则数组x在内存中所占字节数为:()。 A.3 B.6 C.10 D.20 ( 知识点:一维数组的定义;难度系数:1;答案:D ) 5.以下关于数组的描述中,正确的是:()。 A.数组元素可以像普通变量一样使用 B.C语言规定可以一次引用整个数组,而不需要逐个引用数组元素 C.引用数组元素时,数组的下标可以是任何类型的表达式 D.输出有10个元素的数组,可以只用一个printf语句实现输出整个数组( 知识点:一维数组元素的引用;难度系数:1;答案:A ) 6.以下关于数组的描述中,错误的是:()。 A.如果定义数组的长度为n,那么引用数组元素的下标最多到n-1 B.C语言规定,数组下标的最小值是1,最大值为数组的大小减1 C.数组元素可以像普通变量一样使用 D.引用数组元素一定要使用下标运算符[],不能使用圆括号() ( 知识点:一维数组元素的引用;难度系数:1;答案:B ) 7.若有说明:int a[10];,则对a数组元素的正确引用是:()。 A.a[10] B.a[3.5] C.a(5) D.a[10-10] ( 知识点:一维数组元素的引用;难度系数:1;答案:D ) 8.在C语言中,引用数组元素时,其数组下标的数据类型允许是:()。 A.字符常量B.浮点型常量 C.整型常量或整型表达式D.任何类型的表达式 ( 知识点:一维数组元素的引用;难度系数:1;答案:C ) 9.以下关于数组初始化赋值的描述中,错误的是:()。 A.可以给元素逐个赋值,也可以给数组整体赋值 B.数组初始化赋值是指在数组定义时给数组元素赋予初值 C.在给数组元素赋值时,可以只给部分元素赋初值

第七章数组习题答案

第七章习题答案 一.单项选择题 1.B 2.D 3.A 4.B 5.A 6.B 7.D 8.C 9.C 10.B 11.C 12.C 13.A 14.D 15.C 16.C 二.填充题 1.类型0 越界整型表达式 2.连续数组名地址 3.0 6 4. 2 0 0 5....d? 0 6.[3][10] a[1] 7.windows 95 8.windows 95 9. 5 10.7 11.#include #include 。 12.#include for(i=0;i<20;i++) scanf(“%f”,&a[i]);pjz/=20; printf(“%f,%f”,pjz,t); 13.&a[i] i%10==0 a[i-1] 14.k=p 15.&x a[i] i- - i!=0 16.k i

三.程序分析题 1.该程序从键盘输入一行字符放在字符数组中,然后输出。 2.该程序从输入的10个字符串中找出最长的那个串,并显示最长的那个串及其长度。3.该程序的功能是从键盘输入10个字符串,从小到大排序并输出。 4.运行结果,输出3x3矩阵的主对角线和辅对角线的元素之和。18 10 5.4 25 27 16 6.输出结果: gabcdef fgabcde efgabcd 7.输出结果:******* ***** *** * 8. 1 0 2 2 5 7 13 20 9. 12 6,1,8,7,4,5,0,3,2 。 10.把矩阵a转置放到矩阵b 11. 运行结果输出:***** ***** ***** ***** ***** 12.运行结果把3x3矩阵a和b对应元素相加到矩阵c,输出矩阵c。 13.程序边定义边赋值的方式定义了一个字符数组str。它包括22个字符(注意′\1′和′\11′分别代表一个特定字符)及末尾由系统自动加入的串结束标志′\0′,。程序利用for循环逐个读出str数组中的字符赋给字符变量c,再由内嵌的switch语句根据c的值来控制具体输出的字符。直到读到字符串结束标志′\0′为止。 (1)循环是从k=2开始,首先读取的是str中的第三个字符S。循环体内除switch语句外,还有一条语句:putchar(? *?); ( 2 )continue语句要跳过循环体内尚未执行的语句,结束本次循环;break语句则仅仅跳出switch语句,仍要执行循环体中的语句。 (3)当从str中读取的字符与case中所有常量表达式的值都不相等时,执行default后的语句,原样输出字符,并跳过putchar(? *?)结束本次for循环,(如第三个S,第一个W,I,T,C,H,第三个W,M和P均属此)。 (4)当读到字符L时,与case中的‘L’相等,执行continue,结束本次for循环。没有输出。 (5)当读到字符1时,与case中的‘1’相等,执行break语句,跳出switch,输出一个字符*。 (6)当读到字符?\1?(第一次出现的)时,代表一个8进制的1,与case中的1相等,执行while循环。在while循环中,首先执行c=str[++k],取下一个字符?\11?,它既不等于?\1?又不等于?\0?,while循环继续执行,取出?W?。同理,再次执行while循环,取出字符?\1?,从而结束while循环,滑向下一个case,输出字符?#?,顺序执行到continue,结束

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