当前位置:文档之家› 第4章_数组c++_习题答案解析

第4章_数组c++_习题答案解析

第4章_数组c++_习题答案解析
第4章_数组c++_习题答案解析

习题 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]={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

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

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<

return 0; }

A. 对数组元素的升序排列

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

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

D. 对数组元素的随机排列 【答案】 B

【解析】每层外层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[1.5][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 数组长度

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

return 0;}

【答案】s[j++] =s[i];

【解析】此处相当于补充了2条语句,等价于s[j] =s[i]; j++;。

6. 已知:char a[20]= "abc",b[20]= "defghi";则执行cout<

为________。

【答案】 6

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

________。

【答案】2和2

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

位于数组的第一个位置上)________。

【答案】i*m+j+1

9. 定义如下变量和数组:

int k;

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

则语句for(k=0;k<3;k++) cout<

【答案】951

【解析】定义的二维数组可以描述一个方阵:

9 8 7

6 5 4

3 2 1

语句功能是实现该方阵主对角线上元素的输出。

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

【答案】strcpy(a,b);

三、读程序写结果

1. 程序代码如下

#include

using namespace std;

int main()

{

char arr[2][4];

strcpy(arr[0],"you");

strcpy(arr[1],"me");

arr[0][3]='&';

cout<

return 0;

}

【答案】you&me

2. 程序代码如下:

#include

using namespace std;

int main()

{

char a[]={'a', 'b', 'c', 'd', 'e', 'f', 'g','h','\0'};

int i,j;

i=sizeof(a);

j=strlen(a);

cout<< i <<","<

return 0;

}

【答案】9,8

3. 程序代码如下:

#include

using namespace std;

int main()

{

int i;

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

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

cout<

return 0;

}

【答案】753

【解析】程序功能是实现一个方阵次对角线上元素的输出。

4. 程序代码如下:

#include

using namespace std;

int main()

{

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

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

cout<

return 0;

}

【答案】nice to you

5. 程序代码如下:

#include

using namespace std;

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

}

cout<< count <<","<

return 0;

}

【答案】8,10

6. 程序代码如下:

#include

using namespace std;

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

return 0;

}

输入love↙

China↙

输出结果是?

【答案】love

【解析】strcmp(a,b)函数功能是比较a和b字符串的大小,比较是逐个字符的比较,比较方法是ASCII码值做减法,k='l'-'C'>,所以结果输出字符串a。

四、编程题

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

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

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。

思路:fun函数的2个形式参数,分别接收数组名,即数组的首地址,和数组中存放的原始数据的个数,fun函数对原始数组按题目处理后,在主函数中输出的数组a就是处理后的数组,这里函数之间参数传递属于地址传递。

程序代码如下:

#include

using namespace std;

const N=80;

int fun(int a[], int n)

