东明菏泽网站建设,wordpress注册不上,图库素材网站模板,seo网站优化流程用变量a给出下面的定义
a) 一个整型数#xff08;An integer#xff09; //int a;b) 一个指向整型数的指针#xff08;A pointer to an integer#xff09; //int *a;c) 一个指向指针的的指针#xff0c;它指向的指针是指向一个整型数#xff08;A pointer to a poin…用变量a给出下面的定义
a) 一个整型数An integer //int a;b) 一个指向整型数的指针A pointer to an integer //int *a;c) 一个指向指针的的指针它指向的指针是指向一个整型数A pointer to a pointer to an integer //int * *a;(二级指针)d) 一个有10个整型数的数组An array of 10 integers //int a[10];e) 一个有10个指针的数组该指针是指向一个整型数的An array of 10 pointers to integers //int *a[10]; f) 一个指向有10个整型数数组的指针A pointer to an array of 10 integers //int (*a)[10];g) 一个指向函数的指针该函数有一个整型参数并返回一个整型数A pointer to a function that takes an integer as an argument and returns an integer //int (*a)(int)h) 一个有10个指针的数组该指针指向一个函数该函数有一个整型参数并返回一个整型数 An array of ten pointers to functions that take an integer argument and return an integer //int (*a[10])(int)
函数传参-----值传递
总结
1.指针概念
2.指针定义
3.核心用途
4.指针运算
5.指针
一维
6.指针二维数组
7.指针函数
8.指针指针
结构体、共用体、枚举
数据类型
基本数据类型整型 浮点型 字符型 枚举类型
构造类型数组类型
指针类型
void类型
例子统计全校同学信息
//记录统计学生信息
//姓名
//班级
//性别
//成绩
//年龄……
记录姓名--------char s[][100] {Tom,Gerry};
记录班级---------char class[][100] {……}
……
为了更好的描述 有一种专门的数据类型来描述
结构体 struct
描述一些原先基本数据类型不好描述的复杂数据类型
语法
struct 结构体类型名
{ 数据成员列表 //成员变量
}
//一上这种形式就是定义了一个”数据类型“-----用户可以自定义
eg描述学生这种类型
struct student
{ char name [20]; unsigned char age; float score;
} //注意结束要用分号 表示结构体类定义完成
结构体的对齐规则: 1.在32位的平台上默认都是按4字节对齐的。 2.对于成员变量 各自在自己的自然边界上对齐。 3.如果 成员变量中有比4字节大。 此时整个结构体按照4字节对齐。 4.如果成员变量中没有有比4字节大。 此时整个结构体按照最大的那个成员对齐。
练习
用结构体打印老师的姓名、工号、工资
#include stdio.h
#if 0
struct teacher
{char name[10];int Jobnum;int salary;
};void Peintf_Teacher(struct teacher *a)
{printf(-|name-|\t|-Jobnum-|\t|-salary|-\n);printf(-|%s-|\t|-%d-|\t|-%d-|-\t\n,a-name,a-Jobnum,a-salary);
}int main(void)
{struct teacher a{Liuyang,88888,88488};
#if 0printf(-|name-|\t|-Jobnum-|\t|-salary|-\n);printf(-|%s-|\t|-%d-|\t|-%d-|-\t\n,a.name,a.Jobnum,a.salary);
#endifprintf (name: \n);scanf(%s,a.name);printf (Jobnum: \n);scanf(%d,a.Jobnum);printf (salary: \n);scanf(%d,a.salary);Peintf_Teacher(a);return 0;
}结构体搭建学生信息查询系统
#include stdio.h
#include stdlib.h
struct student
{char name[20];int sno;float score;
};void inputStuInfo(struct student *p,int len)
{int i 0;for (i 0; i len;i){printf(name:);scanf(%s,(pi)-name);printf(sno :);scanf(%d,(pi)-sno); //p[i].nameprintf(score:);scanf(%f,(pi)-score);}
}void outputStuInfo(struct student *p,int len)
{int i 0;printf(%10s|%10s|%10s\n,name,sno,score);for (i 0; i len;i){printf(%10s,p-name);printf(%10d,p-sno);printf(%10.2f\n,p-score);p;}
}void printMenu(void)
{printf(-----Welcome Use Student info System-----\n);printf(1 选择输入的学生人数\n);printf(2 输入信息\n);printf(3 查看学生信息\n);printf(0 退出 \n);printf();
}
int main(void)
{int n;int len 0;struct student *s;while (1){printMenu();scanf(%d,n);switch(n){case 0:printf(exit----\n);return 0;case 1:printf();scanf(%d,len);s malloc(len*sizeof(struct student));break;case 2:inputStuInfo(s,len);break;case 3:outputStuInfo(s,len);break;}}return 0;
}
注意
1.结构体------是用来实现自定义数据类型
2.用结构体 a.先构造出数据类型 b.用数据类型定义变量、数组、指针
访问结构体
. //结构体成员运算符
—用与结构体类型的指针变量
eg. p—name
作业
有一个班的4个学生有5门课程。
1、求第一门课的平均分 struct Stu s[4]; s[i].score[0] int averageOneClass(struct Stu *s,int len,int classNo)
2、找出有两门以上课程不及格的学生 输出他们的学号和全部课程成绩及平均分 printfStuInfoFailTwoClass()
{ 1.统计学生不及格课程数 2.打印学生信息 3.求平均分的功能 } 3、找出平均分在90分以上或全部课程成绩在85分以上的学生。 分别编写三个函数来实现以上三个要求
#include stdio.hstruct Stu //结构体函数
{char name[10];int num;float yuwen;float yingyu;float shuxue;float wuli;float huaxue;
};
//****************************************************************
void Intput_Stu(struct Stu *s,int len) //输入各项元素
{int i0;for (i0;ilen;i){printf (name: );scanf(%s,(si)-name);printf (num: );scanf(%d,(si)-num);printf (yuwen: );scanf(%f,(si)-yuwen);printf (yingyu: );scanf(%f,(si)-yingyu);printf (shuxue: );scanf(%f,(si)-shuxue);printf (wuli: );scanf(%f,(si)-wuli);printf (huaxue: );scanf(%f,(si)-huaxue);}
}
//*********************************************************
void Puts_Stu(struct Stu *s,int len) //输出
{int i0;for (i0;ilen;i){printf (%s\t,s-name);printf (%d\t,s-num);printf (%.1f\t,s-yuwen);printf (%.1f\t,s-yingyu);printf (%.1f\t,s-shuxue);printf (%.1f\t,s-wuli);printf (%.1f\n,s-huaxue);s;}
}//****************************************************
float Pingjun_Stu(struct Stu *s,int len)
{int i0; float sum0;//单科语文平均数计算for (i0;ilen;i){sum (si)-yuwen;}return sum/len;
}//***************************************************************************************************************************
void Flunk_Stu(struct Stu *s,int len)
{int i0; //求不及格学生的科目和成绩及其平均分int j0;float sum0;for (i0;ilen;i){if ((si)-yuwen60){j;}if ((si)-yingyu60){j;}if ((si)-shuxue60){j;}if ((si)-wuli60){j;}if ((si)-huaxue60){j;}if (j2){printf(两门以上不及格的同学num:%d yuwen:%.1f yingyu:%.1f shuxue:%.1f wuli:%.1f huaxue:%.1f\n,(si)-num,(si)-yuwen,(si)-yingyu,(si)-shuxue,(si)-wuli,(si)-huaxue);sum(si)-yuwen(si)-yingyu(si)-shuxue(si)-wuli(si)-huaxue;printf(这位同学的平均分是%.1f\n,sum/5);printf(不及格有%d门\n,j);}j0;}}//*****************************************************************
void CHAzhao_Stu(struct Stu *s,int len)
{ //查找成绩优异的同学int i0;int sum0;for (i0;ilen;i){sum(si)-yuwen(si)-yingyu(si)-shuxue(si)-wuli(si)-huaxue;if (((si)-yuwen85 (si)-yingyu85 (si)-shuxue85 (si)-wuli85 (si)-huaxue85) || sum/595){printf(成绩优异的同学name:%s num:%d yuwen:%.1f yingyu:%.1f shuxue:%.1f wuli:%.1f huaxue:%.1f\n,(si)-name,(si)-num,(si)-yuwen,(si)-yingyu,(si)-shuxue,(si)-wuli,(si)-huaxue);}}
}//*****************************************************
int main (void)
{struct Stu s[4];int len4;Intput_Stu(s,len);printf (--------------------统计表-------------------\n);printf (name\tnum\tyuwen\tyingyu\tshuxue\twuli\thuaxue\n);Puts_Stu(s,len);
// float pPingjun_Stu(s,len); //调用平均数函数// printf (语文平均分是%.1f\n,p); //打印出平均数的结果// Flunk_Stu(s,len); // 调用求不及格科目的函数CHAzhao_Stu(s,4);return 0;
}