搜档网
当前位置:搜档网 › 《C++数组》习题参考答案

《C++数组》习题参考答案

《C++数组》习题

学号姓名

一、选择题

1、下列对字符数组进行初始化的语句正确的是 A

A.char a[]= "Hello";

B.char a[][]= {'H','e','l','l','o'};

C.char a[5]="Hello";

D.char a[2][5]= {"Hello","World"};

2、以下一维数组a的正确定义是 D

A.int a(10) ; B.int n=10,a[n];

C.int n; D.#define size 10

cin>>n; int a[size];

int a[n];

3、以下对二维数组a进行不正确初始化的是 C

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

4、执行以下程序后,s的值为 A

int a[]={5,3,7,2,1,5,4,lO);

int s=0,k;

for(k=0;k<8;k+=2)

s+=*(a+k);

A.17 B.27 C.13 D.无定值

5、为了判断两个字符串sl和s2是否相等,应当使用 D

A.if (s1==s2)

B.if (s1=s2)

C.if(strcpy(S1,s2))

D.if(strcmp(s1,s2)==O)

6、有定义int a[2][5];,若a[0][1]的地址为x,则a[0][O]、a[1][3]地址分别为(假设一个整型数据占用两个字节的内存空间): A A.x-2,x+14 B.x-1,x+7

C.x+1,x+7 D.x-1,x+14

7、若有定义float a[m][n];,且a[1][1]的地址为x,每个float元素占用4个字节,则a[il[j]的地址为 A

A.x+4*(i-1)*n+4*(j-1) B.x+(i-1)*n+(j-1)

C.x+4*(i-1)*j+(j-1) D.x+4*i*j+4*j

二、填空题

1、char st[20] = "SEU\0\t\\";

cout<

三、程序阅读题

1、写出如下程序的运行结果。

int main()

{

int i,j;

int a[10]={1,1,1,1,1,1,1,1,1,1};

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

for(j=0;j

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

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

cout<

cout<<'\n';

return 0;

}

1 2 4 8 16 32 64 128 256 512

2、写出如下程序的运行结果。

int main()

{

int a[3][3] = {1,0,2,2,2,0,0,1,0};

int i,j;

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

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

{

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

cout<

}

return 0;

}

2 2 0 0 0 2 2 2 2

四、程序填空题

1、定义函数,在一维数组中找出最大值和最小值,主函数中调用该函数并输出数组的最大最小元素。

void cal(int a[],int n, int &max,int &min ){

max=a[0];

min=a[0]; ;

for(int i=1;i

if(a[i]>max) max=a[i] ;

if(a[i]

}

}

int main(){

int a[10];

cout<<"输入10个整数:"<

for(int i=0;i<10;i++) cin>>a[i];

int max,min ;

cal( a,10 ,max,min);

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

cout<

cout<<"max="<

return 0;

}

2、下列函数inverse的功能是使一个字符串按逆序存放,请填空。

void inverse(char str[])

{

char m;

int i,j;

for(i=0,j=strlen(str); i

{

m=str[i];

str[i]= strlen[j-1] ;

str[j-1]=m ;

}

}

3、下列程序用于判断字符串S是否对称,对称时返回1,否则返回0。如f(”

abba”)返回1,而f("abab")返回0。请填空。

int f( char s[] )

{

int i=0,j=0;

while(s[j]!='\0') j++ ;

for(j--;i

return( i>=j );

}

4、下面函数是寻找二维数组中每一行的最大值,请填空。

#define N 5

#define M 5

void max(int a[N][M])

{

int i,j,p;

for(i=0;i

{

p=0 ;

for(j=1;j

if(a[i][p]

p=j ;

cout<

}

}

5、下面的程序是把十进制数转换为某个指定的进制,请填空。int main()

{

int num[65],i=0,base;

long n;

cout<<"input a decimal number:";

cin>>n;

cout<<"input base number:";

cin>>base;

do

{

num[i]=n%base ;

i++;

n=n/base;

}while( n>0 );

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

cout<

return 0;

}

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

4. 阅读程序: f(int b[],int n) { int i,r=1; for(i=0;i<=n;i++) r=r*b[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]

数组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}};

c语言第七章数组课后练习题答案

c语言第七章数组课后练习题答案 第七章数组 学习目的与要求: 1 、重点掌握一维数组的定义和引用; 、基本掌握二维数组的定义和引用; 、重点掌握字符型数组的定义与引用; 、能正确使用字符串处理函数; 、学会使用数组解决实际问题。 重点: 1 、一维数组的定义与引用; 、二维数组的定义与引用; 、字符数组的定义与引用; 第1讲 知识归纳: 1、一维数组的定义:类型说明符数组名[ 常量表达式 ] ; 数组名后必须用方括弧 [ ] ,用其他括弧均错误; 方括弧中的常量表达式表示数组的元素个数; 方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量; 2、一维数组的引用: 数组名[ 下标 ] //下标从0

如 int a[10] ; //可以引用的数组元素为不是本数组元素; 3、一维数组的初始化: int a[3] ; a = { 1,3,} ; 可以给数组的部分元素赋值,不赋值的元素,默认值为int 0, char, ??, float 0.0 ; 如 int a [3]= {1,} ; //a[0] =1 ; a[1]= ; a[2]= 0 ; 在对数组全部元素赋初值时,可以不指定元素个数; 可以在循环控制下,给数组各元素赋值; 如:int a[10] ; for a [ i ] = i ; 基础训练 一、选择题 1、在c语言中,引用数组元素时,其数组下标的数据类型允许是。 A)整型常量 B)整型表达式 )整型常量或整型表达式 D)任何类型的表达式 2、要说明一个有10个int元素的数组,应当选择语句。 ) int a[10]; B) int a; C) int a[9] D) int a[11] 3、以下对数组的正确定义是:。

C语言习题六(数组部分)习题及答案

习题六 一.选择题 1.在C语言中,引用数组元素时,其数组下标的数据类型允许是 c 。A)整型常量B)整型表达式 C)整型常量或整型表达式C)任何类型的表达式 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.若有定义:int a[10],则对数组a元素的正确引用是 D 。 A)a[10] B)a[3.5] C)a(5) D)a[10-10] 4.以下不能对一维数组a进行正确初始化的语句是B 。 A)int a[10]={0,0,0,0,0}; B)int a[10]={} ; C)int a[ ] = {0} ; D)int a[10]={10*1} ; 5.若有定义:int a[3][4],则对数组a元素的正确引用是。A A)a[2][3] B)a[1,3] C)a(5) D)a[10-10] 6.以下能对二维数组a进行正确初始化的语句是B。 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}} ; 7.以下不能对二维数组a进行正确初始化的语句是。C 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} ; 8.若有说明:int a[3][4]={0};则下面正确的叙述是D。 A)只有元素a[0][0]可得到初值0

