您好,欢迎访问三七文档
学习C语言(新手入门)年轻的小荣子阿尔法和李世石的围棋对弈让我们感受到了计算机的强大,事实上计算不仅要靠硬件设备的支持,还需要在里面运行代码(很多种,包括c),这些代码就是它的灵魂(譬如我们的思想)。介绍几部通过在计算机里头运行代码从而创造无限可能的电影,个人觉得不错的:黑客帝国,超验骇客,创战纪,人工智能等。正题,能编辑C语言的软件非常多,比如visualc++6.0/7.0,turboc等。理论总是离不开实践,在要学习C语言理论之前先要找到属于自己的能实现代码结果的软件。这样说,计算机语言和人的语言的区别在于,人通过各种发音实现交流,但是计算机主要是通过电流来传达信息,所以只能用0/1来表示电流拥有的两种状态,这样最底层的计算运作就是通过一段长长的0/1代码,通过0和1的不同组合来表示文字或者信息。C语言当然不是最底层的0/1代码,他是一个沟通的中介,比如等于号在c语言里就是两个等号“==”,这样使得我们更容易和计算机交流了,只要学会了C语言,它就能把我们的语言翻译成计算机的语言。以下内容从简单到困难,先来学会如何运行c语言代码(用vc6.0中文版):1.按以下步骤打开界面(以后都可以这样打开):2.一些常用的功能键:(1是compile编译的意思,就是把这些我们能看懂的符号转换成计算机代码,同时按这个键可以检查错误和验证是否能运行。2是build,建立一个可以运行的EXE类文件,就是把这些代码弄成一个能运行的东西。3就是run运行,只有经过查错和建立才可以按运行。是不是很简单,自己动手一遍就会)3.输入代码并运行(里面的代码如下:——————————————#includestdio.hmain(){inta,b,c;a=1,b=2;c=a+b;printf(%d,c);}———————————————Include的英文意思是包含、包括,顾名思义,#includestdio.h就是把stdio.h这个东西包含进去,其实#include是c语言里的一种格式,就是把什么包含进来的意思(这里是口语表达)。stdio.h叫做头文件,什么是头文件呢?打个比方,在C语言里我们要用到很多的比如开根号、乘方、阶乘n!等等数学公式函数,那么就可以把这些常用的同类型的函数放到一起形成一个函数库,然后给它取个名字比如叫math.h,这样当要用到这些函数的时候就不用自己的写了,直接用#includemath.h把整个库包含进来,里面的函数就可以直接调用。同样的,stdio.h也是这样一个库,里面有输入输出函数(就是支持键盘输入和屏幕输出)可以调用。类似的还有graphic.h图形函数库,string.h字符串函数库等等,调用格式一样的。Main(){代码;}是C语言里必须有的一个格式,main翻译是”主要“,main函数就是主函数,相当于程序从这里入口并开始运行。运行的内容就是花括号{}里头的代码。了解#includestdio.hmain(){}的功能之后,就真正的开始代码实现的部分了。上面有一条简单的代码:——————————inta,b,c;a=1,b=2;c=a+b;printf(%d,c);我们每句话结束用句号“。”来结束,C语言里用的是分号“;”来结束一个语句,上面每个语句后面都有一个分号。a=1表示赋值,把等号右边的数值赋予给左边,赋值之后a等于1,b等于2。同理可知c=a+b就是把a+b的结果数值赋予给c,这样c的值就是3.print的翻译是打印,printf()函数实现的功能是输出(打印在屏幕上)。而printf()函数是属于stdio.h的,这就是为什么上面要写#includestdio.h原因。inta,b,c;定义a,b,c三个变量,int是数据类型里的一种,int是整型,就是说a,b,c都是整数而不能是其他类型。另外float浮点型,如果用floata,b,c,那么a,b,c就能赋予小数值。还有char字符型,比如chara,b,,那么a,b只能赋予字符的值。这是因为在定义a,b,c变量的同时,要在计算机内存中分配给它们空间,整数占用2个字节而小数占4个字节,所以inta后a分配到的空间就是能装下2个字节的东西,然后如果用a=1.23,由于1.23是小数占用4个字节装不下,那么这个赋值就出错。因此,int,float,char等数据类型定义的意义就在于给变量分配一个多大的内存空间,存储对应类型大小的数据(任何没有定义数据类型的变量是不会分配内存空间所以是不能使用的!)。来看下运行结果(print出结果c的值):所以这样就实现了计算a+b赋值给c并输出c的值。数据类型一览(当想要使用何种类型变量,直接用以下来定义即可):C语言和数学语言也还是有所区别的,比如数学里判断a等于b用“a=b?”,但是C语言里“a=b?”就变成了赋值,它的等号是两个数学等号组成“==”,所以C里正确的表达是“a==b?”(不要纠结为什么要用两个等号,这是大神们设定的),为了能让计算机理解自己的代码,下面来认识C语言有哪些运算符:+加-减*乘/除;不存在÷号,表达式里“/”就是除号。%取余数;17%5等于2,余数是2。大于小于=大于等于=小于等于!=不等于==等于=赋值,右边值赋予左边变量(a=a+1+2)。&&与;(1==1)&&(1!=2),判断两边都真结果为真。||或;判断有一边为真结果为真。!非;!(1==1),判断条件的相反。?:条件运算;(21)?3:4,判断为真,结果取3,否则取4.++自增;a++,相当于a=a+1。--自减;a--,相当于a=a-1。其他经历一遍胜过深思千回,在软件上尝试几遍便能熟记于心。#includestdio.hintmain(){inta,b,c,d;a=1;b=a+1;c=b*2;c++;d=c%3;printf(“%d”,d);//ps:输出结果d。return0;}写一个能计算圆的周长和面积的C代码:定义三个浮点型float(含有小数)变量s、l、r。scanf()是输入函数,scan是扫描的意思,从键盘扫描你的输入,这个函数也是stdio.h头文件里的一个函数。Scanf()括号里的是参数,跟printf()一样,格式有所不同。printf(“%d”,c)表示输出结果c,c的数据类型是整型(int),用“%d”格式。如果输出结果是浮点型(float)则用“%f”格式,比如printf(“%f”,1.23)。如果是字符型(char),用printf(“%c”,’s’)等。“%_”类型Printf(“%_”,s);对应数据类型格式dint,short以十进制形式输出带符号整数(正数不输出符号)o以八进制形式输出无符号整数(不输出前缀0)x,X以十六进制形式输出无符号整数(不输出前缀Ox)u以十进制形式输出无符号整数ffloat,double以小数形式输出单、双精度实数e,E以指数形式输出单、双精度实数g,G以%f或%e中较短的输出宽度输出单、双精度实数cchar输出单个字符s字符串输出字符串Scanf(“%d“,&r)比printf(“%d“,r)多了个地址运算符&,因为scanf是输入,把数据存入到r变量的地址空间,所以scanf()函数统一要加个地址运算符。(在代码中添加备注用//备注,本行此符号之后的都为备注,也可以用/*备注*/,两个符号之内的是备注,可囊括多行。)上面代码中:————————————#includestdio.hintmain(){return0;}————————————是标准主函数格式,intmain()表示返回int型,return表示返回,返回值为0。不必深究。————————————————————floats,l,r;//备注:面积s,周长l,半径r。scanf(%f,&r);l=2*3.14159*r;s=3.14159*r*r;printf(周长为:%f,面积为:%f\n,l,s);————————————————————相当于一个能计算圆的周长和面积的计算器,只要scanf()输入r的值,就能printf()输出l(周长)和s(面积)的值,结果图示:可以通过输入不同的半径来得到其周长和面积。同理可以利用c语言来求得其他数学公式的结果:求y=x^2+2x-3当x取某个数时的值。代码:——————————————————intx,y;scanf(%d,&x);//这里输入x的值。y=x*x+2*x-3;printf(输出结果y:%d,y);——————————————————对于这样的函数式:x*x+2*x-3(0x10)Y=x+2(x=10)要用到条件语句。(1)if语句if(表达式)语句1;else语句2;(2)if语句的嵌套If(表达式1)语句1;//语句1也可以嵌套if语句。elseif(表达式2)语句2-1;else语句2-2;//这样的嵌套可以多重.if()里的表达式如果正确则为真,执行紧接着的语句1,否则执行else下面的语句2。因此上面数学函数式的代码:————————————————————————————————————#includestdio.hintmain(){intx,y;scanf(%d,&x);//scanf输入x的值。if(x0&&x10)//x0和x10是与的关系,若同时为真则结果为真。y=x*x+2*x-3;elseif(x=10)y=x+2;printf(输出结果y:%d,y);//双引号里的文字原样输出,%d输出为y的值。return0;}——————————————————————————————————ps:if()里的表达式常用到逻辑表达式“与或非”。(3)switch语句switch(表达式){case常量1:语句1case常量2:语句2case常量3:语句3case常量...:语句...case常量n:语句ndefault:语句n+1}switch是匹配的意思,就是用表达式的值从常量1开始比较是否相等,如果相等,从相等的那条语句开始执行,到default的语句结束。如果想执行完这一句就结束,可以在其后加上break;语句来打断跳出switch。下面是输入小明同学的分数判断他的成绩级别的代码:假如小明的成绩是a=76,那么十位数i=7,利用switch函数匹配,case7符合,执行之后的printf(“C\n”)语句,又因为break;语句打断,所以不再执行之后的case,直接跳出switch(){}。如果是59到0,都只有一条语句可执行。(4)while循环语句写一个代码,让你输入一个数字,如果你输入的数字不大于100则重新输入,否则结束。这里就用到了循环,循环必须要有判断条件语句,循环不能是没有结束条件的。格式:while(表达式){语句1}如果表达式为真(判断正确),则执行语句1,直到表达式为假。代码:#includestdio.hintmain(){inta;scanf(“%d”,&a);//输入数字a。while(a=100)//判断是否小于等于100,是则循环,否则结束。{scanf(“%d”,&a);//重新输入a}return0;}红色部分是循环体,花括号{}里可以写多条语句,作为一个整体一并运行。执行的顺序是,判断while(表达式)真假,为真则执行循环体,执行完毕跳回到while(表达式)开始下一次的判断,直到判断为假结束循环。所以上面会不断循环要输入a,直到输入的值大于100,表达式为假结束。另一种是do-while语句,区别只是先执行循环体,再判断,直到判断为假,while(表达式)后跟着一个分号!代码如下:#includestdio.hintmain(){inta;do{scanf(“%d”,&a);//输入a}while(a=100);//判断是否小于等于100,是则循环,否则结束。return0;}(5)for循环语句for(表达式1;表达式2;表达式3);循环体语句实例:以上加入了一个f
本文标题:新手学C语言之入门
链接地址:https://www.777doc.com/doc-5839390 .html