(27)b 【解析】 在 main 函数中,对 f(1)和 f(2)的值进行了累加。 f(1)=1 f(2)=f(1)+1=2 最后,j 的值为 1+2=3 (28)a 【解析】 本题主要考查的知识点是大写字母比它对应的小写字母 ascii 码值小 32,并且字符可以看作 整数进行算术运算等操作。 (29)b 【解析】 本题用循环的方法考查对数组概念的掌握。首先,当 i=0 时,数组中的位置是 a[2][0]=7,当然,如 果用排除法,就不用考虑后面的循环,因为在 4 个选项中,第 1 个数为 7 的选项只有 b)。本题执行第 2 次循环时,i 的 值为 1,则 printf 函数中的数组指向为 a[1][1]=5,依次循环,可求出答案。
(30)a 【解析】 通过地址来引用二维数组,若有以下定义:int a[3][4],i,j;且当 0≤i≤3,0≤j<4 则可以有以下几种方式 来引用数组中的第 i 行,第 j 列的元素: a[i][j] , *(a[i]+j), *(*(a+i)+j),(*(a+i))[j],*(&a[0][0]+4*i+j) 。表达式 &a[0][0]+2*i+j-2 相当于是地址&a[0][0]加上多少偏移量。 (31)c 【解析】 本题的选项 a)和 b)犯了同样的错误,即指针变量在定义后并没有指向具体的变量。也就是说, 指针变量中没有确定的地址值,它的值是不可预见的,所指的单元也是不可预见的,因此不能进行赋值操作。另外, 在选项 d)中,s 是 int 型指针变量,p 是 char 型指针变量,所指向的内存单元所占用的字节数是不同的,因而不能将字 符指针变量 p 的值赋给整型指针变量 s。 (32)c 【解析】 本段程序的作用是输出字符串"lanuage"中字母 u 之前的字符,并将其转化为大写字母。 注意:如果一个字符数组用来作为字符串使用,那么在定义该字符数组时,数组的大小就应该比它将要实际存放的最 长字符多一个元素,以存放。
(33)d 【解析】 本题考查了二维数组元素引用的方法。题中用动态存储分配函数 malloc 分配了一个 int 型数 据长度大小的内存,然后指针 p 指向了这段内存,函数 f()中对 p 所指向的数据进行了赋值,p[1][1]为二维数组第二行 第二列的元素,对应于实参 a 的元素 5,所以输出结果为 5。 (34)b 【解析】 调用函数 f()时,将数组 a 的地址传递给了指针 q,此时 q 指向的就是数组 a 的第一个元素 a[0]。 在 5 次循环过程中,q 始终指向 a[0],因此 a[0]的值增加了 5。最后的输出结果为"6,2,3,4,5"。 (35)a 【解析】 c 语言的字符常量是用单引号(即撇号)括起来的一个字符。除此之外,在 c 语言中还允许用一个 "" 开头的字符序列来表示字符常量。其中,形式"ddd"表示 1 到 3 位 8 进制数所代表的字符;形式"xhh"表示 1 到 2 位 16 进制数所代表的字符。在本题中,x13表示回车符,是一个字符常量;81用 8 进制数所代表的字符, 但形式不正确,因为 8 进制数所代表的字符中不会出现数字"8";65不是一个字符,而是一个十进制数字;"" 是用双引号括起来的一个字符,表示一个字符串,而不是字符常量。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28349-37.html
或
图片上的虫明显是未加工过的活虫
虽远必诛