C语言实验总答案(8)
}
printf(\起始位置超出范围!\\n\
8. 编程:利用字符串库函数puts, gets, strcat, strcmp, strcpy, strlen完成下述操作:
? 读入三个字符串str1,str2,str3 ? 输出这三个字符串
? 分别求出这三个字符串的长度; ? 比较str1和str2的大小;
? 将str2连接到str1之后,并输出连接后的str1; ? 复制str3到str1,并输出复制操作后的str1; #include
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
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 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 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 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(\
相关推荐:
- [资格考试]机械振动与噪声学部分答案
- [资格考试]空调工程课后思考题部分整合版
- [资格考试]电信登高模拟试题
- [资格考试]2018年上海市徐汇区中考物理二模试卷(
- [资格考试]坐标转换及方里网的相关问题(椭球体、
- [资格考试]语文教研组活动记录表
- [资格考试]广东省2006年高应变考试试题
- [资格考试]LTE学习总结—后台操作-数据配置步骤很
- [资格考试]北京市医疗美容主诊医师和外籍整形外科
- [资格考试]中学生广播稿400字3篇
- [资格考试]CL800双模站点CDMA主分集RSSI差异过大
- [资格考试]泵与泵站考试复习题
- [资格考试]4个万能和弦搞定尤克里里即兴弹唱(入
- [资格考试]咽喉与经络的关系
- [资格考试]《云南省国家通用语言文字条例》学习心
- [资格考试]标准化第三范式
- [资格考试]GB-50016-2014-建筑设计防火规范2018修
- [资格考试]五年级上册品社复习资料(第二单元)
- [资格考试]2.对XX公司领导班子和班子成员意见建议
- [资格考试]关于市区违法建设情况的调研报告
- 二0一五年下半年经营管理目标考核方案
- 2014年春八年级英语下第三次月考
- 北师大版语文二年级上册第十五单元《松
- 2016国网江苏省电力公司招聘高校毕业生
- 多渠道促家长督导家长共育和谐 - 图文
- 2018 - 2019学年高中数学第2章圆锥曲线
- 竞争比合作更重要( - 辩论准备稿)课
- “案例积淀式”校本研训的实践与探索
- 新闻必须客观vs新闻不必客观一辩稿
- 福师大作业 比较视野下的外国文学
- 新编大学英语第二册1-7单元课文翻译及
- 年产13万吨天然气蛋白项目可行性研究报
- 河南省洛阳市2018届高三第二次统一考试
- 地下车库建筑设计探讨
- 南京大学应用学科教授研究方向汇编
- 2018年八年级物理全册 第6章 第4节 来
- 毕业论文-浅析余华小说的悲悯性 - 以《
- 2019年整理乡镇城乡环境综合治理工作总
- 广西民族大学留学生招生简章越南语版本
- 故宫旧称紫禁城简介




