c语言指针填空题目,C语言指针题目实战
#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语言指针题目实战相关推荐
- c语言答案填空选择,C语言试题配答案
第I卷 选择题(共50分) 一.选择题(共25题,每题2分,共50分) 1. 以下正确的C语言常量是( ) A.0789 B.2e2.4 C.'abd' D.'\t' 2. 下列变量定义中合法的是( ...
- C语言解题——指针解析(牛客网题目)
指针,是C语言中的一个重要概念及其特点,也是掌握C语言比较困难的部分.指针也就是内存地址,指针变量是用来存放内存地址的变量,在同一CPU构架下,不同类型的指针变量所占用的存储单元长度是相同的,而存放数 ...
- c语言指针化简带分数,自动生成四则运算题目(C语言)
Github项目地址:https://github.com/huihuigo/expgenerator 合作者:马文辉(3118005015).卢力衔(3118005013) 项目简介 1题目:实现一 ...
- c语言下标法改为指针变量法,C语言教材第七章指针实验.doc
C语言教材第七章指针实验.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文 ...
- c语言中变量加1,c语言中,指针加1的情况.指针变量详细介绍
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址. 要搞清一个指针需要搞清指针的四方面的内容: 指针的类型, 指针所指向的 类型, 指针的值或者叫指针所指向的内存区, 还有指针本身所占 ...
- C语言逗号表达式赋值、野指针成因、用户标识符、字符串赋值的几个概念
目录 题目 背景概念梳理 逗号表达式 野指针成因 用户标识符 字符串赋值 解题过程 正确答案 整体代码 参考链接 题目 一.输出x及a的结果 int main(){int x,a;x = (a=3, ...
- c语言野指针导致问题,C语言进阶之路(三)----野指针的产生原因及解决办法
1.会产生野指针的做法 #include //这就是一种错误的写法 int main(){ int *p = NULL; p = (int *)malloc(); //释放P所指向的内存空间,但指针变 ...
- c语言函数指针封装函数,C语言之函数指针、回调函数的使用
一.背景 首先看下如下代码,这个定义是放在头文件的,在程序中tCdrvCallbackFkt也定义了另一个变量,而且括号后面还跟定义了几个变量,不理解这个定义. typedef void (PUBLI ...
- Nwafu-OJ-1431 Problem b C语言实习题五——6.用指针实现子字符串提取
问题 : C语言实习题五--6.用指针实现子字符串提取 时间限制: 1 Sec 内存限制: 128 MB 提交: 4667 解决: 2107 [提交][状态][讨论版] 题目描述 用指针实现:由键 ...
- Nwafu-OJ-1426 Problem W C语言实习题五——1.用指针实现排序
问题 W: C语言实习题五--1.用指针实现排序 时间限制: 1 Sec 内存限制: 128 MB 题目描述 用指针实现:由键盘输入10个整数,将他们按由小到大的顺序排列. 输入 由键盘输入10个整 ...
最新文章
- 【项目上线】详细步骤03:一键安装lnmp环境,配置Nginx+Node+MongoDB+MySQL+PHP环境...
- JavaScript 字符串连接性能比较
- 关于百度地图js api的getCurrentPosition定位不准确的解决方法
- lambda,reserve list, list comprehension, string of slice
- swift基础知识一
- ISL22346WFRT20Z-TK 数字电位器 4路 I²C
- python自动抠图软件_比PS还好用!Python 20行代码批量抠图
- yum安装网络超时,尝试其他镜像
- uniapp ucharts统计图表
- jsp简介lamitry_[提拉米苏] 找人一起玩,今晚刚开的号
- 渐变背景怎么搞?2分钟教你制作渐变背景
- Youtube下载神器YT
- matlab向后误差,matlab-误差棒
- 入侵和攻击模拟(BAS)实践
- 2022.6.2 质数(素数)与合数
- mysql和linux的题目_最强Linux和Mysql面试题套餐,让你的面试无懈可击!
- 挑逗Java程序员的那些Scala绝技
- 图书馆管理系统心得体会
- openlayer画的圆比实际的小?4326和3857投影的不同
- 论坛邮件搜索群发软件_猫神qq邮件群发软件_美的电子邮件系统
热门文章
- 看懂 ,学会 .NET 事件的正确姿势-简单版
- JAVA中request.getParameterMap()用法笔记
- 剑指Offer(四):重建二叉树
- 用shell脚本一键搭建LNMP环境实战
- [iOS]swift版内购
- 仿58网,赶集网,百姓网swfupload图片上传效果(asp.net 2.0)
- 计算机的各种英语名称,计算机设备名称英语词汇
- python 调用控制台并获取返回结果_python脚本执行CMD命令并返回结果的例子
- linux修改服务器时间_操作系统基础解析:Windows和Linux 到底有何不同?
- Java I/O体系之Writer和Reader详细讲解