c语言数组练习题及答案

c语言数组练习题及答案 第一题:在数组a中,存放有n个学生的成绩.试编一函数:将低于平均分的学生人数m由函数值返回,将低于平均分的分数由数组b带回. int fun(int a[],int n,int b[]) { int i,m=0,aver=0; for(i=0;i

data=m+1; n=0; while(n

c语言数组练习题及答案

c语言数组练习题及答案 /* 4.16 5*5矩阵中每行的绝对值最大值,与同行对角线交换*/ #include "stdio.h" #include "math.h" void main() { int a[5][5]={{1,2,3,4,-5},{3,5,-2,4,2},{4,1,2,3,-2}, {1,3,-2,4,6},{2,2,0,7,4}} ; int i,k,max,sub,temp; /* i 循环变量,控制行,k 循环变量,控制列,max 当前最大绝对值,sub 当前最大绝对值元素的下标 temp 临时用于交换的变量*/ printf("交换之前,输出\"); /*交换之前,输出*/ for(i=0;i<=4;i++) { for(k=0;k<=4;k++) printf("%4d",a[i][k]); printf("\"); } /*交换*/ for(i=0;i<=4;i++) { /*假设第一个元素最大*/ max=fabs(a[i][0]); sub=0; /*寻找绝对值最大的元素记下下标*/ for(k=1;k<=4;k++) { if(fabs(a[i][k])>max) {

max=fabs(a[i][k]); sub=k; } } /*交换*/ temp=a[i][i]; a[i][i]=a[i][sub]; a[i][sub]=temp; } /*交换之后,输出*/ printf("交换之后,输出\"); for(i=0;i<=4;i++) { for(k=0;k<=4;k++) printf("%4d",a[i][k]); printf("\"); } } /* 4.17 在一个一维数组中存放任意4个数,如:5,1,8,6,生成如下矩阵 5 5 5 5 5 5 5 5 1 1 1 1 1 5 5 1 8 8 8 1 5 5 1 8 6 8 1 5 5 1 8 8 8 1 5 5 1 1 1 1 1 5 5 5 5 5 5 5 5 */ #include "stdio.h" #include "conio.h" void main() { int FourNumbers[4], array[7][7], i , row, column;

C程序设计(数组)习题与答案

C程序设计(数组)习题与答案C程序设计(数组)习题与答案 数组是C语言中常用的数据结构之一,它可以存储多个相同类型的元素。掌握数组的使用对于C程序设计至关重要,下面将为大家介绍一些关于C数组的习题及其答案。 1. 习题一:计算数组元素的和 题目描述:编写一个程序,计算给定数组中所有元素的和,并输出结果。 解题思路: ```c #include int main() { int arr[5] = {1, 2, 3, 4, 5}; // 定义一个包含5个元素的整型数组 int sum = 0; // 用于存储和的变量 // 遍历数组,累加每个元素的值 for (int i = 0; i < 5; i++) { sum += arr[i]; } printf("数组元素的和为:%d\n", sum);

return 0; } ``` 2. 习题二:查找数组中的最大值 题目描述:编写一个程序,找出给定整型数组中的最大值,并输出结果。 解题思路: ```c #include int main() { int arr[7] = {4, 7, 2, 9, 1, 5, 8}; // 定义一个包含7个元素的整型数组 int max = arr[0]; // 假设第一个元素为最大值 // 遍历数组,比较每个元素的值与当前最大值的关系 for (int i = 1; i < 7; i++) { if (arr[i] > max) { max = arr[i]; } }

printf("数组中的最大值为:%d\n", max); return 0; } ``` 3. 习题三:查找数组中的特定元素 题目描述:编写一个程序,在给定整型数组中查找是否存在指定元素,并输出结果。 解题思路: ```c #include int main() { int arr[6] = {3, 6, 9, 2, 5, 8}; // 定义一个包含6个元素的整型数组 int target = 2; // 指定要查找的元素 int found = 0; // 用于标记是否找到目标元素的变量 // 遍历数组,比较每个元素的值与目标值的关系 for (int i = 0; i < 6; i++) { if (arr[i] == target) { found = 1;

c语言数组试题及答案

c语言数组试题及答案 1. 请编写一个程序,要求用户输入10个整数,然后将其存储在一个数组中,并输出这个数组的内容。 答案: ```c #include int main() { int numbers[10]; int i; printf("请输入10个整数:\n"); for (i = 0; i < 10; i++) { scanf("%d", &numbers[i]); } printf("数组内容为:\n"); for (i = 0; i < 10; i++) { printf("%d ", numbers[i]); } return 0; }

``` 2. 请编写一个程序,要求用户输入一个整数n(n>0),然后分别输入n个整数存储在一个数组中,计算并输出这个数组中所有元素的和。 答案: ```c #include int main() { int n; int numbers[100]; int sum = 0; int i; printf("请输入整数n:\n"); scanf("%d", &n); printf("请输入%d个整数:\n", n); for (i = 0; i < n; i++) { scanf("%d", &numbers[i]); sum += numbers[i]; } printf("数组元素之和为:%d\n", sum);

return 0; } ``` 3. 请编写一个程序,要求用户输入一个整数n(n>1),然后分别输入n个整数存储在一个数组中,计算并输出这个数组中最大和最小的元素。 答案: ```c #include int main() { int n; int numbers[100]; int max, min; int i; printf("请输入整数n:\n"); scanf("%d", &n); printf("请输入%d个整数:\n", n); for (i = 0; i < n; i++) { scanf("%d", &numbers[i]);

