(22)b 【解析】 本题中,"!"表示逻辑非运算符,"!="表示不等于运算符,逻辑非运算符比不等于运算符的优先级 高。 (23)c 【解析】 对于字符串指针,其保留的是整个串的首地址,即第一个字符的起始地址;当该指针做算术运算 时,就是该指针根据其类型向后移动相应的存储空间。 (24)a 【解析】 数组 c[][4]表示一个 4 行 4 列数组,c[2][2]表示第 3 行第 3 列上的元素 62,*(*(c+1)+1))表示第 2 行第 2 列上的元素 6,通过十六进制输出为 3e,6。 (25)c 【解析】 选项 a)char *a;*a="china"应改为 a=china ;, 项 b)应该是 char str[6];d)项表述方法有错误。 选 (26)d 【解析】 c 语言中数组下标是从 0 开始的,所以二维数组 a[2][3]的第一维下标取值为 0、1;第二维的下 标取值为 0、1、2,因而选项 a)、b)、c)都是错误的,选项 d)表示数组元素 a[0][0]。 (27)d 【解析】 在格式输入中,要求给出的是变易的地址,而 d)答案中给出的 s[1]是一个值的表达式。
(28)b 【解析】 根据宏替换的替换规则,我们可知,f(2)=2*n+1=2*5+1=11,f(1+1)=1+1*n+1=1+1*5+1=7。 (29)d 【解析】 选项 a),共用体的每个成员的起始地址都相同;选项 b),共用体变量所占的内存长度等于最长的 成员的长度;选项 c)因为每个成员的起始地址相同,所以整型数 5 以浮点型输出时为 5.000000;选项 d)c 语言规定, 不能把共用体变量作为函数的参数。 (30)d 【解析】 将有 6 个元素的整型数组分两行输出到一个文件中,因为输出的都是数字并且每行都没有分隔 符,所以当再对其进行读取操作时,每一行都会被认为是一个完整的数,而换行符则作为它们的分隔符。 (31)d 【解析】 通常,引用一个数组元素可以用下标法,如 a[p-a]形式,或指针法,如*(&a[i])的形式。本题中 a[9]=9,a[10]显然超出数组范围,注意,数组的下标是从 0 开始的。 (32)c 【解析】 函数 fun(int *s,int n1,int n2)的功能是对数组 s 中的元素进行首尾互相调换。所以在主函数中, 当 fun(a,0,3)执行完后,数组 a[12]={4,3,2,1,5,6,7,8,9,0};再执行 fun(a,4,9),数组 a[12]={4,3,2,1,0,9,8,7,6,5};再执行 fun(a,0,9)后,数组 a[12]={5,6,7,8,9,0,1,2,3,4}。
(33)a 【解析】 本题题意要求删除所有空格,即除了空格以外的其他所有字符都要留下。由于 c 语言中没有直 接删除字符的操作,所以我们对于删除字符的操作都是采用"留下"字符的算法,以前的题目亦是如此。用 str[i]从串 头到串尾逐一走动,每走到一个字符都判断其是否为空格,若不是空格(注意在 if()的单引号之间有一个空格),则将其 保存 str[j]中。注意 j 的下标变化、初值及最后加串结束符。 (34)a 【解析】 本程序考察的是函数的递归调用,在调用一个函数的过程中又出现直接或间接地调用该函数本 身,称为函数的递归调用,执行结果为 1+2+3+4+5+6+7+8+9+10=55。 (35)c 【解析】 本题中,格式符 0 表示的是八进制无符号形式输出整型数(不带前导 0),字符常量在内存中占一个 字节,存放的是 acsii 码代码值。c 语言规定,所有字符常量都作为整型量来处理,在计算机内部,其对应的整数值就 是 acsii 字符集中该字符的序号,即&*s 中有几个字符就输出几个*。 (36)b 【解析】 结构体类型的变量在程序运行期间要作为一个整体占用连续的内存单元。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28349-13.html
早安
侧脸
你马云说得有错吗
如果他们胆敢撞击或者攻击我们的渔船