第五章补充习题
1. 设有说明static int n1=10;const int n2=10; int n4=10;
#define n3 10
则关于下列语句叙述正确的是。
①int data1[n1];②int data2[n2];③int data3[n3];④int data4[n4];
A. 全部正确
B. ①②③均正确
C. ②③均正确
D. 均不正确
2. 设有定义:int x[10]={0};int y[]={1,2,3};则下列叙述正确的是。
A. 数组x的首元素为零,其他元素为随机数。组y的大小不确定;
B. 数组x的所有元素均为零。数组y的大小为3;
C. 数组x的所有元素均为零,数组y的大小不确定;
D. 数组x的首元素为零,其他元素为随机数。数组y的大小为3。
3. 设有定义int a[]={1,2,3,4,5,6,7,8,9,10};则下列表达式中,数值为4的表达式的个
数为。
①a[4] ②a[10]-6 ③a[3]+1 ④a[a[9]-a[6]]
A. 1
B. 2
C. 3
D.4
4. 若有数组声明int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 则可以正确表示a中元素的表达式是。
A. a[3,4]
B. a[0][3]
C. a[3][4]
D. a[3][3]
5. 以下关于C++语言中数组的描述正确的是。
A. 数组的大小是固定的,但可以有不同类型的数组元素
B. 数组的大小是可变的,但所有数组元素的类型必须相同
C. 数组的大小是固定的,所有数组元素的类型必须相同
D. 数组的大小是可变的,可以有不同类型的数组元素
6. 有语句“int a[5]={1,2,3};”,则a[2]的值,a[3]的值。
7. 以下程序运行后的输出结果是:
#include
int f(int n){ return n %2;}
void main()
{ int data[8]={1,3,5,2,4,6},s=0;
for(int i=0;f(data[i]);i++)s+=data[i];
cout<
}
8. 程序运行后的输出结果是:
#include
void f(int x[],int i,int j)
{ int t;
if(i t=x[i];x[i]=x[j];x[j]=t; i++;j--; f(x,i,j); } } void main() { int data[]={2,0,3,8}; f(data,0,3); for(int i=0;i<4;i++)cout< cout< } 9. 程序运行后的输出结果是: #include void main() { int data[]={5,4,3,2,1,0}; for(int i=0;i<2;i++) for(int j=0;j<5-i;j++) if(data[j]>data[j+1]){ int t=data[j]; data[j]=data[j+1]; data[j+1]=t; } for(i=0;i<6;i++) cout< cout< } 10. 写出以下程序执行时的输出结果。 #include int fun(int i,int a[ ]) { int j = 0; while(i!=0) { a[j] = i % 10; i = i/10; j++; } return j; } void main() { int f[6],i=2018,j; j=fun(i,f); cout<<"a[0]="< for(i=j;i>1;i--) cout<<"a["< 11. 写出以下程序执行时的输出结果。 #include void main(void) { int a[3][3], i, j; for (i=0; i<3; i++){ for (j=0; j<3; j++){ if (i==1) a[i][j]=a[i-1][a[i-1][j]]+2; else a[i][j]=j;