(30)c 【解析】 此题考查了指针引用一维数组元素的方法。*p+9 因为运算符"*"的优先级高于"+",所以输出结 果为 p 指向的元素 1,然后加 9,值为 10。 (31)b 【解析】 字符串连接函数 strcat 的调用形式如下:strcat(s1,s2)。此函数将 s2 所指字符串的内容连接到 s1 所指的字符串后面,并自动覆盖 s1 串末尾的尾标,函数返回 s1 的地址值。 (32)a 【解析】 本题综合考查字符数组的赋值和 strcpy 函数的用法。c 语言不允许用赋值表达式对字符数组 赋值,如下面的语句就是非法的:str1= "china", 如果想把"china"这 5 个字符放到数组 str1 中,除了逐个输入外,还 能使用 strcpy 函数,该函数的功能是将一个字符串复制到一字符数组中。 例如:strcpy(str1,"china")或 strcpy(str1,str2); 注意,不能企图用以下语句来实行赋值(将 str2 的值传给 str1):str1=str2;不能用赋值语句将一个字符串常量或字符数 组直接给一个字符数组。
strcpy 函数的结构是:strcpy(字符数组 1,字符串 2) 其中,需要注意的是,字符数组 1 的长度不应小于字符串 2 的长度,"字符数组 1"必须写成数组名形式,如(str1),"字符 串 2"可以是字符数组名,也可以是字符串常量,不能用赋值语句将一个字符串常量或字符数组直接给一个字符数 组。 (33)c 【解析】 在 fun 函数中,while 循环的功能是:逐个取字符数组 s 的字符判断其是否是数字。若是则将其 作为个位数字保存到变量 n 中,n 的原数据的各个数位将相应左移一个 10 进制位。当指针 s 指向数组的第 3 位时, 循环条件不成立,循环结束,返回 n 的值,输出 n 的值为 61。 (34)a 【解析】 在本题中,p 和 q 同为指向字符类型数据的指针。*q 和 p[0]同为字符型数据。选项 b)、c)和 d)都符合题目的要求;选项 a)计算得出的是指针类型数据所占的内存字节数。 (35)a 【解析】 循环开始前,指针 t 和 s 都指向字符串的起始位置,然后通过 while 循环判断 t 指向的位置是否为空, 同时让 t 向右移动一位。
while 循环结束时,t 自减 1,此时 t 指向的位置是字符串的结束标志处,故 t-s 的值是字符 串的长度,并不包括结束标志。 (36)c 【解析】 本题综合考查了输入函数的使用。scanf 函数会将空格视为分隔符,getchar 函数只能输入单个 字符,getc 函数是文件操作函数,显然都不符合题意。通过 gets 函数输入字符串时,输入的空格被认为是字符串的一 个字符。 (37)d 【解析】 通过赋初值的方式给一维数组赋字符串,可以用给一般数组赋初值的相同方式给一维字符数组 赋字符串,也可以在赋值时直接赋字符串常量。选项 b)和 c)后面的是多余的,在 c 语言中,系统会自动在字符串 的结尾处加上一个字符作为串的结束标记。 (38)d 【解析】 函数的静态局部变量在编译时就赋初值,即只赋初值一次,在程序运行时它已有初值,以后每次 调用函数时不再重新赋值,而只是保留上次函数调用结束时的值。 (39)c 【解析】 带参数的宏定义命令行形式如下: #define 宏名(形参表) 替换文本 在编译的时候编译预处理程序用"替换文本"来替换宏,即 m(n,m)被替换为 n%m,之后计算,将计算的结果赋给 a。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28349-29.html
奥巴马政府选择了一个看似聪明的策略
唉
傻大个简直~南海人工岛礁没多久就会部署防御性武器了
他们要来就来吧
我TMD也是醉了