计算机等级考试.ppt

上传人:hyn****60 文档编号:87443123 上传时间:2023-04-16 格式:PPT 页数:76 大小:532.50KB
返回 下载 相关 举报
计算机等级考试.ppt_第1页
第1页 / 共76页
计算机等级考试.ppt_第2页
第2页 / 共76页
点击查看更多>>
资源描述

《计算机等级考试.ppt》由会员分享,可在线阅读,更多相关《计算机等级考试.ppt(76页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、计算机等级考试二级计算机等级考试二级C C培训讲义培训讲义第一讲:了解第一讲:了解HNCRE-2CHNCRE-2C 河南省计算机等级考试中的二级河南省计算机等级考试中的二级C语言考试采用机试的形式,内语言考试采用机试的形式,内容包括二大部分:基础知识部分和容包括二大部分:基础知识部分和C语言部分,总分语言部分,总分100分。基础知识分。基础知识占占30分,题型为选择题,共分,题型为选择题,共30题,每题题,每题1分。分。C语言部分占语言部分占70分,题型分,题型为编写程序题,其中第为编写程序题,其中第1道编程题是必做题,分值道编程题是必做题,分值20分;第分;第2、3、4道编道编程题每题程题每

2、题25分,考生从后分,考生从后3道编程题中选做两题,我们一般选做第道编程题中选做两题,我们一般选做第2和第和第3道编程题。道编程题。这这4道编程题,每一题都有固定的内容道编程题,每一题都有固定的内容,很有规律;比如,很有规律;比如第第1道编程是与数列有关的题,第道编程是与数列有关的题,第2题通常是求方程的根、求积分的值等方题通常是求方程的根、求积分的值等方面内容的题,第面内容的题,第3题是与文件操作有关的题题是与文件操作有关的题,第,第4题是可视化设计方面的题是可视化设计方面的题。因为我们的教材没有讲可视化设计方面的内容,所以我们一般不选题。因为我们的教材没有讲可视化设计方面的内容,所以我们一

3、般不选这个题;当然,同学如果对可视化很有兴趣,而且也掌握了这方面的知这个题;当然,同学如果对可视化很有兴趣,而且也掌握了这方面的知识和编程技术,也可以选这个题。如果识和编程技术,也可以选这个题。如果4个编程题都做了,只计算前个编程题都做了,只计算前3道道编程题的分值。基础知识的题一般同学最少也能拿到编程题的分值。基础知识的题一般同学最少也能拿到15分,而编程题则分,而编程题则要求较严,要求程序必须能顺利运行而且结果正确。我们的培训班紧扣要求较严,要求程序必须能顺利运行而且结果正确。我们的培训班紧扣编程题的内容,仔细讲解这些题的编写方法,力求同学都能过关。编程题的内容,仔细讲解这些题的编写方法,

4、力求同学都能过关。1.与数列有关的题与数列有关的题 数列就是一组排列有序,变化有规律的数据。我们在数学中学过的数列就是一组排列有序,变化有规律的数据。我们在数学中学过的等比数列、等差数列,以及我们前面讲过的斐波拉契数列都是典型数列。等比数列、等差数列,以及我们前面讲过的斐波拉契数列都是典型数列。对于有关数列的题目,关键在于发现数列变化的规律,以及找到用对于有关数列的题目,关键在于发现数列变化的规律,以及找到用C C语语言的语句体现这种变化规律的方法。言的语句体现这种变化规律的方法。例:编程序例:编程序,计算并输出下面数列前计算并输出下面数列前n n项的和项的和(设设n=20,x=0.5),n=

5、20,x=0.5),要求要求结果保留结果保留3 3位小数。位小数。sin(x)/x,sin(2x)/2x,sin(3x)/3x,sin(n*x)/(n*x),sin(x)/x,sin(2x)/2x,sin(3x)/3x,sin(n*x)/(n*x),(其中其中,sin(x),sin(x)为正弦函数为正弦函数)程序如下:程序如下:#include#include#include math.h#include math.h main()main()float s=0;float s=0;float n=1,x=0.5;float n=1,x=0.5;while(n=20)while(n=20)s=