C语言习题六(数组部分)习题及答案

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

2023年C语言考试数组知识习题库及答案(精品)

2023年C语言考试数组知识习题库及答案 (精品) 1. 单项选择题 (1) int a[4]={5,3,8,9};其中a[3]的值为( )。D A. 5 B. 3 C. 8 D. 9 (2) 以下4 个字符串函数中,( )所在的头文件与其他3 个不同。A A. gets B. strcpy C. strlen D. strcmp (3) 以下4 个数组定义中,( )是错误的。D A. int a[7]; B. #define N 5 long b[N]; C. char c[5]; D. int n,d[n]; (4) 对字符数组进行初始化,( )形式是错误。B A. char c1[ ]={'1', '2', '3'}; B. char c2[ ]=123; C. char c3[ ]={ '1', '2', '3', '\0'}; D. char c4[ ]="123"; (5) 在数组中,数组名表示( )。A A. 数组第1 个元素的首地址 B.数组第2 个元素的首地址 C. 数组所有元素的首地址 D.数组最后1 个元素的首地址 (6) 若有以下数组说明,则数值最小的和最大的元素下标分别是( )。B 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 (7) 若有以下说明,则数值为4 的表达式是( )。D int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ;

A. a[g-c] B. a[4] C. a['d'-'c'] D. a['d'-c] (8) 设有定义:char s[12] = "string" ; 则printf( "%d\n",strlen(s)); 的输出是( )。A A. 6 B. 7 C. 11 D. 12 (9) 设有定义:char s[12] = "string"; 则printf("%d\n ", sizeof(s)); 的输出是( )。D A. 6 B. 7 C. 11 D. 12 (10) 合法的数组定义是( )。A A. char 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} (11) 合法的数组定义是( )。D A. int a[3][ ]={0,1,2,3,4,5}; B. int a[ ][3] ={0,1,2,3,4}; C. int a[2][3]={0,1,2,3,4,5,6}; D. int a[2][3]={0,1,2,3,4,5,}; (12) 下列语句中,正确的是( )。D A. char a[3][ ]={'abc', '1'}; B. char a[ ][3] ={'abc', '1'}; C. char a[3][ ]={'a', "1"}; D. char a[ ][3] ={ "a", "1"}; (13) 下列定义的字符数组中,输出printf("%s\n", str[2]) ;的输出是( )。C static str[3][20] ={ "basic", "foxpro", "windows"}; A. basic B. foxpro C. windows D. 输出语句出错 (14) 下列各语句定义了数组,其中哪一个是不正确的( )。C A. char a[3][10]={"China","American","Asia"}; B. int x[2][2]={1,2,3,4};

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语言程序设计第六章数组习题及答案

