《C语言程序设计》(江宝钏著)实验七答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7.4 实验七字符与字符串处理

一、实验目的与要求

1.掌握C语言字符型数据的概念,理解字符型与整型数据之间的关系。

2.掌握字符的输入与输出。

3.掌握转义字符常量、字符串常量的使用。

4.掌握字符、字符串与字符数组的输入与输出。

5.掌握字符串函数的使用\字符串数组的使用。

6.实验课时2学时

二、实验内容

1.程序改错题

①调试下列程序,使之具有如下功能:任意输入两个字符串(如:"ningbo"和"china"),

并存放在a,b两个数组中。然后把较短的字符串放在a数组,较长的字符串放在b数组。并输出。程序中的strlen是库函数,功能是求字符串的长度,它的原型保存在头文件"string.h"中。调试时注意库函数的调用方法,不同的字符串输入方法,通过错误提示发现程序中的错误。

提示发现程序中的错误。

#include

#include

void main()

{

char a[10],b[10],ch;

int c,d,k;

scanf("%s",&a);

scanf("%s",&b); /* error */

printf("a=%s,b=%s\n",a,b);

c=strlen(a);d=strlen(b);

if(c>d)

{

for(k=0;k

{

ch=a[k];a[k]=b[k];b[k]=ch;

}

a[k]='\0'; /* error */

}

printf("a=%s\n",a);

printf("b=%s\n",b);

}

答:

#include

#include

void main()

{

char a[10],b[10],ch;

int c,d,k;

scanf("%s",&a);

scanf("%s",&b);

printf("a=%s,b=%s\n",a,b);

c=strlen(a);d=strlen(b);

if(c>d)

{

for(k=0;k

{

ch=a[k];

a[k]=b[k];

b[k]=ch;

}

a[k]='\0';

b[k]='\0';

}

printf("a=%s\n",a);

printf("b=%s\n",b);

}

②下列给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数fun中的错误,使它能得出正确的结果。注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

void fun(char *s)

{

int i,j;

for(i=0;j=0;s[j]!='\0';i++) /* error */

if(s[i]>='0' && s[i]<='9')

s[j++]=s[i];

s[j]=”\0”; /* error */

}

void main()

{

char item[80];

printf("\nEnter a string :");

gets(item);

printf("\n\nThe string is : %s\n",item);

fun(item);

printf("\n\nThe string of changing is : %s\n",item);

}

答:

#include

void fun(char *s)

{

int i,j;

for(i=0,j=0;s[i]!='\0';i++) //此句第一个分号改为逗号

if(s[i]>='0'&&s[i]<='9')

{

s[j]=s[i];

j++;

}

s[j]='\0'; //引号错误

}

void main()

{

char item[80];

printf("\nEnter a string :");

gets(item);

printf("\n\nThe string is : %s\n",item);

fun(item);

printf("\n\nThe string of changing is : %s\n",item);

}

2.一般编程题

编程题1

请编一个函数fun(char*s),该函数的功能是把字符串中的内容逆置。

例如:字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。

注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。

#include

#include

#define N 81

void fun ( char s[])

{

/*请填写完整*/

}

void main()

{ char a[N];

printf ( "Enter a string : ");

gets ( a );

相关文档
最新文档