{练习题}数组(3)

一. 单选题
1、要定义一个具有5个元素的一维数组vect,并使其个元素的初值依次是30,50,-88,0和0,则下列定义语句中错误的是( A )。
A.int vect[]={30,50,-88};
B.int vect[]={30,50,-88,0,0};
C.int vect[5]={30,50,-88};
D.int vect[5]={30,50,-88,0,0};
2.已知有数组定义char a[3][4];下列表达式中错误的是( A )。
A.a[2]=”WIN”
B.strcpy(a[2],”WIN” )
C.a[2][3]=’W’
D. a[0][1]=a[0][1]
3.已知数组arr的定义如下:int arr[5]={1,2,3,4,5};下列输出结果不是2的是( D)。
A. count <<arr+1<<endl;
B.count <<
(arr+1)<<endl;
C.count <<arr[1]<<endl;
D. count <<art<<endl;
4.要定义整型数组x,使之包括初值为0的三个元素,下列语句中错误的是( B )。
A.int x[3]={0,0,0};
B.int x[]={0};
C. static int x[3]={0};
D. int x[]={0,0,0};
5.有如下语句序列:char str[10];cin>>str;当从键盘输入“I love this game”时,str中的字符串是( D )。
A. “I love this game”
B. “I love thi”
C. “I love”
D. “I”
6.字符串“a+b=12\n\t”的长度为( C )。
A. 12
B. 10
C. 8
D. 6
7.下列有一维数组a的定义中,语法正确的是( D )。
A.int a(10);
B.int n=7,a[n];
C.int n;cin>>n;int a[n]
D. const int size=10;int a[size];
8.下列关于数组的描述正确的是( B )
A. 数组的固定的,而其中元素的数据类型可以不同
B.数组的固定的,而其中元素的数据类型必须相同
C.数组的可变的,而其中元素的数据类型可以不同
D. 数组的可变的,而其中元素的数据类型必须相同
9.在C++语言中引用数组元素时,下面关于数组下标数据类型的说法错误的是( D )
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
10.要定义数组A,使得其中每个元素的数据依次为3、9、4、8、0、0、0,错误的定义语句是( C )
A.int A[]={3,9,4,8,0,0,0};
B.int A[9]={3,9,4,8,0,0,0};
C.int A[]={3,9,4,8};
D.int A[7]={3,9,4,8};
11.有数组声明int value[30];下标值引用错误的是( D )
A.value[30]
B. value[0]
C. value[10]
D. value[20]
12.下列一给数组定义正确的是( B )
A.int x=6;int num[x];
B.const int x=6; float a[x];
C.const float x=6; int b[x];
D.int x=6; int c[x];
13.以下叙述中错误的是( C )
A.对于double类型的数组,不可以直接用数组名对数组进行整体输入或输出
B.数组名代表的是数组所占存储存储区的首地址,其值不可改变
C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D. 可以通过赋初值的方式确定数组元素的个数
14.下面的二维数组定义中正确的是( C )
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};
15.以下对二维数组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}};
16.若有定义int a[3][4],则正确引用数组a元素的是( C )
A. a[2][4]
B. a[3][3]
C. a[0][0]
D. a[3][4]
17.若定义了int b[][3]={1,2,3,4,5,6,7};则b数组第一维的长度是( B )
A. 2
B. 3
C. 4
D. 无确定值
18.若有定义int a[][4]={0,0};以下叙述错误的是( D )
A.数组的每个元素都可得到初值0
B.二维数组a的第一维大小为1
C.因为初值个数除以a中第二维大小的值的商为0,故数组a的行数为1
D.只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
19.若二维数组a有m列,则计算元素a[i][j]在数组中相对位置公式为( A )
A.i
m+j
B.jm+i
C.i
m+j-1
D.im+j+1
20.下面选项中等价的是( B )
A.int a[2][3]={1,2,3,4,5,6}与int a[2][]={1,2,3,4,5,6};
B.int a[ ][3]={1,2,3,4,5,6}与int a[2][3]={1,2,3,4,5,6};
C.int a[2][3]={1,2,3}与int a[][3]={1,2,3};
D.int a[2][3]={1,2}与int a[2][]={{1},{2}};
21.以下不能正确定义二维数组的选项是( D )
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}};
22.下列程序的输出结果是( A )
#include < iostream>
using namespace std;
int main()
{
int n[2],i,j,k=2;
for(i=0;i<k;i++)
{
for(j=0;j<k;j++)
{
n[j]=n[i]+1;
}
}
cout<<n[j-2]<<endl;
return 0;
}
A. 不确定的值
B. 3
C. 2
D. 1
23.串的长度是( D )
A.串中不同字符的个数
B.串中不同字母的个数
C.串中所含字符的个数且字符个数大于0
D.串中所含字符的个数
24.下列说法正确的是( C )
A.字符型数组与整型数组可通用
B.字符型数组与字符串其实没什么区别
C.当字符串放在字符数组中,这时要求字符数组长度比字符串长一个单元,因为要放字符串终结字符’\0’
D.字符串的输出可以用它所存储的数组来输出,也可以字符串的形式整体输出,结果没区别。
25.下面有关字符数组的描述中错误的是( C )
A.字符数组可以存放字符串
B.字符串可以整体输入,输出
C.可以在赋值语句中通过赋值运算对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
26.给出下面定义
char a[]=“abcd”;
char b[]={‘a’,‘b’,‘c’,‘d’};
则下列说法正确的是( C )
A.数组a与数组b等价
B.数组a与数组b的长度相同
C.数组a的长度大于数组b的长度
D.数组a的长度小于数组b的长度
27.下面程序的输出结果为( A )
#include < iostream>
#include <string.h>
using namespace std;
int main()
{
char st[20]=“hello\0\t\”;
cout<<strlen(st);
cout<<sizeof(st)<<endl;
cout<<st<<endl;
}
A.520
hello
B.1220
hello\0\t
C.520
hello\t
D.1120
hello
28.要使字符数组str具有初值”Lucky”,不正确的定义语句(D)
A. char str[]={‘L’,‘u’,‘c’,‘k’,‘y’};
B.char str[5]={‘L’,‘u’,‘c’,‘k’,‘y’};
C.char str[]=“Lucky”;
D.char str[5]=“Lucky”;
29.执行以下程序的输出结果为(C )
#include < iostream>
#include <string.h>
using namespace std;
int main()
{
char a[]=“welcome”,b[]=“well”;
strcpy(a,b);
cout <<a<<endl;
return 0;
}
A. welcome
B. well om
C. well
D. well we
30.下列是为字符数组赋字符串的语句组,其中错误的是( A )
A.char s[10]];s=“program”;
B.char s[]=“program”;
C.char s[10]=“Hello!”;
D.char s[10];strcpy(s,“hello”);
31.若已知char str[20]; 有语句cin>>str;当输入为This is a C++ program 时str所得结果是( B )。
A.This is a C++program
B.This
C.This is
D.This is a C
32.若用数组名作为函数调用的实参,传递给形参的是( A )
A.数组的首地址
B.数组中第一个元素的值
C.数组中全部元素的值
D.数组元素的个数
33.已知某函数的一个形式参数被说明为MAT[3][10],在下列说明中,与此等效的形参说明是( A )
A.int MAT[][10]
B.int MAT[3][]
C.int MAT[][]
D.int MAT[10][3]
34.设主调函数为如下程序段,则函数f中对形参数组定义错误的是( C )
int a[3][4]; f(a);
A. void f(int array[3][4])
B.void f(int array[][4])
C.void f(int array[3][])
D.void f(int array[4][4])
35.下面程序的输出结果为( B )
#include < iostream>
using namespace std;
int f(int b[],int m,int n)
{
int i,s=0;
for(i=m;i<n;i++)
s=s+b[i-1];
return s;
}
int main()
{
int x,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
cout<<x<<endl;
return 0;
}
A. 10
B. 18
C. 8
D. 15
36.下面程序的输出结果为( C )
#include < iostream>
using namespace std;
#define N 20
void fun(int a[],int n,int m)
{
int i;
for(i=m;i>=n;i–)
a[i+1]=a[i];
}
int main()
{
int i;
int a[N]={1,2,3,4,5,6,7,8,9,10} ;
fun(a,2,9);
for(i=0;i<5;i++)
cout<<a[i];
return 0;
}
A. 10234
B. 12344
C. 12334
D. 12234
二. 填空题
37.下面程序的输出结果为( )
#include < iostream>
using namespace std;
int main()
{
int i,a[5];
for(i=0;i<5;i++;
a[i]=9
(i-2+4*(i>2))%5;
for(i=4;i>=0;i–)
cout<<a[i];
return 0;
}
正确答案: 400-4-3
38.下面程序的输出结果为( )
#include < iostream>
using namespace std;
int main()
{
int i,k=0,s=0,a[10];
while(1)
{
cin>>a[k];
if(a[k]<=0)
break;
s+=a[k++];
}
for(i=0;i<k;i++)
cout<<a[i];
cout<<s;
return 0;
}
输入 1 2 3 -5
正确答案:1236
39.下面程序的输出结果为( )
#include < iostream>
using namespace std;
int main()
{
int a[4][4]={{1,2,3,4},{5,6,7,8},{11,12,13,14},{15,16,17,18}};
int i=0,j=0,s=0;
while(i++<4)
{
if(i= =2||i= =4)
continue;
j=0;
do
{
s+=a[i][j];
j++;
}while(j<4);
}
cout<<s;
return 0;
}
正确答案:92
40.下面程序的输出结果为( )
#include < iostream>
using namespace std;
int main()
{
char a[8]={‘\0’},t;
int j,k;
for(j=0;j<5;j++)
a[j]=(char)(‘a’+j);
for(j=0;j<4;j++)
{
t=a[4];
for(k=4;k>0;k–)
a[k]=a[k-1];
a[0]=t;
}
cout<<a<<endl;
return 0;
}
正确答案:bcdea
41.执行以下程序的输出结果为
#include < iostream>
using namespace std;
int main()
{
int i,c;
char s[2][5]={“1980”,“9876”};
for(i=3;i>=0;i–)
{
c=s[0][i]+s[1][i]-2*‘0’;
s[0][i]=c%10;
}
for(i=0;i<=1;i++)
{
cout<<s[i];
}
return 0;
}
正确答案:9876

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C0ntr01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值