C语言程序设计第六章数组习题及答案 1.以下对一维整型数组a的定义,正确的是_。(2分) A.int a(10) ; B.int n = 10 , a[n] ; C.int n ; scanf( "%d" , &n ) ; int a[n] ; D.int a[10] ; 2.若有定义:int a[10] ;,则对a数组元素的正确引用是_。(2分) A.a[10] B.a[3.5] C.a(5) D.a[10-10] 3.对定义int a[10] = {6 , 7 , 8 , 9 , 10} ; 的正确理解是_。(2分) A.将5个初值依次赋给a[1]--a[5] B.将5个初值依次赋给a[0]--a[4] C.将5个初值依次赋给a[6]--a[10] D.因为数组长度与初值个数不相同,所以此语句不正确 4..若有定义:int a[3][4]; , 则对a数组元素的正确引用是_。(2分) A.a[3][4] B.a[1,3] C.a[1+1][0] D.a(2)(1) 5.以下对二维数组a初始化正确的语句是_。(2分) A.int a[2][ ]={{0 , 1 , 2}, {3 , 4 , 5}}; B.int a[ ][3]={{0, 1, 2}, {3, 4, 5}}; C.int a[2][4]={{0, 1 , 2}, {3 , 4}, {5}}; D.int a[ ][3]={{0, 1, 2}, { }, {3, 4}}; 6.对二维数组a进行如下初始化:

int a[ ][3]={0 , 1 , 2 , 3 , 4 , 5}; 则a[1][1]的值是_。(2分) A.0 B.3 C.4 D.1 7.下面程序段的运行结果是_。(2分) #include int main( ){ int i , x[3][3] = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9} ; for( i = 0 ; i < 3 ; i++ ) printf( "%2d" , x[i][2-i] ) ; return 0 ; } A.1 5 9 B.1 4 7 C.3 5 7 D.3 6 9 8.以下对数组s的初始化,错误的是_。(2分) A.char s[5] = { "abc" } ; B.char s[5] = { 'a' , 'b' , 'c' } ; C.char s[5] = "" ; D.char s[5] = "abcde" ; 9.对两个数组a和b进行如下初始化: char a[ ] = "ABCDEF" ; char b[ ] = { 'A' , 'B' , 'C' , 'D' , 'E' , 'F' } ; 则以下叙述正确的是_。(2分) A.a和b数组完全相同 B.a与b长度相同 C.a的长度比b短

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

一、单选题 1、下列描述中不正确的是() A.字符串的结束符是 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”小于字符串 C.两个字符串所包含的字符个数不相同时,才能进行大小比较。正确答案:B

