C语言专升本辅导整理PPT学习教案_第1页
C语言专升本辅导整理PPT学习教案_第2页
C语言专升本辅导整理PPT学习教案_第3页
C语言专升本辅导整理PPT学习教案_第4页
C语言专升本辅导整理PPT学习教案_第5页
已阅读5页,还剩223页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、会计学1C语言专升本辅导整理语言专升本辅导整理考考 试试 要要 求求第1页/共228页选择题(概念、语法等):60%程序阅读题:20%程序设计题(或程序填空):20%程序设计基础,张杰敏编,高等教育出版社出版C语言程序设计,谭浩强编,清华大学出版社出版参考用书参考用书第2页/共228页第一章C语言概述C语言发展历史与特点(了解)C程序格式和结构特点(掌握)TC环境下C程序的上机步骤(掌握)第3页/共228页第4页/共228页第5页/共228页第6页/共228页例:/*Thisisthemain/*ofexample1.1*/*/非法v编译预处理命令第7页/共228页编辑链接编译执行C程序的上机

2、步骤程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe第8页/共228页第二章算法 算法的概念(理解) 算法的表示方法(了解) 组成结构化程序的三种基本结构(理解) 结构化程序设计的过程(了解)第9页/共228页算法操作步骤解决解决:做什么?怎么做?第10页/共228页算法的特点+有穷性+确定性+可行性/有效性+有零个或多个输入+有一个或多个输出有限的操作步骤且每一步均应在合理的时间内完成,无“死循环”每一步骤通过已经实现的基本运算执行后,在有限次内得到有效的效果,无“死语句”每一条指令必须有确定的含义,无“二义性”有多

3、种输入途径可供输入数据,以进行数据处理有多种输出途径可将运行结果输出第11页/共228页算法的表示方法自然语言 流程图 N-S流程图 伪代码 计算机程序语言第12页/共228页第13页/共228页第14页/共228页第15页/共228页第三章数据类型、运算符与表达式C语言中数据类型的分类(了解)整型、实型、字符型、字符串常量的表示方法(掌握)符号常量的定义和使用(掌握)变量的定义、初始化(掌握)算术、赋值、复合赋值、自增、自减、逗号运算符及表达式(掌握)各类数值型数据间的混合运算(掌握)第16页/共228页第17页/共228页第18页/共228页基本数据类型第19页/共228页第20页/共22

4、8页第21页/共228页第22页/共228页第23页/共228页&字符常量v定义:用单引号括起来的单个普通字符或转义字符. v字符常量的值:该字符的ASCII码值转义字符及其含义:转义字符含义nvradddtbf“xhh转义字符含义换行垂直制表回车响铃单引号3位8进制数代表的字符水平制表退格换页反斜线双引号2位16进制数代表的字符v转义字符:反斜线后面跟一个字符或一个代码值表示例转义字符举例main()printf(101x42Cn);printf(Isay:Howareyou?n);printf(CProgramn);printf(TurboC);如 A65, a97, 048 , n10第

5、24页/共228页第25页/共228页第26页/共228页&实型变量vfloat:占4字节,提供7位有效数字vdouble:占8字节,提供16位有效数字&字符型变量v字符变量存放字符ASCII码vchar与int数据间可进行算术运算例floata;a=111111.111;/*a=111111.1*/doubleb;b=111111.111;/*b=111111.111*/例 a=D; /* a=68; */ x=A+5; /* x=65+5; */ s=!+G /* s=33+71; */没有字符串变量,用字符数组存放第27页/共228页第28页/共228页doublefloatlongun

6、signedintchar,short低高说明:必定的转换运算对象类型不同时转换第29页/共228页例main()floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);结果:x=3.600000,i=3精度损失问题较高类型向较低类型转换时可能发生第30页/共228页第31页/共228页第32页/共228页第33页/共228页第34页/共228页第35页/共228页第36页/共228页第37页/共228页第38页/共228页第39页/共228页第40页/共228页l 短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑

