C++上机实验报告(指针)

合集下载

C语言实验报告——指针

C语言实验报告——指针

C语言实验报告——指针实验目的:1.掌握指针的基本概念与用法;2.熟悉指针的运算规则;3.理解指针与数组之间的关系。

实验设备:1.计算机;2.编程环境:C语言编译器。

实验内容:1.指针的声明与初始化;2.指针的运算;3.指针与数组。

实验原理:指针是C语言中非常重要的概念,它可以用来存储变量的地址。

通过指针,我们可以直接访问存储在内存中的变量,从而实现对变量的灵活操作。

指针的声明与初始化:在C语言中,指针的声明可以通过在变量名前添加一个"*"来实现。

指针的初始化可以通过给指针赋予一些变量的地址来实现。

指针的运算:指针可以进行递增和递减运算。

递增指针使其指向下一个位置,递减指针使其指向上一个位置。

这样可以方便地遍历数组或者对数组进行操作。

指针与数组:指针与数组有着密切的关系。

在C语言中,数组实际上是由连续的存储单元组成的。

指针可以通过指向数组的首元素来访问数组中的各个元素。

通过指针可以方便地对数组进行操作,例如遍历数组、修改数组元素等等。

实验步骤:1.声明一个整型变量并初始化;2.声明一个指向该整型变量的指针,并将其初始化为该整型变量的地址;3.输出指针所指向的变量的值;4.改变指针所指向变量的值,并输出;5.声明一个数组,并初始化;6.输出数组的每个元素;7.使用指针对数组进行递增和递减运算,并输出运算结果。

实验结果与分析:1.初始变量的值为10;2.指针所指向的变量的值为10;3.改变指针所指向变量的值为20;4.数组元素分别为1、2、3、4、5;5.指针的递增运算结果为2、3、4、5;6.指针的递减运算结果为4、3、2、1实验结论:通过本次实验,我掌握了指针的基本概念与用法。

指针可以用来存储变量的地址,通过指针可以访问变量的值。

指针还可以用来操作数组,方便地遍历数组、修改数组元素等。

指针的递增和递减运算可以方便地遍历数组。

在实际编程中,熟练掌握指针的使用将会事半功倍。

C语言实验六实验报告——指针

C语言实验六实验报告——指针

一、实验项目名称指针二、实验目得1.掌握指针得基本概念与基本用法。

包括:变量得地址与变量得值,指针变量得说明、指针变量得初始化、指针得内容与定义格式、指针得基本运算等;2.掌握数组与指针得关系并能够利用指针解决数组得相关问题;3。

掌握字符串与指针得关系并能够利用指针处理字符串得问题;4。

掌握指针与函数得关系并能够利用指针处理函数问题;5.了解指向指针得指针得概念及其使用方法;6。

能够使用指针进行程序设计。

三、实验内容有关指针得程序设计1。

编程实现:任意输入得10个数,求其平均值。

要求:(1)10个数采用scanf语句读入。

(2)利用指针实现对这10个数得访问。

(3)要求平均值得精度为小数后面2位。

2。

编程实现:将一个任意整数插入到一个已排序得整数数组中,插入后数组中得数仍然保持有序.要求:(1)整数数组由初始化方式输入。

任意整数由scanf函数输入;(2)实现过程采用指针处理;(3)输出原始数组数据以及插入数据后得数组数据并加以相应说明。

3。

编写函数newcopy(char *new,char *old),它得功能就是删除old所指向得字符串中得小写字母,并将所得到得新串存入new中。

要求:(1)在主函数中以初始化方式输入一个字符串;(2)调用newcopy()函数;(3)在主函数中输出处理后得结果.4。

编程实现:输入三个整数,按由大到小得顺序输出。

