在C语言二级考试中编程题编译,二级C语言上机编程题

《二级C语言上机编程题》由会员分享,可在线阅读,更多相关《二级C语言上机编程题(34页珍藏版)》请在人人文库网上搜索。

1、二级C语言上机编程题技巧一、 方法总结1、 二级C语言上机编程题在二级上机考试中属于较难题型,因此很多同学都害怕通过不了。综合往年的考试,结合考试大纲,每年考试的编程题都有一定的规律和方法,只要同学们认真熟练使用做题的方法,通过考试是没有问题的。2、 编程题做题方法一:使用C语言特有的函数做题(1) 编程思想:使用C语言函数库中的做题,做题时必须注意包含对应的头文件(2) 考题举例:题库中的第37题,要求将数字字符串转化为对应整数,例如“-1234”转化后为-1234。做题时需要添加头文件#include stdlib.h,然后在fun函数中写入程序return atol(p);其中atol(。

2、p)表示将p从字符串转化为长整型数。最后编译,运行后输入测试数据后即可得到满分。#include #include #include stdlib.hlong fun ( char *p)return atol(p);(3) 方法总结:该类方法可以适用的题目较少,同学们了解即可。3、 编程题做题方法二:使用规律做题(1) 编程思想:部分题目的答案是固定的,不会因为输入的数据改变而改变,因此这部分题目我们直接将答案记住即可,减少编程的麻烦。(2) 考题举例:题库中的70题,求cos(x)-x=0的一个实根。做题时候在fun函数中输入return 0.;后点击编译和运行即可,无需输入测试数据。(补。

3、充:如果需要输入测试数据,程序在输出的黑屏上面会提示,不过一般是英文提示,所以同学们要格外小心)#include #include double fun()return 0.;(3) 考题总结:该题为每年必考的题目,因此同学们要将答案熟记,以便大家能顺利通过考试。4、 编程题做题方法三:使用C语言编程(1) 编程思想:该种方法是考试中使用频率最多的方法,就是使用学习的C语言进行编程,对C语言的知识进行综合运用,因此难度较大,容易出错。(2) 考题举例:题库14题,求小于形参n同时能被3和7整除的所有自然数之和的平方根,并作为函数的返回。做题时时一定要按照三个步骤来:一要定义,二要满足题意,三要。

4、看有无返回。#include #include double fun( int n)int i;int sum=0;for(i=0;ivoid fun( char *a )int test;test=5;要求输入一个字符串,可以任意的从键盘中输入字符串,例如输入:12345回车,得到:程序中出项Press any key to continue则说明程序已经运行,将在考试文件夹下面生成out.dat文件,否则在考生文件夹下面将不会生成out.dat文件,就没有办法继续做题。4) 打开in.dat 关闭第三步程序运行的界面,打开int.dat文件。 在VC+6.0界面中“单击File”,在弹出的。

5、菜单中选取“Open”,打开考生文件夹D:k01下面的in.dat文件。截图如下: 查找范围里面选中D盘 找到k01下面的,发现没有in.dat文件,单击文件类型,选择“所有文件(*.*)”即可 选中in.dat,然后单击打开,出现下图所示界面为正确打开分析in.dat中的数据发现每行数据都是由*号和字母组成的,总共有10行。5) 打开out.dat 和打开in.dat同样的方法打开out.dat 将out.dat里面的数据清空,即将out中所有东西都删除,让out没有任何的代码 将in.dat中第一行数据*A*BC*DEF*G*复制到out.dat中 将out.dat第一行数据的中间*和尾部。

6、*全部删除,然后敲入回车 以此类推将in.dat中剩余9行按照上面的步骤复制到out.dat中进行修改,两行中间没有空行6) 保存交卷 单击左上方的保存,保存结果 保存后关闭vc+6.0方可交卷二、 考题总结第一种类型:字符串操作一,字符串删除*号1、 考题库中考题对应编号:8、9、10、19、45、54、57、61、65、71、77、90、92、93、100、56、60、72、75、85、862、 举例:以第10题为例讲解1) 分析题目:使字符串的前导*号不得多于n个,若多于n个,则删除多余的*好,若少于或等于n个,则什么也不做,字符串中间和尾部*号不得删除。2) 分析NONO函数:NONO。

