《历年全国计算机二级C语言试题库完整.doc》这份文档包含了多道关于C语言的知识题目,旨在帮助考生准备计算机二级考试。下面将对其中的部分题目进行详细解析,以便深入理解和掌握C语言的基础概念。
1. 题目指出,C程序实现的算法可以没有输入但必须要有输出。这表明C程序至少需要有一个输出结果,但输入可以是零个或多个。正确答案是C)用 C 程序实现的算法可以没有输入但必须要有输出。
2. 用户标识符是用来命名变量、函数等的符号,需遵循一定的规则。B) a3_3, _123, Car 是合法的标识符,因为它们不包含非法字符(如void、case是关键字,不能用作标识符),且不以数字开头。
3. C语言中的常量有特定的表示方式。A) -80 是合法的整型常量;B) -080 以0开头的数字通常被视为八进制,但八进制数不能以0开头,所以是非法的;C) -8e1.0 和 D) -80.0e 缺少小数点后的数字,不是合法的浮点数常量。因此,正确答案是A) -80。
4. 语句 `char *line[5];` 定义了一个名为line的指针数组,其中每个元素都是一个指向字符的指针。所以A)和D)的描述是错误的。B)的描述虽然部分正确,但没有明确指出line是一个指针数组。C)正确地描述了line是一个指针数组,其中的*号表示指针,而不是间址运算符。因此,正确答案是C)。
5. 在C语言中,正确定义变量的语句应确保类型匹配。A)同时初始化两个变量是不允许的;B)正确地定义了字符变量和整型变量;C)在*b=&b中,b指向了a的地址,然后*c又指向了b的地址,这不是标准做法;D)double类型的变量不能用0 0来初始化。因此,正确答案是B)。
6. 题目中,`printf("%c,%d,",ch,ch,k);` 和 `printf("k=%d \n",k);` 会分别输出字符和对应的ASCII码以及变量k的值。由于字符'a'的ASCII码是97,所以输出将是 `a,97,12k=12`。因此,正确答案是C) a,97,k=12。
7. 给定的程序段用于计算50以内同时能被3和5整除的数字之和。由于15、30、45满足条件,所以结果是1+15+30+45=91。正确答案是D) 91。
8. 表达式 `(c>=2&& c<=6)&&(c%2!=1)` 用于判断变量c的值是否为偶数且在2到6之间。如果c的值不为2、4、6,这个表达式依然为真,因为其他偶数(如8)也会满足条件。
9. 该程序段通过if语句改变变量a和c的值。a的值赋给c,然后如果c不等于a,c的值将变为b。初始值下,a=3, b=5, c=7。经过if语句后,a保持不变,c的值变为3。因此,输出是3,5,3。正确答案是B) 3,5,3。
10. 这个程序使用了嵌套的switch语句。对于x=1的情况,y的值没有影响a和b。当x=2时,无论y为何值,a和b都会加1。因此,最终结果是a=2, b=2。正确答案是B) a=2,b=2。
11. 该程序用于统计1到9中奇数和偶数的数量。当i是偶数时,a递增;否则,b递增。因此,a的值为4(偶数2, 4, 6, 8),b的值为5(包括1)。正确答案是B) a=4,b=5。
至于 `while (t=1)` 这个语句,由于赋值运算符的优先级高于关系运算符,所以t会被赋值为1,然后立即检查是否为1,导致循环永远执行。因此,这是一个无限循环。