{ int i,j=1;

for(i=1;i

if(a[j-1]!=a[i]) a[j++]=a[i];

return j;

}

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

cout<<"原始数组中的数据是:"<

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

cout<

n=fun(a,n);

cout<<"\n删除后,数组中的数据是:"<

for(i=0;i

cout<

cout<

return 0;

}

2.编程实现功能:从键盘上输入若干个学生的成绩,当输入负数时表示输入结束,计算学生的平均成绩,并输出低于平均分的学生成绩。

思路:使用循环输入学生的成绩,注意循环条件有2个,分别是输入成绩个数大于数组的大小和输入成绩为负数时结束,同时记录输入成绩的个数n。结束输入后,计算平均值和筛选小于60分的成绩并输出。

程序代码如下:

#include

using namespace std;

int main( )

{ const N=800;

float x[N],sum=0,ave,a;

int n=0,i;

cout<<"输入学生成绩:"<

cin>>a;

while (a>=0 && n

{ sum+=a;

x[n]=a;

n++;

cin>>a;

}

cout<<"输入的"<

for (i=0; i

cout<

cout<

ave=sum/n;

cout<<"平均分:"<

cout<<"低于平均分的成绩:";

for (i=0; i

if (x[i]

cout<

return 0;

}

3.编程实现功能:对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码值之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。

思路:题目要求实现的功能,相当于字符串处理函数strcmp的功能,即:

str1str2str1str2str1str2

输出0

输出1

输出-1

图4-3 字符串比较示意图

使用循环逐个比较两个字符串的每个字符,当字符出现不相等时,跳出循求不相同的两个字符的ASCII 码值的差输出。

程序代码如下: #include using namespace std; #include "string.h"

int main( )

{ char str1[80], str2[80],c; int i=0,s; gets (str1); gets (str2);

while ((str1[i]==str2[i]) && (str1[i]!= '\0')) i++;

s= str1[i]-str2[i]; cout<

}

4.编程实现功能:求二维数组周边元素之和。

思路:二维数组中的数据可以看成一个二维矩阵,例如下面的二维数组,输出周边元素之和为:sum=48,用两个并列的for 循环实现求累加和。 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 程序代码如下: #include using namespace std; #include "string.h" const M=4; const N=4; int main( )

{ int a[M][N],i,j,sum=0; for (i=0; i

cin>>a[i][j];

for (i=0; i

{ sum+=a[0][i];

sum+= a[M-1][i];

}

for (i=1; i

但不包括a[0][0], a[3][0], a[0][3], a[3][3]四个角上的元素*/ { sum+=a[i][0];

sum+= a[i][N-1];

}

cout<<"二维数组周边元素之和为:"<

return 0;

}

5. 编程求出3阶方阵的两条对角线上元素之和。

程序代码如下:

#include

using namespace std;

int main()

{ int arr[3][3]={0,2,2,3,4,4,5,6,6},a=0,b=0,i,j;

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

for(j=0;j<3;j++) /*求主对角线上元素和*/

if(i==j)

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

for(i=0;i<3;i++) /*求次对角线上元素和*/

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

if(i+j==2 )

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

cout<<"主对角线元素和为:"<

cout<<"次对角线元素和为:"<

return 0;

}

6.编程序求Fibonacci数列的前10项,并按每行3个数的格式输出该数列。Fibonacci 数列的定义为:

程序代码如下:

#include #include using namespace std; int main( ) 1 (n=1)

1 (n=2)

f n-1+f n-2(n>2)

f n=

{ int i;

long f[10]={1,1};

for (i=2; i<30; i++)

f[i]=f[i-2]+f[i-1];

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

{ if(i%3==0) cout<<"\n";

cout<

}

cout<

return 0;

}

c语言复习题(有答案)●

思考题 不仅要会做这些题,更重要的是要掌握其相关知识点一、一般填空题 1-1、调用fopen函数打开一文本文件,在“打开模式”这一项中,为输出(写)而打开需填入【1】. 1-2、调用fopen函数打开一文本文件,在“打开模式”这一项中,为追加而打开需填入【1】. 1-3、fopen函数的原形在头文件【1】中. 1-4、getchar函数的原形在头文件【1】中. 1-5、sqrt函数的原形在头文件【1】中. 1-6、如果函数不要求带回值,可用【1】来定义函数返回值为空. 答案:w或w+;a或a+;stdio.h ; stdio.h ; math.h ;void . 2-1、字符串“\1011234\\at”的长度(字符数)是【1】. 2-2、字符串“abc\103\\bcd”的长度(字符数)是【1】. 2-3、字符串“1\\t\x43\abx44”的长度(字符数)是【1】. 2-4、“a“在内存中占【1】个字节. 2-5、‘a’在内存中占【1】个字节. 2-6、“\71“在内存中占【1】个字节. 2-7、一维数组下标的最小值是【1】;数组char a[]=“china” ;在内存应占【1】个字节。 答案:8; 8; 9; 2;1;2 ;0;6. 3-1、设x=(5>1)+2, x的植为【1】. 3-2、表达式‘B’+15+‘\x41’+011+0x10的值是【1】. 3-3、表达式‘b’+5+‘\x42’+011+0x10的值是【1】. 答案:3;171;194; 4-1、假设所有变量都为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是【1】. 4-2、if(!a)中的表达式!a等价于【1】. 4_3、已知a=1,b=2,c=3,执行if(a>b>c) b=a;else b=c;a=4;b=8;后,b的值是【1】. 答案:8;a==0;8; 5-1、若所用变量都已定义,下列程序段的执行结果是【1】. for(i=1;i<=5;i++);printf(“OK\n”); 5-2、执行语句char s[3]=”ab”,*p;p=s;后,*(p+2)的值是【1】. 5-3、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; ,则*--p的值是【1】. 5-4、下列程序的输出结果是【1】,main(){int a=011;printf(“%d\n”,++a);} 答案:OK;’\0’;1;10 6-1、若宏定义为:#define y(x) 2+x, 则表达式a=3*y(3)的值为【1】. 6-2、若宏定义为:#define y(x) 2+x, 则表达式a=4*y(2)的值为【1】. 6-3、若宏定义为:#define y(x) 2/x, 则表达式a=4+3*y(3)的值为【1】. 答案:9;10;6 . 二、单项选择题 1-1、若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。 A:文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B:文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C:文件打开时,原有文件内容被删除,只可作写操作 D:以上各种说法皆不正确 1-2、若执行fopen函数时发生错误,则函数的返回值是()。

C语言 数组 实验题目及答案

实验六数组程序设计 【实验目的】 1、掌握使用一维数组编程方法 2、掌握使用二维数组进行程序设计 【实验内容】 一、上机验证程序,并分析结果 要求:读懂程序,写出分析结果;上机运行程序,得到运行结果,比较之。1、#include int main() { int a[ ]={1,2,3,4,5} , i, j, s=0 ; j = 1; for ( i = 4 ; i>=0 ; i--) { s = s+ a[i] * j ; j = j * 10 ; } printf(" s= %d \n" , s ); return 0; } 二、程序改错题 1.下面程序的功能,是从键盘输入一个数组(数组长度为10),查找数组中正数的个数。源代码如下,程序中存在错误,请将其改正。 #include int main()

{ int a(10);/*定义数组*/ int count,i;/* i循环变量 count 正数个数*/ for(i=0;i<=10;i++) {/*循环输入*/ scanf("%d",a[i]); } count=1; for(i=0;i<=10;i++) {/*查找正数*/ if(a(i)>0) count++; } printf("数组中正数有:%d个\n",count); return 0; } 三编写程序 1.编写程序要求输入30个学生的单科成绩,输出高于平均分的成绩。#include #define N 30 int main() { float score[N],sum=0,aver; int i; for(i=0;i<30;i++) { scanf("%f",&score[i]); sum=sum+score[i]; } aver=sum/30; printf("平均分为:%.2f\n",aver); for(i=0;iaver) printf("%.2f ",score[i]); printf("\n");

C语言练习3(数组)=参考答案

C语言(数组) 一、选择题 1. 设有程序: main() { int i,a[11]; printf("给数组赋值:\n"); for (i=0;i<=10;i++) scanf("%d",( )); ... ... printf("输出数组:\n"); for(i=0;i<=10;i++) printf("%d,",( )); } 则在程序中的两个园括号中分别应填入:C A) &a[i]和&a[i] B) a[i]和&a[i] C) &a[i]和a[i] D) a[i]和a[i] 2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ). A) 15 B) 16 C) 30 D) 32 3. 阅读程序: main() { int a[2]={0},i,j,k=2; for(i=0;i

return r; } main() { int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3); printf("%d\n",x); } 以上程序的输出结果是( D ). A) 720 B) 6 C)24 D) 120 5. 以下定义语句中,错误的是( B ). A) int a[ ] = {6,7,8}; B) int n=5, a[n]; C) char a[ ]= "string"; D) char a[5 ]={'0','1','2','3','4'}; 6. 以下描述中正确的是( D ). A) 数组名后面的常量表达式用一对圆括弧括起来 B) 数组下标从1开始 C) 数组下标的数据类型可以是整型或实型 D) 数组名的规定与变量名相同 7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ). A) scanf("%c",a[0]); B) scanf("%s",&a); C) printf("%c",a[3]); D) printf("%s",a); 8.若定义数组int a[10] ,其最后一个数组元素为( C ). A) a[0] B) a[1] C) a[9] D) a[10] 9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )? A) a[8] 的值为0 B) a[1] 的值为1 C) a[3] 的值为4 D) a[9] 的值为0 10. 指出以下错误语句( A ).

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. 任何类型的表达式 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",_______ ); }

