C语言图形输出习题

合集下载

C语言 用循环程序输出以下图案

C语言 用循环程序输出以下图案
printf(" "); for(k=0;k<=2*i;k++) 控制星号
printf("*"); printf("\n"); } for(i=0;i<=2;i++) {for(j=0;j<=i;j++)
printf(" "); for(k=0;k<=4-2*i;k++)
printf("*"); printf("\n"):从键盘上输入若干个学生的成绩,统计并输出最高 成绩、最低成绩和平均成绩,当输入负数时结束输入。
实训 2 设计程序输出 Fibonacci 数列的前 50 个数,其开始两个数是 1、1,从第三个数 开始,每个数等于前两个数之和。例如,1、1、2、3、5、8、13、…。
用循环程序输出以下图案。(P96-实-7)
* *** ***** ******* ***** ***
*
解题思路:此类题目属于二维图形的输出,找到规律的行(此题前 4 行有一样的规律,后 3 行一样的规律) 一般有一个通式,
#include"math.h" main() {int i,j,k;
for(i=0;i<=3;i++) 控制行 {for(j=0;j<=2-i;j++) 控制空格
实训 3 计算 1+1/2+1/4+…+1/50 的值,并显示出来。 实训 4 输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。 实训 5 用循环程序输出以下图案。
* *** ***** ******* ***** ***

C语言典型例题 关于图形输出

C语言典型例题  关于图形输出
} 从上边一系列此类图形输出编程无非就是找行数、空格数及星号
数之间的关系,在进行一系列组合便能输出更为复杂的图形。亲爱的 同学希望这对你能有所帮助。
{for(j=1;j<i+1 ;j++) printf(" ");
(10)
for(k=1;k<=7-2*i;k++) printf("*"); printf("\n"); } } (8) #include "stdio.h" void main() { int i,j,k; for(i=1;i<=5;i++) {for(j=1;j<=5-i;j++) printf(" "); for(k=1;k<=i;k++) printf("*"); printf("\n"); } for(i=1;i<=4;i++) {for(k=1;k<=5-i;k++) printf("*"); printf("\n"); } } (9) #include "stdio.h" void main() { int i,j;
(4)
#include "stdio.h"
void main()
{ int i,j,k;
for(i=1;i<=7;i++)
{for(j=1;j<=8-i;j++) printf("*");
printf("\n");

c语言练习题

c语言练习题
2-6:36个人搬36块砖,男人一人搬3块,女人一人搬1块,小孩2人搬一块,问男人,女人,小孩各多少人?
2-7:将一元钱分成一分,二分,五分币,共有多少种方法?
三、简单的判断问题
3-1:输入一个数n,判断该数是不是偶数,是偶数输出Y,不是偶数输出N
3-2:输入3-12之间的一个数,输出该月有几天。
四、累加问题与累乘问题
18.1乒乓球
这是一份乒乓球比赛的信息记录。
WWWLLLLWWLLWLWLLLLW
W代表你得一分,L代表对手得一分。
编写程序,由键盘输入比赛信息(WL字符串形式),输出当前的比分,你的分数在前,中间以冒号分隔。
例如,对于上面的信息记录,应当输出
8:11
18.2陶陶摘苹果
陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。例如:对于输入100 200 150 140 129 134 167 198 200 111 110,应当输出5
**
****
******
********
**********
1-6:编写程序,输出以下图形。
*
***
*****
*******
*********
1-7:编写程序,输出以下图形。
*
***
*****
*******
*********
1-8:编写程序,输出以下图形。(教材130页6.14)
*
***
*****

C语言图形题

C语言图形题

1-4.打印梯形成绩: 10 / 折扣: 0.8输入n 值,输出如下例(n=4 )所示的高和上底均为n 的等腰梯形:****************************(上图中_表示空格)输入:梯形的高n输出:高和上底均为n 的等腰梯形测试输入时间限制内存限制额外进程成绩: 10 / 折扣: 0.8输入n 值,输出如下例(n=4 )所示的Z 形图形:**********输入:图形的高n输出:高为n 的Z 形图形测试输入期待的输出时间限制内存限制额外进程测试输入时间限制内存限制额外进程测试输入期待的输出时间限制内存限制额外进程在每行结束时换行3-1. 打印菱形图形成绩: 10 / 折扣: 0.8输入n ,输出如下例(n=3 )所示的边长为n 的菱形:*************输入:边长n输出:边长为n 的菱形测试输入期待的输出时间限制内存限制额外进程在每行结束时换行输入图形的高n 和首字符c ,输出如下例(c='A' ,n=5 )所示的图形 . ABCDEBCDEFCDEFGDEFGHEFGHI输入:高n 和首字符c输出:高为n 和首字符为c 的平行四边形测试输入期待的输出时间限制内存限制额外进程在每行结束时换行成绩: 10 / 折扣: 0.8输入n 值,输出如下例(n=4 )所示的高和上底均为n 的等腰梯形:***** ** **********输入:高n输出:高和上底均为n 的等腰梯形测试输入时间限制内存限制额外进程在每行结束时换行成绩: 10 / 折扣: 0.8上次你已经打印了一行*号,这次在屏幕上输出一个由星号组成的n 行n 列的正方形。

程序输入n 值,输出如下例(n=4 )所示的高和上底均为n 的正方形:****************输入:高n输出: n 行n 列的正方形测试输入时间限制内存限制额外进程在每行结束时换行成绩: 10 / 折扣: 0.8输入图形的高n 和顶行字符c 。

C语言编程实验

C语言编程实验

C语言实验习题7-1 输出图形(10 分)编写程序输出图形。

第一行输出12个$,第二行先输出3个空格,然后再输出hello!,第三行输出12个$输入样例:输出样例:代码:#include <stdio.h>int main(){printf("$$$$$$$$$$$$\n"" hello!\n""$$$$$$$$$$$$\n");return 0 ;}7-5 计算华氏温度(5 分)本题要求编写程序,计算摄氏温度26°C 对应的华氏温度。

计算公式:F=9×C/5+32,式中:C 表示摄氏温度,F表示华氏温度,输出数据要求为整型。

输入格式:本题目没有输入。

输出格式:按照下列格式输出代码:#include <stdio.h>int main(){int f;int c;c=26;f=9*c/5+32;printf("celsius = 26, fahr = %d",f);return 0 ;}7-9 逆序的三位数(10 分)程序每次读入一个正3位数,然后输出按位逆序的数字。

注意:当输入的数字含有结尾的0时,输出不应带有前导的0。

比如输入700,输出应该是7。

输入格式:每个测试是一个3位的正整数。

输出格式:输出按位逆序的数。

输入样例:输出样例:代码:#include <stdio.h>int main(){int n,a,b,c;scanf("%d",&n);a=n/100;b=n/10-a*10;c=n-a*100-b*10;int d;d=a+b*10+c*100;printf("%d",d);return 0 ;}7-10 整数四则运算(10 分)本题要求编写程序,计算2个正整数的和、差、积、商并输出。

题目保证输入和输出全部在整型范围内。

C语言编程实验

C语言编程实验

C语言实验习题7-1 输出图形(10 分)编写程序输出图形。

第一行输出12个$,第二行先输出3个空格,然后再输出hello!,第三行输出12个$输入样例:输出样例:代码:#include <stdio.h>int main(){printf("$$$$$$$$$$$$\n"" hello!\n”"$$$$$$$$$$$$\n");return 0 ;}7-5 计算华氏温度(5 分)本题要求编写程序,计算摄氏温度26°C 对应的华氏温度。

计算公式:F=9×C/5+32,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。

输入格式:本题目没有输入。

输出格式:按照下列格式输出代码:#include 〈stdio。

h>int main(){int f;int c;c=26;f=9*c/5+32;printf(”celsius = 26, fahr = %d”,f);return 0 ;}7-9 逆序的三位数(10 分)程序每次读入一个正3位数,然后输出按位逆序的数字。

注意:当输入的数字含有结尾的0时,输出不应带有前导的0。

比如输入700,输出应该是7。

输入格式:每个测试是一个3位的正整数。

输出格式:输出按位逆序的数。

输入样例:输出样例:代码:#include <stdio。

h〉int main(){int n,a,b,c;scanf(”%d”,&n);a=n/100;b=n/10—a*10;c=n—a*100—b*10;int d;d=a+b*10+c*100;printf("%d",d);return 0 ;}7—10 整数四则运算(10 分)本题要求编写程序,计算2个正整数的和、差、积、商并输出。

题目保证输入和输出全部在整型范围内。

输入格式:输入在一行中给出2个正整数A和B。

输出格式:在4行中按照格式“A 运算符 B = 结果"顺序输出和、差、积、商。

C语言-打印字符图形

C语言-打印字符图形

打印字符图形例1 用for循环编程画出下列图形:MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM分析:该图形一共有10行,每一行增加一个字符,所以,应循环10次,每次输出一行,其循环模式为:for( i=1;i<=10;i++){输出第i行换行}“输出第i行”是在for循环中的一个小循环。

每次执行“输出第i行”,其长度都是不一样的,但长度的变化正好与循环变量i同步,故可以依赖于i。

注意到第i行的M字符数与i的关系。

行 i M数1 1 12 2 23 3 34 4 4…10 10 10所以,可以得到“输出第i行”的循环为:for(j=1;j<=i;j++)printf(“%c”,’M’)完整的程序如下:#include <stdio.h>main(){int i,j;for(i=1;i<=10;i++){for(j=1;j<=i;j++)printf("%c",'M');printf("\n"); }}说明:对付这种字符图形,一般用两重循环,外循环遍历所有行,内循环遍历行中每个字符。

例2 输出下列图形:MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM分析:该图形一共有10行,这次要考虑每行中,先输出若干个空格,所以,其外循环为:for( i=1;i<=10;i++){输出若干个空格输出若干M换行}下面列出在第i行,其空格数,M数与i的关系为:行i 空格数 M数1 0 192 1 173 2 154 3 13…10 9 1即第i行的空格数为i-1个,M个数为21-2i。

即在第i行输出空格和输出M字符的内循环分别为:for(j=1;j<=i-1;j++)printf(“”);for(k=1;k<=21-2i;k++)printf(“%c”,’M’);合起来,构成一个完整程序如下:#include <stdio.h>main(){ int i,j,k;for(i=1;i<=10;i++){for(j=1;j<=i-1;j++)printf(" ");for(k=1;k<=21-2*i;k++)printf("%c",'M');printf("\n");}}例3 输出下列图形:AABCABCDEABCDEFGABCDEFGHIABCDEFGHIJKABCDEFGHIJKLMABCDEFGHIJKLMNOABCDEFGHIJKLMNOPQABCDEFGHIJKLMNOPQRS分析:该图形一共有10行,这次要考虑每行中,先输出若干个空格,所以,其外循环为:for( i=1;i<=10;i++){输出若干个空格输出若干字符换行}如果要输出A起头依序的n(n<27)个字母,可以为:for(ch='A';ch<'A'+n;++ch)printf("%c",ch);下面分析每一行中的空格数与字符数与第i行之间的关系着手:行i 空格数字符数1 9 12 8 33 7 54 6 7…10 0 19即第i行的空格数据为10-i个,字符数为2i-1。

C语言打印图形

C语言打印图形
for(j=1;j<=n;j++)printf("*");
printf("\n");}}
1-3. 编程,输入n值,输出如下例(n=4)所示的图形:
*
***
*****
*******
————
main()
{int i,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{for(j=1;j<=n-i;j++)printf(" ");
******
**** 当 n=4 时
————
main()
{int i,j,k,n;
printf("\nInput n=");
scanf("%d",&n);
for(i=1;i<=2*n-1;i++)
{if(i<=n)k=i;else k=2*n-i;
for(j=1;j<=n-k;j++)printf(" ");
for(j=1;j<=2*k-2+n;j++)printf("*");
printf("\n");}}
1-9. 编程,输入n值,输出如下例(n=4)所示的图形:
****
*
*
****
————
main()
{
int i,j,n;
printf("\nInput n=");
scanf("%d",&n);

C语言打印图形

C语言打印图形

1-1. 编程,输入n,输出如下例〔n=5〕所示的图形:*************************————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=n;j++)printf("*");printf("\n");}}1-2. 编程,输入n,输出如下例〔n=5〕所示的图形:*************************————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=i-1;j++)printf(" ");for(j=1;j<=n;j++)printf("*");printf("\n");}}1-3. 编程,输入n值,输出如下例〔n=4〕所示的图形:****************————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i-1;j++)printf("*");printf("\n");}}1-4. 编程,输入n值,输出如下例〔n=4〕所示的图形:****************————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=i-1;j++)printf(" ");for(j=1;j<=2*(n-i)+1;j++)printf("*");printf("\n");}}1-5. 编程,输入n值,输出如下例〔n=4〕所示的高和上底均为n的等腰梯形:****************************————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i-2+n;j++)printf("*");printf("\n");}}1-6. 编程,输入n值,输出如下例〔n=4〕所示的高和下底均为n的等腰梯形:****************************————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=n;i>=1;i--){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i-2+n;j++)printf("*");printf("\n");}}1-7. 编程,输入n,输出如下例〔n=3〕所示的边长为n的菱形:*************————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=n-k;j++)printf(" ");for(j=1;j<=2*k-1;j++)printf("*");printf("\n");}}1-8. 编程,输入n值,输出如下例〔n=4〕所示的边长均为n的正六边形:********************************************** 当n=4 时————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=n-k;j++)printf(" ");for(j=1;j<=2*k-2+n;j++)printf("*");printf("\n");}}1-9. 编程,输入n值,输出如下例〔n=4〕所示的图形:**********————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){if(i==1||i==n){for(j=1;j<=n;j++)printf("*");printf("\n");}else{for(j=1;j<=n-i;j++)printf(" ");printf("*\n");}}}1-10. 编程,输入n值,输出如下例〔n=4〕所示的图形:**********————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){if(i==1||i==n){for(j=1;j<=n;j++)printf("*");printf("\n");}else{for(j=1;j<=i-1;j++)printf(" ");printf("*\n");}}}1-11. 编程,输入n值,输出如下例〔n=5〕所示的图形:****** ** ** ******————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");printf("*");for(j=1;j<=n-2;j++)printf("%s",i==1||i==n?"*":" ");printf("*");printf("\n");}}1-12. 编程,输入n值,输出如下例〔n=5〕所示的图形:****** ** ** ******————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=n;i>=1;i--){for(j=1;j<=n-i;j++)printf(" ");printf("*");for(j=1;j<=n-2;j++)printf("%s",i==1||i==n?"*":" ");printf("*");printf("\n");}}1-13. 编程,输入n值,输出如下例〔n=4〕所示的图形:** ** ********————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n-1;i++){for(j=1;j<=n+i-1;j++)printf("%s",j==n-i+1||j==n+i-1?"*":" ");printf("\n");}for(j=1;j<=2*n-1;j++)printf("*");}1-14. 编程,输入n值,输出如下例〔n=4〕所示的图形:******** ** **————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(j=1;j<=2*n-1;j++)printf("*");printf("\n");for(i=n-1;i>=1;i--){for(j=1;j<=n+i-1;j++)printf("%s",j==n-i+1||j==n+i-1?"*":" ");printf("\n");}}1-15. 编程,输入n值,输出如下例〔n=4〕所示的高和上底均为n的等腰梯形:***** ** ***********————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");printf("*");for(j=1;j<=n-4+2*i;j++)printf("%s",i==1||i==n?"*":" ");printf("*");printf("\n");}}1-16. 编程,输入n值,输出如下例〔n=4〕所示的高和下底均为n的等腰梯形:*********** ** *****————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=n;i>=1;i--){for(j=1;j<=n-i;j++)printf(" ");printf("*");for(j=1;j<=n-4+2*i;j++)printf("%s",i==1||i==n?"*":" ");printf("*");printf("\n");}}1-17. 编程,输入n值,输出下例〔n=3〕所示的边长为n的菱形:** ** ** **————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=n+k-1;j++)printf("%s",j==n-k+1||j==n+k-1?"*":" ");printf("\n");}}1-18. 编程,输入n值,输出下例〔n=4〕所示的边长为n的正六边形:***** ** ** ** ** *****————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=n-k;j++)printf(" ");printf("*");for(j=1;j<=n-4+2*k;j++)printf("%s",i==1||i==2*n-1?"*":" ");printf("*");printf("\n");}}1-19. 编程,输入n值,输出下例〔n=5〕所示的高为n的图形:* *** ***** ******* *************————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n-1;i++){for(j=1;j<=i;j++)printf("*");for(j=1;j<=2*n-2*i-1;j++)printf(" ");for(j=1;j<=i;j++)printf("*");printf("\n");}for(j=1;j<=2*n-1;j++)printf("*");}1-20. 编程,输入n值,输出下例〔n=5〕所示的高为n的图形:************* ******* ***** *** *————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(j=1;j<=2*n-1;j++)printf("*");printf("\n");for(i=n-1;i>=1;i--){for(j=1;j<=i;j++)printf("*");for(j=1;j<=2*n-2*i-1;j++)printf(" ");for(j=1;j<=i;j++)printf("*");printf("\n");}}1-21. 编程,输入n值,输出下例〔n=3〕所示的图形:* ** *** ** *————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=k-1;j++)printf(" ");printf("*");for(j=1;j<=2*n-2*k-1;j++)printf(" ");printf("%s",i==n?"\n":"*\n");}}1-22. 编程,输入n值,输出下例〔n=3〕所示的图形:* ** ****————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=n;for(j=1;j<=k-1;j++)printf(" ");printf("*");for(j=1;j<=2*n-2*k-1;j++)printf(" ");printf("%s",k==n?"\n":"*\n");}}1-23. 编程,输入n值,输出下例〔n=4〕所示的图形:* ** ** *** ** ** *————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;printf("*");for(j=1;j<=n-k;j++)printf(" ");printf("%s",k==n?"\n":"*\n");}}1-24. 编程,输入n值,输出下例〔n=5〕所示的图形:* ** * ** * ** * ** *————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(j==1||j==i||j==n)printf("*");else printf(" ");}printf("\n");}}1-25. 编程,输入n值,输出下例〔n=5〕所示的图形:* ** ** ** **————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=n;i>=1;i--){for(j=1;j<=n+i-1;j++)printf("%s",j==n-i+1||j==n+i-1?"*":" ");printf("\n");}}1-26. 编程,输入n值,输出下例〔n=5〕所示的图形:** ** ** ** *————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n+i-1;j++)printf("%s",j==n-i+1||j==n+i-1?"*":" ");printf("\n");}}1-27. 编程,打印以下上三角形式的乘法九九表。

