全国计算机等级考试二级C语言编程题目解析

版权申诉
0 下载量 10 浏览量 更新于2024-08-06 收藏 26KB DOCX 举报
该文档是全国计算机等级考试二级C语言的上机编程题参考答案,包含多个关于整数处理、条件判断、循环控制、数组操作和数学运算的编程题目及其解决方案。 1. 整数合并 题目要求将两个两位正整数a和b合并成一个新的整数c,其中a的十位和个位分别对应c的千位和十位,b的十位和个位对应c的百位和个位。实现方法是通过整数运算和取模来完成: ```c void fun(int a, int b, int* c) { *c = a / 10 * 1000 + b / 10 * 100 + a % 10 * 10 + b % 10; } ``` 2. 同构数判断 函数用于判断整数x是否是同构数,即x的平方数的最右边数字是x本身。通过比较x与x*x%10的值来判断: ```c int fun(int x) { return (x < 10 && x * x % 10 == x) || (x >= 10 && x * x % 100 == x); } ``` 3. 提取整数的后n-1位 给定大于10的无符号整数w,函数返回w的后n-1位数。通过不断除以10,确定w的有效位数m,然后用w模(m/10)得到结果: ```c unsigned fun(unsigned w) { unsigned t = w, m = 1; while (t) { t /= 10; m *= 10; } return w % (m / 10); } ``` 4. 四舍五入保留两位小数 对正数x保留两位小数,并对第三位进行四舍五入。通过乘以100,加上0.5,再除以100.0实现: ```c double fun(double x) { return (int)(x * 100 + 0.5) / 100.0; } ``` 5. 找出能被3和7整除的自然数之和的平方根 计算1到n以内同时能被3和7整除的自然数之和s,然后返回s的平方根: ```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或11整除的整数 通过循环遍历1到m,将符合条件的数存入数组a,并返回这些数的个数: ```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; // j++模式 } } return j; } ``` 7. 素数平方根之和 计算3到n之间所有素数的平方根之和s,通过两层循环判断素数: ```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; } ``` 8. 存储素数 找出小于或等于lim的所有素数,并放入数组a中,返回素数的个数。此部分代码未给出完整实现,但可以通过类似第7题的方法实现。 以上代码提供了全国计算机等级考试二级C语言上机编程题目的部分参考解答,涵盖了整数处理、逻辑判断、数组操作等基础编程技能。