C语言数组作业编程题答案

1、请先用记事本创建文件original.txt,往其中写入一组已排好序的整型数,今输入一个整数,要求按原来排序的规律将它插入数中,仍写入文件。例如:原来整数依次为4、6、8、41、56、77、102(数据间的分隔符为空格)。若将42插入数中,则插入后整数依次为4、6、8、41、4 2、56、77、102。 答案: #include #include void main() { int a[100]; int ijnumber; int n; FILE *fp; fp=fopen("e:\\C语言\\original.txt""r"); if(fp==NULL) { printf("open error"); exit(0); }

i=0; while(!feof(fp)) { fscanf(fp"%d"&a[i++]); fgetc(fp); } number=i-1; //number中存最后一个数据的下标 fclose(fp); scanf("%d"&n); //以下的while循环用来找n要放的位置循环结束时正好是a[i]的位置i=0; while(n>a[i]) { i++; } //for循环的功能是将a[i]到最后一个元素全后移一个位置 for(j=number;j>=i;j--) a[j+1]=a[j]; //将n放入找到的位置

a[i]=n; number=number+1; //加入n后,元素个数增1,用来控制向文件中的写入次数 fp=fopen("e:\\C语言\\original.txt""w"); if(fp==NULL) { printf("open error"); exit(0); } //写入数据 for(i=0;i<=number-1;i++) fprintf(fp"%d "a[i]); fprintf(fp"%d"a[i]); //最后一个数据后没有空格 fclose(fp); } 2、假定整型数组中的元素值不重复。今输入一个整数,先查找,如数组中存在此元素,则删除,否则不做操作。例如:原来数组的元素依次为14、6、28、41、96、77、89、102。若将96删除,则删除后数组元素依次为14、6、28、41、77、89、102。 答案:

