c 语言的语法规定,else 子句总是与前面最近的不带 else 的 if 匹配,与书写格式 无关,本题目的后一个 if-else 相当于嵌套在第一个 if 子句里,相当于 x<y&&y<0 时,z=0;当 x<y&&y>=0 时,z=z+1。 (20)a 【解析】 本题主要考查 switch 语句的使用方法。switch 语句的执行过程为:进入 switch 结构后,对条件 表达式进行运算,然后从上至下去找与条件表达式值相匹配的 case,以此作为入口,执行 switch 结构中后面的各语句, 直到遇到 break 语句,则跳出 switch 语句,如果各 case 都不匹配时,则执行 default 后面的语句。 (21)a 【解析】 本题考查用于多分支选择的 switch 语句, 其一般形式为: switch(表达式) { case 常量表达式 1: 语句 1; case 常量表达式 2: 语句 2; … case 常量表达式 n: 语句 n; default : 语句 n+1; } 其语义是:计算表达式的值,并逐个与其后的常量表达式值进行比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有 case 后的语句;如表达式的值与所有 case 后的常量表达 式均不相等时,则执行 default 后的语句。
(22)d 【解析】 在 c 语言中,定义一维数组的语句一般形式如下: 类型名 数组名[常量表达式]; 一维数组的引用形式为:数组名[下标表达式]。 count 表示能被 2 整除或被 5 整除的个数,i 则计算有多少个数组元素。 (23)d 【解析】 在 c 语言中,数组元素下标是从 0 开始的;指针变量 p 指向数组的首地址。for 循环语句中,指针 变量 p 始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为 2。 (24)b 【解析】 本题考查循环语句的嵌套以及条件的判断问题。在程序中,内层循环判断条件为" j<=i ", 而 j 的初值为 3,故当 i 的值为 1 和 2 时,内层循环体都不会被执行。只有当 i 和 j 都等于 3 时才会执行一次。m 的值为 55 对 3 取模,计算结果为 1。
(25)c 【解析】 在 c 语言中,字符型数据在内存中的存储形式是 ascii 码值。当需要以整型格式输出字符时, 输出的也是 ascii 码值。字符a和d的 ascii 码值分别为 65 和 68。 (26)d 【解析】 本题中直接使用指针变量 k,但在使用时要注意对 k 的指针运算。此外,一开始应知道*k 的值 为数组中的某一下标值,即*k=0,本函数的功能是找出数组中的最大元素的位置及最大元素的值。 (27)b 【解析】 argc 中存入的是命令行中字符串的个数。argv 是一个指向字符型的指针数组的指针。 (28)c 【解析】 p=&a[3]将指针指向数组 a 的第 4 个元素,p[5]指向数组 a 的第 9 个元素,而 a[8]=9,所以 b=9。 29)c 【解析】 函数形参和实参分别占用不同的内存单元,改变形参的值不会影响对应实参的值,选项 a)正确。 指针类型的函数可以返回地址值,选项 b)正确。在文件 stdio.h 中,null 被定义为 void 型的指针,选项 d)也正确。 指针变量的值只能是存储单元地址,而不能是一个整数,选项 c)错误。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-28349-28.html
你还在为美爹洗地
你说的这点地球人都知道