教材第125-127页《计算机基础与程序设计》

一单项选择题
1.【精析】A定义二维数组时对第一维的长度可以不指定,但第二维的长度不能省略,A选项正确。
2.【精析】C数组所占字节数由数组的大小来确定,该数组包含10个整型元素,故在内存中所占字节数是40.
3.【精析】D 数组b有三行三列,第一行为1、2、3,第二行为4、5、6,第三行为7、8、0.b[2][1]是第三行第二列的元素,即8.
4.【精析】C 因为系统在字符串的末尾自动添加了一个字符串结束标志‘\0',因此数组a的实际长度为8.
技巧点拨
编译系统在用字符数组存储字符串常量时会自动加一个‘\0'作为结束符。
5.【精析】 C 在C选项中,赋值号左侧的数组名a是数组的首地址,是一个常量,C语言规定不能对常量赋值,只能对变量进行赋值。
6.【精析】 D 定义数组时,[]中只能是常量表达式,包括常量和符号常量,不能包含变量,D选项错误。
7.【精析】 D a[1][4]超出了数组第二维的下标范围,D选项错误。
易错提醒
数组中的下标是从0开始的。
8.【精析】 D 数组第二维的下标不能省略,第一维的下标可以省略,D选项错误。
9.【精析】A数组的下标不能为变量,整型表达式中可能包含整型变量,B、C、D选项错误;数组的下标可以是整型常量表达式,A选项正确。
10.【精析】D将字符串存入字符数组时,由于它有一个结束符‘\0',数组长度至少是字符串的有效长度加1,D选项错误。
11.【精析】B定义数组时,[]中只能是常量表达式,A、C选项错误。数组定义时要确定数组的大小,D选项错误。
12.【精析】D 字符串比较需要调用strcmp函数,即字符串比较函数。
13.【精析】D数组下标不能为变量,A选项错误;B选项赋值的行数过多不正确;数组的第2维不能省略,C选项错误;没有被赋值的元素自动取默认值0,D选项正确。
14.【精析】A字符串的末尾系统会自动添加一个字符串结束标志‘\0',这样字符串" good!"的实际长度为6,超出了数组的下标范围,选项A错误。
15.【答案】A
16.【精析】D定义数组时,数组名后是用方括号括起的常量表达式,不能为变量(或变量表达式),方括号也不能用圆括号,故选D.
17.【精析】D在对二维数组初始化时,如果对全部元素赋初值,则定义数组时可以不指定第一维的长度,但第二维的长度不能省略,故选D.
18.【精析】B在对二维数组初始化时,如果对全部元素赋初值,则定义数组时可以不指定第一维的长度,但第二维的长度不能省略,A选项错误;选项C中数组a为两行四列,但定义了三行,是不正确的;选项D中数组a每行有三列,但第二行中没有元素,是错误的。
19.【精析】CC选项中,定义了3个元素,超出了一个,数组越界了,不正确。
20.【精析】D数组a的下标范围是0~9,a[10]越界,A选项错误;数组的下标不能为小数,B选项错误;a(5)下标使用的格式不正确,C选项错误;a[10-10]等价于a[0],D选项正确。
21.【精析】A输入字符数组时应该采用“%s”格式符,数组名代表数组的首地址,用“%s”格式符通过scanf()函数输入字符串时,数组名前不需要加取地址运算符(&)。
易错提醒
scanf函数中的输入项如果是数组名,不要再加取地址符&,因为在C语言中数组名代表该数组的起始地址。
22.【精析】B数据元素之所以相关,是因为它们具有相同的名字和类型。
23.【精析】B二维数组使用双下标。
二判断题
1.【精析】×字符串比较的原理是从第一个字符开始比较,如果两个字符不相同,则根据其对应ASCⅡ码大小返回比较结果。如果相同,才继续比较下一个字符。字符个数相同或不相同都可以进行比较。
2.【精析】 可以用strcmp函数比较字符串的大小,但是不能用关系运算符来比较。
3.【精析】 整型数组未初始化有两种情况,一种是全局数组,会被编译器初始化为0,另一种是局部数组,会出现随机数。
4.【答案】
5.【答案】
6.【精析】 数组的下标通常是整型。
7.【精析】×一个数组中的所有元素都属于同一个数据类型。不能把不同类型的数据放在同一个数组中。
8.【精析】×将一个数组传递给一个方法,应使用不加方括号的数组名。
三填空题
1.以行为主顺序存放
2.0 4
3.0 6
4.[常量表达式1][常量表达式2]
5.9
6.字符串连接 字符串复制 输出字符串
7.3
8.0
9.连续 数组名 地址
10.2 0
11.15
四简答题
1.【参考答案】不能直接使用赋值语句将一个字符串常量或字符数组复制到一个字符数组中。赋值语句只能将一个字符赋给一个字符型变量或字符数组元素,若要将一个字符串复制到另一个字符数组中,必须使用strcpy函数。
2.【参考答案】(1)一维数组是最简单的数组,数组元素只有1个下标。要使用数组,必须在程序中先定义数组,在定义数组时需要指定数组元素的类型、数组名和数组中元素的个数。定义一维数组的一般形式为:类型名数组名[常量表达式];
(2)定义和初始化数组:
int a[10]={1,2,3};
3.【参考答案】字符数组的输入输出可以用以下两种方法:
(1)逐个输入或输出字符。用格式声明“%c”。
(2)将整个字符串一次性输入或输出。用格式声明“%s”对字符串进行输入输出。