《程序设计基础2021》题目集2 题解二

目录

引言

7-1 三角形面积 (10 分)

7-2 黑白三子棋局 (10 分) 

7-3 十进制转八进制 (5 分)

7-4 统计报表(1) (10 分)

7-5 输出漏斗图形 (10 分)

7-6 交换两实数的整数部分 (10 分) 

7-7 爱音乐 (5 分)

7-8 输入输出控制 (10 分) 

tips:

7-9 你好,又是你。 (15 分)

篇尾 


引言

题目简单,就简化代码(ノ๑`ȏ´๑)ノ︵ 

7-1 三角形面积 (10 分)

#include
int main(){double b=0,h=0;scanf("%lf %lf",&b,&h);printf("%.2lf",(0.5)*b*h);return 0;
} 

7-2 黑白三子棋局 (10 分) 

#include
int main(){printf("┏━┯━┯━┓\n┃○│  │○┃\n┠─┼─┼─┨\n┃  │○│●┃\n┠─┼─┼─┨\n┃●│●│  ┃\n┗━┷━┷━┛\n");	return 0;
}

可能编译器输出结果不尽人意,按照提示要求修改一下就好了

7-3 十进制转八进制 (5 分)

#include
int main(){unsigned int n=0;scanf("%u",&n);printf("%o",n);return 0;
}

关于%o、%x、%e、%g等格式符的作用,请看格式输入输出中格式符的含义

7-4 统计报表(1) (10 分)

#include
int main(){int i=0,n_1=0,n_2=0,n_3=0,n_4=0,sum=0;printf("┌───┬───┐\n│ 季度 │ 销量 │\n");scanf("%d",&n_1);printf("├───┼───┤\n");printf("│一季度│%6d│\n",n_1);scanf("%d",&n_2);printf("├───┼───┤\n");printf("│二季度│%6d│\n",n_2);scanf("%d",&n_3);printf("├───┼───┤\n");printf("│三季度│%6d│\n",n_3);scanf("%d",&n_4);printf("├───┼───┤\n");printf("│四季度│%6d│\n",n_4);sum=n_1+n_2+n_3+n_4;printf("├───┼───┤\n│ 全年 │%6d│\n└───┴───┘",sum);return 0;
}

这道题我本来只想用一个 for 循环解决的,但是测试时发现我不会中文字符的递增 (ー_ー)!!

为此,我查了一下 中文是字符型变量吗 ,百度给出的结果,中文是只能是常量,只能当字符串使用,所以不能通过简单的 i++ ,来实现中文数字的递增,当然有办法可以实现,只是放到这题里大材小用了

7-5 输出漏斗图形 (10 分)

#include
int main(){printf("*********\n *******\n  *****\n   ***\n    *\n   ***\n  *****\n *******\n*********\n");return 0;
}

注意空格 ,最喜欢打印图形的题,这个太简单了

7-6 交换两实数的整数部分 (10 分) 

#include
int main(){double a=0,b=0,c=0,d=0;scanf("%lf %lf",&a,&b);c=(int)b+a-(int)a;d=(int)a+b-(int)b;printf("%.2lf,%.2lf",c,d);return 0;
}

这里可以只用定义三个变量

7-7 爱音乐 (5 分)

#include
int main(){char ch[3]={73,3,14};printf("%s",ch);return 0;
}

嘿嘿,记住了, •̀.̫•́✧)╭☞     ♥ 的 ASCII 码为 3

并且在 Windows 10 操作系统中,需要将运行窗口中的字体设置为点阵字体、将字号设置为 8x16,才能正常显示。

7-8 输入输出控制 (10 分) 

#include
int main(){char a=0;unsigned short b=0;int c=0,m=0,n=0;float d=0;double e=0;m=scanf("%c%*c%hu%*c%d%*c%f%*c%lf",&a,&b,&c,&d,&e); printf("%d\n",m); m=printf("%c,%hu,%d,%.3f,%.3lf\n",a,b,c,d,e);printf("%d\n",m-1);printf("%d\n",sizeof(a)+sizeof(b)+sizeof(c)+sizeof(d)+sizeof(e));return 0;
}

tips:

 %*c 可以直接跳过一个字符

 n=scanf() 可以表示输出成功读取到n个数

 m=printf() 可以表示输出的内容占用m个字符位置

7-9 你好,又是你。 (15 分)

#include
int main(){long n=0;scanf("%ld",&n);printf("%.1lf%%",(5000.0/n)*100.0); return 0;
}

又是一个看着麻烦,实际上非常简单的题,就是一个除法(⍥(⍥(⍥(⍥(⍥;;)

篇尾 

打印图形,对循环的掌握程度要求比较高,但是,相比与其他代码,写出来更有成就感,比如可以控制大小的爱心之类的,

下面附一个可以控制大小的圣诞树图形的代码

#include
int main(){int i=0,j=0,k=0,n=0;scanf("%d",&n);for(i=1;i<=n;i++){ //树节i	for(j=1;j<=i+1;j++){ // 每节层数 jfor(k=1;k<=n-j+1;k++){printf(" ");}for(k=1;k<=2*j-1;k++){//每层*数目printf("*");}printf("\n");//每层换行 }}for(j=0;j


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部