7、运算符才能求出表达式的解时,才执行该运算符第41页/共228页第42页/共228页 赋值语句及使用(掌握) 字符输入输出( getchar函数和putchar函数)(了解) 格式输入输出( scanf函数和printf函数)(掌握)第43页/共228页第44页/共228页第45页/共228页dx,Xoucse,Efg%格式字符:十六进制无符号整数不带符号十进制整数十进制整数指数形式浮点小数单一字符字符串八进制无符号整数小数形式浮点小数e和f中较短一种百分号本身inta=567;printf(“%d”,a);inta=255;printf(“%x”,a);inta=65;printf(“%o”,

8、a);inta=567;printf(“%u”,a);chara=65;printf(“%c”,a);printf(“%s”,“ABC”);floata=567.789;printf(“%e”,a);floata=567.789;printf(“%f”,a);floata=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+02567.789000567.789%l 说明u 格式字符要用小写u 格式字符与输出项个数应相同,按先后顺序一一对应u 输出转换:格式字符与输出项类型不一致,自动按指定格式输出例inta=3,b=4;pr

9、intf(“%d%dn”,a,b);printf(“a=%d,b=%dn”,a,b);输出结果:34a=3,b=4例 main()unsignedintu=65535;printf(”u=%dn,u);输出结果:u=-1例 int a=3,b=4; printf(“%d %dn”,a,b); printf(“a=%d , b=%dn”,a,b);第46页/共228页第47页/共228页第48页/共228页第49页/共228页第50页/共228页第51页/共228页例scanf(“%3d%*4d%f”,&k,&f);输入12345678765.43则123k,8765.43f例scanf(“%2

10、d%*3d%2d”,&a,&b);输入1234567则12a,67b例 scanf(“%3c%2c”,&c1,&c2); 输入 abcde 则ac1, d c2例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入 19991015 则1999yy, 10 mm, 15 dd第52页/共228页例scanf(“%d:%d:%d”,&h,&m,&s);输入12:30:45则12h,30m,45s例 scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%dn”,a,b,c); 输入 123 123 123 输出 a=123,b=83,c=2

11、91例scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);输入a=12,b=24,c=36例scanf(“%d,%d”,&a,&b)输入3,4则3a,4b第53页/共228页l输入数据时,遇以下情况认为该数据结束:u遇空格、TAB、或回车u遇宽度结束u遇非法输入l输入函数留下的“垃圾”:例intx;charch;scanf(“%d”,&x);ch=getchar();printf(“x=%d,ch=%dn”,x,ch);执行:123输出:x=123,ch=10例intx;charch;scanf(“%d”,&x);scanf(“%c”,&ch);printf(“x=%d,ch=%

12、dn”,x,ch);执行:123输出:x=123,ch=10例intx;charch;scanf(“%d”,&x);scanf(“%c”,&ch);或scanf(“%*c%c”,&ch);如 scanf(“%c%c%c”,&c1,&c2,&c3); 若输入abc 则ac1, c2, b c3如scanf(“%d%c%f”,&a,&b,&c);若输入1234a123o.26则1234a,ab,123c第54页/共228页第五/六章C程序流程设计第五章第五章 选择结构选择结构 关系、逻辑运算符及表达式(掌握)if语句的三种形式(掌握)switch语句及break语句的使用(掌握)要求要求能编写含有

13、if语句嵌套结构的程序第六章第六章 循环结构循环结构 while语句及应用(掌握)do-while语句及应用(掌握)for语句及应用(掌握)break语句在循环中的作用(掌握)continue语句在循环中的作用(了解)要求要求能编写含有二重循环结构的程序。第55页/共228页if( )else switchfor( )while( )dowhile( )continuebreakgotoreturn分支循环辅助控制程序控制语句(9种):v复合语句:用 括起来的一组语句l一般形式: 数据说明部分; 执行语句部分; l说明:u“”后不加分号u语法上和单一语句相同u复合语句可嵌套第56页/共228页

