大一C语言查缺补漏 12.23

遗留下来的问题:

3-1 6 

3-2 2

3-2 5

在C语言中,标识符的第一个字符是有什么规范吗?    

在C语言中,标识符的第一个字符必须是以下两种情况之一:

字母(a~z或A~Z)

下划线 (_)


在C语言中,一条语句可分成几行书写


在C语言中,分隔符是什么?

在C语言中,分隔符是一类符号,它们用于分隔或标记代码的不同部分,以帮助编译器理解和解析程序的结构和语义。以下是一些常见的C语言分隔符:

逗号 (,): 用于分隔函数参数、变量声明、枚举成员、初始化列表中的元素等。

空格和制表符: 虽然不是严格意义上的分隔符,但空格和制表符在语法解析中起到分隔作用,如在标识符、关键字和操作符之间。

分号 (;): 用于结束语句,如赋值语句、表达式语句、控制流语句(如 if、for、while)等。

冒号 (:): 用于定义标签语句、结构体成员、枚举成员的值、以及在switch语句中分离条件和case子句。

大括号 ({ and }): 用于包围复合语句(如函数体、循环体、条件语句的真和假分支)。

小括号 (()): 用于函数调用、运算符优先级提升、类型转换、以及在if、for、while等语句中包围条件表达式。

方括号 ([]): 用于定义数组类型、访问数组元素、以及在指针运算中。

双引号 (" "): 用于创建字符串字面量。

反斜杠 (/) 和星号 (*):用于单行和多行注释。

圆点 (.) 和箭头 (->): 用于结构体和联合体成员的访问。


在C语言中,main函数的位置可以任意

注释可以出现在任何位置

C程序经过编译后生成目标文件,其文件名的后缀为obj.

回车和空格都可能在视觉上表现为文本中的空白,但它们在计算机处理和编码中具有不同的含义和用途。


算法是描述特定问题的求解步骤,是指令的有限序列

高效性不是算法所必须具备的特性

算法具备可行性,确定性,有穷性

算法的有穷性是指算法在有穷的时间内终止

算法的时间复杂度与问题规模有关

某算法的时间复杂度是O(n²),表明该算法执行时间与n²成正比


 十进制转换为二进制的做法:

整数是除以2,然后从下往上读

eg: 35为例子:

小数是乘2,用小数*2,取整数,从上往下读

eg:0.65625

因为是小数,因此是0.10101


用8位二进制表示有符号整数时,最高位(左边第一位)被用来表示符号,0表示正数,1表示负数。

对于有符号的8位二进制整数,剩下7位可以用来表示数值。因此,最大正整数是当符号位为0,其余7位全为1时的情况:

01111111

将这个二进制数转换为十进制,我们得到:

0 * 2^7 + 1 * 2^6 + 1 * 2^5 + 1 * 2^4 + 1 * 2^3 + 1 * 2^2 + 1 * 2^1 + 1 * 2^0 = 127

所以,用8位二进制表示有符号整数时,可表示的最大整数是127。

2的七次方是:

2^7 = 128

因为第一位拿去做符号位了,因此只剩下七位


 假如用一个字节表示有符号整数,则-23的补码是 

运算符-12-多学一招原码反码补码_哔哩哔哩_bilibili 

1、因为是八位,所以得到10111后,先补够七位数:0010111

2、取反,1101000

3、加一,取补码,1101001

4、加符号位,11101001


为什么在C语言中,实数不可以参与%运算

在C语言中,%(取余)运算符主要用于整数除法的余数计算。它对于整数类型(如 int、long 等)是定义良好的,但对于实数类型(如 float、double 等)则未定义。

以下是一些原因解释为什么实数不可以参与%运算:

  1. 定义和标准:

    • C语言标准并未规定%运算符如何处理实数类型。标准库函数通常只为整数类型提供了%运算的支持。
  2. 数学意义不明确:

    • 对于整数除法,余数的概念是清晰的,例如10 % 3的结果是1。然而,对于实数除法,余数的定义并不明确。实数除法通常产生一个无限循环小数或一个有限的小数,没有明显的“余数”概念。
  3. 浮点数精度问题:

    • 实数(尤其是浮点数)由于存储和计算精度的限制,可能无法精确表示所有的实数。这可能导致在进行%运算时产生不可预测的结果。
  4. 复杂性增加:

    • 如果要支持实数的%运算,需要引入复杂的算法来处理实数除法和余数的概念,这会增加编译器和标准库的复杂性。

