实验08-1参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验八指针程序设计
班级:学号:姓名:评分:
一.【实验目的】
1、理解指针、地址和数组间的关系。
2、掌握通过指针操作数组元素的方法。
3、掌握数组名作为函数参数的编程方式。
4、进一步掌握C程序的调试方法和技巧。
二.【实验内容和步骤】
1、程序调试题
A.目标:进一步学习掌握程序调试的方法和技巧。
B.内容:有n个整数,使各数顺序往后循环移动m个位置(m ①调试正确的源程序清单 #include void mov(int *, int, int); int main() { int m, n, i, a[80], *p; printf("Input n, m:"); scanf("%d%d",&n,&m); for(p=a,i=0;i scanf("%d",p++); mov(a,n,m); printf("After move: "); for(i=0;i printf("%5d",a[i]); printf("\n"); return 0; } void mov(int *x, int n, int m) { int i,j,k; for(i=0;i k=x[n-1]; for(j=n-1;j>0;j--) x[j]=x[j-1]; /* 调试时设置断点 */ x[0]=k; } } ②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。 2、完善程序,并调试运行程序 题目(1)分类统计。程序功能:输入一行文字,分类统计其中的大写字母、小写字母、数字、空格以及其他字符的个数。(注:程序文件保存在“第1题”文件夹中)打开proj1.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。 例如: 输入: bFaE3 +8=1B 输出: 大写字母个数:3 小写字母个数:2 数字个数:3 空格个数:1 其他字符个数:2 ①调试正确的源程序清单 #include #include void main( ) { int i,count[5]={0,0,0,0,0}; char str[80],*p; printf("Input a line char: "); gets(str);p=str; //请在两条星线之间填入相应的代码, 输入一行文字,分类统计其中的大写字母、小写字母、//数字、空格以及其他字符的个数。 //要求:利用指针方法来处理。 /*******************************************************************************/ for(i=0;*p!='\0';p++) { if(*p>='A' && *p<='Z') {count[0]++;continue;} //大写字母 else if(*p>='a' && *p<='z') {count[1]++;continue;} //小写字母 else if(*p>='0' && *p<='9') {count[2]++;continue;} //数字字符 else if(*p==' ') count[3]++; //空格字符 else count[4]++; //其他字符} /*******************************************************************************/ printf("The result is: \n"); for(i=0;i<5;i++) { switch(i) { case 0:printf("Upper Char: ");break; case 1:printf("Lower Char: ");break; case 2:printf("Digit Char: ");break; case 3:printf("Space Char: ");break; case 4:printf("Other Char: ");break; } printf("%d\n",count[i]); } } ②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。 题目(2)排序。程序功能:输入一个整数n(1 中调用sort函数实现排序,最后输出排序后的结果。(注:程序文件保存在“第2题”文件夹中)打开proj2.cpp 文件,在两条星线之间填入相应的代码,使程序完成该功能。 ①调试正确的源程序清单 //程序功能:输入一个整数n(1 // 函数void sort(int list[],int n),用选择法对list数组中的元素按升序排 // 列,其中:n为list数组中的元素个数。最后输出排序后的结果。 //提示:除在指定位置添加语句之外,请不要改动程序中的其他内容。 #include void main() { int i, a[10]; void sort(int *, int); for(i=0; i<10; i++) scanf("%d", &a[i]); //请在两条星线之间填入相应的代码, 调用sort函数,对数组a中的元素按照升序排列 /*************************************************************************/ sort(a,10); /*************************************************************************/ printf("The result is: "); for(i=0;i<10;i++)printf("%d ",a[i]); //输出排序后的结果 printf("\n"); } //定义一个函数void sort(int *p,int n),用选择法对指针p指向的数组中的元素按升序 //排列,其中:n为数组中的元素个数。 void sort(int *p, int n)