实验08-1参考答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验八指针程序设计班级:学号:姓名:评分:一.【实验目的】1、理解指针、地址和数组间的关系。2、掌握通过指针操作数组元素的方法。3、掌握数组名作为函数参数的编程方式。4、进一步掌握C程序的调试方法和技巧。二.【实验内容和步骤】1、程序调试题A.目标:进一步学习掌握程序调试的方法和技巧。B.内容:有n个整数,使各数顺序往后循环移动m个位置(mn)。编写一个函数实现以上功能,在主函数中输入n个整数并输出调整后的n个整数。改正程序中的错误,使其实现程序的功能。(注:程序文件保存在“调试示例”文件夹中,文件名为error08.cpp)①调试正确的源程序清单#includestdio.hvoidmov(int*,int,int);intmain(){intm,n,i,a[80],*p;printf(Inputn,m:);scanf(%d%d,&n,&m);for(p=a,i=0;in;i++)scanf(%d,p++);mov(a,n,m);printf(Aftermove:);for(i=0;in;i++)printf(%5d,a[i]);printf(\n);return0;}voidmov(int*x,intn,intm){inti,j,k;for(i=0;im;i++){k=x[n-1];for(j=n-1;j0;j--)x[j]=x[j-1];/*调试时设置断点*/x[0]=k;}}②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。2、完善程序,并调试运行程序题目(1)分类统计。程序功能:输入一行文字,分类统计其中的大写字母、小写字母、数字、空格以及其他字符的个数。(注:程序文件保存在“第1题”文件夹中)打开proj1.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。①调试正确的源程序清单#includestdio.h#includestring.hvoidmain(){inti,count[5]={0,0,0,0,0};charstr[80],*p;printf(Inputalinechar:);gets(str);p=str;//请在两条星线之间填入相应的代码,输入一行文字,分类统计其中的大写字母、小写字母、//数字、空格以及其他字符的个数。//要求:利用指针方法来处理。/*******************************************************************************/for(i=0;*p!='\0';p++){if(*p='A'&&*p='Z'){count[0]++;continue;}//大写字母elseif(*p='a'&&*p='z'){count[1]++;continue;}//小写字母elseif(*p='0'&&*p='9'){count[2]++;continue;}//数字字符elseif(*p=='')count[3]++;//空格字符elsecount[4]++;//其他字符}/*******************************************************************************/printf(Theresultis:\n);for(i=0;i5;i++){例如:输入:bFaE3+8=1B输出:大写字母个数:3小写字母个数:2数字个数:3空格个数:1其他字符个数:2switch(i){case0:printf(UpperChar:);break;case1:printf(LowerChar:);break;case2:printf(DigitChar:);break;case3:printf(SpaceChar:);break;case4:printf(OtherChar:);break;}printf(%d\n,count[i]);}}②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。题目(2)排序。程序功能:输入一个整数n(1n≤10),然后输入n个整数存入数组a中,要求定义一个函数voidsort(intlist[],intn),用选择法对list数组中的元素升序排列,其中:n为list数组中的元素个数。在main函数中调用sort函数实现排序,最后输出排序后的结果。(注:程序文件保存在“第2题”文件夹中)打开proj2.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。①调试正确的源程序清单//程序功能:输入一个整数n(1n≤10),然后输入n个整数存入数组a中,定义并调用一个//函数voidsort(intlist[],intn),用选择法对list数组中的元素按升序排//列,其中:n为list数组中的元素个数。最后输出排序后的结果。//提示:除在指定位置添加语句之外,请不要改动程序中的其他内容。#includestdio.hvoidmain(){inti,a[10];voidsort(int*,int);for(i=0;i10;i++)scanf(%d,&a[i]);//请在两条星线之间填入相应的代码,调用sort函数,对数组a中的元素按照升序排列/*************************************************************************/sort(a,10);/*************************************************************************/printf(Theresultis:);for(i=0;i10;i++)printf(%d,a[i]);//输出排序后的结果printf(\n);}//定义一个函数voidsort(int*p,intn),用选择法对指针p指向的数组中的元素按升序//排列,其中:n为数组中的元素个数。voidsort(int*p,intn){inti,j,iMin,temp;//请在两条星线之间填入相应的代码,用选择法对指针p指向的数组中的元素升序排列//其中:n为list数组中的元素个数。//要求:利用指针方法来处理。/*************************************************************************/for(i=0;in;i++){iMin=i;for(j=i+1;jn;j++)if(*(p+iMin)*(p+j))iMin=j;temp=*(p+i);*(p+i)=*(p+iMin);*(p+iMin)=temp;}/*************************************************************************/}②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。题目(3)找最长的字符串。程序功能:连续输入5个以空格分隔的字符串(字符串的长度不超过80),输出其中长度最长的字符串。例如:输入:liwangzhangjinxiao,输出:zhang。(注:程序文件保存在“第3题”文件夹中)打开proj3.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。①调试正确的源程序清单//程序功能:连续输入5个字符串(字符串的长度不超过80),输出其中长度最长的字符串。//提示:除在指定位置添加语句之外,请不要改动程序中的其他内容。#includestdio.h#includestring.hvoidmain(){inti,MaxLen;charstr[80],longest[80],*p;printf(Input5strings:);scanf(%s,str);//输入第一个字符串strcpy(longest,str);MaxLen=strlen(str);//将第一个字符串设置为初始的最长字符串p=str;//将指针p指向字符串str//请在两条星线之间填入相应的代码,输入其它4个字符串,查找其中最长的字符串。//要求:利用指针方法来处理。/***********************************************************************/for(i=0;i4;i++){scanf(%s,p);if(strlen(p)MaxLen){MaxLen=strlen(p);strcpy(longest,p);}}/************************************************************************/printf(Thelongeststringis:%s\n,longest);}②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。题目(4)找最大的字符串。程序功能:连续输入5个以空格分隔的字符串(字符串的长度不超过80),输出其中最大的字符串。例如:输入:liwangzhajinxiao,输出:zha。(注:程序文件保存在“第4题”文件夹中)打开proj4.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。①调试正确的源程序清单//程序功能:连续输入5个字符串(字符串的长度不超过80),输出其中最大的字符串。//提示:除在指定位置添加语句之外,请不要改动程序中的其他内容。#includestdio.h#includestring.hvoidmain(){inti;charstr[80],max[80],*p;printf(Input5strings:);scanf(%s,str);//输入第一个字符串strcpy(max,str);//将第一个字符串设置为初始的最大字符串p=str;//将指针p指向字符串str//请在两条星线之间填入相应的代码,输入其它4个字符串,查找其中最大的字符串。//要求:利用指针方法来处理。/***********************************************************************/for(i=0;i4;i++){scanf(%s,p);if(strcmp(p,max)0)strcpy(max,p);}/************************************************************************/printf(Themaxstringis:%s\n,max);}②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。题目(5)删除字符。程序功能:编写一个函数delchar(s,c),该函数将字符串s中出现的所有c字符删除。在主程序中输入一个字符c和一个字符串s,调用delchar(s,c)函数删除字符串s中所有的c字符,然后输出删除后的字符串。例如:输入字符a和字符串liwangzhajinxiao,输出:liwngzhjinxio。(注:程序文件保存在“第5题”文件夹中)打开proj5.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。①调试正确的源程序清单②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。题目(6)字符串复制。程序功能:编写一个函数strmcpy(s,t,m),该函数将字符串t中从m个字符开始的全部字符复制到字符串s中去。在主程序中输入一个字符串t和一个开始位置m,调用strmcpy(s,t,m)函数,然后输出字符串s的结果。例如:输入字符串liwangzhajinxiao和开始位置2,输出:wangzhajinxiao。(注:程序文件保存在“第6题”文件夹中)打开proj6.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。①调试正确的源程序清单//程序功能:编写一个函数strmcpy(s,t,m),将字符串t中从m个字符开始的全部字符复制到字符串s中去。//在主程序中输入一个字符串t和一个开始位置

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功