实验07-2参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七-2 字符串和数组程序设计
班级:学号:姓名:评分:
一.【实验目的】
1、熟练掌握字符串的存取和操作方法方法。
2、进一步掌握C程序的调试方法和技巧。
二.【实验内容和步骤】
1、程序调试题
A.目标:进一步学习掌握程序调试的方法和技巧。
B.内容:从键盘输入一个以回车键结束的字符串(少于80个字符),将它的内容逆向输出。例如:输入“ABCD”,输出“DCBA”。改正程序中的错误,使其实现程序的功能。(注:程序文件保存在“调试示例”文件夹中,文件名为error08_1.cpp)
①调试正确的源程序清单
#include
int main( )
{
int i, k, temp;
char str[80];
printf("input a string: ");
i = 0;
while((str[i] = getchar( )) != '\n')
i++;
str[i] = '\0';
k = i - 1;
for(i = 0; i < k; i++){ /* 调试时设置断点 */
temp = str[i];
str[i] = str[k];
str[k] = temp;
k--;
} /* 调试时设置断点 */
for(i = 0; str[i] != '\0'; i++)
putchar(str[i]);
putchar('\n');
return 0;
}
②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。
2、完善程序,并调试运行程序
题目(1)求字符串长度。程序功能:连续输入一批以#结束的字符串(字符串的长度不超过80),遇## 则全部输入结束。统计并输出每个字符串的有效长度。例如:输入:hello 12#abc+0##,表示连续输入2个字符串"hello 12"和"abc+0"。输出:8 5。(注:程序文件保存在“第1题”文件夹中)打开proj1.cpp文件,在两条星线
之间填入相应的代码,使程序完成该功能。
①调试正确的源程序清单
//程序功能:连续输入一批以#结束的字符串(字符串的长度不超过80),遇## 则全部输入结束,统计并输出
// 每个字符串的有效长度。例如:
// 输入:hello 12#abc+0##,表示连续输入2个字符串"hello 12"和"abc+0"。
// 输出:8 5。
//提示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include "stdio.h"
#define MAXLEN 80
int main( )
{
int len,count,i,k;
char ch,oldch,str[MAXLEN];
oldch=' ';
while((ch=getchar())!='#'||oldch!='#')
{
k=0;
while(ch!='#'&& k< MAXLEN-1)
{
str[k++]=ch;
ch=getchar();
}
oldch='#';
str[k]='\0';
//请在两条星线之间填入相应的代码, 输出该字符串并统计其长度。
/*********************************************************/
len=0;
k=0;
while(str[k]!='\0'){
len++;
k++;
}
/*********************************************************/
printf("%d\n",len);
}
}
②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。
题目(2)统计大写辅音字母。程序功能:连续输入一批以#结束的字符串(字符串的长度不超过80),遇##则全部
输入结束。统计并输出每个字符串中大写辅音字母的个数(大写辅音字母:除'A','E','I','O','U'以外的大写字母)。例如:输入HELLO#IT12#uieiaba##,表示连续输入3个字符串,输出3 1 0。(注:程序文件保存在“第2题”文件夹中)打开proj2.cpp文件,在两条星线之间填入相应的代码,使程序完成该功能。
①调试正确的源程序清单
//程序功能:连续输入一批以#结束的字符串(字符串的长度不超过80),遇##则全部输入结束。统计并输出
// 每个字符串中大写辅音字母的个数。
// 大写辅音字母:除'A','E','I','O','U'以外的大写字母。
// 例如:输入HELLO#IT12#uieiaba##,表示连续输入3个字符串,输出3 1 0。
//提示:除在指定位置添加语句之外,请不要改动程序中的其他内容。
#include "stdio.h"
#define MAXLEN 80
int main( )
{
int count,i,k;
char ch,oldch,str[MAXLEN];
oldch=' ';
while((ch=getchar())!='#'||oldch!='#')
{
k=0;
while(ch!='#'&& k< MAXLEN-1)
{
str[k++]=ch;
ch=getchar();
}
oldch='#';
str[k]='\0';
//请在两条星线之间填入相应的代码, 统计字符串str中大写辅音字母的个数。
/******************************************************************/
i=0;
count=0;
while(str[i]!='\0'){
if(str[i]>='A'&&str[i]<='Z')
if(str[i]!='A'&&str[i]!='E'&&str[i]!='I'&&str[i]!='O'&&str[i]!='U')
count++;
i++;
}
/******************************************************************/ printf("%d\n",count);
}
}
②运行结果:(提示:通过屏幕截图,贴粘程序运行界面)。