预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共25页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C语言讲座1.基础知识C语言的特点 autobreakcasecharconst continuedefaultdodoubleelse enumexternfloatforgoto ifintlongregisterreturn shortsignedsizeofstaticstruct switchtypedefunsignedunionvoid volatilewhile 9种控制语句:34种运算符在计算机中只有0、1两种数码,二进制数的最高位作为符号位、其余为数值,正号由0表示、负号由1表示。这种在机器中表示的数值称为机器数。机器数的表示范围受存储空间控制,以字节为单位,即8个二进制数的整数倍。它的三种表现形式:原码、反码和补码。原码:一般最高位为符号位,正数为0,负数为1,其余位表示数值。 例如:[+0]原:00000000 [+127]原:01111111 [-0]原:10000000 [-127]原:11111111我们发现数值0,无论+0还是-0,只有补码的形式是一致的。因此实际在计算机中有符号的存储和运算是用补码实现的。常用的二、十、八、十六进制的互换多实践多思考编程思想main() { chara=’2’,b=’a’; intc; c=a+b; a=c; printf(“%d,%d,%d\n”,a,b,c); } main() { doublepi=3.14159265,p=7,r=100,d; d=(pi*p*r*r*r)/(4*1000*1000); printf(“%f\n”,d); } #include”stdio.h” main() { inta1,a2,a3,a4,b1,b2,b3,b4; a1=a2=a3=a4=10; b1=(a1++)+(a2++)+(a3++)+(a4++); b2=(++a1)+(++a2)+(++a3)+(a4++); b3=(a1--)+(a2--)+(a3--)+(a4--); b4=(--a1)+(--a2)+(--a3)+(--a4); printf(“a1=%d,a2=%d,a3=%d,a4=%d”,a1,a2,a3,a4); printf(“b1=%d,b2=%d,b3=%d,b4=%d”,b1,b2,b2,b4); } 运行结果: a1=13,a2=13,a3=7,a4=7 b1=30,b2=39,b3=30,b4=21main() { inta,b,c; printf(“%d\n”,scanf(“%3d-%2d-%4d”,&a,&b,&c)); printf(“a=%d,b=%d,c=%d\n”,a,b,c); } 运行时输入: 12-345-6789 输出为: 2 a=12,b=34,c=62 在按%3d读取数据时,第3个字符不是数字,故提前截止,只将2个字符(12)送给a,再按%2d读入2个字符34送给b,本应出现“-”,但却输入5,不合法,非正常终止。scanf函数返回值为2。输出c的值是随机的。c语言的编程风格②为什么有的用if(0==x)而不是if(x==0)? 这个用来防护一个通常错误的小技巧: If(x=0) 如果你养成了把常量放在==前面,当你意外的把代码写成了: If(0=x) 那编译器就回抱怨。明显的,一些人会记得住反换测试比记住输入双=号容易。当然这个技巧只对和常量做比较的情况有用。③为什么有些代码在每次调用printf()前,加了类型转换(void)? Printf()确实返回一个值,虽然极少数程序员去检验每次调用的返回值。由于有些编译器和lint对于被丢弃的返回值回报警告,清楚的用(void)作类型转换相当于说:“我决定忽略这次调用的返回值,请继续对于其他忽略返回值的情况(也许是不应该的)提出警告。”通常,无值类型转换也用于strcpy()和strcat()的调用,他们的返回值从不会令人惊讶。猜数字Thinkyoufor allyourattention