6、s+sin(n*x)/(n*x);s=s+sin(n*x)/(n*x);n=n+1;n=n+1;printf(okprintf(ok=%7.3fn,s);=%7.3fn,s);2.求方程根、求积分值等计算方面的题求方程根、求积分值等计算方面的题 例:在给定程序中,函数例:在给定程序中,函数funfun和和funxfunx的功能是用二分法求解方程的功能是用二分法求解方程2x2x3 3-4x-4x2 2+3x-6=0+3x-6=0的一个根,并要求绝对误差不超过的一个根,并要求绝对误差不超过0.0010.001。例如:给。例如:给m m输输入入-100,-100,给给n n输入输入9090,则函数求

7、得一个根值为,则函数求得一个根值为2.0002.000。程序如下:程序如下:#include math.h#include math.h#include#include double double funx(doublefunx(double x);x);double fun(double m,double n);double fun(double m,double n);main()main()double m,n,root;double m,n,root;printf(Enterprintf(Enter m,n:n);m,n:n);scanf(%lf,%lf,&m,&nscanf(%lf,

8、%lf,&m,&n););root=fun(m,n);root=fun(m,n);printf(Theprintf(The root is%6.3fn,root);root is%6.3fn,root);double double funx(doublefunx(double x)x)return(2*x*x*x-4*x*x+3*x-6);return(2*x*x*x-4*x*x+3*x-6);double fun(double m,double n)double fun(double m,double n)double r;double r;r=(m+n)/2;r=(m+n)/2;while

9、(fabs(n-mwhile(fabs(n-m)=0.001)=0.001)if(if(funx(rfunx(r)*)*funx(nfunx(n)0)m=r;)0)m=r;else n=r;else n=r;r=(m+n)/2;r=(m+n)/2;return r;return r;3.与文件操作有关的题与文件操作有关的题 已已知知在在文文本本文文件件下下载载文文件件“20075.txt”20075.txt”(右右击击,选选择择“目目标标另另存存为为”)中中共共有有500500个个记记录录,每每个个记记录录是是用用以以下下格格式式表表示示的的5 5项项数数据据(各各数数据间以空格分开据间以空格

10、分开):学号学号姓名姓名机试成绩机试成绩笔试笔试成绩成绩平时成绩平时成绩nnnnnnnnnnnnnnnnnnccccccccccccnnnnnnnnnnnn (说明:说明:n n表示整型;表示整型;c c表示字符型;表示字符型;n n的个数表示数据位数的个数表示数据位数,例如例如nnnn表示两位整数表示两位整数,c,c的个数表示字符位数)的个数表示字符位数)求出前求出前100100人的笔试的平均成绩。人的笔试的平均成绩。程序如下:程序如下:#include#include stdio.hstdio.h structstruct course_type course_type long long

