c语言网络教室第七章第八章第九章期中答案(18页).docx
《c语言网络教室第七章第八章第九章期中答案(18页).docx》由会员分享,可在线阅读,更多相关《c语言网络教室第七章第八章第九章期中答案(18页).docx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-c语言网络教室第七章第八章第九章期中答案-第 18 页c语言网络教室第七章、第八章、第九章、期中答案 c语言网络教室第七章、第八章、第九章、期中答案第七章:7-1. 打印空心六边形成绩: 10 / 折扣: 0.8输入 n 值,输出下例( n=4 )所示的边长为 n 的正六边形:输入: 边长 n 输出: 边长为 n 的六边形 #include"stdio.h"int main()int n,i,j;scanf("%d",&n);for(i=1;i<=n;i+)if(i=1) for(j=1;j<n;j+) printf("
2、");for(j=1;j<=n;j+) printf("*");else for(j=1;j<=2*n-2+i;j+)if(j=n-i+1|j=2*n-2+i) printf("*");else printf(" ");printf("n");for(i=n-1;i>=1;i-)if(i=1) for(j=1;j<n;j+) printf(" ");for(j=1;j<=n;j+) printf("*");else for(j=1;j&
3、lt;=2*n-2+i;j+)if(j=n-i+1|j=2*n-2+i) printf("*");else printf(" ");printf("n");7-2. 打印数字三角形成绩: 10 / 折扣: 0.8输入 n 值,输出下例( n=5 )所示的三角形:11 11 2 11 3 3 11 4 6 4 1输入: 行数 n 输出: 数字三角形(每个数字占3个字符的位置) 友情提示:同学们可以先把要输出的数存在一个二维数组中,然后再输出。如果学习了递归函数就不用使用数组了。#include"stdio.h"int
4、 main()int n,i,j,a100100;scanf("%d",&n);for(i=1;i<=n;i+)for(j=1;j<=i;j+)if(j=1|j=i) aij=1;else aij=ai-1j-1+ai-1j;printf("%3d",aij);printf("n");7-3. 贪吃的猴子成绩: 10 / 折扣: 0.8有一只猴子,第一天摘了若干个桃子 ,当即吃了一半,但还觉得不过瘾 ,就又多吃了一个。第2天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。以后每天早上都吃了前一天剩下的一
5、半加天数个(例如,第5天吃了前一天剩下的一般加5个)。到第n天早上再想吃的时候,就只剩下一个桃子了。输入:天数n输出:第一天的桃子个数#include"stdio.h"int main()int n,i,a20;scanf("%d",&n);an=1;for(i=n;i>1;i-) ai-1=2*(ai+i-1);printf("The monkey got %d peachs in first day.n",a1);7-4. 单词有多少?成绩: 10 / 折扣: 0.8用空格或换行分开的字符串称为单词。输入多行字符串,
6、直到遇到了单词 "stop" 时才停止。最后输出单词的数量。用于分割单词的空格或换行可能多于1个。输入: 多个字符串 输出: 单词的数量 #include"stdio.h"#include"string.h"int main()int i,j,n=0,p=0,b,k;char a20100;for(i=0;i<20;i+)scanf("%s",&ai);b=strlen(ai);for(j=0;j<b;j+)if(j>=4) if(aij-4=' '&&ai
7、j-3='s'&&aij-2='t'&&aij-1='o'&&aij='p'&&(aij+1=' '|aij+1='0') p=1; k=j; break;for(j=0;j<b;j+) if(j>=3) if(j-3=0&&aij-3='s'&&aij-2='t'&&aij-1 ='o'&&aij='p&
8、#39;&&(aij+1=' '|aij+1='0') p=1; k=j; break;if(p=0) for(j=0;j<=b;j+) if(aij=' '|aij='0') n+;if(p=1) for(j=0;j<=k+1;j+) if(aij=' '|aij='0') n+; break;printf("%dn",n);7-5. 在指定位置插入字符串成绩: 10 / 折扣: 0.8输入两个字符串 s1 、 s2 和 s1 中任意字符 k ,在
9、s1 中的指定字符 k 第一次出现的位置处插入字符串 s2 并输出。输入: 两个字符串 s1 、 s2 和 s1 中任意字符 k 输出: 插入后的字符串 s1 #include"stdio.h"#include"string.h"main()char s130,s230,k;int a,b,j;gets(s1);gets(s2);scanf("%c",&k);a=strlen(s1);for(j=0;j<a;j+) if(k=s1j) b=j; break;for(j=0;j<b;j+) printf("
10、%c",s1j);printf("%s",s2);for(j=b;j<a;j+) printf("%c",s1j);printf("n");第八章:8-1. 字符串排序成绩: 10 / 折扣: 0.8输入正整数 n 和 n 个字符串,请将它们按从小到大的顺序排列后输出。(字符串个数不大于10,字符串长度不大于20)。输入: 正整数 n 和 n 个字符串 输出: 按从小到大的顺序输出 n 个字符串 #include"stdio.h"#include"string.h"int mai
11、n()int n,i,j;char a1020,b20;scanf("%d",&n);for(i=0;i<n;i+) scanf("%s",ai);for(i=0;i<n;i+)for(j=0;j<i;j+)if(strcmp(ai,aj)<0)strcpy(b,ai);strcpy(ai,aj);strcpy(aj,b);for(i=0;i<n;i+) printf("%sn",ai);8-2. 展开缩写字符串成绩: 10 / 折扣: 0.8输入两个字符串 s1 和 s2,将 s1 复制到 s2
12、 并输出s2。复制时,若字符串 s1 中存在缩写形式(如:az)应转换为字符串 s2 中的完整形式(abcd xyz )。“-”号之前的字符必须小于“-”号之后的字符才是合法的缩写形式。例如,s1=“abc-fg” ,则复制后 s2=“abcdefg” ,如果 s1=“abc-af” ,则复制后s2=“abc-af” 。应能够处理任意可显示的 ASCII 字符。输入:字符串s1和s2 输出:展开后的s2#include"stdio.h"#include"string.h"int main()int i,j,n;char s130,s230;scanf(&
13、quot;%s",s1);scanf("%s",s2);n=strlen(s1);for(i=0;i<n;i+)if(s1i='-'&&i>0&&i<n-1&&s1i-1<s1i+1)for(j=1;j<s1i+1-s1i-1;j+) putchar(s1i-1+j);else printf("%c",s1i);printf("n");8-3. 科学记数法成绩: 10 / 折扣: 0.8对于非常大或者非常小的数据,我们通常用科学记数
14、法来表示。例如在科技文献和电脑中经常遇到的 2.3106 (计算机中的科学记数法表示为:2.3E6),或者 9.1810-5 (科学记树法表示:9.18E-5)这种类型的数据。 输入:用科学记数法表示的数据。即为符合C语言表示的科学记数法表示。输出:该数据的双精度表示说明: 1.输入数据的精度不高于 小数点后50位。2.输入数据时,在实数和幂之间有空格进行分隔,空格个数不定。3.结果保留到小数点后8位,如不足8位用0补足,超过8位则截断,不进行四舍五入的处理。友情提示:此题有点难啊!建议大家对问题要进行分析,分解为若干个小步骤,然后各个击破之。现在不要急于完成此题,待积累一定编程经验后再做。编
15、程思路:1.以字符方式一个一个读取输入数据,将尾数部分存入一个字符串,将指数部分转换为整数保存。尾数部分不要保存为实型数,因为尾数的小数部分可能很大,用实型数保存精度不够。2.检查尾数字符串中是否有小数点,如果输入的尾数没有小数点,则在字符串中插入小数点。3.根据给定的指数值移动小数点,可能有以下情况:(1)指数为正,右移小数点;在移动过程中已到字符串尾,则需要补0。(2)指数为负,左移小数点;在移动过程中已到字符串首,则要将字符串整体右移一位,在字符串首补0。4.找到现在小数点的位置,再向后数8个字符,如果后面数字字符的个数不够8个则补0,小数点后8个数字字符的后面是字符串结束标志。5.输出
16、字符串。建议采取渐增式的开发方法,编程过程中,完成以上一步后进行调试,正确后再编下一步的程序。程序一:#include"stdio.h"#include"string.h"int main()char a100;int b,i,k,t,n,p=0,q=0;scanf("%s E %d",a,&b);n=strlen(a);if(a0='-') printf("-"); n-; for(i=0;i<n;i+) ai=ai+1;for(i=0;i<n;i+) if(ai='.
17、') k=i; p=1;if(p=0) n+; an-1='.' k=n-1;if(b>=0) for(i=0;i<k;i+) if(ai!='0') t=i; q=1; break;if(q=0) for(i=k+1;i<=k+b;i+) if(ai!='0') t=i-1; q=1; break;if(q=1)if(n-1-k>=b+8) for(i=k;i<k+b;i+) ai=ai+1; ak+b='.' for(i=t;i<=k+b+8;i+) printf("%c&
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 网络教室 第七 第八 第九 期中 答案 18
限制150内