欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    C程序复习2.docx

    • 资源ID:1407552       资源大小:20.21KB        全文页数:5页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C程序复习2.docx

    C程序复习一一1.基本数据类型(1)【整型d】(ShOrt短整型,2字节,int基本型1.IOng长整型,4字节,加"1.")A.整型的第一位均是符号位(最高位是1一一负;最高位是0一正);B.无符号位:UnSigned(定为非负整数),加“UJC.八进制:开头加“0(或)";十六进制:开头加“Ox(或OX)”;D.e.g.221.一一表示无符号长整型;(2)【浮点型f】(float单精度型,4字节,力”门,d。UbIe双精度型,8字节,longd。Uble长双精度型,16字节,加"1.")A.浮点数计算有误差(舍入误差),可用fabs(x-y)<le-6;B.避免把一个很大的数和一个很小的数直接相加减;C.e.g.1.5e-6(=1.5*10-6);(3)【字符型c】(Char1字节D:A.b:退,r:光标移到行首,t:水平制表符(从1、9、17列位置开始输入),匕单引号符,双引号符,0:字符串结束符;B.若用d格式输出即为ASCll码(H:97;'A':65);2 .头文件(库函数):include<stdio.h>输入输出库函数;string.h字符串处理函数;time.h数学库函数:#define标识符字符列(机IefinePl3.1415926)3 .输入输出函数:(1)单个字符:输出PUtChar(x),X可以是字符/整型,常/变量,输出字符,PUtCharCn'):换行;输入getchar(),存ASCll码;e.g.charcl;cl=getchar();putchar(cl);(2) %d(或i):整数;%F:小数形式输出单/双精度浮点数;%c:一个字符;%s:字符串;(3) :左对齐(默认右对齐):“+”:正数输出带正号;%(+-)(m.n)dcsf:m长度(小数点也占位!),n小数位数(默认输出六位小数);e.g.(%7.2fz6.1)-_6.10:(%5d,123456789)123456789;(4) SCanf("%d%d”,&a,&b);Printf("%d%d”,a,b);%ld:输出长整形(而非IOngdoUbIe!);1.:longdouble:%f:既可以输出float也可以输出double;4.运算(1)赋值运算从右向左,若类型不一致参考右边变量类型(2)“”:取余(余数符号与被除数相同);PoW(X,a)(x的a次方);sqrt()(开平方);fabs()(取绝对值);x+=5:i+(先算再加一);(3)关系运算从左向右,!=:不等于;(4)逻辑运算:"&&与;“|或;非(取反);(5)条件运算(唯一的三目运算)一一表达式1?表达式2:表达式3若1为真,取2;若!为假,取3。e.g.(取X,y中较大数)(x>y)?x:y;(6)SiZeOf运算:Sizeof(类型名)或Sizeof表达式。sizeof(int)=4;sizeofasizeof(int)=a的元素个数;(7)(类型名)表达式或类型名(表达式);e.g.(int)5.8=5:例:将实型变量X精确到小数点后第三位四舍五入。(int)(x*1000+0.5)1000i0,123.45678-123457/1000.0-5 .结构化程序控制(1)交换变量X与y:temp=×x=y;y=temp.(2)1if选择结构】:if(表达式1)语句1;elseif(表达式2)语句2:elsee.g.三角形if(a+b>c&&b+c>a&&a+cb)语句3;eg解一元二次方程Switch选择结构工提供下一阶段程序执行的入口。若要只运行某一子语句,加break:SWitCh(表达式)(SWitCh后无分号!)case常量表达式1:语句序列1;(语句序列可能为空)case常量表达式2:case常量表达式3:语句序列2;(表达式=常量表达式2,case常量表达式4:语句序列3;则从2开始执行到n;)default:语句序列n;(default语句可有可无)I(switch后表达式仅限整型或字符型,如CaSeTV,case1)e.g.记录成绩(3)【while循环结构】:当型循环WhiIe(表达式)语句;e.g.跳过输入的空白类字符while(c=getchar()=三,c=V);或者while(l)if()break;eg求最大公约数。【do.While结构】:直到型循环do语句(先循环再判断,至少执行一次)While(表达式);(WhiIe后面有分号!)eg用牛顿迭代法求方程近似根Xk=X(k-l)+fkfk【for循环】:for(变量赋初值表达式;控制循环的条件表达式;变量修正表达式)循环计算语句;(4)break语句】:跳出当前语句(退出循环);【continue:中断此次循环的执行,开始下一次。6 .函数【实参向形参单向值传递】(1)类型符标识符(形参)e.g.doublemin(doublex,doubley)函数体returnx<y?x:y;返回最小值注:原型申明很重要,不可省。doublemin(double,double);(2)调用函数min(a,min(c,d);Printf("%d”,min(a,b);(3)宏【宏名通常用大写字母表示,行尾不加分号】#defineEpsilonle-4不带参数#defineMAX(A,B)((八)>(B)?(八):(B)带参数7 .指针【一个变量的地址】用来存放另一个变量的地址的变量称为指针变量<2byte)(1)&:取址运算符;*取值运算符;e.g.floatfl,*p;p=&a;(*p=a);*(&i)=i;(2)数组名代表数组的首地址(数组的指针)int*p,a10;a=<fca0;p=ap+i=&aliplij=ai=*(p+i)8 .结构(1)结构体类型定义【仅定义,不分配内存,也不能对结构类型名进行赋值、运算、存取】struct标识符e.g.structperson域类型域名称;char*name;或者写charname81;):不要忘了分号!intnum;structperson*next;/11structpersonp1;错误pl,p2=JYuHUa”,10,“1.iSan,ll();结构体嵌套定义不允许包含本身,但可以包含指向自己的指针。(2)结构体变量定义【占有一定内存】struct结构体名结构体变量名e.g.structStdTypestul,stu2,stu10;也可定义指向结构的指针变量egDate*pd,date3;/pd:结构指针(变量);date3:结构变量pd=&date3;e.g.student*stp=<festl;结构指针变量stp,指向结构变量stl;(3)引用【不能直接对结构变量进行输入或输出,只能对成员变量进行输入和输出】a.结构体变量.域名称e.g.stu.name设置:strcpy(stu.name,1.iMing");b.指针变量名->成员名c. (*指针变量名).成员名(=b.)e.g.structStuscore*sp=st;sp->name等价于(*sp).name(4)结构体数组【基本元素是结构体类型的数组】Sturctcomplexc10;复数cO.real&c5->img(5)结构和函数结构或结构成员作为函数参数,必须用return语句,且原结构不被修改;结构地址或结构指针作为函数参数,函数可直接把结果存储于结构指针形参所指成员中,无返回值。(6)类型定义【typcdefe.g.typedcfintINTEGRA1.;typcdcfstructcomplex;8.链表【动态数据结构:按n自动设定数据对象的个数,可表示某个元素之后是哪一个元素】(1)头指针head>表元1(数据+指向表元2的指针)一>表元2一>尾表元(数据+NU1.1.)structNodeintvalue;结构包含有指向与自己同样结构的指针structNode*next;);(2)动态内存空间的获得与释放【生成动态变量的库函数:malloc&calloc;释放:free】a.库函数:#include<malloc.h>b.malloc()函数【返回值是void类型,须将返回值强制转换成某种特定指针类型】void*malloc(unsigncdsize)向系统申请SiZe个字节的连续空间函数调用成功返百所分配空间的起始地址,失败则返回NU1.1.。e.g.intNode*;向系统申请能存储类型为intNode的p=(intNode*)malloc(sizeof(intNode);一个结构的存储空间,P为指向这个空间的指针注:动态变量没有名字,只能通过指针引用它。c.ca11oc()函数void*calloc(unsigncdnum,unsignedsize)向系统申请numxsize个字节的连续空间,并将空间清零(malloc不清零)e.g.int*p;申请存储100个整数,p=(int*)malloc(100*sizeof(int);p=(int*)calloc(100,sizeof(int);返回首地址for(intk=0;k<100;k+)pk=k+l;d. free()函数voidfree(void*ptr)释放由Ptr所指向的存储块,即调用malk>c()和CanOC()时的返回值,是指针e.g.p=(int*)malloc(sizeof(int);/sizeof后面可跟数据类型或变量名。free();(3)建立链表structSTU定义一个表元longnum;charname20;floatscore;structSTU*next;;STU*head,*p,*pl,*p2;intn=0;全局变量n,记录链表总结点个数。head=NU1.1.:/建立空链表pl=p2=(STU*)maIloc(sizeof(STU);,创建表元,先向系统申请存储空间。scanf(tt%d%s%f,(fep1->num,p1->name,<fep1->score);p1->next=NU1.1.;先把PI后置空。while()(4)遍历和查找STU*search(STU*w,intkey)查找函数,W是链表的head,key是要找的数STU*p=head;whilc(p!=NU1.1.&&p->num!=key)/p-num<keyp=p->next;returnp;/return(p!=NU1.1.&&p->num=key)?p:NU1.1.如果找到输出指针p;没找到NU1.1.;(5)插入新表元a.在首表元前:p->ncxt=hcad;head=p;b.在W之后插入新表元(W不为NU1.1.):p->next=w->next;w->next=p;C.在末尾添加新表元:先从头指针开始找到最后的表元,用W指;w->next=p;p->next=NU1.1.;(6)删除表元【查找中必须记住当前表元的前驱表元!】(先查找,然后判断:1.首表元2.尾表元3.中间4.没找到)a.删除首表元:p=head;先保存首表元;if(p)head=head->next;p->next=NU1.1.;将原来的head与链表脱离关系;b.删除后面的某个表元:STU*p;p=w->next;w->next=p->next;p->next=NU1.1.;

    注意事项

    本文(C程序复习2.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开