因此,在C语言中,如果尝试对实数使用%运算符,编译器可能会发出警告或错误,并且结果将是不确定的。如果需要对实数进行类似的运算,可以先将它们转换为合适的整数类型,然后再进行%运算,但需要注意舍入误差和数据溢出的问题。


0是假,其余的所有整数都可以作为逻辑中的真


在C语言中,‘’和“”有什么区别,字符串和字符

在C语言中,单引号 `'` 和双引号 `"` 用于定义不同的数据类型:

1. 单引号 `'`:
   - 单引号用于定义字符(char)常量。字符常量表示单个字符,如 `'A'`、`'3'` 或 `','`。字符常量占据一个字节的存储空间,并且其值是对应的ASCII码。

2. 双引号 `"`:
   - 双引号用于定义字符串(string)字面量。字符串是一个字符序列,由零个或多个字符组成,如 `"Hello"`、`"123"` 或 `",."`。字符串字面量在内存中是以字符数组的形式存储的,并且在字符串的末尾会自动添加一个空字符(`\0` 或 `NULL`),用来标记字符串的结束。因此,实际上字符串占用了额外的一个字节来存储这个结束符。

总结起来,主要区别如下:

- 字符(char)使用单引号 `'` 定义,表示单个字符。
- 字符串(string)使用双引号 `"` 定义,表示一个字符序列,并以空字符 `\0` 结束。

在使用 printf() 函数输出时,字符和字符串的格式说明符也不同:

- 对于字符,使用 `%c` 格式说明符,如 `printf("%c", 'A');`
- 对于字符串,使用 `%s` 格式说明符,如 `printf("%s", "Hello");`

注意,虽然C语言中没有内置的字符串数据类型,但通常通过字符数组或指向字符的指针来处理和操作字符串。


在C语言中,各种类型的占用字节数

C语言中各种类型的占用字节数可能会因编译器和平台的不同而有所不同,但以下是一些常见的数据类型及其在多数现代系统(如32位或64位Intel/AMD架构)上的默认字节大小:

- `char`:通常占用1个字节。
- `signed char` 和 `unsigned char`:通常也占用1个字节。
- `short`:通常占用2个字节。
- `unsigned short`:同样通常占用2个字节。
- `int`:通常占用4个字节。
- `unsigned int`:也通常占用4个字节。
- `long`:在某些旧系统上可能占用4个字节,但在许多现代系统上占用8个字节以保持与`int`的区别。
- `unsigned long`:与`long`相同,通常占用4或8个字节。
- `long long`:通常占用8个字节。
- `unsigned long long`:也通常占用8个字节。
- `float`:通常占用4个字节。
- `double`:通常占用8个字节。
- `long double`:可能占用10或16个字节,具体取决于编译器和平台。


在C语言中,以下是一些不合法的整型常量:

1. 不正确的进制表示:
   - 八进制常量必须以0开头,且后续字符只能是0-7之间的数字。例如,`08`、`09` 或 `038` 都是非法的八进制常量。
   - 十六进制常量必须以`0x`或`0X`开头,后续字符可以是0-9和A-F(或a-f)之间的数字。例如,`0xG`、`0x1H` 或 `0x1g` 都是非法的十六进制常量。

2. 超出范围的数值:
   - 整型常量的值不能超出其类型的可表示范围。对于不同类型的整数(如`char`、`short`、`int`、`long`等),其范围有所不同。如果一个常量的值超出了对应类型的最大或最小值,那么这个常量就是非法的。

3. 非法的前缀或后缀:
   - 整型常量不能包含非数字和非指定进制前缀(如八进制的0或十六进制的0x)的其他字符。例如,`123abc` 或 `0x12fg` 都是非法的。

4. 科学记数法:
   - C语言的整型常量不支持科学记数法。例如,`1.2e3` 或 `5E-2` 作为整型常量是非法的。

5. 标识符形式:
   - 如果一个常量看起来像一个标识符(即以字母或下划线开头,后面跟着字母、数字或下划线的组合),但没有正确的引号或转义字符包围,那么它将被视为一个标识符而不是整型常量。例如,`myNumber123` 作为整型常量是非法的。