11、 snosno;char sname6;char sname6;short course1;short course1;short course2;short course2;short course3;short course3;ycourse501;ycourse501;void main()void main()intint i;i;float float avecourseavecourse=0;=0;FILE*FILE*fpfp;if(if(fpfp=fopen(20075.txt,rb)=NULL)=fopen(20075.txt,rb)=NULL)printf(Canprintf

12、(Can not open the file!n);not open the file!n);return;return;for(i=0;i100;i+)for(i=0;i100;i+)fscanf(fp,%ldt%st%dt%dt%dt,&ycoursei.sno,&ycoursei.fscanf(fp,%ldt%st%dt%dt%dt,&ycoursei.sno,&ycoursei.sname,&ycoursei.course1,&ycoursei.course2,&ycoursei.coursname,&ycoursei.course1,&ycoursei.course2,&ycours

13、ei.course3);se3);avecourseavecourse=avecourse+(float)(ycoursei.course2)/100;=avecourse+(float)(ycoursei.course2)/100;printf(averageprintf(average course2 is:%course2 is:%fnn,avecoursefnn,avecourse););fclose(fpfclose(fp););return;return;1.C1.C源程序文件的建立源程序文件的建立 打开打开Microsoft Visual C+6.0(Microsoft Visu

14、al C+6.0(简称简称VC6.0VC6.0)的开发环境窗口,选用的开发环境窗口,选用FileFile(文文件)菜单下的件)菜单下的NewNew(新建)菜单项,这样会打开一个新建)菜单项,这样会打开一个NewNew(新建)对话框,选择其中的新建)对话框,选择其中的FilesFiles(文件)标签页,然后在该标签页左边的文件类型列表中选中文件)标签页,然后在该标签页左边的文件类型列表中选中C+Source C+Source FileFile(C+C+源程序文件),并在右边的源程序文件),并在右边的File(File(文件名文件名)输入框中,输入所要创建的程序输入框中,输入所要创建的程序文件的基

15、本名和扩展名(文件的基本名和扩展名(.c.c或或.cppcpp ),),其中的扩展名(其中的扩展名(.c.c或或.cppcpp)可以不输入,可以不输入,VC6.0VC6.0的开发环境会自动在其后加上的开发环境会自动在其后加上“.cppcpp”这一扩展名这一扩展名。对于我们的考试范围而言。对于我们的考试范围而言,.c.c和和.cppcpp并没有什么区别,但因为我们考的是二级并没有什么区别,但因为我们考的是二级c c,而不是二级而不是二级c+c+。所以好象用所以好象用.c.c合适些。如果你想省事,让系统在源程序文件主名后加上合适些。如果你想省事,让系统在源程序文件主名后加上.cppcpp的扩展名,

16、也什么错。的扩展名,也什么错。在文件名输入框下面的在文件名输入框下面的Location:Location:(位置)输入框中可以查看和改变所建立的程序文位置)输入框中可以查看和改变所建立的程序文第二讲:熟悉考试的软件环境第二讲:熟悉考试的软件环境Microsoft Visual C+6.0Microsoft Visual C+6.0件在电脑上的存放位置,还可以用该输入框右边的件在电脑上的存放位置,还可以用该输入框右边的“省略号省略号”按钮选择另一按钮选择另一个位置来存放所要建立的程序。指定了文件的名称和位置后,按下该对话框个位置来存放所要建立的程序。指定了文件的名称和位置后,按下该对话框最下边的

17、最下边的OKOK(确定)按钮,光标就进入确定)按钮,光标就进入VC6.0VC6.0开发环境主窗口右边的程序代开发环境主窗口右边的程序代码输入、编辑区域(主区域),你可以在这里将你所写的程序代码逐字逐行码输入、编辑区域(主区域),你可以在这里将你所写的程序代码逐字逐行地输入。地输入。如果有一个已经存在的如果有一个已经存在的C C语言源程序文件,我们可以用语言源程序文件,我们可以用“我的电脑我的电脑”这这一工具程序或一工具程序或“资源管理器资源管理器”这一工具程序找到这个文件,双击它,就能在这一工具程序找到这个文件,双击它,就能在VC6.0VC6.0的开发环境下的程序代码输入编辑区域(主区域)中打

18、开它,并可以的开发环境下的程序代码输入编辑区域(主区域)中打开它,并可以进行修改、编辑、链接、运行。进行修改、编辑、链接、运行。如果如果VC6.0VC6.0的开发环境已经打开,我们还可以用其的开发环境已经打开,我们还可以用其FileFile(文件)菜单下文件)菜单下的的OpenOpen(打开)菜单项来打开一个打开)菜单项来打开一个“打开打开”对话框,并通过这一对话框打开对话框,并通过这一对话框打开一个机器上已有的文件。一个机器上已有的文件。无论是输入了一个新程序文件的内容,还是修改了一个旧程序文件的内无论是输入了一个新程序文件的内容,还是修改了一个旧程序文件的内容后,都可以用菜单项或工具条上的

19、按钮来保存程序的内容。或者是使用容后,都可以用菜单项或工具条上的按钮来保存程序的内容。或者是使用FileFile(文件)菜单上的文件)菜单上的Save asSave as(另存为)菜单项用一个另外的文件名称来另存为)菜单项用一个另外的文件名称来保存你所输入或修改的程序。但一般情况下,我们无论是输入了一个新文件保存你所输入或修改的程序。但一般情况下,我们无论是输入了一个新文件的内容还是修改了一个旧文件的内容,我们都会先看看,这个程序能不能运的内容还是修改了一个旧文件的内容,我们都会先看看,这个程序能不能运行,运行结果对不对。这样的话,我们就会对源程序文件进行编译、链接、行,运行结果对不对。这样的

