全国计算机等级考试二级C语言编程题目解析
版权申诉
172 浏览量
更新于2024-08-06
收藏 82KB DOC 举报
"全国计算机等级考试二级C语言上机编程题参考答案,涵盖了整数操作、同构数判断、数字提取、浮点数处理、平方根计算、整除筛选等多方面C语言编程技巧。"
在这些编程题目中,我们可以看到以下几个重要的C语言知识点:
1. **整数操作**:
- 题目1展示了如何合并两个两位正整数a和b,将其组合成一个新的整数c。这里使用了整除和取余运算来分别获取各位数字。
```c
void fun(int a, int b, int* c) {
*c = a / 10 * 1000 + b / 10 * 100 + a % 10 * 10 + b % 10;
}
```
2. **条件判断**:
- 题目3涉及到了条件判断和同构数的概念,用`if`语句判断整数x是否为同构数,即x的平方数最右边的数字等于x本身。
```c
int fun(int x) {
return (x < 10 && x * x % 10 == x) || (x >= 10 && x * x % 100 == x);
}
```
3. **数字提取**:
- 题目4要求提取大于10的无符号整数w的后n-1位,通过不断除以10并累乘10来实现。
```c
unsigned fun(unsigned w) {
unsigned t = w, m = 1;
while (t) {
t /= 10;
m *= 10;
}
return w % (m / 10);
}
```
4. **浮点数处理**:
- 题目5展示了如何对正数x保留两位小数并进行四舍五入,这里使用了强制类型转换和乘以100后再除以100的方法。
```c
double fun(double x) {
return (int)(x * 100 + 0.5) / 100.0;
}
```
5. **循环与条件**:
- 题目6中,利用`for`循环和条件判断找到3和7的公倍数,并计算它们的和,最后返回平方根。
```c
double fun(int n) {
int i;
double s = 0;
for (i = 1; i < n; i++)
if (i % 3 == 0 && i % 7 == 0)
s += i;
return sqrt(s);
}
```
6. **数组与计数**:
- 题目7利用数组a存储1到m之间能被7或11整除的整数,并通过`j++`模式记录个数,最后返回计数值。
```c
int fun(int* a, int m) {
int i, j = 0;
for (i = 1; i <= m; i++)
if (i % 7 == 0 || i % 11 == 0)
a[j++] = i;
return j;
}
```
7. **素数判断与累加**:
- 题目8展示了如何找出3到n之间所有素数的平方根之和,使用嵌套的`for`循环进行素数判断和累加。
```c
double fun(int n) {
int i, k;
double s = 0;
for (i = 3; i <= n; i++) {
for (k = 2; k < i; k++)
if (i % k == 0) break;
if (i == k) s += sqrt(i);
}
return s;
}
```
以上是这些C语言编程题目的主要知识点,它们涵盖了基本的数据类型操作、逻辑判断、循环控制、数组使用、数学计算等方面,这些都是C语言学习者需要掌握的基础技能。通过解决这类问题,考生可以提高编程能力,更好地应对全国计算机等级考试二级C语言上机编程部分。
点击了解资源详情
点击了解资源详情
点击了解资源详情
124 浏览量
2021-11-25 上传
2022-07-19 上传
2022-07-02 上传
2022-11-07 上传
106 浏览量
celkhn5460
- 粉丝: 0
- 资源: 4万+
最新资源
- 用友NC凭证设置,如何进入模板设置界面,如何使用模板编辑器
- oracle biee 商务智能
- Google 搜索引擎优化入门指南
- More Effective C++
- 详细介绍计算机字符集的文档
- winsock_io方法
- 使用Eclipse开发Jsp
- IPv6网络管理与运营支撑系统的研究与设计
- Oracle RAC日常维护指令
- 一个好的ejb3.0帮助文档
- Switchvox AA60 用户手册
- 《信息技术学业水平测试模拟试卷》 单项选择题部分
- 2008年9月计算机等级考试网络工程师 真题及答案
- 《信息技术学业水平测试模拟试卷》 综合分析题部分
- 一个好的jasperreport中文帮助文档
- VOIP基本原理及相关技术