文档库 最新最全的文档下载
当前位置:文档库 › 第7章 数组1

第7章 数组1

第7章 数组1
第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在内存

中所占字节数是

A)3 B)6 C)10 D)20

正确答案:D

7.13 以下能对二维数组c进行正确的初始化的语句是

A)int c[3][]={{3},{3},{4}};

B)int c[][3]={{3},{3},{4}};

C)int c[3][2]={{3},{3},{4},{5}};

D)int c[][3]={{3},{},{3}};

正确答案:B

7.14 在C语言中,一维数组的定义方法为

类型说明符数组名

A)[常量表达式] B)[整型常量]

C)[整型变量] D)[整型常量]或[整型表达式]

正确答案:A

7.15 若二维数组a有m列,则计算任一元素a[i][j]在数组中相对位置的公式为 (假设a[0][0]位于数组的第一个位置上)

A)i*m+j B)j*m+I C)i*m+j-1 D)i*m+j+1

正确答案:A

7.16 下面程序输出的结果是

main()

{int i;

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

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

printf("%d ",a[2-i][i]);

}

A)1 5 9 B)7 5 3 C)3 5 7 D)5 9 1

正确答案:B

7.17 以下不能对二维数组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};

正确答案:C

7.18 阅读下面程序,则程序段的功能是

#include "stdio.h"

main()

{int c[]={23,1,56,234,7,0,34},i,j,t;

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

{t=c[i];j=i-1;

while(j>=0 && t>c[j])

{c[j+1]=c[j];j--;}

c[j+1]=t;

}

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

printf("%d ",c[i]);

putchar('\n');

}

A)对数组元素的升序排列B)对数组元素的降序排列C)对数组元素的倒序排列D)对数组元素的随机排列正确答案:B

7.19 下列选项中错误的说明语句是

A)char a[]={'t','o','y','o','u','\0'};

B)char a[]={"toyou\0"};

C)char a[]="toyou\0";

D)char a[]=‘toyou\0’;

正确答案:D

7.20 下述对C语言字符数组的描述中错误的是

A)字符数组的下标从0开始

B)字符数组中的字符串可以进行整体输入/输出

C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D)字符数组可以存放字符串

正确答案:C

7.21 阅读下列程序,则在执行后,程序的运行结果为

#include "stdio.h"

#include "string.h"

main()

{char a[30]="nice to meet you!";

strcpy(a+strlen(a)/2,"you");

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

}

A)nice to meet you you B)nice to

C)meet you you D)nice to you

正确答案:D

7.22 现有如下程序段

#include "stdio.h"

main()

{int k[30]={12,324,45,6,768,98,21,34,453,456};

int count=0,i=0;

while(k[i])

{if(k[i]%2==0||k[i]%5==0)

count++;

i++;}

printf("%d,%d\n",count,i);

}

则程序段的输出结果为

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

正确答案:D

7.23 有如下定义语句:int aa[][3]={12,23,34,4,5,6,78,89,45};,则45在数组aa中的行列坐标各为

A)3,2 B)3,1 C)2,2 D)2,1

正确答案:C

7.24 现在有如下程序

#include "stdio.h"

main()

{char s[80];

int i,j;

gets(s);

for(i=j=0;s[i]!=‘\0’;i++)

if(s[i]!=‘H’______)

s[j]=‘\0’;

puts(s);

}

这个程序段的功能是删除输入的字符串中字符’H’,则空线上应当添入的是

A)s[j++]=s[i];j++; B)s[j]=s[i++];j++;

C)s[j++]=s[i]; D)s[j]=s[i];

正确答案:C

7.25 以下二维数组c的定义形式是

A)int c[3][] B)float c[3,4]

C)double c[3][4] D)float c(3)(4)

正确答案:C

7.26 已知:int c[3][4];则对数组元素引用正确的是

A)c[1][4] B)c[1.5][0] C)c[1+0][0] D)以上表达都错误

正确答案:C

7.27 若有以下语句,则正确的描述是

char a[]="toyou";

char b[]={‘t’,’o’,’y’,’o’,’u’};

A)a数组和b数组的长度相同B)a数组长度小于b数组长度

C)a数组长度大于b数组长度D)a数组等价于b数组

正确答案:C

7.28 已知:char a[15],b[15]={"I love china"};则在程序中能将字符串I love china 赋给数组a的正确语句是

A)a="I love china"; B)strcpy(b,a);

C)a=b; D)strcpy(a,b);

正确答案:D

7.29 已知:char a[20]= "abc",b[20]= "defghi";则执行下列语句后的输出结果为

