## C语言 练习题

news/2024/6/20 21:03:48/文章来源:https://blog.csdn.net/qq_58094522/article/details/137288875

1.统计二进制中1的个数

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

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

4.用“ * ”组成的X形图案

5.根据年份和月份判断天数

6.结语

## 1.统计二进制中1的个数

【题目内容】

### 方法1

``````#include <stdio.h>
int main()
{int num = 0;scanf("%d", &num);int count = 0;while (num){if ((num % 2) == 1){count++;}num = num / 2;}printf("%d\n", count);return 0;
}``````

### 方法2

``````#include <stdio.h>
int main()
{int i = 0;int count = 0;int n = 0;scanf("%d", &n);for (i = 0; i < 32; i++){if (((n >> i) & 1) == 1)count++;}printf("%d\n", count);return 0;
}``````

### 方法3

``````#include <stdio.h>
int main()
{int count = 0;int num = 0;scanf("%d",&num);while (num){num = num & (num - 1);count++;}printf("%d\n", count);return 0;
}``````

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

【题目内容】

1999 2299

### 方法1

``````#include <stdio.h>
int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);int i = 0;int count = 0;for (i = 0; i < 32; i++){if (((a >> i) & 1) != ((b >> i) & 1))count++;}printf("%d", count);return 0;
}``````

### 方法2

``````#include <stdio.h>
int main()
{int m = 0;int n = 0;int count = 0;scanf("%d %d", &m, &n);int sum = m ^ n;while (sum){sum = sum & (sum - 1);count++;}printf("%d\n", count);return 0;
}``````

## 3.打印整数二进制的奇数位和偶数位

【题目内容】

``````#include <stdio.h>
int main()
{int i = 0;int num = 0;scanf("%d", &num);//获取偶数位的数字for (i = 31; i >= 1; i -= 2){printf("%d ", (num >> i) & 1);}printf("\n");//获取奇数位的数字for (i = 30; i >= 0; i -= 2){printf("%d ", (num >> i) & 1);}return 0;
}``````

## 4.用“ * ”组成的X形图案

``````#include <stdio.h>
int main()
{int x = 0;while (scanf("%d", &x) == 1){int i = 0;for (i = 0; i < x; i++){int j = 0;for (j = 0; j < x; j++){if (i == j){printf("*");}else if ((i + j) == x - 1){printf("*");}elseprintf(" ");}printf("\n");}}return 0;
}``````

输入5和16两个数的结果如图所示，

## 5.根据年份和月份判断天数

【输入描述】

【输出描述】

``````#include <stdio.h>
int is_leap_year(int y)
{return (((y% 4 == 0) && (y % 100 != 0)) || (y % 400 == 0));
}
int main()
{int y = 0;int m = 0;int d = 0;int days[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };//0表示假//非0表示真//逻辑操作符 && || ! 的结构如果是真就是1，如果是假就是0while (scanf("%d%d", &y, &m) == 2){int d = days[m];if ((is_leap_year(y) == 1) && (m == 2)){d++;}printf("%d\n", d);}return 0;
}``````

## 6.结语

### R语言做两次分类，再做两两T检验，最终输出均值和pvalue

1.输入文件&#xff1a; 2.代码&#xff1a; setwd("E:/R/Rscripts/rG4相关绘图")# 加载所需的库 library(tidyverse)# 读取CSV文件 data <- read.csv("box-cds-ABD-不同类型rg4-2.csv", stringsAsFactors FALSE)# 组合Type1和Type2&#xff1a;通过…

### 【数据结构】新篇章 -- 顺序表

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;python从入门到精通&#xff0c;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文…

### HarmonyOS 应用开发之featureAbility接口切换particleAbility接口切换

featureAbility接口切换 FA模型接口Stage模型接口对应d.ts文件Stage模型对应接口getWant(callback: AsyncCallback<Want>): void; getWant(): Promise<Want>;ohos.app.ability.UIAbility.d.tslaunchWant: Want;startAbility(parameter: StartAbilityParameter, c…

### Maven是什么？ Maven的概念+作用

1.Maven的概念 Maven中文意思为“专家“、”内行“的意思&#xff0c;它是一个项目管理工具&#xff0c;可以对Java项目进行构建、依赖管理&#xff0c;通俗点 就是通过pom.xml文件的配置获取jar包不用手动的去添加jar包。 2.Maven的作用 对于大的工程&#xff0c;需要引用各…

### 系列学习前端之第 8 章：一文掌握 Vue2（核心基础篇）

1、 Vue简介 1.1 简介 Vue 是动态构建用户界面的渐进式 JavaScript 框架&#xff0c;Vue 只关注视图层&#xff0c; 采用自底向上增量开发的设计。采用组件化模式&#xff0c;提高代码复用率、且让代码更好维护。借鉴 Angular 的模板和数据绑定技术声明式编码&#xff0c;让编…

### 搜索与图论——Kruskal算法求最小生成树

kruskal算法相比prim算法思路简单&#xff0c;不用处理边界问题&#xff0c;不用堆优化&#xff0c;所以一般稀疏图都用Kruskal。 Kruskal算法时间复杂度O(mlogm) 每条边存结构体里&#xff0c;排序需要在结构体里重载小于号 判断a&#xff0c;b点是否连通以及将点假如集合中…

### 竞赛 python图像检索系统设计与实现

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; python图像检索系统设计与实现 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 该项目较为新颖&#xff0c…