c语言单元二实验报告,C语言第七次实验报告

C程序设计实验报告

姓名:林世龙  实验地点:学校 实验时间:2020.06.03

实验项目

8.31.指针基础及指针运算

8.3.2.数据交换

8.3.3.字符串反转及字符串连接

8.3.4.数组元素奇偶排列

一、实验目的与要求

1、加强对学生对指针数据类型的理解,熟悉指针的定义、通过指针间接访问变量的方法。

2、加强对指针类型作为函数参数传递的理解。

3、加强对字符指针及将指针作为函数的返回类型的理解,并通过指针对字符串进行操作。

4、加强对使用指针对数组进行操作的理解,通常数组的名称即整个数组的起始存储地址。

二、实验内容

8.3.1.指针基础及指针运算

1.问题的简单描述:定义整型指针变量p,使之指向整型变量a;定义浮点型指针q,使之指向浮点变量b,同时定义另外一个整型变量c并赋初值3。使用指针p,q输入a,b表达值;通过指针p,q间接输出a,b的值;输出p,q的值及c的地址。

2、实验代码:

#include

int main()

{

int *p,a,c=3;

float *q,b;

p=&a;

q=&b;

printf("Please Input the Value of a,b: ");

scanf("%d%f",p,q);

printf("Result: \n");

printf("%d,%f\n",a,b);

printf("%d,%f\n",*p,*q);

printf("The Address of a,b:%p,%p\n",&a,&b);

printf("The Address of a,b:%p,%p\n",p,q);

p=&c;

printf("c=%d\n ",*p);

printf("The Address of c:%x,%x\n",p,&c);

return 0;

}

3、问题分析:无

8.3.2.数据交换

1问题的简单描述:从主函数中调用swap1和swap2函数,并打印输出交换后a、b的结果。

2实验代码:

#include

void swap1(int x,int y);

void swap2(int *x,int *y);

int main()

{

int a,b;

printf("Please Input a=:");

scanf("%d",&a);

printf("\nb=:");

scanf("%d",&b);

swap1(a,b);

printf("\nAfter Call swap1:a=%d,b=%d\n",a,b);

swap2(&a,&b); //指针作为形参,实参须为地址

printf("\nAfter Call swap2:a=%d,b=%d\n",a,b);

return 0;

}

void swap1(int x,int y)

{

int temp;

temp=x;

x=y;

y=temp;

}

void swap2(int*x,int *y)

{

int temp;

temp=*x;

*x=*y;

*y=temp;

}

3问题分析:当指针作为形式参数时,实际参数为地址

8.3.3.字符串反转及字符串连接

1问题的简单描述:定义两个字符指针,通过指针移动方式将字符串反转以及将两个字符串连接起来。

2实验代码:

#include

char *reverse(char *str);

char *link(char *str1,char *str2);

int main()

{

char str[30],str1[30],*str2;

printf("Input Reversing Character String:");

gets(str);

str2=reverse(str);

printf("\nOutput Reversed Characyer String:");

puts(str2);

printf("Input string1:");

gets(str);

printf("\nInput string2:");

gets(str1);

str2=link(str,str1);

puts(str2);

return 0;

}

char *reverse(char *str)

