当前位置:耘佑范文网 > 作文范文 >

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〉 void main()

 {

 ;0=mus,n,]01[a tniﻩ /*型点浮为数均平义定 */;reva taolfﻩ int *p=a;/*初始化*/

 ;)”n\:srebmun 01 tupni esaelP"(ftnirpﻩ for (n=0;n<10;++n)

  /*数个十入输*/;)]n[a&,"d%"(fnacsﻩ )n++;01<n;0=n( rofﻩ

 /*据数问访针指用使*/;)n+p(*+mus=musﻩ ;n/mus)taolf(=revaﻩ /*位两后点数小到确精*/;)reva,"f2、% si egarevA”(ftnirpﻩ}

 二、 #include 〈stdio、h> void arr(int *a,int n);/*定义排序函数*/ void insert(int *a,int num);/*插入并排序函数*/ int n=10;/*定义数据个数,可修改*/ void main()

 {

 int *a,num,j,k,b[10];

 ;)"n\:据数个入输请"(ftnirpﻩ )j++;n〈j;0=j( rofﻩ

 scanf("%d",&b[j]);/*输入原始数据*/

 /*化始初*/;]0[b&=aﻩ arr(a,n);/*调用排序函数*/

 ;)"n\:为据数得好序排"(ftnirpﻩ )j++;n<j;0=j( rofﻩ

 printf("%d ",*(a+j));/*输出排序好得原始数据*/

 ;)”:数得入插要入输请n\"(ftnirpﻩ scanf(”%d",&num);

 printf("插入%d 后得数据为:\n”,num);

 insert(a,num);/*调用插入并排序函数*/ } void arr(int *a,int n)/*排序函数*/ {

 ;h,j,k tniﻩ )k++;01〈k;0=k( rofﻩ

 )j++;1—k-n〈j;0=j( rofﻩ

  {))j+a(*<)j+1+a(*( fiﻩ

 ﻩ

 ;)j+1+a(*=hﻩ ﻩﻩﻩ *(a+1+j)=*(a+j);

 ﻩ ﻩ *(a+j)=h;

  ﻩ } } void insert(int *a,int num)

 {

 ;)n tni,a* tni(rra diovﻩ ;k,j tniﻩ *(a+n)=num;/*将插入得数排在数组最后一位*/

 arr(a,n+1);/*将新数组重新排序*/

 )j++;)1+n(〈j;0=j( rofﻩ

 {)mun==)j+a(*( fiﻩﻩ;j=kﻩ

 ﻩ break;}/*找到插入得数在数组中得位置*/

 )j++;)1+n(<j;0=j( rofﻩ ;))j+a(*," d%”(ftnirpﻩﻩ ;)1+k,"位 d%第得组数在排据数得入插 n\"(ftnirpﻩ}

  三、 #include <stdio、h> void newcopy(char *new1,char *old); void main() {

 /*1wen用以所,量变做当能不是就 wen*/;]01[a,dlo*,1wen* rahcﻩ old=a;

 new1=a;/*字符串得初始化*/

 ;)”n\:串符字入输请"(ftnirpﻩ scanf("%s",a);

 /*数函用调*/;)dlo,1wen(ypocwenﻩ printf(”新得字符串为:\n");

 printf("%s”,new1); } void newcopy(char *new1,char *old) {

 ;0=j,n tniﻩ for (;* old!=’\0";++old)

  {)’a'〈)dlo *( || "z'>)dlo *(( fiﻩ( *ﻩ

 ;dlo *=)j+1wenﻩ ﻩﻩ ++j;}/*排除原字符串中得小写字母,将其她字符存入新字符串*/

 *(new1+j)='\0";/*结束新字符串,否则新字符串得输出会故障*/ }

  四、 #include <stdio、h> void main()

 {

 ;)3q*tni,2q* tni,1q* tni(egnahcxe diovﻩ int a,b,c,*q1,*q2,*q3;

 ;)"n\:数个入输请”(ftnirpﻩ ;)c&,b&,a&,"d%,d%,d%”(fnacsﻩ /*中 3q2q1q入存址地得数个三将*/;c&=3q;b&=2q;a&=1qﻩ /*数函序排用调*/;)3q,2q,1q(egnahcxeﻩ printf("3个数从大到小排列为:\n%d,%d,%d",a,b,c); } void exchange(int *q1,int *q2,int *q3) {

 /*数函换交用调*/;)2q* tni,1q* s diovﻩ )2q*〈1q*( fiﻩ /*置位址地换交,2q*于小1q*若*/;)sﻩﻩ if (*q1〈*q3)

  ;)sﻩ if (*q2<*q3)

  ;)sﻩ} void s *q1,int *q2)/*交换函数*/ {

 int n;

 n=*q1; * ;2q*=1qﻩ* ;n=2qﻩ}

  修改程序,将三个整型数据改为字符型数据,输入三个字符,按从大到小数顺序输出:只需将程序中得所有int 改为 char,将%d 改为%c即可。

 修改程序,将三个字符型数据改为字符串数据,输入三个字符串,按从小到大顺序输出:

 #include<stdio、h>

 #include<stdlib、h>

 #include<conio、h>

 int cmp(char *p1,char *p2) /* 字符串比较函数*/ {

 int i=0;

 ))i+2p(*==)i+1p(*( elihwﻩ ,’0\"==)i+1p(*断判先是就里这 */ ;0 nruter )’0\"==)++i+1p(*( fiﻩ然后再就是i++ */

 return (*(p1+i)—*(p2+i)); } void sort(char *a[3]) /*排序函数*/

 {

 char *temp;

 ;j,i tniﻩ

 /*序排择选 */)++i;1-3<i;0=i(rofﻩ

 for(j=i+1;j<3;j++)

 )0>)]j[a,]i[a(pmc(fiﻩﻩ ﻩﻩ { ;]i[a=pmetﻩ

 ﻩﻩ a[i]=a[j];

 ﻩ

 a[j]=temp;}

 } void main()

 {

 ;i tniﻩ char s[3][81],*p[3];/* 设定每个字符串不超过字节*/

 ;)"n\:串符字个 3 入输请"(ftnirpﻩﻩ

 )++i;3<i;0=i(rofﻩ {

  gets(s[i]);

  ;]i[s=]i[pﻩ

 }ﻩ

 ;)p(trosﻩ

 ;)”n\:为序排大到小从串符字"(ftnirpﻩ

 )++i;3〈i;0=i(rofﻩ

  ;)]i[p,”n\s%"(ftnirpﻩ}

 五、

 思考题 或实验感想 小结函数指针、数组指针、字符串指针得使用。

 对于指针得使用,最重要得就是搞清楚函数指针、数组指针与字符串指针得概念,不能混乱起来。

 函数指针变量指向一个函数,然后通过该指针变量调用此函数。函数指针中,函数名代表该函数得入口地址.函数指针只能指向函数得入口而不能指向函数中得某一条指令处,因此不能用*(p+1)表示函数得下一条指令。

 数组元素得指针就就是数组元素得地址.C语言中规定数组名代表数组中首元素得地址,所以p=&a[0]与p=a等价。p+i,a+i 就就是 a[i]得地址,或者指向数组得第 i 个元素。*(p+i)或*(a+i)就是 p+i 或 a+i 所指向得数组元素,即 a[i]。指向数组得指针变量可以带有下标,如 p[i]与*(p+i)等价. 字符串指针实际上就是把字符串得第一个字符赋给指针变量。指针变量只能指向一个字符变量或其她字符型数据,不能同时指向多个字符数据。


推荐访问:实验 指针 语言

热门排行

春节晚会观后感600字14篇

春节晚会观后感600字14篇春节晚会观后感600字篇1晚上八点,吃完年夜饭后,我们一家人整整齐齐坐在

2020央视春晚观后感3篇

2020央视春晚观后感3篇2020央视春晚观后感篇1“爆竹声中一岁除,春风送暖入屠苏。千门万门曈曈日

2023特殊符号图案大全(全文)

๑• •ั๑๑฀฀๑♬✿ 。 :*★☆⊙☺☻☼♠♥♡♣♤♥♦♧♨♩ิε฀฀䁠iddot;฀bull;●○●ゃ卣䁠hearts;♡๑฀฀☜☞☎☏♡⊙◎☺☻✖╄►◄▧▨♨◐◑...

2022央视虎年春晚观后感高中作文7篇

2022央视虎年春晚观后感高中作文7篇2022央视虎年春晚观后感高中作文篇1时间匆匆流逝,已经到了农

积极分子谈话记录30篇_确定入党积极分子谈话会议记录

确定入党积极分子谈话会议记录篇一谈话时间:XXXX年6月19日谈话地点:谈话对象:入党联系人:记录人

春晚观后感300字4篇

春晚观后感300字4篇春晚观后感300字篇1春节是每个中国人都颇为期待的一天,它不仅仅代表家庭团圆的

幼儿园谈话记录:幼儿园晨谈记录100篇

坦直幼儿园党团结对谈心记录(2010年)序号时间去谈心人姓名被谈心人姓名谈心内容备注110 2 26

2020年医院党员谈心谈话记录_2020年谈话记录

职工医院谈心谈话记录单位:职工医院谈心交心对象签名年月日

2022年党支部领导班子“迎盛会、铸忠诚、强担当、创业绩”主题教育专题组织生活会对照检查材料(思想学习工作生活四个方面)【完整版】

2022年党支部领导班子“迎盛会、铸忠诚、强担当、创业绩”主题教育专题组织生活会对照检查材料(思想学习工作生活四个方面)【完整版】下面是小编为大家整理的《20...

【幼儿园谈话记录】 幼儿园晨谈记录100篇

坦直幼儿园党团结对谈心记录(2010年)