要求:(1)通过scanf函数输入三个数据并存入三个变量中;(2)利用指针实现从大到小输出;(3)修改程序,将三个整型数据改为字符型数据,输入三个字符,按从大到小数顺序输出;(4)修改程序,将三个字符型数据改为字符串数据,输入三个字符串,按从小到大顺序输出;(5)体会指针对不同数据处理得特点.四、实验步骤及结果一、#include <stdio、h〉voidmain(){ﻩint a[10],n,sum=0;ﻩfloat aver;/*定义平均数为浮点型*/int *p=a;/*初始化*/ﻩprintf("Pleaseinput 10 numbers:\n”);for (n=0;n<10;++n)ﻩscanf("%d",&a[n]);/*输入十个数*/ﻩfor(n=0;n<10;++n)ﻩsum=sum+*(p+n);/*使用指针访问数据*/ﻩaver=(float)sum/n;ﻩprintf(”Average is%、2f",aver);/*精确到小数点后两位*/}二、#include〈stdio、h>void arr(int *a,int n);/*定义排序函数*/void insert(int *a,int num);/*插入并排序函数*/intn=10;/*定义数据个数,可修改*/voidmain(){int*a,num,j,k,b[10];ﻩprintf("请输入个数据:\n");ﻩfor(j=0;j〈n;++j)scanf("%d",&b[j]);/*输入原始数据*/ﻩa=&b[0];/*初始化*/arr(a,n);/*调用排序函数*/ﻩprintf("排序好得数据为:\n");ﻩfor(j=0;j<n;++j)printf("%d",*(a+j));/*输出排序好得原始数据*/ ﻩprintf("\n请输入要插入得数:”);scanf(”%d",&num);printf("插入%d后得数据为:\n”,num);insert(a,num);/*调用插入并排序函数*/}voidarr(int*a,int n)/*排序函数*/{ﻩintk,j,h;ﻩfor (k=0;k〈10;++k)ﻩ for (j=0;j〈n-k—1;++j)ﻩif(*(a+1+j)<*(a+j)){ﻩﻩh=*(a+1+j);ﻩﻩﻩ*(a+1+j)=*(a+j);ﻩﻩ*(a+j)=h;ﻩ}}void insert(int *a,int num){ﻩvoidarr(int *a,intn);ﻩint j,k;*(a+n)=num;/*将插入得数排在数组最后一位*/arr(a,n+1);/*将新数组重新排序*/ﻩfor (j=0;j〈(n+1);++j)ﻩ if (*(a+j)==num){ﻩﻩﻩk=j;ﻩbreak;}/*找到插入得数在数组中得位置*/ﻩfor(j=0;j<(n+1);++j)ﻩﻩprintf(”%d",*(a+j));ﻩprintf("\n插入得数据排在数组得第%d位",k+1);}三、#include <stdio、h>void newcopy(char *new1,char *old);void main(){ﻩchar*new1,*old,a[10];/*new就是不能当做变量,所以用new1*/ old=a;new1=a;/*字符串得初始化*/ﻩprintf("请输入字符串:\n”);scanf("%s",a);ﻩnewcopy(new1,old);/*调用函数*/printf(”新得字符串为:\n");printf("%s”,new1);}void newcopy(char*new1,char*old){ﻩint n,j=0;for (;*old!=’\0';++old)ﻩif ((* old)>'z' ||(*old)〈'a’){ﻩﻩ*(new1+j)=* old;ﻩﻩ++j;}/*排除原字符串中得小写字母,将其她字符存入新字符串*/*(new1+j)='\0';/*结束新字符串,否则新字符串得输出会故障*/}四、#include <stdio、h>voidmain(){ﻩvoid exchange(int *q1,int *q2,int*q3);int a,b,c,*q1,*q2,*q3;ﻩprintf(”请输入个数:\n");ﻩscanf(”%d,%d,%d",&a,&b,&c);ﻩq1=&a;q2=&b;q3=&c;/*将三个数得地址存入q1q2q3中*/ ﻩexchange(q1,q2,q3);/*调用排序函数*/printf("3个数从大到小排列为:\n%d,%d,%d",a,b,c); }voidexchange(int *q1,int*q2,int *q3){ﻩvoid s*q1,int*q2);/*调用交换函数*/ﻩif (*q1〈*q2)ﻩﻩs);/*若*q1小于*q2,交换地址位置*/if (*q1〈*q3)ﻩs);if(*q2<*q3)ﻩs);}void s*q1,int*q2)/*交换函数*/{int n;n=*q1;ﻩ*q1=*q2;ﻩ*q2=n;}修改程序,将三个整型数据改为字符型数据,输入三个字符,按从大到小数顺序输出:只需将程序中得所有int改为char,将%d改为%c即可。

