教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 资格考试 >

C语言实验总答案(8)

来源:网络收集 时间:2026-05-14
导读: } printf(\起始位置超出范围!\\n\ 8. 编程:利用字符串库函数puts, gets, strcat, strcmp, strcpy, strlen完成下述操作: ? 读入三个字符串str1,str2,str3 ? 输出这三个字符串 ? 分别求出这三个字符串的长度; ? 比

}

printf(\起始位置超出范围!\\n\

8. 编程:利用字符串库函数puts, gets, strcat, strcmp, strcpy, strlen完成下述操作:

? 读入三个字符串str1,str2,str3 ? 输出这三个字符串

? 分别求出这三个字符串的长度; ? 比较str1和str2的大小;

? 将str2连接到str1之后,并输出连接后的str1; ? 复制str3到str1,并输出复制操作后的str1; #include #include void main() {

char str1[80], str2[80], str3[80];

printf(\请输入字符串str1以回车键结束:\\n\gets(str1);

printf(\请输入字符串str2以回车键结束:\\n\gets(str2);

printf(\请输入字符串str3以回车键结束:\\n\gets(str3);

printf(\三个字符串分别是:\\n\printf(\printf(\printf(\

printf(\三个字符串的长度分别是:\\n\

printf(\printf(\printf(\if(strcmp(str1, str2)>0)

printf(\字符串str1大于str2\\n\else if(strcmp(str1, str2)==0) printf(\字符串str1等于str2\\n\else

printf(\字符串str1小于str2\\n\

strcat(str1,str2);

printf(\连接到str1之后: %s\\n\strcpy(str1,str3);

printf(\复制str3到str1: %s\\n\}

选作题:

输入一个小写字母组成的英文句子,统计该句子有几个英文单词,并统计每个字母出现的次数,并将句子中每个单词的首字母大写后输出。

如:输入: this is a cat!

输出: 4个单词;

每个字母出现次数t:2 h:1 i:2 s:2 a:2 c:1 This Is A Cat!

#include void main() {

char s[80];

1

{

j=s[i]-'a'; // 计算该字母在26个字母中的序号 count[j]++; }

{

wordnum++; //单词个数增加1 s[i]=s[i]-32; //小写换大写 flag=0; }

else if(s[i]==' ' && s[i+1]>='a' && s[i+1]<='z')

flag=1;

//当前是空格,但下一个字符是字母,则该字母一定是单词的起始字母flag=1。 //即判断一个单词的起始字符,单词间用空格区分,这里考虑了单词间多个空格的情

}

printf(\句子中有%d个单词;\\n\printf(\每个字母出现的次数:\for(i=0; i<26; i++)

if(i==0 && s[i]!=' ' || flag==1) //句首单词及每个单词第一个字母的处int count[26]={0}; //与26个字母对应,统计各个字母出现的次数 int i, j, wordnum=0, flag=0;

printf(\请输入一个英文句子(小写字母)以回车键结束:\gets(s);

for(i=0; s[i]; i++) {

if(s[i]>='a' && s[i]<='z') //逐个字母判断,使其对应的出现次数增加

{

if(count[i]!=0)

printf(\}

printf(\

printf(\每个单词首字母大写后:\ puts(s); }

实验七 函数——参考程序

一、程序调试方法实验

1.找出并改正以下源程序中错误,得出正确的运行结果。 源程序如下:

#include

//函数声明 int add(int a, int b); void main() { int a,b; scanf(\ printf(\ }

void add(int a,b) //改为int add(int a, int b) { return a+b; }

2.找出并改正以下源程序中错误,得出正确的运行结果,其中max函数的功能是得到数组中最大元素的值。 源程序如下:

#include

#define N 10; //去掉尾部分号 float max(float a[], int n) //尾部加上分号 void main() { float data[N]; int i; for(i=0;i

float max(float a[], int n) { int i,result; //改为 int i;

float result; //增加result=a[0]; for(i=0;i result) result = a[i]; } return result; }

3.找出并改正以下源程序中错误,得出正确的运行结果,其中

converse函数的功能是逆序输出

n个字符。

解题思路:已知字符串的长度,逆序输出字符串 如果只有1个字符,直接输出该字符后结束

否则:输出后面的所有字符之后,再输出该字符

源程序如下: #include

void main() { int i=5; void converse(int n); printf(\ converse(i); printf(\ }

void converse(n); //改为void converse(int n) 并去掉分号 { char next; if(n>=1) //改为 if(n= =1) { next=getchar(); putchar(next); } else { next=getchar(); converse(n-1); putchar(next);

}

}

四、编写程序

1、编写一个函数,其功能是判断形式参数是否为小写字母,若是,返回其对应的大写字母,否则返回原字符。然后在main函数中输入一个字符,调用该函数得到其大写字母并输出

#include char isLow(char ch) {

if(ch >= 'a' && ch <= 'z') return ch - 32; else

return ch; }

void main(void) {

char ch;

printf(\请输入一个字符:\\n\ scanf(\

printf(\}

2、编写函数reverse(int number),它的功能是将number逆序输出,在main函数中输入一个整数,调用该函数得到逆序的数并输出。例如reverse(11233)的返回值为33211。

#include int reverse(int n) {

int rev=0,num;

do {

num=n ;

rev = rev*10 + num; n=n/10; }while(n); return rev; }

void main(void) {

int num,revnum;

printf(\请输入一个整数:\\n\ scanf(\

…… 此处隐藏:1035字,全部文档内容请下载后查看。喜欢就下载吧 ……
C语言实验总答案(8).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/412690.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)