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

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语言典型例题 关于图形输出

数之间的关系,在进行一系列组合便能输出更为复杂的图形。亲爱的 同学希望这对你能有所帮助。
{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语言练习题

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语言图形题

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语言实验习题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语言实验习题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语言-打印字符图形

打印字符图形例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语言打印图形

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);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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列。