C语言问题总结(一)

ops/2025/3/29 4:33:46/

一.常量问题

1.整型和实型

问题

解析

A选项用8进制表示,D选项用16进制表示。C选项后缀加L表示为长整型常量。则选B。

总结

整型常量除了可以直接用十进制形式表示,还可以通过八进制(前缀为0)和十六进制(前缀为0x)的形式表示。也可以通过添加后缀,如L表示长整型。

区分实型常量和整型常量很简单,一是看有没有出现小数形式的,二是看有没有出现e或E构成的指数形式的。

问题

总结

实型常量有两种形式:1.十进制小数形式。可以省略小数点前或后的数字,但是不能同时省略。所以问题中的B、D选项正确。     2.指数形式,e或E都可以,表示以10为底的指数。必须满足e(E)前有数,后为整数。则A不正确。

2.字符常量

问题

解析

首先排除D选项,因为不是单引号,不满足字符常量定义。A、B看似都是用转义字符表示,并且A选项是八进制转义,但是数字9不属于八进制(一个八进制数只有0~7),所以错误。B选项用了转义符号,但是没有这个转义字符。

总结

字符常量有两种形式:1.普通字符,单引号中只能是一个字符。   

                            2.转义字符,在单引号中使用\,将其后面的字符转换成另外意义。此形式下也支持用八进制和十六进制转义。  判断转义字符可以从两方面入手:(1)字母可以先看字母个数,超过两个就直接确定不是转义字符。字母个数为1个,则除a、b、f、r、t、v之外都不对。(2)数字就看是否属于八进制和十六进制,注意是否满足各自的规则。

二.运算符问题

1. /和%

/除号在运算时会使左右两边数据类型一致,遇到数据类型不一致时,会在运算过程中执行默认转换,将低精度类型转为高精度类型。    而%取余要求操作数只能为整数。

2.逻辑运算符&&和||

即短路与和短路或,特点就是当第一个满足相应的条件后续表达式不会执行。

问题

解析

首先A、B选项是或的关系,不满足题意直接排除,D选项的意思就是当a不为0时,再判断b是否为0,随后得出结果;当a为0时,该表达式直接为假。

C选项中,假设a本来就是0呢?但是C选项的赋值加非直接将&&左边的逻辑值锁定为真,所以C选项也是错误的。 正确答案应该是D

总结

本题除了考察了&&和||的问题之外,还间接地考察了=和==的区别。

三、四舍五入的问题

1.除号/ 

当两个数为整数的时候,使用/运算后结果仍为整数,假如结果位小数,就要直接舍弃小数部分。

 问题

解析 题中的3/2数学运算下来为1.5,根据规则结果应该为1,再加上前面的1,又因为是double型,所以选C。

2.强制类型转换

当遇到强制类型转换的时候,同样是将小数部分直接舍去。

 问题

解析 x为float类型,但是在输出时,x进行了强制转换,则%d十进制形式输出为4。

2.输出的格式字符%m.nf 

m为指定的数据宽度,n为小数位数。对后一位采取四舍五入方法。

  问题

解析 小数位数为2位,第三位为6可四舍五入 ,则输出的x为213.83。 注意:当指定的数据宽度不足时,直接忽略m的限制,按实际宽度输出。如本题中数据宽度为4,但是整数有3位,还要保留小数点后2位,所以直接忽略,输出为213.83。


http://www.ppmy.cn/ops/167973.html

相关文章

Spring Boot集成Redis并设置密码后报错: NOAUTH Authentication required

报错信息: io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required.Redis密码配置确认无误,但是只要使用Redis存储就报这个异常。很可能是因为配置的spring.redis.password没有被读取到。 基本依赖: implementat…

C 语 言 --- 扫 雷 游 戏(初 阶 版)

C 语 言 --- 扫 雷 游 戏 初 阶 版 代 码 全 貌 与 功 能 介 绍扫雷游戏的功能说明游 戏 效 果 展 示游 戏 代 码 详 解game.htest.cgame.c 总结 💻作 者 简 介:曾 与 你 一 样 迷 茫,现 以 经 验 助 你 入 门 C 语 言 💡个 人 主…

在 ARM 嵌入式 Linux 下使用 C/C++ 实现 MQTT

在 ARM 嵌入式 Linux 下使用 C/C 实现 MQTT 通信是一个常见的需求,尤其是在资源受限的环境中。以下是一个详细的教程,使用 Eclipse Paho C Client 库来实现 MQTT 客户端。 1. 安装 Eclipse Paho C Client 库 Eclipse Paho C Client 是一个轻量级的 MQTT…

计算机组成原理和计算机网络常见单位分类及换算

计算机组成原理(主要用于存储、内存、缓存等) 计算机网络(主要用于传输速率) 直观对比

Statistical Learning 统计学习 :回归任务,线性回归,最小二乘法,标准误差,R方

统计学习是统计学中的一个领域,专注于建立模型以进行预测或推断。 监督学习:回归(Supervised Learning: Regression) 1. 回归任务的核心目标 目标是使用样本数据来估计一个函数,即: Y f ( X ) ε Y f…

shardingsphere5.4.1 适配人大金仓 Kingbase 8.6.0

shardingsphere5.4.1 适配人大金仓 Kingbase 8.6.0 背景 在项目推进过程中,我们需要将数据库迁移至国产数据库人大金仓(Kingbase)8.6.0,并且继续使用 ShardingSphere 进行分片管理。然而,ShardingSphere 官方尚未提供…

建筑兔零基础人工智能自学记录48|神经网络可视化Tensorflow-3

这次我们用一个可视化网站来理解神经网络A Neural Network Playground 打开可以看到以下界面: DATA一栏里提供了4种不同形态的数据,分别是圆形、异或、高斯和螺旋。平面内的数据分为蓝色和黄色两类。 我们先把隐藏层减少到最少,直接给两个数据…

Mac上安装和配置adb学习总结

1、安装: 命令行安装 brew install android-platform-tools 2、adb 的工作原理 adb 提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件: 客户端:用…