20、话,我们就会对源程序文件进行编译、链接、运行。而在这个过程中,系统会对你的源程序文件进行保存。所以一个源程运行。而在这个过程中,系统会对你的源程序文件进行保存。所以一个源程序文件运行通过后,其内容已经保存在电脑的盘上了。序文件运行通过后,其内容已经保存在电脑的盘上了。2.C2.C程序文件的编译、链接、运行程序文件的编译、链接、运行 在输入完一个新的程序文件的代码或修改好一个旧的程序文件的代码后,在输入完一个新的程序文件的代码或修改好一个旧的程序文件的代码后,我们使用我们使用BuildBuild(创建)菜单下的创建)菜单下的Compile Compile (编译编译 某文件)菜单项某文件)菜单项

21、来编译它,编译一个源程序时,来编译它,编译一个源程序时,VC6.0VC6.0很可能会显示一个这样的提示框。很可能会显示一个这样的提示框。这是系统告诉你要编译一个源程序文件,这个源程序文件一定要在一个活动这是系统告诉你要编译一个源程序文件,这个源程序文件一定要在一个活动的项目或工程的工作空间中,而你还没有为你的程序文件建立一个项目的项目或工程的工作空间中,而你还没有为你的程序文件建立一个项目工作空间,所以系统要为你建立一个项目工作空间,问你愿意吗,我们当然工作空间,所以系统要为你建立一个项目工作空间,问你愿意吗,我们当然选选“是是(Y)”(Y)”以便系统为我们建立这个工作空间。如果是对一个新程序

22、文件以便系统为我们建立这个工作空间。如果是对一个新程序文件的代码进行编译或是对一个已经被改过的旧程序文件的代码进行编译,系统的代码进行编译或是对一个已经被改过的旧程序文件的代码进行编译,系统会显示如下的信息框,问你是否要保存文件。会显示如下的信息框,问你是否要保存文件。我们选我们选“是(是(Y Y)”进行保存。如果程序代码没有语法错误,编译就会进行保存。如果程序代码没有语法错误,编译就会顺利通过,在顺利通过,在VC6.0VC6.0开发环境的左下边显示开发环境的左下边显示 XXXXXXX.objXXXXXXX.obj-0 error(s)0 -0 error(s)0 warning(s).war

23、ning(s).这里的这里的“XXXXXXX”XXXXXXX”代表文件的基本名,它会与你给程序文件代表文件的基本名,它会与你给程序文件所起的基本名一致。而所起的基本名一致。而“.objobj”是编译后形成的一种不同于是编译后形成的一种不同于.c.c或或.cppcpp的文件的文件类型,我们称之为目标代码。目标代码仍然不能直接运行,接下来我们使用类型,我们称之为目标代码。目标代码仍然不能直接运行,接下来我们使用Build(Build(创建创建)菜单下的菜单下的Build Build (链接链接 某文件)将目标代码链接为可某文件)将目标代码链接为可执行文件。如果不出现错误,链接通过后,执行文件。如果

24、不出现错误,链接通过后,VC6.0VC6.0开发环境的左下边显示开发环境的左下边显示 XXXXXXX.exe-0 error(s)0 warning(s).XXXXXXX.exe-0 error(s)0 warning(s).这里的这里的“XXXXXXX”XXXXXXX”代表文件的代表文件的基本名,它会与你给程序文件所起的基本名一致。而基本名,它会与你给程序文件所起的基本名一致。而.exe.exe就代表可执行文件就代表可执行文件这种文件类型。最后,我们用这种文件类型。最后,我们用BuildBuild(创建)菜单下的创建)菜单下的Execute Execute (执行执行 某文件)来执行我们的程

