C语言第七、八章补充作业答案
第七章 数组补充作业
【1】在C语言中,引用数组元素时,其数组下标的数据类型允许是 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】若有说明:int a[10];则对a数组元素的正确引用是 D 。
A)a[10]B)a[3.5]C)a(5)D)a[10-10]
【4】以下能对一维数组a进行正确初始化的语句是 C 。
A)int a[10]=(0,0,0,0,0);B)int a[10]={};
C)int a[]={0};D)int a[10]={10*1};
【5】以下对二维数组a的正确说明是 B 。
A)int a[3][];B)double a[1][4];
C)float a(3,4);D)float a(3)(4);
【6】若有说明:int a[3][4];则对a数组元素的正确引用是 D 。
A)a[2][4] B)a[1,3] C)a(2)(1) D)a[1+1][0]
【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】 指出下面各说明语句中哪些是合法的:(多选)
A. int abcd[0x80]; B. char 9ab[10];
C. char chi[-200]; D. int aaa[5]={3,4,5};
E. float key[]={3.0,4.0,1,0}; F. char disk[];
G. int n,floppy[n]; H. int cash[4]={1,2,3,4,5,6};
答案: ADE
【9】下面程序中有错误的行是 D (每行程序前面的数字表示行号)。
1 main()
2 {
3 float a[3]={1};
4 int i;
5 scanf(“%d”,&a);
6 for(i=1;i<3;i++) a[0]=a[0]+a[i];
7 printf(“a[0]=%d\n”,a[0]);
8 }
A)3B)6C)7D)5
【10】 请回答下列问题。
(1)array是一个一维整形数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,请写出正确的说明语句。 ___
(2)该数组下标的取值范围是从___到___(从小到大)。
(3)如何用scanf函数输入数组的第二个元素。 ___
(4)如何用赋值语句把39存入第一个元素。 ___
(5)如何表示把第六个和第四个元素之和存入第一个元素。 ___
答案: int array[10] = {9,4,7,49,32,-5};
0 9
scanf("%d",&array[1]);
array[0] = 39;
array[0] = array[5] + array[3];
【11】若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为 A 。(假设a[0][0]位于数组的第一个位置上。)
A)i*m+j+1 B)j*m+i C)i*m+j-1 D)i*m+j
【12】若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是 B 。
A)2B)3C)4D)无确定值
【13】定义如下变量和数组:
int k;
int a[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是 A 。
for(k=0;k<3;k++) printf("%d",a[k][2-k]);
A)3 5 7B)3 6 9C)1 5 9D)1 4 7