最新C语言图形输出习题
c语言星号打印矩形、三角形、菱形等图案及参考答案
![c语言星号打印矩形、三角形、菱形等图案及参考答案](https://img.taocdn.com/s3/m/faba493b52ea551810a687dc.png)
用星号打印各种图形及参考答案【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语言输出各种图形](https://img.taocdn.com/s3/m/f9be1f2b8e9951e79a89272f.png)
输出各种图形一、软件开发目得利用C程序输出各种图形二、数据结构采用数组、函数三、软件功能说明四、软件验收标准1。
有较为美观简洁大方得菜单,能保证用户方便、直观、快捷得熟悉并使用软件得各项功能。
注意:要求每执行一个具体得功能之后,程序将重新显示菜单。
2.有严密正确得数据验证功能与数据处理功能,能够实现各功能模块。
3。
系统要有一定得可靠性、稳定性.五、实现代码1#include<stdio、h>2 #include <stdlib、h>3#include 〈string、h>4#define N 1005char Number[N][N];6 //录入输出图形函数7 void Scanf_print(int k)8{9 int i;10charnum[N];11for(i=0;i<N;i++)12{13 if(k==1)14{15 gets(Number[i]);16 }17else18{19 printf(”%s",Number[i]);20 //printf(”\n");21}22if(strlen(Number[i])==0)23 break;24}2526 }27//文件操作函数28 int Files(char *name,char c)29{30 FILE*fp=NULL;31 int i;32charC[4];33 C[0]=c;34 C[1]='\0’;35 strcat(name,"、txt");36 fp=fopen(name,C);3738 if(fp==NULL)39 {40return—1;41 }4243for(i=0;i<N;i++)44 {4546if(c=='w’)47{48 if(strlen(Number[i])==0)49 break;50 fputs(Number[i],fp);51 fputc('\n',fp);52 }53 else if(c==’r')54 {55 fgets(Number[i],N,fp);56 }57 }58 fclose(fp);59return0;60}61int Filep(char*name,int k)62{63 FILE *fp=NULL;64inti;65charR[N];66 fp=fopen("name、txt”,”a+”);67if(fp==NULL)68{69 return-1;70}71if(k==0)72{73fputs(name,fp);74 fputs("”,fp);75 }76else77{7879 fgets(R,N,fp);80 printf(”%s\n”,R);8182 }83 fclose(fp);84return 0;85}86 void Interface()87 {88 printf("******************** 主菜单******************************\n");89 printf(”程序说明:\n");90 printf(”1,请用户先录入图形,再点击保存 \n");91 printf("2,若录入后没有点击保存,又进行录入,第一次录入得将被覆盖\n”);92 printf("**********************************************************\n");93 printf(”********************1、录入图形*********************\n");94 printf(”********************2、保存图形*********************\n");95printf("********************3、查瞧图形*********************\n");96 printf("******************** 4、退出*********************\n");97 printf("**********************************************************\n”);98 }99 int main()100{101102 int t=1,n,k,i;103char Name[20];104 while(t)105 {106 system(”cls”);107Interface();108 printf("请从1~4中选择、、、\n");109 scanf("%d",&n);110 system("cls”);111switch(n)112{113 case1:114 Scanf_print(1);115 printf("请设计图形(若一行都无元素,回车后设计完成)!\n\n");116 Scanf_print(1);117printf(”\n\n录入成功、、、");118system(”pause");119break;120case 2:121 printf("请为这个图形取一个名字:");122scanf("%s",&Name);123Filep(Name,0);//存入名字124 Files(Name,’w');125printf("\n\n 保存成功!\n\n\n”);126system(”pause");127break;128case3:129 for(i=1;i<N;i++)130 {131 strcpy(Number[i]," ”);132 }133 printf(”***********文件已存图形得名称****************\n\n\n”);134 Filep('no',1);135 printf("\n\n\n*********************************************\n\n\n”);136printf("请输入查瞧图形得名字:”);137scanf("%s”,&Name);138k=Files(Name,'r’);139 if(k==0)140{141printf("\n");142 Scanf_print(0);143 printf("\n");144 }145 else146 printf("\n\n 输入得名字未找到,请输入以上框中有得名字、、、\n\n");147 system("pause");148 break;149case4:t=0;break;150default:151 printf("输入非法字符,请输入1,2,3,4四个整数之一!");152 system(”pause");break;153 }154 }155 system("cls”);156 printf("感谢您得使用,再见!\n\n");157return0;158}六、运行说明1、点击运行后得界面2、输入1并回车后3、设计一个三角形,设计完成后回车即显示设计完成4、回车后回到主界面5、输入2回车之后,为这个图形取名为“三角形",重复以上操作, 我又分别录入了名字为心、心中心、心线等图形6、完成后回车回到主界面,输入3回车之后,会提示已录入得所有图形名称,回复名称之后回车即可查瞧图形7、返回主界面后,若输入4回车8、若在主界面输入除1,2,3,4以外得字符,会出现以下提示。
c语言打印图形题(北理工版)
![c语言打印图形题(北理工版)](https://img.taocdn.com/s3/m/d77f64fbf61fb7360b4c65c3.png)
打印图形1-4.打印梯形成绩: 10 / 折扣: 0.8输入n 值,输出如下例(n=4 )所示的高和上底均为n 的等腰梯形:****************************(上图中_表示空格) 输入:梯形的高n 输出:高和上底均为n 的等腰梯形#include "stdio.h"main()/*sy-3.c*/{int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n-i;j++) printf(" ");for(j=n-i+1;j<=2*i-1+(n-1);j++) printf("*");printf("\n");}}1-5.打印Z形图形成绩: 10 / 折扣: 0.8输入n 值,输出如下例(n=4 )所示的Z 形图形:**********输入:图形的高n输出:高为n 的Z 形图形#include "stdio.h"main()/*sy-3.c*/{int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){ if(i==1 || i==n)for(j=1;j<=n;j++) printf("*");elsefor(j=1;j<=n-i+1;j++)if(j==n-i+1) printf("*");else printf(" ");printf("\n");}}额外进程测试输入期待的输出#include <stdlib.h>int main(int argc, char *argv[]){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++)if(j==1||j==n||j==i)printf("*");else printf(" ");printf("\n");}system("PAUSE");return 0;}2-3. 打印X形图形成绩: 10 / 折扣: 0.8时间限制内存限制额外进程测试输入期待的输出#include <stdlib.h>int main(int argc, char *argv[]){int i,j,n,m,k;scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n) {m=i;k=2*n-i;}else {m=2*n-i;k=i;}for(j=1;j<=k;j++)if(j==k||j==m)printf("*");else printf(" "); printf("\n"); }system("PAUSE");return 0;}成绩: 10 / 折扣: 0.8时间限制内存限制额外进程测试输入期待的输出#include <stdlib.h>int main(int argc, char *argv[]){int i,j,n;{scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n+i-1;j++)if(j<=n+i-1&&j>=n+1-i) printf("*");else if(j<n-1+i) printf(" ");printf("\n"); }}{ for(i=1;i<=n-1;i++){for(j=1;j<=2*n-1-i;j++)if(j<=2*n-1-i&&j>=i+1) printf("*");else if(j<i+1) printf(" ");printf("\n"); }}system("PAUSE");return 0;}成绩: 10 / 折扣: 0.8时间限制内存限制额外进程测试输入期待的输出#include <stdlib.h>int main(int argc, char *argv[]){int i,j,n;char a,k;scanf("%d,%c",&n,&a);for(i=1;i<=n;i++){ for(j=1;j<=i-1;j++)printf(" ");for(k=a;k<=n+a-1;k++)printf("%c",k);a++;printf("\n");}system("PAUSE");return 0;}成绩: 10 / 折扣: 0.8时间限制内存限制额外进程测试输入期待的输出#include <stdlib.h>int main(int argc, char *argv[]){int i,j,n;scanf("%d",&n);if(n>=2){{for(j=1;j<=n-1;j++) printf(" ");for(j=n;j<=2*n-1;j++) printf("*");printf("\n");}{ for(i=2;i<=n-1;i++){for(j=1;j<=2*n-2+i;j++)if(j==n-i+1||j==2*n-2+i)printf("*");else printf(" ");printf("\n");} }{ i=n; for(j=1;j<=n-i;j++) printf(" ");for(j=1;j<=2*n-2+i;j++) printf("*");printf("\n");}}else if(n==1) printf("*\n");system("PAUSE");return 0;}成绩: 10 / 折扣: 0.8时间限制内存限制额外进程测试输入期待的输出#include <stdlib.h>int main(int argc, char *argv[]){int i,j,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("*");printf("\n");}system("PAUSE");return 0;}时间限制内存限制额外进程测试输入期待的输出#include <stdlib.h>int main(int argc, char *argv[]){int i,j,n,m,k;char a,x;scanf("%d,%c",&n,&a);for(x=a,i=1;x<=n+a-1,i<=n;x++,i++){if(i<=n) {m=n+1-i;k=n-1+i;}else {m=i+1-n;k=3*n-1-i;}for(j=1;j<=k;j++)if(j==k||j==m)printf("%c",x);else printf(" "); printf("\n"); }for(x=a+n-2,i=n+1;x<=n+a-1,i>=n+1&&i<=2*n-1;x--,i++){if(i<=n) {m=n+1-i;k=n-1+i;}else {m=i+1-n;k=3*n-1-i;}for(j=1;j<=k;j++)if(j==k||j==m)printf("%c",x);else printf(" "); printf("\n"); }system("PAUSE");return 0;}成绩: 10 / 折扣: 0.8时间限制内存限制额外进程测试输入期待的输出#include <stdlib.h>int main(int argc, char *argv[]){int i,j,n,m,k;scanf("%d",&n);for(i=1;i<=2*n-1;i++){if(i<=n) {m=n+1-i;k=n-1+i;}else {m=i+1-n;k=3*n-1-i;}for(j=1;j<=k;j++)if(j==k||j==m)printf("*");else printf(" "); printf("\n"); }system("PAUSE");return 0;}6-2. 求整数平方的回文数成绩: 10 / 折扣: 0.8输入正整数m 和n ,输出[m, n] 闭区间中满足下列条件的正整数及其平方:正整数的平方具有对称性质(也称为回文数), 如:11 的平方是121 。
c语言练习题
![c语言练习题](https://img.taocdn.com/s3/m/5edb8544852458fb770b561c.png)
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语言编程题及答案资料](https://img.taocdn.com/s3/m/473ce2e6866fb84ae55c8d3f.png)
精品文档C语言编程题1.(*)求分数序列:1/2, 2/3, 3/5, 5/8, 8/13, 13/21 ........ 前20 项的和。
main()(float i=l, j=2, t=0, s, n, m;for (n=l;n<=20;n++)s=i/j,m=i, i=j, j二m+j, t=t+s;printf (,z t=%f,z, t);}2.(*)从键盘输入一个字符串,再将其逆序输出。
(如:输入abcde,输出edcba)main(){int i;char c[10];scanf c);for (i=9;i>=0;i--)printf c[i]);}3.(*)已知abc+cba=1333,其中a、b、c 均为一位数,例如:617+716=1333, 518+815=1333, 试编程求出符合这一规律的a、b、c,并输出结果。
main(){int a, b, c, x, y;for(a=l;a<=9;a++)for(b=0;b<=9;b++)for (c=l;c<=9;c++){ x=100*a+10*b+c;y=100*c+10*b+a;辻(x+y==1333)printf ("x=%d, y二%d", x, y) ;}}4.(*)利用海伦公式求三角形面积,三边长a,b,c由键盘输入。
若输入的三边长不能构成三角形,输出相应提示信息。
海伦公式如下:其中s二@+b+c)/2二角形面积二^5 *(5 — 67)*(5 — /?) *(5 — C)ttinclude^math. h"main(){ float a, b, c, s, area;scanf ("%f, %f, %f", &a, &b, &c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));精品文档if (a+b>c&&a+c>b&&b+c>a)printf (,,area=%f,,> area);精品文档else• 1・printf(,,no,/);}5.(*)编程求出1 !+2!+3!+・・・+8!+9!+10!的值并输出。
C语言图形题
![C语言图形题](https://img.taocdn.com/s3/m/39bcde0aba1aa8114431d975.png)
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语言编程实验](https://img.taocdn.com/s3/m/eddffb6b5ef7ba0d4a733bd5.png)
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语言输出各种图形](https://img.taocdn.com/s3/m/15eecc53844769eae009ed98.png)
输出各种图形一、软件开发目的利用C程序输出各种图形二、数据结构采用数组、函数三、软件功能说明四、软件验收标准1.有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。
注意:要求每执行一个具体的功能之后,程序将重新显示菜单。
2.有严密正确的数据验证功能和数据处理功能,能够实现各功能模块。
3.系统要有一定的可靠性、稳定性。
五、实现代码1 #include <stdio.h>2 #include <stdlib.h>3 #include <string.h>4 #define N 1005 char Number[N][N];6 //录入输出图形函数7 void Scanf_print(int k)8 {9 int i;10 char num[N];11 for(i=0;i<N;i++)12 {13 if(k==1)14 {15 gets(Number[i]);16 }17 else18 {19 printf("%s",Number[i]);20 // printf("\n");21 }22 if(strlen(Number[i])==0)23 break;24 }2526 }27 //文件操作函数28 int Files(char *name,char c)29 {30 FILE *fp=NULL;31 int i;32 char C[4];33 C[0]=c;34 C[1]='\0';35 strcat(name,".txt");36 fp=fopen(name,C);3738 if(fp==NULL)39 {40 return -1;41 }4243 for(i=0;i<N;i++)44 {4546 if(c=='w')47 {48 if(strlen(Number[i])==0)49 break;50 fputs(Number[i],fp);51 fputc('\n',fp);52 }53 else if(c=='r')54 {55 fgets(Number[i],N,fp);56 }57 }58 fclose(fp);59 return 0;60 }61 int Filep(char *name,int k)62 {63 FILE *fp=NULL;64 int i;65 char R[N];66 fp=fopen("name.txt","a+");67 if(fp==NULL)68 {69 return -1;70 }71 if(k==0)72 {73 fputs(name,fp);74 fputs(" ",fp);75 }76 else77 {7879 fgets(R,N,fp);80 printf("%s\n",R);8182 }83 fclose(fp);84 return 0;85 }86 void Interface()87 {88 printf("******************** 主菜单 ******************************\n");89 printf("程序说明:\n");90 printf("1,请用户先录入图形,再点击保存 \n");91 printf("2,若录入后没有点击保存,又进行录入,第一次录入的将被覆盖\n");92 printf("**********************************************************\n");93 printf("******************** 1、录入图形 *********************\n");94 printf("******************** 2、保存图形 *********************\n");95 printf("******************** 3、查看图形 *********************\n");96 printf("******************** 4、退出 *********************\n");97 printf("**********************************************************\n");98 }99 int main()100 {101102 int t=1,n,k,i;103 char Name[20];104 while(t)105 {106 system("cls");107 Interface();108 printf("请从1~4中选择...\n");109 scanf("%d",&n);110 system("cls");111 switch(n)112 {113 case 1:114 Scanf_print(1);115 printf("请设计图形(若一行都无元素,回车后设计完成)!\n\n");116 Scanf_print(1);117 printf("\n\n 录入成功...");118 system("pause");119 break;120 case 2:121 printf("请为这个图形取一个名字:");122 scanf("%s",&Name);123 Filep(Name,0);//存入名字124 Files(Name,'w');125 printf("\n\n 保存成功!\n\n\n");126 system("pause");127 break;128 case 3:129 for(i=1;i<N;i++)130 {131 strcpy(Number[i]," ");132 }133 printf("***********文件已存图形的名称****************\n\n\n");134 Filep('no',1);135 printf("\n\n\n*********************************************\n\n\n");136 printf("请输入查看图形的名字:");137 scanf("%s",&Name);138 k=Files(Name,'r');139 if(k==0)140 {141 printf("\n");142 Scanf_print(0);143 printf("\n");144 }145 else146 printf("\n\n 输入的名字未找到,请输入以上框中有的名字...\n\n"); 147 system("pause");148 break;149 case 4:t=0;break;150 default:151 printf("输入非法字符,请输入1,2,3,4四个整数之一!");152 system("pause");break;153 }154 }155 system("cls");156 printf(" 感谢您的使用,再见!\n\n");157 return 0;158 }六、运行说明1.点击运行后的界面2.输入1并回车后3.设计一个三角形,设计完成后回车即显示设计完成4.回车后回到主界面5.输入2回车之后,为这个图形取名为“三角形”,重复以上操作,我又分别录入了名字为心、心中心、心线等图形6.完成后回车回到主界面,输入3回车之后,会提示已录入的所有图形名称,回复名称之后回车即可查看图形7. 返回主界面后,若输入4回车8.若在主界面输入除1,2,3,4以外的字符,会出现以下提示。
C语言典型例题——关于图形输出
![C语言典型例题——关于图形输出](https://img.taocdn.com/s3/m/a0c06abe1eb91a37f0115c51.png)
在C语言学习中我们会遇到各种输出图形的题目,下面我们就来看一些这种题目。
一、编写程序输出下图所示的图形。
(1)(2)(3)(11)下面我们分别以i、j、k分别表示行数,空格数,星号数。
(1)i j k (2) i j k (3) i j k1 0 1 1 6 1 1 0 92 0 2 2 5 2 2 1 73 0 3 34 3 3 2 54 0 4 4 3 4 4 3 35 0 5 5 2 5 5 4 16 0 6 6 1 6 j<=i-17 0 7 7 0 7 k<=11-2*iK<=i j<=7-iK<=i发现行数、空格、星号有如上关系,用for循环便可实现。
(1)#include"stdio.h"void main(){int i,j;for(i=1;i<=7;i++){for(j=1;j<=i;j++) printf("*");printf("\n");}}(2)#include"stdio.h"void main(){int i,j,k;for(i=1;i<=7;i++){for(j=1;j<=7-i;j++) printf(" ");for(k=1;k<=i;k++) printf("*");printf("\n");}}(3)#include"stdio.h"void main(){int i,j,k;for(i=1;i<=6;i++){for(j=1;j<=i-1;j++) printf(" ");for(k=1;k<=11-2*i;k++) printf("*");printf("\n");}}然后我们在进行扩展。
【精品】北理工C语言上机题复习输出图形
![【精品】北理工C语言上机题复习输出图形](https://img.taocdn.com/s3/m/6852c1d104a1b0717fd5ddeb.png)
* * * *
W W W W W W W W W W W W W W W W W W W W W W W
W W X H H X Y G G Y Z F F Z A B C D E D C B A
#include <stdio.h> void main() { int i,j,n; char ch; // scanf("%d%c",&n,&ch); n = 7; ch = ’W’; for(i=1;i<=n;i++) { for(j=1;j<=2*n-1;j++) printf("* "); printf("\n"); } return; }
ch1 = ch; ch2 = ch; for(i=1;i<=3*(n-1);i++) ch2++; for(i=1;i<=n;i++) { for(j=1;j<=2*n-1;j++) if(j==1||j== 2*n-1) printf("%c ",ch1); else if(i==j || i== 2*n-j) printf("%c ",ch2); else if(i==n) printf("%c ",ch); else printf(" "); printf("\n"); ch1++; ch2--; }
* * * *
* * * * *
for(i=1;i<=n;i++) { for(j=1;j<=2*n-1;j++) if(j==1||j== 2*n-1) printf(“* “);
C语言编程实验
![C语言编程实验](https://img.taocdn.com/s3/m/e36a3b086d85ec3a87c24028915f804d2b168730.png)
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语言打印图形](https://img.taocdn.com/s3/m/b42affa34b73f242336c5fe6.png)
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语言输出各种图形](https://img.taocdn.com/s3/m/9cfc5644d4d8d15abf234ec7.png)
用C语言输出各种图形 The Standardization Office was revised on the afternoon of December 13, 2020输出各种图形一、软件开发目的利用C程序输出各种图形二、数据结构采用数组、函数三、软件功能说明四、软件验收标准1.有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。
注意:要求每执行一个具体的功能之后,程序将重新显示菜单。
2.有严密正确的数据验证功能和数据处理功能,能够实现各功能模块。
3.系统要有一定的可靠性、稳定性。
五、实现代码1 #include <>2 #include <>3 #include <>4 #define N 1005 char Number[N][N];6 xt");36 fp=fopen(name,C);3738 if(fp==NULL)39 {40 return -1;41 }4243 for(i=0;i<N;i++)44 {4546 if(c=='w')47 {48 if(strlen(Number[i])==0)49 break;50 fputs(Number[i],fp);51 fputc('\n',fp);52 }53 else if(c=='r')54 {55 fgets(Number[i],N,fp);56 }57 }58 fclose(fp);59 return 0;60 }61 int Filep(char *name,int k)62 {63 FILE *fp=NULL;64 int i;65 char R[N];66 fp=fopen("","a+");67 if(fp==NULL)68 {69 return -1;70 }71 if(k==0)72 {73 fputs(name,fp);74 fputs(" ",fp);75 }76 else77 {7879 fgets(R,N,fp);80 printf("%s\n",R);8182 }83 fclose(fp);84 return 0;85 }86 void Interface()87 {88 printf("******************** 主菜单 ******************************\n");89 printf("程序说明:\n");90 printf("1,请用户先录入图形,再点击保存 \n");91 printf("2,若录入后没有点击保存,又进行录入,第一次录入的将被覆盖\n");92 printf("**********************************************************\n");93 printf("******************** 1、录入图形 *********************\n");94 printf("******************** 2、保存图形 *********************\n");95 printf("******************** 3、查看图形 *********************\n");96 printf("******************** 4、退出 *********************\n");97 printf("**********************************************************\n");98 }99 int main()100 {101102 int t=1,n,k,i;103 char Name[20];104 while(t)105 {106 system("cls");107 Interface();108 printf("请从1~4中选择...\n");109 scanf("%d",&n);110 system("cls");111 switch(n)112 {113 case 1:114 Scanf_print(1);115 printf("请设计图形(若一行都无元素,回车后设计完成)!\n\n");116 Scanf_print(1);117 printf("\n\n 录入成功...");118 system("pause");119 break;120 case 2:121 printf("请为这个图形取一个名字:");122 scanf("%s",&Name);123 Filep(Name,0);.\n\n");147 system("pause");148 break;149 case 4:t=0;break;150 default:151 printf("输入非法字符,请输入1,2,3,4四个整数之一!"); 152 system("pause");break;153 }154 }155 system("cls");156 printf(" 感谢您的使用,再见!\n\n");157 return 0;158 }六、运行说明1.点击运行后的界面2.输入1并回车后3.设计一个三角形,设计完成后回车即显示设计完成4.回车后回到主界面5.输入2回车之后,为这个图形取名为“三角形”,重复以上操作,我又分别录入了名字为心、心中心、心线等图形6.完成后回车回到主界面,输入3回车之后,会提示已录入的所有图形名称,回复名称之后回车即可查看图形7. 返回主界面后,若输入4回车8.若在主界面输入除1,2,3,4以外的字符,会出现以下提示。
C语言图形输出习题解析
![C语言图形输出习题解析](https://img.taocdn.com/s3/m/b55dee16a32d7375a4178099.png)
【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语言星图案类题集](https://img.taocdn.com/s3/m/8ce3d934bc64783e0912a21614791711cc79790e.png)
转自他出............用星号打印各种图形及参考答案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编写程序;输出如图所示sinx 函数0到2π的图形..4.18编写程序;在屏幕上输出一个由号围成的空心圆..4.19编写程序;在屏幕上绘制如图余弦曲线和直线..若屏幕的横向为x轴;纵向为y轴; 在屏幕上显示0~360度的cosx曲线与直线x=fy=45y-1+31的迭加图形..其中cos图形用""表示;fy用"+"表示;在两个图形的交点处则用fy图形的符号..4.4分析:打印此图形用两重循环实现..图形要重复n行;故采用循环结构实现循环n次;循环体内部打印一行''号;把上述思路表示为:fori=1;i<=n;i++打印一行''号;每行有n个''号;再采用循环结构实现n次循环;循环内部用格式输出语句打印一个''号;即:forj=1;j<=n;j++printf"";按照上述思路;实现打印矩形..参考答案:main{ int i;j;n;printf"\nPlease Enter n:";scanf"%d";&n;fori=1;i<=n;i++{ forj=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;fori=1;i<=n;i++{ forj=1;j<=n-i;j++printf" ";forj=1;j<=n;j++printf"";printf"\n";}}4.6分析:此题和上题的区别在于每行''的数量逐行减少;可以使用上题控制空格个数的思路来控制''号的个数;请注意每行''的个数都是奇数..参考答案:main{ int i;j;n;printf"\nPlease Enter n:";scanf"%d";&n;fori=1;i<=n;i++{ forj=1;j<=n-i;j++printf" ";forj=1;j<=2i-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<=2n-i;j++ / 重复输出图形一行中的每个字符 / ifj<=i-1 printf" "; / 输出前面的空格 /else printf""; / 输出后面的号 /printf"\n";}}4.8分析:此题和第3题的区别仅是每行的''个数增加n-1个..参考答案:main{ int i;j;n;printf"\nPlease Enter n:";scanf"%d";&n;fori=1;i<=n;i++{ forj=1;j<=n-i;j++printf" ";forj=1;j<=2i-1+n-1;j++printf"";printf"\n";}}4.9分析:对于空心图形;我们可以在上题的基础上;对于打印''号的循环进行修改;仅在循环开始值j=1和循环结束值j=2i-1+n时打印''号;其它位置都打印空格..另一种思路是将每行打印的空格和''的两个循环合为一体考虑;在判断出需要打印''的两个位置及第一行和最后一行相应位置外;其余位置都打印空格..参考答案:main{ int i;j;n;printf"\nPlease Enter n:";scanf"%d";&n;fori=1;i<=n;i++{ forj=1;j<=2n+i-3;j++ifj==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;fori=1;i<=n;i++ / 输出图形的上半部分含中心行 /{ forj=1;j<=2n-i-1;j++ifj==i printf"";else printf" ";printf"\n";}fori=1;i<n;i++ / 输出图形的下半部分不含中心行 /{ forj=1;j<=n+i;j++ifj==n-i printf"";else printf" ";printf"\n";}}4.11分析:此题与上题的区别在于打印''号的位置不同;编程时要找出应打印''号的位置和两个循环变量i、j以及行数n的关系..参考答案:main{ int i;j;n;printf"\nPlease Enter n:";scanf "%d"; &n;fori=1;i<=n;i++ / 输出图形的上半部分含中心行 / { forj=1;j<=2n-i;j++ifj==n-i+1 || j>n-i+1 && i==1 printf"";else printf" ";printf"\n";}fori=1;i<n;i++ / 输出图形的下半部分不含中心行 / { forj=1;j<=3n-1-i;j++ifj==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;fori=1;i<=n;i++{ forj=1;j<=n;j++ifj==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;fori=1;i<=n;i++ / 输出图形的上半部分含中心行 / { forj=1;j<=n-i;j++ifj==1 || j==n-i+1 printf" ";else printf" ";printf"\n";}fori=1;i<n;i++ / 输出图形的下半部分不含中心行 / { forj=1;j<=i+1;j++ifj==1 || j==i+1 printf" ";else printf" ";printf"\n";}}4.14参考答案:main{ int i;j;n;printf"\nPlease Enter n: ";scanf"%d";&n;fori=1;i<=n;i++{ forj=1;j<=n;j++ifj==1 || j==i || j==n printf"";else printf" ";printf"\n";}}4.15参考答案:main{ int i;j;n;printf"\nPlease Enter n: ";scanf"%d";&n;fori=1;i<=n;i++{ forj=1;j<=n+i-1;j++ifj>n-i printf"";else printf" ";printf"\n";}fori=1;i<n;i++{ forj=1;j<=2n-i-1;j++ifj>i printf"";else printf" ";printf"\n";}}4.16参考答案:main{ int i;j;n;printf"\nPlease Enter n: ";scanf"%d";&n;fori=1;i<=n;i++{ forj=1;j<=n+i-2;j++ifj==n-i+1 printf"";else printf" ";printf"\n";}}4.17分析:首先对图形进行设计;坐标的X轴和Y轴分别对应屏幕的列和行;一个正弦函数的周期为0~360度;我们把一个步长定义为10度;打印时每换一行等于函数的自变量增加10度;屏幕的列宽为80;函数值为0对应屏幕的第40列;sinx的值在-1~1;变换成列数为以0为中心的-30~30;对应屏幕上第10~70列..设计程序时;控制换行的自变量i乘以10得到正弦函数的X值;调用库函数sin求出函数值再乘以30输出的列宽;因为我们以屏幕的第40列为0点;故再加上40得到应在屏幕上显示的点..参考答案:define PAI 3.14159include <math.h>main{ double x;int y;i;yy;fori=1;i<80;i++ / 打印图形的第一行 /ifi==40 printf""; / i控制打印的列位置 / else printf"-";printf"\n";forx=10.0;x<=360.0;x+=10. / 从10度到360度 /{ y = 40+30sinxPAI/180.0; / 计算对应的列 /yy = 40>y 40 : y; / 下一行要打印的字符总数 /for i=1;i<=yy;i++ / 控制输出图形中的一行 /{ ifi==y printf""; / i控制打印的列位置 /else ifi==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;fory=10;y>=-10;y-- / 圆的半径为10 /{ m = 2.5 sqrt100-yy; / 计算行y对应的列坐标m /forx=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.1yy;m = acos1-y10;n = 45 y-1+31;for x=0;x<=62;x++if x==m && x==n printf"+";else ifx==n printf"+";else ifx==m || x==62-m printf"";else printf" ";printf"\n";}}。
C语言图形题
![C语言图形题](https://img.taocdn.com/s3/m/416866c65ff7ba0d4a7302768e9951e79a896975.png)
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语言星号打印矩形、三角形、菱形等图案及参考答案](https://img.taocdn.com/s3/m/5c919ec6647d27284a73510e.png)
用星号打印各种图形及参考答案之杨若古兰创作【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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
}
【4.5】分析:此图形和上题的区别在于在每一行先要打印空格,然后再打印n个'*'号,在上题第一层循环体内打印'*'号的循环前面增加一个循环打印空格。每行空格的个数是逐行减少的,由于第一层循环的控制变量i是逐行增1,所以用一个固定值的数减去i就可实现对空格个数的控制,在此题中固定值可使用变量n。
【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)图形的符号。
{ 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)时打印'*'号,其它位置都打印空格。另一种思路是将每行打印的空格和'*'的两个循环合为一体考虑,在判断出需要打印'*'的两个位置及第一行和最后一行相应位置外,其余位置都打印空格。
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("*");
参考答案:
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.20】编写程序,输出如图所示高度为n的图形。
【4.21】编写程序,输出如图所示高度为n的图形。
【4.22】输入n值,输出如图所示图形。
【4.23】输入n值,输出如图所示的n×n(n<10)阶螺旋方阵。
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
}
}
【4.6】分析:此题和上题的区别在于每行'*'的数量逐行减少,可以使用上题控制空格个数的思路来控制'*'号的个数,请注意每行'*'的个数都是奇数。
参考答案:
main( )
{ int i,j,n;
printf("\nPlease Enter n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
【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.30】编写程序,输出如图所示上三角形式的乘法九九表。
【4.31】编写程序,输出如图所示下三角乘法九九表。
【4.4】分析:打印此图形用两重循环实现。
图形要重复n行,故采用循环结构实现循环n次,循环体内部打印一行'*'号,把上述思路表示为:
for(i=1;i<=n;i++)
打印一行'*'号;
每行有n个'*'号,再采用循环结构实现n次循环,循环内部用格式输出语句打印一个'*'号,即:
A B B B A
A B C B A
A B B B A
A A A A A
图 4.24 首字符为'A'、高为5的方阵
【4.29】输入中心字符和高后,输出如图所示回型方阵。
X X X X X
X Y Y Y X
X Y Z Y X
X Y Y Y Y
X X X X X
图4.25 中心字符为'Z'、高为5的方阵
参考答案:
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(" ");/*输出前面的空格*/
13 12 11 10 9
图4.19 n=5时的螺旋方阵
【4.24】输入n值,输出如图所示回型方阵。
【4.25】输出如图所示的数字金字塔
【4.26】输入n值,输出如图所示图形。
【4.27】输入顶行字符和图形的高,输出如图所示图形。
【4.28】输入首字符和高后,输出如图所示回型方阵。
A A A A A
【4.4】输入n值,输出如图所示矩形。
【4.5】输入n值,输出如图所示平行四边形。
【4.6】输入n值,输出如图所示高为n的等腰三角形。
【4.7】输入n值,输出如图所示高为n的等腰三角形。
【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。
【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。
{ 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个字符为空格,后面的字符为'*'号。按照这一思路可以编写出如下程序。
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++)