明解c语言第四章答案,明解C语言入门篇(第4章练习题)

4.1

#include

int main(void)

{

int retry;

do

{

int no;

printf("请输入一个整数:");

scanf("%d", &no);

if (no == 0)

puts("该整数为0.");

else if (no > 0)

puts("该整数为正数.");

else

puts("该整数为负数.");

printf("是否继续? ");

scanf("%d", &retry);

}while (retry == 0);

return 0;

}

4.2

#include

int main(void)

{

int a, b, max, min;

int sum = 0;

printf("请输入两个整数: ");

scanf("%d %d", &a, &b);

if (a >= b)

{

min = b;

max = a;

}

else

{

min = a;

max = b;

}

do

{

sum = sum + min;

min = min + 1;

}while (min <= max);

printf("这两个整数及其之间所有整数的和为%d.\n", sum);

return 0;

}

4.3

#include

int main(void)

{

int no;

printf("请输入一个正整数: ");

scanf("%d", &no);

while (no >= 0)

{

printf("%d ", no);

no--;

}

while (no >= 0)

printf("\n");

return 0;

}

4.4

#include

int main(void)

{

int no;

printf("请输入一个正整数: ");

scanf("%d", &no);

while (no > 0)

printf("%d ", no--);

while (no >= 0)

{

printf("\n");

no--;

}

return 0;

}

4.5

#include

int main(void)

{

int i, no;

printf("请输入一个正整数: ");

scanf("%d", &no);

i = 1;

while (i <= no)

printf("%d ", i++);

if (no < 0);

return 0;

}

4.6

#include

int main(void)

{

int no, i;

printf("请输入一个正整数: ");

scanf("%d", &no);

i = 2;

while (i <= no)

{

printf("%d ", i);

i += 2;

}

return 0;

}

4.7

#include

int main(void)

{

int i, no;

printf("请输入一个正整数: ");

scanf("%d", &no);

i = 2;

while (i <= no)

{

printf("%d ", i);

i = i * 2;

}

return 0;

}

4.8

#include

int main(void)

{

int no;

printf("请输入一个正整数: ");

scanf("%d", &no);

while (no-- > 0)

putchar('*');

while (no >= 1)

printf("\n");

return 0;

}

4.9

#include

int main(void)

{

int num, i;

printf("要输入多少个整数: ");

scanf("%d", &num);

i = 0;

while (num >= 0 && i < num){

if (i % 2)

putchar('-');

else

putchar('+');

i++;

}

return 0;

}

4.10

#include

int main(void)

{

int num, i;

printf("要输入多少个整数: ");

scanf("%d", &num);

i = 0;

while (num >= 0 && i < num)

{

putchar('*');

printf("\n");

i++;

}

return 0;

}

4.11

#include

int main(void)

{

int no;

do{

printf("请输入一个正整数: ");

scanf("%d", &no);

if (no <= 0)

puts("\a请不要输入非正整数。");

}while (no <= 0);

/* no比0大时 */

printf("%d逆向显示的结果是", no);

while (no > 0)

{

printf("%d", no % 10);

no /= 10;

}

puts("。");

return 0;

}

4.12

#include

int main(void)

{

int no, i;

do{

printf("请输入一个正整数: ");

scanf("%d", &no);

if (no <= 0)

puts("\a请不要输入非正整数。");

}while (no <= 0);

/* no比0大时 */

printf("%d的位数是", no);

i = 0;

while (no > 0)

{

no /= 10;

i++;

}

printf("%d。", i);

return 0;

}

4.13

#include

int main(void)

{

int no, i, sum;

printf("请输入n的值: ");

scanf("%d", &no);

sum = 0;

for (i = 0; i <= no; i++)

{

sum += i;

}

printf("1到%d的和为%d。\n", no, sum);

return 0;

}

4.14

#include

int main(void)

{

int i, j, n;

j = 1;

printf("请输入一个正整数: ");

scanf("%d", &n);

for (i = 0; i < n; i++)

{

printf("%d", j);

j++;

if (j > 9)

j -= 10;

}

printf("\n");

return 0;

}

4.15

#include

int main(void)

{

int n1, n2, n3, i;

double w;

printf("开始数值(cm): ");

scanf("%d", &n1);

printf("结束数值(cm): ");

scanf("%d", &n2);

printf("间隔数值(cm): ");

scanf("%d", &n3);

i = n1;

while (i <= n2)

{

w = (i - 80) * 0.7;

printf("%dcm %.2fkg\n", i, w);

i += n3;

}

return 0;

}

4.16

#include

int main(void)

{

int n, i;

printf("请输入一个整数: ");

scanf("%d", &n);

for (i = 1; i <= n; i+= 2)

{

printf("%d ", i);

}

printf("\n");

return 0;

}

