国信蓝点杯高职C语言试题解析
4星 · 超过85%的资源 需积分: 3 84 浏览量
更新于2024-09-15
收藏 36KB DOC 举报
"这是2011年度国信蓝点杯软件大赛高职组的C语言试题,涉及填空题,涵盖金融计算、数值方法、算法和日期处理等多个知识点。"
第一题,涉及到金融中的复利计算。小李存款的本金1000元,存期5年,年利率3%,而小王每年资助100元。题目要求计算存款到期后的余额。此处的空白处应填写`money * (1 + 3/100)`,表示钱在银行的增值。完整的循环代码如下:
```c
for (i = 0; i < n; i++) {
money = money * (1 + 3/100); // 复利计算
money -= 100; // 每年资助贫困儿童
}
```
第二题,要求用迭代法求2的平方根。这是一种牛顿迭代法,每次逼近目标值的一半作为新的估计值。空白处应填写`n/a`,即当前的b值。完整代码如下:
```c
while (fabs(a - b) > 1E-15) {
a = (a + b) / 2;
b = n / a; // 迭代求解平方根
}
```
第三题,要求计算两个整数的最小公倍数(LCM)。空白处应填写`i += a`,通过遍历从a开始递增的整数来找到能被a和b整除的最小值。完整函数如下:
```c
int lcm(int a, int b) {
for (int i = a;; i += a) { // 从a开始递增检查
if (i % b == 0) return i;
}
}
```
第四题,计算两个日期之间的天数差。这里涉及到日期处理,包括闰年的判断。空白处应填写`x.month`,表示遍历月份。完整的`GetAbsDays`函数如下:
```c
int GetAbsDays(MyDate x) {
int i;
int month_day[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int year = x.year - 1; // 因为欲求距离1年1月1日的差值
int days = year * 365 + year / 4 - year / 100 + year / 400;
if (x.year % 4 == 0 && x.year % 100 != 0 || x.year % 400 == 0) month_day[1]++; // 闰年2月有29天
for (i = 0; i < x.month; i++) {
days += month_day[i];
}
days += x.day - 1;
return days;
}
```
第五题,字符串轮转。例如,字符串"abcd"向右移一位变成"bcd'a'"。空白处应填写字符串长度`strlen(str) - 1`,用于获取下一个字符的位置。实现如下:
```c
void rotate(char* str) {
int len = strlen(str) - 1;
char temp = str[len];
for (int i = len; i > 0; i--) {
str[i] = str[i - 1];
}
str[0] = temp;
}
```
这些题目覆盖了C语言的基础知识,如循环、条件判断、数学运算、字符串处理、数组以及函数应用,同时也考察了实际问题的解决能力。
2012-11-26 上传
2011-05-11 上传
点击了解资源详情
2012-02-16 上传
2011-11-23 上传
2011-09-10 上传
下一个丶奇迹
- 粉丝: 506
- 资源: 20
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载