#import

#define PI 3.1415926

#define mianji(r) (PI*r*r)

#define avg(a,b) ((a+b)/2)

//定义学生结构体

typedef struct {

int num ;

char name[20];

char gender;

float score;

}Stu;

//定义一个点坐标的结构体CPoint,包含两个float成员x,y

typedef struct{

float x;

float y;

}CPoint;

void find(Stu stus[], long count);

void find(Stu stus[], long count)

{

for (int i = 0; i < count; i++) {

//判断性别是否为'm'

if

(stus[i].gender == 'm') {

stus[i].score+=10;

//判断分数是否超过100分,如果超过了直接记为100分

if

(stus[i].gender == 'm' && stus[i].score > 100){

stus[i].score = 100;

}

}

}

}

void changeStruct(Stu *p,Stu *p1, Stu *p2);

void changeStruct(Stu *p,Stu *p1, Stu *p2)

{

strcpy(p->name, p1->name);

strcpy(p1->name, p2->name);

strcpy(p2->name, p->name);

p->gender = p1->gender;

p1->gender = p2->gender;

p2->gender = p->gender;

p->num = p1->num;

p1->num = p2->num;

p2->num = p->num;

p->score = p1->score;

p1->score = p2->score;

p2->score =

p->score;

}

void print(Stu stu[],long count,int iscore,int hscore);

void print(Stu stu[],long count,int iscore,int hscore)

{

for (int i = 0; i < count; i++) {

if

(stu[i].score >= iscore

&& stu[i].score <=

hscore ) {

printf("%d %s %c %.2f", stu[i].num,stu[i].name,stu[i].gender,stu[i].score);

}

}

}

void sort(Stu *p,long count);

void sort(Stu *p,long count)

{

for (int i = 0; i < count-1; i++) {

for

(int j = 0; j < count - 1 - i; j++) {

if ((p+j)->num > (p+j+1)->num) {

Stu a = *(p+j);

*(p+j) = *(p+j+1);

*(p+j+1) = a;

}

}

}

for (int i = 0; i < count ; i++) {

printf("%d %s

%c %.2f\n", (p+i)->num,(p+i)->name,(p+i)->gender,(p+i)->score);

}

}

void sortname(Stu *p,long count);

void sortname(Stu *p,long count)

{

for (int i = 0; i < count-1; i++) {

for

(int j = 0; j < count - 1 - i; j++) {

if (strcmp((p+j)->name, (p+j+1)->name )> 0) {

Stu a = *(p+j);

*(p+j) = *(p+j+1);

*(p+j+1) = a;

}

}

}

for (int i = 0; i < count ; i++) {

printf("%d %s

%c %.2f\n", (p+i)->num,(p+i)->name,(p+i)->gender,(p+i)->score);

}

}

int main(int argc, const char * argv[])

{

//

// Student stu1 =

{1,"jiayuanfa",'m'};

// Student *p =

&stu1;

// printf("num = %d name = %s

gender = %c", (*p).num,(*p).name,(*p).gender);

// printf("num = %d name = %s

gender = %c", p->num,p->name,p->gender);

// //定义两个CPoint结构体变量m,n

//

// CPoint m = {45.4,56.9};

// CPoint n = {23.5,67.8};

//使用两个结构体指针分别指向m,n

// CPoint *p = &m;

// CPoint *p1 = &n;

// printf("x = %.2f y =

%.2f\n",p->x,p->y);

// printf("x = %.2f y =

%.2f\n", p1->x,p1->y );

// //1.计算两点之间的距离,1.勾弧定理 2.开放函数

sqrt

// float juli =

sqrt((p1->y-p->y)*(p1->y-p->y)+(p1->x-p->x)*(p1->x-p->x));

// printf("两点之间的距离为%.2f",

juli);

//

// //定义一个学生结构体变量stu

// Student stu = {1,"lan

ou",'m',95.6};

// //使用结构体指针指向结构体变量

// Student *p =

&stu;

// //先把所有的空格改变成下划线

// for (int i = 0; i <

strlen(p->name); i++) {

// if(p->name[i] == '

'){//注意用[]来表示name中得每一个元素

// p->name[i] = '_';

//

// } //将name中首字母改成大写 也就是ASCII-32

// if (i == 0) {

// p->name[i]-=32;

// }

// }

//

// printf("num = %d name = %s

gender = %c score = %.2f",

p->num,p->name,p->gender,p->score);

//

//2.使用指针查找学员数组中性别为男的学员,成绩增加10分,超过100分的记为100分

//创建学生结构体数组

// Stu stus [] ={

// {1,"saisai1",'m',120.0},

// {2,"saisai2",'f',88.9},

// {3,"saisai3",'m',67.8},

// {4,"saisai4",'m',89.0},

// {5,"saisai5",'m',34.7}

// };

// Stu *p = stus;

// unsigned long

count = sizeof(stus) /

sizeof(Stu) ;

// find (p,count);

//

// //打印数组中所有元素

// for (int i

= 0; i < count ; i++) {

// printf("num = %d name = %s

gender = %c score = %.2f\n",

stus[i].num,stus[i].name,stus[i].gender,stus[i].score);

