C++二级考试:试题解析与编程技巧

4星 · 超过85%的资源 需积分: 9 18 下载量 124 浏览量 更新于2024-11-12 收藏 127KB DOC 举报
"二级C++上机考试试题及详细答案" 这篇资源主要包含了两道C++编程题目及其解答,目的是帮助考生准备二级C++的上机考试。第一道题目要求编写一个函数`fun(int i)`,使得当传入参数i时,能够输出i行的井号(#)形状。第二道题目要求实现一个`fun(char* s, int a[])`函数,该函数将输入字符串`s`中的所有数字提取出来,并存入整数数组`a`中,同时返回数字的个数。 对于第一题: 题目要求输出i行的井号形状,这需要使用两层嵌套循环来实现。外层循环控制行数,内层循环控制每行的列数。在`fun`函数中,可以使用两个`for`循环,外层循环变量设为`j`,从0开始到i-1结束,内层循环变量设为`k`,从0开始到j结束。在内层循环中,每次迭代输出一个井号,结束后换行。代码中已经给出了答案,通过两个`for`循环实现这个功能。 审题分析指出,这个程序的关键在于理解输出的规律,即每一行的井号数量等于行数,所以外层循环控制行数,内层循环控制列数。程序中`main()`函数已经调用了`fun(5)`,意味着我们要输出5行井号。 对于第二题: 这道题目要求把字符串中的数字转换为整数并存入数组,同时返回转换的数字个数。在`fun`函数中,我们需要遍历输入的字符串`s`,检查每个字符是否为0到9之间的数字。如果是数字,就将其减去字符'0'的ASCII码值,得到对应的整数值,然后存入数组`a`中。同时,计数器`j`用于记录转换的数字个数。最后,函数返回`j`作为转换的数字个数。 审题分析提醒我们,字符和整型的ASCII值之间有一个固定的差值,这里是96,即字符'0'的ASCII码值。因此,我们可以通过`s[i]-'0'`计算出实际的数字。 这两道题目都涉及到基本的C++编程技巧,包括字符串处理、字符与数字的转换、循环结构的运用以及函数的参数传递。对于备考二级C++的考生来说,理解和掌握这类题目是至关重要的,因为它们能检验考生对基础语法和逻辑控制的理解程度。