7、()/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */FILE *in, *out ;int i, n ; char s81 ;in = fopen(D:k01in.dat,r) ;out = fopen(D:k01out.dat,w) ;for(i = 0 ; i void fun( char *a, int n )int test;test=5;4) 编译运行,输入一个字符串后还需输入一个n5) 打开in.dat分析in.dat中的数据刚好是一行字符串一行整数,总共有20行,通过fscanf(in, %s, s) ;fscanf(in, %d, &n) ;两个函数每次。

8、输入两个数据分别给s和n,例如第一行中输入的时候s字符串就该为:*A*BC*DEF*G*,n的值就为:4,s字符串中的前导*号为个,多于了n的值,因此需要将多于的3个*号删除。6) 打开out.dat打开out.dat并清空数据,因为fprintf(out, %sn, s) ;只将修改后的字符串输出,将第一个字符串删除3个*号填写到out.dat中,不输出in.dat中的4以此类推将数据进行输入:7) 保存交卷第二种类型:字符串操作二,移动字符串1、 考题库中对应试题编号:1、42、83、872、 试题举例:以第1题为例(1) 分析题目:把1到第m个字符平移到字符串的最后(2) 分析NONO函。

9、数:注意fscanf(rf, %d %s, &m, a) ;表示从rf指向的文件in.dat中读取两个数据,一个整型数据给变量m,另外一个给数组a。根据题目我们不难判断,程序就完成:将数组a中的字符串从第1个到第m个移动到最后。(3) 在fun函数中输入测试数据,该题函数返回void则无需return语句,在执行窗口中需要输入m的值。(4) 编译,执行,输入测试数据(5) 打开in.dat分析:in.dat结合NONO函数中的fscanf函数可以得到,函数将整数3给了m,将字符串:ABCDEFGHIJK给了数组a(6) 打开out.dat 将in.dat中第一行中的字符的前3个字母移动到最后 。

10、依次类推将得到正确的结果。(7) 保存交卷第三种类型:数学问题一,将两个数字按照要求合并成一个数字1、 对应题库中的题目编号:13、38、44、46、63、69、78、88、94、95、962、 试题举例:以13题为例(1) 分析题目:将a中十位和个位数依次放在变量c的百位和个位上,b中的十位和个位依次放在变量c的十位和千位上(2) 分析NONO函数:(3) 在fun函数中输入测试数据,编译,执行,该题函数返回void则无需return语句,在执行窗口中需要输入12空格45回车后,出现下图结果。(4) 打开in.dat,fscanf(rf, %d,%d, &a, &b) ;第一行中将45给了变。

