2011国信蓝点软件设计大赛C语言模拟试题与解答
1星 需积分: 3 159 浏览量
更新于2024-09-22
收藏 89KB DOC 举报
"2011国信蓝点软件设计大赛C模拟题及答案"
这篇资源提供了2011年国信蓝点软件设计大赛的本科C语言模拟试题及相应解答,旨在帮助参赛者了解比赛的命题形式和考核范围。题目涵盖了代码填空和程序设计两大类型,旨在测试参赛者的C语言基础、逻辑思维和编程能力。
1. 代码填空(满分2分)
题目要求编写一个函数`switch_num`,功能是将一个两位整数的十位和个位交换。已给出部分代码如下:
```c
int switch_num(int x) {
int a = x / 10;
int b = x % 10;
return b * 10 + a______;
}
```
解决方案:在空白处添加操作符`+`,使`b`和`a`相加,形成新的整数。
```c
return b * 10 + a;
```
2. 代码填空(满分3分)
这段代码用于将二进制字符串转换为整数。需填写缺失的语句:
```c
char* p = "1010110001100";
int n = 0;
for (int i = 0; i < strlen(p); i++) {
n = _n * 2 + p[i] - '0'_;
}
printf("%d\n", n);
```
解决方案:在空白处添加操作符`=`,将每次循环的结果累加到`n`上。
```c
n = n * 2 + p[i] - '0';
```
3. 代码填空(满分3分)
这部分代码用于找出三个整数`a`, `b`, `c`中的中间值并存储在`m`中。需填充`swap()`函数调用:
```c
if (a > b) swap(&a, &b);
if (b > c) swap(&b, &c);
if (a > b) swap(&a, &b);
int m = b;
```
解决方案:在最后一个`if`语句中,如果`a`仍然大于`b`,则需要再次调用`swap()`函数交换`a`和`b`。
```c
if (a > b) swap(&a, &b);
```
4. 代码填空(满分5分)
这是一个递归函数`f(m, n)`,计算`m`个A和`n`个B的不同排列数量。需填写递归调用:
```c
int f(int m, int n) {
if (m == 0 || n == 0) return 1;
return f(m-1, n) + f(m, n-1)___;
}
```
解决方案:在空白处添加操作符`+`,表示递归调用的组合。
```c
return f(m-1, n) + f(m, n-1);
```
5. 代码填空(满分6分)
这段代码用于将一个整数数组按照正负数重新排序,所有负数在正数之前。需补充缺失的条件判断:
```c
void reorder(int* pData, int len) {
if (pData == NULL || len ==______)
```
解决方案:检查数组长度是否为0,如果是,则直接返回。
```c
if (pData == NULL || len == 0) return;
```
这些题目覆盖了C语言的基础知识,如算术运算、逻辑判断、字符串处理、递归以及数组操作。解答这些题目需要对C语言的基本语法和编程概念有深入理解。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2011-04-26 上传
2022-05-22 上传
2022-05-22 上传
点击了解资源详情
2014-05-15 上传
2011-06-12 上传
wnc2011
- 粉丝: 1
- 资源: 6
最新资源
- 阴阳师超级放大镜 yys.7z
- Algorithms
- 个人网站:我的个人网站
- ggviral
- windows_tool:Windows平台上的一些有用工具
- MetagenomeScope:用于(元)基因组装配图的Web可视化工具
- newshub:使用Django的多功能News Aggregator网络应用程序
- 佐伊·比尔斯
- 2021 Java面试题.rar
- PM2.5:练手项目,调用http
- TranslationTCPLab4
- privateWeb:私人网站
- 专案
- Container-Gardening-Site
- Python库 | getsong-2.0.0-py3.5.egg
- package-booking-frontend