C语言程序设计实验与习题指导 (第4版 )课后题-第二章+第三章

C语言程序设计实验与习题指导课后题-第二章

二--1-9.【赋值的语句】--p141


2-3【在循环结束后,k 的值为最后一次计算的结果,即 5 + 5 = 10】

二--2-4【x / y 是整数除法,结果为 0 (因为 1 / 2 在整数除法中结果为 0)】--p141

c 复制代码
#include<stdio.h>
int main(){
	int x=1,y=2;

	printf("%d",1.0+x/y);
}

x / y 是整数除法,结果为 0 (因为 1 / 2 在整数除法中结果为 0)。

1.0 + 0 是浮点数加上整数,结果为 1.0。

printf 函数将浮点数 1.0 转换为整数 1,并打印出来。

二--2-5【计算1 + 12 + 123 + 1234 + 12345 = 13715】----p141

c 复制代码
int sum = 0;  // 用于累加总和
int t= 0;  // 用于构建当前数字
int digit = 1;  // 从1开始构建
int maxDigits = 5;  // 最大位数
循环构建每个数字:


for (int i = 1; i <= maxDigits; i++) {
    t= t* 10 + digit;  // 构建当前数字
    sum += t;  // 累加当前数字
}
t从0开始,每次循环乘以10并加上当前的 digit。
sum 用于累加每个构建的数字。
输出
这段代码的输出将是:

1 + 12 + 123 + 1234 + 12345 = 13715
逐步构建过程
第一次迭代(i = 1): t= 0 * 10 + 1 = 1  sum = 0 + 1 = 1
第二次迭代(i = 2): t= 1 * 10 + 2 = 12  sum = 1 + 12 = 13
第三次迭代(i = 3): t= 12 * 10 + 3 = 123  sum = 13 + 123 = 136
第四次迭代(i = 4): t= 123 * 10 + 4 = 1234  sum = 136 + 1234 = 1370
第五次迭代(i = 5): t= 1234 * 10 + 5 = 12345  sum = 1370 + 12345 = 13715
完整代码

最终输出将是:

1 + 12 + 123 + 1234 + 12345 = 13715

三--2-8【if语句只对最近的一句管用】

c 复制代码
#include <stdio.h>

int main() {
    int a = 3, b = 4, c = 5, t = 99;

    if (b < a && a < c) t = a;a = c;c = t;
    if (a < c && b < c) t = b;b = a;a = t;

    printf("%d%d%d\n", a, b, c);

    return 0;
}

第一个条件判断:if (b < a && a < c) t = a;

b < a 是 4 < 3,结果为 0(假)。因此,整个条件 b < a && a < c 为假。

t 的值仍为 99。

重新赋值:a = c;c = t;a 的值变为 5。c 的值变为 99。

第二个条件判断:if (a < c && b < c) t = b;

a < c 是 5 < 99,结果为 1(真)。b < c 是 4 < 99,结果为 1(真)。

因此,整个条件 a < c && b < c 为真。t 的值变为 b 的值,即 4。

重新赋值:b = a;a = t;b 的值变为 5。a 的值变为 4。

最终变量值

a = 4

b = 5

c = 99

t = 4 (但 t 不影响最终输出)

三--2-9if(a>b>c) 【要小心】--p147

c 复制代码
#include<stdio.h>
int main(){
	int a=5,b=4,c=3,d=2;
	if(a>b>c)
		printf("%d\n",d);
	else if((c-1>=d)==1)
		printf("%d",d+1);
	else
		printf("%d",d+2);
		return 0;
}是怎么运行的

第一个条件:a > b > c 被解析为 (a > b) > c。
5 > 4 结果为 1(真)。 1 > 3 结果为 0(假)。  因此,第一个条件为假。

第二个条件:c - 1 >= d 被解析为 2 >= 2。
结果为 1(真)。  (c - 1 >= d) == 1 结果为 1(真)。  因此,执行第二个条件的分支。

输出:输出 d + 1 即 3。
相关推荐
小毛驴85020 小时前
多线程同步打标记的几种实现方案
java·开发语言·python
Mr_Xuhhh20 小时前
递归之美:合并两个有序链表的优雅解法
java·开发语言
bluebonnet2720 小时前
【Python】一些PEP提案(五):注解的延迟求值
开发语言·python
橙露20 小时前
Python 操作 MongoDB:非关系型数据查询与分析
开发语言·python·mongodb
小魏小魏我们去那里呀20 小时前
Java2Flowchart:一款把 Java 方法一键转换成 Mermaid 流程图的 IntelliJ 插件
java·ide·intellij-idea
小江的记录本20 小时前
【RAG】RAG检索增强生成(核心架构、全流程、RAG优化方案、常见问题与解决方案)
java·前端·人工智能·后端·python·机器学习·架构
迷藏49421 小时前
**TiDB 在高并发场景下的性能优化实战:从慢查询到极致吞吐的跃迁**在现代分布式系统中,数据库不仅是数据存储的
java·数据库·python·性能优化·tidb
毅炼21 小时前
MySQL 常见问题总结(1)
java·大数据·数据库
Rust研习社21 小时前
深入 Rust 引用计数智能指针:Rc 与 Arc 从入门到实战
开发语言·后端·rust
CRMEB系统商城21 小时前
国内开源电商系统的格局与演变——一个务实的技术视角
java·大数据·开发语言·小程序·开源·php