C语言打印图形

C语言打印图形

1-1、编程,输入n,输出如下例(n=5)所示的图形:*************************————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=n;j++)printf("*");printf("\n");}}1-2、编程,输入n,输出如下例(n=5)所示的图形:************************* ————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=i-1;j++)printf(" ");for(j=1;j<=n;j++)printf("*");printf("\n");}}1-3、编程,输入n值,输出如下例(n=4)所示的图形: ****************————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");1-4、编程,输入n值,输出如下例(n=4)所示的图形:****************————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=i-1;j++)printf(" ");for(j=1;j<=2*(n-i)+1;j++)printf("*");printf("\n");}}1-5、编程,输入n值,输出如下例(n=4)所示的高与上底均为n的等腰梯形: ****************************————main(){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i-2+n;j++)printf("*");printf("\n");}}1-6、编程,输入n值,输出如下例(n=4)所示的高与下底均为n的等腰梯形: ****************************————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=n;i>=1;i--){for(j=1;j<=n-i;j++)printf(" ");1-7、编程,输入n,输出如下例(n=3)所示的边长为n的菱形:*************————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=n-k;j++)printf(" ");for(j=1;j<=2*k-1;j++)printf("*");printf("\n");}}1-8、编程,输入n值,输出如下例(n=4)所示的边长均为n的正六边形: ********************************************** 当 n=4 时————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=n-k;j++)printf(" ");for(j=1;j<=2*k-2+n;j++)printf("*");printf("\n");}}1-9、编程,输入n值,输出如下例(n=4)所示的图形:**********————main(){int i,j,n;printf("\nInput n=");for(i=1;i<=n;i++){if(i==1||i==n){for(j=1;j<=n;j++)printf("*");printf("\n");}else{for(j=1;j<=n-i;j++)printf(" ");printf("*\n");}}}1-10、编程,输入n值,输出如下例(n=4)所示的图形:**********————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){if(i==1||i==n){for(j=1;j<=n;j++)printf("*");printf("\n");}else{for(j=1;j<=i-1;j++)printf(" ");printf("*\n");}}}1-11、编程,输入n值,输出如下例(n=5)所示的图形:****** ** ** ****** ————int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");printf("*");for(j=1;j<=n-2;j++)printf("%s",i==1||i==n?"*":" ");printf("*");printf("\n");}}1-12、编程,输入n值,输出如下例(n=5)所示的图形:****** ** ** ******————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=n;i>=1;i--){for(j=1;j<=n-i;j++)printf(" ");printf("*");for(j=1;j<=n-2;j++)printf("%s",i==1||i==n?"*":" ");printf("*");printf("\n");}}1-13、编程,输入n值,输出如下例(n=4)所示的图形:** ** ********{int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n-1;i++){for(j=1;j<=n+i-1;j++)printf("%s",j==n-i+1||j==n+i-1?"*":" ");printf("\n");}for(j=1;j<=2*n-1;j++)printf("*");}1-14、编程,输入n值,输出如下例(n=4)所示的图形:******** ** **————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(j=1;j<=2*n-1;j++)printf("*");printf("\n");for(i=n-1;i>=1;i--){for(j=1;j<=n+i-1;j++)printf("%s",j==n-i+1||j==n+i-1?"*":" ");printf("\n");}}1-15、编程,输入n值,输出如下例(n=4)所示的高与上底均为n的等腰梯形: ***** ** ***********————main(){scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");printf("*");for(j=1;j<=n-4+2*i;j++)printf("%s",i==1||i==n?"*":" ");printf("*");printf("\n");}}1-16、编程,输入n值,输出如下例(n=4)所示的高与下底均为n的等腰梯形: *********** ** *****————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=n;i>=1;i--){for(j=1;j<=n-i;j++)printf(" ");printf("*");for(j=1;j<=n-4+2*i;j++)printf("%s",i==1||i==n?"*":" ");printf("*");printf("\n");}}1-17、编程,输入n值,输出下例(n=3)所示的边长为n的菱形:** ** ** **————main()printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=n+k-1;j++)printf("%s",j==n-k+1||j==n+k-1?"*":" ");printf("\n");}}1-18、编程,输入n值,输出下例(n=4)所示的边长为n的正六边形:***** ** ** ** ** *****————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=n-k;j++)printf(" ");printf("*");for(j=1;j<=n-4+2*k;j++)printf("%s",i==1||i==2*n-1?"*":" ");printf("*");printf("\n");}}1-19、编程,输入n值,输出下例(n=5)所示的高为n的图形:* *** ***** ******* *************————main()int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n-1;i++){for(j=1;j<=i;j++)printf("*");for(j=1;j<=2*n-2*i-1;j++)printf(" ");for(j=1;j<=i;j++)printf("*");printf("\n");}for(j=1;j<=2*n-1;j++)printf("*");}1-20、编程,输入n值,输出下例(n=5)所示的高为n的图形: ************* ******* ***** *** *————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(j=1;j<=2*n-1;j++)printf("*");printf("\n");for(i=n-1;i>=1;i--){for(j=1;j<=i;j++)printf("*");for(j=1;j<=2*n-2*i-1;j++)printf(" ");for(j=1;j<=i;j++)printf("*");printf("\n");}}1-21、编程,输入n值,输出下例(n=3)所示的图形:* ** **————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;for(j=1;j<=k-1;j++)printf(" ");printf("*");for(j=1;j<=2*n-2*k-1;j++)printf(" ");printf("%s",i==n?"\n":"*\n");}}1-22、编程,输入n值,输出下例(n=3)所示的图形: * ** ****————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=n;for(j=1;j<=k-1;j++)printf(" ");printf("*");for(j=1;j<=2*n-2*k-1;j++)printf(" ");printf("%s",k==n?"\n":"*\n");}}1-23、编程,输入n值,输出下例(n=4)所示的图形: * *** ** ** *————main(){int i,j,k,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n)k=i; else k=2*n-i;printf("*");for(j=1;j<=n-k;j++)printf(" ");printf("%s",k==n?"\n":"*\n");}}1-24、编程,输入n值,输出下例(n=5)所示的图形: * ** * ** * ** * ** *————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++){if(j==1||j==i||j==n)printf("*");else printf(" ");}printf("\n");}}1-25、编程,输入n值,输出下例(n=5)所示的图形:* ** ** ** **————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=n;i>=1;i--){for(j=1;j<=n+i-1;j++)printf("%s",j==n-i+1||j==n+i-1?"*":" ");printf("\n");}}1-26、编程,输入n值,输出下例(n=5)所示的图形:** ** ** ** *————main(){int i,j,n;printf("\nInput n=");scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n+i-1;j++)printf("%s",j==n-i+1||j==n+i-1?"*":" ");printf("\n");}}1-27、编程,打印下列上三角形式的乘法九九表。

C语言编程实验

C语言编程实验

C语言实验习题7-1?输出图形(10?分)编写程序输出图形。

第一行输出12个$,第二行先输出3个空格,然后再输出hello!,第三行输出12个$ 输入样例:输出样例:代码:#include <stdio.h>int main(){printf("$$$$$$$$$$$$\n"" hello!\n""$$$$$$$$$$$$\n");return 0 ;}7-5?计算华氏温度(5?分)本题要求编写程序,计算摄氏温度26°C 对应的华氏温度。

计算公式:F=9×C/5+32,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。

输入格式:本题目没有输入。

输出格式:按照下列格式输出代码:#include <stdio.h>int main(){int f;int c;c=26;f=9*c/5+32;printf("celsius = 26, fahr = %d",f);return 0 ;}7-9?逆序的三位数(10?分)程序每次读入一个正3位数,然后输出按位逆序的数字。

注意:当输入的数字含有结尾的0时,输出不应带有前导的0。

比如输入700,输出应该是7。

输入格式:每个测试是一个3位的正整数。

输出格式:输出按位逆序的数。

输入样例:代码:#include <stdio.h>int main(){int n,a,b,c;scanf("%d",&n);a=n/100;b=n/10-a*10;c=n-a*100-b*10;int d;d=a+b*10+c*100;printf("%d",d);return 0 ;}7-10?整数四则运算(10?分)本题要求编写程序,计算2个正整数的和、差、积、商并输出。

题目保证输入和输出全部在整型范围内。

C语言图形输出习题解析

C语言图形输出习题解析

【4.4】输入n值,输出如图所示矩形。

【4.5】输入n值,输出如图所示平行四边形。

【4.6】输入n值,输出如图所示高为n的等腰三角形。

【4.7】输入n值,输出如图所示高为n的等腰三角形。

【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。

【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。

【4.10】输入n值,输出如图所示边长为n的空心正六边型。

【4.11】输入n值,输出如图所示图形。

【4.12】输入n值,输出如图所示图形。

【4.13】输入n值,输出如图所示图形。

【4.14】输入n值,输出如图所示图形。

【4.15】输入n值,输出如图所示图形。

【4.16】输入n值,输出如图所示图形。

(例为n=6时)【4.17】编写程序,输出如图所示sin(x) 函数0到2π的图形。

【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。

【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。

若屏幕的横向为x轴,纵向为y轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。

其中cos图形用"*"表示,f(y)用"+"表示,在两个图形的交点处则用f(y)图形的符号。

【4.20】编写程序,输出如图所示高度为n的图形。

【4.21】编写程序,输出如图所示高度为n的图形。

【4.22】输入n值,输出如图所示图形。

【4.23】输入n值,输出如图所示的n×n(n<10)阶螺旋方阵。

1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9图4.19 n=5时的螺旋方阵【4.24】输入n值,输出如图所示回型方阵。

【4.25】输出如图所示的数字金字塔【4.26】输入n值,输出如图所示图形。

【4.27】输入顶行字符和图形的高,输出如图所示图形。

【4.28】输入首字符和高后,输出如图所示回型方阵。

c语言星号打印矩形、三角形、菱形等图案及参考答案

c语言星号打印矩形、三角形、菱形等图案及参考答案

用星号打印各种图形及参考谜底之勘阻及广创作时间:二O二一年七月二十九日【4.4】输入n值,输出如图所示矩形.【4.5】输入n值,输出如图所示平行四边形.【4.6】输入n值,输出如图所示高为n的等腰三角形.【4.7】输入n值,输出如图所示高为n的等腰三角形.【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形.【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形.【4.10】输入n值,输出如图所示边长为n的空心正六边型.【4.11】输入n值,输出如图所示图形.【4.12】输入n值,输出如图所示图形.【4.13】输入n值,输出如图所示图形.【4.14】输入n值,输出如图所示图形.【4.15】输入n值,输出如图所示图形.【4.16】输入n值,输出如图所示图形.(例为n=6时)【4.17】编写法式,输出如图所示sin(x) 函数0到2π的图形.【4.18】编写法式,在屏幕上输出一个由*号围成的空心圆.【4.19】编写法式,在屏幕上绘制如图余弦曲线和直线.若屏幕的横向为x轴,纵向为y轴, 在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形.其中cos图形用"*"暗示,f(y)用"+"暗示,在两个图形的交点处则用f(y)图形的符号.【4.4】分析:打印此图形用两重循环实现.图形要重复n行,故采纳循环结构实现循环n次,循环体内部打印一行'*'号,把上述思路暗示为:for(i=1;i<=n;i++)打印一行'*'号;每行有n个'*'号,再采纳循环结构实现n次循环,循环内部用格式输出语句打印一个'*'号,即:for(j=1;j<=n;j++)printf("*");依照上述思路,实现打印矩形.参考谜底:main(){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n;j++)printf("*");printf("\n");}}【4.5】分析:此图形和上题的区别在于在每一行先要打印空格,然后再打印n个'*'号,在上题第一层循环体内打印'*'号的循环前面增加一个循环打印空格.每行空格的个数是逐行减少的,由于第一层循环的控制变量i是逐行增1,所以用一个固定值的数减去i 就可实现对空格个数的控制,在此题中固定值可使用变量n.参考谜底:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=n;j++)printf("*");printf("\n");}}【4.6】分析:此题和上题的区别在于每行'*'的数量逐行减少,可以使用上题控制空格个数的思路来控制'*'号的个数,请注意每行'*'的个数都是奇数.参考谜底:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i-1;j++)printf("*");printf("\n");}}【4.7】分析:此题图形是第3题图形的垂直反转,在编程上我们可以变换一个思路.对图形中的第i行(1≤i≤n),共需要输出2n-i个字符,其中前面的i-1个字符为空格,后面的字符为'*'号.依照这一思路可以编写出如下法式.参考谜底:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d", &n);for( i=1;i<=n;i++ ) /* 重复输出图形的n行 */{ for( j=1;j<=2*n-i;j++ ) /* 重复输出图形一行中的每个字符 */if(j<=i-1) printf(" "); /* 输出前面的空格 */else printf("*"); /* 输出后面的*号 */printf("\n");}}【4.8】分析:此题和第3题的区别仅是每行的'*'个数增加n-1个.参考谜底:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i-1+(n-1);j++)printf("*");printf("\n");}}【4.9】分析:对空心图形,我们可以在上题的基础上,对打印'*'号的循环进行修改,仅在循环开始值(j=1)和循环结束值(j=2*(i-1)+n)时打印'*'号,其它位置都打印空格.另一种思路是将每行打印的空格和'*'的两个循环合为一体考虑,在判断出需要打印'*'的两个位置及第一行和最后一行相应位置外,其余位置都打印空格.参考谜底:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=2*n+i-3;j++)if(j==n-i+1 || j>n-i+1 && (i==1||i==n)) printf("*");else printf(" ");printf("*\n");}}【4.10】分析:此图形可以理解为两个空心梯形反向连接而成,因此可以利用上题的思路进行输出.参考谜底:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++) /* 输出图形的上半部份(含中心行) */ { for(j=1;j<=2*n-i-1;j++)if(j==i) printf("*");else printf(" ");printf("*\n");}for(i=1;i<n;i++) /* 输出图形的下半部份(不含中心行) */ { for(j=1;j<=n+i;j++)if(j==n-i) printf("*");else printf(" ");printf("*\n");}}【4.11】分析:此题与上题的区别在于打印'*'号的位置分歧,编程时要找出应打印'*'号的位置和两个循环变量i、j以及行数n的关系.参考谜底:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf ("%d", &n);for(i=1;i<=n;i++) /* 输出图形的上半部份(含中心行) */ { for(j=1;j<=2*n-i;j++)if(j==n-i+1 || j>n-i+1 && i==1) printf("*");else printf(" ");printf("*\n");}for(i=1;i<n;i++) /* 输出图形的下半部份(不含中心行) */ { for(j=1;j<=3*(n-1)-i;j++)if(j==i+1 || j>i+1 && i==n-1) printf("*");else printf(" ");printf("*\n");}}【4.12】参考谜底:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n;j++)if(j==n-i+1 || i==1 || i==n) printf("*");else printf(" ");printf("\n");}}【4.13】参考谜底:main( ){ int i,j,n;printf("\nPlease Enter n: ");scanf("%d", &n);for(i=1;i<=n;i++) /* 输出图形的上半部份(含中心行) */ { for(j=1;j<=n-i;j++)if(j==1 || j==n-i+1) printf("* ");else printf(" ");printf("\n");}for(i=1;i<n;i++) /* 输出图形的下半部份(不含中心行) */ { for(j=1;j<=i+1;j++)if(j==1 || j==i+1) printf("* ");else printf(" ");printf("\n");}}【4.14】参考谜底:main( ){ int i,j,n;printf("\nPlease Enter n: ");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n;j++)if(j==1 || j==i || j==n) printf("*");else printf(" ");printf("\n");}}【4.15】参考谜底:main( ){ int i,j,n;printf("\nPlease Enter n: ");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n+i-1;j++)if(j>n-i) printf("*");else printf(" ");printf("\n");}for(i=1;i<n;i++){ for(j=1;j<=2*n-i-1;j++)if(j>i) printf("*");else printf(" ");printf("\n");}}【4.16】参考谜底:main( ){ int i,j,n;printf("\nPlease Enter n: ");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n+i-2;j++)if(j==n-i+1) printf("*");else printf(" ");printf("*\n");}}【4.17】分析:首先对图形进行设计,坐标的X轴和Y轴分别对应屏幕的列和行,一个正弦函数的周期为0~360度,我们把一个步长界说为10度,打印时每换一行即是函数的自变量增加10度;屏幕的列宽为80,函数值为0对应屏幕的第40列,sin(x)的值在-1~1,变换成列数为以0为中心的-30~30,对应屏幕上第10~70列.设计法式时,控制换行的自变量i乘以10获得正弦函数的X值,调用库函数sin()求出函数值再乘以30输出的列宽,因为我们以屏幕的第40列为0点,故再加上40获得应在屏幕上显示的点.参考谜底:#include <math.h>main( ){ double x;int y,i,yy;for(i=1;i<80;i++) /* 打印图形的第一行 */if(i==40) printf("*");/* i控制打印的列位置*/ else printf("-");printf("\n");for(x=10.0;x<=360.0;x+=10.) /* 从10度到360度 */{ y = 40+30*sin(x*PAI/180.0); /* 计算对应的列 */yy = 40>y ? 40 : y; /* 下一行要打印的字符总数 */for (i=1;i<=yy;i++) /* 控制输出图形中的一行 */{ if(i==y) printf("*"); /* i控制打印的列位置 */else if(i==40) printf("|"); /* 打印中心的竖线 */else printf(" ");}printf("\n");}}【4.18】分析:首先设计屏幕图形,如果预计圆形在屏幕上打印20行,所以界说圆的直径就是20,半径为10,圆的方程是X2×Y2=R2,因为图形不是从中心开始打印而是从边缘开始,所以Y 从10变动到-10,根据方程求出X,对求得的X值再根据屏幕行宽进行需要的调整获得应打印的屏幕位置.参考谜底:#include <math.h>main( ){ double y;int x,m;for(y=10;y>=-10;y--) /* 圆的半径为10 */{ m = 2.5 * sqrt(100-y*y); /* 计算行y对应的列坐标m */ for(x=1;x<30-m;x++)printf(" "); /* 输出圆左侧的空白 */ printf("*"); /* 输出圆的左侧 */for(;x<30+m;x++)printf(" "); /* 输出圆的空心部份 */ printf("*\n"); /* 输出圆的右侧 */}}【4.19】参考谜底:#include <stdio.h>#include <math.h>main( ){ double y;int x, m, n, yy;for( yy=0;yy<=20;yy++){ y = 0.1*yy;m = acos(1-y)*10;n = 45 * (y-1)+31;for( x=0;x<=62;x++ )if( x==m && x==n ) printf("+");else if(x==n) printf("+");else if(x==m || x==62-m) printf("*");else printf(" ");printf("\n");}}。