c语言数组典型试题设计含答案

一.选择题(2*20) 【题1】在C 语言中,引用数组元素时,其数组下标的数据类型允许是。A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 【题2】以下对一维整型数组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]; 【题3】若有说明:int a[10];则对a 数组元素的正确引用是。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 【题4】在C 语言中,一维数组的定义方式为:类型说明符数组名; A)[整型常量表达式] B)[整型表达式] C)[整型常量] 或[整型表达式] D)[常量] 【题5】以下能对一维数组a 进行正确初始化的语句是。 A)int a[10]=(0,0,0,0,0); B)int a[10]={}; C)int a[]={0}; D)int a[10]=”10*1”; 【题6】以下对二维数组a 的正确说明是。 A)int a[3][]; B)float a(3,4); C)double a[1][4]; D)float a(3)(4); 【题7】若有说明:int a[3][4];则对a 数组元素的正确引用是。 A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(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 进行正确初始化的语句是。 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}}; 【题10】以下不能对二维数组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语言综合习题及答案

C语言综合习题及答案 Prepared on 24 November 2020

C语言练习题 一、选择题 1. 一个完整的C源程序是【B 】。 A)要由一个主函数或一个以上的非主函数构成 B)由一个且仅由一个主函数和零个以上的非主函数构成 C)要由一个主函数和一个以上的非主函数构成 D)由一个且只有一个主函数或多个非主函数构成 2. 以下关于函数的叙述中正确的是【C】。 A)C语言程序将从源程序中第一个函数开始执行 B)可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C)C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束 D)main可作为用户标识符,用以定义任意一个函数 3. 以下关于函数的叙述中不正确的是【B】。 A)C程序是函数的集合,包括标准库函数和用户自定义函数 B)在C语言程序中,被调用的函数必须在main函数中定义 C)在C语言程序中,函数的定义不能嵌套 D)在C语言程序中,函数的调用可以嵌套 4. 在一个C程序中,【B 】。 A)main函数必须出现在所有函数之前 B)main函数可以在任何地方出现 C)main函数必须出现在所有函数之后 D)main函数必须出现在固定位置 程序的执行是从【A 】开始的。 A)主函数 B)子函数 C)从程序第一行 D)printf()函数 6.以下选项中不合法的标识符是【C 】 A)print B)FOR C)&a D)_00 7.以下选项中可作为C语言合法常量的是【A】 A)-80 B)-080 C) D) 8.以下选项中不属于字符常量的是【B】 A)′C′ B)"C" C)′\xCC′ D) ′\072′ 9. 若在C语言中未说明函数的类型,则系统默认该函数的数据类型是【C】