6. 特殊字符:
   - 包含特殊字符(除了`\`用于转义序列外)的常量是非法的。例如,`12\*3` 或 `45#6` 都是非法的。

请注意,不同的编译器可能会有不同的错误检查严格程度和警告信息。在实际编程中,应尽量避免使用这些不合法的整型常量,以确保程序的正确性和可读性。

-01是合法的整形常量吗

在C语言中,-01是一个合法的整型常量。这里 - 是负号,表示这是一个负数,而 01 可以被解释为八进制数,因为它的第一位是 0。在八进制系统中,01 等于十进制的 1。因此,-01 表示一个负的八进制数,对应到十进制就是 -1。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/265942.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FFmpeg——视频处理工具安装以及简单命令学习。

FFmpeg 是一个免费、开源且高度可定制的多媒体处理工具,它是一个强大的跨平台框架,用于处理音频、视频、多媒体流和图像。FFmpeg 的主要功能包括解码、编码、转码、流处理、多路复用、分离、合并、过滤等,支持多种音视频格式,包括…

[Angular] 笔记 7:模块

Angular 中的模块(modules) 是代码在逻辑上的最大划分,它类似于C, C# 中的名字空间: module 可分为如下几种不同的类型: 使用模块的第一个原因是要对代码进行逻辑上的划分,第二个非常重要的原因是为了实现懒惰加载(lazy loading)&…

OpenHarmony南向之Audio

音频架构 Audio驱动框架基于HDF驱动框架实现,包含内核态(KHDF),和用户态(UHDF), 对北向提供音频HDI接口 音频框架图 驱动架构主要由以下几部分组成。 HDI adapter:实现Audio HAL层…

Gradle - 安装、环境变量、配置国内源、常用命令

目录 一、Gradle 1.1、安装&环境变量 1.2、配置国内源 1.3、Gradle 项目文件介绍 1.4、Gradle 中的常用指令 一、Gradle 1.1、安装&环境变量 a)从 Gradle 官网下载对应的版本:Gradle | Releases 这里以 8.0 版本为例,下载附带…

01背包详解,状态设计,滚动数组优化,通用问题求解

文章目录 0/1背包前言一、0/1背包的状态设计1、状态设计2、状态转移方程3、初始状态4、代码实现5、滚动数组优化二维优化为两个一维二维优化为一个一维,倒序递推 二、0/1背包的通用问题求最大值求最小值求方案数 0/1背包 前言 0/1包问题,作为动态规划问…

什么是MVC?MVC框架的优势和特点

目录 一、什么是MVC 二、MVC模式的组成部分和工作原理 1、模型(Model) 2、视图(View) 3、控制器(Controller) 三、MVC模式的工作过程如下: 用户发送请求,请求由控制器处理。 …

少儿编程:从兴趣到升学的关键之路

随着科技的飞速发展,计算机编程已经逐渐渗透到我们生活的方方面面。对于新时代的少儿来说,掌握编程技能不仅可以开拓视野,提高思维能力,还可能成为他们未来升学和就业的重要砝码。6547网将探讨如何将少儿编程从兴趣培养成一种有力…

谷歌推大语言模型VideoPoet:文本图片皆可生成视频和音频

Google Research最近发布了一款名为VideoPoet的大型语言模型(LLM),旨在解决当前视频生成领域的挑战。该领域近年来涌现出许多视频生成模型,但在生成连贯的大运动时仍存在瓶颈。现有领先模型要么生成较小的运动,要么在生…

图像识别与人工智能到底是何关系?有何区别?

图像识别是人工智能领域的一个重要应用领域,它利用人工智能技术和算法来分析和理解图像内容。图像识别是使计算机能够模拟和理解人类视觉系统的能力,并从图像中提取出有用的信息和特征。 人工智能在图像识别中扮演着至关重要的角色,主要体现…

【Sass】网易云动画播放器

简介 仿网易云播放动画 效果图 sass src/assets/style/musicPlay.sass // TODO 音乐播放器动画 // ? 动画停止class >>> .muscic-play-stop // HTML结构 // <div class"music-play"> // <div class"bg-primary"></div>…

