《C语言笔记(重要).docx》由会员分享,可在线阅读,更多相关《C语言笔记(重要).docx(36页珍藏版)》请在第一文库网上搜索。
1、C语言基础知识一、进制转换进制十进制:有。9共十个数字逢十进一二进制:有O1共两个数字逢二进一八进制:有。7共八个数字逢八进一十六进制:有O9、A、B、C、D、E、F共十六个数字逢十六进一2. 按权展开式365=300+60+5=3X1()2+6X10+5X10按权展开式权值(基数):101024=(111)2=(7)10(26) 8=(22)10(3B)1=(59)103. 非十进制转换为十进制规则:按权展开计算(IoI1)2=()10(53) 8=()10(2F)1=()104. 十进制转换为非十进制作除法,取余倒排序(6)10=(I1O)2(13)10=()2(26)10=(32)8(5
2、8)10=()165. 进制的脚标二进制:BIO1B八进制:Q72Q十进制:D398D十六进制:H123H或abcH字符在计算机内部的表示ASCI1码:美国信息交换标准码采用7位二进制进行编码OOOOOOOB-I11111IB0-127共128个编码AZ:6590az:97122O9:4857空格(space):32标准:128个ASCII码扩展:128个说明:扩展ASCn码一般表示汉字,一个汉字占两个字节,一个字节是8位二进制。第一章程序设计的基本概念由高级语言编写的程序称为源程序。由C语言编写的程序扩展名为C,编译后生成.obj,链接后生成.exe。C语言源程序的执行过程为编建和链接。1.
3、顺序结构2.选择结构3.循环结构说明:C语言属于结构化程序设计。以下选项不是C程序设计基本结构的是A.选择结构B.分支结构C.循环结构D.顺序结构第二章C程序设计的初步知识main()inta,b,s;a=123jb=456;s=a+b;printf(s=%dn”,s);C程序的特点.一个C窟谒由函数组成,函数是组成C程序的基本单位,语句是组成C程序的最小单位。一个C程序总是由主函数开始执行。一行可写一条或多条语句,一条语句也可写成一行或多行。每条语句最后加分号结束。一、标识符1由数字、字母、下划线组成2 .开头必须是字母或下划线ab()int()a#b()_int()123abc()int_
4、()_123()Int()3 .标识符区分大小写二、常量在程序变化过程中其值不可改变的量整型:123,-456字符型:A,f三、变量一在程序变化过程中其值可以改变的量inta,b,s;f1oatx,y;说明:变量名由标识符组成。intsum;则变量sum的值为随机值。说明:未赋值的变量默认为随机值。一、整型常量十进制:123,-456八进制:024,072前导0十六进制:0x123,OXabc前导OX或OXprintf(*%d,%dn”,012,0x12);十进制10,18printf(*%o,%on*,10,12);八进制12,14无前导printf(*%x,%xn*,10,12);十六进制
5、a,c无前导二、整型变量int基本型TC系统下占2个字节VC系统下占4各字节short短整型占2个字节1ong长整型占4个字节unsigned无符号型(了解)intafb,sum;a=123;b=456;sum=a+b;printf(*a=%d,b=%dn*,a,b);printf(sum=%dn”,sum);a=123,b=456SUm=579一、实型常量1 .小数点式由数字、正负号、小数点组成。组成规则:必须要有小数点至少一边要有数字2 .指数形式由E或e组成10+2102组成规则:两边都要有数字指数部分必须是整数()()e-5()314.(7()()二、实型变量单精度:f1oat4个字节
6、双精度:doub1e8个字节printf(*%fn*,f);设Charw;intx;f1oaty;doub1ez;,则表达式w*x+z-y的值的类型是doub1e。一、字符常量(1)常规字符常量,A,f,1,ab,(2)转义字符常量n-回车换行(Enter)t-横向跳格(Tab)说明:每行为10个显示区,每个区为8列,t的作用是跳到下一个显示区。b-退格(Backspace)-反杠-单引号双引号ddd,-1至3位八进制整数表示的1个字符。,1O=1X82+1X80=65=A,72072,xhh,-1至2位十六进制整数表示的1个字符。,x41,=4161+1160=65=,A,(3)字符串常量A
7、BCD”1234“-占1个字节A-占2个字节*ABCD*ABCDtbn*“1234072r*abcdxff065*n* printf(ABCDtEFbGHn);Printf(123r); printf,1234,t5678r);Pri1Ttf(ABCr);二、字符变量 charch,A,;printf(*%cnch);Aprintf(*%dn*,ch);65%c-字符原形%d-字符数值 charc1,A,c2=100;printf(*%d,%cn*,c1,c2);c1=c1+32;c2=c2-32;printf(*%c,%dn*,c1,c2);65,da,68总结1 .大写字母+32=小写字母
8、2 .小写字母-32二大写字母 charc1=0,c2=9;printf(*%cn*,c1+9);printf(%dn”,c2,0,);99总结1 .数字+O=数字字符2 .数字字符/O一数字一、基本的算术运算符+、-、*、/、(求余)1/2=0a/b若a与b均为整型,结果为整型。若a与b其中任意一个为实型,结果为实型。7%3=1-7%3=-17%-3=1-7%-3=-1求余运算符的对象必须是整型。出现负数,余数的符号与被除数一致。二、运算符的优先级与结合性1 .优先级:次序()-+(取正)、-(取负)-*、/、-+(加)、-(减)2 .结合性:方向()、*、/、+(加)、-(减):自左向右+
9、(取正)、-(取负):自右向左f1oata;intb;printf(*%f,%dn*,a,b);f1oata;intb;a=bprintf(*%f,%dn*,a,b);.三、强制类型转换符形式:(类型名)表达式(int一、赋值运算符形式:变量名二表达式优先级:仅高于逗号运算符结合性:自右向左说明:先计算表达式的值,然后将其值赋给变量。inta=2;a=a+3;inta=2,b=3,c=4,x;x=a=b=c+4;a=8b=8c=4x=8二、复合赋值运算符+=、=、/=、/=优先级:仅高于逗号运算符结合性:自右向左a+=2=a=a+2b*=a=b=b*aa-=2+b=a=a-(2+b)inta=
10、0;a+=(a=8);printf(%dn”,a);16inta=3;a+=a-=a*a;printf(*%dn*,a);-12一、自加自减运算符1 .前值用法:+i或一i说明:先将变量i的值加1或减1,然后在使用变量i的值。i=2+i=i=2-i=2 .后值用法:i+或i说明:先使用变量i的值,然后在将变量i的值加1或减1。i=2i=i=2i-=优先级:同取正与取负结合性:自右向左 inta=10,b=10;printf(*%d,%dn*,+a,b);11,10 设intX=O11;printf(*%dn*,+x);后的输出结果是2。 inta=3,b=5;a=3,b=5b=+a;a=4,b
11、=4a+=b+;a=8,b=5二、逗号运算符形式:表达式1,表达式2,表达式n说明:自左向右顺序求值,将表达式n的值作为整个逗号表达式的值。优先级:最低结合性:自左向右1 .设inta,b;,表达式a=2,b=5,b+,ab的值是8C2 .设inta,b,c;则执行a=(b=3,c=5,b=10);后变量a的值是10。3 .若定义了inta=1;,则执行printf(zz%dn*,(a=a+4,a+5),a+6);语句的输出结果是11C第三章顺序结构在赋值表达式的后面加上分号就构成了赋值语句。a=2赋值表达式a=2;b=a+3;赋值语句+i;j;赋值语句x=a+b=c;说明:赋值运算符的左边必
12、须是变量名+i;变量()+(i+1);表达式(X)+5;常量(X)说明:自加自减运算符的运算对象必须是变量。3.2数据的输出inta=234;printf(*a=%d,f=%fn*,a,f);printf(%d,%f)n*,a,f);a=234,f=240560000 inta=234;printf(*a=%4dn*,a);printf(*a=%2dn*,a)a=234a=234说明:输出右对齐,左补空格指定小于实际,原样输出printf(*f=%10.5fn,f);说明:数据总长,n小数位多-四舍五入少补零 inta=1,b=2;printf(*%dn*,(a,b);printf(*%dn*
13、,a,b);2说明:输出格式少于输出项,多余的输出项将不输出。inta=32767,b=1;假定int型占2各字节printf(*%dn*,a+b);-32768范围:-32768+32767 unsignedinta=65535,b=1;printf(%u,a+b);0范围:0-65535inta,b,c;SCanf(%d%d%d”,&a,&b,&c);printf(*%d,%d,%dn*,a,b,c);输入:123回车1回车2回车3回车输出:1,2,3说明:&取地址运算符。间隔符的数量没有限制,并且可以混合使用。数字:指定输入数据的宽度inta,b,c;SCanf(%2d%3d%4d”,&a,&b,&c);printf(*%d,%d,%dn*,a,b,c);输入:1234567890输出:12,345,6789字符:原样输入inta,b;scanf(*a=%d,b=%d*,&a,&b);printf(%d,%dn*,a,b);输入:a=1,b=2回车输出:1,2inta,b;scanf(%