C语言复习题及答案-第七章-数组
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言复习题及答案-第七章-数组
第七章数组 (8学时)
学习目的与要求:
1 、重点掌握一维数组的定义和引用;
2 、基本掌握二维数组的定义和引用;
3 、重点掌握字符型数组的定义与引用;
4 、能正确使用字符串处理函数;
5 、学会使用数组解决实际问题。
重点:
1 、一维数组的定义与引用;
2 、二维数组的定义与引用;
3 、字符数组的定义与引用;
第1讲
知识归纳:
1、一维数组的定义:类型说明符数组名[ 常量表达式] ;
(1) (1)数组名后必须用方括弧[ ] ,用其他括
弧均错误;
(2) 方括弧中的常量表达式表示数组的元素个数;
(3) 方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量;
2、一维数组的引用:
数组名[ 下标] //下标从0开始,可以是整型常量或整型表达式;
(1) 注意:数组元素引用时,不要超出数组范围;
如int a[10] ;
二、填空题
1、构成数组的各个元素必须具有相同的类型。C语言中数组的下标必须是整正数、0或整型表达式。如果一维数组的长度为n ,则数组下标的最小值为0,最大值为n-1。
2、在C语言中,一维数组的定义方式为:类型说说明符数组名[常量表达式]。
3、已知数组b定义为int b[ ]={9,6,3};,则b的各元素的值分别是,
最小下标是,最大下标的。9,6,3 0 ,2 4、在C语言中数组名是一个常量,不能对其进行加、减及赋值操作。
5、已知数组T为一有10个单元的整型数组,正序输出T中的10个元素的值的语句为:
for (j=0;j<10;j++) printf(“%d”,T[j]);
下面的语句试图按相反的顺序显示输出T中的10个元素的相反数;请补充完整下面的语句:for(j=9;j>=0;j- -)printf(“%d”,T[j]);
三、综合题
1、下面程序(每行程序前面的数字表示行号),请指出存在错误的行号(3)
1 main()
2 {
3 int a[3]={3*0};
4 int i;
5 for(i=0;i<3;i++) scanf("%d",&a[i]);
6 for(i=1;i<3;i++) a[0]=a[0]+a[i];
7 7printf("%d\n",a[0]);
8 }
2、下面程序(每行程序前面的数字表示行号),请指出存在错误的行号(5)
1 1main()
2 2{
3 3int a[3];
4 4int i;
5 5scanf(“%d”,&a);
6 6for(i=0;i<3;i++) a[0]=a[0]+a[i];
7 7printf(“a[0]=%d”,a[0]);
8 8}
3、下面程序(每行程序前面的数字表示行号),请指出存在错误的行号(7)
1 1main()
2 2{
3 3int a[3];
4 4int i;
5 5for (i=0;i<3;i++) scanf(“%d”,&a[i]);
6 6for(i=1;i<3;i++) a[0]=a[0]+a[i]);
7 7printf(“%d\n”,a);
8 8}
第2讲
知识归纳:
1、二维数组的定义:
类型说明符数组名[ 常量表达式 1 ][常量表达式2] ;
(1)常量表达式1------可以形象理解为行数;
常量表达式2-----可以形象理解
为列数;
(2) 二维数组中元素存放顺序是:先存放第一行的元素,再存放第二行的元素,依次类推;
2、二维数组的引用:
数组名[ 下标] [ 下标]
//下标从0开始,可以是整型常量或整型表达式;
(1) 注意:数组元素引用时,不要超出数组范围;
如int a[3 ] [4] ;
//可以引用的数组元素为a[0][0]……a[2][3] , a[3][4]不是本数组元素;(2) 可以在循环控制下,给二维数组各元素赋值;
如:int a[3] [4];
for ( i=0 ; i <3 ;i ++ )
for ( j=0 ; j<4;j++)
a [ i ] = i * j;
3、二维数组的初始化:
(1)可以在定义数组后,立刻赋值;如int a [3][4] = { 1,3, 5,7,9,11} ;
但下面这样是错误的:
int a[3][4] ;
a = { 1,3, 5,7,9,11} ;
(2) (2)可以给数组的部分元素赋值,不赋值
的元素,默认值为int 0, char, ‘’, float
0.0 ;
(3) 在对数组全部元素赋初值时,可以省略行
数,但不能省略列数;
基础练习(A)
一、选择题
1、在C语言中,二维数组元素在内存中的存放顺序是()。
A)按行存放B)按列存放
C)由用户自己定义D)由编译器决定
2、以下对二维数组a的正确说明是()。A)int a[3][] B) float a(3,4) C) double a[1][4]
D) float a(3)(4)
3、已知:int a[3][4];则对数组元素引用正确的是()。
A)a[2][4] B)a[1,3] C) a[2][0] D) a(2)(1)
4、已知:int a[3][4]={0};则下面正确的叙述是()。
A)只有元素a[0][0]可得到初值0
B)此说明语句是错误的
C)数组a中的每个元素都可得到初值,但其值不一定为0
D)数组a中的每个元素均可得到初值0 5、以下正确的语句是()。
A)int a[1][4]={1,2,3,4,5}; B) float x[3][]={{1},{2},{3}};
C) long b[2][3]={{1},{1,2},{1,2,3}}; D) double y[][3]={0};
6、以下能对二维数组元素a进行正确初始化的语句是()。