一、选择题
1. 若有定义:
则与上述定义完全等价的说明语句是( )。
A.int*a[20][10];
B.int*a[20];
C.int*a[10];
D.int*a[10][20];
答:A
【解析】新定义的类型T 为大小为10的整型数组,定义T 型指针数组*a[20],等价于定义了一个指向整型长度为10的数组的指针数组,这个指针数组大小为20,即为整型指针二维数组,行20列10,A 项正确。
2. 有以下程序:
程序运行后的输出结果是( )。
A.02
B.13
C.57
D.12
答:D 【解析】具有短路效应,当前面的表达式结果为逻辑假时后面的表达式不在进行
的计算,k 的值为1, 所以结果为1和2。计算。k++首先去k 的值,为0, 为逻辑假不在进行
3. 有以下程序:
程序运行后的输出结果是( )。
A.10,64
B.10,10
C.64,10
D.64,64
答:A
【解析】C 语言中带参数的宏可以理解为用参数直接替代定义式中的变量,而不经过任何修改。所以
,
4. 有以下程序
、
程序的运行结果是( )。
A.4332
B.2344
C.1234
D.1123
答:A 【解析】元素作为c 数组的下标,使c 数组元素自増,执行完毕后,自增4次,自增3次,自増3次,
5. 有以下程序
自增2次,c 数组元素为04332,按题目要求输出,4332。 •
程序运行后的输出结果是( )。
A.8,7,3, 1,
B.1, 6,5,7,
C.4, 7, 5, 2,
D.1,6,2,1,
答:B
【解析】先对二维数组的每列从小到大排序,然后输出对角线元素。
6. 有如下程序:
程序运行后的输出结果是( )。
A.8, 2,
B •8,8,
C.2, 4,
D.4, 8,
答:A
【解析】*的优先级低于++,即先运算组下一个元素;i=l,输出再运算程序执行过程为:定义指针ptr 与数组然后指针加1, 指向数array , 执行for 循环,使指针指向数组,i=0, 输出指针指向的元素指针指向数组下一个元素;i=2退出for 循环。程序依次输出8, 2。
7. 设有定义:doublex=2.12; ,以下不能完整输出变量x 值的语句是( )。