// }

//1.写一个函数,交换两个结构体变量

// Stu one =

{1,"zhangsan",'m',78.9};

// Stu two =

{2,"lisi",'m',89.0};

// Stu three

= {0};

// changeStruct(&three, &one, &two);

// printf("%d

%s %c %.2f\n", one.num,one.name,one.gender,one.score);

// printf("%d

%s %c %.2f\n", two.num,two.name,two.gender,two.score);

// 2.有一学生数组,写以函数打印出指定分数段的学生信息

// Stu stu[3]

= {

// {1,"zhangsan",'m',56.8},

// {2,"lisi",'m',78.0},

// {3,"wangwu",'m',89.4}

// };

// int iscore

= 0, hscore = 0;

// printf("请输入指定的分数段:");

// scanf("%d%d",&iscore,&hscore);

// unsigned

long count = sizeof(stu) / sizeof(Stu);

// Stu *p =

stu;

// print(p,

count,iscore,hscore);

//3.有一个学生数组,写包含五个学生的一个函数,对学生排序(按学号从小到大),使用结构体指针操作数组元素

Stu stu[5] = {

{1,"chenwenjie",'m',67.89},

{2,"wangdoudou",'w',98.6},

{3,"xuguang",'m',78.5},

{4,"wangpeiei",'m',67.0},

{5,"lize",'m',89.7}

};

unsigned long count = sizeof(stu) / sizeof(Stu);

Stu *p = stu;

sortname(p, count);

sort(p, count);

//6.定义一个求圆的面积的宏

// int c =

0;

// printf("请输入圆的半径:");

// scanf("%d",&c);

// double a

=mianji(c);

// printf("%f\n",a);

//7.定义一个求两个数平均数的宏

int a = 0,b = 0;

printf("请输入两个数:");

scanf("%d%d",&a,&b);

double c = avg(a, b);

printf("%.2f\n",c);

return 0;

}

