C语言经典例题-5

news/2024/11/19 19:32:45/
1.交换数组

将数组A中的内容和数组B中的内容进行交换。(数组大小一样)

#include <stdio.h>void swap(int arr1[],int arr2[], int sz)
{int tmp = 0;for (int i = 0;i < sz;i++){tmp = arr1[i];arr1[i] = arr2[i];arr2[i] = tmp;}
}void print(int arr1[], int arr2[], int sz)
{for (int i = 0;i < sz;i++){printf("%d ", arr1[i]);}printf("\n");for (int i = 0;i < sz;i++){printf("%d ", arr2[i]);}
}int main()
{int arr1[] = { 3,13,23,33,43,53,63,73,83,93 };int arr2[] = { 2,12,22,32,42,52,62,72,82,92 };int sz = sizeof(arr1) / sizeof(arr1[0]);swap(arr1, arr2, sz);print(arr1, arr2, sz);return 0;
}
2.统计二进制中1的个数

写一个函数返回参数二进制中1的个数。

如:15 0000 1111 4个1

#include <stdio.h>//int Number(int b)
//{
//    int count = 0;
//    while (b)
//    {
//        if (b % 2 == 1)
//        {
//            count++;
//        }
//        b = b / 2;
//    }
//    return count;
//}int Number(int b)
{int count = 0;int i = 0;for (i = 0;i < 32;i++){if(((b >> i) & 1 )== 1){count++;}}return count;
}int main()
{int a = -1;//10000000 00000000 00000000 00000001   原码//11111111 11111111 11111111 11111110   反码//11111111 11111111 11111111 11111111   补码int ret = Number(a);printf("%d\n", ret);return 0;
}
3.交换两个变量(不创建临时变量)

不允许创建临时变量,交换两个整数的内容

#include <stdio.h>int main()
{int a = 10;int b = 20;printf("%d %d\n", a, b);a = a ^ b;b = a ^ b;a = a ^ b;printf("%d %d\n",a, b);return 0;
}
4.打印菱形
#include <stdio.h>int main()
{int i = 0;int line = 0;scanf("%d", &line);for (i = 0; i < line; i++){int j = 0;for (j = 0; j<line -1 - i; j++){printf(" ");}for (j = 0; j < 2 * i + 1; j++){printf("*");}printf("\n");}for (i = 0; i < line - 1; i++){int j = 0;for (j = 0; j <= i; j++){printf(" ");}for (j = 0; j < 2 * (line - 1 - i) - 1; j++){printf("*");}printf("\n");}return 0;
}
5.字符串左旋

题目内容:实现一个函数,可以左旋字符串中的k个字符。

例:

ABCD左旋一个字符得到BCDA

ABCD左旋两个字符得到CDAB

#include <stdio.h>void string_left_rotate(char* str, int k)
{int i = 0;int len = strlen(str);for (i = 0; i < k; i++){char tmp = *str;int j = 0;for (j = 0; j < len - 1; j++){*(str + j) = *(str + j + 1);}*(str + len - 1) = tmp;}
}int main()
{char arr[] = "ABCD";int k = 1;string_left_rotate(arr, k);printf("%s\n", arr);return 0;
}

http://www.ppmy.cn/news/1443667.html

相关文章

前端面试题大合集2----基础篇

目录 1、事件模型 2、什么是事件委托/事件代理 3、说一下Commonjs、AMD和CMD 4、Ajax原理 5、说一下XHR和Fetch的区别 6、实现一个once函数&#xff0c;传入函数只执行一次 7、js监听对象属性的改变 8、如何解决跨域问题 9、介绍js有哪些内置对象 10、介绍js有哪些方法…

Odoo:世界排名第一的免费开源设备资产(EAM)管理系统介绍

本文节选自Odoo亚太金牌服务机构【开源智造】所编写的《Odoo行业应用解决方案白皮书》如需获取完整的知识内容&#xff0c;请至开源智造官网免费获取。感谢网友一键三连&#xff1a;点赞、转发、收藏&#xff0c;您的支持是我们最大的前进动力&#xff01; 概述 实施全面的维护…

k8s:精通 Pod 操作的关键命令

在Kubernetes&#xff08;K8s&#xff09;中&#xff0c;Pod是最基本的部署单元&#xff0c;包含了运行应用所需要的容器、存储、网络等资源。精通Pod操作的关键命令对于有效地管理和维护Kubernetes集群至关重要。以下是一些关键的Pod操作命令&#xff1a; 查看Pod列表&#x…

在vue3项目中设置错误路径的统一跳转

在我们前端开发过程中&#xff0c;如果&#xff0c;访问到了错误的或者不存在的路径&#xff0c;那么会直接出现空白。在一个完整的项目中&#xff0c;应该给用户一些友好的提示&#xff0c;显示他访问到了错误的页面。 我们可以专门的创建一个错误界面的.vue文件&#xff0c;…

FebHost:科技企业如何规划并注册.AI域名?

为确保企业使用.AI域名的方式准确反映其对人工智能技术的关注&#xff0c;企业应考虑以下步骤&#xff1a; 了解法律和合规要求&#xff1a; 第一步是了解与 .AI 域名相关的独特法律和合规要求。由于.AI域名源于安圭拉&#xff0c;企业必须遵守安圭拉的限制和法律规定。这包括…

Linux连接不上Android设备

1: lsusb命令 可以通过使用lsusb命令来查看USB设备的相关信息. 总线号(Bus Number)&#xff1a;USB总线的编号。设备号(Device Number)&#xff1a;在该USB总线上&#xff0c;该设备的编号。厂商ID(Vendor ID)&#xff1a;设备的生产厂商编号&#xff0c;通常为十六进制数。产…

mysql数据库提权

一、udf提权 udf提权的解释 就是利用创建自定义函数&#xff08;sys_eval,sys_exec,do_system等&#xff09;&#xff0c; 在mysql中调用这个自定义的函数来实现获取对方主机的system的shell权限&#xff0c;从而达到提权的目的。 攻击者如果获取了mysql的root账号情况下&am…

武汉星起航:挂牌上海股权中心,开启资本新篇章助力跨境电商飞跃

2023年10月30日&#xff0c;武汉星起航电子商务有限公司在上海股权托管交易中心成功挂牌展示&#xff0c;标志着这家在跨境电商领域拥有卓越声誉的企业正式迈入了资本市场的大门。对于武汉星起航来说&#xff0c;这不仅是其发展历程中的一个重要里程碑&#xff0c;更是对其业务…