printf("%d",strlen(strcpy(a,b)));

A)11 B)6 C)5 D)以上答案都不正确

正确答案:B

7.30 阅读如下程序段,则程序在先后输入love和china后,输出结果是

#include "stdio.h"

#include "string.h"

main()

{char a[30],b[30];

int k;

gets(a);

gets(b);

k=strcmp(a,b);

if(k>0) puts(a);

else if(k<0) puts(b);

}

A)love B)china C)lovechina D)没有输出结果

正确答案:A

二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)

7.31 下面程序的功能是输出数组s中最大元素的下标,请填空。

main()

{int k, p,s[]={1, -9, 7, 2, -10, 3};

for(p =0, k =p; p< 6; p++)

if(s[p]>s[k])【1】

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

}

正确答案:k=p;

7.32 以下程序可把输入的十进制数以十六进制数的形式输出,请填空。

main()

{char b[17]={"0123456789ABCDEF"};

int c[64],d,i=0,base=16;

long n;

printf("Enter a number:\n");scanf("%ld",&n);

do

{c[i]=【2】;

i++;

n=n/base;

}while(n!=0);

printf("Transmite new base:\n");

for(--i;i>=0;--i)

{d=c[i];

printf("%c",b【3】);

}

printf("\n");

}

正确答案: n%base [d]

7.33 以下程序的功能是:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。

例如,若一维数组中的数据是:

2 2 2

3

4 4

5

6 6 6 6

7 7

8

9 9 10 10 10

删除后,数组中的内容应该是:

2 3 4 5 6 7 8 9 10。

请填空。

#include "stdio.h"

#define N 80

int fun(int a[], int n)

{int i,j=1;

for(i=1;i

if(a[j-1]【4】a[i])

a[j++]=a[i];

【5】 ;

}

main()

{int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10}, i, n=19; printf("The original data :\n");

for(i=0; i

n=fun(a,n);

printf("\nThe data after deleted :\n");

for(i=0; i

printf("\n");

}

正确答案: != return j

7.34 下列程序的输出的结果是【6】,【7】。

main()

{int i,j row,colum,m;

static int array[3][3]={{100,200,300},{28,72,-30},{-850,2,6}}; m=array[0][0];

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

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

if(array[i][j]

{m=array[i][j];

colum=j;

row=i;

}

printf("%d,%d,%d\n",m,row,colum);

}

正确答案:-850,~2,0

7.35 下面程序是求出数组arr的两条对角线上元素之和,请填空。#include "stdio.h"

main()

{int arr[3][3]={2,3,4,8,3,2,7,9,8},a=0,b=0,i,j;

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

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

if( 【8】)

a=a+arr[i][j];

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

for( 【9】 ;j>=0;j--)

if( 【10】)

b=b+ arr[i][j];

printf("%d,%d\n",a,b);

}

正确答案:i==j j=2 i+j==2

程序设计基础(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:

第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在内存

第七章 数组

第七章数组 数组是程序设计语言中最基本,最重要的组成部分,本章的习题将从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()

第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};

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]

第七章 数组

第七章数组 一、选择题 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};

第七章数组习题答案

第七章习题答案 一.单项选择题 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,结束

第七章 数组

第七章数组 一、选择题: 1. C 语言的注释定界符是: ( ) A) { } B) [ ] C) * * D) /* */ 2.在定义一个一维数组时,不能用来表示数组长度的是:() A) 常量 B)符号常量C)常量表达式D)已被赋值的变量 3. 若定义数组并初始化int a[10]={1,2,3,4},以下语句哪一个成立?() A. 若引用a[10],编译时报错 B. 若引用a[10],连接时报错 C. 若引用a[10],运行时出错 D. 若引用a[10],系统不报错 4.对以下说明语句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)因为数组长度与初值的个数不相同, 所以此语句不正确 5.以下一维数组a的正确定义是:() A. int a(10); B. int n=10,a[n]; C. int n; D. #define N 10 scanf(“%d”,&n); int a[N]; int a[n]; 6.以下二维数组a 的正确说明是:( ) A) int a[1,1]; B) float a(3,4); C) double a[1][4]; D) float a(3)(4); 7.设已定义:int x[2][4]={1,2,3,4,5,6,7,8};则元素x[1][1]的正确初值是() A. 6 B. 5 C. 7 D. 1 8.若有说明:int a[3][4]; 则对a数组元素的非法引用是: () (A)a[0][2*1] (B)a[1][3] (C)a[4-2][0] (D)a[0][4] 9.以下定义语句中,错误的是( ) A. int a[ ]={1,2} B. int a[ ][3]={1,2,3,4,5}; C. char s[10]=“test”; D. int n=5,a[n]; 10.若有说明:int a[3][4]; 则对a数组元素的正确引用是:()(A)a[2][4] (B)a[1, 3] (C)a[1+1][0] (D)a(2)(1) 11.以下对二维数组a 的正确说明是:( ) A. int a[3][] B. float a(3,4) C. double a[1][4] D. float a(3)(4) 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. 若二维数组a有m列,则在a[i][j]前面的元素个数为: () A. j*m+i B. i*m+j C. i*m+j-1 D. i*m+j+1

