最新北理工C语言三四五章答案参考_第1页
最新北理工C语言三四五章答案参考_第2页
最新北理工C语言三四五章答案参考_第3页
最新北理工C语言三四五章答案参考_第4页
最新北理工C语言三四五章答案参考_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档第三章:3-1.打菱形图形成绩10/折:输入,出如下例(n=3)示的边长为的形:*************输入:边长输出:边长n的形#include"stdio.h"main(){intn,i,j;for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)for(j=1;j<=2*i-1;j++)printf("*");printf("\n");}for(i=1;i<=n-1;i++){for(j=1;j<=i;j++)for(j=1;j<=2*n-2*i-1;j++)printf("\n");}}3-2.打平行四边形成绩10/折:输入图形的高n和字符,输出如下例(c='A',)所示的图形.ABCDE精品文档精品文档输入:高n和字符输出:高为和字符为的行四边形#include"stdio.h"main(){intn,i,j;scanf("%d,&c",&n,&c);c=getchar();for(i=1;i<=n;i++){for(j=1;j<=i-1;j++)for(j=1;j<=n;j++)printf("\n");}}3-3.求成绩10/折:输入整数和正整数,下列公式计算:…+(-1)n(m+n)。输入:和n输出:s#include"stdio.h"main(){intm,n,s,k,i,j;scanf("%d%d",&m,&n);精品文档精品文档for(i=1;i<=n;i++){k=m+i;for(j=1;j<=i;j++)k=(-1)*k;s=s+k;}printf("s=%d\n",s);}字加密输出成绩10/折:从键盘上输入一个字符,进行加密以后再输出在屏幕上。加密规律是:输入小写英文字母时,输入a输出Z、输入b输出Y、输入c输出X、输入输A。输入大写英文字母时该字母ASCII码再加上该值的后输出所对应的字符例如数字A的ASCII码是65加上其值的后98小数四舍五入输出字符‘输入数字时,将该数字原ASCII码再加上该值十进制的十位上的数后输出,例如数字9的码是57加上十位上的数是,则输出字>输入其他字符时原样输出。友情提示:整数之间运算的结果要取整,例如结果是,而5.0/2.0小数四舍五入的结果就是3.0了所以输入大写英文字母时的输出要仔细考虑。#include"stdio.h"main()c;c=getchar();if(c>=97&&c<=122)if(c>=65&&c<=90){if(c%2==0)putchar(c*3/2+1);}if(c>=48&&c<=57)putchar(c+c/10%10);printf("\n");}3-5.计时钟的夹角成绩10/折:背景:钟面上的时针和分针之间的夹角总是在0度度间举例来说,在十二点的时候两针之间的夹角为0度而六点的时候夹角为180度在三点的时候为度本要解决的是计算到11:59之任意一个时间的夹角精品文档精品文档输入:每组测试数据包含两个数字:第一个数字代表小时(大于等于小等于12),二个数字代表分在区间[0,上)。输出:对应每组测试数据常用格式显示时间以及这个时候时针和分针间的最小夹角确小数点后一位。输出格式如下所示。输入:30输出:Atis友情提示:以表中心到点连线为基准,分针每走1分是6度时针与基准的夹角每个小时也是30度从整点开始,每过1分时针再增加0.5度#include"stdio.h"main(){intfloatx;scanf("%d%d",&a,&b);if(a<12)x=30*a+0.5*b-6*b;x=0.5*b-6*b;x=-x;printf("At%d:%dangledegrees.\n",a,b,x);printf("Atis%.1fdegrees.\n",a,b,x);}3-6.求密数成绩10/折:若正整数A的全部约数(包括1,不包括A本身)之和等于B;且数B的全部约数(包括1,不包括B本身)之和等于A,则A、B为亲密数。编程,输入正整数A,输出亲密数A,B(A<=B),若不存在亲密数,则输出output(回车。例如:220和就是一对亲密数的数是、2、510、1120、、44、55,约数之和是284的约数是1、4、、142,约数之和是220#include"stdio.h"main(){intscanf("%d",&A);for(i=2;i<=A;i++){k=A/i;B=B+k;}for(i=2;i<=B;i++)精品文档精品文档{k=B/i;C=C+k;}{if(A<B)printf("%d-%d\n",A,B);printf("%d-%d\n",B,A);}printf("Nooutput\n");}打空心等腰梯成绩10/折:输入值输出如下例(n=4)所示的高和上底均为的等腰梯形:******************输入:高n输出:高和底均为n的腰梯形#include"stdio.h"int{intn,i,j;for(i=1;i<=n;i++){if(i==1||i==n){for(j=1;j<=n-i;j++)for(j=1;j<=n+2*i-2;j++)printf("*");}for(j=1;j<=2*n+i-2;j++){if(j==n-i+1||j==2*n+i-2)printf("*");");}printf("\n");}}4-2.反输出整数成绩10/折:输入一个整数,要以相反的顺序输出该数,如,N=,出-4321。输入:整数N精品文档精品文档输出:的反序数#include"stdio.h"int{intN,M=0,L,i=1,k=1,j,a[100],b[100];scanf("%d",&N);if(N>=0)k=10*k;i++;}for(j=1;j<=i-1;j++)M=a[j]*b[i-j]+M;M=-M;}4-3.求大、次大、最小和次小值成绩10/折:输入和n个数及其序号(如:15,45,...),次输出n个数的最大值、次大值、最小值、次小值及其原始序号。输入:和n个数及其序号输出:个数的最大值次大值、最小值、次小值及其原始序号#include"stdio.h"int{intn,i,a[100],b[100],max,min,x,y;scanf("%d\n",&n);for(i=0;i<=n-1;i++)scanf("%d,%d",&a[i],&b[i]);x=y=max=min=0;for(i=0;i<=n-1;i++){if(a[i]>a[max])min=i;}if(x==max)x=min;if(y==min)y=max;for(i=0;i<=n-1;i++)y=i;}printf("%d,%dprintf("%d,%d%d,%d\n",a[min],b[min],a[y],b[y]);}精品文档精品文档4-4.10进数转换为16位二进制数成绩10/折:将任一正整数(<32768)转换为位进形式。输入:正整输出:正整的位进制数#include"stdio.h"int{intscanf("%d",&N);while(N/k*2>=2)i++;}printf("0");for(j=1;j<=i-1;j++)printf("%d",a[i-j]);printf("\n");}4-5.打实心正方形成绩10/折:上次你已经打印了一*,这次在屏幕上输出一个由星号组成的行列正方形。程序输入值输出如下例()示的高和上底均为n的正方形:****************输入:高n输出:行n列正方形#include"stdio.h"int{intn,i,j;精品文档精品文档for(i=1;i<=n;i++)printf("\n");}}4-6.学成绩归类成绩10/折:学生的学习成绩是百分制,成绩的归类标准是:90<=成<=100为"super";80<=成为;70<=成为;60<=成为"pass"成绩为。编写程序。输入若干个成绩,输出成绩和相应的等级。输入成绩为负时,程序结束,输入成绩大于100分显示“inputerror#include"stdio.h"int{inta;do{scanf("%d",&a);printf("%d\"inputif(a>=70&&a<80)printf("%d\"ok\"\n",a);if(a>=80&&a<90)printf("%d\"good\"\n",a);if(a>=60&&a<70)printf("%dif(a>=0&&a<60)printf("%d\"no}4-7.输星期几的英文表示成绩10/折:输入用数字表的星期,输出星期几的英文表示,输入的数字有误,输出单词回车)"。#include"stdio.h"int{intn;精品文档精品文档printf("Monday\n");if(n==2)if(n==3)if(n==4)printf("Thursday\n");if(n==5)printf("Friday\n");if(n==6)if(n==7)printf("Sunday\n");printf("Error\n");}4-8.求大数和最小数的算数运算结果成绩10/折:输入若干个整数,及其要进行的算术运算(+|-|*|/)符,输出最大整数与最小整数进行给定的算术运算的结果。输入的整数范围是0~65535入等号作为输入的结束,输出格式见例题。输入:整数序列及其运算序号输出:最大与最小数的算术算式#include"stdio.h"intintn=0,max,min,i0,n0,i=n0=0;i0=100;ch=48;while((ch=getchar())!='='){if(ch>='0'&&ch<='9')else{if(ch==',')max=n0;i=0;n=0;}{switch(ch){case'+':printf("%d+%d=%d\n",max,min,max+min);break;case'/':if(min!=0)printf("Error!\n");}break;}}}ch=getchar();}精品文档精品文档4-9.黑星期五成绩10/折:在西方,星期五和数字13都表着坏运气,两个不幸的个体最后结合成超级不幸的一天。所以,不管哪个月的13日又恰逢星期五就叫“色星期五”。入某年年号和该年的元旦是星期几(出该年所有的“黑星期五的日期(年月/日)。输入:位年号和该年元旦是星期几输出:所有“色星期五”日期(/月日)#include"stdio.h"int{inta,b,k;scanf("%d%d",&a,&b);k=29;{if((12+b)%7==5)if((12+b+31)%7==5)if((12+b+31+k)%7==5)if((12+b+31+k+31)%7==5)if((12+b+31+k+31+30)%7==5)printf("%d/5/13\n",a);if((12+b+31+k+31+30+31)%7==5)printf("%d/6/13\n",a);if((12+b+31+k+31+30+31+30)%7==5)printf("%d/7/13\n",a);if((12+b+31+k+31+30+31+30+31)%7==5)if((12+b+31+k+31+30+31+30+31+31)%7==5)printf("%d/9/13\n",a);if((12+b+31+k+31+30+31+30+31+31+30)%7==5)printf("%d/10/13\n",a);if((12+b+31+k+31+30+31+30+31+31+30+31)%7==5)printf("%d/11/13\n",a);if((12+b+31+k+31+30+31+30+31+31+30+31+30)%7==5)}第五章:5-1.打空心菱形成绩10/折:输入图形的高n和行字符。出如下例(c='A',n=5)所示的图形。A精品文档精品文档DDCBBA输入:高n和行字符输出:空心形#include"stdio.h"main(){intn,i,j;scanf("%d,%d",&n,&c);c=getchar();for(i=1;i<=n;i++){for(j=1;j<=n+i-1;j++){if(j==n-i+1||j==n+i-1)putchar(c+i-1);");}printf("\n");}for(i=1;i<=n-1;i++)putchar(c+n-i-1);");}printf("\n");}}5-2.求位数字之和等于能被整的整数成绩10/折:输入正整数M和N(M,N均小于,输出M和之间所有满足下列条件的所有整数:整数的各位数字之和等于且被整除。若没有满足条件的整数则出:精品文档精品文档output输入:整数间m,n输出:各位字之和等于5且被5整的所有整数#include"stdio.h"int{intM,N,K,a,b,c,d,p=0;scanf("%d{a=K/1000;c=K/10%10;if(a+b+c+d==5&&K%5==0)p=1;}}printf("Nooutput\n");}5-3.学成绩排序成绩10/折:按学生的序号输入名生的成绩,按照分数由高到低的顺序输出学生的名次、序号和成绩,要求成绩相同的学生具有相同的名次。输入:学生数和名生的成绩输出:按分数由高到低的顺序出学生的名次、序号和成绩#include"stdio.h"int{intn,i,j,k,a[20],b[20];scanf("%d\n",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);b[0]=b[n-1]=a[0];for(i=0;i<n;i++){if(a[i]>b[0])b[0]=a[i];for(i=1;i<n;i++)b[i]=b[n-1];for(i=0;i<n-2;i++){for(j=0;j<n;j++)if(a[j]<b[i]&&a[j]>b[i+1])for(i=0;i<n-1;i++)break;精品文档精品文档for(j=0;j<=i;j++){for(k=0;k<n;k++)printf("%d:%d,%d\n",j+1,k+1,a[k]);}}5-4.打×空心菱形成绩10/折:输入图形的,输如下例n=5时所示的图形。****************输入:高n输出:空心形友情提示:第一步,先输出由*组的的实心正三角形和n-1行实心倒三角形;第二步,通过判断原每行的第一个和最后一个输*,余位置输出空格。#include"stdio.h"int{intn,i,j;for(i=1;i<=n;i++){for(j=1;j<=n+i-1;j++){if(j==n-i+1||j==n+i-1)printf("*");");}printf("\n");}for(i=1;i<=n-1;i++)printf("*");");}printf("\n");}}精品文档精品文档5-5.马团观众人数成绩10/折:一个马戏团表演,个位全满,全部门票收入是120元现在知道,男人每人元女人每人元小孩每人角编程,输入总人数,出满足要求的男人、女人和小孩人数的全部方案。若n人法满足条件,则输出No输入:人数输出:男人女人和小孩人数#include"stdio.h"int{intn,a,b,c,p=0;for(b=0;b<=60;b++)if(50*a+20*b+c==1200&&c>=0){printf("%d,%d,%d\n",a,b,c);p=1;}}printf("Nooutput\n");}5-6.求位数字组成的最大数成绩10/折:任意输入一个自然数不大于99999999出该自然数的各位数字组成的最大数。如,输入,输出为9531。输入:自然n输出:各位字组成的最大数#include"stdio.h"int{intintc[8]={0};scanf("%d",&N);while(N/k*10>=10){a[i]=N/k%10;k=10*k;i++;}b[0]=b[i-1]=a[0];{if(a[j]>b[0])b[0]=a[j];精品文档精品文档if(a[j]<b[i-1])b[i-1]=a[j];}for(j=0;j<i-2;j++){for(p=0;p<i;p++)b[j+1]=a[p];}if(b[j-1]==b[j])for(p=0;p<j;p++){for(q=0;q<i;q++)if(a[q]==b[p])c[p]=c[p]+1;}for(p=0;p<j;p++)printf("\n");}5-7.寻特殊整数成绩5折:请编写一个程序寻找一种特殊整数:一个n位正整数等于其各位数字的次之和。例如:××4+0××××。所以就一个特殊数。输入:正整数的位数(输出:所有此n位殊数。每个数占一行。若不存在符合条件的特殊数,则输出提示:“Nooutput.存,则从小到进行输出。说明:假设输入为,在4位数中,有3个4位特殊数则输出格式为(输出中的11112222和并不是4位殊数,只是格式样例#include"stdio.h"int{intscanf("%d",&x);if(x==1)p=1;}if(x==2)for(i=1;i<=9;i++)for(j=0;j<=9;j++){M=i*i+j*j;{printf("%d\n",N);p=1;}}精品文档精品文档if(x==3)for(i=1;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++){M=i*i*i+j*j*j+k*k*k;N=100*i+10*j+k;if(M==N){printf("%d\n",N);p=1;}}if(x==4)for(i=1;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++)for(l=0;l<=9;l++){M=i*i*i*i+j*j*j*j+k*k*k*k+l*l*l*l;N=1000*i+100*j+10*k+l;if(M==N){printf("%d\n",N);p=1;}}if(x==5)for(i=1;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++)for(l=0;l<=9;l++){M=i*i*i*i*i+j*j*j*j*j+k*k*k*k*k+l*l*l*l*l+m*m*m*m*m;N=10000*i+1000*j+100*k+10*l+m;if(M==N){printf("%d\n",N);p=1;}}if(x==6)for(i=1;i<=9;i++)for(j=0;j<=9;j++)for(k=0;k<=9;k++)for(l=0;l<=9;l++)for(m=0;m<=9;m++){M=i*i*i*i*i*i+j*j*j*j*j*j+k*k*k*k*k*k+l*l*l*l*l*l+m*m*m*m*m*m+n*n*n*n*n*n;N=100000*i+10000*j+1000*k+100*l+10*m+n;if(M==N){printf("%d\n",N);p=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论