全国计算机等级考试:二级C语言程序设计精选习题解析

版权申诉
0 下载量 107 浏览量 更新于2024-09-09 收藏 46KB DOC 举报
"2014年全国计算机等级考试二级C语言程序设计的习题集,包含选择题,涉及指针、数组、内存管理、字符串处理等知识点。" 以下是相关知识点的详细说明: 1. 指针操作: - 指针变量可以存储变量的地址,`p` 是指向 `a` 数组的指针,`k` 是指向指针 `p` 的指针。题目中的 `*(p++)` 先输出指针 `p` 指向的值(即 `a[0]`,即 `2`),然后指针 `p` 前进一位。`**k` 在 `p++` 后执行,此时 `k` 仍然指向 `p` 的初始位置,因此 `**k` 输出 `a[0]` 的值,即 `2`。所以答案是 B.22。 2. 数组与指针的关系: - `a` 是一个整型数组,`p` 指向 `a` 的首元素。`a+1` 和 `p+1` 都表示指向 `a[1]` 的地址,但 `a++` 是非法的,因为它会改变数组名 `a`,而数组名在 C 语言中是常量,不能被修改。所以答案是 C.a++。 3. 变量声明: - C 语言中,变量声明时可以连续声明多个相同类型的变量,如 `char a, b, c;`。选项 A 和 B 的逗号之间缺少空格,选项 C 是正确的声明方式,而选项 D 中的分号多余。所以正确答案是 C.char a,b,c; 4. 数组的索引操作: - `x` 是一个 3x3 的二维数组,`x[i][2-i]` 的计算结果会在数组的第一列、中间列和最后一列取值,即 1, 5, 9。因此,`for` 循环的输出是 `159`。答案是 A.159。 5. 数组内存布局: - 在 C 语言中,一维数组中元素的地址是连续的,每个(短)整型占两个字节。因此,如果数组 `A` 的首地址为 `P`,第 `i` 个元素的地址应该是 `P + i * sizeof(int)`,由于题目中说的是(短)整型,所以地址是 `P + i * 2`。答案是 A.P+i*2。 6. 二维数组初始化: - A 选项的初始化多了一个括号;B 选项是正确的初始化方式,它会自动扩展到足够的行数;C 和 D 选项中数组的第二维没有指定长度,是非法的。所以正确答案是 B.inta[][3]={1,2,3,4,5,6}; 7. C 语言表达式求值规则: - C 语言中的逗号运算符按从左到右的顺序计算,每个表达式的结果是最后一个表达式的值。在给定的程序中,`(n=6*4,n+6),n*2;` 先计算 `n=6*4`(`n` 被赋值为 24),然后计算 `n+6`(结果是 30,但这个值不会被赋给 `n`),最后计算 `n*2`(`n` 仍然是 24,因此结果是 48)。输出是 `48`。答案是 D.48。 8. 文件操作: - 使用 `fopen` 函数以只读方式打开文件时,参数应为 `"r"`。答案是 A."r"。 9. 字符串长度: - `strlen` 函数用于计算字符串的长度,不包括结束符 `\0`。给定字符串 `"hello!"` 的长度是 6,不包括结束符。答案是 D.6。 10. 字符数组与输入输出: - A 正确,字符数组可以存放字符串;B 正确,字符数组可以通过 `scanf` 或 `printf` 进行整体输入输出;C 错误,整型数组无法整体输入输出,必须逐个元素处理;D 正确,不能直接用 `=` 赋值运算符对字符数组整体赋值,应使用 `strcpy` 或 `strcat` 等函数。不正确的是 C。 这些题目涵盖了 C 语言中的基础概念,如指针、数组、字符串处理、表达式求值和文件操作等,对于准备全国计算机等级考试的考生来说是重要的复习内容。