C语言习题练习10--指针

news2025/8/16 18:29:45

1.代码结果

#include <stdio.h>
int main()
{
  int arr[] = {1,2,3,4,5};
  short *p = (short*)arr;
  int i = 0;
  for(i=0; i<4; i++)
  {
    *(p+i) = 0;
  }
   
  for(i=0; i<5; i++)
  {
    printf("%d ", arr[i]);
  }
  return 0;
}

 正常:0001--00 02--00 03--00 04--00 05

数组内部是倒着放的(小端字节序存储:倒着放)

一个内存地址对应一个字节(Byte): 0xFF 或者说 8-bit:11110000b。

指针变量占4个字节时有误,并不是整型数字在c中占4个字节指针变量才是4个字节,而是地址编号在32位系统里是有32位组成,在64系统里是由64位组成,所以指针变量在32位占用4字节,在64位占8个字节,当然在64位可能也占4个字节,这还跟编译器有关。还有不能说一个地址占4个字节,一个地址只占一个字节,只能说数据类型占几个字节,比如,整型int i = 9,我们说整型占用4个字节,而这个整型变量的地址是这四个字节的首字节地址。

1个地址=1个字节=8位二进制=216进制

1个字节八位的二进制=2位16进制位

1个16进制位=4个2进制位

1个汉字一般占两个字节 

指针-指针得到是指针和指针之间的元素个数

二进制,八进制,十进制和十六进制之间的互相转换【超详细】! - 明明724 - 博客园 (cnblogs.com)

2.写一个函数打印arr数组的内容,不使用数组下标,使用指针。

(7条消息) C语言 strlen(str)和sizeof(arr)的区别_Devour123的博客-CSDN博客

//写一个函数打印arr数组的内容,不使用数组下标,使用指针。
//arr是一个整形一维数组
//
void print(int* p, int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ",p[i]);//*(p+i)=p[i]
	}
	printf("\n");
}

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	print(arr, sz);

	return 0;
}

 3.写一个逆序函数

void reverse(char* str)
{
    char* left = str;
    char* right = str + strlen(str) - 1;

    while (left < right)
    {
        char tmp = *left;
        *left = *right;
        *right = tmp;
        left++;
        right--;
    }
}

int main()
{
    char arr[10000] = { 0 };
    //scanf("%s", arr);//这里有问题,scanf默认读取的时候遇到空格就结束了
    gets(arr);
    //scanf("%[^\n]", arr);
    reverse(arr);
    printf("%s\n", arr);

    return 0;
}

4.用C语言在屏幕上输出以下图案:

#define _CRT_SECURE_NO_WARNINGS 

