二级C 语言上机编程题.pdf_第1页
二级C 语言上机编程题.pdf_第2页
二级C 语言上机编程题.pdf_第3页
二级C 语言上机编程题.pdf_第4页
二级C 语言上机编程题.pdf_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

天津光华教育 二级 C 上机编程技巧 二级二级 C C 语言上机编程题技巧语言上机编程题技巧 目录目录 一 方法总结一 方法总结 2 1 前言 2 2 编程题做题方法一 使用 C 语言特有的函数做题 2 3 编程题做题方法二 使用规律做题 2 4 编程题做题方法三 使用 C 语言编程 2 5 编程题做题方法四 使用简便方法做题 3 二 考题总结二 考题总结 8 1 第一种类型 字符串操作一 字符串删除 号 8 2 第二种类型 字符串操作二 移动字符串 10 3 第三种类型 数学问题一 将两个数字按照要求合并成一个数字 11 4 第四种类型 数学问题二 二维数组相关类型题目 12 5 第五种类型 找出数组中的最大值或者最大值所在的下标 13 6 第六种类型 字符串操作三 包括统计单词 字符的个数 比较字符串 转换字符串 14 7 第七种类型 字符串操作四 删除指定字符 16 8 第八种类型 结构体 18 9 第九种类型 链表类型 20 10 第十种类型 数学问题二 素数 21 11 第十一种类型 数学问题三 公式类型 22 三 注意事项三 注意事项 27 天津光华教育 二级 C 上机编程技巧 一 一 方法总结方法总结 1 1 前言前言 二级二级 C C 语言上机编程题在二级上机考试中属于较难题型 因此很多同学都害怕通过不了 综合往年语言上机编程题在二级上机考试中属于较难题型 因此很多同学都害怕通过不了 综合往年 的考试 结合考试大纲 每年考试的编程题都有一定的规律和方法 只要同学们认真熟练使用做题的考试 结合考试大纲 每年考试的编程题都有一定的规律和方法 只要同学们认真熟练使用做题 的方法 通过考试是没有问题的 的方法 通过考试是没有问题的 2 2 编程题做题方法一 使用编程题做题方法一 使用 C C 语言特语言特有的函数做题有的函数做题 1 编程思想 使用 C 语言函数库中的做题 做题时必须注意包含对应的头文件 2 考题举例 题库中的第 37 题 要求将数字字符串转化为对应整数 例如 1234 转化 后为 1234 做题时需要添加头文件 include stdlib h 然后在 fun 函数中写入程序 return atol p 其中 atol p 表示将 p 从字符串转化为长整型数 最后编译 运行后输 入测试数据后即可得到满分 include include include stdlib h include stdlib h long fun char p return atol p return atol p 3 方法总结 该类方法可以适用的题目较少 同学们了解即可 3 3 编程题做题方法二 使用规律做题编程题做题方法二 使用规律做题 1 编程思想 部分题目的答案是固定的 不会因为输入的数据改变而改变 因此这部分题目 我们直接将答案记住即可 减少编程的麻烦 2 考题举例 题库中的 70 题 求 cos x x 0 的一个实根 做题时候在 fun 函数中输入 return 0 739085 后点击编译和运行即可 无需输入测试数据 补充 如果需要输入测试数据 补充 如果需要输入测试数据 程序在输出的黑屏上面会提示 不过一般是英文提示 所以同学们要格外小心 程序在输出的黑屏上面会提示 不过一般是英文提示 所以同学们要格外小心 include include double fun return 0 739085 3 考题总结 该题为每年必考的题目 因此同学们要将答案熟记 以便大家能顺利通过考试 4 4 编程题做题方法三 使用编程题做题方法三 使用 C C 语言编程语言编程 1 编程思想 该种方法是考试中使用频率最多的方法 就是使用学习的 C 语言进行编程 对 C 语言的知识进行综合运用 因此难度较大 容易出错 2 考题举例 题库 14 题 求小于形参 n 同时能被 3 和 7 整除的所有自然数之和的平方根 并作为函数的返回 做题时时一定要按照三个步骤来 一要定义 二要满足题意 三要看 有无返回 天津光华教育 二级 C 上机编程技巧 include include double fun int n int i int sum 0 for i 0 i n i if i 3 0 return sqrt sum 3 考题总结 该题属于编程方法中较简单的题型 做题时也可以使用简便方法 请参考考试 总结中的叙述 5 5 编程题做题方法四 使用简便方法做题编程题做题方法四 使用简便方法做题 1 编程思想 顾名思义这是一种简单而且高效的方法 可是要提醒大家里面的方法不是看一 遍就能掌握的 同学们要仔细再仔细 多练习多思考 2 考题举例 题库第 8 题 要求除了字符串前导的 号之外 将串中其他的 号全部删除 例 如 字符串的内容 A BC DEF G 删除后为 ABCDEFG 做题步骤如下 1 1 读题目 否则将不能正确做题读题目 否则将不能正确做题 该题目的要求很清晰 就是删除 号 但是不能删 除前导 号 这里大家要知道什么是前导 号 其实它是指字符串中第一个字母以前的 全部 号 该题中有 4 个前导 号 2 2 开始做题开始做题 找到找到 NONONONO 函数 了解做题的来龙去脉 函数 了解做题的来龙去脉 以该题为例 以下是 NONO 函数 的全部内容 NONO 本函数用于打开文件 输入数据 调用函数 输出数据 关闭文件 FILE in out int i char s 81 in fopen D k01 24010001 in dat r out fopen D k01 24010001 out dat w for i 0 i 10 i fscanf in s s fun s fprintf out s n s fclose in fclose out 分析 NONO 函数 分析过程有点多 第一次就要将其看懂 后面就可以很轻松 FILE in outFILE in out 表示定义了两个文件类型的指针 in 和 out 用来指向某个打开的某个 天津光华教育 二级 C 上机编程技巧 文件 int i char s 81 int i char s 81 定义了一个整型的变量 i 一般用来表示循环的递增 定义了一 个字符类型的一维数组 s 这里数组 s 没有存储任何的数据 因此一般是闲置用来后面 题目中存放数据使用的 in fopen D in fopen D k01k01 2401000124010001 in dat r in dat r in 是上面定义的文件指针 用来 指向一个文件 in dat 首先大家要知道 open 在英语里面表示是 打开 file 在英语 里面是 文件 因此形象记忆 fopen 就是打开文件 打开什么文件 看后面的存储目 录 D k01 24010001 in dat 就是这个路径下面的文件 in dat 以 r 只读的形 式打开 记住不能就行对 in dat 的改动 out fopen D out fopen D k01k01 2401000124010001 out dat w out dat w out 文件指针用来指向 out dat 打开的方式以 w 写的方式写数据 换句话说 in dat 是考试时候的数据源文件 而 out dat 是用来存放答案的文件 所以要确保 out dat 中的数据完全正确 for i 0 i 10 i for i 0 i 10 i 循环语句 该循环将执行 10 次 fscanf in s s fscanf in s s 从 in 文件所指向的数据源文件 in dat 中读取一行字符串数据 给一维数组 s 顺便说下为什么知道是读取一行字符串数据 是因为 s 格式是用来控 制字符串的 因此不难判断 通过循环语句 将读取 10 行数据进行处理 该题目总 共 40 分 因此每行就是 4 分 fun s fun s 调用函数 fun 传入实参 s 我们从题目得知 fun 函数要完成的事情是删除字 符串中的 号 但是不删除前导 号 每次传入的数据都会被执行 fprintf out sfprintf out s n s n s printf 在第二章学习的时候知道是输出的意思 fprintf 的意思是将数据输出到 out 指针指向的文件中 以 s n 格式方式输出 输出的数 据是 s 同学们一定要注意 此时的 s 是修改过的 s 即是删除 号后的字符串 fclose in fclose in 关闭文件指针 in fclose out fclose out 关闭文件指针 out 文件打开后要将其关闭 3 3 在在 VC6 0VC6 0 中中 funfun 函数位置输入一些简单的语句 函数位置输入一些简单的语句 有时也可以直接运行 输入定义 一个 test 变量 给其赋值 最好多敲几个回车进去 如果数据有返回值 必须输入返 回值 然后点击编译 运行后将出现这个界面 要求输入一个字符串 可以任意的从键盘中输入字符串 例如输入 12345 回车 得到 include void fun char a int test test 5 天津光华教育 二级 C 上机编程技巧 程序中出项 Press any key to continue 则说明程序已经运行 将在考试文件夹下 面生成 out dat 文件 否则在考生文件夹下面将不会生成 out dat 文件 就没有办法继续 做题 4 4 打开打开 in datin dat 关闭第三步程序运行的界面 打开 int dat 文件 在 VC 6 0 界面中 单击 File 在弹出的菜单中选取 Open 打开考生文件夹 D k01 24010001 下面的 in dat 文件 截图如下 查找范围里面选中 D 盘 找到 k01 下面的 24010001 发现没有 in dat 文件 单击文件类型 选择 所有文件 即可 天津光华教育 二级 C 上机编程技巧 选中 in dat 然后单击打开 出现下图所示界面为正确打开 分析 in dat 中的数据发现每行数据都是由 号和字母组成的 总共有 10 行 5 5 打开打开 out datout dat 和打开 in dat 同样的方法打开 out dat 天津光华教育 二级 C 上机编程技巧 将 out dat 里面的数据清空 即将 out 中所有东西都删除 让 out 没有任何的代 码 将 in dat 中第一行数据 A BC DEF G 复制到 out dat 中 将 out dat 第一行数据的中间 和尾部 全部删除 然后敲入回车 以此类推将 in dat 中剩余 9 行按照上面的步骤复制到 out dat 中进行修改 两行 中间没有空行 6 6 保存交卷 单击左上方的保存 保存结果 天津光华教育 二级 C 上机编程技巧 保存后关闭 vc 6 0 方可交卷 二 二 考题总结考题总结 1 1 第一种类型 第一种类型 字符串操作一 字符串操作一 字符串删除字符串删除 号号 1 1 考题库中考题对应编号 考题库中考题对应编号 8 8 9 9 1010 1919 4545 5454 5757 6161 6565 7171 7777 9090 9292 9393 以 上均为 号题 100100 暂时无法加载 5656 6060 7272 7575 8585 8686 2 2 举例 以第 10 题为例讲解 1 1 分析题目分析题目 使字符串的前导 号不得多于 n 个 若多于 n 个 则删除多余的 好 若少于 或等于 n 个 则什么也不做 字符串中间和尾部 号不得删除 2 2 分析分析 NONONONO 函数函数 NONO 本函数用于打开文件 输入数据 调用函数 输出数据 关闭文件 FILE in out int i n char s 81 in fopen D k01 24010001 in dat r out fopen D k01 24010001 out dat w for i 0 i 10 i fscanf in s s fscanf in d fun s n fprintf out s n s fclose in fclose out NONON 函数函数具体分析方法具体分析方法前面前面 方法四 已经详细 方法四 已经详细讲解过了 现将不同的点进行分析 讲解过了 现将不同的点进行分析 fscanf in s s fscanf in s s 表示从表示从 in datin dat 中读取一个字符串中读取一个字符串放到放到数组数组 s s 中中 fscanf in d fscanf in d 表示从表示从 in datin dat 中读取一个整型数据给中读取一个整型数据给变量变量 n n 从题目中我们不难发从题目中我们不难发 现现 s s 和和 n n 之间的关系 之间的关系 就是如果 s 字符串中的前导多于 n 个删除 则删除多余的 号 否则什么 也不做 fprintf out s n s 只将修改后的字符串输出 3 3 在在 funfun 函数中输入测试数据 该题函数返回函数中输入测试数据 该题函数返回 voidvoid 则无需则无需 returnreturn 语句语句 include void fun char a int n int test test 5 4 4 编译运行编译运行 输入一个字符串后还需输入一个 n 天津光华教育 二级 C 上机编程技巧 5 5 打开打开 in datin dat 分析 in dat 中的数据刚好是一行字符串一行整数 总共有 20 行 通过 fscanf in s s fscanf in s s fscanf in d fscanf in d 两个函数每次输入两个数据分别给 s 和 n 例如第一行中输 入的时候 s 字符串就该为 A BC DEF G n 的值就为 4 s 字符串中的前导 号为个 多于了 n 的值 因此需要将多于的 3 个 号删除 6 6 打开打开 out datout dat 打开 out dat 并清空数据 因为 fprintf out s n s 只将修改后的字符串输 出 将第一个字符串删除 3 个 号填写到 out dat 中 不输出 in dat 中的 4 以此类推将数据进行输入 7 7 保存交卷保存交卷 天津光华教育 二级 C 上机编程技巧 2 2 第二种类型 第二种类型 字符串操作二 字符串操作二 移动字符串移动字符串 1 1 考题库中对应试题编号 考题库中对应试题编号 1 1 4242 8383 8787 2 2 试题举例 以第 1 题为例 1 1 分析题目 把 1 到第 m 个字符平移到字符串的最后 2 2 分析 NONO 函数 注意 fscanf rf d s 表示从 rf 指向的文件 in dat 中读取两个数据 一个整型数据给变量 m 另外一个给数组 a 根据题目我们不难判断 程序就完成 将数 组 a 中的字符串从第 1 个到第 m 个移动到最后 3 3 在在 funfun 函数中输入测试数据 该题函数返回函数中输入测试数据 该题函数返回 voidvoid 则无需则无需 returnreturn 语句语句 在执行窗口 在执行窗口 中需要输入中需要输入 m m 的值 的值 4 4 编译 执行编译 执行 输入测试数据 输入测试数据 5 5 打开打开 in datin dat 分析分析 in datin dat 结合结合 NONONONO 函数中的函数中的 fscanffscanf 函数可以得到 函数将整数函数可以得到 函数将整数 3 3 给了给了 m m 将 将 字符串字符串 ABCDEFGHIJK ABCDEFGHIJK 给了数组给了数组 a a 6 6 打开打开 out datout dat 天津光华教育 二级 C 上机编程技巧 将 in dat 中第一行中的字符的前 3 个字母移动到最后 可以使用 word 拖移字符串 依次类推将得到正确的结果 7 7 保存交卷 3 3 第三第三种类型 种类型 数学问题一 数学问题一 将两个数字按照要求合并成一个数字将两个数字按照要求合并成一个数字 1 1 对应题库中的题目编号 对应题库中的题目编号 1313 3838 4444 4646 6363 6969 7878 8888 9494 9595 9696 2 2 试题举例 以试题举例 以 1313 题为例题为例 1 1 分析题目 将分析题目 将 a a 中十位和个位数依次放在变量中十位和个位数依次放在变量 c c 的百位和个位上 的百位和个位上 b b 中的十位和个位依次中的十位和个位依次 放在变量放在变量 c c 的十位和千位上的十位和千位上 2 2 分析分析 NONONONO 函数 函数 3 3 在在 funfun 函数中输入测试数据 编译 执行 该题函数返回函数中输入测试数据 编译 执行 该题函数返回 voidvoid 则无需则无需 returnreturn 语句 在执语句 在执 行窗口中需要输入行窗口中需要输入 1212 空格空格 4545 回车后 出现下图结果 回车后 出现下图结果 4 4 打开打开 in datin dat fscanf rf d d 第一行中将第一行中将 4545 给了变量给了变量 a a 将 将 1212 给了变给了变 量量 b b 5 5 打开打开 out datout dat fprintf wf a d b d c ldfprintf wf a d b d c ld n a b c n a b c 输出格式一定要注意 输出格式一定要注意 如下图所示 否则不得分 如下图所示 否则不得分 天津光华教育 二级 C 上机编程技巧 6 6 保存交卷 4 4 第四种类型 第四种类型 数学问题二 数学问题二 二维数组相关类型题目二维数组相关类型题目 1 1 题库中对应题目编号 题库中对应题目编号 1515 1717 2424 3131 3232 4040 4141 4343 5050 8181 2 2 考题举例 以 15 题为例 1 1 题目分析 将题目分析 将 M M 行行 N N 列的二维数组中的数据 按行的顺序依次放到二维数组中列的二维数组中的数据 按行的顺序依次放到二维数组中 2 2 NONONONO 函数 函数 3 3 在在 funfun 函数中输入测试数据 编译 函数中输入测试数据 编译 执行 该题函数返回执行 该题函数返回 voidvoid 则无需则无需 returnreturn 语句 语句 出现下图结果 出现下图结果 4 4 打开打开 in datin dat fscanf rf d d fscanf rf d d 从 in dat 中第一行输入两个整型数 第一个 3 给变量 mm 表示数组中的行 第二个 4 给变量 nn 表示数组中的列 for i 0 i mm i for j 0 j nn j fscanf rf d 将 mm nn 个整数放到二维 数组 w 中 即读取二维数组的数据 例如第一行 mm 为 3 nn 为 4 则应该有一个 3 行 4 列的二维 数组 天津光华教育 二级 C 上机编程技巧 5 5 打开 out dat 根据 for i 0 i n i fprintf wf 3d a i fprintf wf n 格式进行数据的输出 for i 0 i n i fprintf wf 3d a i 表示将 n 个二维数组元素以 3d 的形式输出到 out dat 中 以第一个二维数组为例即将 以行的形式进行输出 结果如下 第一个 33 前面要加一个空格 因为 3d 要求输出的宽度为 3 但是 33 这个数字只占 了 2 个的宽度 因此必须在 33 前面加一个空格 依次类推 第二 33 至 55 都要在前面加 一个空格 输完数据后要记得执行 fprintf wf n 输出一个换行符 将题目中其它 的二维数组修改后的结果如下 7 7 保存交卷 5 5 第五种类型 找出数组中的最大值或者最大值所在的下标第五种类型 找出数组中的最大值或者最大值所在的下标 1 1 题库中对应题目编号 题库中对应题目编号 1818 2626 找出最长字符串下标 2929 3636 6666 8383 5555 删除指定下标 2 2 考题举例 以考题举例 以 1818 题为例题为例 1 1 题目要求 求出数组中最大数的下标并存放在题目要求 求出数组中最大数的下标并存放在 k k 所指的存储单元中所指的存储单元中 2 2 NONONONO 函数 函数 天津光华教育 二级 C 上机编程技巧 3 3 在 fun 函数中输入测试数据 编译 执行 该题函数返回 int 则需 return 语句 另外 题目中严格要求 k 返回的是最大值下标 因此必须给 k 初始值 0 出现下图结果 4 4 打开打开 in datin dat 文件 文件 NONNONONNO 函数中 函数中 说明的信息是将 10 个据通过 fscanf 函数读入到数组 a 中 从 10 个数据中找到最大 值及其下标 分析分析 in datin dat 可以发现 里面的数据都是可以发现 里面的数据都是 1010 列 总共有列 总共有 1010 行 因此只要将每一行行 因此只要将每一行 的最大值及其下标找出来存放在的最大值及其下标找出来存放在 out datout dat 中即可 中即可 5 5 打开打开 out datout dat 并清空文件里面的数据并清空文件里面的数据 该语句将最大值下标k及其最大值以 d d的 形式输出 结合 in dat 中的第一行数据不难发现最大值是 121 它所在的下标是 1 补充 下标是从 0 开始的 因此将 1 121 输入到 out dat 中的第一行 记得在 121 后面加上回 车进行换行 6 6 保存交卷保存交卷 6 6 第六种类型 第六种类型 字符串操作三 包括字符串操作三 包括统计单词统计单词 字符 字符的个数的个数 比较字符串比较字符串 转换字符串 转换字符串 1 1 题库中对应题目编号 题库中对应题目编号 2626 3030 统计个数 3737 数字字符转换为整数 同数字字符转换为整数 同 3737 评分有点问题 4040 字符串连接 同 字符串连接 同 6060 题 题 5353 统计个数 5656 比较字符串 5959 数字字符转换为整数 同 数字字符转换为整数 同 3737 6060 字符串连接 同 字符串连接 同 4040 题 题 7474 比较特殊 多练习 比较特殊 多练习 2 考题举例 考题举例 以 53 题为例 1 1 题目要求 求出 ss 所指字符串中指定字符的个数 例如字符串 123412132 输入的字符 为 1 则输出为 3 该类型的题目一定要知道哪个字符需要计算个数 2 2 NONO 函数 天津光华教育 二级 C 上机编程技巧 3 3 在 fun 函数中输入测试数据 编译 执行 该题函数返回 int 则需 return 语句 出现下 图结果 4 4 打开 in dat 文件 NONO 函数中的两个 fscanf 分别从in dat 中读取两行数据给数组 a和数组 b 以第一行和 第二行数据为例 数组 a 存储字符串为 hsfgjkdgfdgfdgkfdjgkldf 数组 b 存储字符为 h 做题时需要从字符串中找出字符 h 的个数 为 1 5 5 打开 out dat 文件 并清空里面的数据 首先程序先将 b 的值赋值给变量 ch 通过 in dat 中分析可以得到 b 存放的就是指定 的字符 以第一行为例就应该为 h 天津光华教育 二级 C 上机编程技巧 数据在写入 out dat 时 必须以 c d n 的形式输出 其中 c 对应 ch 即为 h d 对应 的是函数的返回值 即为 h 在字符串中的个数为 1 输出的结果为 其它行依次类推 6 6 保存交卷 7 7 第七种类型第七种类型 字符串操作四 删除指定字符字符串操作四 删除指定字符 1 1 题库中对应题目编号 题库中对应题目编号 4 4 NO NO 奇数为小写转为大写 奇数为小写转为大写 1212 OK ASCALLOK ASCALL 码 码 2525 OK ASCALLOK ASCALL 码 码 2828 数字 删除数组中相同元素数字 删除数组中相同元素 3535 OK ASCALLOK ASCALL 码 码 3939 删除空格 删除空格 5252 OK ASCALLOK ASCALL 码 码 5555 删除指定下标的字符 删除指定下标的字符 7272 OK ASCALLOK ASCALL 码 码 7575 OK ASCALLOK ASCALL 码 码 8585 删除指定下标为偶数的 删除指定下标为偶数的 字符 字符 8686 奇数位置字母转为大写 奇数位置字母转为大写 2 2 考题举例考题举例 以第 以第 4 4 题为例题为例 1 1 题目要求 将 ss 所指字符串中所有下标为奇数位置上的字母转为大写 若该位置不是字母 则不转换 该类型的题目不难但是必修认真 有耐心 2 2 NONO 函数 该题中的 NONO 函数比较难理解 同学们只需将红色方框里面的语句读懂就行 具体的将在第四步中介绍 3 3 在 fun 函数中输入测试数据 编译 执行 该题函数返回 void 则无需 return 语句 出现下 图结果 天津光华教育 二级 C 上机编程技巧 4 4 打开打开 in datin dat 文件文件 fgets tt 50 rf 表示从 in dat 中读入一个字符串给 tt 数组 如果不了解也不要紧 对 做题没有太大的影响 做题时候首先要知道字符的字符的小标是否是奇数 我们可以通过标注数字删除不符合 的字符 以第一行为例 将奇数位置的字符改动就行 记住空格占一个字符 在做其它题目 时候一定要小心 d s f f d s f d s l j f d s l f d s l j k f s d 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 5 5 打开打开 out datout dat 文件 文件 清空数据 清空数据 fprintf wf s n tt 将 tt 数组中的字符串修改后进行输出 即将下标是奇数位置 的小写字符改为大写字母 6 6 保存交卷保存交卷 天津光华教育 二级 C 上机编程技巧 8 8 第八种类型第八种类型 结构体结构体 1 1 题库中对应题目编号题库中对应题目编号 2 2 3 3 1616 2323 3333 5151 5858 6464 6868 8282 9797 9898 9999 2 考题举例考题举例 以第二题为例 备注第二题是该类型中最典型的例题 1 1 题目要求 N 名学生的数据已经通过主函数存放在 s 数组中 函数功能是 把指定分数范围 内的学生数据放在 b 所指的数组中 分数范围内的学生人数由函数返回 注释 该题不仅仅 考查题目中要求的内容 在程序段中有特殊的语句需要执行 所以需要特别注意 2 2 main 函数 该题没有 NONO 函数 因此以主函数为准 说明 main 函数 1 在 main 函数之前定义了一个结构体 STREC 里面有两个成员 分别 表示学号和成绩 该题中一定要认清操作的是学号还是成绩 特别是输出的时候 该类型 的题目都拥有相同的考点 2 在主函数中 STREC s N 定义了一个结构体类型的数组 长度为 N 并且为其赋值 16 个 数据 STREC h N tt FILE out 定义了另一个结构体数组 h 和结构体变量 tt 文件 指针 在下图中已经用红色框住的部分需要明白 第一红框到第二个红框之间的部分可以 不去理解 对做题没有影响 3 n fun s h 80 98 最为关键 结合题目可以知道该句话的含义是 从结构体数组 s 中 找到 80 到 98 之间的所有数据放到结构体数组中 帅选的数据为 总共 8 个 题目中说将分数范围内的人数返回 这样可以得知 n 的值为 8 4 fprintf out d n n 将 n 以 d 的格式输出到 out dat 中 5 为冒泡法排序 旨在将 h 中 的数据按照分数进行从小到大排序 如果不了解排序过程请参考 注意事项 结构体数 组 h 中的数据进行从小到大的操作后变为 6 表示将排序后 h 中的数据以 4d n 的形式输出到 out dat 中 并且输出的是 h i s 成绩数据项 天津光华教育 二级 C 上机编程技巧 3 3 在 fun 函数中输入测试数据 编译 执行 该题函数返回 int 则需 return 语句 出现下图结 果 执行结果中必须出现 Press any key to continue 字样才会生成 out dat 文件 都则将不生成该文件 4 4 打开 out dat 因为没有 in dat 所以无须打开它 清空里面的数据 1 首先输出 n 的值 以 d n 的形式进行输出 2 其次将 h 排序后的第一个数据输出 以 4d n 的形式输出 第一个数据位 85 85 的宽度为 2 但是输出中要求为 4 所以必须在 85 前面加上 2 个空格 3 将剩余数据全部输出 天津光华教育 二级 C 上机编程技巧 5 5 保存交卷 9 9 第九种类型第九种类型 链表类型 链表类型 1 1 题库中对应题目编号 题库中对应题目编号 2222 输出最高分 同 输出最高分 同 8080 8080 输出最高分 同 输出最高分 同 2222 8484 输出平均分 输出平均分 2 考题举例考题举例 以 22 为例进行讲解 1 1 题目要求 题目要求 N 名学生的成绩已经在主函数中放在一个带头结点的链表中 h 指向链表的头结点 函数功能是 找出学生的最高分 由函数值返回 注释 返回值是最高分 不是数据整体注释 返回值是最高分 不是数据整体 2 2 NONONONO 函数 函数 主要观察红框部分 具体解释将在下面介绍 3 3 在在 funfun 函数中输入测试数据 编译 执行 函数中输入测试数据 编译 执行 该题函数返回 double 则需 return 语句 出现下 图结果 执行结果中必须出现 Press any key to continue 字样才会生成 out dat 文 件 都则将不生成该文件 4 4 打开打开 in datin dat 文件 文件 for j 0 j N j fscanf in lf 表示从 in dat 中输入 N 个实型数给 数组 s 中 总共有十行 从每行中找到最大值 然后在 out dat 中进行输出 天津光华教育 二级 C 上机编程技巧 5 5 打开 out dat 文件 函数将返回的最大值放在变量 max 中 然后将 max 以 6 1f n 的格式进行输出 注意 6 1f 表示数据的总宽度为 6 小数点占 1 位 则应该对数据小数点后的第二位进行四舍五入操作 以第一行为例 最大值为 91 则输 出值为 91 0 91 0 前面加 2 个空格 依次类推将每行中的最大值找出来进行输出即可 结果如上图所示 6 6 保存交卷保存交卷 1010 第十种类型第十种类型 数学问题二 素数 数学问题二 素数 1 1 考题中对应题目编号 考题中对应题目编号 2020 2121 6262 2 2 考题举例 考题举例 以以 2121 为例为例 1 1 题目要求 将大于形参 m 且仅靠 m 的 k 个素数存放在 xx 所指的数组中 分析题目需要同 学们了解 什么是素数 素数就是只能被自身和 1 整除的数 最小的素数是 2 例如 4 不 是素数因为它能被 2 整除 5 是素数 因为它只能被 1 和它自身整除 2 2 NONO 函数 3 3 在 fun 函数中输入测试数据 编译 执行 该题函数返回 void 则无需 return 语句 出 天津光华教育 二级 C 上机编程技巧 现下图结果 执行时必须输入两个整型数 格式必须为执行时必须输入两个整型数 格式必须为 17 517 5 两个数终将要加一个逗号 两个数终将要加一个逗号 执行结果中必须出现 Press any key to continue 字样才会生成 out dat 文件 都则将不生成该文件 4 4 打开打开 in datin dat fscanf rf d d 表示从 in dat 中输入两个数给变量 m 和 n 以第一 行为例将 101 给了 m 将 7 给了 n 即找出 101 后面的 7 个素数放在 out dat 中 5 5 打开打开 out datout dat for m 0 m eps 而不是 i n 循环语句的语句的顺寻不能颠倒 即先加之后再计算 3 3 考题考题 1111 题目要求 求出能整除形参 题目要求 求出能整除形参 x x 且不是偶数的各个整数 并从小到大的顺序放在且不是偶数的各个整数 并从小到大的顺序放在 pppp 所所 指的数组中 这些除数的个数通过形参指的数组中 这些除数的个数通过形参 n n 返回 返回 此题中要求能整除 x 那么 x 应该为分子 而不是分母 把满足条件的数组放到 pp 所指的 数组中 即 pp 数组应用一个整型的变量来做 pp 下标 数组下标从 0 开始 所以定义一个整形 变量 k 并且赋初值为 0 满足条件的个数通过形参传回 1 在 fun 函数中输入代码 2 编译运行程序 输入测试数据 35 输出 1 5 7 35 就说明正确 交卷即可 天津光华教育 二级 C 上机编程技巧 备注 备注 此题目中不能把此题目中不能把 i i 初值定义为初值定义为 0 0 否则程序运行时得不到结果 否则程序运行时得不到结果 4 4 考题考题 1414 求小于形参 求小于形参 n n 能同时被能同时被 3 3 和和 7 7 同时整除的所有自然数之和的平方根 同时整除的所有自然数之和的平方根 6767 题和题和 1414 题类题类 似 似 首先看清题意 题目中要求是小于形参 n 不包括 n 能被 3 与 7 整除 两者用逻辑与连接 平方根用平方根的函数 sqrt 此题中要求的是自然数的和的平方根 而不是平方根的和 所以要 先把满足条件的数加起来后再开方 定义一个整型变量 i 让该变量由 1 直到 n 1 用循环实现 一个整形变量 s 让该变量存放的是满足条件的数的和 由于 s 为全局变量 故应该赋初值为 0 int i s 0 for i 1 i n i if i 3 0 return sqrt s 5 34 观察表达式 表达式的分子为 x 的 n 次冥 分母为数字的阶乘 s 为表达式的累加和 定义 三个变量 s1 为分子 s2 为分母 s 为分子除以分母的和 float s1 1 0 s2 1 0 s 1 0 int i for i 1 i n i s1 x s2 i s s1 s2 return s 备注 此时 s 的值不能赋初值为 0 如果 s 得初值为 0 此时表达式的值中没有第一项的值 并 且必须用 return 返回 6 48 该表达式的分子均为 1 分母为该项和下一项的积 s 为最后表达式的累加和 定义一个整 形变量 I 用于代表某一项的序号 则 i 1 到表达的是下一项的序号 float s 0 0 int i for i 1 i n i s 1 0 i i 1 return s 备注 分子为 1 0 而不能是 1 因为 c 语言中规定 整型除以整型 得到的值仍然为整型 i 1 必须用括号括起来 如果没有用括号括起来 根据乘法运算规则 则先运算 i i 再运 算 i i 1 的值 7 49 在该表达式中 分子分母都是阶乘 可以看做是三个数之间的运算 其中的每一个数都是 另外一个数的阶乘 定义三个变量 其中 s1 代表的是 m 的阶乘 s2 代表的 n 的阶乘 s3 代表 天津光华教育 二级 C 上机编程技巧 的是 m n 的阶乘 表达式的值可以计算为 s1 s2 s3 三个变量都是代表的是阶乘 所以在赋初值时应该赋初值为 1 或者是 1 0 float s1 1 0 s2 1 0 s3 1 0 int i for i 1 i m i s1 i for i 1 i n i s2 i for i 1 i m n i s3 i return s1 s2 s3 8 67 题目要求 求出 1 到 1000 之间能被 7 或 11 整除 但不能同时被 7 和 11 整除的所有的整数 分析题目可以知道求出 1 到 1000 之间的数字必须使用循环 起始值为 1 终止值为 1000 否则 太复杂 不能同时被 7 和 11 整除即时不能被 7 和 11 的乘积 77 整除 最后通过 n 返回满足条件 的个数 程序如下 经过编译执行后得

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论