c语言星号打印矩形、三角形、菱形等图案及参考答案

c语言星号打印矩形、三角形、菱形等图案及参考答案

用星号打印各种图形及参考答案【4.4】输入n值,输出如图所示矩形。

【4.5】输入n值,输出如图所示平行四边形。

【4.6】输入n值,输出如图所示高为n的等腰三角形。

【4.7】输入n值,输出如图所示高为n的等腰三角形。

【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。

【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。

【4.10】输入n值,输出如图所示边长为n的空心正六边型。

【4.11】输入n值,输出如图所示图形。

【4.12】输入n值,输出如图所示图形。

【4.13】输入n值,输出如图所示图形。

【4.14】输入n值,输出如图所示图形。

【4.15】输入n值,输出如图所示图形。

【4.16】输入n值,输出如图所示图形。

(例为n=6时)【4.17】编写程序,输出如图所示sin(x) 函数0到2π的图形。

【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。

【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。

若屏幕的横向为x轴,纵向为y轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。

其中cos图形用"*"表示,f(y)用"+"表示,在两个图形的交点处则用f(y)图形的符号。

【4.4】分析:打印此图形用两重循环实现。

图形要重复n行,故采用循环结构实现循环n次,循环体内部打印一行'*'号,把上述思路表示为:for(i=1;i<=n;i++)打印一行'*'号;每行有n个'*'号,再采用循环结构实现n次循环,循环内部用格式输出语句打印一个'*'号,即:for(j=1;j<=n;j++)printf("*");按照上述思路,实现打印矩形。

