数组c++_习题答案解析

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

习题 4

一、单项选择题

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

【解析】数组下标从0开始,a[0][4]的列下标越界。

2. 在C++语言中,引用数组元素时,其数组下标的数据类型允许是【】

A. 整型常量

B. 整型表达式

C. 整型常量或整型表达式

D. 任何类型的表达式

【答案】C

3. 以下不正确的定义语句是【】

A. double x[5]={,,,,};

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

【解析】初始值的个数大于数组的大小,系统会出现编译错误。

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. 因为数组长度与初值的个数不相同,所以此语句不正确

【答案】 B

5. 若有说明:int a[ ][4]={0,0};则下面不正确的叙述是【】

A. 数组a的每个元素都可得到初值0

B. 二维数组a的第一维大小为1

C. 当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小

D. 只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值

【答案】D

【解析】二维数组初始化时,行大小可以省略,被省略的大小根据初值的个数系统来确定,本题中,有2个初值说明是1行4列,所以第一维为1。元素a[0][0]和a[0][1]赋初值为0 ,其余元素初值系统默认为0。

6. 以下能对二维数组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

【解析】二维数组初始化时,行大小可以省略,列大小不可以省略,所以A 答案错误。C 答案中初始值行数多于数组大小中的行大小,也是错误的。另外初始化时,初值之间不能有空位置,故D 错误。

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

8. 阅读下面程序,则程序段的功能是【 】 #include

using namespace std; int 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++) cout<

【解析】每层外层for 循环结束会增加对一个元素的排序,确定c[0] ,c[1]的大小顺序,如图4-1所示。

c[1]

c[2]

c[3]

c[4]

c[5]

c[0]

c[6]

图4-1 第一次排序

第二次将c[2]分别与前2两个元素比较,插入最前面,确定c[0] ,c[1], c[2] 的大小顺序,如图4-2所示。

c[1]c[2]c[3]c[4]c[5]c[0]c[6]

图4-2 第二次排序

以此类推,外层6次循环后,将无序的数组实现大到小的降序排列。 9. 下列选项中错误的说明语句是【 】 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

10. 下述对C++语言字符数组的描述中错误的是【 】 A. 字符数组的下标从0开始 B. 字符数组中的字符串可以进行整体输入/输出 C. 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D. 字符数组可以存放字符串 【答案】 C

11. 以下二维数组c 的定义形式正确的是【 】 A. int c[3][] B. float c[3,4] C. double c[3][4] D. float c(3)(4) 【答案】 C

12. 已知:int c[3][4];则对数组元素引用正确的是【 】 A. c[1][4] B. c[][0] C. c[1+0][0] D. 以上表达都错误 【答案】 C

13. 若有以下语句,则正确的描述是【 】 char a[]="toyou"; char b[]={′t′,′o′,′y′,′o′,′u′}; A. a 数组和b 数组的长度相同 B. a 数组长度小于b 数组长度 C. a 数组长度大于b 数组长度

相关文档
最新文档