25、序。如果顺利的话,我们会看到一个黑底某文件)来执行我们的程序。如果顺利的话,我们会看到一个黑底色的窗口。其中显示了我们想要看的内容。色的窗口。其中显示了我们想要看的内容。如果程序没有错误,可以不一步一步地发指令进行编译、链接、运行。如果程序没有错误,可以不一步一步地发指令进行编译、链接、运行。也可使用也可使用“创建创建”菜单中的菜单中的“运行运行”菜单项或工具栏中的运行图标菜单项或工具栏中的运行图标/快捷方快捷方式(!)让系统自动连续地完成这三个步骤。式(!)让系统自动连续地完成这三个步骤。3.C3.C程序文件的调试程序文件的调试 如果程序代码有错误,编译就不能通过,在如果程序代码有错误,编译

26、就不能通过,在VC6.0VC6.0开发环境的左下边显开发环境的左下边显示示 XXXXXXX.objXXXXXXX.obj-n error(s)m warning(s).-n error(s)m warning(s).表示机器发现了表示机器发现了n n个严重个严重错误,错误,m m个不太严重的警告性的错误。如下图所示:个不太严重的警告性的错误。如下图所示:其中其中errorerror型的严重错误是必须改正的。我们将光标指向出错提示信息型的严重错误是必须改正的。我们将光标指向出错提示信息处,阅读出错的大致原因,然后用光标双击错误文字行,系统就会在代码输处,阅读出错的大致原因,然后用光标双击错误文字

27、行,系统就会在代码输入、编辑区域中出错行的左边显示一个出错标志,指示你进行修改。入、编辑区域中出错行的左边显示一个出错标志,指示你进行修改。大家在编译和链接时发现的错误通常是语法错误,例如句尾缺了分号或大家在编译和链接时发现的错误通常是语法错误,例如句尾缺了分号或变量没有定义就给它赋值就会在编译是被系统告知出错,如果一个工程的工变量没有定义就给它赋值就会在编译是被系统告知出错,如果一个工程的工作空间里有两个作空间里有两个main()main()函数,在链接时也会被函数,在链接时也会被VCVC告知有错误。一般来说,语告知有错误。一般来说,语法错误相对好查找、纠正一些,因为法错误相对好查找、纠正一

28、些,因为VCVC有错误提示信息显示在开发环境的下有错误提示信息显示在开发环境的下面。面。另一类错误是语意错误或称之为逻辑错误,是程序的算法不能满足题目另一类错误是语意错误或称之为逻辑错误,是程序的算法不能满足题目或任务的要求而产生的错误。如程序中出现了一个无限次执行的循环体,或或任务的要求而产生的错误。如程序中出现了一个无限次执行的循环体,或者是数学公式在输入、编辑时写错了(比如把求圆的面积的公式者是数学公式在输入、编辑时写错了(比如把求圆的面积的公式3.14*r*r3.14*r*r写写成了成了2*3.14*r2*3.14*r),),都会造成程序运行的结果不对。这种错误一般比较难定位都会造成程

29、序运行的结果不对。这种错误一般比较难定位和纠正,通常是通过仔细阅读程序来找出出错的原因并进行修正。和纠正,通常是通过仔细阅读程序来找出出错的原因并进行修正。在调试程序时,如果怀疑某条语句是否必要,可能想把这条语句删除掉在调试程序时,如果怀疑某条语句是否必要,可能想把这条语句删除掉以后,再试着运行一下程序。我们建议你不要直接在代码中彻底删掉它,如以后,再试着运行一下程序。我们建议你不要直接在代码中彻底删掉它,如果这样的话,假设这条语句不能少,我们还得重新输入进出,一个好的方法果这样的话,假设这条语句不能少,我们还得重新输入进出,一个好的方法是先把它注释掉。这样在执行时就不把它当作一条可执行的语句

30、去执行了,是先把它注释掉。这样在执行时就不把它当作一条可执行的语句去执行了,如果后来发现这条语句还得要,我们把注释标志去掉即可。当然,如果发现如果后来发现这条语句还得要,我们把注释标志去掉即可。当然,如果发现这条语句确实是多余,就可以把它彻底删掉了。这条语句确实是多余,就可以把它彻底删掉了。在在C C程序中加注释的方法有两种,一种是在一行的行首加程序中加注释的方法有两种,一种是在一行的行首加“/”,/”,这种方这种方式只能使其所在的一行成为注释。还有一种方法是用式只能使其所在的一行成为注释。还有一种方法是用“/*”/*”和和“*“*/”/”这两个这两个定界符把任意位置、任意长度的内容变成注释。