参考答案:main(){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n;j++)printf("*");printf("\n");}}【4.5】分析:此图形和上题的区别在于在每一行先要打印空格,然后再打印n个'*'号,在上题第一层循环体内打印'*'号的循环前面增加一个循环打印空格。

c语言星号打印矩形、三角形、菱形等图案及参考答案

c语言星号打印矩形、三角形、菱形等图案及参考答案

用星号打印各种图形及参考答案之巴公井开创作时间:二O二一年七月二十九日【4.4】输入n值,输出如图所示矩形。

【4.5】输入n值,输出如图所示平行四边形。

【4.6】输入n值,输出如图所示高为n的等腰三角形。

【4.7】输入n值,输出如图所示高为n的等腰三角形。

【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。

【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。

【4.10】输入n值,输出如图所示边长为n的空心正六边型。

【4.11】输入n值,输出如图所示图形。

【4.12】输入n值,输出如图所示图形。

【4.13】输入n值,输出如图所示图形。

【4.14】输入n值,输出如图所示图形。

【4.15】输入n值,输出如图所示图形。

【4.16】输入n值,输出如图所示图形。

(例为n=6时)【4.17】编写程序,输出如图所示sin(x) 函数0到2π的图形。

【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。

【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。

若屏幕的横向为x轴,纵向为y轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。

