ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:356.41KB ,
资源ID:4848988      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4848988.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(新手学C语言之入门.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

新手学C语言之入门.docx

1、新手学C语言之入门学习C语言(新手入门)年轻的小荣子事实上计算不仅要 c),这些代码就是阿尔法和李世石的围棋对弈让我们感受到了计算机的强大, 靠硬件设备的支持,还需要在里面运行代码(很多种,包括 它的灵魂(譬如我们的思想)。介绍几部通过在计算机里头运行代码从而创造无限可能的电影, 个人觉得不错的:黑客帝国,超验骇客,创战纪,人工智能等。正题,能编辑C语言的软件非常多,比如visual C+ 6.0/7.0,turbo c等。理论 总是离不开实践,在要学习C语言理论之前先要找到属于自己的能实现代码结果 的软件。这样说,计算机语言和人的语言的区别在于, 人通过各种发音实现交流,但是 计算机主要是通

2、过电流来传达信息,所以只能用0/1来表示电流拥有的两种状态, 这样最底层的计算运作就是通过一段长长的 0/1代码,通过0和1的不同组合来表示文字或者信息。C语言当然不是最底层的0/1代码,他是一个沟通的中介, 比如等于号在c语言里就是两个等号“=”,这样使得我们更容易和计算机交流 了,只要学会了 C语言,它就能把我们的语言翻译成计算机的语言。以下内容从简单到困难,先来学会如何运行 c语言代码(用vc 6.0中文版): 1按以下步骤打开界面(以后都可以这样打开):ij| 支住匡毎輻 SS(V) )0L(D 工isaifii Tfiffi e口阻阳型) 色 I . mai n()int a,b,c

3、;a=1,b=2;c=a+b;prin tf(%d,c);Include的英文意思是包含、包括,顾名思义, #includevstdio.h就是把stdio.h这个东西包含进去,其实#include 是c语言里的一种格式,就是把什么包含 进来的意思(这里是口语表达)。stdio.h叫做头文件,什么是头文件呢?打个比 方,在C语言里我们要用到很多的比如开根号、乘方、阶乘 n!等等数学公式函数,那么就可以把这些常用的同类型的函数放到一起形成一个函数库, 然后给它取个名字比如叫 math.h,这样当要用到这些函数的时候就不用自己的写了,直 接用#includevmath.h把整个库包含进来,里面的函

4、数就可以直接调用。同样的, stdio.h也是这样一个库,里面有输入输出函数(就是支持键盘输入和屏幕输出) 可以调用。类似的还有graphic.h图形函数库,string.h字符串函数库等等,调用 格式一样的。Main()代码;是C语言里必须有的一个格式,main翻译是”主要:main函 数就是主函数,相当于程序从这里入口并开始运行。运行的内容就是花括号 里 头的代码。了解#includevstdio.h main() 的功能之后,就真正的开始代码实现的部分了。上面有一条简单的代码:int a,b,c;a=1,b=2;c=a+b;prin tf(%d,c);我们每句话结束用句号“。”来结束,C

5、语言里用的是分号 ;”来结束一个语句,上面每个 语句后面都有一个分号。a=1表示赋值,把等号右边的数值赋予给左边,赋值之后 a等于1,b等于2。同理可知c=a+b就是把a+b的结果数值赋予给c,这样c的值就是3.print的翻译是打印,printf ()函数实现的功能是输出(打印在屏幕上)。而printf()函数是属于stdio.h的,这就是为什么上面要写#includevstdio.h原因。int a,b,c;定义a,b,c三个变量,int是数据类型里的一种,int是整型,就是说a,b,c 都是整数而不能是其他类型。另外 float浮点型,如果用float a,b,c,那么a,b,c 就能赋

6、予小数值。还有char字符型,比如char a,b,,那么a,b只能赋予字符的值。这是因为在定义a,b,c变量的同时,要在计算机内存中分配给它们空间,整数占 用2个字节而小数占4个字节,所以int a后a分配到的空间就是能装下2个字 节的东西,然后如果用a=1.23,由于1.23是小数占用4个字节装不下,那么这个 赋值就出错。因此,int,float,char等数据类型定义的意义就在于给变量分配一 个多大的内存空间,存储对应类型大小的数据(任何没有定义数据类型的变量是 不会分配内存空间所以是不能使用的!)。来看下运行结果(print出结果c的值):W =ttincludemainOint a,