4.17

#include

int main(void)

{

int n, i;

printf("请输入一个整数: ");

scanf("%d", &n);

for (i = 1; i <= n; i++)

{

printf("%d的二次方是%d\n", i, i * i);

}

return 0;

}

4.18

#include

int main(void)

{

int n, i;

printf("请输入一个整数: ");

scanf("%d", &n);

for (i = 1; i <= n; i++)

{

putchar('*');

if (i % 5 == 0)

printf("\n");

}

return 0;

}

4.19

#include

int main(void)

{

int i, n;

int j = 0;

printf("请输入一个整数: ");

scanf("%d", &n);

for (i = 1; i <= n; i++)

{

if (n % i == 0)

{

printf("%d\n", i);

j++;

}

}

printf("约数有%d个。\n", j);

return 0;

}

4.20

#include

int main(void)

{

int i, j;

printf(" | ");

for (j = 1; j <= 9; j++)

{

printf("%3d ", j);

}

printf("\n");

printf("------------------------------------------------\n");

for (i = 1; i <= 9; i++)

{

printf("%d | ", i);

for (j = 1; j <= 9; j++)

{

printf("%3d ", i * j);

}

printf("\n");

}

return 0;

}

4.21

#include

int main(void)

{

int n, i, j;

printf("请输入一个正整数: ");

scanf("%d", &n);

for (i = 1; i <= n; i++)

{

for (j = 1; j <= n; j++)

{

putchar('*');

}

printf("\n");

}

return 0;

}

4.22

#include

int main(void)

{

int i, j;

int height, width;

puts("让我们来画一个长方形。");

printf("一边: ");

scanf("%d", &height);

printf("另一边: ");

scanf("%d", &width);

for (i = 1; i <= width; i++)

{

for (j = 1; j <= height; j++)

{

putchar('*');

}

putchar('\n');

}

return 0;

}

4.23

直角在左上方:

#include

int main(void)

{

int i, j, len;

puts("生成直角在左上方的等腰直角三角形。");

printf("短边: ");

scanf("%d", &len);

for (i = 1; i <= len; i++)

{

for (j = len; j >= i; j--)

{

putchar('*');

}

putchar('\n');

}

return 0;

}

直角在右上方:

#include

int main(void)

{

int i, j, len;

puts("生成直角在右上方的等腰直角三角形。");

printf("短边: ");

scanf("%d", &len);

for (i = len; i > 0; i--)

{

for (j = 1; j <= len - i; j++)

{

putchar(' ');

}

for (j = 1; j <= i; j++)

{

putchar('*');

}

printf("\n");

}

return 0;

}

4.24

#include

int main(void)

{

int i, j, len;

printf("让我们来画一个金字塔。\n");

printf("金字塔有几层: ");

scanf("%d", &len);

for (i = 1; i <= len; i++)

{

for (j = 1; j <= len - i; j++)

{

putchar(' ');

}

for (j = 1; j <= (i - 1) * 2 + 1; j++)

{

putchar('*');

}

printf("\n");

}

return 0;

}

4.25

#include

int main(void)

{

int i, j, n;

printf("让我们来画一个向下的金字塔。\n");

printf("金字塔有几层: ");

scanf("%d", &n);

for (i = 1; i <= n; i++)

{

for (j = n; j > n - i + 1; j--)

{

putchar(' ');

}

for (j = 1; j <= (n - i) * 2 + 1; j++)

{

printf("%d", i % 10);

}

printf("\n");

}

return 0;

}

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
明解C语言入门篇第四章主要介绍了金字塔的练习。其中练习4-24是输入一个整数,然后根据输入的整数层数,画出一个金字塔形状。代码使用了嵌套循环,外层循环控制金字塔的层数,内层循环控制每一层的输出。具体实现是通过在内层循环中打印空格,然后在另一个内层循环中打印星号来实现金字塔形状的输出。 练习4-25是画一个向下的金字塔,也是根据输入的整数层数来绘制金字塔形状。不同于练习4-24,这个金字塔是倒置的,即顶部是最宽的一层,底部是最窄的一层。代码使用了嵌套循环,外层循环控制金字塔的层数,内层循环控制每一层的输出。具体实现是通过在内层循环中打印空格,然后在另一个内层循环中打印数字来实现金字塔形状的输出。 练习4-6是输入一个整数,然后输出从2到输入整数之间的所有偶数。代码使用了while循环,通过判断每个数是否能被2整除来确定是否为偶数,并将偶数打印出来。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [明解C语言入门篇第四章](https://blog.csdn.net/a237664181a/article/details/88848022)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值