{

char *p,*q,temp;

p=str,q=str;

while(*p!='\0')

p++;

p--;

while(q

{

temp=*q;

*q=*p;

*p=temp;

p--;

q++;

}

return str;

}

char *link(char *str1,char *str2)

{

char *p=str1,*q=str2;

while(*p!='\0')

p++;

while(*q!='\0')

{

*p=*q;

p++;

q++;

}

*p='\0';

return str1;

}

3问题分析:刚开始对指针移动内容不太明白,后来经过老师讲解之后明白了

8.3.4.数组元素奇偶排列

1.问题的简单描述:定义一个函数,实现数组元素奇数在左、偶数在右。

2实验代码:

#include

#define N 10

void arrsort(int a[],int n);

int main()

{

int a[N],i;

for(i=0;i

scanf("%d",&a[i]);

arrsort(a,N);

for(i=0;i

printf("%d ",a[i]);

}

void arrsort(int a[],int n)

{

int *p,*q,temp;

p=a;

q=a+n-1;

while(p

{

while(*p%2!=0)

p++;

while(*q%2==0)

q--;

if(p>q)

break;

temp=*p;

*p=*q;

*q=temp;

p++;

q--;

}

}

3问题分析:无

三、实验小结

指针这个单元学习的有点困难,没有书的模板根本做不出来,还有很多知识点需要自己多花时间消化学习。

来源:https://www.cnblogs.com/zql1228687135/p/13063822.html

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

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

相关文章

(剑指Offer)面试题4:替换空格

题目: 请实现一个函数,把字符串中的每个空格替换成“%20”,例如输入“We are happy”,则输出“We%20are%20happy”。 思路: 背景: 在网络编程中,如果URL参数中含有特殊字符,如空格,#…

Burpsuite爆破含CSRF-Token的程序

转载至https://www.se7ensec.cn/2018/10/21/Burpsuite%E7%88%86%E7%A0%B4%E5%90%ABCSRF-Token%E7%9A%84%E7%A8%8B%E5%BA%8F/ 3 年前发表 8 个月前更新 渗透测试 2 分钟读完 (大约273个字) 358次访问 Burpsuite爆破含CSRF-Token的程序 1. 抓包 0x01 开启burpsuite代理&#xff0…

Java Concurrency Essentials教程

课程大纲 并发一直是开发人员面临的挑战,编写并发程序可能非常困难。 引入并发性时,可能会发生很多事情,并且系统的复杂性会大大增加。 但是,编写健壮的并发程序的能力是开发人员的必备工具,并且可以帮助构建复杂的企…

如何玩转CSS链接(link)知识点?

CSS 链接 不同的链接可以有不同的样式。 链接样式 链接的样式,可以用任何CSS属性(如颜色,字体,背景等)。 特别的链接,可以有不同的样式,这取决于他们是什么状态。 这四个链接状态是: a:link - 正常,未访问过的链接a:visited - 用户已访问过的链接a:hover - 当用户…

IOS_月薪10k以上知识大总结

http://blog.csdn.net/sakulafly/article/details/40888143 转载于:https://www.cnblogs.com/luningning0901/p/4626749.html

adc0808的c语言编程51,51单片机驱动ADC0808电路图C51及汇编程序

这两天刚刚完成了一个用C编写的程序,这是我第一个用C语言编写的程序,并且调试成功。第一个C程序,值得纪念,也值得以后参考。本程序的功能是:1.ADC0808转换功能;2.数据16进制显示;3.串行通信数据…

正则表达式贪婪与非贪婪模式

正则表达式贪婪与非贪婪模式 之前做程序的时候看到过正则表达式的贪婪与非贪婪模式,今天用的时候就想不起来了,现在这里总结一下,以备自己以后用到注意。 1.什么是正则表达式的贪婪与非贪婪匹配 如:String str"abcaxc"…

使用jOOQ DSL

本文是我们学院课程的一部分,标题为jOOQ –类型安全的数据库查询 。 在SQL和特定关系数据库很重要的Java应用程序中,jOOQ是一个不错的选择。 当JPA / Hibernate抽象过多,JDBC过多时,这是一种替代方法。 它显示了一种现代的领域特…

[Noip模拟赛] Power

POWER 源程序名 POWER.??? (PAS,C,CPP) 可执行文件名 POWER.EXE 输入文件名 POWER.IN 输出文件名 POWER.OUT 多瑞卡得到了一份有趣而高薪的工作。每天早晨他必须关掉他所在村庄的街灯。所有的街灯都被设置在一条直路的同一侧。 多瑞卡每晚到早晨5点钟都在晚会上&a…

如何玩转CSS列表样式?速查!

目录 CSS 列表 列表 不同的列表项标记 作为列表项标记的图像 浏览器兼容性解决方案 列表 -简写属性

linux逆向工程反汇编,Kali Linux 逆向工程工具 Jad 教程

日期:2017年12月21日观看: 1,895 C 次用法:jad [option(s)] jad [选项(s)] 选项:-a - 生成JVM指令作为注释(注释)-af - 注释时输出完全限定的名称-b - 生成冗余大括号(大括号)-clear - 清除所有的前缀,包括默认的前缀-…

任意文件读取及删除漏洞

任意文件读取漏洞及危害 通过提交专门设计的输入,攻击者就可以在被访问的文件系统中读取或写入任意内容,往往能够使攻击者从服务器上获取敏感信息文件,正常读取的文件没有经过校验或者不严格,用户可以控制这个变量读取任意文件。…

restful web_RESTful Web服务可发现性,第4部分

restful web这是关于使用Spring 3.1和Spring Security 3.1和基于Java的配置来建立安全的RESTful Web Service的系列文章的第四篇 。 本文将重点介绍REST API,HATEOAS的可发现性以及由测试驱动的实际方案。 引入REST可发现性 API的可发现性是一个值得引起足够关注的…

微信小程序微信支付安卓手机可以,苹果手机支付失败。

问题截图: 解决办法有3种可能性,请按照对应的情况排查: 1.wx.request 无法发起网络请求,提示没有权限,域名已经配置过了,证书检测也是正确没问题的? 测试ios和安卓,假如有一方可以,一方不行,则是证书问题,请选用受认可的证书 检测地址:https://www.qcloud.co…

面试知识点总结01

1.Android 版本Bug 想必使用过 Android 5.0.1 系统的用户对内存泄露 bug 不会感到陌生,此缺陷不仅会导致内存占用过高,还会进而致使应用及其后台进程被强制关闭,甚至是系统界面崩溃等。 内存泄露 信息泄露 流量泄露 2.ArrayList 和LinkList的…

安装linux无驱动黑屏,ubuntu16.04安装黑屏与显卡安装笔记

本帖最后由 zhengchao666 于 2016-4-26 16:08 编辑ubuntu安装时黑屏处理问题描述:ubuntu使用光盘/USB安装时,出现"install ubuntu/ try ubuntu without installation"选择,但是Enter安装时,显示器显示没有信息&#xff…

从JS敏感信息泄露到GETSHELL

前言 小弟新手,大佬勿喷,文章有何不妥,还望大佬们斧正。 正文 前端时间打HW,拿到一个IP,先在FOFA上搜一下 发现这个IP现在开放了三个端口,分别是86,83,82对应不同的后台管理系统 …

HashMap两种遍历数据的方式

HashMap的遍历有两种方式,一种是entrySet的方式,另外一种是keySet的方式。 第一种利用entrySet的方式: Map map new HashMap(); Iterator iter map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry (Map.Entry) iter.ne…

jOOQ类型安全数据库查询教程

课程大纲 SQL是用于关系数据库查询的功能强大且表达能力强的语言。 SQL已建立,标准化并且几乎不受其他查询语言的挑战。 但是,在Java生态系统中,自从JDBC以来,几乎没有采取任何相关的措施来更好地将SQL集成到Java中。 在更高级别上…

中专计算机专业学c语言吗,中专计算机专业学什么 有哪些课程

计算机原理、计算机应用基础、计算机网络基础、CAD辅助设计、三维动画设计、VBSIC语言及程序设计PHOTOSHOP、Windows、网页设计、Office办公自动化、多媒体、计算机系统安装及维护管理、计算机病毒原理防范等。计算机专业就业前景计算机专业就业前景很好。随着现代经济和科技的…