7、b,c;I 画颐i虚JPteES Any key to continu.ega=1,b=2j c-a+b;所以这样就实现了计算a+b赋值给c并输出c的值。坷整型sboiT数值类樂型 double空艾型void+加-减*乘/除;不存在+号,表达式里“ /”就是除号。%取余数;17%5等于2,余数是2。大于=大于等于1)?3:4判断为真,结果取3,否则取4.+自增;a+,相当于a=a+1。-自减;a-,相当于a=a1。其他经历一遍胜过深思千回,在软件上尝试几遍便能熟记于心。输出结%果Td。); /ps:#i ncludevstdio.hint main() int a,b,c,d; a=1; b=

8、a+1; c=b*2; c+; d=c%3; printf( return 0;写一个能计算圆的周长和面积的 C代码:ttincludeFMmt 爸注,面积兀周长!,半径4scanf ;1 = 2 * 3.1 in50p严intFL周长为;return 8;定义三个浮点型float (含有小数)变量S、I、r。scanf ()是输入函数,scan是扫描的意思,从键盘扫描你的输入,这个函数也 是stdio.h头文件里的一个函数。Scanf ()括号里的是参数,跟 printf () 一样, 格式有所不同。printf ( “(” C)表示输出结果c,c的数据类型是整型(int), 用“(格式。如

9、果输出结果是浮点型(float)则用“格式,比如printf ( “f” 1.23)。如果是字符型(char),用 printf ( “%,)等。“ _”类型Printf( %_对应数据类型格式din t,short以十进制形式输出带符号整数(正数不输出符号)o以八进制形式输出无符号整数(不输出前缀0)x,X以十六进制形式输出无符号整数(不输出前缀Ox)u以十进制形式输出无符号整数ffloat,double以小数形式输出单、双精度实数e,E以指数形式输出单、双精度实数g,G以%f或%e中较短的输出宽度输出单、双精度实数cchar输出单个字符s字符串输出字符串Scanf (“%d,&r)比pri

10、ntf “%d,r)多了个地址运算符&,因为scanf是输入, 把数据存入到r变量的地址空间,所以scanf()函数统一要加个地址运算符。(在代码中添加备注用/备注,本行此符号之后的都为备注,也可以用/*备注*/, 两个符号之内的是备注,可囊括多行。) 上面代码中:#i ncludevstdio.hint main()return 0; 标准主函数格式,int main () 表示返回int 型, return 表示返回,返回值为0。不必深究。float s,l,r; /备注:面积s,周长I,半径r。I = 2 * 3.14159 * r;s = 3.14159 * r * r;printf(

11、周长为:f,面积为:%f n,l,s);相当于一个能计算圆的周长和面积的计算器,只要 seanf()输入r的值,就能printf ()输出I (周长)和s (面积)的值,结果图示:可以通过输入不同的半径来得到其周长和面积。同理可以利用e语言来求得其他数学公式的结果:求y=x2+2x-3当x取某个数时的值。代码:int x,y;seanf(%d,&x); /这里输入 x 的值。y=x*x+2*x-3;printf(输出结果 y: %d,y);对于这样的函数式:x*x+2*x-3 ( 0x int main()int x,y;/x0和XV10是与的关系,若同时为真则结果为真。if(x0 & x=1

12、0) y=x+2;printf(输出结果y:%d,y); /双引号里的文字原样输出,%d输出为y的值。return 0; ps: if ()里的表达式常用到逻辑表达式“与或非” 。 (3) switch 语句case default switch 是匹配的意思,就是用表达式的值从常量 1开始比较是否相等,如果 相等,从相等的那条语句开始执行,到default的语句结束。如果想执行完这一 句就结束,可以在其后加上break;语句来打断跳出switch。下面是输入小明同 学的分数判断他的成绩级别的代码:老他吕!宜曲it QSBinclu(le int nainOInt i,a;scanfC-d&a

13、): 输入分数兀分数白除以10去掉个位数剩下十位数爲switch fi)用十位数从r匝归开始匹配10:caseprinti=Cft: break; 10眶购吩是右等,break结束不再向下执行S:casecasecasecas?case default:卩rintft-E-);十位数是E到超的都不及格,输出E等级。return Q;-pKeLkUIQ errar( S) , B biarnxng(s)假如小明的成绩是a=76,那么十位数i=7 ,利用switch函数匹配,case 7符合, 执行之后的printf (“C n ”)语句,又因为break ;语句打断,所以不再执行 之后的case

14、,直接跳出switch () 。如果是59到0,都只有一条语句可执 行。(4)while循环语句写一个代码,让你输入一个数字,如果你输入的数字不大于100则重新输入,否 则结束。这里就用到了循环,循环必须要有判断条件语句,循环不能是没有结束 条件的。格式:while (表达式)语句1如果表达式为真(判断正确),则执行语句1,直到表达式为假。代码:#i ncludevstdio.hint main()int a;scanf( “d,&a); /输入数字a。while(aint main()int a;doscanf( “%d ,&a); / 输入 a while(a=100) ; / 判断是否小

15、于等于100,是则循环,否则结束。return 0 ; (5) for循环语句for(表达式1;表达式2;表达式3); 循环体语句实例:ttinclude int nainchar a,b=h,c;forfa-1;ab;c-c+1)a=a+1;富注:F时俵达式1;表达式表达式町;循环休语句*/return Q;以上加入了一个for循环(/*多行备注*/ ),表达式1 “a=1”是for循环的入口,是进入for循环第一个运行的语句, 而且只运行一次。表达式1之后就到表达式2,表达式2 “ab”后面虽然没有问号,但是它是 一个判断语句,就像if语句或者while语句的判断表达式一样,在这里如果ab

16、 判断为真,则继续执行循环体语句,否则结束跳出 for循环。如果表达式2为真,接下来执行循环体语句,再接下来是表达式3,然后开始 下一次的循环:表达式2 (先判断是否为真)一 循环体语句 一 表达式3 , 表达式1会且只会运行一次,之后的循环都不再执行,而且以上的表达式和循环 体都可以是多个语句的组合,比如表达式 1可以是“ a=2,b+,”。for ( 3=1 :广“ - c=cl)犷(3,4,5为一个循环)让我们来输出一个星号 构成的正方形:圏* 国丄* eKinclude int ma-i n Oint i,j;furtl=1,J l; 输出 换行符return O;C: -DA100D

17、*bLjg133.eseH * * * * * * *p * 开 * *Pvc 3 a any Iicif 右 o continue表达1赋值使得i=1,j=4,判断i=j为真,执行循环体后输出五个星号和换 行,然后i=i+1 (即i变成了 2, j不变),继续下一次的循环:判断2n,设y为mn的余数,继续用除 数n除以余数y,直到余数为0。比如求99和21的最大公约数,有:99-21 余 152115余6 (这里的被除数和除数分别是上面的除数和余数,相当于后移一位)15-6 余 36-3余0 (整除)那么最后一个除数3就是一开始两个数99和21的最大公约数,此算法可以应用 到任何两个正整数上

