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

内容发布更新时间 : 2025/2/24 7:02:25星期一 下面是文章的全部内容请认真阅读。

7.4 实验七 字符与字符串处理 一、实验目的与要求

1. 2. 3. 4. 5. 6.

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

掌握转义字符常量、字符串常量的使用。 掌握字符、字符串与字符数组的输入与输出。 掌握字符串函数的使用\\字符串数组的使用。 实验课时2学时

二、实验内容 1.程序改错题

① 调试下列程序,使之具有如下功能:任意输入两个字符串(如:\和\,并存放在a,b两个数组中。然后把较短的字符串放在a数组,较长的字符串放在b数组。并输出。程序中的strlen是库函数,功能是求字符串的长度,它的原型保存在头文件\中。调试时注意库函数的调用方法,不同的字符串输入方法,通过错误提示发现程序中的错误。 提示发现程序中的错误。 #include #include void main() {

char a[10],b[10],ch; int c,d,k; scanf(\

scanf(\ /* error */ printf(\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(\printf(\ } 答:

#include #include void main() { }

② 下列给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新

char a[10],b[10],ch; int c,d,k; scanf(\scanf(\ printf(\c=strlen(a);d=strlen(b); if(c>d) { }

printf(\printf(\

for(k=0;k

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

的字符串,并取代原字符串。请改正函数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(\ gets(item);

printf(\ fun(item);

printf(\} 答:

#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(\ gets(item);

printf(\ fun(item);

printf(\}

2.一般编程题

编程题1

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

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

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

#include #include #define N 81 void fun ( char s[]) {

/*请填写完整*/ }

void main() { char a[N];

printf ( \ a string : \ gets ( a );