【c学习-8】

/*继承结构体*/ #include // 定义子结构体 struct date{ int year; int month; int day; }; //定义父结构体 struct student{ char name[20]; int age; char sex; struct date birthday; //父结构体包含子结构体 }; //初始化父结构体变量 int main(){ struct student student={"liupeng",18,"man",{2001,01,30}}; //主函数内分别调用子父结构体 printf("name:%s ",student.name); printf("year:%dmonth:%dday:%d ",student.birthday.year,student.birthday.month,student.birthday.day); } /*结构体练习*/ #include int main(){ //定义一个结构体并初始成员 struct books{ int money; char bookname[10]; int dates; char names; }; struct books xiaomin={20,"浮生六记",2018,"xm"}; //对结构体成员变量值进行输出 printf("money:%d bookname:%s dates%d names:%c ",xiaomin.money, xiaomin.bookname,xiaomin.dates,xiaomin.names ); } /*结构体练习2*/ #include //定义一个结构体 struct student { char name[10]; int age; char sex; }; int main(){ //定义计数器,用于遍历结构体内成员 int i; //初始化结构体成员 struct student stu[3]={ {"liu",18,"man"}, {"zhang",20,"wom"}, {"wu",40,"man"} }; for(i=0;i<3;i++){ printf("name:%s age:%d sex:%c ",stu[i].name, stu[i].age,stu[i].sex ); } } /*结构体练习3*/ #include #define N 5 //预定义常量N //定义结构体 struct x{ int num; int cro; }a[10]; //初始化结构体变量 int main(){ //定义两个计数器 int i,j; //循环遍历输入 for(i=0;i=1;i--) for(j=i-1;j>=0;j--) if(a[i].num int main(){ //定义一个结构体 struct student{ char name[10]; int number; float score[30]; int avg; }stu; //定义结构体变量 //为结构体成员赋值 printf("请输入结构体成员的值: "); scanf("%s%d",&stu.name,&stu.number); scanf("%f%f%f",&stu.score[1],&stu.score[2],&stu.score[3]); //计算平均值 stu.avg=(stu.score[1]+stu.score[2]+stu.score[3])/3; printf("name:%s avg:%d ",stu.name,stu.avg); } /*结构体练习*/ #include //定义结构体 struct student{ int number; char name[10]; int score; }; //定义求结构体最大成员函数 int main(){ //void studentmax(){ //计数器 int i,m=0; //初始化结构体成员 struct student stu[3]={ {101,"liu",100}, {102,"zhang",101}, {103,"wang",68}, }; //初始化最大分数 float maxscore; maxscore=stu[0].score; //循环遍历结构体成员 for(i=0;i<3;i++){ //判断 if(stu[i].score>maxscore){ //maxscore=m; stu[i].score=maxscore; m=i; } } //对最大分数的名字和编号进行输出 printf("name:%s number:%d ",stu[m].name,stu[m].number); printf("score%f ",maxscore); } /*结构体练习*/ #include #include //定义一个结构体 void main(){ struct change{ char name[20]; int count; }; //初始化结构体变量和成员 struct change people[20]={ {"liu",0}, {"zhang",0}, {"wu",0}}; //定义两个计数器 int i,j; //初始化投票变量数组 char blieve[10]; //循环遍历投票数 for(i=0;i<10;i++){ printf("请输入你要投票给谁NO.i: ",i+1); scanf("%s",&blieve); //循环遍历比较投票与原票比较 for(j=0;j<3;j++){ if(strcmp(people[j].name,blieve)){ people[j].count++; } } } //循环统计得票数 for(i=0;i<3;i++){ printf("name:%s count:%d ",people[i].name,people[i].count); } //printf("name:%s",people.name); //printf("count:%d ",people.count); } /*结构体练习*/ //定义一个结构体 #include #include //引入字符处理库文件 #define MAX 101 //预定义变量最大值 struct telstruct{ char name[10]; char tel[11]; }; //定义号码存储函数 int telFunction(struct telstruct *a){ //初始化结构体变量指针作为形参 //计数器 int i,n; //struct telstruct *a; //循环遍历判断 /*for(i=1;i<10;i++)*/ while(1){ scanf("%s",&a[i].name); if(!strcmp(a[i].name,"#")) break; else scanf("%s",&a[i].tel); i++; n++; } return n; } //定义号码搜索函数 void telSearch(struct telstruct *b , char *x,int n) //形参 { //定义计数器 int i; while(1){ if(!strcmp(b[i].name,x)){ printf("name:%s ,tel:%s ",b[i].name,b[i].tel); break; } /*else{*/ i++; n--; //} //执行判断 if(n==0){ printf("no Found "); break; } } } int main(){ //分别定义结构体,整形变量 /*char*/struct telstruct s[MAX]; int num; char name[10]; //调用号码存储函数 num=telFunction(s); printf("请输入你的姓名: "); scanf("%s",&name); //调用号码查询函数 telSearch(s,name,num); } /*结构体练习*/ //定义一个结构体 union { char str[2]; int num; }word; //定义结构体变量 int main(){ word.num=0x123;//初始化十六进制变量 printf("num:%x ",word.num); printf("str:%x ",word.str[1]); //修改十六进制字符变量 word.str[1]='b'; printf("str:%x ",word.num); } /*结构体和共用体练习*/ //定义结构体 struct{ int num; char name[10]; char tp; //定义共用体 union{ int x; char y; }jobs; }person[2]; //分别定义结构体和共用体变量 int main(){ //计数器 int i; //循环输入 for(i=0;i<2;i++){ //判断 if(person[i].tp=='t'){ scanf("%d",person[i].jobs.x/*person[i].y*/); //输入 }else if(person[i].tp=='s'){ scanf("%c",person[i].jobs.y); }else{ printf("Error"); } } //循环输出 for(i=0;i<2;i++){ if(person[i].tp=='t'){ printf("num:%d name:%s tp:%c %d", person[i].num,person[i].name,person[i].tp, person[i].jobs.x); }else if(person[i].tp=='s'){ printf("num:%d name:%s tp:%c %d", person[i].num,person[i].name,person[i].tp, person[i].jobs.y); } } } /*枚举练习*/ //定义枚举 #include enum Week{Mon,Tues,Thir,Thur,Firl,Sat,Sun}; int main(){ // 定义整形变量 int x; printf("请输入你的数字0-6: "); scanf("%d",&x); //循环遍历 switch(x){ case 1: printf("mon"); break; case 2: printf("tues"); break; case 3: printf("thir"); break; case 4: printf("thur"); break; case 5: printf("firl"); break; case 6: printf("sat"); break; default: printf("sun"); } } /*--------这是一个预编译文件index.h--------*/ //定义预处理指令 #define P printf #define S scanf #define D %d #define O & /*----------这是主程序--------*/ //引入系统库文件和自定义库文件 #include #include"index.h" int main(){ //定义整形变量 int x=1,y=2,sum; P("请输入x的值: "); //S("D",Ox); P("请输入y的值: "); //S("D",Oy); sum=x+y; P("D",sum); } /*宏*/ #include #define Test "hello world" //续行 "welcome my world" //定义一个宏 #undef Test //终止取消宏定义 int main(){ char x[20]="Test hello world"; //定义字符变量数组 printf("%s %s ",x,Test); } /* int main(){ union { int a; int b; }x; //输出共用体变量的内存 printf("%d",sizeof(x)); } */ /*宏参数*/ /*#include*/ //库文件包含指令 #include "stdio.h" //用户自定义文件包含指令 #define MIN(a,b)((a)*(b)+(b)) //定义宏运算 int main(){ int x,y; //定义整型变量 printf("请输入x和y的值: "); scanf("%d%d",&x,&y); printf("MIN:%d ",MIN(x,y)); //调用宏运算输出 } /*预处理条件指令作用*/ //引入库文件 #include #define NUM "hello world" //声明预处理常量 #line 100 "project7.c" //行号预定义命令 #pragma Message "terminal" int main(){ printf("当前的行号是:%d %s ",__LINE__,__DATE__); #ifndef NUM printf("你的预定义指令没有定义: "); #else printf(NUM" "); #endif //定义计数器 /* int i=0; //根据预处理条件指令判断计算NUM的值 #if NUM>10 i++; //#else //#endif #elif NUM==10 i+=50; #else //#endif; //#if NUM<10 i--; //#endif #endif //对处理的NUM输出 printf("i:%d ",i); */ } /*宏练习*/ #include #define UPPERCASE 1 //预宏 int main(){ char *x="hello world"; //定义整型字符指针和字符变量 char y; int i=0; //定义计数器 //循环 while((y=x[i])!=''){ i++; #if UPPERCASE if(y>'a'&&y<'z') y-=32; //转换小写 #else if(y>'A'&&y<'Z'){ y+=32; //转换大写 } #endif printf("%c ",y); } } /*宏练习*/ #include #define swap(a,b){int c;c=a;a=b;b=c;} //预定义交换宏 int main(){ //定义两个计数器和两个整型数组 int i ,j,a[10],b[10]; //循环对整型数组输入 printf("请输入数组a内的值: "); for(i=0;i<10;i++){ scanf("%d",&a[i]); } printf("请输入数组b内的值: "); for(j=0;j<10;j++){ scanf("%d",&b[j]); } //循环对整形数组输出 printf("now输出数组a的值: "); for(i=1;i<10;i++){ printf("a:%d ",a[i]); } printf("now输出数组b的值: "); for(j=1;j<10;j++){ printf("b:%d ",b[j]); } //引用预定义交换宏,交换a和b的值 for(i=1;i<10;i++){ swap(a[i],b[i]); } //再次循环对交换后的a和b输出 printf("later输出数组a的值: "); for(i=1;i<10;i++){ printf("a:%d ",a[i]); } printf("later输出数组b的值: "); for(j=1;j<10;j++){ printf("b:%d ",b[j]); } } /*宏练习*/ #include #define FALSE 0 #define TRUE 1 #define EVEN(x)(((x)%2==0)?TRUE:FALSE)//宏表达式 int main(){ //计数器 int i; //整型变量初始化 int sum=0; for(i=0;i<10;i++){ if(EVEN(i)) sum+=i; } printf("sum:%d ",sum); } /*宏练习*/ #include #define MIN(a,b,c)((a)>(b)?((b)>(c)?(c):(b)):((c)>(a)?(c):(a))) //宏表达式 int main(){ //定义整型变量 int x,y,z; printf("请输入x y z的值: "); scanf("%d%d%d",&x,&y,&z); //引用宏表达式 printf("MIN:%d",MIN(x,y,z)); } /*--------------预定义文件format.h------*/ #define INTERFACE(d) printf("%4d ",d) //预定义宏表达式 /*-------------------主程序文件project12.c------------------*/ #include #include "format.h" //引入预定义文件 int main(){ int d; //定义整性变量 printf("请输入d的值: "); scanf("%d",&d); INTERFACE(d); //应用宏表达式 } /*预定义指令练习*/ #include #define PWD 1 int main(){ char *p="hello world";//定义字符型指针 //引用预定义指令 #if PWD printf("****** "); #else printf("%s ",p); #endif }
要保持着对知识的渴求,给自己充电,不要这荒废了短暂的时光;
原文地址:https://www.cnblogs.com/activecode/p/9509240.html