教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

实验08-1参考答案

来源:网络收集 时间:2026-09-02
导读: 实验八 指针程序设计 班级: 学号: 姓名: 评分: 一.【实验目的】 1、理解指针、地址和数组间的关系。 2、掌握通过指针操作数组元素的方法。 3、掌握数组名作为函数参数的编程方式。 4、进一步掌握C程序的调试方法和技巧。 二.【实验内容和步骤】 1、程

实验八 指针程序设计

班级: 学号: 姓名: 评分:

一.【实验目的】

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

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) {

int i,j,iMin,temp;

//请在两条星线之间填入相应的代码, 用选择法对指针p指向的数组中的元素升序排列 //其中:n为list数组中的元素个数。 //要求:利用指针方法来处理。

/*************************************************************************/ for(i=0;i

for(j=i+1;j

if(*(p+iMin)>*(p+j)) iMin=j; temp=*(p+i);

*(p+i)=*(p+iMin); *(p+iMin)=temp; }

/*************************************************************************/ }

② 运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。

题目(3)找最长的字符串。程序功能:连续输入5个以空格分隔的字符串(字符串的长度不超过80),输出其中长

度最长的字符串。例如:输入:li wang zhang jin xiao,输出:zhang。(注:程序文件保存在“第3题”文件夹中)打开proj3.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。 ① 调试正确的源程序清单

//程序功能:连续输入5个字符串(字符串的长度不超过80),输出其中长度最长的字符串。 //提 示:除在指定位置添加语句之外,请不要改动程序中的其他内容。

#include #include

void main( ) {

int i,MaxLen;

char str[80], longest[80], *p;

printf(\

scanf(\输入第一个字符串

strcpy(longest,str);MaxLen=strlen(str);//将第一个字符串设置为初始的最长字符串

p=str;//将指针p指向字符串str

//请在两条星线之间填入相应的代码, 输入其它4个字符串,查找其中最长的字符串。 //要求:利用指针方法来处理。

/***********************************************************************/ for(i=0;i<4;i++){ scanf(\

if(strlen(p)>MaxLen){ MaxLen=strlen(p); strcpy(longest,p); } }

/************************************************************************/ printf(\}

② 运行结果:(提示:通过屏幕截图,贴粘程序 …… 此处隐藏:1988字,全部文档内容请下载后查看。喜欢就下载吧 ……

实验08-1参考答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/605620.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)