18.下列关于数组下标的描述中,错误的是( B )。
A.C++语言中数组元素的下标是从0开始的 B.数组元素下标是一个整常型表达式 C.数组元素可以用下标来表示
D.数组元素的某维下标值应小于该维的大小值 19.下列关于初始值表的描述中,错误的是( C )。
A.数组可以使用初始值表进行初始化
B.初始值表是用一对花括号括起的若干个数据项组成的 C.初始值表中数据项的个数必须与该数组的元素个数相等
D.使用初始值表给数组初始化时,没有被初始化的元素都具有默认值 20.下列关于字符数组的描述中,错误的是( D )。
A.字符数组中的每一个元素都是字符 B.字符数组可以使用初始值表进行初始化 C.字符数组可以存放字符串
D.字符数组就是字符串
21.下列关于字符串的描述中,错误的是( C )。
A.一维字符数组可以存放一个字符串 B.二维字符数组可以存放多个字符串
C.可以使用一个字符串给二维字符数组赋值
D.可以用一个字符串给二维字符数组初始化
22.已知:int a[5] = {1, 2, 3, 4}; 下列数组元素值为2的数组元素是( B )。 A.a[0] B.a[1] C.a[2] D.a[3]
23.已知:int ab[ ][3] = {{1, 5, 6}, {3}, {0,2}}; 数组元素ab[1][1]的值为( A )。
A.0 B.1 C.2 D.3
24.已知:char s[ ]=\;输出显示字符'c'的表达式是( C )。
A.s B.s+2 C.s[2] D.s[3]
25.已知:char ss[ ][6]={\;输出显示\字符串的表达式是( B )。
A.ss[3] B.ss[3]+1
C.ss+3 D.ss[3][1] 2.3 填空题
1.C++语言中,基本数据类型包含有整型、浮点型 、 字符型 、空值型和 布尔型。 2.变量的存储类可分为自动类 、 寄存器类 、 外邹类 和静态存储类。 3.浮点型常量可分为单精度、双精度 和 长双精度 浮点型常量。
4.结合性从右至左的运算符有单目运算符 、 双目运算符 和赋值运算符。
5.条件表达式是由三目 运算符组成的,该表达式的类型是由冒号左边和右边两个操作数中类型高 的操作数类型决定的。 6.已知:double dd[ ][3]={{1.2, 2.4, 3.6}, {4.8, 5.2},{6.4}}; 这里dd是一个二 维数组的数组名,该数组共有 9 个元素,每个元素的类型是 double 。数组元素dd[0][0]的值是 1.2 ,dd[1][1]的值是 5.2 ,数组元素dd[2][2]的值是 0 。
7.已知:char ss[ ][6]={\while\字符数组ss是二 维数组,它的第
1维大小应该是 4 。使用cout和<<输出字符串\时,对应的表达式是 ss+2 。使用cout和<<输出字符串\的子串\时,对应的表达式是 ss[1]+1 。使用cout和<<输出字符串else中的字符's'时,对应的表达式是 ss[3][2] 。
2.4 分析下列程序
2.
#include
const int A=8; const char CH='k'; const double D=8.5; cout<<\
cout<<\ cout<<\ } 答: A=8 CH=2=m D-5.8=2.7
3.
#include
cout<<\ static int c;
cout<<\ const long int d=8;
cout<<\ }
答: a+b=14 c+a=9 a+d-b=12
4.
#include
cout<<\ { int a=5; b='n';
cout<<\
}
cout<<\ }
答: a=5,b=m a=3,b=n a=3,b=n
3.2 单选题
1.下列关于语句的描述中,错误的是( A )。 A.C++程序中的函数是由若干条语句组成的 B.每条语句都要实现某种操作 C.条件语句是用来实现分支操作的
D.循环语句是用来在一定条件下重复执行某段程序的 2.下列关于条件语句的描述中,错误的是( C )。 A.if语句中最多只能有一个else子句 B.if语句的if体内可以出现开关语句
C.if语句中else if子句和else子句的顺序是没有限制的 D.if语句中else子句是与它最近的if子句配对的 3.下列关于开关语句的描述中,错误的是( B )。 A.开关语句中,case子句的个数是不受限制的
B.开关语句中,case子句的语句序列中一定要有break语句
C.开关语句中,default子句可以省略
D.开关语句中,右花括号具有退出开关语句的功能 4.下列关于循环语句的描述中,错误的是( A )。
A.while循环语句中<条件>给定的表达式不能为非0的常量,否则便是死循环
B.for循环语句的循环体内可以出现while循环语句、do-while循环语句和for循环语
句 C.循环语句的循环体可以是空语句
D.循环语句的循环体内可以出现break语句,也可以出现continue语句 5.已知:int i(3);下列do-while循环语句的循环次数是( D )。
do{
cout< }while(i!=0); A.0 B.3 C.1 D.无限 6.下列for循环语句的循环次数是( B )。 for(int i(0), j(5); i=3; i++, j--); A.3 B.无限 C.5 D.0 7.下列while循环语句的循环次数是( A )。 while(int i(0)) i--; A.0 B.1 C.2 D.无限 8.下列程序段执行后,j值是( B )。 for(int i(0), j(0); i<10; i++) if(i) j++; A.0 B.9 C.10 D.无限 9.已知:typedef char CH;下列描述中,正确的是( A )。 A.使用CH定义的变量是char型变量 B.使用CH定义的是一个字符常量 C.使用CH定义的变量其类型不确定 D.使用CH定义的是一个字符串 10.下列关于预处理命令的描述中,错误的是( D )。 A.预处理命令最左边的标识符是# B.预处理命令是在编译前处理的 C.宏定义命令可以定义符号常量 D.文件包含命令只能包含.h文件 3.3 填空题 1.表达式语句是一个表达式后边加上 分号(;) 组成的。空语句是只有一个分号的语句。 2.复合语句是由 两条条或 两条 条以上的语句加上 花括号({}) 组成的。 3.分程序是一种带有 说明 语句的复合语句。 4.循环语句的共同特点是都应具有循环体 和 退出循环的条件 。 5.下列程序是求100之内的能被7整除的自然数之和。 #inelude for(int i(1);__i<=100_; i++) if(_i%7==0__) sum+=i; cout< 3.4 上机调试下列程序,并分析其输出结果 1. #include int a(8),b(5); if(!a) b--; else if(b) if(a) a++; else a--;