第七章数组练习题

第七章数组练习题 一、单项选择题: 1、以下关于数组的描述正确的是(C )。 A、数组的大小是固定的,但可以有不 同类型的数组元素。 B、数组的大小是可变的,但所有数组 元素的类型必须相同。 C、数组的大小是固定的,但所有数组 元素的类型必须相同。 D、数组的大小是可变的,但可以有不 同类型的数组元素。 2、以下一维数组A的正确定义是(D )。 A、int a(10); B、int n=10,a[n]; C、int n; scanf(“%d”,&n); int a[n]; D、#define SIZE 10 int a[SIZE]; 3、在定义int a[10];之后,对a的引用正确的是( D )。 A、a[10] B、a[6,3] C、a(6) D、a[10-10] 4、对一维数组a进行正确初始化的是(C )。 A、int a[10]=(0,0,0,0); B、int a[10]={}; C、int a[]={0}; D、int a[10]={10*2); 5、对二维数组a进行正确初始化的是(B )。 A、int a[2][3]={{1,2},{3,4},{5,6}}; B、i nt a[ ][3]={1,2,3,4,5,6}; C、i nt a[2][ ]={1,2,3,4,5,6}; D、int a[2][ ]={{1,2},{3,4}}; 6、对二维数组a进行不正确初始化的是(D )。 A、int a[ ][3]={3,2,1,1,2,3}; B、i nt a[ ][3]={{3,2,1},{1,2,3}}; C、i nt a[2][3]={{3,2,1},{1,2,3}}; D、int a[ ][ ]={{3,2,1},{1,2,3}}; 7、对字符数组word不正确初始化的是(A )。 A、char wor d[]=?Turbo\0?; B、char word[]={?T?,?u?,?r?,?b?,?o?,?\0?}; C、char word[]={“Turbo\0”}; D、char word[]=”Turbo\0”;8、在定义int a[5][4];之后,对a的引用正确的是( C )。 A、a[2][4] B、a[5][0] C、a[0][0] D、a[0,0] 9、在定义int a[2][3];之后,对a的引用正确的是( C )。 A、a(1,2) B、a[1,3] C、a[1>2][!1] D、a[2][0] 10、以下正确的定义语句是(a\D )。 A、int A[…a?]; B、int A[3,4]; C、int A[ ][3]; D、int A[10]; 11、给字符数组str定义和赋值正确的是(B)。 A、char str[10]; str={“China”}; B、c har str[ ]={“China”}; C、c har str[10]; strcpy(str,”abcdefghijklmn”); D、char str[10]={“abcdefghijklmn”}; 12、在执行int a[ ][3]={1,2,3,4,5,6};语句后,a[1][0]的值是( A )。 A、4 B、1 C、2 D、5 13、在执行int a[ ][3]={{1,2},{3,4}};语句后,a[1][2]的值是( C )。 A、3 B、4 C、0 D、2 14、在执行char str[10]=”China\0”;语句后,strlen(str)的结果是( A )。 A、5 B、6 C、7 D、9 15、在执行char str[10]=”Ch\nina”;语句后,strlen(str)的结果是( B )。 A、5 B、6 C、7 D、9 16、当接受用户输入的含空格的字符串时,应使用( B )函数。 A、scanf() B、gets() C、getchar() D、getc() 18、在定义int a[5][6];后,第10个元素是( C )。 A、a[2][5] B、a[2][4] C、a[1][3] D、a[1][5] 19、在定义int a[3][6];后,第8个元素是 (C )。 A、a[2][4] B、a[3][0] C、a[1][1] D、a[4][2] 21、己定义char c[6]=”WuHan”,char *s=c 和int i,则以下输出语句中,错误的是( B )。 A、printf(“%s\n”,s); B、printf(“%s\n”,*s); C、for(i=0;i<6;i++) printf(“%c”,c[i]);

相关文档