计算机二级考试必备:上机题解100套

需积分: 9 54 下载量 34 浏览量 更新于2024-12-26 1 收藏 348KB TXT 举报
"该资源是计算机二级上机题目的集合,与南开大学考试相关,包含100套练习题目,每套题包括多个问题,旨在帮助考生在实际考试环境中进行模拟训练。" 这里我们将详细分析提供的两段代码示例,并讲解其中涉及的计算机科学知识点。 首先,我们来看第一段代码C Spartan 01题目的部分: ```c #include<stdio.h> void fun(unsigned long *n) { unsigned long x = 0, i; int t; i = 1; while (*n) { /**********found**********/ {t = *n % __1__; // 这里需要填写一个整除操作的占位符 /**********found**********/ if (t % 2 != __2__) // 这里检查t是否为奇数,占位符需要替换为条件 { x = x + t * i; i = i * 10; } *n = *n / 10; } /**********found**********/ *n = __3__; // 这里需要将最终结果替换回原位置 } main() { unsigned long n = -1; while (n > 99999999 || n < 0) { printf("Please input (0<n<100000000):"); scanf("%ld", &n); } fun(&n); printf("\nThe result is: %ld\n", n); } } ``` 这段代码是一个处理整数的函数`fun`,它接受一个无符号长整型指针作为参数,对输入的数字进行操作。函数的目的是计算输入数字的所有奇数位之和。代码中需要填写的部分: 1. `t = *n % __1__;` 这里需要填写10,因为我们需要取数字的个位,即模10的余数。 2. `if (t % 2 != __2__)` 这里的条件是判断t是否为奇数,所以占位符应替换为2。 3. `*n = __3__;` 在循环结束后,我们需要将原始数字的位移后的值放回原位置,因此这里应填入`x`。 接下来是第二段代码MODI1.C,涉及到阶乘计算: ```c #include<stdio.h> double fun(int n)/*Ϊͽwww.greatc.cn*/ { double result = 1.0; /************found************/ if (n == 0) return 1.0; while (n > 1 && n < 170) /************found************/ result *= n--; return result; } main() { int n; printf("Input N:"); scanf("%d", &n); printf("\n\n%d!=%lf\n\n", n, fun(n)); } ``` 这段代码定义了一个计算整数阶乘的函数`fun`。函数接受一个整数n作为参数,返回n的阶乘。代码中的关键部分: 1. `if (n == 0)` 这是检查n是否为0,根据阶乘的定义,0的阶乘为1,所以这里直接返回1.0。 2. `result *= n--;` 这行代码在每次循环中都将当前的n值乘以结果,并使n自减1,直到n变为1或0,从而完成阶乘的计算。 两段代码都涉及到基础的C语言编程,包括变量、条件语句、循环、指针和函数调用。对于计算机二级考试来说,这些是必备的知识点。同时,这两个题目分别考察了数字位操作和递归/循环计算,是常见的算法问题。在备考时,考生需要熟练掌握这类问题的解决方法。