其中cos图形用"*"暗示,f(y)用"+"暗示,在两个图形的交点处则用f(y)图形的符号。

【4.4】分析:打印此图形用两重循环实现。

图形要重复n行,故采取循环结构实现循环n次,循环体内部打印一行'*'号,把上述思路暗示为:for(i=1;i<=n;i++)打印一行'*'号;每行有n个'*'号,再采取循环结构实现n次循环,循环内部用格式输出语句打印一个'*'号,即:for(j=1;j<=n;j++)printf("*");依照上述思路,实现打印矩形。

参考答案:main(){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n;j++)printf("*");printf("\n");}}【4.5】分析:此图形和上题的区别在于在每一行先要打印空格,然后再打印n个'*'号,在上题第一层循环体内打印'*'号的循环前面增加一个循环打印空格。

c语言星号打印矩形、三角形、菱形等图案及参考答案

c语言星号打印矩形、三角形、菱形等图案及参考答案

用星号打印各种图形及参考答案之杨若古兰创作【4.4】输入n值,输出如图所示矩形.【4.5】输入n值,输出如图所示平行四边形.【4.6】输入n值,输出如图所示高为n的等腰三角形.【4.7】输入n值,输出如图所示高为n的等腰三角形.【4.8】输入n值,输出如图所示高和上底均为n 的等腰梯形.【4.9】输入n值,输出如图所示高和上底均为n 的等腰空心梯形.【4.10】输入n值,输出如图所示边长为n的空心正六边型.【4.11】输入n值,输出如图所示图形.【4.12】输入n值,输出如图所示图形.【4.13】输入n值,输出如图所示图形.【4.14】输入n值,输出如图所示图形.【4.15】输入n值,输出如图所示图形.【4.16】输入n值,输出如图所示图形.(例为n=6时)【4.17】编写程序,输出如图所示sin(x) 函数0到2π的图形.【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆.【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线.若屏幕的横向为x轴,纵向为y轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形.其中cos图形用"*"暗示,f(y)用"+"暗示,在两个图形的交点处则用f(y)图形的符号.【4.4】分析:打印此图形用两重轮回实现.图形要反复n行,故采取轮回结构实现轮回n次,轮回体内部打印一行'*'号,把上述思路暗示为:for(i=1;i<=n;i++)打印一行'*'号;每行有n个'*'号,再采取轮回结构实现n次轮回,轮回内部用格式输出语句打印一个'*'号,即:for(j=1;j<=n;j++)printf("*");按照上述思路,实现打印矩形.参考答案:main(){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n;j++)printf("*");printf("\n");}}【4.5】分析:此图形和上题的区别在于在每一行先要打印空格,然后再打印n个'*'号,在上题第一层轮回体内打印'*'号的轮回前面添加一个轮回打印空格.每行空格的个数是逐行减少的,因为第一层轮回的控制变量i是逐行增1,所以用一个固定值的数减去i就可实现对空格个数的控制,在此题中固定值可使用变量n.参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=n;j++)printf("*");printf("\n");}}【4.6】分析:此题和上题的区别在于每行'*'的数量逐行减少,可以使用上题控制空格个数的思路来控制'*'号的个数,请留意每行'*'的个数都是奇数.参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i-1;j++)printf("*");printf("\n");}}【4.7】分析:此题图形是第3题图形的垂直反转,在编程上我们可以变换一个思路.对于图形中的第i行(1≤i≤n),共须要输出2n-i个字符,其中前面的i-1个字符为空格,后面的字符为'*'号.按照这一思路可以编写出如下程序.参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d", &n);for( i=1;i<=n;i++ ) /* 反复输出图形的n行 */{ for( j=1;j<=2*n-i;j++ ) /* 反复输出图形一行中的每个字符 */if(j<=i-1) printf(" "); /* 输出前面的空格 */else printf("*"); /* 输出后面的*号 */printf("\n");}}【4.8】分析:此题和第3题的区别仅是每行的'*'个数添加n-1个.参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i-1+(n-1);j++)printf("*");printf("\n");}}【4.9】分析:对于空心图形,我们可以在上题的基础上,对于打印'*'号的轮回进行点窜,仅在轮回开始值(j=1)和轮回结束值(j=2*(i-1)+n)时打印'*'号,其它地位都打印空格.另一种思路是将每行打印的空格和'*'的两个轮回合为一体考虑,在判断出须要打印'*'的两个地位及第一行和最初一行响应地位外,其余地位都打印空格.参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=2*n+i-3;j++)if(j==n-i+1 || j>n-i+1 && (i==1||i==n)) printf("*");else printf(" ");printf("*\n");}}【4.10】分析:此图形可以理解为两个空心梯形反向连接而成,是以可以利用上题的思路进行输出.参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++) /* 输出图形的上半部分(含中间行) */ { for(j=1;j<=2*n-i-1;j++)if(j==i) printf("*");else printf(" ");printf("*\n");}for(i=1;i<n;i++) /* 输出图形的下半部分(不含中间行)*/{ for(j=1;j<=n+i;j++)if(j==n-i) printf("*");else printf(" ");printf("*\n");}【4.11】分析:此题与上题的区别在于打印'*'号的地位分歧,编程时要找出应打印'*'号的地位和两个轮回变量i、j和行数n的关系.参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf ("%d", &n);for(i=1;i<=n;i++) /* 输出图形的上半部分(含中间行) */ { for(j=1;j<=2*n-i;j++)if(j==n-i+1 || j>n-i+1 && i==1) printf("*");else printf(" ");printf("*\n");}for(i=1;i<n;i++) /* 输出图形的下半部分(不含中间行)*/{ for(j=1;j<=3*(n-1)-i;j++)if(j==i+1 || j>i+1 && i==n-1) printf("*");else printf(" ");printf("*\n");}【4.12】参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n;j++)if(j==n-i+1 || i==1 || i==n) printf("*");else printf(" ");printf("\n");}}【4.13】参考答案:main( ){ int i,j,n;printf("\nPlease Enter n: ");scanf("%d", &n);for(i=1;i<=n;i++) /* 输出图形的上半部分(含中间行) */ { for(j=1;j<=n-i;j++)if(j==1 || j==n-i+1) printf("* ");else printf(" ");printf("\n");}for(i=1;i<n;i++) /* 输出图形的下半部分(不含中间行)*/{ for(j=1;j<=i+1;j++)if(j==1 || j==i+1) printf("* ");else printf(" ");printf("\n");}}【4.14】参考答案:main( ){ int i,j,n;printf("\nPlease Enter n: ");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n;j++)if(j==1 || j==i || j==n) printf("*");else printf(" ");printf("\n");}}【4.15】参考答案:main( ){ int i,j,n;printf("\nPlease Enter n: ");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n+i-1;j++) if(j>n-i) printf("*");else printf(" ");printf("\n");}for(i=1;i<n;i++){ for(j=1;j<=2*n-i-1;j++) if(j>i) printf("*");else printf(" ");printf("\n");}}【4.16】参考答案:main( ){ int i,j,n;printf("\nPlease Enter n: ");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n+i-2;j++)if(j==n-i+1) printf("*");else printf(" ");printf("*\n");}}【4.17】分析:首先对图形进行设计,坐标的X轴和Y轴分别对应屏幕的列和行,一个正弦函数的周期为0~360度,我们把一个步长定义为10度,打印时每换一行等于函数的自变量添加10度;屏幕的列宽为80,函数值为0对应屏幕的第40列,sin(x)的值在-1~1,变换成列数为以0为中间的-30~30,对应屏幕上第10~70列.设计程序时,控制换行的自变量i乘以10得到正弦函数的X值,调用库函数sin()求出函数值再乘以30输出的列宽,因为我们以屏幕的第40列为0点,故再加上40得到应在屏幕上显示的点.参考答案:#include <math.h>main( ){ double x;int y,i,yy;for(i=1;i<80;i++) /* 打印图形的第一行 */if(i==40) printf("*");/* i控制打印的列地位*/ else printf("-");printf("\n");for(x=10.0;x<=360.0;x+=10.) /* 从10度到360度 */{ y = 40+30*sin(x*PAI/180.0); /* 计算对应的列 */yy = 40>y ? 40 : y; /* 下一行要打印的字符总数 */for (i=1;i<=yy;i++) /* 控制输出图形中的一行 */{ if(i==y) printf("*"); /* i控制打印的列地位 */else if(i==40) printf("|"); /* 打印中间的竖线 */else printf(" ");}printf("\n");}}【4.18】分析:首先设计屏幕图形,如果估计圆形在屏幕上打印20行,所以定义圆的直径就是20,半径为10,圆的方程是X2×Y2=R2,因为图形不是从中间开始打印而是从边沿开始,所以Y从10变更到-10,根据方程求出X,对求得的X值再根据屏幕行宽进行须要的调整得到应打印的屏幕地位.参考答案:#include <math.h>main( ){ double y;int x,m;for(y=10;y>=-10;y--) /* 圆的半径为10 */{ m = 2.5 * sqrt(100-y*y); /* 计算行y对应的列坐标m */ for(x=1;x<30-m;x++)printf(" "); /* 输出圆左边的空白 */printf("*"); /* 输出圆的左边 */for(;x<30+m;x++)printf(" "); /* 输出圆的空心部分 */printf("*\n"); /* 输出圆的右边 */}}【4.19】参考答案:#include <stdio.h>#include <math.h>main( ){ double y;int x, m, n, yy;for( yy=0;yy<=20;yy++){ y = 0.1*yy;m = acos(1-y)*10;n = 45 * (y-1)+31;for( x=0;x<=62;x++ )if( x==m && x==n ) printf("+");else if(x==n) printf("+");else if(x==m || x==62-m) printf("*");else printf(" ");printf("\n");}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【4.4】输入n值,输出如图所示矩形。

