C语言60分攻略

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C语言补习60分攻略基本概念•汇编语言编写的程序必须经汇编为目标程序。•高级语言编写的程序必须经编译为目标程序。•C语言程序总是从main()函数开始执行,到main()函数结束。因此,C语言程序至少有一个main()函数。一、C语言的数据表示•1.1常量和变量•1.2表达式•1.3数据类型–简单类型、结构类型、指针类型•1.4输入、输出1.1常量和变量•1.常量–常量是在程序执行中,值不发生改变的数据。其值预先决定,之后不变。有不同的数据类型。•(1)常数(有的称直接常量、页面常量)•例如的:–整数:+5、-3、017(八进制)、0x1f(16进制)–实数(浮点数):3.14、-1.2E-3、1E10–单个字符:‘A’,占一个字节’\\’,转义字符‘\’‘\’非法’\77’(八进制ASCII码63,‘?’),’\78’非法’\x3f’(十六进制ASCII码63,‘?’)‘\x3g’非法–字符串:“A”后面有\0,占两个字节E3,2E3.0不合法不是整型量占一个字节•字符串“\*\077\\\x7f\n”的长度是:•下列是整型常量的是:0.00L0x7f0570582/2.0•下列是实型常量的是:-1E-3E101E23.141.2E2.3•“\x7F”和’\x7F’的字节数分别为:521•(2)符号常量–给常量起标识符名字。•C语言的符号常量(用宏定义):•#definePI3.14159265注意:1.一般用大写字母。2,#defineM3不是C语句,后面没有“;”。3.可以做M+1,不能做M++.•(3)地址常量–当数组在定义时,其变量名为其首地址,是地址常量。inta[10];可以做a+1,不能做a++.1.1常量和变量•2.变量–用各种操作来改变值数据。–从“名”和“值”两个角度认识变量•(1)变量名•每个变量,要在使用前定义变量的名字,遵循标识符命名规则。–只能用字母、数字和下划线组成。–不能以数字开头。–不能用保留字(int,printf,main…..)。合法a12a_3_abc非法12aa#int•变量定义就是申请数据的存储空间,登记数据的各种存储特性。–例如:intm;2个字节–longn;4个字节–charch;1个字节–floatx;4个字节–doubley;8个字节•可以用sizeof获得字长–sizeof(char)=1–sizeof(int)=2–sizeof(double)=8•(2)变量的值•变量值就是由变量名所指定空间上的存储数据内容。即变量的当前值。•数据内容用语言的操作语句来改变。–赋值语句;键盘输入语句;•charchx;intm;/*变量的定义*/•chx=‘A’;m=12*3;/*赋值语句*/•scanf(“%d”,&m);/*键盘输入语句*/②①–变量初始化:定义变量时同时确定变量初值。•例如:charchy=‘a’;intweight=2;③1.2C语言的表达式•1、算术表达式•2、关系表达式•3、逻辑表达式•4、赋值表达式•5、逗号表达式•6、条件表达式•7、其他表达式C语言的表达式:使用规定的运算符,将常量、变量、函数(调用)连结的一个有意义的式子。1、算术表达式•用算术运算符来表示对数据的算术运算求值过程。•算术运算符:+-*/%•2/3结果是0,2%3结果是25/2结果是5%2结果是2、关系表达式•关系运算符:•==(优先级较高)•!===(优先级较低)•关系表达式的结果:1(非0,真),0(假)•分析:10=a=15a=9是假10=a=1510=a假00=15真所以要写成10=a&&a=153、逻辑表达式•用逻辑表达式来表示对数据的逻辑关系判断,运算结果是逻辑值“真”1或者“假”0。•C逻辑运算符包括:–!&&||–参加逻辑运算的数据必须是逻辑量,可以是逻辑类型的变量、常量,关系表达式或逻辑表达式。•C语言中,没有专门的逻辑量,1是真值,0是假值。也认为非零的值为真值。–如:inta=3,b=4,c=-5;–(1)!((ab)&&!c||1)–(2)if(a)printf(“\nyes”);a,c均按非0(即真)处理逻辑运算规律•①在&&(与)表达式中,若&&的左端为假,则不再计算另一端,该表达式值肯定为0(假)。•②在||(或)表达式中,若||的左端为真,则不再计算另一端,表达式的值必定为1(真)。inta=5,b=1k=a=3&&b--0k?b?假,后面不算了k=0,b=1•判断闰年的条件是:能被4整除但不能被100整除,或能被400整除。(x%4==0&&x%100!=0)•水仙花数是指一个三位正整数,其各位数字的立方和等于该数本身(k*100+m*10+m==k*k*k+m*m*m+n*n*n)•三角形的基本条件((a+b)c)&&((c+b)a)&&((c+a)b))||(x%400==0)•4、赋值表达式=,+=,-=,*=,/=,++(单目),--(单目)级别仅高于逗号表达式,右结合inta=3,c=2,ba=b=c;n*=m+2相当于n=n*(m+2)k=i++;先k=i,再i=i+1k=++i;先i=i+1,再k=ic赋值给b,b=2b赋值给a,a=2i++,++ik=i++作赋值运算,使用就是赋值.先做k=i,再做i=i+1•i++先使用,后加1,++i先加1,后使用要充分理解中”使用”的实际意义k==i++作比较判断运算,使用就是比较判断先做k==i,是真还是假,再做i=i+1printf(“%d”,i++)作输出结果,使用就是输出结果.先输出i,再做i=i+1a=5-(i++)作减法,使用就是减.先做5-i,并赋给a,再做i=i+1•5、条件表达式e1?e2:e3若e1为真,表达式的值为e2,否则为e3.a=3,b=2;(--a==b++)?--a:b++5?10:3表达式的值为100?10:3表达式的值为3-5?10:3表达式的值为10b=3;a=b5?10:3;a=?赋值运算符优先仅高于逗号运算符a=(b5?10:3);3k=(--a==b++)?--a:b++;k=?11非0真•6、逗号表达式表达式的值等于最后一个表达式的值,运算等级最低!a=5,b=2,c=3a=7+b+c,b++a=(7+b+c,b++)a=12a=27、强制类型转换表达式(单目)intm;sqrt((float)m);a=5,a+5,a+=aa=10理解记忆运算符表(高)(低)!++,--,等算数运算符关系运算符逻辑运算符&&||条件运算符赋值运算符逗号运算符右结合单目运算符赋值运算符b=2a=5-(--b)()优先级最高,--b右结合-优先级其次=优先级最低--b,b=b-1,b为1再做5-b,即5-1等于4最后将4赋给a1.3数据类型简单类型构造类型指针类型整型实型字符型数组结构体共用体数值型枚举型空类型int2个字节long4个字节float4个字节double8个字节char1个字节成员类型字节数×个数struct各成员字节数之和union各成员字节数之最大者存放地址,与所指数据类型无关,2个字节不要求不要求1.3数据类型•(1)整型•类型名字节数输入、输出格式–int2%d–short2%d–long4%ld•(2)实型1.简单类型•类型名字节数输入、输出格式有效数字位•float4%f7•doubule8%lf16•longdoubule16%lf19(3)字符型(输入、输出格式“%c”)ASCII码,一个字符占1字节;•char型数据与int型数据之间的关系•char型对应其ASCII码,只不过是占一个字节。大写字母与小写字母之差为32.•char型变量既能以%c字符格式输出,也能以%d整型格式输出。能象int量一样进行算术运算。注意转义字符’\’的使用。‘\n’‘\*’‘\101’(A,8进制)‘\x41’(A,16进制)charch=‘k’;printf(“%d,%c”,ch-32,ch-32);107,K•(4)字符串(输入、输出格式“%s”)–所谓“字符串”是指若干有效字符的序列。C语言字符串可以包括字母、数字、专用字符、转义字符等。•字符串常量:使用双引号–ChinaBASICa+b=cLi-Li–“39.4”“%d\n”“解放军“–“\*\077\\\x7f\n”•字符型的一维数组(相当于字符串变量)–charst[8],str[10];–strcpy(st,12345);strcpy(str,st);–不能st=“12345”;str=st;这是赋值.–可以charst[]=“12345”;这是初始化.•2.结构类型–“结构”一般可以称为数据元素,在不同的结构类型中,数据元素会有特定的名称。–结构类型的数据由更加基本的成分组成。•这些成分称为“数据项”,结构的子成员。1.3数据类型•(1)数组••a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]•1020304050607080•一个数组(array)是由相同类型的若干数组元素构成的有限序列。•C语言的数定义:–intb[8],a[8];–charc[10];2.结构类型元素下标从0开始例日期类型的定义(2)结构体•C语言中实现:•structDate•{intmonth;/*月*/•intday;/*日*/•intyear;/*年*/•};•structDatemyd={12,16,1978};•系统分配给它的内存是各成员所需内存量的总和。本例是6.•(1)指针:变量名的在内存中的存储地址。•(2)指针变量–inti=12,*p;–P=&i;–把存放变量i的地址的变量p称作指针变量。–指针变量的存放内容是数据的地址。3.指针类型(放弃)•(3)指针引用变量–指针变量可以指向各种不同的数据类型,因此指针变量也要有不同的指针类型。如:–intm,*p;floatx,*q;inta[],*r–m=12;p=&m;–x=3.14;q=&x;–r=a;注意:是否用&1.4输入、输出•输出:printf(“…….”,…….)•%d,%6d,%ld•%c,%s•%f,%10.2f,%lf,%20.8lfchara[]=“abfgcde”,max,max_i;main(){…….printf(“max=%c\nmax_i%d=”,max,max_i);max=原样输出换行g3原样输出max_i=注意输出格式1.4输入、输出•输入:scanf(“…….”,…….)•%d,%ld对应intlong•%c,%s对应charcharstr[]•%f,%lf对应flaotdouble•常见错误inta,b;chard,e[20];–scanf(%d,%f\n”,&a,&b);–scanf(%d,%f”,a,b);–scanf(%7.2f,&b);–scanf(%s,&e);–scanf(%f,&d);\n要多输入一个值缺&不能规定精度数组名是首地址,不要&类型不匹配•(1)表达式语句•(2)流程控制语句•(3)复合语句C语言语句⒈指令语句⒉非指令语句•⑴数据定义语句floatx;intm;•⑵编译预处理①宏定义#definePI3.14159②文件包含处理#includestdio.h二、C语言的程序结构与相关语句带参宏定义•以文本按原样展开#defineMUL(x)x*x5/MUL(5+3)=5/5+3*5+3=19#defineMUL(x)(x)*(x)5/MUL(5+3)=5/(5+3)*(5+3)=5#defineMUL(x)((x)*(x))5/MUL(5+3)=5/((5+3)*(5+3))=5/64•1.表达式语句的组成:–由一个表达式后接一个分号组成的。•⒈一组语句括在一对花括号之中,称复合语句。•{c=getchar();•putchar(c);•}–注意,一个复合语句的后花括号之后不应再写分号。•⒉在语法上是一个整体,相当于一个语句。–凡是能够使用简单语句的地方,都可以使用复合语句。一个复合语句中又可以包

1 / 61
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功