31、定界符把任意位置、任意长度的内容变成注释。我们对程序代码进行修改后,重新进行编译、链接、运行。直到得到较我们对程序代码进行修改后,重新进行编译、链接、运行。直到得到较满意的结果。满意的结果。4.4.编写、运行多个程序时的注意事项编写、运行多个程序时的注意事项 编写、调试、运行好一个程序后,请先使用编写、调试、运行好一个程序后,请先使用“文件文件”菜单下的菜单下的“保存保存”菜单项予以保存。然后,使用菜单项予以保存。然后,使用“文件文件”菜单下的菜单下的“关闭工作空间关闭工作空间”,将其所,将其所在项目工作空间关闭。接下来再使用在项目工作空间关闭。接下来再使用“文件文件”菜单下的菜单下的“新建新

32、建”菜单项新建菜单项新建一个一个C+source fileC+source file。否则,两个或多个程序文件的多个否则,两个或多个程序文件的多个main()main()函数混在函数混在一个项目的工作空间中,会使你无法生成新程序的一个项目的工作空间中,会使你无法生成新程序的exeexe文件。文件。如果不小心将多个程序的多个如果不小心将多个程序的多个main()main()函数混写在一个项目中,在组建函数混写在一个项目中,在组建.exe.exe文件时出现错误:文件时出现错误:_main already defined in _main already defined in XXX.objXXX.

33、obj。这时可以用以。这时可以用以下方法解决它们之间的冲突:下方法解决它们之间的冲突:a.a.在在VCVC开发环境窗口的左边有一个工作空间观察框,逐步点开其中的分开发环境窗口的左边有一个工作空间观察框,逐步点开其中的分枝结点,你会看到多个枝结点,你会看到多个main()main()函数。函数。b.b.使用使用“工程工程”菜单下的菜单下的“设置设置”菜单项,打开菜单项,打开“工程设置工程设置”(Project settingsProject settings)对话框,点开左边列表框中的分枝结点,找到此前)对话框,点开左边列表框中的分枝结点,找到此前已经调好和运行过的程序,选中它,再在右边的常规标

34、签页中点选已经调好和运行过的程序,选中它,再在右边的常规标签页中点选“组建时组建时排除文件排除文件X”X”可选项,单击可选项,单击“确定确定”按钮。这样在组建按钮。这样在组建.exe.exe文件时就不包文件时就不包含其中的内容,如果在工程中有多个在组建含其中的内容,如果在工程中有多个在组建.exe.exe文件时不想包含其内容的文文件时不想包含其内容的文件,可以按上述步骤一一排除它们。这样就能在组建件,可以按上述步骤一一排除它们。这样就能在组建.exe.exe文件避免出现前述文件避免出现前述的错误了。的错误了。5.5.使用使用scanfscanf()()函数的有关注意事项函数的有关注意事项 在在

35、scanfscanf()()函数的格式串(第一个参数)中,不能使用函数的格式串(第一个参数)中,不能使用“n”n”要求光标要求光标换行;否则,输入数据后按回车键无法返回程序继续执行。另外在格式串中换行;否则,输入数据后按回车键无法返回程序继续执行。另外在格式串中使用使用%f%f或或%lf%lf格式符时不能指定实型数或双精度数的精度,即不能使用形如格式符时不能指定实型数或双精度数的精度,即不能使用形如%7.2f%7.2f这样的格式符要求小数点后输入两位小数;但是可以指定实型数在输这样的格式符要求小数点后输入两位小数;但是可以指定实型数在输入时所占的总宽度(字符数),比如使用入时所占的总宽度(字符

36、数),比如使用%7f%7f是正确的。是正确的。在调试程序时,当黄箭头指向在调试程序时,当黄箭头指向scanfscanf()()语句,使用语句,使用Step OverStep Over方式执行该方式执行该语句时,会发现黄箭头并不向下移动,这是因为语句时,会发现黄箭头并不向下移动,这是因为scanfscanf()()语句执行时,等着语句执行时,等着用户到那个黑底色的窗口去输入数据,所以要点开黑底的窗口,在那里进行用户到那个黑底色的窗口去输入数据,所以要点开黑底的窗口,在那里进行输入,回车后才能回到调试界面接着进行调试。当你不想再调试下去时,可输入,回车后才能回到调试界面接着进行调试。当你不想再调试