C语言程序设计上机实验报告(精选5篇)

C语言程序设计上机实验报告(精选5篇)

C语言程序设计上机实验报告(精选5篇)第一篇:C语言程序设计上机实验报告黔南民族师范学院 C语言程序设计上机实验报告系部:计算机科学系年级:2013 级班级:姓名:学号:实验时间:实验成绩:2013年月日实验三顺序结构程序的设计一实验名称:顺序结构程序的设计二.实验环境:windows XP系统,VC++6.0软件三.实验目的:四.实验内容:五.算法描述流程图六.源程序七.测试数据及运行结果八.实验心得实验成绩评分要求1、原创性发现抄袭或雷同成绩为0分2、正确性程序正确60分3、可读性格式清楚,有注释,变量命名规范20分4、健壮性对特殊测试数据有考虑有测试10分5、效率程序运行效率高10分第二篇:《c语言程序设计》上机实验报告要求《c语言程序设计》上机实验报告要求1.实验环境:软件系统:使用的软件环境硬件系统:机型说明2.实验目的:掌握如何编辑、编译、链接调试运行c程序3.实验内容:(1)掌握顺序结构程序设计.P26 ,p49,p62 3.2~3.7(2)掌握选择结构程序设计(if 和switch语句的用法)p4.2~(3)循环结构程序设计(while, dowhile,for语句的用法)。

(4)掌握数组的定义、输入和输出的方法,字符数组、字符串函数的使用。

(5)了解函数的定义,熟悉函数实参与形参的“值传递”方式,掌握函数的嵌套调用和递归调用方法。

(6)熟悉指针含义及其使用。

(7)熟悉结构体和共用体的使用。

(8)熟悉文件的使用。

4.实验要求:(1)输入编写的源程序,检查程序有无错误(语法和逻辑错误),有则改之。

(2)编译和连接,仔细分析编译信息,如有错误应找出原因并改正。

(3)运行程序,输入数据,分析结果。

5.实验结果:输出程序清单和运行结果。

(要求把原题内容,调试好的程序和其结果一并打印),6.实验体会分析运行结果,本次调试程序取得的经验(遇到的问题,解决的方法等)。

第三篇:C程序设计上机实验报告10C程序设计实验报告实验名称:指针与数组学时安排:2课时实验类别:上机操作型实验要求:1人1组 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄一、实验目的1.理解指针、地址和数组间的关系;2.掌握通过指针操作数组元素的方法;3.掌握数组名作为参数的编程方式。

c语言实验报告(指针)

