/*继承结构体*/

#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\n",student.name);
printf("year:%dmonth:%dday:%d\n",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\nbookname:%s\ndates%d\nnames:%c\n",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
#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].numint main(){
//定义一个结构体
struct student{
char name[10];
int number;
float score[30];
int avg;
}stu; //定义结构体变量
//为结构体成员赋值
printf("请输入结构体成员的值:\n");
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\navg:%d\n",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;imaxscore){
//maxscore=m;
stu[i].score=maxscore;
m=i;
}
}
//对最大分数的名字和编号进行输出
printf("name:%s\nnumber:%d\n",stu[m].name,stu[m].number);
printf("score%f\n",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
#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
enum Week{Mon,Tues,Thir,Thur,Firl,Sat,Sun};
int main(){
// 定义整形变量
int x;
printf("请输入你的数字0-6:\n");
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的值:\n");
//S("D",Ox);
P("请输入y的值:\n");
//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\n%s\n",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的值:\n");
scanf("%d%d",&x,&y);
printf("MIN:%d\n",MIN(x,y)); //调用宏运算输出
}

/*预处理条件指令作用*/
//引入库文件
#include
#define NUM "hello world" //声明预处理常量
#line 100 "project7.c" //行号预定义命令
#pragma Message "terminal"
int main(){
printf("当前的行号是:%d\n%s\n",__LINE__,__DATE__);

#ifndef NUM
printf("你的预定义指令没有定义:\n");
#else
printf(NUM"\n");

#endif
//定义计数器
/*
int i=0;
//根据预处理条件指令判断计算NUM的值
#if NUM>10
i++;
//#else //#endif
#elif NUM==10
i+=50;
#else //#endif;
//#if NUM
#define UPPERCASE 1 //预宏
int main(){
char *x="hello world"; //定义整型字符指针和字符变量
char y;
int i=0; //定义计数器
//循环
while((y=x[i])!='\0'){
i++;
#if UPPERCASE
if(y>'a'&&y'A'&&y
#define swap(a,b){int c;c=a;a=b;b=c;} //预定义交换宏
int main(){
//定义两个计数器和两个整型数组
int i ,j,a[10],b[10];
//循环对整型数组输入
printf("请输入数组a内的值:\n");
for(i=0;i
#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
#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的值:\n");
scanf("%d%d%d",&x,&y,&z);
//引用宏表达式
printf("MIN:%d",MIN(x,y,z));
}

/*--------------预定义文件format.h------*/

#define INTERFACE(d) printf("%4d\n",d) //预定义宏表达式

/*-------------------主程序文件project12.c------------------*/
#include
#include "format.h" //引入预定义文件
int main(){
int d; //定义整性变量
printf("请输入d的值:\n");
scanf("%d",&d);
INTERFACE(d); //应用宏表达式
}

/*预定义指令练习*/

#include
#define PWD 1

int main(){
char *p="hello world";//定义字符型指针
//引用预定义指令
#if PWD
printf("******\n");
#else
printf("%s\n",p);
#endif
}

【c学习-8】的更多相关文章

  1. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  2. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

  3. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  4. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  5. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  6. Unity3d学习 制作地形

    这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...

  7. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

  8. 菜鸟Python学习笔记第一天:关于一些函数库的使用

    2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...

  9. 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)

    前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...

  10. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

随机推荐

  1. asp.net学习视频大全(共800集)

    今天在网上找asp.net学习视频时,发现了一些好的学习资源,记录一下供大家学习. 资料名称 下载地址 <ASP.NET4.0从入门到精通>随书教学视频  http://down.51ct ...

  2. NGUI动态字体的使用

    LZ今年六月刚刚毕业,在学校跟着老师做Android,OpenGL ES方面的项目(说白了就是干苦力╮(╯_╰)╭).年后来SZ了,就业前景好像并没有电视上渲染的那样糟糕,至少IT行业是这样吧,只要你 ...

  3. ubuntu14.04安装rabbitmq

      ubuntu14.04安装rabbitmq及配置 1.修改/etc/apt/sources.list文件 命令:vi /etc/apt/sources.list 在最后一行加上:deb http: ...

  4. 7.Zabbix 3.0 web监控

    请查看我的有道云笔记: http://note.youdao.com/noteshare?id=5f6b67f98a802fb831a83d810969c583&sub=B8D5267BDD5 ...

  5. March 1 2017 Week 9 Wednesday

    If you are serious giving up something, giving up is not serious at all. 如果你慎重地决定要放弃,那么放弃本身就没什么大不了的. ...

  6. 初识EMC

    EMC,即电磁兼容,是指设备在预期的电磁环境中,能按设计要求正常抵抗电磁干扰的能力.其主要包含3个方面:电磁干扰(EMI),电磁抗扰(EMS)与静电放电抗扰(ESD). 电磁干扰的方式可以大概分为传导 ...

  7. 通过一个实际例子理解Kubernetes里pod的自动scale - 水平自动伸缩

    kubectl scale命令用于程序在负载加重或缩小时进行pod扩容或缩小,我们通过一些实际例子来观察scale命令到底能达到什么效果. 命令行创建一个deployment: kubectl run ...

  8. C++设计模式实现--訪问者(Visitor)模式

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/L_Andy/article/details/36896645 一. 訪问者模式 定义:表示一个作用于 ...

  9. python:类的基本特征------继承、多态与封装

    一.继承 1,什么是继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 cl ...

  10. 【[CTSC2000]冰原探险】

    noip前练一下码力还是非常有前途的 这道题本来就是想写个大暴力弃疗的,所以直接强上暴力浑身舒爽 结果发现要不是判重的时候脑残了,就能\(A\)了 没什么好说的呀,就是每一次都暴力\(O(n)\)往上 ...