14、第57页/共228页第58页/共228页第59页/共228页第60页/共228页第61页/共228页第62页/共228页第63页/共228页第64页/共228页第65页/共228页第66页/共228页第67页/共228页第68页/共228页v说明:lfor语句中expr1,expr2,expr3类型任意,都可省略,但分号;不可省l无限循环:for(;)lfor语句可以转换成while结构expr1;while(expr2)循环体语句;expr3;例用for循环求1001nn#includemain()inti,sum=0;for(i=1;i=100;i+)sum+=i;printf(%d,su

15、m);第69页/共228页例:#includemain()inti=0;for(i=0;i10;i+)putchar(a+i);结果:abcdefghij例:#includemain()inti=0;for(;i10;i+)putchar(a+i);例:#includemain()inti=0;for(;i10;)putchar(a+(i+);例:#includemain()inti=0;for(;i10;putchar(a+i),i+);第70页/共228页第71页/共228页第72页/共228页第73页/共228页第74页/共228页第七章数组一维数组的定义、初始化及元素引用(掌握)二维数

16、组的定义、初始化及元素引用(掌握)字符数组的定义及使用(掌握)字符串处理函数(了解)第75页/共228页第76页/共228页一维数组的引用v数组必须先定义,后使用v只能逐个引用数组元素,不能一次引用整个数组v数组元素表示形式:数组名下标其中:下标可以是常量或整型表达式例inti=15;intdatai;(不能用变量定义数组维数)例inta10;printf(“%d”,a);()必须for(j=0;j10;j+)printf(“%dt”,aj);()例intdata5;data5=10;/C语言对数组不作越界检查,使用时要注意第77页/共228页一维数组的初始化v初始化方式在定义数组时,为数组元

17、素赋初值(在编译阶段使之得到初值)inta5=1,2,3,4,5;等价于:a0=1;a1=2;a2=3;a3=4;a4=5;v说明:l数组不初始化,其元素值为随机数l对static数组元素不赋初值,系统会自动赋以0值l当全部数组元素赋初值时,可不指定数组长度如inta5=6,2,3;(不用static初值也可为0)等价于:a0=6;a1=2;a2=3;a3=0;a4=0;如inta3=6,2,3,5,1;()staticinta5;等价于:a0=0;a1=0;a2=0;a3=0;a4=0;l只给部分数组元素赋初值inta=1,2,3,4,5,6;编译系统根据初值个数确定数组维数第78页/共22