18、,这就是辗转相处求公约数的算法。算法应用:1、直接用scanf(%d%d, &m, &n) 输入需要求公约数的两个正整数;2、m%n勺余数为c 3、把n的值赋给m把余数c的值赋给n (除数变成被除数,余数变成除数)4、判断c是否为0,是则最后一个除数n (已经赋值给m就是最大公约数,并 输出最大公约数m即可(printf(m 和n的最大公约数是:dn,m);)。5、如果c不为0,继续执行步骤2,直到符合步骤4结束。代码: c=m% n; m=n; n=c;printf(m 和n的最大公约数是:dn,m);return 0;自定义函数下面代码显示1个错误,0个警告,双击错误提示,会在错误的当行出

19、现一个 箭头标识:原来是math.h前把写成(,在printf ()后漏了分号;。B文昨 甸 曲凹 SAD工程 盛 TSCD SQi也礙二Si ajlpa刁奄罔 a 固官|囁tfincludeftdio.h|linclude(njth.hLnt Piain(flOdL X; x=n.o; prirtft*%F*sqrt(x) return 9;在math.h中有一个求平方根的函数 sqrt (x)用于求实数x的平方根,比如 sqrt ( 1.21 )的值等于 1.1。int main () return 0; 是代码中仅有的一个主函数,其实 sqrt (), printf()都是函数,只是其他

20、的非主函数一般都是在主函数中“调用” 。也就是说可以在主函数main () 的外面自己定义一个函数如love () ,在花括号中写 这个函数实现的功能,然后在 main ()函数中调用自己定义的love ()函数, 它就能实现其功能。好比sqrt ()就是定义在math.h库中的一个函数,然后在 主函数main ()中直接调用就可以求平方根,这里只需要调用名称,不用管怎 么实现的,功能实现只写在定义函数的花括号 内。自定义函数主要有三个点,函数的入口,内部代码实现,出口(返回值的输出)。int And(int a, int b) in t c;c=a+b;return c;上面是一个计算a+b

21、的自定义函数And(),其中()里的int a, int b是入口, 表示到时将会有两个int型的数进来,然后里面的代码是实现a+b,最后的return 用来返回这个函数的结果值C,并且在And前面的int是规定这个返回值c的数 据类型的。因此,在主函数main ()中可以这样用:main ()int d ;d=And ( 3,5 );(ps:运行时不接受任何中文输入法符号)printf (“%d,d);in tftincludeflndCint a,int to);定义g数必须在前面这样声明!d=flnd(3,5); printf(d nd);return a;/这里加分号int c; c=

22、a+b; return c;/这里不能加分号定义函数为:int gcd(i nt m,i nt n)in t c;prin tf( 输入两个正整数:n);scanf(%d%d, &m, &n); /这一句去掉,通过入口传递进形参 m和n的值c=n;while(c!=O) /* 余数不为0,继续相除,直到余数为 0 */c=m% n;m=n;n=c;return m;/主函数主函数为:int main()int a,b,d;sca nf(%d%d, &a, & b);d=gcd(a,b); /调用定义的函数gcd()prin tf(%d n,d);return 0;ttlncludegcdCir

23、it ii,int n);自定义函数声明!int a,b,d;sc日nFd塔d,Ga, &b;d=gcdCa,h); 调用定义的固数g匚(K )printfC最大公约数是!初n-,d)i return 0;intgcdClnt Pipint n)自定义函数,求最大公约数有兴趣可以写几个自定义函数:分别求最大公约数, a+b,求1+2+3+n,然后在同一个主函数中调用它们。自定义函数与递归:递归,顾名思义就是传递过去,然后归来。比如阶乘 5!,传递过去成为5X 4!,再传递过去成为 5X 4X 3!直到变成5X 4X 3X 2X 1!之后,再倒过来 归回来,因为1是直接已知的,然后归来乘以2,再

24、归来乘以3递归的前提 条件是下一步的形式跟原来的是一致的, 比如n!变成nX (n-1 ) ! , (n-1 ) !2X 1。变成(n-1 )X( n-2)!。另外递归必须有个出口,不能无限的递下去却没有 归回来,要有个终止点(具体的),比如阶乘最后的用知乎作者Memoria的话来说就是:假设你在一个电影院,你想知道自己坐 在哪一排,但是前面人很多,你懒得去数了,于是你问前一排的人你坐在哪一 排?,这样前面的人(代号A)回答你以后,你就知道自己在哪一排了,因为 只要把A的答案加一,就是自己所在的排了。不料 A比你还懒,他也不想数, 于是他也问他前面的人B你坐在哪一排?,这样 A可以用和你一模一

25、样的 步骤知道自己所在的排。然后B也如法炮制。直到他们这一串人问到了最前面 的一排,第一排的人告诉问问题的人我在第一排。最后大家就都知道自己在 哪一排了。就是这样,以同样的形式向前传递问题,到第一排有具体的答案后向后一层 层返回答案。这里的第一排就是递归的出口。if (0 = i) return (1);elsem = i * Digui(i-1);* Digui(i-I), Digui ( 3)又变,不再调用自假如输入实参i的值为4,不等于0,执行else之后语句m= i 这样就变成了求4*Digui (3),调用了自身Digui (3),然后 成了 3* Digui (2),直到参数等于0,执行if之后的return 1 身函数,最终计算出4*3*2*1。递归的好处

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1