学习c语言第十三天(结构体)

一.结构体声明

结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。

描述复杂对象。

结构体成员可以是标量、数组、指针、结构体。

定义和初始化:

struct peo
{char namer[20];char tele[12];char sex[5];int high;
};
struct peo
{char namer[20];char tele[12];char sex[5];int high;
}p1,p2;//p1,p2是创建的变量
void print(struct peo *p1)
{printf("%s %s %s %d\n",p1->name,p1->tele, p1->sex,p1->high);
}
void pri(struct peo p1)
{printf("%s %s %s %d\n", p1.name, p1.tele, p1.sex, p1.high);
}
int main()
{struct peo p1 = {"张三","15066296762","男",181};printf("%s %s %s %d\n", p1.name,p1.tele,p1.sex,p1.high);print(&p1);pri(p1);return 0;
}

二.结构体传参

传指针节省空间        穿内容需要copy一份

函数传参的时候,参数是需要压栈的,
如果传递一个结构体对象的时候,结构体过大,参数压栈的系统开销比较大,所以会导致性能的下降。结构体传参的时候,要传结构体的地址。

三.练习

1.下面哪个是位操作符:(A)


A.&
B .&&

C.||

D.|

2.下面代码的结果是:()

#include <stdio.h>int main()
{int a, b, c;a =5;c=++a;b=++c,c++,++a,a++;//逗号表达式,=优先级大于,b+= a++ +c;printf("a=%d b=%d c=%d\n:",a, b, c);return 0;
}

a=9 b=23 c=8

3.//写一个函数返回参数二进制中1的个数

第一种方法

int sum_1(unsigned int n)
{int count = 0;while (n){if (n % 2 == 1){count++;}n /=2;}return count;
}
int main()
{int n = 0;scanf("%d",&n);int sum=sum_1(n);printf("%d",sum);return 0;
}

第二种方法 

第三种方法

n=n&(n-1)每运行一次可以去掉n最右边的0n=15        1111n-1=14     1110n=1110int sum_1( int n)
{int count = 0;while (n){n = n & (n - 1);count++;}return count;
}//判断一个数是不是2的n次方,化成二进制只有一个一
n&(n-1)==0则为2的n次方

4.求两个数二进制中不同位的个数


编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
输入例子:
1999 2299
输出例子:7

int count_diff_bit(int m,int n)
{int count = 0;int i = 0;for (i = 0; i < 32; i++){if ((m >> i & 1) != (n >> i & 1)){count++;}}return count;
}
int main()
{int m = 0;int n = 0;scanf("%d %d",&m,&n);int ret = count_diff_bit(m,n);printf("%d",ret);return 0;
}
第二种方法
int count_diff_bit(int m,int n)
{int count = 0;int ret = m ^ n;//相同为0,相异为1while (ret){ret = ret & (ret - 1);count++;}return count;
}

5.打整数二进制的奇数位和偶数位

​​​​int main()
{int i = 0;int n = 0;scanf("%d",&n);for (i = 30; i >= 0; i -= 2){printf("%d",n>>i&1);}for (i = 31; i >= 0; i -= 2){printf("%d", n >> i & 1);}return 0;
}

6.        D

7.<

全局变量、静态变量不初始化的时候默认值是0;

局部变量是随机值

sizeof返回的结果是size_t类型的,是无符号整型;相当于非常大的整数

8.D

9.打印X型图案

10.获得月份天数

11.KiKi想知道已经给出的三条边a,b,c能否构成三角形,如果能构成三角形,判断三角形的类型(等边三角形、等腰三角形或普通三角形)。 