18、8页第79页/共228页)3()2(12) 1(1121nFFFnFnFnnn第80页/共228页第81页/共228页第82页/共228页第83页/共228页第84页/共228页二维数组元素的引用形式:数组名下标下标二维数组元素的初始化l分行初始化:例inta23=1,2,3,4,5,6;a00a01a02a10a11a12123456全部初始化l按元素排列顺序初始化例inta3=1,2,3,4,5;a00a01a02a10a11a12123450第一维长度省略初始化例inta3=1,4,5;a00a01a02a10a11a12100450第一维长度省略初始化例inta23=1,2,4;a00

19、a01a02a10a11a12120400部分初始化例inta23=1,2,3,4,5,6;a00a01a02a10a11a12123456全部初始化例inta23=1,2,4;a00a01a02a10a11a12124000部分初始化第85页/共228页第86页/共228页第87页/共228页字符数组和字符串字符数组v定义v字符数组的初始化l逐个字符赋值l用字符串常量v字符数组的引用例charc10,ch34;例charch5=H,e,l,l,o;ch0Hello逐个字符赋值ch1ch2ch3ch4例charch5=B,o,y;ch0Boy00逐个字符赋值ch1ch2ch3ch4例charc

20、h5=“Boy”;ch0Boy00用字符串常量ch1ch2ch3ch4例charch6=“Hello”;charch6=“Hello”;charch=“Hello”;用字符串常量ch0Helloch1ch2ch3ch40ch5第88页/共228页例chardiamond5=.,.,*,.,*,.,*,*,.,.,.,*,.,*,.,*,.,.,*;二维字符数组初始化.*00.*.*0*.*.*.*0.*00diamond0diamond1diamond2diamond3diamond4例charfruit7=“Apple”,”Orange”,”Grape”,”Pear”,”Peach”;二维字

21、符数组初始化fruit0fruit1fruit2fruit3fruit4Apple00Orange0Grape00Pear000Peach00第89页/共228页第90页/共228页第91页/共228页v字符串的输入输出l逐个字符I/O:%cl整个字符串I/O:%s例 用%c main()charstr5;inti;for(i=0;i5;i+)scanf(“%c”,&stri);for(i=0;i5;i+)printf(“%c”,stri);例 用%s main()charstr5;scanf(“%s”,str);printf(“%s”,str);用字符数组名,不要加&输入串长度y?x:y;r

22、eturn(z);例有参函数(现代风格)intmax(intx,y)intz;z=xy?x:y;return(z);例无参函数printstar()printf(“*n”);或printstar(void)printf(“*n”);第104页/共228页第105页/共228页nvoid型函数例无返回值函数voidswap(intx,inty)inttemp;temp=x;x=y;y=temp;main()floata,b;intc;scanf(%f,%f,&a,&b);c=max(a,b);printf(Maxis%dn,c);max(floatx,floaty)floatz;z=xy?x:y

23、;return(z);第106页/共228页第107页/共228页第108页/共228页第109页/共228页第110页/共228页例函数说明举例main()floata,b;intc;scanf(%f,%f,&a,&b);c=max(a,b);printf(Maxis%dn,c);max(floatx,floaty)floatz;z=xy?x:y;return(z);int型函数可不作函数说明(BorlandC+不行)/*ch7_5.c*/floatadd(floatx,floaty)floatz;z=x+y;return(z);main()floata,b,c;scanf(%f,%f,&a

24、,&b);c=add(a,b);printf(sumis%f,c);被调函数出现在主调函数之前,不必函数说明/*ch7_5.c*/main()floatadd(float,float);/*functiondeclaration*/floata,b,c;scanf(%f,%f,&a,&b);c=add(a,b);printf(sumis%f,c);floatadd(floatx,floaty)floatz;z=x+y;return(z);floatadd();第111页/共228页第112页/共228页第113页/共228页例交换两个数第114页/共228页第115页/共228页第116页/共

25、228页第117页/共228页第118页/共228页第119页/共228页第120页/共228页第121页/共228页第122页/共228页例求二维数组中最大元素值第123页/共228页第124页/共228页第125页/共228页floatf1(inta)intb,c;.charf2(intx,inty)inti,j;main()intm,n;.a,b,c有效x,y,i,j有效m,n有效例不同函数中同名变量main()inta,b;a=3;b=4;printf(main:a=%d,b=%dn,a,b);sub();printf(main:a=%d,b=%dn,a,b);sub()inta,b;

26、a=6;b=7;printf(sub:a=%d,b=%dn,a,b);例复合语句中变量#defineN5main()inti;intaN=1,2,3,4,5;for(i=0;iN/2;i+)inttemp;temp=ai;ai=aN-i-1;aN-i-1=temp;for(i=0;iN;i+)printf(%d,ai);第126页/共228页第127页/共228页第128页/共228页intp=1,q=5;floatf1(int a)intb,c;.intf3().charc1,c2;charf2(int x,int y)inti,j;main()intm,n;.c1,c2的作用范围p,q的作

27、用范围intp=1,q=5;floatf1(int a)intb,c;.intf3().charc1,c2;charf2(int x,int y)inti,j;main()intm,n;.c1,c2的作用范围p,q的作用范围externcharc1,c2;externcharc1,c2;c1,c2的作用范围扩展后c1,c2的作用范围扩展后c1,c2的作用范围扩展后c1,c2的作用范围扩展后c1,c2的作用范围扩展后c1,c2的作用范围扩展后第129页/共228页第130页/共228页第131页/共228页第132页/共228页第133页/共228页第134页/共228页第135页/共228页第

28、136页/共228页第137页/共228页第138页/共228页第九章预处理命令#define命令的使用(理解)#include命令的作用(了解)第139页/共228页第140页/共228页如 if(x=YES) printf(“correct!n”); else if (x=NO) printf(“error!n”);展开后: if(x=1) printf(“correct!n”); else if (x=0) printf(“error!n”);v宏展开:预编译时,用宏体替换宏名-不作语法检查宏体可缺省,表示宏名定义过或取消宏体v定义位置:任意(一般在函数外面)v作用域:从定义命令到文件结

29、束v#undef可终止宏名作用域 格式: #undef 宏名例 #define YES 1 main() . #undef YES #define YES 0 max() . YES原作用域YES新作用域v宏定义可嵌套,不能递归例 #define MAX MAX+10 ()v引号中的内容与宏名相同也不置换例 #define PI 3.14159 printf(“2*PI=%fn”,PI*2);宏展开:printf(“2*PI=%fn”,3.14159*2);v宏定义中使用必要的括号()例 #define WIDTH 80 #define LENGTH WIDTH+40 var=LENGTH*2

30、;宏展开:var= 80+40 *2;()()例 #define WIDTH 80 #define LENGTH WIDTH+40 var=LENGTH*2;宏展开:var= 80+40 *2;第141页/共228页第142页/共228页第143页/共228页第144页/共228页处理过程:预编译时,用被包含文件的内容取代该预处理命令,再对“包含”后的文件作一个源文件编译 直接按标准目录搜索“” 先在当前目录搜索,再搜索标准目录可指定路径第145页/共228页第十章指针地址、指针、指针变量的概念(掌握)指针变量的定义、初始化、赋值(掌握)两个与指针有关的运算符(&和*)(掌握)指针和一维数组的

31、关系(掌握)指针和二维数组的关系(了解)指针和字符串的关系(掌握)参数为指针类型的函数应用(掌握)指针数组和指向指针的指针(了解)第146页/共228页第147页/共228页第148页/共228页含义:取变量的地址单目运算符优先级:2结合性:自右向左含义:取指针所指向变量的内容单目运算符优先级:2结合性:自右向左v两者关系:互为逆运算v理解.2000200420062005整型变量i10变量i_pointer2001200220032000指针变量i_pointer-指针变量,它的内容是地址量*i_pointer-指针的目标变量,它的内容是数据&i_pointer-指针变量占用内存的地址200

32、010i_pointer*i_pointer&i_pointerii_pointer&i&(*i_pointer)i*i_pointer*(&i)i_pointer=&i=&(*i_pointer)i=*i_pointer=*(&i)第149页/共228页指针变量的定义v一般形式: 存储类型 数据类型 *指针名;3变量i2000i_pointer*i_pointeri*i_pointer&ii_pointeri=3;*i_pointer=33变量i2000i_pointer*i_pointeri*i_pointer&ii_pointeri=3;*i_pointer=3合法标识符指针变量本身的存

33、储类型指针的目标变量的数据类型表示定义指针变量不是*运算符例 int*p1,*p2;float*q;staticchar*name;注意:1、int*p1,*p2;与int*p1,p2;2、指针变量名是p1,p2,不是*p1,*p23、指针变量只能指向定义时所规定类型的变量4、指针变量定义后,变量值不确定,应用前必须先赋值第150页/共228页赋给指针变量,不是赋给目标变量例 inti;int*p=&i;变量必须已说明过类型应一致例int*p=&i;inti;例 inti;int*p=&i;int*q=p;用已初始化指针变量作初值例main()inti;staticint*p=&i;.()不能

34、用auto变量的地址去初始化static型指针第151页/共228页第152页/共228页第153页/共228页第154页/共228页第155页/共228页第156页/共228页第157页/共228页第158页/共228页第159页/共228页第160页/共228页第161页/共228页第162页/共228页第163页/共228页v一级指针变量与一维数组的关系int *p 与 int q10 l 数组名是指针(地址)常量l p=q; p+i 是qi的地址l 数组元素的表示方法:下标法和指针法, 即若p=q, 则 pi qi *(p+i) *(q+i) l 形参数组实质上是指针变量,即int q

35、 int *ql 在定义指针变量(不是形参)时,不能把int *p 写成int p;l 系统只给p分配能保存一个指针值的内存区(一般2字节);而给q分配2*10字节的内存区第164页/共228页指针与二维数组v二维数组的地址对于一维数组:(1)数组名array表示数组的首地址,即array0的地址;(2)数组名array是地址常量(3)array+i是元素arrayi的地址(4)arrayi*(array+i)arrayintarray10;第165页/共228页第166页/共228页第167页/共228页第168页/共228页第169页/共228页例main()charstring=“Ilo

36、veChina!”;printf(“%sn”,string);printf(“%sn”,string+7);IloveChistring0string1string2string3string4string5string6string7string8string9stringstring10string11string12string13n!a0第170页/共228页v用字符指针实现例main()char*string=“IloveChina!”;printf(“%sn”,string);string+=7;while(*string)putchar(string0);string+;Ilov

37、eChistringn!a0字符指针初始化:把字符串首地址赋给stringchar*string;string=“IloveChina!”;string*string!=0第171页/共228页例用函数调用实现字符串复制(1)用字符数组作参数(2)用字符指针变量作参数aIamateaceh0r.fromabyuarasutndetoboet.0Iaaeceh0r.t.0mtavoidcopy_string(charfrom,charto)inti=0;while(fromi!=0)toi=fromi;i+;toi=0;main()chara=Iamateacher.;charb=Youarea

38、student.;printf(string_a=%snstring_b=%sn,a,b);copy_string(a,b);printf(nstring_a=%snstring_b=%sn,a,b);voidcopy_string(char*from,char*to)for(;*from!=0;from+,to+)*to=*from;*to=0;main()char*a=Iamateacher.;char*b=Youareastudent.;printf(string_a=%snstring_b=%sn,a,b);copy_string(a,b);printf(nstring_a=%snst

39、ring_b=%sn,a,b);第172页/共228页第173页/共228页第174页/共228页第175页/共228页第176页/共228页第177页/共228页第178页/共228页第179页/共228页指针所指向变量的数据类型指针本身的存储类型区分int*p4与int(*p)4v指针数组赋值与初始化赋值:main()intb23,*pb2;pb0=b0;pb1=b1;.int*pb2pb0pb1intb23123246初始化:main()intb23,*pb=b0,b1;.int*pb2pb0pb1intb23123246第180页/共228页二维数组存储空间固定字符指针数组相当于可变列

40、长的二维数组分配内存单元=数组维数*2+各字符串长度指针数组元素的作用相当于二维数组的行名但指针数组中元素是指针变量二维数组的行名是地址常量第181页/共228页第182页/共228页第183页/共228页l 定义形式:存储类型 数据类型 *指针名;如 char *p;例inti,*p;p=&i;()/p是二级指针,不能用变量地址为其赋值指针本身的存储类型最终目标变量的数据类型*p是p间接指向对象的地址*p是p间接指向对象的值例inti=3;int*p1;int*p2;p1=&i;p2=&p1;*p=5;ip1p23&i&p1*p2,*p1*p2v多级指针例三级指针int*p;四级指针char

41、*p;第184页/共228页第185页/共228页第十一章结构体、共用体和枚举类型结构体类型的定义(掌握)结构体变量、数组、指针变量的定义、初始化及成员引用(掌握)参数为结构体变量或结构体指针的函数(理解)共用体的概念及共用体类型的定义(了解)枚举类型的概念及共用体类型的定义(理解)typedef语句的使用(了解)第186页/共228页第187页/共228页第188页/共228页例structstudentintnum;charname20;charsex;intage;floatscore;charaddr30;structstudentstu1,stu2;struct结构体名类型标识符成员

42、名;类型标识符成员名;.;struct结构体名变量名表列;例#defineSTUDENTstructstudentSTUDENTintnum;charname20;charsex;intage;floatscore;charaddr30;STUDENTstu1,stu2;第189页/共228页第190页/共228页第191页/共228页说明v结构体类型与结构体变量概念不同l 类型:不分配内存; 变量:分配内存l 类型:不能赋值、存取、运算; 变量:可以v结构体可嵌套v结构体成员名与程序中变量名可相同,不会混淆v结构体类型及变量的作用域与生存期例structdateintmonth;intday

43、;intyear;structstudentintnum;charname20;structdatebirthday;stu;numnamebirthdaymonthdayyear例structstudentintnum;charname20;structdateintmonth;intday;intyear;birthday;stu;numnamebirthdaymonthdayyear第192页/共228页v可以将一个结构体变量赋值给另一个结构体变量v结构体嵌套时逐级引用成员(分量)运算符优先级:1结合性:从左向右引用方式: 结构体变量名.成员名例structstudentintnum;c

44、harname20;charsex;intage;floatscore;charaddr30;stu1,stu2;stu1.num=10;stu1.score=85.5;stu1.score+=stu2.score;stu1.age+;例structstudentintnum;charname20;charsex;intage;floatscore;charaddr30;stu1,stu2;printf(“%d,%s,%c,%d,%f,%sn”,stu1);()stu1=101,“WanLin”,M,19,87.5,“DaLian”;()例structstudentintnum;charnam

45、e20;charsex;intage;floatscore;charaddr30;stu1,stu2;stu2=stu1;()例structstudentintnum;charname20;structdateintmonth;intday;intyear;birthday;stu1,stu2;numnamebirthdaymonthdayyearstu1.birthday.month=12;例structstudentintnum;charname20;charsex;intage;floatscore;charaddr30;stu1,stu2;if(stu1=stu2).()第193页/共

46、228页第194页/共228页第195页/共228页第196页/共228页形式一:structstudentintnum;charname20;charsex;intage;structstudentstu2;形式二:structstudentintnum;charname20;charsex;intage;stu2;形式三:structintnum;charname20;charsex;intage;stu2;numnamesexagenumnamesexagestu0stu125B第197页/共228页例structintnum;charname20;charsex;intage;stu=

47、,;顺序初始化:structstudentintnum;charname20;charsex;intage;structstudentstu=100,“WangLin”,M,20,101,“LiGang”,M,19,110,“LiuYan”,F,19;例structstudentintnum;charname20;charsex;intage;stu=,;分行初始化:structstudentintnum;charname20;charsex;intage;structstudentstu=100,“WangLin”,M,20,101,“LiGang”,M,19,110,“LiuYan”,F,

48、19;全部初始化时维数可省结构体数组引用引用方式: 结构体数组名下标.成员名structstudentintnum;charname20;charsex;intage;str3;stu1.age+;strcpy(,”ZhaoDa”);第198页/共228页第199页/共228页v使用结构体指针变量引用成员形式存放结构体变量在内存的起始地址numnamesexagestupstructstudentintnum;charname20;charsex;intage;stu;structstudent*p=&stu;(*结构体指针名).成员名 结构体指针名-成员名结构体变量名.成员

49、名指向运算符优先级: 1结合方向:从左向右例指向结构体的指针变量main()structstudentlongintnum;charname20;charsex;floatscore;stu_1,*p;p=&stu_1;stu_1.num=89101;strcpy(stu_1.name,LiLin);p-sex=M;p-score=89.5;printf(nNo:%ldnname:%snsex:%cnscore:%fn,(*p).num,p-name,stu_1.sex,p-score);例intn;int*p=&n;*p=10;n=10structstudentstu1;structstud

50、ent*p=&stu1;stu1.num=101;(*p).num=101第200页/共228页例指向结构体数组的指针structstudentintnum;charname20;charsex;intage;stu3=10101,LiLin,M,18,10102,ZhangFun,M,19,10104,WangMin,F,20;main()structstudent*p;for(p=stu;pnum,p-name,p-sex,p-age);numnamesexagestu0pstu1stu2p+1第201页/共228页第202页/共228页第203页/共228页第204页/共228页第205页/共228页第206页/共228页共用体变量引用v引用方式:例a.i=1;a.ch=a;a.f=1.5;printf(“%d”,a.i);(编译通过,运行结果不对)v引用规则l 不能引用共用体变量,只能引用其

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论