【4.5】输入n值,输出如图所示平行四边形。

【4.6】输入n值,输出如图所示高为n的等腰三角形。

【4.7】输入n值,输出如图所示高为n的等腰三角形。

【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。

【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。

【4.10】输入n值,输出如图所示边长为n的空心正六边型。

【4.11】输入n值,输出如图所示图形。

【4.12】输入n值,输出如图所示图形。

【4.13】输入n值,输出如图所示图形。

【4.14】输入n值,输出如图所示图形。

【4.15】输入n值,输出如图所示图形。

【4.16】输入n值,输出如图所示图形。

(例为n=6时)【4.17】编写程序,输出如图所示sin(x) 函数0到2π的图形。

【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。

【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。

若屏幕的横向为x轴,纵向为y轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。

其中cos图形用"*"表示,f(y)用"+"表示,在两个图形的交点处则用f(y)图形的符号。

【4.20】编写程序,输出如图所示高度为n的图形。

【4.21】编写程序,输出如图所示高度为n的图形。

【4.22】输入n值,输出如图所示图形。

【4.23】输入n值,输出如图所示的n×n(n<10)阶螺旋方阵。

1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9图4.19 n=5时的螺旋方阵【4.24】输入n值,输出如图所示回型方阵。

【4.25】输出如图所示的数字金字塔【4.26】输入n值,输出如图所示图形。