37、下去时,可以使用以使用Stop Stop DebugingDebuging菜单项菜单项/按钮结束调试,回到对程序进行编辑的界面。按钮结束调试,回到对程序进行编辑的界面。第三讲第三讲:从从最最简单的简单的C C程序到复杂的程序到复杂的C C程序程序1.1.显示显示Hello everyone!Hello everyone!#include#include stdio.hstdio.h main()main()printf(Helloprintf(Hello everyone!n);everyone!n);2.2.求求1010的阶乘的阶乘#include#include stdio.hstdio.

38、h main()main()intint m;m;m=1*2*3*4*5*6*7*8*9*10;m=1*2*3*4*5*6*7*8*9*10;printf(10!=%dn,m);printf(10!=%dn,m);3.3.输入一个任意正整数,求其阶乘输入一个任意正整数,求其阶乘#include#include main()main()unsigned long m=1;unsigned long m=1;intint i,j;i,j;printf(Pleaseprintf(Please input a integer:);input a integer:);scanf(%d,&jscanf(%

39、d,&j););for(i=1;i=j;i+)for(i=1;i=j;i+)m=m*i;m=m*i;printf(mprintf(m!=%ldn,m);!=%ldn,m);4.4.求求C Cn nm m#include#include intint jc(intjc(int k)k)intint p,qp,q=1;=1;for(p=1;p=for(p=1;p=k;pk;p+)+)q=q*p;q=q*p;return q;return q;main()main()intint n,m,jc1,jc2,jc3,jg;n,m,jc1,jc2,jc3,jg;printf(Pleaseprintf(Pl

40、ease input the value of n,m:);input the value of n,m:);scanf(%dscanf(%d,%d,&n,&m);,%d,&n,&m);jc1=jc(n);jc2=jc(m);jc3=jc1=jc(n);jc2=jc(m);jc3=jc(n-mjc(n-m););jgjg=jc1/(jc2*jc3);=jc1/(jc2*jc3);printf(Theprintf(The resulutresulut is:%dn,jgis:%dn,jg););有的同学在上机时,输入了书上第有的同学在上机时,输入了书上第1111页例页例1-81-8的程序,发现编

41、译不能通的程序,发现编译不能通过,原因是这个程序有一个自定义函数过,原因是这个程序有一个自定义函数mulmul()(),这个自定义函数没有写在这个自定义函数没有写在mainmain()()函数的前面,而是写在函数的前面,而是写在main()main()的后面,的后面,main()main()函数中的第函数中的第4 4条语句调用条语句调用mulmul()()时,因为在此前没有发现对它的定义,不知道这是一个什么东西,所以报时,因为在此前没有发现对它的定义,不知道这是一个什么东西,所以报错。错。#include#include stdio.hstdio.h main()main()intint a,

42、b,c;a,b,c;printf(inputprintf(input two number:);two number:);scanf(%d,%d,&a,&bscanf(%d,%d,&a,&b););c=c=mul(a,bmul(a,b););printf(productprintf(product=%dn,c);=%dn,c);intint mul(intmul(int a,a,intint b)b)intint c;c;c=a*b;c=a*b;return c;return c;解决的办法是在解决的办法是在main()main()函数前或是在函数前或是在main()main()函数中的声明部

43、分说明它的函数中的声明部分说明它的函数形式。如下所示:函数形式。如下所示:#include#include stdio.hstdio.h main()main()intint a,b,c;a,b,c;intint mul(intmul(int a,a,intint b);b);printf(inputprintf(input two number:);two number:);scanf(%d,%d,&a,&bscanf(%d,%d,&a,&b););c=c=mul(a,bmul(a,b););printf(productprintf(product=%dn,c);=%dn,c);intint

