实验八参考答案
更新时间:2024-03-10 09:32:01 阅读量: 综合文库 文档下载
实验八:参考答案
1、编程实现:判断一个字符串是否是回文,如是输出“yes”,不是输出“no”,字符串由键盘输入。(所谓回文就是正读和反读均一样,如“abba”、“123321”等就是回文)最后将字符串及判断结果输出到文件中,并将本人学号输入到文件中)(C语言源程序文件名为81.c,程序运行结果文件名为81.txt)
【参考程序】 #include
{static char c[30]; int m,n,i; FILE *fp; clrscr();
fp=fopen(\ gets(c);
m=0;n=strlen(c)-1; while(m if(m>=n) fprintf(fp, \else fprintf(fp, \ fprintf(fp, \ fclose(fp); } 2、编程实现:统计一行字符串中单词的个数,单词用1个或多个空格分割(尽量不要抄袭课堂上介绍的程序)。将原字符串和统计结果输入到文件中,并将本人学号输入到文件中)(C语言源程序文件名为82.c,程序运行结果文件名为82.txt) 【参考答案】 #include \void main() {char s[81];int j,num=0;FILE *fp; fp=fopen(\ clrscr();gets(s); 将字符串输出到 fputs(s,fp); 文件中 for(j=1;s[j]!='\\0';j++) if(s[j-1]==' '&&s[j]!=' ')num++; 如果第一个单词前面没有空格,则单词数加1 if(s[0]!=' ')num++; fprintf(fp,\ fprintf(fp, \ fclose(fp); } 3、编程分别统计一个任意读入的字符串中字母字符、数字字符及其它字符的个数。(编程时请尽可能多用附录表中的有关字符操作函数,并将字符串及相关统计结果输出到文件中,最后将本人学号输入到文件中)(C语言源程序文件名为83.c,程序运行结果文件名为83.txt)。 【参考程序】 #include {char c[50]; int i,alpha=0,numeric=0,other=0; FILE *fp; gets(c); fp=fopen(\ for(i=0;c[i]!='\\0';i++) {if(isalpha(c[i])) alpha++; else if(isdigit(c[i])) numeric++; else other++;} fprintf(fp,\ fprintf(fp,\fprintf(fp, \fclose(fp); } 4、按下述排序方法编程实现对一维数组中n个元素的值从大到小排序。并将原数组及排序之后的数组输出到文件中,最后将本人学号输入到文件中)(C语言源程序文件名为84.c,程序运行结果文件名为84.txt)。 排序方法:先将a[0]~a[n-1]中的最大值和最小值分别交换到a[0]和a[n-1]中,再将a[1]~a[n-2]中的最大值和最小值分别交换到a[1]和a[n-2]中,??,其他依此类推。 【测试数据与运行结果】 测试数据:1 2 3 4 5 6 7 8 9 10 输出: 10 9 8 7 6 5 4 3 2 1 【 参考程序】 #include {int n=10,i,j,middle,a[ ]={1,2,3,4,5,6,7,8,9,10}; int max,min,temp; FILE *fp; fp=fopen(\ for(i=0;i {printf(\ printf(\ middle=n/2; for(i=0; i<=middle-1;i++) {if (a[n-i-1]>a[i]) {temp=a[i]; a[i]=a[n-i-1]; a[n-i-1]=temp; } max=a[i]; min=a[n-i-1]; for(j=i+1;j if(a[j] a[j]=a[n-i-1]; a[n-i-1]=min; } } } for(i=0;i {printf(\ printf(\ fprintf(fp, \fclose(fp); } 5、现有10个十六进制数分别以字符串的形式存放在一个二维数组中,找出其中所有的素数,以十六进制形式和十进制形式将每个素数输出到文件中,最后将本人学号输入到文件中)(C语言源程序文件名为85.c,程序运行结果文件名为85.txt)。 【测试数据与运行结果】 测试数据:\输出: B3 179 11 17 1D 29 13 19 【参考程序】 #include {char a[10][5]={\ int i,j,n,x; FILE *fp; fp= fopen(\ for(i=0;i<10;i++) { n=0; for(j=0;a[i][j]!='\\0';j++) {if(a[i][j]>='A'&&a[i][j]<='Z') x=a[i][j]-55; /* 'A'的ASCII码值为65 */ else x=a[i][j]-48; /* 字符'0'的ASCII码值为48 */ n=n*16+x; /*将16进制数转换成10进制数*/ } x=2; while(n%x!=0)x++; /*此循环判断n是否是素数*/ if(x==n) /*满足该条件表示n是素数*/ {printf(\ fprintf(fp,\ } } fprintf(fp, \ fclose(fp); } 四、附加题: 6、编程实现下列功能:在字符串s中所有出现子串s1的后面插入子串s2。要求将原字符串s、s1、s2及结果s字符串输出到文件中,最后将本人学号输入到文件中)(C语言源程序文件名为86.c,程序运行结果文件名为86.txt)。 【测试数据与运行结果】 测试数据:s:"123452367" s1:"23" s2:"ab" 输出:123ab4523ab67 【参考程序】 #include {char s[30]=\ int i=0,j,k,m,len2; FILE *fp; fp= fopen(\ printf(\ fprintf(fp,\ len2=strlen(s2); /*求出字符串s2的长度*/ while(s[i]!='\\0') { j=0; while(s[i]==s1[j]&&s1[j]!='\\0') /*在字符串s中找子串s1*/ { i++; j++; } if(s1[j]=='\\0') /*该条件成立表示已在字符串s中找到了子串s1*/ { for(k=strlen(s); k>=i; k--) /*此for循环的功能为在字符串s中出现子串s1 s[k+len2]=s[k]; 的后面挪出可以插入子串s2的位置*/ for(m=0;m s[i+m]=s2[m]; 插入子串s2*/ } i++; /*进入下一次循环,接着寻找s中还有没有子串s1*/ } printf(\fprintf(fp, \fclose(fp); }
正在阅读:
实验八参考答案03-10
银行利率及优势对比2.22日跟新(1)03-18
论文研究方法有哪些06-22
2019年最新《中华人民共和国公务员法》题库及答案10-24
人信地产公司人力资源管理手册05-09
关于告白歌曲有哪些05-26
数据库oracle常用命令07-28
如何做微营销02-19
首都图书馆观后感12-11
初中数学教师个人期末工作总结08-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 答案
- 参考
- 实验
- 金刚经全文
- 九年级化学第十二单元课题3 有机合成材料导学案
- 三上语文《练习二》电子教案2017.10.28
- 评价与培训相结合建立教师队伍良性发展机制
- 国标苏教版小学数学二年级(上册)期中测试卷
- 自学考试国际运输与保险重点
- 学校每天五分钟安全教育内容 - 图文
- 山西太长高速公路监理实施办法
- 2018一建《工程经济》考试真题及答案
- 焕发工作激情 - - 强化领先意识
- 岗位评价指标体系
- 长沙市建设工程施工现场关键岗位人员
- 苏教版六年级数学下册第一单元测试题
- LeicaM镜头详谈剖析
- GMAT逻辑部分知识点大放送!
- γ辐射剂量率原始数据记录
- 2009年元旦献辞
- 关于开展2011年度探矿权年检工作的通知155号
- 读《我是你的守护星2》有感
- 六种神奇抗衰老食物