c语言指针填空题目,C语言指针题目实战相关推荐

  1. c语言答案填空选择,C语言试题配答案

    第I卷 选择题(共50分) 一.选择题(共25题,每题2分,共50分) 1. 以下正确的C语言常量是( ) A.0789 B.2e2.4 C.'abd' D.'\t' 2. 下列变量定义中合法的是(  ...

  2. C语言解题——指针解析(牛客网题目)

    指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分.指针也就是内存地址,指针变量是用来存放内存地址的变量,在同一CPU构架下,不同类型的指针变量所占用的存储单元长度是相同的,而存放数 ...

  3. c语言指针化简带分数,自动生成四则运算题目(C语言)

    Github项目地址:https://github.com/huihuigo/expgenerator 合作者:马文辉(3118005015).卢力衔(3118005013) 项目简介 1题目:实现一 ...

  4. c语言下标法改为指针变量法,C语言教材第七章指针实验.doc

    C语言教材第七章指针实验.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文 ...

  5. c语言中变量加1,c语言中,指针加1的情况.指针变量详细介绍

    指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址. 要搞清一个指针需要搞清指针的四方面的内容: 指针的类型, 指针所指向的 类型, 指针的值或者叫指针所指向的内存区, 还有指针本身所占 ...

  6. C语言逗号表达式赋值、野指针成因、用户标识符、字符串赋值的几个概念

    目录 题目 背景概念梳理 逗号表达式 野指针成因 用户标识符 字符串赋值 解题过程 正确答案 整体代码 参考链接 题目 一.输出x及a的结果 int main(){int x,a;x = (a=3, ...

  7. c语言野指针导致问题,C语言进阶之路(三)----野指针的产生原因及解决办法

    1.会产生野指针的做法 #include //这就是一种错误的写法 int main(){ int *p = NULL; p = (int *)malloc(); //释放P所指向的内存空间,但指针变 ...

  8. c语言函数指针封装函数,C语言之函数指针、回调函数的使用

    一.背景 首先看下如下代码,这个定义是放在头文件的,在程序中tCdrvCallbackFkt也定义了另一个变量,而且括号后面还跟定义了几个变量,不理解这个定义. typedef void (PUBLI ...

  9. Nwafu-OJ-1431 Problem b C语言实习题五——6.用指针实现子字符串提取

    问题 : C语言实习题五--6.用指针实现子字符串提取 时间限制: 1 Sec  内存限制: 128 MB 提交: 4667  解决: 2107 [提交][状态][讨论版] 题目描述 用指针实现:由键 ...

  10. Nwafu-OJ-1426 Problem W C语言实习题五——1.用指针实现排序

    问题 W: C语言实习题五--1.用指针实现排序 时间限制: 1 Sec  内存限制: 128 MB 题目描述 用指针实现:由键盘输入10个整数,将他们按由小到大的顺序排列. 输入 由键盘输入10个整 ...

最新文章

  1. 【项目上线】详细步骤03:一键安装lnmp环境,配置Nginx+Node+MongoDB+MySQL+PHP环境...
  2. JavaScript 字符串连接性能比较
  3. 关于百度地图js api的getCurrentPosition定位不准确的解决方法
  4. lambda,reserve list, list comprehension, string of slice
  5. swift基础知识一
  6. ISL22346WFRT20Z-TK 数字电位器 4路 I²C
  7. python自动抠图软件_比PS还好用!Python 20行代码批量抠图
  8. yum安装网络超时,尝试其他镜像
  9. uniapp ucharts统计图表
  10. jsp简介lamitry_[提拉米苏] 找人一起玩,今晚刚开的号
  11. 渐变背景怎么搞?2分钟教你制作渐变背景
  12. Youtube下载神器YT
  13. matlab向后误差,matlab-误差棒
  14. 入侵和攻击模拟(BAS)实践
  15. 2022.6.2 质数(素数)与合数
  16. mysql和linux的题目_最强Linux和Mysql面试题套餐,让你的面试无懈可击!
  17. 挑逗Java程序员的那些Scala绝技
  18. 图书馆管理系统心得体会
  19. openlayer画的圆比实际的小?4326和3857投影的不同
  20. 论坛邮件搜索群发软件_猫神qq邮件群发软件_美的电子邮件系统

热门文章

  1. 看懂 ,学会 .NET 事件的正确姿势-简单版
  2. JAVA中request.getParameterMap()用法笔记
  3. 剑指Offer(四):重建二叉树
  4. 用shell脚本一键搭建LNMP环境实战
  5. [iOS]swift版内购
  6. 仿58网,赶集网,百姓网swfupload图片上传效果(asp.net 2.0)
  7. 计算机的各种英语名称,计算机设备名称英语词汇
  8. python 调用控制台并获取返回结果_python脚本执行CMD命令并返回结果的例子
  9. linux修改服务器时间_操作系统基础解析:Windows和Linux 到底有何不同?
  10. Java I/O体系之Writer和Reader详细讲解