2013年3月计算机二级C语言上机考试题库解析

需积分: 1 0 下载量 85 浏览量 更新于2024-07-26 收藏 1.57MB DOC 举报
"计算机二级题库,C语言,程序设计,上机考试,试题解析" 这篇内容涉及的是计算机二级考试中的C语言上机试题,主要考察考生对于C语言基础语法、逻辑思维以及程序设计的能力。试题的形式是编程填空,目的是让学生理解和应用C语言中的整数操作、条件判断以及数据传递等基本概念。 首先,题目给出的函数`fun`的目标是处理一个无符号长整型数值,去除其中所有偶数位上的数字,保留奇数位上的数字,然后将结果以原顺序返回。这需要对数值进行逐位处理,因此使用了一个循环来遍历每一位。`while(*n)`的循环条件是基于指针`n`指向的数值不为零,意味着遍历直到整个数字处理完为止。 在循环内部,`t=*n%10;`这一行代码用于获取`n`所指变量的个位数,`10`是取模运算的基数,因此这里填写`10`是正确的。接下来的条件判断`if(t%2!=0)`用来检查这个个位数是否为奇数,`0`表示偶数,`1`表示奇数,所以这里填写`0`表示判断是否是偶数。 如果当前位是奇数,即`t%2!=0`,则将其累加到结果变量`x`中,并将`i`乘以`10`,这样可以确保新数的位序保持不变。之后,`*n=*n/10;`这一步是将原数的个位数移除,相当于向左移动一位。最后,`*n=x;`将处理后的新数赋值回`n`所指的变量,这样通过调用`fun`函数,原数就被转换为了只包含奇数位的新数。 在主函数`main`中,首先有一个输入验证的过程,确保用户输入的数值在`0`和`100000000`之间。然后调用`fun`函数处理这个数,并打印出结果。 另一个提及的函数`fun`(MODI1.C中的)是计算阶乘的,即输入一个正整数`n`,返回`n!`(n的阶乘)。这通常涉及到递归或者循环的实现,递归版本的函数可能会是这样的: ```c unsigned long long fun(int n) { if (n == 0 || n == 1) return 1; else return n * fun(n - 1); } ``` 而循环实现则是用一个累乘的过程,从1乘到`n`。 总结起来,这部分内容主要涵盖了C语言的基本数据类型操作、指针的使用、循环控制、条件判断、函数参数传递以及简单的算法设计。考生需要熟悉这些基础知识,并能灵活应用到实际问题解决中,才能成功解答这类题目。