还剩7页未读,继续阅读
文本内容:
第二章数据类型、运算符、体现式、赋值语句与输入输出
一、标识符不能是关键字
1.只能由数字、下划线和英文字母构成
2.第一种字符只能为下划线和英文字母
3.如:、都不符合标识符的命名规则abc.d Level-A switch
二、常量整形常量分别表达十六进制和八进制以开始的数字的整数
1.0x27,0160用指数方式表达的常量前后必须有数,后必须是整数如不合法
2.e ee2E
1.6字符型常量注意转义字符,如〃和、丫分别表达字符单引号和斜杠,如,,表达
3.\x51ascii码为十六进制数的字符,如和分别表达码为八进制数和的字符注意字51\37ascii32符型数据在计算机内部保留的是该字符的码,因此、的值就是的值为ascii T0,\3226字符串常量注意以字符结尾如;则⑷的值为,唧为注意字符
4.char p
[10]=abed p\00串常量以字符构成,字符的表达形式可以是转义字符的形式,如〃这里的第四个字abc\\U符是一种斜杠‘\\‘
三、运算符赋值运算符左边必须是变量、数组元素、指针指向的数据或者构导致员中的变量类型数据
1.如这个赋值语句是错误的int a,b,c;a+b=c;逻辑运算符,||如判断一种字母变量是大些字母
2.char a;ifa=Wa=Z……++前置运算符:先将数据增长再将增长后的数据放入体现式中
3.后置运算符先将数据放入体现式中,再对数据增长如char*p/q;char A
[10];P=A;q=A;〃表达先将指向⑴然后将设置为*++p=10;p AA[l]10〃表达先将设置为然后将指向*q++=10;A
[0]10q A[l]又如int a=1;〃%〃屏幕打印出的值为a++;printf cT,a;2又如int a=1;〃%〃〃屏幕打印出的值为printf d,a++;1又如int a=10;switcha++〃case10:printf10;break;case11:printfll;break;〃屏幕打印出的值为
104.—如int A
[10];int a b;za=8,b=8;〃表达先将设置为然后将的值减A[a-]=10;A
[8]10,a1〃表达先将的值减变为然后将⑺设置为AJb]=10;b1,7,A10相等比较运算符==
5.注意是两个等于如charA
[4]={ze7d7f7a,};int i=3;〃不能是ifA[i]==H{}A[i]=H表达输出整数,假如是字符型数据,则输出字符型数据的码;
6.printf:%d,ascii如;char a=W〃打印的码,即在屏幕上显示printf%cT,a;A ascii65表达输出浮点型数据%f,如float speed=
10.If;〃%〃在屏幕上打印浮点数printf f”,speed;
10.1可以直接输出字符串,如printfzzhello world;〃在屏幕上打印hello world
7.scanf注意以空格、键或者回车键作为输入终止;输入到变量中,这个变量名前要加,假如输Tab入到字符数组中,则不用加如〃%〃〃从键盘输入一种浮点数float t;scanf f,t;又如char a
[10],b
[10];〃scanf%s%s,a,b;当输入时和中的值为和you aregood studentabyou are
8./%/表达除法,当两个操作数都是整数,进行的是整除运算如羽的成果是0%表达取余数运算,如的成果是表达除以的余数5%32,53又如怎么求的个位数?可以这样〃计算的成果就是个位数1234int1234;int b;b=t%10;b继续上面怎样求十位数?可以这样〃先把整除变为然后对t=t/10;b=t%10;123410,123,123求除后来的余数,成果就是
1039.sizeof参数为变量或者数据类型,表达变量或者该数据类型在内存中的字节数如〃在屏幕上打印出char a;printf%d”,sizeofa;1程序框架
10.#includestdio.hint mainreturn0;第四章分支构造匹配规则:与近来的没有匹配的匹配
1.if elseelse if构造if{}else if{}else if{}else只会执行其中的一种分支如char a=H;ifa=aa=za=A-a+a;else ifa=Wa=Za=2;;else ifaa=9a=\n其他字符〃;elseprintf上述if语句构造,只会执行第一种分支后的语句,即只会执行a二代・H+a;语句,其他语句都不会执行
2.switch...case注意后的语句中若无语句,则执行完后的语句后会执行背面每一种case breakcase case的语句如switch2〃case2:printf2;〃;case3:printf3〃;case4:printf4上述代码会输出234第五章循环构造循环
1.for注意循环语句为后的第一种语句for如fori=l;i=5;i++〃此语句是的循环体k++;for〃此语句不是的循环体k++;for〃%〃〃屏幕输出printf d,k;6循环
2.while如int i=4,k=4;whilei-k++;}〃当变为时,循环终止,循环体会执行次,因此变为i4K4循环
3.do...while注意先执行循环体,再判断循环条件,循环体至少执行一次如int i=4,k=0;dok++;〃循环体会执行次,循环执行后,的值为}whilei--0;5k5第六章函数宏定义
1.请记住替代两字,不要自行添加括号如ttdefine SUBa,b a-b体现式编译器会翻译成成果就是SUBl-2,4-31-243,-8又如#define SUBa,b a-b体现式编译器会翻译成成果就是SUBl.2,4-
3124.3,-2函数的申明形式
2.函数的申明仅仅给出函数的名称、参数类型和个数信息,没有函数的详细实现代码,可以不写参数名,不过参数的类型必须给出,并且每个参数的参数类型都要给出如这样的函数申明是错误的由于其中参数没有给出类型voidfuninta,b;b这样的函数申明是对的void funint,int;静态局部变量
3.请记住只进行一次初始化,变量一直生存如void fun〃只会执行一次初始化static int i=0;i++;〃%〃〃第一次调用函数时,输出第二次第三次printf d,i;1,2,3mainfun;fun;fun;}递归
4.函数自己调用自己如void funfloat tiftOfunt-l;printf%d”,intt;void mainfun
2.5;〃程序输出的是0012第七章数组用字符数组存储字符串
1.初始化1〃〃;〃这是对的,的数组的元素个数为个,不要忘了结尾符charA[]=abcd A
5、〃这是错误的,不能对数组名赋值char8
[10]/=8”;字符数组的字节数2继续上一种例子,的成果是数组名表达数组占用的总字节数二数组元sizeofA5,sizeof素个数*每个元素的字节数字符串函数3表达字符串的字符个数,不包括结尾符,以结尾符作为计数的终止strlen如□二〃〃;char A abcd的值为strlenA4;又如charA[]=abcd,,;A
[2]=z\0;的值为;数组中的元素为此时认为字符串的组员为strlenA2ab\0d;abo一维数组
2.数组元素的下标从开始10如〃错误intA
[10];A[-l]=0;初始化2如:char A
[5]={z0;]厂2/34}〃在等于号后边写一对花括号,其中写上各元素的初始值将数组名作为函数参数3注意本质上是指针如int A
[10];void funint A[],int ninti;fori=0;in;i++〃printf%d,A[i];上面的这个函数和下面的这个函数的效果使用方法完全同样void funint*A,int n{inti;fori=0;in;i++printf%d,A[i];上面的这个函数也和下面的这个函数的效果使用方法完全同样void funint*AJnt ninti;fori=0;in;i++〃〃printf%d,*A+i;上述三个函数的调用措施同样,都是funA;二维数组
3.初始化1float A
[3]
[2]={{l,2}{3,4},{5,6}};,或者float A
[3]
[2]={1,23A5,6;或者⑶⑵二口,〃可以仅仅初始化一部分数据float A2};或者〃若给出初始化数据,则第一维可以不指定float A[]
[2]={1,23436};或者⑵〃若给出初始化数据,则第一维可以不指定float A□={{1,2},{3,4},{5,6}};如下两种定义方式是错误的没有给出初始化数据,则第一维必须指定float A[]
[2];//⑶⑶〃初始化的数据有行,定义的为行,矛盾float A
[2]={{1},{2},,{4}};43数组元素访问2如float A
[3]
[2]={1,23,4,5,6};〃求第一列floatt=A
[0]
[0]+A[l]
[0]+A
[2]
[0];〃求每个元素之和int sum;fori=0;i3;i++forj=0;j2;j++sum+=A[i][j];第八章指针取地址和取值
1.用取地址,用*取值如int a/p;〃取地址放入变量中p=a;p〃取中存的地址中的数据,将该数据的值设为;*p=10;P10〃该行是错误的,注意赋值语句左边必须是变量、数组元素、指针指向的数据或者构导a=p;致员中的变量类型数据指针与数组
2.数组名表达数组的首地址,可以将数组名赋给指针1如int A
[2]={l,2};int*p;〃将数组首地址存入变量中,P=A;p;〃相称于将⑼设置为*p=10A10可以在数组名前用*表达取数组最前面的元素的值2如intA
[2]={1,2};〃%〃〃相称于打印⑼的值printf d,*A;A取地址符和*是相反的作用,可以抵消3如int*p;int B
[2];p=B;⑴表达其实也就是这个元素*p p[l],B[l]指针加减运算指的是指针往前或往后偏移数据类型个字节4如int*p;int B
[4];p=B;指的是这个元素*p+2B
[2]又如int B
[4]={1,2,3,4};int*p;forint i=0;i4;i++〃printf%d,*p;;P++}〃打印中每一种元素的值B指针数组5请记住这首先是一种数组,然后这个数组里保留的是指针如;〃一种有两个元素的数组,数组名是数组中的元素个数有两个,数组元〃float*B
[2]B,素的类型为float*以指针作为函数参数,注意传递的是地址6如int Aint*p{*P=10;}〃成果是main{int a=20;Aa;printf%d,a;}10与之对比的例子如int Aintp;{P=10}〃〃成果是main{int a=20;Aa;printf%d,a;}20命令行参数7函数假如要接受命令参数则需写成如下形式mainint mainint argc,char*argv[]其中存储参数个数,是一种指针数组,数据元素是型的指针,可以将一种argc argvchar字符串常量初始化的时候给类型的指针,因此中实际保留的是命令参数字符串,每char*argv个指针指向一种字符串如程序名为test.exe则若在命令行中输入test abcdef则在函数中接受到的参数的值为保留的是这个字符串的首地址,main argc3,argv[O]test保留的是这个字符串的首地址,保留的是这个字符串的首地址argv[l]abc argv
[2]def如*⑼的值就是⑴的值就是Hargv t,*argv第十章构造类型和杂类枚举常量
1.其中的是枚举常量,其值为整数,从开始,分别为enum A{a,b,c,d};abed
001232.typedef请记住这个关键字的作用是给已经有类型取别名,如typedef intI NT;注意它不是用于发明新类型的构造体
3.怎样访问构造体组员1措施一变量名.组员名或者数组元素.组员名措施二指针变量名-〉组员名如struct st{int a,b;};struct sts,*p,A
[10];〃将变量的组员设置为s.a=10;s a10〃将数组元素⑴的组员设置为A[l].a=20;Aa20P=s;〃相称于将变量的组员设置为p-a=20;s a20构造体指针为函数参数2请记住指针中存的是地址,当以指针为参数时,传递的是地址如struct A{inta,b;};void funstructA*p,int ainttemp;temp=p-a;p-a=a;a=temp;mainstruct Aa={1,2};int b=3;funa,b;printfzz%d%d,\a.a,b;程序执行的成果为33链表
4.要理解链表是怎么链接起来的如struct nodefloata;struct node*next;struct nodenl,n2,*p;〃将的指针指向在逻辑上相称于链接到了背面nl.next=n2;nl nextn2,n2nl指向这个结点p=nl;//p nl指向下一种结点p=p-next;//p〃此处相称于p-a=10;n
2.a=10;第十一章文献文献打开方式
1.二进制写文献方式打开〃〃如匕〃〃;wb FILE*fp=fopen wb二进制读文献方式打开〃〃如:〃;rb FILE*fp=fopen”rb文本文献按写文献方式打开〃〃如:〃;w FILE*fp=fopen”w文本文献读文献方式打开〃r如:FILE*fp=fopenzVr;文献读写
2.二进制文献用函数和fread fwrite文本文献用函数和fscanf fprintf文献关闭
3.用函数如〃其中是类型的,是一种已打开文献的文献指针fclose,fclosefp;fp FILE*。
个人认证
优秀文档
获得点赞 0