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;
}

方法二
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语言指针基础题(二)
目录 例题一题目解析及答案 例题二题目解析及答案 例题三题目解析及答案 例题四题目解析及答案 例题五题目解析及答案 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 🥸🥸…...

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

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

阶段十-java新特性
JDK9新特性 1.模块化系统 jar包结构的变化 jar -》model -》package -》class 通过不同的模块进行开发 每个模块都有自己的模块配置文件module-info.java 2.JShell JDK9自带的命令行开发,在进行简单的代码调试时可以直接编译使用 可以定义变量,方法&…...
win10重装系统历程
win10系统更新出问题了,重置系统卡死,遂决定重装。 微软官方工具制作U盘启动盘, 进行到分区时,一冲动把盘都格式化了, 后面了解到,即便进不了系统也有办法备份数据的... 进行到安装时,提示W…...

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

webrtc网之sip转webrtc
OpenSIP是一个开源的SIP(Session Initiation Protocol)服务器,它提供了一个可扩展的基础架构,用于建立、终止和管理VoIP(Voice over IP)通信会话。SIP是一种通信协议,用于建立、修改和终止多媒体…...

【Spring】依赖注入之属性注入详解
前言: 我们在进行web开发时,基本上一个接口对应一个实现类,比如IOrderService接口对应一个OrderServiceImpl实现类,给OrderServiceImpl标注Service注解后,Spring在启动时就会将其注册成bean进行统一管理。在Co…...
6-tornado配置文件的使用(命令行解析、文件设置)
tornado.options options 可以让服务运行前提前设置参数,而常见的2种设置参数方式为:1. 命令行设置 2. 文件设置命令行解析 使用tornado.options.define前定义,通常在模块的顶层。 然后,可以将这些选项作为以下属性的属性进行访…...

k8s ingress service endpoints 解决微信服务器验证问题(内网穿透)
最近公司要搞微信公众号开发,想用自己公司内网的电脑调试,但涉及到微信服务器地址(URL)验证的问题(内网穿透),查了网上一堆文章有推荐ngrok的,但被微信墙了;有推荐sunny-ngrok的,免费…...
postgresql-effective_cache_size参数详解
在 PostgreSQL 中,effective_cache_size 是一个配置参数,用于告诉查询规划器关于系统中可用缓存的估计信息。这个参数并不表示实际的内存量,而是用于告诉 PostgreSQL 查询规划器系统中可用的磁盘缓存和操作系统级别的文件系统缓存的大小。它用…...
CUDA锁页内存的使用
1.定义指针变量 float *host_Weights; // 锁页内存 float *dev_Weights; // 设备端内存2.分配内存 cudaHostAlloc((void**)&host_Weights, numInputs * sizeof(float), cudaHostAllocDefault); // 用锁页内存,可以有效加快数据传递速度 cudaMalloc((vo…...
python常见代码用法
1.result [[]] * n 和 result [[] for _ in range(n)] 辨析 n 3 result [[]] * nprint(result) # 输出:[[], # [], # []]print(result[0] is result[1] is result[2]) # 输出:True* 运算符进行复制,这些空列表实际…...

MTU TCP-MSS(转载)
MTU MTU 最大传输单元(Maximum Transmission Unit,MTU)用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小。 是包或帧的最大长度,一般以字节记。如果MTU过大,在碰到路由器时…...
【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章_数据处理之增删改
视频链接:【MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板】 文章目录 第11章_数据处理之增删改1. 插入数据1.1 实际问题1.2 方式1:VALUES的方式添加1.3 方式2:将查询结果插入到表中 2. 更…...
ANSYS常见error解答(转)
根据SimC结构工作室这段时间的答疑总结,给出了部分关于ANSYS常见error的解释说明,希望对大家有所帮助。 1.KBC is not a recognized BEGIN command, abbreviation, or macro.This command will be ignored. 答:ANSYS 对命令的使用有严格的规…...

【Let‘s Encrypt SSL】使用 acme.sh 给 Nginx 安装 Let’s Encrypt 提供的免费 SSL 证书
安装acme.sh 安装 acme.sh 并设置邮箱用来接受重要通知,如证书快过期未更新通知 curl https://get.acme.sh | sh -s emailmyexample.com执行命令后几秒就安装好了,如果半天没有反应请 CtrlC 后重新执行命令。acme.sh 安装在 ~/.acme.sh 目录下…...

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仓库,里面有docker compose可以快速启动Nacos集群。 文章目录 一. 脚本概况二. 自定义修改1. example/cluster-hostname.yaml2. example/.env3. env/mysql.env4. env/nacos-hostname.env 三、运行四、nginx反向代理,负载均衡…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...