二级c语言上机编程技巧,二级C语言上机编程题技巧.pdf

253b171540df25e1b84436cbe50dfc72.gif二级C语言上机编程题技巧.pdf

天津光华教育 二级 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 atolp;其中 atolp表示将 p 从字符串转化为长整型数。最后编译,运行后输 入测试数据后即可得到满分。 include include include “stdlib.h“include “stdlib.h“ long fun char *p return atolp;return atolp; (3) 方法总结该类方法可以适用的题目较少,同学们了解即可。 3 3 编程题做题方法二使用规律做题编程题做题方法二使用规律做题 (1) 编程思想部分题目的答案是固定的,不会因为输入的数据改变而改变,因此这部分题目 我们直接将答案记住即可,减少编程的麻烦。 (2) 考题举例 题库中的 70 题, 求 cosx-x0 的一个实根。 做题时候在 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 sum0; fori0;i void fun char *a int test; test5; 天津光华教育 二级 C 上机编程技巧 程序中出项 Press any key to continue 则说明程序已经运行,将在考试文件夹下 面生成 out.dat 文件,否则在考生文件夹下面将不会生成 out.dat 文件,就没有办法继续 做题。 4 4 打开打开 in.datin.dat 关闭第三步程序运行的界面,打开 int.dat 文件。 在 VC6.0 界面中“单击 File” ,在弹出的菜单中选取“Open” ,打开考生文件夹 Dk0124010001 下面的 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 上机编程技巧 保存后关闭 vc6.0 方可交卷 二、二、考题总结考题总结 1 1 第一种类型第一种类型字符串操作一,字符串操作一,字符串删除字符串删除* *号号 1 1 考题库中考题对应编号考题库中考题对应编号8 89 9101019194545545457576161656571717777909092929393 (以 上均为*号题) 100100(暂时无法加载) 565660607272757585858686 2 2 举例以第 10 题为例讲解 1 1 分析题目分析题目使字符串的前导*号不得多于 n 个,若多于 n 个,则删除多余的*好,若少于 或等于 n 个,则什么也不做,字符串中间和尾部*号不得删除。 2 2 分析分析 NONONONO 函数函数 NONO /* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *in, *out ; int i, n ; char s81 ; in “Dk0124010001in.dat“,“r“ ; out “Dk0124010001out.dat“,“w“ ; fori 0 ; i void fun char *a, int n int test; test5; 4 4 编译运行编译运行,输入一个字符串后还需输入一个 n 天津光华教育 二级 C 上机编程技巧 5 5 打开打开 in.datin.dat 分析 in.dat 中的数据刚好是一行字符串一行整数,总共有 20 行,通过 fscanfin, “s“, s ;fscanfin, “s“, s ; fscanfin, “d“, fscanfin, “d“, 两个函数每次输入两个数据分别给 s 和 n,例如第一行中输 入的时候 s 字符串就该为*A*BC*DEF*G,n 的值就为4,s 字符串中的前导* 号为个,多于了 n 的值,因此需要将多于的 3 个*号删除。 6 6 打开打开 out.datout.dat 打开 out.dat 并清空数据,因为 fprintfout, “sn“, s ;只将修改后的字符串输 出,将第一个字符串删除 3 个*号填写到 out.dat 中,不输出 in.dat 中的 4 以此类推将数据进行输入 7 7 保存交卷保存交卷 天津光华教育 二级 C 上机编程技巧 2 2 第二种类型第二种类型字符串操作二,字符串操作二,移动字符串移动字符串 1 1 考题库中对应试题编号考题库中对应试题编号1 1424283838787 2 2 试题举例以第 1 题为例 1 1 分析题目把 1 到第 m 个字符平移到字符串的最后 2 2 分析 NONO 函数 注意 fscanfrf, “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,将,将 字符串字符串ABCDEFGHIJKABCDEFGHIJK 给了数组给了数组 a a 6 6 打开打开 out.datout.dat 天津光华教育 二级 C 上机编程技巧 将 in.dat 中第一行中的字符的前 3 个字母移动到最后(可以使用 word 拖移字符串) 依次类推将得到正确的结果。 7 7 保存交卷 3 3 第三第三种类型种类型数学问题一,数学问题一,将两个数字按照要求合并成一个数字将两个数字按照要求合并成一个数字 1 1 对应题库中的题目编号对应题库中的题目编号13133838444446466363696978788888949495959696 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.datfscanfrf, “d,d“, ;第一行中将第一行中将 4545 给了变量给了变量 a a,将,将 1212 给了变给了变 量量 b b 5 5 打开打开 out.datout.datfprintfwf, “ad,bd,cldfprintfwf, “ad,bd,cld n“, a, b, c ;n“, a, b, c ;输出格式一定要注意,输出格式一定要注意, 如下图所示,否则不得分。如下图所示,否则不得分。 天津光华教育 二级 C 上机编程技巧 6 6 保存交卷 4 4 第四种类型第四种类型数学问题二,数学问题二,二维数组相关类型题目二维数组相关类型题目 1 1 题库中对应题目编号题库中对应题目编号1515171724243131323240404141434350508181 2 2 考题举例以 15 题为例 1 1 题目分析将题目分析将 M M 行行 N N 列的二维数组中的数据,按行的顺序依次放到二维数组中列的二维数组中的数据,按行的顺序依次放到二维数组中 2 2 NONONONO 函数函数 3 3 在在 funfun 函数中输入测试数据,编译,函数中输入测试数据,编译,执行,该题函数返回执行,该题函数返回 voidvoid 则无需则无需 returnreturn 语句,语句, 出现下图结果。出现下图结果。 4 4 打开打开 in.datin.datfscanfrf, “d d“, fscanfrf, “d d“, 从 in.dat 中第一行输入两个整型数, 第一个 3 给变量 mm 表示数组中的行,第二个 4 给变量 nn 表示数组中的列。 fori 0 ; i eps,而不是 in,循环语句的语句的顺寻不能颠倒,即先加之后再计算。 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,s0; fori1;in;i ifi30 return sqrts; 5. 34、观察表达式,表达式的分子为 x 的 n 次冥,分母为数字的阶乘,s 为表达式的累加和,定义 三个变量 s1 为分子 ,s2 为分母,s 为分子除以分母的和。 float s11.0,s21.0,s1.0; int i; fori1;in;i s1*x; s2*i; ss1/s2; return s; 备注此时 s 的值不能赋初值为 0;如果 s 得初值为 0,此时表达式的值中没有第一项的值。并 且必须用 return 返回。 6. 48、该表达式的分子均为 1,分母为该项和下一项的积,s 为最后表达式的累加和,定义一个整 形变量 I,用于代表某一项的序号,则 i1 到表达的是下一项的序号。 float s0.0; int i; fori1;in;i s1.0/i*i1; return s; 备注 分子为 1.0,而不能是 1;因为 c 语言中规定,整型除以整型,得到的值仍然为整型, 。 i1 必须用括号括起来,如果没有用括号括起来,根据乘法运算规则,则先运算 i*i,再运 算 i*i1 的值。 7. 49、在该表达式中,分子分母都是阶乘,可以看做是三个数之间的运算,其中的每一个数都是 另外一个数的阶乘,定义三个变量,其中 s1 代表的是 m 的阶乘,s2 代表的 n 的阶乘,s3 代表 天津光华教育 二级 C 上机编程技巧 的是 m-n 的阶乘,表达式的值可以计算为s1/s2*s3; 三个变量都是代表的是阶乘,所以在赋初值时应该赋初值为 1 或者是 1.0; float s11.0,s21.0,s31.0; int i; fori1;im;i s1*i; fori1;in;i s2*i; fori1;im-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 返回满足条件 的个数。 程序如下,经过编译执行后得到的结果如下 9. 76、 分析题目知道 F0和 F1是两个初始值为 0 和 1,假设 F0为变量 a,F1为变量 1,假设 F (n)为 c,则 a0,b1; F3F2F1即F3ba1 即cba F4F3F2即F4bab2 即cbab 换种形式cba,即 b 的值应该为 上一步中 c 的值,a 应该为上一步中 b 的值,依次类推即可使用循环来实现结果。 使用 C 语言编程时,必须给变量 C 赋值,题目中要求找出大于 t 的最小的数,话句话说就 是当 c 的值小于等于 t 时就循环,一直找到大于 t 的最小数为止。程序如下,当执行编译、运 行后程序输出 f 的值为 1597 就为正确的,否则需要再仔细检查代码。 天津光华教育 二级 C 上机编程技巧 10. 89、求出 1 到 m 之间各个数字 lni值的和的平方根。 分析 1 1 题目中要求计算 1 到 m 的 lni,则必须使用循环,i 从 0 开始到 m 结束,lni在 C 语言中必须改为 logi; 2 2 sumsumlogi表示求出 1 到 m 的 lni的和 3 3 return sqrtsum表示函数返回 sum 的平方根 4 4 程序输出 6.506583 时为正确结果 11. 91、 分析 1 1 观察计算公式可以知道,题目要求做的事情就是将 1/11/12的和进行返回, 因此确定循环变量 i 的值必须从 1 开始,一直到 n 结束。 2 2 观察计算公式,分子不变都是 1,分母是 1 到第 i 项的累加和,用 t 表示 3 3 tti;计算出分母 4 4 ss1.0/t;计算出累加和,其中 1.0/t 必须要注意,不能写为 1/t,这样就出错 5 5 return s;返回累加和 天津光华教育 二级 C 上机编程技巧 三、三、注意事项注意事项 1.1. 做题的顺序最好安排为先做编程题,接着做改错题,最后做填空题 2.2. 每年考题都有部分会更新,因此同学们在做题目的时候要多做总结,掌握方法不能直接记答案 3.3. 做题时候一定要先找到考试文件夹,看清楚文件安装的路径,例如老 师的考试系统就安装在了 D 盘下面,因此做题的时候我们的考题就都在文件夹 24010001 下面, 其中 24010001 表示每个考生的准考证号,做题时候一定要注意自己只能在自己的考试目录下做 题,否则不得分。 4.4. 该模拟系统评分答案不是很完整,例如在填空题中有一个空需要填写2.0*i,可答案是2.*i, 这样考试在评分的时候就没有得分,同学们注意在 C 语言中 2.0 和 2.和.2 都是一样的,因此在 考试的时候不管填写哪个答案都能得分。换句话说考试的时候有多个答案,考生无须将所有答 案填写,只用填写自己知道的正确答案即可。 5.5. 不管是填空题、改错题,还是编程题,都要记得保存,保存按钮在 vc6.0 左上角 6.6. 做编程题时,除了保存还必须进行编译和运行,其中为编译,为执行,当程序没有编译 时执行为灰色的,即不能执行,只有编译正确后才能进行执行命令 7.7. 执行结果必须出现 “Press any key to continue”字样才能生成 out.dat 文件,如果没有 出现该语句则应该注意是否自己的测试数据有没有输入正确。 8.8. 使用 VC6.0 打开 in.dat 文件和 out.dat 文件时,会出现以下的问题 天津光华教育 二级 C 上机编程技巧 in 后面没有.dat 文件,此时大家不用太过在意,这个是系统“隐藏了已知文件的扩展名” 导致的,同学们使用 VC6.0 打开时会正确的将 in 和 out 打开。 9.9. 打开 out.dat 数据后,同学们需要注意空格和清空数据 在 1.833333 前面明显有多个空格,此时不是程序要求输出空格,而是 VC6.0 编译器显示 方式的问题 空格是由于产生的,因此做题时要格外注意,清空数据后,光标要停留在最前面,删到不能 删除都为止。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值