C语言数组典型例题分析与解答

数组练习解答 1 定义一个名为a的单精度实型一维数组,长度为4,所有元素的初值均为0的数定义语句是________________ 【分析】按照一般数据定义语句的格式,可以直接写出方法一(参看答案);考虑到所有元素均赋初值时可以省略数组长度,可以写出方法二(参看答案);考虑到不省略数组长度,给部分元素赋初值时,所有未赋初值的元素均有空值(对数值型数组来说,初值为0),可以写出方法三(参看答案);考虑到选用静态型,不赋初值所有元素也自动赋予。空值(对数值型数组来说,初值为0),可以写出方法四(参看答案)。 【答案】方法一:float a[4]={0.0,0.0,0.0,0.0}; 方法二:float a[]={ 0.0,0.0,0.0,0.0}; 方法三:float a[4]= {0.0}; 方法四:static float [4]; 2 下列数组定义语句中,错误的是() ①char x[1]='a';②auto char x[1]={0}; ③static char x[l];④char x[l]; 【分析】显然答案①中给字符型数组赋初值的格式不对(不能直接赋予字符常量,必须用花括号括住),所以备选答案①是符合题意的答案。 【答案】① 3 用"冒泡排序法"对n个数据排序,需要进行n一1 步。其中第k步的任务是:自下而上,相邻两数比较,小者调上;该操作反复执行n-k次。现在假设有4个数据:4、l、3、2要排序,假定4为上、2为下,则利用"冒泡排序法"执行第2步后的结果是_________________。【分析】开始排序前的排列执行第1步后的排列执行第2步后的排列 41 1 14 2 32 4 23 3 【答案】l、2、4、3 4 用"选择排序法"对n个数据排序,需要进行n-1步。其中第k步的任务是:在第k个数据到第n个数据中寻找最小数,和第k个数据交换。现在假设有4个数据:4、1、3、2要排序,则利用"冒泡排序法"执行第2步后的结果是______________________。 【分析】开始排序前的排列为:413 2 执行第1步后的排列为:143 2 执行第2步后的排列为:123 4 【答案】1、2、3、4 5 下列数组定义语句中,正确的是() ①int a[][]={1,2,3,4,5,6};②char a[2]「3]='a','b'; ③int a[][3]= {1,2,3,4,5,6};④static int a[][]={{1,2,3},{4,5,6}}; 【分析】C语言规定,二维数组定义时不允许省略第二维的长度,所以备选答案①④是错误的。C语言还规定,定义字符型数组时不允许直接使用"字符常量"的方式赋初值,所以备选答案②也是错误的。显然备选答案③符合题意。【答案】③ 6 定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句是() ①char s[]={‘1','2','3','\0 '};②char s「」={"123"}; ③char s[]={"123\n"};④char s[4]={'1','2','3'};

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. 任何类型的表达式 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",________ ); ┇ }

计算机二级c语言第九章 数组和指针习题与答案

第九章数组和指针 1、有以下程序 main() { int a[]={2,4,6,8,10}, y=0, x, *p; p=&a[1]; for(x= 1; x< 3; x++) y += p[x]; printf("%d\n",y); } 程序运行后的输出结果是 A)10 B)11 C)14 D)15 2、有以下程序 void sum(int a[]) { a[0] = a[-1]+a[1]; } main() { int a[10]={1,2,3,4,5,6,7,8,9,10}; sum(&a[2]); printf("%d\n", a[2]); } 程序运行后的输出结果是 A)6 B)7 C)5 D)8 3、有以下程序 main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++< 7) if(p[i]%2) j+=p[i]; printf("%d\n",j); } 程序运行后的输出结果是 A)42 B)45 C)56 D)60 4、设有定义语句 int x[6]={2,4,6,8,5,7},*p=x,i; 要求依次输出x数组6个元素中的值,不能完成此操作的语句是 A)for(i=0;i<6;i++) printf("%2d",*(p++)); B)for(i=0;i<6;i++) printf("%2d",*(p+i)); C)for(i=0;i<6;i++) printf("%2d",*p++); D)for(i=0;i<6;i++) printf("%2d",(*p)++); 5、有以下程序 #include < stdio.h > main() { int a[]={1,2,3,4,5,6,7,8,9,10,11,12,},*p=a+5,*q=NULL; *q=*(p+5); printf("%d %d\n",*p,*q); } 程序运行后的输出结果是 A)运行后报错 B)6 6 C)6 11 D)5 10