c语言实验报告(指针)
二、实验环境
Windows XP系统,Microsoft visual c++6.0
三、实验内容
(1)输入3个整数,按由大到小输出。
(2)编制一函数实现任意3*3阶矩阵的转置,函数的参数用指针形式。
(3)编写一个函数,求一个字符串的长度。在main函数中输入字符串。并输出其长度。
四、源程序清单
(1)#include<stdio.h>
西安财经学院统计学院
《C语言程序设计基础》实验报告
实验名称指针实验室实验楼403实验日期2013-12-03
一、实验目的
1.掌握指针的概念,会定义和使用指针变量;
2.学会使用数组的指针和指向数组的指针变量;
3.学会使用字符串的指针和指向字符串的指针变量;
4.学会使用指向函数的指针变量;
5.了解指向指针的指针的概念及其使用方法。
{ int length(char*p);
int len;
char str[20];
printf("input string:");
scanf("%s",stntf("The length of string is %d.\n",len);
}
int length(char*p)
}
int trs(int *p)
{int i,j,k;
for(i=0;i<3;i++)
for(j=i;j<3;j++)
{k=*(p+3*i+j);
*(p+3*i+j)=*(p+3*j+i);
*(p+3*j+i)=k;

C语言信息安全上机实验报告模版4-指针

C语言信息安全上机实验报告模版4-指针

北京信息科技大学
信息管理学院
(课程上机)实验报告
实验课程名称:C语言程序设计专业: 信息安全
1.实验名称、实验目的、实验内容、实验要求由教师确定,实验前由教师事先填好,然后作为实验报告模版供学生使用;
2.实验准备由学生在实验或上机之前填写,教师应该在实验前检查;
3.实验过程由学生记录实验的过程,包括操作过程、遇到哪些问题以及如何解决等;
4.实验总结由学生在实验后填写,总结本次实验的收获、未解决的问题以及体会和建议等;
5.源程序、代码、具体语句等,若表格空间不足时可作为附录另外附页。

C语言实验报告《指针》[范本]

C语言实验报告《指针》[范本]

C语言实验报告《指针》[范本]
一、实验目的
本次实验旨在通过实验程序了解指针的基本概念及其运用,深入了解指针的用途。

二、实验内容
1. 熟悉指针基础知识
通过本次实验,学习并掌握指针的定义、运算规则、变量指针和函数指针的使用方法。

2. 编写相关实验程序
利用C语言编写实验程序,实现数组指针的操作、字符指针的操作、指针函数的调用等。

三、实验结果
1. 指针的定义
指针是一种指向另一种存储单元的变量使用的一种类型,它可以指向内存中的任何一
个位置。

指针存储的是指向另一个存储单元的地址。

2. 指针的运算规则
(1)取地址运算 &。

实验表明,& 符号具有取地址作用,把变量的地址赋给指针。

(3)算术运算。

实验表明,指针之间可以进行加减乘除运算,可以移动指针位置,以此实现指向某一
数组元素。

3. 数组指针操作
实验程序中,采用“指向指针的指针”的定义,实现了多维数组的操作,实现地址的
跳转和访问,改变指针变量的地址,实现对数组的操作。

实验程序中,采用“字符串”方法,改变指针变量的地址,实现对字符串的操作。


历一条字符串,用指针变量一个一个地取得字符,此时的指针变量的值就是各个字符的地址。

5. 指针函数的调用。

C语言实验六实验报告——指针

C语言实验六实验报告——指针

一、实验项目名称指针二、实验目得1.掌握指针得基本概念与基本用法。

包括:变量得地址与变量得值,指针变量得说明、指针变量得初始化、指针得内容与定义格式、指针得基本运算等;2.掌握数组与指针得关系并能够利用指针解决数组得相关问题;3。

掌握字符串与指针得关系并能够利用指针处理字符串得问题;4。

掌握指针与函数得关系并能够利用指针处理函数问题;5.了解指向指针得指针得概念及其使用方法;6。

能够使用指针进行程序设计。

三、实验内容有关指针得程序设计1。

编程实现:任意输入得10个数,求其平均值。

要求:(1)10个数采用scanf语句读入。

(2)利用指针实现对这10个数得访问。

(3)要求平均值得精度为小数后面2位。

2。

编程实现:将一个任意整数插入到一个已排序得整数数组中,插入后数组中得数仍然保持有序.要求:(1)整数数组由初始化方式输入。

任意整数由scanf函数输入;(2)实现过程采用指针处理;(3)输出原始数组数据以及插入数据后得数组数据并加以相应说明。

3。

编写函数newcopy(char *new,char *old),它得功能就是删除old所指向得字符串中得小写字母,并将所得到得新串存入new中。

要求:(1)在主函数中以初始化方式输入一个字符串;(2)调用newcopy()函数;(3)在主函数中输出处理后得结果.4。

编程实现:输入三个整数,按由大到小得顺序输出。

要求:(1)通过scanf函数输入三个数据并存入三个变量中;(2)利用指针实现从大到小输出;(3)修改程序,将三个整型数据改为字符型数据,输入三个字符,按从大到小数顺序输出;(4)修改程序,将三个字符型数据改为字符串数据,输入三个字符串,按从小到大顺序输出;(5)体会指针对不同数据处理得特点.四、实验步骤及结果一、#include <stdio、h〉voidmain(){ﻩint a[10],n,sum=0;ﻩfloat aver;/*定义平均数为浮点型*/int *p=a;/*初始化*/ﻩprintf("Pleaseinput 10 numbers:\n”);for (n=0;n<10;++n)ﻩscanf("%d",&a[n]);/*输入十个数*/ﻩfor(n=0;n<10;++n)ﻩsum=sum+*(p+n);/*使用指针访问数据*/ﻩaver=(float)sum/n;ﻩprintf(”Average is%、2f",aver);/*精确到小数点后两位*/}二、#include〈stdio、h>void arr(int *a,int n);/*定义排序函数*/void insert(int *a,int num);/*插入并排序函数*/intn=10;/*定义数据个数,可修改*/voidmain(){int*a,num,j,k,b[10];ﻩprintf("请输入个数据:\n");ﻩfor(j=0;j〈n;++j)scanf("%d",&b[j]);/*输入原始数据*/ﻩa=&b[0];/*初始化*/arr(a,n);/*调用排序函数*/ﻩprintf("排序好得数据为:\n");ﻩfor(j=0;j<n;++j)printf("%d",*(a+j));/*输出排序好得原始数据*/ ﻩprintf("\n请输入要插入得数:”);scanf(”%d",&num);printf("插入%d后得数据为:\n”,num);insert(a,num);/*调用插入并排序函数*/}voidarr(int*a,int n)/*排序函数*/{ﻩintk,j,h;ﻩfor (k=0;k〈10;++k)ﻩ for (j=0;j〈n-k—1;++j)ﻩif(*(a+1+j)<*(a+j)){ﻩﻩh=*(a+1+j);ﻩﻩﻩ*(a+1+j)=*(a+j);ﻩﻩ*(a+j)=h;ﻩ}}void insert(int *a,int num){ﻩvoidarr(int *a,intn);ﻩint j,k;*(a+n)=num;/*将插入得数排在数组最后一位*/arr(a,n+1);/*将新数组重新排序*/ﻩfor (j=0;j〈(n+1);++j)ﻩ if (*(a+j)==num){ﻩﻩﻩk=j;ﻩbreak;}/*找到插入得数在数组中得位置*/ﻩfor(j=0;j<(n+1);++j)ﻩﻩprintf(”%d",*(a+j));ﻩprintf("\n插入得数据排在数组得第%d位",k+1);}三、#include <stdio、h>void newcopy(char *new1,char *old);void main(){ﻩchar*new1,*old,a[10];/*new就是不能当做变量,所以用new1*/ old=a;new1=a;/*字符串得初始化*/ﻩprintf("请输入字符串:\n”);scanf("%s",a);ﻩnewcopy(new1,old);/*调用函数*/printf(”新得字符串为:\n");printf("%s”,new1);}void newcopy(char*new1,char*old){ﻩint n,j=0;for (;*old!=’\0';++old)ﻩif ((* old)>'z' ||(*old)〈'a’){ﻩﻩ*(new1+j)=* old;ﻩﻩ++j;}/*排除原字符串中得小写字母,将其她字符存入新字符串*/*(new1+j)='\0';/*结束新字符串,否则新字符串得输出会故障*/}四、#include <stdio、h>voidmain(){ﻩvoid exchange(int *q1,int *q2,int*q3);int a,b,c,*q1,*q2,*q3;ﻩprintf(”请输入个数:\n");ﻩscanf(”%d,%d,%d",&a,&b,&c);ﻩq1=&a;q2=&b;q3=&c;/*将三个数得地址存入q1q2q3中*/ ﻩexchange(q1,q2,q3);/*调用排序函数*/printf("3个数从大到小排列为:\n%d,%d,%d",a,b,c); }voidexchange(int *q1,int*q2,int *q3){ﻩvoid s*q1,int*q2);/*调用交换函数*/ﻩif (*q1〈*q2)ﻩﻩs);/*若*q1小于*q2,交换地址位置*/if (*q1〈*q3)ﻩs);if(*q2<*q3)ﻩs);}void s*q1,int*q2)/*交换函数*/{int n;n=*q1;ﻩ*q1=*q2;ﻩ*q2=n;}修改程序,将三个整型数据改为字符型数据,输入三个字符,按从大到小数顺序输出:只需将程序中得所有int改为char,将%d改为%c即可。

C语言程序设计实验六指针上机报告

C语言程序设计实验六指针上机报告

《标准C语言程序设计》上机报告实验六指针程序设计专业:电子信息工程班级:电信1301学号:U*********姓名:**完成日期:2014/5/241一、实验目的1.进一步理解指针的概念,掌握指针变量间接地址访问的本质;2.掌握利用指向数组的指针变量表示一维数组元素及元素地址的方法;3.掌握利用指向二维数组的行指针变量表示二维数组元素及其地址的方法;4.掌握字符串的指针和指向字符串的指针变量;5.掌握指针数组和二级指针;6.熟悉通过动态内存分配实现动态数组,并体会指针在其中的作用。

二、实验内容及要求(鼓励一题多解)1.深入理解《上机实践训练教程》2.6实验六案例示范和有关概念文字描述中的知识点,给出你的理解。

数组名str实质可以作为首地址,是一个指针,而且还是一个常量指针。

char *str是指针变量,该变量取值为存放字符串的内存单元的第一个字节空间的地址值;而char str[]定义一个数组,将字符串存放进str数组。

str是数组名,代表数组空间的入口地址,作为指针常量2.用指向数组的指针编程实现:输入一个字符串,内有数字和非数字符号,如:a123x456 17960?302tab5876。

将其中连续的数字作为一个整数,依次存放到一个数组a中。

例如:123放在a[0]中,456放在a[1]中……试统计共有多少个整数,并输出这些数。

要求添加合适的注释。

#include <stdio.h>#include <string.h>void main(){char c[100],*p=c;int a[50],*q=a,num=0,i;//定义字符数组c和数组a,用p,q分别定义并赋初值printf("输入一个字符串,内有数字和非数字符号");gets(c);//录入字符串for(;*p!='\0';p++){if(*p>='0' && *p<='9'){*q=(*p)-'0';//指针实现c[]到a[]的赋值p++;if(*p>='0' && *p<='9')*q=(*q)*10+(*(p++)-'0');//将数字字符串变为数字存入num+=1;//if下的加1q++;}}for(i=0,q=a;i<num;i++,q++){printf("a[%d]=%d\n",i,*q);}putchar('\n');printf("一共输入了%d个数字。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++上机实验报告实验名称:指针专业班级:姓名:学号:实验日期:目录1.实验目的2.实验内容3.程序代码4.调试结果5.实验心得1.实验目的(1)通过实验进一步掌握指针的概念,会定义和使用指针变量;(2)能正确使用数组的指针和指向数组的指针变量;(3)能正确使用字符串的指针和指向字符串的指针变量;(4)能正确使用引用型变量。

2.实验内容编程序并上机调试运行程序(要求用指针或引用处理)。

(1)输入3个整数,按由小到大的顺序输出。

编译一个程序,用指针变量作为参数。

(2)在上题的基础上将程序改为:输入3个字符串,按由小到大的顺序输出。

(3)用引用指针变量作为形参,实现3个整数由小到大输出。

(4)有n个人围成一圈,顺序排号。

从第1个人开始报数(从1~3报数),凡是到3的人退出圈子,问最后留下的人原来排在第几号。

(5)在主函数中输入10个字符串。

用另一个函数最它们排序。

然后在主函数输出这10个已排好的字符串。

要求用以下方法编程:Ⅰ.指向一维数组的指针座函数参数;Ⅱ.用string数组方法。

3.程序代码(1)#include<iostream>using namespace std;int main(){void swap(int *p1,int *p2);int n1,n2,n3;int *p1,*p2,*p3;cout<<"input three integers n1,n2,n3:";cin>>n1>>n2>>n3;p1=&n1;p2=&n2;p3=&n3;if(n1>n2) swap(p1,p2);if(n1>n3) swap(p1,p3);if(n2>n3) swap(p2,p3);cout<<"Now,the order is:"<<n1<<" "<<n2<<" "<<n3<<endl; return 0;}void swap(int *p1,int *p2){int p;p=*p1;*p1=*p2;*p2=p;}(2)Ⅰ.用字符数组方法的源程序#include<iostream>using namespace std;int main(){void swap(char *,char *);char str1[20],str2[20],str3[30];cout<<"input three line:"<<endl;gets(str1);gets(str2);gets(str3);if(strcmp(str1,str2)>0) swap(str1,str2); if(strcmp(str1,str3)>0) swap(str1,str3); if(strcmp(str2,str3)>0) swap(str2,str3); cout<<endl<<"Now,the order is:"<<endl; cout<<str1<<endl<<str2<<endl<<str3<<endl; return 0;}void swap(char *p1,char *p2){char p[20];strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);}Ⅱ.用string方法的源程序(程序中使用了指针和引用)#include<iostream>#include<string>using namespace std;int main(){void change(string &,string &);string str1=" ",str2=" ",str3=" ";char *p1=&str1[0],*p2=&str2[0],*p3=&str3[0];cout<<"input three line:"<<endl;gets(p1);gets(p2);gets(p3);if(str1>str2) change(str1,str2);if(str1>str3) change(str1,str3);if(str2>str3) change(str2,str3);cout<<endl<<"Now,the order is:"<<endl;cout<<str1<<endl<<str2<<endl<<str3<<endl; return 0;}void change(string &st1,string &st2) {string st;st=st1;st1=st2;st2=st;}(3)#include<iostream>using namespace std;int main(){void exchange(int *,int *,int *);int a,b,c,*p1,*p2,*p3;cin>>a>>b>>c;p1=&a;p2=&b;p3=&c;exchange(p1,p2,p3);cout<<a<<" "<<b<<" "<<c<<endl;return 0;}void exchange(int *q1,int *q2,int *q3){void swap(int *,int *);if( *q1> *q2) swap(q1,q2);if( *q1> *q3) swap(q1,q3);if( *q2> *q3) swap(q2,q3);}void swap(int *pt1,int *pt2){int temp;temp=*pt1;*pt1=*pt2;*pt2=temp;}(4)#include<iostream>using namespace std;int main(){int i,k,m,n,num[50],*p;cout<<"input number of person:n="; cin>>n;p=num;for(i=0;i<n;i++)*(p+i)=i+1;i=0;k=0;m=0;while(m<n-1){if(*(p+i)!=0) k++;if(k==3){*(p+i)=0;k=0;m++;}i++;if(i==n) i=0;}while(*p==0)p++;cout<<"The last one is NO."<<*p<<endl; return 0;}(5)Ⅰ.指向一维数组的指针最函数参数的源程序#include<iostream>using namespace std;int main(){void sort(char (*p)[6]);int i;char str[10][6];char (*p)[6];cout<<"input 10 strings:"<<endl;for(i=0;i<10;i++)cin>>str[i];p=str;sort(p);cout<<"Now,the sequence is:"<<endl; for(i=0;i<10;i++)cout<<str[i]<<endl;return 0;}void sort(char (*s)[6]){int i,j;char temp[6],*t=temp;for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(strcmp(s[j],s[j+1])>0){strcpy(t,s[j]);strcpy(s[j],s[+j+1]);strcpy(s[j+1],t);}}Ⅱ.用string数组方法的源程序#include<iostream>#include<string>using namespace std;int main(){void sort(string*);int i;string str[10],*p=str;cout<<"input 10 strings:"<<endl;for(i=0;i<10;i++)cin>>str[i];sort(p);cout<<"Now,the sequence is:"<<endl; for(i=0;i<10;i++)cout<<str[i]<<endl;return 0;}void sort(string *s){int i,j;string temp;for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(s[j]>s[j+1]){temp=s[j];s[j]=s[+j+1];s[j+1]=temp;}}4.调试结果(1)input three integers n1,n2,n3:54 -12 2 Now,the order is:-12 2 54(2)input three lines:I study very hard.C language is very interesting.He is a professor.Now,the order is:C language is very interesting.He is a professor.I study very hard.(3)12 6 876 12 87(4)input number of person:n=8The last one is No.7(5)input 10 strings: Now,the sequence is:China BurmaJapan ChinaKorea EgyptEgypt GhanaNepal ItalyBurma JapanGhana KoreaSudan LibyaItaly NepalLibya Sudan5.实验心得指针同数组一样,是C++中一个重要的概念,一个重要的知识点。

相关文档
最新文档