#include <stdio.h>
//上:打印n行 //7
//
//下:打印n - 1行
//
//n = 0, 1, , 2
//
//空格:(6 5 4 3 2 1 0)(n - 1)逆着-- -
//
//*(1 3 5 7 9 11 13)-- - 2 * n + 1
int main()
{
	//上半部分
	int i = 0;
	int n = 0;
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		int j = 0;
		//打印空格
		for (j = 0; j < n - i - 1; j++)
		{
			printf(" ");
		}
		//打印***
		for (j = 0; j <2*i+1;j++)
		{
			printf("*");
		}
		printf("\n");
	}
	//下半部分
	//打印n-1行
	//空格:1 2 3 4 5 6//n-1
	//*:2*6-1----2*1-1
	for (i = 0; i < n - 1; i++)
	{
		int j = 0;
		for (j = 0; j < i + 1; j++)
		{
			printf(" ");
		}
		for (j = 0; j < 2 *(n-1)-1-2*i; j++)
		{
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

 5.打印水仙花数

求出0~100000之间的所有“水仙花数”并输出。

“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。

#include<math.h>
int main()
{
	int i = 0;
	//先判断位数
	
	for (i = 0; i <= 10000; i++)
	{
		int count = 0;
		int tmp = i;
		while (tmp)
		{
			tmp = tmp / 10;
			count++;
		}
		tmp = i;
		int sum = 0;
		while (tmp)
		{

			sum = sum + pow(tmp % 10, count);
			tmp = tmp / 10;
		}
		if (i == sum)
		{
			printf("%d ", sum);
		}
	}
	return 0;
}

6.计算求和

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

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

#include<math.h>
int main()
{
	int n = 0;//数字
	int m = 0;//位数
	int i = 0;
	int sum = 0;
	scanf("%d %d", &n, &m);
	for(i=0;i<m;i++)//五位数字//五次循环
	{
		sum = sum + n * pow(10,i);//0+2*10^0+2*10^1+2*10^2
	}
	printf("%d", sum);
}

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

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

相关文章

[附源码]java毕业设计医院管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【转】数据库索引详细介绍

原文链接&#xff1a;https://blog.csdn.net/weixin_41948075/article/details/100009848 索引的定义 索引相当于一本书的目录&#xff0c;通过目录我们可以迅速定位书中要找的内容。MySQL中的索引也是一样&#xff0c;它是一种帮助MySQL高效获取数据的数据结构&#xff08;树…

Docker中php安装redis扩展

第一步&#xff1a;下载redis扩展压缩包 点击下载redis-5.3.7 &#xff0c;其他版本请访问&#xff1a;https://pecl.php.net/package/redis 第二步&#xff1a;加压压缩包 linux下解压&#xff1a;tar -zxvf redis-5.3.4.tgz windows下解压&#xff1a;自己学习 第三步&#…

暴雪网易事件大讨论:Web3游戏未来发展趋势

最近很多小伙伴们询问进群方式&#xff0c;希望能和NFT玩家&#xff0c;链游行家和数字艺术家们交流和学习&#xff0c;直接戳我【ID:cdf0822】就好&#xff01;文末也有联系方式&#x1f618; 11月17日下午&#xff0c;暴雪中国官方直接绕过现任代理商网易直接发布公告称&…

学生HTML个人网页作业作品 使用HTML+CSS+JavaScript个人介绍博客网站 web前端课程设计 web前端课程设计代码 web课程设计

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

【考研数学】概率论与数理统计

这个知识点比较零碎。 文章目录1. 基础知识&#xff1a;连续型总体的最大似然估计法2. 解题技巧&#xff1a;随机变量函数的分布3. 解题技巧&#xff1a;几何数列求和4. 基础知识&#xff1a;切比雪夫不等式5. 基础知识&#xff1a;卡方分布&#xff0c;t分布&#xff0c;F分布…

如何深刻理解RPA?相关知识点看这里!

最近RPA大热&#xff0c;但对于RPA的理解大家都是模模糊糊的&#xff0c;那如何深刻理解呢&#xff1f;需要了解哪些知识点呢&#xff1f;这里我们简单来看看吧&#xff01; 一、RPA定义 RPA简单来说就是借助一些能够自动执行的脚本&#xff0c;以软件自动化方式实现一系列原来…

昔年邢台稻田不下万顷 国稻种芯·中国水稻节:河北谷子收获

昔年邢台稻田不下万顷 国稻种芯中国水稻节&#xff1a;河北谷子收获 新华社记者 骆学峰 摄 河北新闻网讯&#xff08;河北日报记者邢云 通讯员王聚芬&#xff09; 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 中国农民丰收节国际贸易促进会 国稻种芯中国水稻节 中国三…

限制用户上传文件类型

在上传文件时&#xff0c;在表单元素中设置accept属性&#xff0c;这个属性只能与<input type"file">一起使用才生效。 accept的属性值是MIME值&#xff0c;MIME值对应的文件类型可以看这个链接 菜鸟编程-MIME类型l 例如&#xff0c;我只想要用户上传的文件是p…

【雷达干扰】基于matlab速度聚类欺骗式干扰仿真

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

微信预约课程小程序开发_分享微信预约课程小程序的好处

不管是素质拓展还是知识培训&#xff0c;教育机构的人一多&#xff0c;只靠人工的话&#xff0c;容易发生学生约课难&#xff0c;老师排课乱等问题。这时候&#xff0c;就要借助专业的约课系统小程序的帮助啦&#xff01;小程序需自带的营销功能还能帮忙拓客&#xff0c;这下招…

APIMapper 源码解析

git 地址&#xff1a;https://gitee.com/shaokang123/api-mapper 1、ApiMapper 是什么&#xff1f; 将API请求映射到接口上&#xff0c;返回封装的JavaBean数据。所以ApiMapper包括两部分功能&#xff0c; API请求接口映射 JSON数据转JavaBean对象 2、ApiMapper 中使用的设计…

IP-Guard管控应用程序运行有哪几种方式?

有五种方式可以管控应用程序运行&#xff1a; 1、通过进程名称来禁止 管理员直接添加应用程序的名称&#xff0c;如thunder.exe&#xff0c;此时策略是通过字符串匹配的&#xff0c;如果客户端修改了应用程序名称改为thunder123.exe&#xff0c;则策略就无法生效&#xff1b;要…

跟艾文学编程 《零基础入门学Python》Jupyter Notebook安装和使用

作者&#xff1a; 艾文&#xff0c;计算机硕士学位&#xff0c;企业内训讲师和金牌面试官&#xff0c;公司资深算法专家&#xff0c;现就职BAT一线大厂。 邮箱&#xff1a; 1121025745qq.com 内容&#xff1a;跟艾文学编程《零基础入门学Python​​​​​​​》 本节内容 ● Ju…

Kotlin基础入门 - 创建、兼容一个属于自己的Kotlin项目

这应该是我年前就想记录的一个基础入门&#xff0c;但是因为一直比较忙&#xff0c;当时只是做了一个备忘草稿&#xff0c;正文就拖到了现在&#xff0c;趁着有时间&#xff0c;赶紧来帮助一下新入行的朋友… 关于为何我把这篇Blog叫做 创建、兼容一个属于自己的Kotlin项目? 主…

[附源码]计算机毕业设计JAVA面向服装集群企业的个性化定制服务系统

[附源码]计算机毕业设计JAVA面向服装集群企业的个性化定制服务系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&…

C语言:数据的存储

数据的存储首先就要说到数据的类型&#xff0c;类型决定了看待内存空间的视角。C语言的数据类型分为内置类型和外置类型。 1.内置类型 &#xff08;1&#xff09;整型数组 char&#xff08;字符型&#xff09;、short&#xff08;短整型&#xff09;、int&#xff08;整型&am…

【网络原理】应用层协议概述

1. HTTP协议 Hyper Text Transfer Protocpl&#xff08;超文本传输协议&#xff09;。允许将超文本语言&#xff08;HTML&#xff09;从web服务器传送到客户端的浏览器上。HTTP的端口号是80&#xff0c;HTTPS的端口号是443。 HTTP0.9和1.0使用的是非持续链接&#xff0c;每次…

nginx(六十五)proxy模块(六)处理上游的响应头部

一 处理上游的响应头部 重点&#xff1a; 生成了响应内容准备向客户端发送的时候,响应内容必须经过过滤模块的处理补充&#xff1a; 要关注默认行为 &#xff08;1&#xff09;禁用上游响应头对nginx的影响 ① proxy_ignore_headers 应用层如何控制nginx 背景&#xff1…

【电力系统】CJAYA算法优化光伏模型SDM参数附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …