当前位置: 首页 > news >正文

C语言指针基础题(二)

目录

  • 例题一
    • 题目解析及答案
  • 例题二
    • 题目解析及答案
  • 例题三
    • 题目解析及答案
  • 例题四
    • 题目解析及答案
  • 例题五
    • 题目解析及答案

感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接
🐒🐒🐒 个人主页
🥸🥸🥸 C语言
🐿️🐿️🐿️ C语言例题
🐣🐓🏀 python

例题一

写一个函数打印arr数组的内容,不使用数组下标,使用指针。
arr是一个整形一维数组

题目解析及答案

这道题的核心就在于数组名是数组首元素地址,也就是*(arr+1)=arr[1]
详细可以看C语言深入理解指针(非常详细)(二)
方法一

int main()
{int arr[] = { 1,2,3,4,5,6,7,8,9,10 };int* p = arr;int sz = sizeof(arr) / sizeof(int);for(int i=0;i<sz;i++){printf("%d ", *(p + i));}return 0;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/41234a3286624acaa07f5c850ae06052.png)

方法二

int main()
{int arr[] = {1,2,3,4,5,6,7,8,9,10};int* p = arr; for(int i = 0; i < sizeof(arr)/sizeof(arr[0]); i++){printf("%d ", *p);  ++p;                 }return 0;
}

在这里插入图片描述

例题二

写一个函数,可以逆序一个字符串的内容

题目解析及答案

方法一

void Reverse(char* str)
{char* left = str;char* right = str + strlen(str)-1;while(left < right){char temp = *left;*left = *right;*right = temp;++left;--right;}
}
int main()
{char str[] = "hello jack";Reverse(str);return 0;
}

在这里插入图片描述

这个方法其实就是找到字符串中左右字符的地址,通过解引用实现交换

注意:如果是在线OJ时,必须要考虑循环输入,因为每个算法可能有多组测试用例进行验证,参考以下main函数写法

方法二

int main()
{char str[101] = {0};while(gets(str)){Reverse(str);printf("%s\n", str);memset(str, 0, sizeof(str)/sizeof(str[0]));}return 0;
}

关于memset的实现在之前C语言内存函数有写过

例题三

用C语言在屏幕上输出以下图案:
在这里插入图片描述

题目解析及答案

这是一个对称图形,其中有图形由空格符号还有*号组成

号以奇数的规律变化,空格符号和号在同一排的总数加起来为13

通过图形规律可以知道上半图形中 *号可以以循环for(i=1;i<=13;i=i+2)来表示

对于空格符号,左半部分的规律是j<=(13-i)/2,j++,右半部分则是j>=(14-(13-i)/2)

方法一

int main()
{int i = 1, j = 1;for (i = 1; i <= 13; i = i + 2){while (j <= 13){if (j<=(13 - i) / 2 || j>=(14 - (13 - i) / 2)){printf(" ");j++;}else{printf("*");j++;}}printf("\n");j = 1;}for (i = 11; i >= 1; i = i - 2){while (j <= 13){if (j <= (13 - i) / 2 || j >= (14 - (13 - i) / 2)){printf(" ");j++;}else{printf("*");j++;}}printf("\n");j = 1;}return 0;}

在这里插入图片描述
方法二

int main()
{int line = 0;int i = 0;scanf("%d", &line);//输入7for(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;
}

在这里插入图片描述

例题四

求出0~100000之间的所有“水仙花数”并输出。
“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5 ^3+3 ^3,则153是一个“水仙花数”。

题目解析及答案

我们用i来表示水仙花数,通过for循环来表示0到100000的水仙花数

为了知道水仙花数有多少位,我们需要用到一个while循环,循环判断条件位水仙花数的余数不为0,因此我们使用一个变了j来保存水仙花数i,然后再进行判断,既while(j%10)

而为了计算有多少位,我们需要对每次循环用count来记录,然后每次循环让水仙花数减少一位数,也就是count++,j=j/10

之后我们再让j重新等于i,来进行判断是否是水仙花数

我们用一个变量sum来计算每位数的n次方总和,也就是sum=sum+pow(j%10,count)

最后就是判断了

#include<math.h>
int main()
{int i = 0, j = 0, sum = 0,count=0;for (i = 0; i < 100000; i++){j = i;while (j % 10){count++;j = j / 10;}j = i;for (int k = count; k >= 0; k--){sum = sum + pow(j % 10, count);//pow数计算一个数的次方是多少j = j / 10;}if (i == sum)printf("%d ", i);sum = 0;count = 0;}return 0;
}

在这里插入图片描述
这道题for循环用的比较多,如果对for循环有疑惑的可以看我之前写的一篇文章for和do-while循环以及break和continue语句

例题五

求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,

例如:2+22+222+2222+22222

题目解析及答案

我们可以看到aa只是在a10的基础上再加上a,也就是aa=a10+a,aaa=aa*10+a

int main()
{int n = 0,a=0,b=0,Sn=0;scanf("%d %d", &n,&a);b = a;for (int i = 0; i < n; i++){Sn = Sn + b;b = b * 10 + a;}printf("%d", Sn);return 0;
}

在这里插入图片描述

相关文章:

C语言指针基础题(二)

目录 例题一题目解析及答案 例题二题目解析及答案 例题三题目解析及答案 例题四题目解析及答案 例题五题目解析及答案 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 &#x1f412;&#x1f412;&#x1f412; 个人主页 &#x1f978;&#x1f978;&#x1f…...

物奇平台MIC配置与音频通路关系

物奇平台MIC配置与音频通路关系 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)&#xff1f;可加我微信hezkz17, 本群提供音频技术答疑服务&#xff0c;群赠送语音信号处理降噪算法&#xff0c;蓝牙耳机音频&#xff0c;DSP音频项目核心开发资料, 1 255代表无效&am…...

外包干了3年,技术退步太明显了。。。。。

先说一下自己的情况&#xff0c;本科生生&#xff0c;18年通过校招进入武汉某软件公司&#xff0c;干了差不多3年的功能测试&#xff0c;今年国庆&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能…...

阶段十-java新特性

JDK9新特性 1.模块化系统 jar包结构的变化 jar -》model -》package -》class 通过不同的模块进行开发 每个模块都有自己的模块配置文件module-info.java 2.JShell JDK9自带的命令行开发&#xff0c;在进行简单的代码调试时可以直接编译使用 可以定义变量&#xff0c;方法&…...

win10重装系统历程

win10系统更新出问题了&#xff0c;重置系统卡死&#xff0c;遂决定重装。 微软官方工具制作U盘启动盘&#xff0c; 进行到分区时&#xff0c;一冲动把盘都格式化了&#xff0c; 后面了解到&#xff0c;即便进不了系统也有办法备份数据的... 进行到安装时&#xff0c;提示W…...

【知识积累】深度度量学习综述

原文指路&#xff1a;https://hav4ik.github.io/articles/deep-metric-learning-survey Problem Setting of Supervised Metric Learning 深度度量学习是一组旨在衡量数据样本之间相似性的技术。 Contrastive Approaches 对比方法的主要思想是设计一个损失函数&#xff0c;直…...

webrtc网之sip转webrtc

OpenSIP是一个开源的SIP&#xff08;Session Initiation Protocol&#xff09;服务器&#xff0c;它提供了一个可扩展的基础架构&#xff0c;用于建立、终止和管理VoIP&#xff08;Voice over IP&#xff09;通信会话。SIP是一种通信协议&#xff0c;用于建立、修改和终止多媒体…...

【Spring】依赖注入之属性注入详解

前言&#xff1a; 我们在进行web开发时&#xff0c;基本上一个接口对应一个实现类&#xff0c;比如IOrderService接口对应一个OrderServiceImpl实现类&#xff0c;给OrderServiceImpl标注Service注解后&#xff0c;Spring在启动时就会将其注册成bean进行统一管理。在Co…...

6-tornado配置文件的使用(命令行解析、文件设置)

tornado.options options 可以让服务运行前提前设置参数&#xff0c;而常见的2种设置参数方式为&#xff1a;1. 命令行设置 2. 文件设置命令行解析 使用tornado.options.define前定义&#xff0c;通常在模块的顶层。 然后&#xff0c;可以将这些选项作为以下属性的属性进行访…...

k8s ingress service endpoints 解决微信服务器验证问题(内网穿透)

最近公司要搞微信公众号开发&#xff0c;想用自己公司内网的电脑调试&#xff0c;但涉及到微信服务器地址(URL)验证的问题&#xff08;内网穿透&#xff09;&#xff0c;查了网上一堆文章有推荐ngrok的&#xff0c;但被微信墙了&#xff1b;有推荐sunny-ngrok的&#xff0c;免费…...

postgresql-effective_cache_size参数详解

在 PostgreSQL 中&#xff0c;effective_cache_size 是一个配置参数&#xff0c;用于告诉查询规划器关于系统中可用缓存的估计信息。这个参数并不表示实际的内存量&#xff0c;而是用于告诉 PostgreSQL 查询规划器系统中可用的磁盘缓存和操作系统级别的文件系统缓存的大小。它用…...

CUDA锁页内存的使用

1.定义指针变量 float *host_Weights; // 锁页内存 float *dev_Weights; // 设备端内存2.分配内存 cudaHostAlloc((void**)&host_Weights, numInputs * sizeof(float), cudaHostAllocDefault); // 用锁页内存&#xff0c;可以有效加快数据传递速度 cudaMalloc((vo…...

python常见代码用法

1.result [[]] * n 和 result [[] for _ in range(n)] 辨析 n 3 result [[]] * nprint(result) # 输出&#xff1a;[[], # [], # []]print(result[0] is result[1] is result[2]) # 输出&#xff1a;True* 运算符进行复制&#xff0c;这些空列表实际…...

MTU TCP-MSS(转载)

MTU MTU 最大传输单元&#xff08;Maximum Transmission Unit&#xff0c;MTU&#xff09;用来通知对方所能接受数据服务单元的最大尺寸&#xff0c;说明发送方能够接受的有效载荷大小。 是包或帧的最大长度&#xff0c;一般以字节记。如果MTU过大&#xff0c;在碰到路由器时…...

【ARM Trace32(劳特巴赫) 高级篇 20 -- SNOOPer 使用介绍】

请阅读【Trace32 ARM 专栏导读】 文章目录 Trace32 SNOOPer 介绍SNOOPer 主要功能:SNOOPer 使用场景SNOOPer.ERRORSTOPSNOOPer.ModeSNOOPer.PCSNOOPer.RateSNOOPer.SELectSNOOPer.SIZESNOOPer.TDelaySNOOPer.TOutSNOOPer.TValueSNOOPer PC 采样Trace32 SNOOPer 介绍 在 Laut…...

MySQL笔记-第11章_数据处理之增删改

视频链接&#xff1a;【MySQL数据库入门到大牛&#xff0c;mysql安装到优化&#xff0c;百科全书级&#xff0c;全网天花板】 文章目录 第11章_数据处理之增删改1. 插入数据1.1 实际问题1.2 方式1&#xff1a;VALUES的方式添加1.3 方式2&#xff1a;将查询结果插入到表中 2. 更…...

ANSYS常见error解答(转)

根据SimC结构工作室这段时间的答疑总结&#xff0c;给出了部分关于ANSYS常见error的解释说明&#xff0c;希望对大家有所帮助。 1.KBC is not a recognized BEGIN command, abbreviation, or macro.This command will be ignored. 答&#xff1a;ANSYS 对命令的使用有严格的规…...

【Let‘s Encrypt SSL】使用 acme.sh 给 Nginx 安装 Let’s Encrypt 提供的免费 SSL 证书

安装acme.sh 安装 acme.sh 并设置邮箱用来接受重要通知&#xff0c;如证书快过期未更新通知 curl https://get.acme.sh | sh -s emailmyexample.com执行命令后几秒就安装好了&#xff0c;如果半天没有反应请 CtrlC 后重新执行命令。acme.sh 安装在 ~/.acme.sh 目录下&#xf…...

XML学习及应用

介绍XML语法及应用 1.XML基础知识1.1什么是XML语言1.2 XML 和 HTML 之间的差异1.3 XML 用途 2.XML语法2.1基础语法2.2XML元素2.3 XML属性2.4XML命名空间 3.XML验证3.1xml语法验证3.2自定义验证3.2.1 XML DTD3.2.2 XML Schema3.2.3PCDATA和CDATA区别3.2.4 参考 4.xml解析4.1准备…...

Docker部署Nacos集群并用nginx反向代理负载均衡

首先找到Nacos官网给的Github仓库&#xff0c;里面有docker compose可以快速启动Nacos集群。 文章目录 一. 脚本概况二. 自定义修改1. example/cluster-hostname.yaml2. example/.env3. env/mysql.env4. env/nacos-hostname.env 三、运行四、nginx反向代理&#xff0c;负载均衡…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...