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 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 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 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 的方阵 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 if i j else if i j else if i n 1 2 min MIN i n j 1 else if i n 1 2 else min MIN i j a22 fun a11 min min n return fun a22 i min 1 j min 1 n 2 min 1 main int a11 1 i j n printf Enter n scanf d for i 1 i n i for j 1 j n j printf 4d fun a11 i j n printf n 4 24 分析 此题的关键还是要找到输出数字 aij 和行列数 i j 的关系 为此将图形分为 四个区域如下图 3 3 3 3 3 3 2 2 2 3 3 2 1 2 3 3 2 2 2 3 3 3 3 3 3 此图 n 为 5 在左上区域 即 i n 1 2 j n 1 2 时 输出数字为 n 1 2 i 1 和 n 1 2 j 1 中的大者 记为 max n 1 2 i 1 n 1 2 j 1 在右上区 即 i n 1 2 时 输出数字为 max n 1 2 i 1 j n 2 在左下区 即 i n 1 2 j n 1 2 j n 1 2 时 输出数字为 max i n 2 j n 2 参考答案 define max x y x y x y 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 i n 1 2 if j n 1 2 printf 4d max n 1 2 i 1 n 1 2 j 1 else printf 4d max n 1 2 i 1 j n 2 else if j n 1 2 printf 4d max i n 2 n 1 2 j 1 else printf 4d max i n 2 j n 2 printf n 4 25 分析 前面我们已经见到过上下对称的图形 这是一个左右对称的图形 垂直中 心线上的数字恰好是行号 在每行位于图形垂直中心线左方的数字是逐渐增加的 而右方 是逐渐减小的 j i 是分区的标志 左方输出数字就是列数 j 而右方的数字从 i 开始逐步 减小 1 参考答案 main int i j for i 1 i 9 i for j 1 j 9 i j printf for j 1 j 1 j printf 2d j printf n 4 26 分析 这类输出字符的图形和输出数字的图形考虑是近似的 因为字符的 ASCII 码就是一个整数 在字符码值的变化过程中 应该注意应该判断码值是否超出字符的范围 进行必要的处理 为了保持程序的简洁 本题没有考虑这个问题 在下题里对这个问题进 行了处理 参考答案 main char c Z 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 c c else printf printf c n c for i 1 i n i for j 1 j 2 n 1 i j if j i 1 printf c c else printf printf c n c 4 27 分析 此题与上题相近 区别在于输出时字符的 ASCII 码值的变化在图形的中间 一行为最大 同时一行的两个字符是相同的 程序考虑在输入字符时设计了一个循环 保 证输入的是英文字母 字符变化后进行了处理 程序中使用条件运算 在字符码值增加的 过程中 首先判断是大写还是小写字符 然后判断字符码值是否超出英文字母 z 或 Z 如 果超出则重新赋为 a 或 A 在输出图象下半部分时 ASCII 码值减少用同样的思路进行判 断 在判断字符大小写 条件语句的第一个判断 时 用的是两个不同的值 请读者自行 思考为什么 用同一个值是否可以 参考答案 main char c int i j n do printf nPlease Enter n char scanf d c n c while c Z c z for i 1 i n i for j 1 j n i 2 j if j n i 1 printf c c else printf printf c n c c c Z A c c z a c c 2 c c Z c A Z c c a z c for i 1 i n i for j 1 j 2 n 1 i j if j i 1 printf c c else printf printf c n c c c Z c A Z c c y x y main char c int i j n do printf nPlease Enter n char scanf d c n c while c Z c z for i 1 i n i for j 1 j n j if i n 1 2 if j n 1 2 printf c c max n 1 2 i 1 n 1 2 j 1 n 1 2 else printf c c max n 1 2 i 1 j n 2 n 1 2 else if j y x y main char c int i j n do printf nPlease Enter n char scanf d c n c while c Z c z for i 1 i n i for j 1 j n j if i n 1 2 if j n 1 2 printf c c max n 1 2 i 1 n 1 2 j 1 1 else printf c c max n 1 2 i 1 j n 2 1 else if j n 1 2 printf c c max i n 2 n 1 2 j 1 1 else printf c c max i n 2 j n 2 1 printf n 4 30 参考答案 include main int i j for i 1 i 10 i printf 4d i printf n n for i 1 i 10 i for j 1 j 10 j if j i printf else printf 4d i j printf n 4 31 参考答案 include main int i j for i 1 i 10 i printf 4d i printf n n for i 1 i 10 i for j 1 j 10 j if j 10 i printf else printf 4d 10 i j printf n

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值