D.字符个数多的字符串比字符个数少的字符串大。 5、下面程序段的输出结果是() char a[7]=''123456w; char b[4]=〃ABC〃; strcpy(a z b); printfC'%c w z a[5]); A.\0 B. C.5 D.6 正确答案:D 6、以下对二维数组a的正确说明是一。 A.double a[l][4]; B.float a(3)(4); C.floatf a(3,4); D.int a[3][]; 正确答案:A 7、以下能对二维数组a进行正确初始化的语句是 A. Int a[][3]={{l/2,3},(4,576}}; B.int a⑵口={{1,0,1},{5,2,3}}; C.int a ⑵[4]={{1,2,3},{4,5},{6}}; D. int a[][3={{l/0/l},{},{l,l}); 正确答案:A 8、若有说明:int a[3][4]={0};则下面正确的叙述是

《C++数组》习题参考答案

《C++数组》习题 学号姓名 一、选择题 1、下列对字符数组进行初始化的语句正确的是 A A.char a[]= "Hello"; B.char a[][]= {'H','e','l','l','o'}; C.char a[5]="Hello"; D.char a[2][5]= {"Hello","World"}; 2、以下一维数组a的正确定义是 D A.int a(10) ; B.int n=10,a[n]; C.int n; D.#define size 10 cin>>n; int a[size]; int a[n]; 3、以下对二维数组a进行不正确初始化的是 C 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); 4、执行以下程序后,s的值为 A int a[]={5,3,7,2,1,5,4,lO); int s=0,k; for(k=0;k<8;k+=2) s+=*(a+k); A.17 B.27 C.13 D.无定值 5、为了判断两个字符串sl和s2是否相等,应当使用 D A.if (s1==s2)

B.if (s1=s2) C.if(strcpy(S1,s2)) D.if(strcmp(s1,s2)==O) 6、有定义int a[2][5];,若a[0][1]的地址为x,则a[0][O]、a[1][3]地址分别为(假设一个整型数据占用两个字节的内存空间): A A.x-2,x+14 B.x-1,x+7 C.x+1,x+7 D.x-1,x+14 7、若有定义float a[m][n];,且a[1][1]的地址为x,每个float元素占用4个字节,则a[il[j]的地址为 A A.x+4*(i-1)*n+4*(j-1) B.x+(i-1)*n+(j-1) C.x+4*(i-1)*j+(j-1) D.x+4*i*j+4*j 二、填空题 1、char st[20] = "SEU\0\t\\"; cout<

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",________ ); ┇ } A. a+(i++) B. &a[i+1] C. a+i D. &a[++i] 9. 执行下面的程序段后,变量k中的值为(a )。 int k=3, s[2]; s[0]=k; k=s[1]*10; A. 不定值 B. 33 C. 30 D. 10 10. 以下程序的输出结果是(c )

C语言第六章数组习题答案

第六章 数组 习题答案 2、0 4 3、0 6 4、&a[i] i%4==0 printf("\n"); 5、i+j==3_ a[i][j] 6、12 7、a[i][j]+b[i][j] printf(“\n ”) 8、按行存放 9、( a[i]>a[j]) 10、将串str2复制到串str1中后再将串str3连接到串str1之后 三、阅读题 1、如右图所示 2、AQM 3、AzyD 4、9198 5、如右图所示 6、92 7、1,2,5,7, 8、2 9、v1=5,v2=8,v3=6,v4=1 10、a*b*c*d* 四、编程题 1(1)选择法排序 #include void main( ) {int i,j,n=10,p,a[10];int temp; for(i=0;i

for(j=i+1;j void main( ) {int i,j,n=10,p,a[10];int temp; for(i=0;ia[j]) {temp=a[i];a[i]=a[j];a[j]=temp;} printf("\n排序后的一维数组:\n"); for(i=0;i void main( ) {int a[11],i,n=10,k; int point; printf("\n 请输入原始数据:\n"); for(i=0;ik) {point=i; break;} if(i!=n) {for(i=n;i>point;i--) a[i]=a[i-1]; a[point]=k;} /*从后向前方式*/ else a[n]=k; printf("插入后的数是:\n"); for(i=0;i int main() {int i,j,upp,low,dig,spa,oth; char text[3][80];

C语言数组编程题及解答

C语言数组编程题及解答

【程序1】 用筛选法求100之内的素数 筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法。据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274~194年)发明的,又称埃拉托斯特尼筛子。 具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这许多小点就像一个筛子,所以就把埃拉托斯特尼的方法叫做“埃拉托斯特尼筛”,简称“筛法”。 #include #include void main() {

2.程序源代码: #include #define N 10 int main() { int i,j,max,tem,a[N]; /*input data*/ printf("please input ten num:\n"); for(i=0;i

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

4. 阅读程序: f(int b[],int n) { int i,r=1; for(i=0;i<=n;i++) r=r*b[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]

相关主题