int main()
{int a = 0;int b = 0;int c = 0;scanf(" %d %d %d",&a,&b,&c);if (a + b > c && a + c > b && b + c > a){if (a == b && b == c){printf("等边三角形");}else if ((a == b && c != a) || (a == c && b != c) || (b == c && c != a)){printf("等腰三角形");}elseprintf("是三角形");}else{printf("不是三角形");}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51387.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

支付交易——支付渠道与路由引擎

摘要 支付渠道与路由引擎是现代支付系统中关键的组成部分。支付渠道指的是连接商家和支付网络的通道,如信用卡、支付宝等。而路由引擎则负责根据交易特征和规则,将支付请求导向最合适的渠道,以确保安全高效的资金转移。这些系统不仅简化了支付过程,还增强了支付系统的灵活…

git 迁移仓库的方法

git Git是一个开源的分布式版本控制系统&#xff0c;由Linus Torvalds在2005年创建&#xff0c;用于有效、高速地处理从小到大的项目管理。它最初是为Linux内核开发而设计的&#xff0c;但很快被广泛用于各种项目。 以下是Git的一些主要特性&#xff1a; 分布式架构&#xff…

Python设计模式 - 工厂方法模式

定义 工厂方法模式是一种创建型设计模式&#xff0c;它定义一个创建对象的接口&#xff0c;让其子类来处理对象的创建&#xff0c;而不是直接实例化对象。 结构 抽象工厂&#xff08;Factory&#xff09;&#xff1a;声明工厂方法&#xff0c;返回一个产品对象。具体工厂类都…

4.JAVA-运算符

算数运算符 隐式类型转换 强制转换 字符串操作 字符相加 小结 自增自减运算符 赋值运算符 关系运算符 逻辑运算符 短路逻辑运算 三元运算符 运算符优先级 这里小括号优先于所有&#xff0c;所以想要哪一个优先运算&#xff0c;就可以将哪一个用小括号扩起来&#xff0c;比较方便…

酒店押金原路退回系统开通方法,手机查看报表

一、酒店押金管理有哪些&#xff1f; 1.渠道有银行预授权 2.微信押金支付 3.酒店押金系统 4.支付押金管理 二、专业酒店押金管理VS银行 序号功能专业押金系统银行预授权1收款方式支持微信、支付宝、银联app、信用卡、花呗需要带银行卡刷卡2资金安全区分房费和押金&#x…

qt多线程

QFuture<int> future QtConcurrent::run(someFunction, 42);QFutureWatcher<int> watcher; watcher.setFuture(future);// 连接信号槽以处理任务完成后的操作 QObject::connect(&watcher, &QFutureWatcher<int>::finished, [&]() {int result …

PermissionError: [Errno 13] Permission denied

PermissionError: [Errno 13] Permission denied 目录 PermissionError: [Errno 13] Permission denied 【常见模块错误】 【错误原因】 【解决方案】 检查文件或目录的权限 确保文件路径正确 关闭其他占用文件的程序 运行程序时提升权限 更改 Python 的工作目录 示例代…

强化学习算法之策略迭代动态规划算法——以悬崖漫步环境(CliffWalking)为例

import copy class CliffWalkingEnv:def __init__(self,ncol12,nrow4):self.ncolncol#定义网格世界的列self.nrownrow#定义网格世界的行self.Pself.createP()#转移矩阵P[state][action][(p,next_state,reward,done)]包含下一个状态和奖励def createP(self):P[[[]for i in range…

[C#面对对象] 之抽象方法 虚方法 接口

1.虚方法 我的理解 "法国的“巴黎公社”&#xff0c;俄国的“十月革命”&#xff0c;都是把主要战略方向首先夺取中心城市 " 设计为 一个父类中的虚方法(virtual),这个虚方法已经有实现了(就是通过暴力革命夺取的方法 最终返回 城市)然而秋收暴动(子类)失败…

linux安装hive

linux安装hive 安装Java&#xff1a;下载Hive&#xff1a;解压Hive&#xff1a;配置环境变量&#xff1a;初始化Hive&#xff1a;启动Hive&#xff1a; 在Linux上安装Hive需要几个步骤&#xff0c;包括安装Java、下载并解压Hive、配置环境变量等。以下是基于最常用的Hive版本&a…

什么是职场?如何在职场中提升自己的情商?

职场这一概念&#xff0c;实质上是指在工作场所中&#xff0c;员工与员工之间、员工与组织之间相互发生作用和影响的一个特定环境。它不仅仅局限于办公室&#xff0c;还延展到会议室、休息室、餐厅等场所&#xff0c;这些场所交织成了一个错综复杂的职场生态系统。在这个系统中…

哪里可以查找短视频素材?6个素材查找下载渠道分享!

在短视频的风靡浪潮中&#xff0c;不少创作者纷纷投身于这一领域&#xff0c;无论是分享生活点滴还是进行商业宣传&#xff0c;高质量的短视频内容总能吸引众多观众的目光。然而&#xff0c;精良的短视频制作离不开优质的素材支持。本文将为大家介绍6个优秀的高质量短视频素材下…

POJ2739.Sum of Consecutive Prime Numbers

欧拉筛处理2-1e4的质数&#xff0c;再用尺取法即可 // Problem: Sum of Consecutive Prime Numbers // Contest: POJ - Japan 2005 // URL: http://poj.org/problem?id2739 // Memory Limit: 65 MB // Time Limit: 1000 ms // // Powered by CP Editor (https://cpeditor.or…

2024 Linux 运维面试题分享-2

1、shell编程常用哪些脚本   自动备份&#xff0c;lnmp一键安装&#xff0c;for循环&#xff0c;case语句&#xff0c;if判断&#xff0c;数据库自动备份脚本&#xff0c;日常日志切割&#xff0c;自动化安装lnmp,安装nginx&#xff0c;redis&#xff0c;tomcat&#xff0c;自…

docker查询容器与镜像,删除容器与镜像

sudo docker ps -a sudo docker stop id 停止容器 sudo docker-compose up -d 进入容器&#xff0c;启动容器 docker ps -a 查询所有容器 docker images 查询所有镜像 sudo docker rm 容器id 删除容器 sudo docke rmi 镜像id 删除镜像

[240727] Qt Creator 14 发布 | AMD 推迟 Ryzen 9000芯片发布

目录 Qt Creator 14 发布Qt Creator 14 版本发布&#xff0c;带来一系列新功能和改进终端用户可通过命令行方式查看此新闻终端用户可通过命令行方式安装软件&#xff1a; AMD 推迟 Ryzen 9000芯片发布 Qt Creator 14 发布 Qt Creator 14 版本发布&#xff0c;带来一系列新功能…

高速板开源项目学习(二)

一定要找一个高速板写的详细的等长规范&#xff1a; 看的出来&#xff0c;这位小哥也是卡着嘉立创最小免费钻孔大小来打孔的&#xff1a; 这里的天线&#xff0c;他做了禁止铺铜和走线处理&#xff0c;模拟信号在这里容易遇到干扰&#xff0c;这样是正确的&#xff0c;值得去学…

tensorflow数据相关总结----学习笔记(四)

标量 标量由只有一个元素的张量表示。 下面的代码将实例化两个标量&#xff0c;并执行一些熟悉的算术运算&#xff0c;即加法、乘法、除法和指数。 import tensorflow as tfx tf.constant(3.0) y tf.constant(2.0)print(x y) print(x * y) print(x / y) print(x ** y) &qu…

人事面试:

1&#xff1a;工资构成。 2&#xff1a;绩效考核标准 3&#xff1a;具体的福利待遇 十部贴 4&#xff1a;工资是前还是税后 5&#xff1a;一年 几 薪水 6&#xff1a;试用期的时间 和待遇 7&#xff1a;扣钱的标准 8&#xff1a;发工资的时间

《知识点扫盲 · 线程池基础篇》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…