【4.27】输入顶行字符和图形的高,输出如图所示图形。

【4.28】输入首字符和高后,输出如图所示回型方阵。

A A A A AA B B B AA B C B AA B B B AA A A A A图 4.24 首字符为'A'、高为5的方阵【4.29】输入中心字符和高后,输出如图所示回型方阵。

X X X X XX Y Y Y XX Y Z Y XX Y Y Y YX X X X X图4.25 中心字符为'Z'、高为5的方阵【4.30】编写程序,输出如图所示上三角形式的乘法九九表。

【4.31】编写程序,输出如图所示下三角乘法九九表。

【4.4】分析:打印此图形用两重循环实现。

图形要重复n行,故采用循环结构实现循环n次,循环体部打印一行'*'号,把上述思路表示为:for(i=1;i<=n;i++)打印一行'*'号;每行有n个'*'号,再采用循环结构实现n次循环,循环部用格式输出语句打印一个'*'号,即:for(j=1;j<=n;j++)printf("*");按照上述思路,实现打印矩形。

参考答案:main(){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n;j++)printf("*");printf("\n");}}【4.5】分析:此图形和上题的区别在于在每一行先要打印空格,然后再打印n个'*'号,在上题第一层循环体打印'*'号的循环前面增加一个循环打印空格。

