C语言上机注意事项.doc
《C语言上机注意事项.doc》由会员分享,可在线阅读,更多相关《C语言上机注意事项.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机二级VB上机考试部分注意点VB上机考试部分注意点:程序调试题:只有一个Modify.bas模块文件,在进行调试的时候先添加一个窗体,通过窗体调用模块函数进行调试,例如:新建窗体后,添加一个命令按钮command1,在该命令按钮的click事件中写入:Private sub Command1_Click()Call Sort() /注意Sort为Modify.bas模块文件中的函数名End sub调试修改都在Modify.bas模块文件中进行,只能修改红色的标记部分运行时可能要指定启动窗体为新建的窗体Form1调试成功后对工程进行正确保存,保存位置题目里有提示,一般为考生文件夹下paper
2、目录,切记一定要正确保存过Modify.bas。做完后关闭VB,返回系统;程序设计题:进入做题后会有个Design.exe文件供参考,看清题意,进行做题,特别注意窗体上的控件名要和题目上要求的一致。边做边保存,以防意外死机,注意保存的位置,保存的文件包括窗体文件(frm文件)和工程文件(vbp文件)做完后关闭VB,返回系统。全国计算机二级C语言上机编程题详细分析(1)请编一个函数fun,它的功能是:根据以下公式求的值(要求满足精度0.0005,即,某项小于0.0005时停止迭代):程序运行后,如果输入精度0.0005,则程序输出多少。注意:部分源程序存在PROG1.C中,请勿改动主函数和其他函
3、数中的内容,仅在函数fun的指定的部位填入你编写的若干语句。试题源程序如下:#include stdio.h#include math.hdouble fun(double eps)main() double x;printf(Input eps:);scanf(%lf,&x); printf(neps=%lf, PI=%lfn,x,fun(x);分析:(1)本题所用基本算法应为累加。假设累加值放在变量s中,累加项放在变量t中,累加操作由语句s=s+t;来实现。(2)若称 为第1累加项,则其前的1为第0累加项,其后的一项为第2累加项,按给定的公式可知,从第1累加项开始,后一项的累加项是前一项的
4、值乘以 。所以当前的累加项应当是:t=t*n/(2.0*n+1.0)。表达式右边的t中是前一项的值,表达式左边的t为当前的每累加累加项。请注意,不要写成:t*n/(2*n+1)而进行整除。(3)若第0累加项的1作为s的初值,语句:s=s+t;执行n次,就把第1到第n项累加到了s中。每进行一次累加,n值增1。(4)把以上操作放在循环中。按本题规定,当某项小于eps(0.0005)时停止迭代,因此若用while循环,可用t=eps作为控制循环进行的条件:while( t=eps ) s+=t; n+; t=t*n/(2.0*n+1); (5)注意应给所用变量赋适当的初值。(6)退出循环后,函数的返
5、回值应是:2*s。全国计算机二级C语言上机编程题详细分析(2)请编一个函数fun,其中n所指存储单元中存放了数组中元素的个数。函数的功能是:删除所有值为y的元素。已在主函数中给数组元素赋值,y的值由主函数通过键盘读入。注意:部分源程序存在PROG1.C中,请勿改动主函数和其他函数中的内容,仅在函数fun的指定的部位填入你编写的若干语句。试题源程序如下:#include stdio.h#define M 20void fun(int bb,int *n, int y)main() int aaM=1,2,3,3,2,1,1,2,3,4,5,4,3,2,1, n=15, y, k;printf(T
6、he original data is: n);for(k=0; kn; k+ ) printf(=,aak);printf(nEnter a number to deleted: ); scanf(%d,&y);fun(aa, &n, y);printf(The data after deleted %d: n,y);for(k=0; kn; k+ ) printf(=,aak);printf(nn);分析:(1)本题的基本算法是查找和删除。(2)若循环控制变量是i,通过for循环逐个检查元素中的值,把数组元素中不等于y的值从头开始重新放入bb所指的数组中。用i作为下标,逐个引用数组元素;用
7、i作为下标,把不等于y的元素中的值逐一重新放入bb所指的数组中。这一操作可用以下语句来实现:if(bbi!=y)bbj+=bbi;(3)因为已删除了与y值相等的元素,因此,数组中数据的个数已经改变;所以循环结束后,需要重新给n所指变量赋值。退出循环后,变量j中存放的是删除后数组中数据的个数,通过语句*n=j;把它赋给n所指变量即可。(4)主函数中输出aa数组中原有的数据,和删除后的数据。考生可以对照所编函数是否正确。 全国计算机二级C语言上机编程题详细分析(3)请编写一个函数void fun(char m,int k,int xx),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的
8、数组中。例如,若输入17和5,则应输出:19,23,29,31,37。注意:部分源程序存在PROG1.C中,请勿改动主函数和其他函数中的内容,仅在函数fun的指定的部位填入你编写的若干语句。试题源程序如下:#include stdio.hvoid fun(int m, int k, int xx)main() int m, n, zz100;printf(nPlease enter two integers(m & n): );scanf(%d%d,&m,&n);fun(m, n, zz);for(m=0; mn; m+) printf(%d ,zzm);printf(nn);分析:(1)本题
9、的基本算法是求素数。假设有整数i,若i不能被2到i之间的任意一个数除尽,则i就是素数;若一旦能被某个数除尽就不是素数。(2)以下是求i是否为素数的基本算法:变量ok用作i是素数的标志,ok为1,则i是素数。ok=1;for(p=2; pi/2; p+)if( i%p=0) ok=0; break; if(ok)(3)本题要求把大于m的k个素数存入xx所指的数组中。所以,i的值应大于m;取大于m的值逐一进行判断,若是素数就放入xx所指数组中。把以上语句放入一个循环中:for( i=m+1,j=0; ? ; i+ ) ok=1;for(p=2; p=i/2; p+)if( i%p=0 ) ok=0
10、; break; if (ok) xxj=i;j+; 此处,变量i统计存入数组中元素的个数,同时作为下标。(4)按本题的要求,外循环结束的条件应当是:jk(j的值从0到k-1)。只要求得了k个素数,就可退出循环。因此在?处应填入jk。 等级考试(笔试)虽然知识面比较广,但不是很深,基础知识考的是日常操作能力,程序设计考的是细心。辛辛苦苦准备了大半年,又经过2个小时的考场之战,交卷之后还很“自美”,成绩单上的“不及格”让你一时不敢相信自己的眼睛。 当对着答案细细“品味”时,你会N次的感叹原来“罪魁祸首”是“不细心”。 综观近年来的考题,对容易出错的典型题例作了汇总和分析,也好给以后参加二级C考试
11、的考生增加点免疫力。 1)审题不清 (1)审题时的一字之差。 一定要搞清题意,题目让我们选择的是“正确”还是“不正确”的;“能”还是“不能”的;本来要求选出一个错误的答案,但题目中没有“错误”字样,而是说 “请选出不正确的一项”,一不小心你就可能会把选项中最前面一个“正确”的选为答案,因“正确”的有三个选项,当然觉得很容易,就这样,“错误”轻易地从你的笔尖溜走了。 (2)不注意文字部分的要求和说明。 很多时候,为了省时间,上来就去看程序,这样不仅不能省时间,还会走弯路、出错误。看看下面的两个例子吧! 例1:以下程序中函数f的功能是将n个字符串,按由大到小的顺序进行排序。 #include vo
12、id f(char p10,int n) 略 main() char p10=abc,aabdfg,abbd,dcdbe,cd;int i; f(p,5); printf(%dn,strlen(p0); 程序运行后的输出结果是 (A)6 (B)4 (C)5 (D)3 (为了节省版面,把函数f的内容略去了。)看过文字说明,接着看主函数,就可以锁定这个字符串是“dcdbe”,而不用花时间去分析函数f。要注意的是:别把最长的一串当成最大的字符串,看上“aabdfg”可就错了,答案应为C。 例2: 以下程序中给指针p分配三个double型动态内存单元,请填空。 # include main ( ) d
13、ouble p; p=(double ) malloc( ); p0=1.5;p1=2.5;p2=3.5; printf(%f%f%fn,p0,p1,p2); 如果上来就看程序,就会忽略“给指针p分配三个double型动态内存单元”,这里要求“三个”,如果大笔一挥写出了sizeof(double)可就太冤枉了,其实应该是3sizeof(double)。 2)把“赋值”看成了“等于” 例:有以下程序段 int k=0 while(k=1)k+; while 循环执行的次数是: (A)无限次 (B)有语法错,不能执行 (C)一次也不执行 (D)执行1次 此题如果理解为k等于1时循环才执行,那么“k
14、+”不被执行,k的值就始终为0,这时就把C选上了。其实,while循环的条件是一个赋值表达式,答案为A。 3)表达式的值与变量的值 例:有以下程序 int a=2; int f(int a) return (a)+; main( ) int s=0; int a=5; s+=f(&a); s+=f(&a); printf(%dn,s); 执行后输出结果是() (A)10 (B)9 (C)7 (D)8 答案是C。此题有两个要点,1是局部变量与全局变量的作用范围,2是函数f(&a)返回的是表达式 (a)+的值,而不是a的值。 4)把关系表达式有别于数学上的关系式 例:有以下程序 main() in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 注意事项
限制150内