二级分销的魅力:无限裂变创造十八亿的流水

有这么一个团队&#xff0c;仅靠这一个二级分销&#xff0c;六个月就打造了十八亿的流水。听着是不是很恐怖&#xff1f;十八亿确实是一个很大的数字&#xff0c;那么这个团队是怎么做到的呢&#xff1f;我们接着往下看。 这是一个销售减脂产品的团队。不靠网店&#xff0c;不…

运行游戏显示缺少d3dx9_42.dll怎么办,三步即可完美解决

在我们使用电脑玩游戏&#xff0c;工作的时候&#xff0c;偶尔会遇到一些错误提示&#xff0c;其中之一就是缺少d3dx9_42.dll。这个错误通常出现在运行某些游戏或应用程序时&#xff0c;它表示计算机缺少了DirectX 9组件中的d3dx9_42.dll文件。为了解决这个问题&#xff0c;下面…

【接口测试】Postman(三)-变量与集合

一、变量 ​ 变量这个概念相信大家都不陌生&#xff0c;因此在这里我们不介绍了。主要说一下在Postman中有哪几类变量&#xff0c;主要包括以下四类&#xff1a; Global&#xff08;全局&#xff09; Environment&#xff08;环境&#xff09; Local&#xff08;本地&#xf…

python打开opencv图像与QImage图像及其转化

目录 1、Qimage图像 2、opencv图像 3、python打开QImage图像通过Qlabel控件显示 4、python打开QImage图像通过opencv显示 5、python打开opencv图像并显示 6、python打开opencv图像通过Qlabel控件显示 1、Qimage图像 QImage是Qt库中用于存储和处理图像的类。它可以存储多种…

微软官方镜像下载大全(windows iso 官方镜像)

原本只是想下一个Windows Server 2022中文版的镜像&#xff0c;后面发现要么就是慢得一批的某盘&#xff0c;要么就是磁力&#xff0c;我想直接下载简简单单&#xff0c;找了一圈没有找到。官网下载需要注册、登录乱七八糟&#xff0c;最终终于找到下载方法了&#xff0c;适用于…

大型语言模型,MirrorBERT — 将模型转换为通用词汇和句子编码器

大型语言模型&#xff0c;MirrorBERT — 将模型转换为通用词汇和句子编码器 一、介绍 BERT 模型在现代 NLP 应用中发挥着基础作用&#xff0c;这已不是什么秘密。尽管它们在下游任务上表现出色&#xff0c;但大多数模型在没有微调的情况下在特定问题上并不是那么完美。从原始预…

(一)深入理解Mysql底层数据结构和算法

什么是索引 索引是帮助MySQL高效获取数据的排好序的数据结构 数据结构有哪些 数据结构模拟网站&#xff1a;Data Structure Visualization 二叉树 不适合做自增ID的数据结构。如下示意图&#xff0c;假设采用二叉树作为表自增主键ID的数据存储结果如下&#xff1a;当查询i…

BUG记录——drawio出现“非绘图文件 (error on line 7355 at column 83: AttValue: ‘ expected)”

BUG现象 drawio出现“非绘图文件 (error on line 7355 at column 83: AttValue: ’ expected)”&#xff0c;如下图&#xff1a; 解决办法 这只是我自己摸索到的解决办法并不一定适用于所以人&#xff0c;对我是适用的。 首先用记事本打开损坏的drawio文件&#xff0c;如下 …

服务器经常死机怎么办?如何处理

关于服务器死机这一话题相信大家是不会陌生的&#xff0c;平时在使用服务器的过程中&#xff0c;或多或少都是会有遇到过。轻则耽误业务开展&#xff0c;重则造成数据丢失&#xff0c;相信每个人都不想碰到服务器死机的情况。下文我也简单的介绍下服务器死机的原因以及对应的预…

多个磁盘做软件raid并解决分区aligned对齐问题

centos 服务器验证创建软件raid10数据盘&#xff0c;该机器缺少raid硬件。只能做软件raid。 /dev/sdd至/dev/sdm共10块8T磁盘&#xff0c;做raid10&#xff1b; 步骤如下&#xff1a; &#xff08;第一步&#xff09;创建raid10 事先不需要对单个磁盘做分区 10个相同数据盘创…