广技师C语言复习题5.练习(数组)(有答案)

一、选择题 1. 以下对一维整型数组a的正确说明是。 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] 2. 若有说明:int a[10]; ,则对a数组元素的正确引用是。A.a[10] B.a[ 3.5] C.a(5) D.a[10-10] 4. 以下对二维数组a的正确说明是。 A.int a[3][ ]; B.float a(3,4); C.double a[ ][4]; D.float a(3)(4); 5. 若有说明:int a[3][4]; 则对a数组元素的正确引用是。A.a[3][4] B.a[1, 3] C.a[1+1][0] D.a(2)(1) 6. 以下能对二维数组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,0},{ },{1,1}}; 7. 下面程序段(每行代码前面的数字表示行号)。 1 int a[3]={3*0}; 2 int i 3 for(i=0; i<3; i++) scanf(“%d”,&a[i]);

4 for(i=1; i<3; i++) a[0]=a[0]+a[i]; 5 printf(“%d\n”,a[0]); A.第1行有错误B.第5行有错误 C.第3行有错误D.没有错误 8. 若有定义float x[4]={1.3, 2.4, 5.6},y=6; 则错误的语句是。A.y=x[3]; B.y=x+1; C.y=x[2]+1 D.x[0]=y; 9. 定义如下变量和数组: int k; int a[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是。 for(k=0; k<3; k++) printf(“%d”,a[k][2-k]); A.3 5 7 B.3 6 9 C.1 5 9 D.1 4 7 11. 下面是对数组s的初始化,其中错误的语句是。 A.char s[5]={“abc”}; B.char s[5]={‘a’, ‘b’, ‘c’}; C.char s[5]= “”; D.char s[5]= “abcde”; 12. 下面程序段的运行结果是。(□表示1个空格) char c[5]={'a','b','\0','c','\0'}; printf("%s",c); A.'a''b' B.ab C.ab□c D.ab□ 13. 有两个字符数组a、b,则以下正确的输入格式是。 A.gets(a,b); B.scanf(“%s%s”,a,b); C.scanf(“%s%s”,&a,&b); D.gets(“a”),gets(“b”);

C语言数组练习及答案

C语言数组练习及答案集团文件版本号:(M928-T898-M248-WU2669-I2896-

第四部分数组 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. 任何类型的表达式 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;

大学C语言考试题(含答案)

大学C语言考试题(含答案) 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔 细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串 选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分

4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是( C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括( D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言(数组与函数)习题与答案

1、有以下程序 main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) if(p[i]%2) j+=p[i]; printf("%d\n",j); } 程序运行后的输出结果是()。 A.42 B.56 C.60 D.45 正确答案:D 2、以下叙述中错误的是()。 A.数组名代表的是数组所占存储区的首地址,其值不可改变 B.只有double类型数组,不可以直接用数组名对数组进行整体输入或输出 C.可以通过赋初值的方式确定数组元素的个数 D.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息 正确答案:B 3、以下能正确定义一维数组的选项是()。 A.int a[5]={0,1,2,3,4,5}; B.int a[5]="0123"; C.char a[]={0,1,2,3,4,5}; D.char a={'A','B','C'}; 正确答案:C

解析: D、不加[ ],a只能被看作是一个字符变量,只能接收一个字符 4、有以下程序 main() { char p[ ]={‘a’,’b’,’c’},q[ ] =”abc”; printf("%d %d\n",sizeof(p),sizeof(q)); }; 程序运行后的输出结果是()。 A.4 4 B.3 3 C.3 4 D.4 3 正确答案:C 解析: C、p[] 只能认作字符数组,不会有字符串的结束标志,所以只有3个字符q[] 是字符串,末尾还会有字符串的结束标志,所以有4个字符 5、以下程序运行后的输出结果是()。 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"); } } A.1 2 3 0 5 6 0 0 9

C语言必背的典型程序设计题目-数组函数答案

数组部分必须会编写的程序(参考答案)1、使用选择法、冒泡法对10个数进行排序,并输出排序前后的数列。 //选择法 #include void main() { int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,i,j,t,temp; printf("Before sort:"); for(i=0;i<10;i++) { printf("%4d",a[i]); } printf("\n"); //排序 for(i=0;i<9;i++) { t=i; for(j=i+1;j<10;j++) { if(a[t]>a[j]) { t=j; } } if(t!=i) { temp=a[i]; a[i]=a[t];a[t]=temp; } } printf("Aftere sorted:"); for(i=0;i<10;i++) { printf("%4d",a[i]); } printf("\n"); } //冒泡法 #include void main() { int a[10]={12,45,7,8,96,4,10,48,2,46},n=10,I,j,t; printf(“Before sort:”); for(i=0;i<10;i++) { printf("%4d",a[i]); } prtintf(“\n”); //排序 for(i=0;i<=n-1;i++) { for(j=0;ja[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} } printf(“Aftere sorted:”); for(i=0;i<10;i++)

c语言数组习题

盛年不重来,一日难再晨。及时宜自勉,岁月不待人。 数组练习解答 1 定义一个名为a的单精度实型一维数组,长度为4,所有元素的初值均为0的数定义语句是___________ 【分析】按照一般数据定义语句的格式,可以直接写出方法一(参看答案);考虑到所有元素均赋初值时可以省略数组长度,可以写出方法二(参看答案);考虑到不省略数组长度,给部分元素赋初值时,所有未赋初值的元素均有空值(对数值型数组来说,初值为0),可以写出方法三(参看答案);考虑到选用静态型,不赋初值所有元素也自动赋予。空值(对数值型数组来说,初值为0),可以写出方法四(参看答案)。 【答案】方法一:float a[4]={0.0,0.0,0.0,0.0}; 方法二:float a[]={ 0.0,0.0,0.0,0.0}; 方法三:float a[4]= {0.0}; 方法四: static float [4]; 2 下列数组定义语句中,错误的是() ① char x[1]='a';②auto char x[1]={0}; ③ static char x[l];④ char x[l]; 【分析】显然答案①中给字符型数组赋初值的格式不对(不能直接赋予字符常量,必须用花括号括住),所以备选答案①是符合题意的答案。 【答案】① 3 用"冒泡排序法"对n个数据排序,需要进行n一1 步。其中第k步的任务是:自下而上,相邻两数比较,小者调上;该操作反复执行n-k次。现在假设有4个数据:4、l、3、2要排序,假定4为上、2为下,则利用"冒泡排序法"执行第2步后的结果是_________________。 【分析】开始排序前的排列执行第1步后的排列执行第2步后的排列 4 1 1 1 4 2 3 2 4 2 3 3 【答案】 l、2、4、3 4 用"选择排序法"对n个数据排序,需要进行n-1步。其中第k步的任务是:在第k个数据到第n个数据中寻找最小数,和第k个数据交换。现在假设有4个数据:4、1、3、2要排序,则利用"冒泡排序法"执行第2步后的结果是______________________。 【分析】开始排序前的排列为: 4 1 3 2 执行第1步后的排列为: 1 4 3 2 执行第2步后的排列为: 1 2 3 4 【答案】1、2、3、4 5 下列数组定义语句中,正确的是() ① int a[][]={1,2,3,4,5,6};② char a[2]「3]='a','b'; ③ int a[][3]= {1,2,3,4,5,6};④ static int a[][]={{1,2,3},{4,5,6}}; 【分析】C语言规定,二维数组定义时不允许省略第二维的长度,所以备选答案①④是错误的。C语言还规定,定义字符型数组时不允许直接使用"字符常量"的方式赋初值,所以备选答案②也是错误的。显然备选答案③符合题意。【答案】③ 6 定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句是() ①char s[]={‘1','2','3','\0 '};②char s「」={"123"}; ③char s[]={"123\n"}; ④ char s[4]={'1','2','3'};

C语言习题及答案

第1题(2.0分)题号:97 难度:中第1章 以下不正确的叙述是()。 A:在C程序中所用的变量必须先定义后使用 B:程序中,APH和aph是两个不同的变量 C:若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变D:当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值 答案:D 第2题(2.0分)题号:204 难度:中第10章 在下列程序段中,枚举变量c1,c2的值依次是()。 enum color {red,yellow,blue=4,green,white} c1,c2; c1=yellow;c2=white; printf("%d,%d\n",c1,c2); A:1,6 B:2,5 C:1,4 D:2,6 答案:A 第3题(2.0分)题号:601 难度:中第2章 下面四个选项中,均是不合法的浮点数的选项是()。 A:160. 0.12 e3 B:123 2e4.2 .e5 C:-.18 123e4 0.0 D:-e3 .234 1e3 答案:B 第4题(2.0分)题号:621 难度:中第3章 printf函数中用到格式符%5s,其中数字5表示输出的字符串占用 5列,如果字符串长度大于5,则输出按方式()。 A:从左起输出该字符串,右补空格 B:按原字符长从左向右全部输出 C:右对齐输出该字串,左补空格 D:输出错误信息 答案:B 第5题(2.0分)题号:694 难度:中第3章 以下叙述正确的是()。 A:可以把define和if定义为用户标识符

B:可以把define定义为用户标识符,但不能把if定义为用户标识符 C:可以把if定义为用户标识符,但不能把define定义为用户标识符 D:define和if都不能定义为用户标识符 答案:B 第6题(2.0分)题号:575 难度:中第4章若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于 表达式(exp)的是()。 A:(exp==0) B:(exp!=0) C:(exp==1) D:(exp!=1) 答案:B 第7题(2.0分)题号:208 难度:中第4章下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是()。A:8 B:23 C:17 D:6 答案:B 第8题(2.0分)题号:632 难度:中第5章以下叙述正确的是()。 A:do-while语句构成的循环不能用其它语句构成的循环来代替. B:do-while语句构成的循环只能用break语句退出. C:用do-while语句构成的循环,在while后的表达式为非零时结束循环. D:用do-while语句构成的循环,在while后的表达式为零时结束循环 答案:D 第9题(2.0分)题号:506 难度:中第5章以下程序段的输出结果为()。 for(i=4;i>1;i--) for(j=1;j

C语言(数组)习题与答案

一、单选题 1、下列描述中不正确的是() A.字符串的结束符是'\0'。 B.可以对字符型数组进行整体输入、输出。 C.字符型数组中能存放字符串。 D.字符串函数声明在ctype.h中。 正确答案:D 2、下面是有关C语言字符数组的描述,其中错误的是() A.不可以用赋值语句给字符数组名赋字符串 B.可以用输入语句把字符串整体输入给字符数组 C.字符数组只能存放字符串 D.字符数组中的内容不一定是字符串 正确答案:C 3、下面是对数组s的初始化操作,其中不正确的是() A.char s[5]= " "; B.char s[5]={'a'}; C.char s[5]={"a"}; D.char s[5]= "abcdef"; 正确答案:D 4、下面叙述正确的是() A.字符串"123 "与"123"相等。 B.字符串"123"小于字符串"2"。 C.两个字符串所包含的字符个数不相同时,才能进行大小比较。 D.字符个数多的字符串比字符个数少的字符串大。 正确答案:B

5、下面程序段的输出结果是() char a[7]=“123456”; char b[4]=”ABC”; strcpy(a,b); printf(“%c”,a[5]); A.\0 B. C.5 D.6 正确答案:D 6、以下对二维数组a的正确说明是__。 A.double a[1][4]; B.float a(3)(4); C. floatf a(3,4); D. int a[3][]; 正确答案:A 7、以下能对二维数组a进行正确初始化的语句是__。 A. int a[][3]={{1,2,3},{4,5,6}}; B.int a[2][]={{1,0,1},{5,2,3}}; C.int a [2][4]={{1,2,3},{4,5},{6}}; D. int a[][3={{1,0,1},{},{1,1}}; 正确答案:A 8、若有说明: int a[3][4]={0};则下面正确的叙述是__。 A.数组a中各元素都可得到初值,但其值不一定为0。 B.只有元素a[0][0]可得到初值0。 C.数组a中每个元素均可得到初值0 。

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