每行空格的个数是逐行减少的,由于第一层循环的控制变量i是逐行增1,所以用一个固定值的数减去i就可实现对空格个数的控制,在此题中固定值可使用变量n。

参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=n;j++)printf("*");printf("\n");}}【4.6】分析:此题和上题的区别在于每行'*'的数量逐行减少,可以使用上题控制空格个数的思路来控制'*'号的个数,请注意每行'*'的个数都是奇数。

参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i-1;j++)printf("*");printf("\n");}}【4.7】分析:此题图形是第3题图形的垂直反转,在编程上我们可以变换一个思路。

对于图形中的第i行(1≤i≤n),共需要输出2n-i个字符,其中前面的i-1个字符为空格,后面的字符为'*'号。

按照这一思路可以编写出如下程序。

参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d", &n);for( i=1;i<=n;i++ ) /* 重复输出图形的n行 */{ for( j=1;j<=2*n-i;j++ ) /* 重复输出图形一行中的每个字符 */if(j<=i-1) printf(" "); /* 输出前面的空格 */else printf("*"); /* 输出后面的*号 */printf("\n");}}【4.8】分析:此题和第3题的区别仅是每行的'*'个数增加n-1个。

参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=2*i-1+(n-1);j++)printf("*");printf("\n");}}【4.9】分析:对于空心图形,我们可以在上题的基础上,对于打印'*'号的循环进行修改,仅在循环开始值(j=1)和循环结束值(j=2*(i-1)+n)时打印'*'号,其它位置都打印空格。

另一种思路是将每行打印的空格和'*'的两个循环合为一体考虑,在判断出需要打印'*'的两个位置及第一行和最后一行相应位置外,其余位置都打印空格。

参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=2*n+i-3;j++)if(j==n-i+1 || j>n-i+1 && (i==1||i==n)) printf("*");else printf(" ");printf("*\n");}}【4.10】分析:此图形可以理解为两个空心梯形反向连接而成,因此可以利用上题的思路进行输出。

参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++) /* 输出图形的上半部分(含中心行) */{ for(j=1;j<=2*n-i-1;j++)if(j==i) printf("*");else printf(" ");printf("*\n");}for(i=1;i<n;i++) /* 输出图形的下半部分(不含中心行) */{ for(j=1;j<=n+i;j++)if(j==n-i) printf("*");else printf(" ");printf("*\n");}}【4.11】分析:此题与上题的区别在于打印'*'号的位置不同,编程时要找出应打印'*'号的位置和两个循环变量i、j以及行数n的关系。

参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf ("%d", &n);for(i=1;i<=n;i++) /* 输出图形的上半部分(含中心行) */ { for(j=1;j<=2*n-i;j++)if(j==n-i+1 || j>n-i+1 && i==1) printf("*");else printf(" ");printf("*\n");}for(i=1;i<n;i++) /* 输出图形的下半部分(不含中心行) */ { for(j=1;j<=3*(n-1)-i;j++)if(j==i+1 || j>i+1 && i==n-1) printf("*");else printf(" ");printf("*\n");}}【4.12】参考答案:main( ){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n;j++)if(j==n-i+1 || i==1 || i==n) printf("*");else printf(" ");printf("\n");}}【4.13】参考答案:main( ){ int i,j,n;printf("\nPlease Enter n: ");scanf("%d", &n);for(i=1;i<=n;i++) /* 输出图形的上半部分(含中心行) */ { for(j=1;j<=n-i;j++)if(j==1 || j==n-i+1) printf("* ");else printf(" ");printf("\n");}for(i=1;i<n;i++) /* 输出图形的下半部分(不含中心行) */ { for(j=1;j<=i+1;j++)if(j==1 || j==i+1) printf("* ");else printf(" ");printf("\n");}}【4.14】参考答案:main( ){ int i,j,n;printf("\nPlease Enter n: ");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n;j++)if(j==1 || j==i || j==n) printf("*");else printf(" ");printf("\n");}}【4.15】参考答案:main( ){ int i,j,n;printf("\nPlease Enter n: ");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n+i-1;j++)if(j>n-i) printf("*");else printf(" ");printf("\n");}for(i=1;i<n;i++){ for(j=1;j<=2*n-i-1;j++)if(j>i) printf("*");else printf(" ");printf("\n");}}【4.16】参考答案:main( ){ int i,j,n;printf("\nPlease Enter n: ");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n+i-2;j++)if(j==n-i+1) printf("*");else printf(" ");printf("*\n");}}【4.17】分析:首先对图形进行设计,坐标的X轴和Y轴分别对应屏幕的列和行,一个正弦函数的周期为0~360度,我们把一个步长定义为10度,打印时每换一行等于函数的自变量增加10度;屏幕的列宽为80,函数值为0对应屏幕的第40列,sin(x)的值在-1~1,变换成列数为以0为中心的-30~30,对应屏幕上第10~70列。

相关文档
最新文档