数组c 习题答案解析

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

4

习题

一、单项选择题】a数组元素的非法引用是【 1. 若有说明int a[3][4];则 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′};

x8′}; D. char c2[]={′\x10′,′\xa′,′\【答案】B 【解析】初始值的个数大于数组的大小,系统会出现编译错误。 4. 对以下说明语句的正确理解是【】int a[10]={6,7,8,9,10};

a[5] a[1]至A. 将5个初值依次赋给

a[4] a[0]至将5个初值依次赋给B.

a[10] 至5个初值依次赋给a[6] C. 将 D. 因为数组长度与初值的个数不相同,所以此语句不正确B

【答案】

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

0 的每个元素都可得到初值A. 数组a1 B. 二维数组a的第一维大小为 C. 当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小a[0][1]可得到初值,其余元素均得不到确定的初值D. 只有元素a[0][0]和

D【答案】

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

};

};

};

};B【答案】

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

A. int a[2][3]={0};

};

6}};

D. int a[][3]={1,2,3,4,5,6};C

【答案】

】8. 阅读下面程序,则程序段的功能是【#includeusing 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<

putchar('\n');return 0;} A. 对数组元素的升序排列

对数组元素的降序排列B.

对数组元素的倒序排列C.

D. 对数组元素的随机排列

B 【答案】的大小顺序,如图c[0] ,c[1]【解析】每层外层for循环结束会增加对一个元素的排序,

确定4-1所示。c[1]c[2]c[3]c[4]c[5]c[6]c[0]23156 234 7 0 341<2356 234 7 0 34123

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

前面,确定所示。4-2图

c[6]c[1]c[2]c[3]c[4]c[5]c[0]56 234 7

0 342311<56234 7 0 342311

23<56234 7 0 3423231

t=56234 7 0 3423561

图4-2 第二次排序

以此类推,外层6次循环后,将无序的数组实现大到小的降序排列。】9. 下列选项中错误

的说明语句是【

\0′}; A. char a[]={′t′,′o′,′y′,′o′,′u′,′B. char a[]={oyou\0};

C. char a[]=oyou\0;

\0′; D. char a[]=′toyou 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[]=oyou;

char b[]={′t′,′o′,′y′,′o′,′u′}; bA. a数组和数组的长度相同数组长度数组长度

小于 B. ab 数组长度b数组长度大于C. a

D. a数组等价于b数组

【答案】C

【解析】a数组中存放的是字符串,数组大小为6个字节空间,分别存放′t′,′o′,′y′,′o′,′u′和′\0′,b数组的长度为5个字节空间,只存放′t′,′o′,′y′,′o′,′u′,5个字符。

二、填空题

1.若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是________。

【答案】 3

2. 设有数组定义:char array[]=China; 则数组array所占的空间为________个字节。

【答案】 6

3. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是________。

【答案】20

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

#include

using namespace std;

int main()

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

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

if(s[p]>s[k]) ________

cout<< k<

return 0;}

【答案】k=p;

5. 下面程序是删除输入的字符串中字符′H′,请填空。

#include

using namespace std;

int 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);

相关文档
最新文档