内容发布更新时间 : 2025/6/29 18:51:34星期一 下面是文章的全部内容请认真阅读。
实验八 指针程序设计
班级: 学号: 姓名: 评分:
一.【实验目的】
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(\ scanf(\ for(p=a,i=0;i
printf(\ for(i=0;i
printf(\ printf(\
return 0; }
void mov(int *x, int n, int m) {
int i,j,k;
for(i=0;i
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
void main( ) {
int i,count[5]={0,0,0,0,0}; char str[80],*p;
printf(\ 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(\ for(i=0;i<5;i++) {
switch(i) {
case 0:printf(\ case 1:printf(\ case 2:printf(\ case 3:printf(\ case 4:printf(\ }
printf(\ } }
② 运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。
题目(2)排序。程序功能:输入一个整数n(1
sort(int list[],int n),用选择法对list数组中的元素升序排列,其中:n为list数组中的元素个数。在main函数中调用sort函数实现排序,最后输出排序后的结果。(注:程序文件保存在“第2题”文件夹中)打开proj2.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。 ① 调试正确的源程序清单
//程序功能:输入一个整数n(1
int i, a[10];
void sort(int *, int);
for(i=0; i<10; i++) scanf(\
//请在两条星线之间填入相应的代码, 调用sort函数,对数组a中的元素按照升序排列 /*************************************************************************/
sort(a,10);
/*************************************************************************/ printf(\
for(i=0;i<10;i++)printf(\输出排序后的结果 printf(\}
//定义一个函数void sort(int *p,int n),用选择法对指针p指向的数组中的元素按升序 //排列,其中:n为数组中的元素个数。 void sort(int *p, int n)