1、【4.16】输入n值,输出如图所示图形。(例为n=6时)【4.17】编写程序,输出如图所示sin(x) 函数0到2的图形。【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。若屏幕的横向为x轴,纵向为y轴, 在屏幕上显示0360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。其中cos图形用*表示,f(y)用+表示,在两个图形的交点处则用f(y)图形的符号。【4.4】分析:打印此图形用两重循环实现。图形要重复n行,故采用循环结构实现循环n次,循环体内部打印一行*号,把上述思路表示为:for(i=1;i=n;i
2、+)打印一行号;每行有n个号,再采用循环结构实现n次循环,循环内部用格式输出语句打印一个号,即:for(j=1;jj+)printf();按照上述思路,实现打印矩形。参考答案:main() int i,j,n;nPlease Enter n:scanf(%d,&n); for(j=1;n【4.5】分析:此图形和上题的区别在于在每一行先要打印空格,然后再打印n个号,在上题第一层循环体内打印号的循环前面增加一个循环打印空格。每行空格的个数是逐行减少的,由于第一层循环的控制变量i是逐行增1,所以用一个固定值的数减去i就可实现对空格个数的控制,在此题中固定值可使用变量n。 main( )=n-i; 【
3、4.6】分析:此题和上题的区别在于每行的数量逐行减少,可以使用上题控制空格个数的思路来控制号的个数,请注意每行的个数都是奇数。=2*i-1;【4.7】分析:此题图形是第3题图形的垂直反转,在编程上我们可以变换一个思路。对于图形中的第i行(1in),共需要输出2n-i个字符,其中前面的i-1个字符为空格,后面的字符为号。按照这一思路可以编写出如下程序。, &for( i=1;i+ ) /* 重复输出图形的n行 */ for( j=1;=2*n-i;j+ ) /* 重复输出图形一行中的每个字符 */if(jn-i+1 & (i=1|i=n) printf(*n【4.10】分析:此图形可以理解为两个
4、空心梯形反向连接而成,因此可以利用上题的思路进行输出。i+) /* 输出图形的上半部分(含中心行) */=2*n-i-1;if(j=i) printf(n;i+) /* 输出图形的下半部分(不含中心行) */=n+i;if(j=n-i) printf(【4.11】分析:此题与上题的区别在于打印号的位置不同,编程时要找出应打印号的位置和两个循环变量i、j以及行数n的关系。scanf ( i=1) printf(=3*(n-1)-i;if(j=i+1 | ji+1 & i=n-1) printf(【4.12】参考答案:if(j=n-i+1 | i=1 | i=n) printf(【4.13】参考答
5、案:if(j=1 | j=n-i+1) printf(* =i+1;if(j=1 | j=i+1) printf(【4.14】参考答案:if(j=1 | j=i | j=n) printf(【4.15】参考答案:=n+i-1;if(jn-i) printf(i) printf(【4.16】参考答案:=n+i-2;if(j=n-i+1) printf(【4.17】分析:首先对图形进行设计,坐标的X轴和Y轴分别对应屏幕的列和行,一个正弦函数的周期为0360度,我们把一个步长定义为10度,打印时每换一行等于函数的自变量增加10度;屏幕的列宽为80,函数值为0对应屏幕的第40列,sin(x)的值在-11,变换成列数为以0为中心的-3030,对应屏幕上第1070列。设计程序时,控制换行的自变量i乘以10得到正弦函数的X值,调用库函数sin()求出函数值再乘以30输出的列宽,因为我们以屏幕的第40列为0点,故再加上40得到应在屏幕上显示的点。#define PAI 3.14159#include dou
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1