11、量a,将12给了变量b(5) 打开out.dat。fprintf(wf, a=%d,b=%d,c=%ldn, a, b, c) ;输出格式一定要注意,如下图所示,否则不得分。(6) 保存交卷第四种类型:数学问题二,二维数组相关类型题目1、 题库中对应题目编号:15、17、24、26、31、32、40、41、43、50、812、 考题举例:以15题为例(1) 题目分析:将M行N列的二维数组中的数据,按行的顺序依次放到二维数组中(2) NONO函数:(3) 在fun函数中输入测试数据,编译,执行,该题函数返回void则无需return语句,出现下图结果。(4) 打开in.dat。fscanf(rf。

12、, %d %d, &mm, &nn) ;从in.dat中第一行输入两个整型数,第一个3给变量mm表示数组中的行,第二个4给变量nn表示数组中的列。for(i = 0 ; i =eps,而不是i=n,循环语句的语句的顺寻不能颠倒,即先加之后再计算。3. 考题11,题目要求:求出能整除形参x且不是偶数的各个整数,并从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。此题中要求能整除x,那么x应该为分子,而不是分母,把满足条件的数组放到pp所指的数组中,即pp数组应用一个整型的变量来做pp下标,数组下标从0开始,所以定义一个整形变量k并且赋初值为0;满足条件的个数通过形参传回。(1) 。

13、在fun函数中输入代码:(2) 编译运行程序,输入测试数据35,输出1,5,7,35就说明正确,交卷即可备注:此题目中不能把i初值定义为0,否则程序运行时得不到结果。4. 考题14:求小于形参n能同时被3和7同时整除的所有自然数之和的平方根。67题和14题类似。首先看清题意,题目中要求是小于形参n,不包括n,能被3与7整除,两者用逻辑与连接,平方根用平方根的函数sqrt;此题中要求的是自然数的和的平方根,而不是平方根的和,所以要先把满足条件的数加起来后再开方。定义一个整型变量i,让该变量由1直到n-1,用循环实现,一个整形变量s,让该变量存放的是满足条件的数的和,由于s为全局变量,故应该赋初值。

14、为0;int i,s=0;for(i=1;in;i+)if(i%3=0&i%7=0)s+=i;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为最。

15、后表达式的累加和,定义一个整形变量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代表的是m-n的阶乘,表达式的值。

16、可以计算为: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整除,最后通。

17、过n返回满足条件的个数。程序如下,经过编译执行后得到的结果如下:9. 76、分析题目知道F(0)和F(1)是两个初始值为0和1,假设F(0)为变量a,F(1)为变量1,假设F(n)为c,则:a=0,b=1;F(3)=F(2)+F(1)即:F(3)=b+a=1 即:c=b+aF(4)=F(3)+F(2)即:F(4)=(b+a)+b=2 即:c=(b+a)+b 换种形式:c=b+a,即b的值应该为上一步中c的值,a应该为上一步中b的值,依次类推即可使用循环来实现结果。使用C语言编程时,必须给变量C赋值,题目中要求找出大于t的最小的数,话句话说就是当c的值小于等于t时就循环,一直找到大于t的最小数为。

18、止。程序如下,当执行编译、运行后程序输出f的值为1597就为正确的,否则需要再仔细检查代码。10. 89、求出1到m之间各个数字ln(i)值的和的平方根。分析:(1) 题目中要求计算1到m的ln(i),则必须使用循环,i从0开始到m结束,ln(i)在C语言中必须改为log(i);(2) sum=sum+log(i)表示求出1到m的ln(i)的和(3) return sqrt(sum)表示函数返回sum的平方根(4) 程序输出6.时为正确结果11. 91、分析:(1) 观察计算公式可以知道,题目要求做的事情就是将1/1+1/(1+2)+的和进行返回,因此确定循环变量i的值必须从1开始,一直到n结。

19、束。(2) 观察计算公式,分子不变都是1,分母是1到第i项的累加和,用t表示(3) t=t+i;计算出分母(4) s=s+1.0/t;计算出累加和,其中1.0/t必须要注意,不能写为1/t,这样就出错(5) return s;返回累加和三、 注意事项1. 做题的顺序最好安排为:先做编程题,接着做改错题,最后做填空题2. 每年考题都有部分会更新,因此同学们在做题目的时候要多做总结,掌握方法不能直接记答案3. 做题时候一定要先找到考试文件夹,看清楚文件安装的路径,例如:老师的考试系统就安装在了D盘下面,因此做题的时候我们的考题就都在文件夹下面,其中表示每个考生的准考证号,做题时候一定要注意自己只能。

20、在自己的考试目录下做题,否则不得分。4. 该模拟系统评分答案不是很完整,例如在填空题中有一个空需要填写:2.0*i,可答案是:2.*i,这样考试在评分的时候就没有得分,同学们注意在C语言中2.0和2.和.2都是一样的,因此在考试的时候不管填写哪个答案都能得分。换句话说:考试的时候有多个答案,考生无须将所有答案填写,只用填写自己知道的正确答案即可。5. 不管是填空题、改错题,还是编程题,都要记得保存,保存按钮在vc+6.0左上角:6. 做编程题时,除了保存还必须进行编译和运行,其中为编译,为执行,当程序没有编译时执行为灰色的,即不能执行,只有编译正确后才能进行执行命令7. 执行结果必须出现:“P。

21、ress any key to continue”字样才能生成out.dat文件,如果没有出现该语句则应该注意是否自己的测试数据有没有输入正确。8. 使用VC+6.0打开in.dat文件和out.dat文件时,会出现以下的问题in后面没有.dat文件,此时大家不用太过在意,这个是系统“隐藏了已知文件的扩展名”导致的,同学们使用VC+6.0打开时会正确的将in和out打开。9. 打开out.dat数据后,同学们需要注意空格和清空数据在1.前面明显有多个空格,此时不是程序要求输出空格,而是VC+6.0编译器显示方式的问题:空格是由于产生的,因此做题时要格外注意,清空数据后,光标要停留在最前面,删到不能删除都为止。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值