资源描述:
《12-高级程序设计2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C高级程序设计(二)时代中安技术培训有限公司学校地址:北京市海淀区花园路小关街126号万盛商务会馆A区电话:62013003目录:•§4,结构:•结构,指针和函数•联合:•链表:•§5,文件•§6.程序员考试编程•§7.学生成绩管理系统§4,结构:•数组,结构,联合是三种主要构造型数据类型,•数组:同一类型的数组集合•结构:不同类型的数据集合;•联合:可以在不同的时间内拥不同类型和不同长度的成员变量一、结构嵌套时的引用:•structaddress{•charaddr[20];•longtel;•floatzip;};•structst{•ch
2、arname[20];•longsno;•charsex[6];•intage;•floatscorce[20];•structaddressd;}st1,*p1=&st1;•zip:st1.d.zipp1-->d.zip•tel:sta.d.telp1-->d.tel•addr[i]:sta.d.addr[i]p1-->d.addr[i]••3).输入输出:•scanf("%f%f%f",&st1.d.zip,•&p1->d.zip,&(*p1).d.zip);•printf("%.2f%.2f%d.2f",d1.a,d2.a,(*p).
3、a,p->a);二、结构,指针和函数•1.结构赋值•1).成员赋值--->和一般变量一样,•可以直接赋值•2).整体赋值,传进,返回(从函数)•所以:结构相当于变量,结构数组相才是数组•structex{inta;floatb;charc[20]};•main(){–exd,*p;–voidinput(exd);–input(d);–printf(“%d%f%s”,d.a,d.b,d.c);//答案??–}•voidinput(ext)//和数组名一样吗?–inti;–t.a=3;–t.b=4.5;–gets(t.c);/*能用.t,c="bo
4、ok",??Lvalue!*/•}2.传指针:•main(void){–voidfunc(structmy*);–structmyvar;//myvar–......–func(&var);–........–}•voidfunc(structmy*arg){•......}练习:•g1、设有以下说明和定义:•structdate•{intcat;doubledog;}too;•datemax;•则下列语句的执行结果是。•printf("%d",sizeof(structdate));•A、6B、30C、10D、8•#defineSTstruc
5、ttree•ST*f(intx1,intx2,STx3,ST*x4);•STpt,*p=&pt;inti;•下列语句哪一个是正确的:_______•选择答案:•a.&pt=f(10,&i,pt,p);•b.p=f(i++,(int*)p,pt,&pt);•c.p=f(i+1,&(i+2),*p,p);•d.p=f(100,150,*p,&pt);•g5.有10个学生,每个学生的数据包括姓名,学号,三门课的成绩.从键盘输入10个学生的数据,要求打印出三课的平均成绩,以及最高分的学生的数据(包括学号,姓名,三门课成绩,总平均分数).(谭11.5)(
6、补35)•1.structstudent•{charnum[6];•charname[8];•intscore[4];•floatavr;}stu[10];•2.输入用for()•关键语句:•scanf("%s",stu[i].num);•scanf("%s",stu[i].name);•for(j=0;j<3;j++)•scanf("%d",&stu[i].score[j]);计算•,要求出总和,从总和比出极大,还要记住那一个•其关键部分:•对每人求总和:for(j=0;j<3;j++)–sum+=stu[i].score[j];•if(su
7、m>max){max=sum;maxi=i;}••联合:谭p289•unionaa{•inti;•floatf;};•aax,*p=&x;x就是联合型的变量•以上就是一个联合类型和其变量的定义•联合的成员变量的引用和结构一样:x.ix.f,p->x,p->f•要紧的知识点:联合的大小,•联合中存放一个值后,各成员的值联合的特点(谭289)•1.联合中各数据成员(i,f)共享一个数据区,•2.每次只能存入一种数据(有多个数据成员)•3.联合的存区等于最大的数据成员的大小•4.数据区的值以最后存入的为准。•5.联合和结构可以互为成员变量•另外:•不
8、能初始化,不能对联合变量整体赋值•不能把联合变量作函数参数,函数不能返回联合变量•unionaa{•intx;•Charb[2];};•printf(