44、 mul(intmul(int a,a,intint b)b)intint c;c;c=a*b;c=a*b;return c;return c;或者如下所示:或者如下所示:#include#include stdio.hstdio.h intint mul(intmul(int a,a,intint b);b);main()main()intint a,b,c;a,b,c;printf(inputprintf(input two number:);two number:);scanf(%d,%d,&a,&bscanf(%d,%d,&a,&b););c=c=mul(a,bmul(a,b););p

45、rintf(productprintf(product=%dn,c);=%dn,c);intint mul(intmul(int a,a,intint b)b)intint c;c;c=a*b;c=a*b;return c;return c;注意,在对函数的自变量进行说明时,如果有多个参数,每个参数的类注意,在对函数的自变量进行说明时,如果有多个参数,每个参数的类型都要分别说明,即使是相邻的两个参数的类型一样,也要用两个类型说明型都要分别说明,即使是相邻的两个参数的类型一样,也要用两个类型说明字说明,而不能象定义变量时那样,让多个变量名字共用一个类型说明字。字说明,而不能象定义变量时那样,让多

46、个变量名字共用一个类型说明字。前面讲过前面讲过C C程序中的每一条语句后面都要用分号(程序中的每一条语句后面都要用分号(;)作为结束符,但有)作为结束符,但有的同学发现有些句子后面没有分号。确实有这种情况,如的同学发现有些句子后面没有分号。确实有这种情况,如main()main()函数语句行函数语句行和和#include#include 语句行都没有用分号结尾。我们告诉大家,你记住三语句行都没有用分号结尾。我们告诉大家,你记住三点:点:(1)(1)在以在以#号开头的语句后面一定不用分号;号开头的语句后面一定不用分号;(2)(2)左大括号()的前面左大括号()的前面一条语句末尾,不要用分号;一条

47、语句末尾,不要用分号;(3)(3)书中书中4040页中的页中的9 9种控制语句中种控制语句中1 1、2 2、3 3、5 5条条控制语句中的这几个词(与其后紧跟的一对小括号在一起)后一般不要用分控制语句中的这几个词(与其后紧跟的一对小括号在一起)后一般不要用分号:号:if()if()else else switch()switch()while()while()注注:是是whilewhile型循环的型循环的while(),while(),不是不是dowhiledowhile型循环的型循环的whilewhile()()for()for()还有一条也要切记,程序代码中所有的标点符号都要求是英文的标点

48、符还有一条也要切记,程序代码中所有的标点符号都要求是英文的标点符号(即所谓的半角标点符号,宽度占同样字体字号的一个汉字的一半),如号(即所谓的半角标点符号,宽度占同样字体字号的一个汉字的一半),如果用了中文的标点符号(即所谓的全角标点符号,宽度与同样字体字号的一果用了中文的标点符号(即所谓的全角标点符号,宽度与同样字体字号的一个汉字相同)个汉字相同),就会出错。,就会出错。5 5.求一个任意的一元二次方程的根求一个任意的一元二次方程的根 程序程序1 1:#include#include#include#include main()main()double a,b,c,delta,x1,x2;d

49、ouble a,b,c,delta,x1,x2;printf(Pleaseprintf(Please input the factor a,b,c:);input the factor a,b,c:);scanf(%lf,%lf,%lf,&a,&b,&cscanf(%lf,%lf,%lf,&a,&b,&c););delta=b*b-4*a*c;delta=b*b-4*a*c;if(delta0)if(delta=0)if(delta=0)x1=(-b+sqrt(delta)/(2*a);x2=(-b-sqrt(delta)/(2*a);x1=(-b+sqrt(delta)/(2*a);x2=(

50、-b-sqrt(delta)/(2*a);printf(hasprintf(has two real roots:%10.6f and%10.6fn,x1,x2);two real roots:%10.6f and%10.6fn,x1,x2);程序程序2 2:#include#include#include#include main()main()double a,b,c,delta,x1,x2;double a,b,c,delta,x1,x2;printf(Pleaseprintf(Please input the factor a,b,c:);input the factor a,b,c:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com