实验08-1参考答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

相关文档
最新文档