【国家计算机二级C语言】高分笔记

二叉树

在这里插入图片描述
在这里插入图片描述
参考 http://t.csdnimg.cn/ozVwT

数据库

SQL程序语言有四种类型,对数据库的基本操作都属于这四类,它们分别为;数据定义语言(DDL)、数据查询语言(DQL)、数据操纵语言(DML)、数据控制语言(DCL)
参考 https://zhuanlan.zhihu.com/p/391552199【CSDN跳转不方便,自行复制参考】

指数表示

https://blog.csdn.net/qwy1270005925/article/details/113009431
在这里插入图片描述

赋值奇观

在这里插入图片描述
给定定义语句 int a=3, b=2, c=1;,让我们逐个检查选项中的赋值体现式:
A. a=(b=4)=3;:这个表达式首先将 b 赋值为 4,然后尝试将 4 赋值给 a,但是由于赋值表达式 (b=4) 的结果是一个值,而不是一个可修改的变量,因此无法将 4 再次赋值给 a。这是一个语法错误,因此选项 A 是错误的。
B. a=b=c+1;:这个表达式首先计算 c+1,然后将结果赋值给 b,最后将 b 的值赋值给 a。这是一个合法的赋值表达式。
C. a=(b=4)+c;:这个表达式首先将 b 赋值为 4,然后将 4 加上 c 的值,最后将结果赋值给 a。这是一个合法的赋值表达式。
D. a=1+(b=c=4);:这个表达式首先将 c 赋值为 4,然后将 b 赋值为 4,最后将 1 加上 4 的值,结果再赋值给 a。这是一个合法的赋值表达式。
因此,错误的赋值体现式是选项 A. a=(b=4)=3;

if 后的条件式

可以为任意合法数值

if语句的基本形式是 if (expression) statement,其中 “expression” 是一个条件表达式,用于决定是否执行后面的语句。关于 “expression” 的论述,正确的是选项 D. 可以是任意合法的数值。
在C语言中,if语句中的 “expression” 可以是任何具有数值的表达式,而不仅仅限于逻辑值、整数值或正数。当 “expression” 的值为非零时,被视为真(true),执行后面的语句;当 “expression” 的值为零时,被视为假(false),不执行后面的语句。
因此,选项 D. 可以是任意合法的数值是正确的论述。

#进制奇观

在C语言中,以0开头的数字表示八进制数。因此,变量x被赋值为八进制的011,即十进制的9。然后使用++运算符对x进行自增操作,将x的值加1,变为10。最后通过printf函数输出x的值,所以程序的输出结果是10。
在这里插入图片描述

break switch

这段代码是一个C语言程序,它使用了一个for循环来迭代8次。在每次迭代中,它生成一个随机数n,范围是0到4(包括0和4)。然后根据n的值执行不同的操作:

  • 如果n等于1或3,它会打印出n的值并跳出switch语句;
  • 如果n等于2或4,它会打印出n的值并继续下一次迭代;
  • 如果n等于0,它会立即退出程序。

在每次迭代的最后,无论n的值是多少,都会打印出n的值。因此,当程序结束时,会打印出8个数字,其中最后一个数字是0。
在这里插入图片描述

字符常量与字符串常量 不同

字符常量 ‘0’ 和 ‘9’ 而不是字符串常量 “0” 和 “9”。
在这里插入图片描述

奇葩条件

在 C 语言中,赋值操作的结果是被赋值的变量的值。因此,这个循环条件实际上是一个永远为真的条件,因为 k=1 操作总是成功的,导致循环无限进行下去。
在这里插入图片描述

赋值

若有定义语句:char s[3][10],(*k)[3],*p;,则如下赋值语句正确的是( )
A. p=s;
B. p=k;
C. p=s[0];
D. k=s;

让我们逐个检查选项:
A. p=s;: 这个赋值语句是不正确的。因为 s 是一个二维字符数组,而 p 是一个指向字符的指针,类型不匹配。
B. p=k;: 这个赋值语句是不正确的。因为 k 是一个指向包含3个元素的一维字符数组的指针,而 p 是一个指向字符的指针,类型不匹配。
C. p=s[0];: 这个赋值语句是正确的。因为 s[0] 是一个字符数组,而 p 是一个指向字符的指针,可以将 s[0] 的地址赋给 p
D. k=s;: 这个赋值语句是不正确的。因为 k 是一个指向包含3个元素的一维字符数组的指针,而 s 是一个二维字符数组,类型不匹配。
因此,正确答案是 C. p=s[0];

static 我记性很好,别耍赖

在这里插入图片描述

这段代码定义了一个静态局部变量 x 和两个函数 fun()main()fun() 函数每次被调用时,将静态变量 x 的值乘以 2,并返回乘积结果。main() 函数则通过循环调用 fun() 函数,并将返回值累乘到变量 s 中,最后输出 s 的值。
让我们逐行分析代码:

#include <stdlib.h>

这一行包含了标准库头文件 <stdlib.h>,虽然在这段代码中并未使用到该头文件,但是这是一个好的编程习惯,以确保程序中使用的函数能够正确地被声明。

int fun()
{static int x = 1;x *= 2;return x;
}

这里定义了一个名为 fun() 的函数,它没有参数,并且返回一个整数值。函数内部有一个静态局部变量 x,它被初始化为 1。每次调用 fun() 函数时,x 的值都会乘以 2,然后返回乘积结果。

int main()
{int i, s = 1;for(i = 1; i <= 3; i++)s *= fun();printf("%d\n", s);return 0;
}

main() 函数中,定义了两个整型变量 is,其中 s 初始化为 1。然后通过一个循环,调用 fun() 函数三次,并将返回值累乘到 s 中。最后,使用 printf() 函数输出 s 的值,并返回 0。
现在让我们来计算一下程序的输出:
第一次调用 fun() 函数时,x 的初始值是 1,返回值是 2。
第二次调用时,x 的值已经变成了 2,返回值是 4。
第三次调用时,x 的值已经变成了 4,返回值是 8。
因此,最终输出的结果是 2 * 4 * 8 = 64。
所以程序的输出是 64

结构体结构体,有一点奇怪

在这里插入图片描述

这段代码定义了一个结构体 S,包含两个成员变量 ab。然后创建了一个名为 data 的结构体数组,其中包含两个 S 类型的结构体实例,分别初始化为 {10, 100}{20, 200}
接着在 main() 函数中,定义了一个名为 pS 类型结构体变量,并将其初始化为 data[1],即第二个结构体实例 {20, 200}
然后使用 printf() 函数输出 p.a 的值,但在输出之前对 p.a 进行了自增操作。需要注意的是,p 是一个结构体变量,p.a 是其中的成员变量,而对结构体成员变量进行自增操作是合法的。
因此,程序的输出是 21

文件操作

在这里插入图片描述
参考 https://www.cnblogs.com/spmt/p/10830600.html

打开方式 说明
r 以只读方式打开文件,只允许读取,不允许写入。该文件必须存在。
r+ 以读/写方式打开文件,允许读取和写入。该文件必须存在。
rb+ 以读/写方式打开一个二进制文件,允许读/写数据。
rt+ 以读/写方式打开一个文本文件,允许读和写。
w 以只写方式打开文件,若文件存在则长度清为0,即该文件内容消失,若不存在则创建该文件。
w+ 以读/写方式打开文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以追加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留(EOF符保留)。
a+ 以追加方式打开可读/写的文件。若文件不存在,则会建立该文件,如果文件存在,则写入的数据会被加到文件尾后,即文件原先的内容会被保留(原来的EOF符 不保留)。
wb 以只写方式打开或新建一个二进制文件,只允许写数据。
wb+ 以读/写方式打开或建立一个二进制文件,允许读和写。
wt+ 以读/写方式打开或建立一个文本文件,允许读写。
at+ 以读/写方式打开一个文本文件,允许读或在文本末追加数据。
ab+ 以读/写方式打开一个二进制文件,允许读或在文件末追加数据。

自己补写程序注意变量类型

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

领夹麦配LDR6028,电力持久畅聊畅!

#无线麦克风#麦克风&#xff0c;对于大多数人来说&#xff0c;并不陌生。然而&#xff0c;领夹式麦克风&#xff0c;这个看似小巧的音频设备&#xff0c;或许在日常生活中并不常为我们所见。但在自媒体行业、新闻记者等领域&#xff0c;它却是不可或缺的好帮手。这款领夹式麦克…

树状数组优化dp,2617. 网格图中最少访问的格子数

目录 一、题目 1、题目描述 2、接口描述 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 给你一个下标从 0 开始的 m x n 整数矩阵 grid 。你一开始的位置在 左上角 格子 (0, 0) 。 当你在格子 (i, j) 的时候&#xff0c;你可以移动…

架构之安全性维度

流程安全性 安全基本原则&#xff1a;可用性 完整性 机密性 CIA 安全框架&#xff1a;zachman P2DR Sabsa IPDRR IATF 安全评估方法&#xff1a;安全测试&#xff1a; SAST静态测试、 IAST交互测试 安全扫描 危险模型&#xff1a;攻击树分析 DREAD风险评估 渗透测试&#xff1a…

管理类联考–复试–英文面试–问题--规划介绍原因做法--纯英文版

借鉴 https://www.bilibili.com/video/BV1Dk4y187zN/?p4&spm_id_from333.880.my_history.page.clickhttps://www.bilibili.com/video/BV1Dk4y187zN/?p4&spm_id_from333.880.my_history.page.click https://ttsreader.com/zh/https://ttsreader.com/zh/ 规划 视频版…

2024年NOC大赛创客智慧(西瓜创客)图形化编程真题模拟试卷包含答案

详细题目看顶部资源 答案解析 一、选择题 1、C 该段代码是将变量的值翻倍,运行之后变量的值是之前的两倍。变量的值是否改变取决于初始值是否为 0,所以船都不正确 2、C A 透项为让角色说话,不可以广播消息: B 选项为播放一段声音,不可以广播消息; C透项为广播消息,正确: …

OCP NVME SSD规范解读-14.Firmware固件升级要求

4.11节 Firmware Update Requirements 描述了数据中心NVMe SSD固件更新的具体要求&#xff0c;确保固件升级过程既安全又可靠&#xff0c;同时充分考虑了设备在升级过程中的可用性和功能性。 FWUP-1: 设备必须记录每一次固件激活过程。这意味着固件升级过程中&#xff0c;设备会…

使用远程工具连接Mysql

&#xff08;若想要远程连接Mysql需要下面解决四个问题&#xff09; 1、目标地址 直接查询 2、端口号 3306 3、防火墙关闭 [rootlocalhost date]# systemctl stop firewalld.service 4、授权mysql数据库root用户权限&#xff08;因为mysql开始不允许其他IP访问&#xff0…

时间减少90%以上!分布式系统的性能优化实战

1背景 分布式批量系统指的是采用分布式数据库架构&#xff0c;主体功能由批量程序实现的系统。分布式系统批量程序的性能测试&#xff0c;除了和联机交易性能测试一样关注服务器资源使用率是否合理、是否存在性能异常外&#xff0c;在测试执行阶段需要关注是否因数据分布不均衡…

JsonUtility.ToJson 和UnityWebRequest 踩过的坑记录

项目场景&#xff1a; 需求&#xff1a;我在做网络接口链接&#xff0c;使用的unity自带的 UnityWebRequest &#xff0c;数据传输使用的json&#xff0c;json和自定义数据转化使用的也是unity自带的JsonUtility。使用过程中发现两个bug。 1.安全验证失败。 报错为&#xff1a…

在CentOS中怎么安装和配置NginxWeb服务器

在CentOS中安装和配置Nginx Web服务器可以通过以下步骤完成&#xff1a; 1. 使用yum安装Nginx&#xff1a; sudo yum install nginx 2. 启动Nginx服务&#xff1a; sudo systemctl start nginx 3. 设置Nginx开机自启动&#xff1a; sudo systemctl enable nginx 4. 配置防火墙规…

PID算法原理分析及优化

今天为大家介绍一下经典控制算法之一的PID控制方法。PID控制方法从提出至今已有百余年历史&#xff0c;其由于结构简单、易于实现、鲁棒性好、可靠性高等特点&#xff0c;在机电、冶金、机械、化工等行业中应用广泛。 在大学期间&#xff0c;参加的智能汽车竞赛中就使用到了PI…

如何安装和卸载SFP光模块

SFP光模块的安装和拆卸是简单直接的过程。然而&#xff0c;任何非标准操作都可能导致隐式损坏甚至永久故障。您需要参考及时更新的光模块的数据表或用户手册&#xff0c;以熟悉其特性和锁定机制。 准备工作 常见事项 拆卸和插入SFP光模块可能会缩短其使用寿命&#xff0c;因…

重新了解一下之前的單對象變化問題

單對象變化問題 聲明一個方法在頁面中監聽這個對象的改變 2年之前寫過一篇文章&#xff0c;有些誤導&#xff0c;重新寫一遍 聲明一個方法 不管是在哪裡&#xff0c;創建一個名為 single-object.jsx 的文件 export const singleObject (newObj, oldObj) > {return JSON.str…

美团门票度假java实习(66m)

1.介绍一下redisson分布式锁 2.redission分布式锁底层如何实现 3.基于setnx实现的分布式锁的缺点有哪些 4.基于redis如何实现可重入的分布式锁 5.项目的qps大概多少 6.如何自己实现一个限流算法中的滑动窗口 8.code&#xff1a;用两个队列实现一个栈&#xff0c;java语言 9.jvm…

jupyter | jupyter里执行shell命令

先说结论&#xff1a; 在 shell 命令前加 ! tar -zxvf sp.tgzFile "<ipython-input-2-3125352daeb6>", line 1tar -zxvf sp.tgz^ SyntaxError: invalid syntax 在 jupyter Code Cell中只能执行ls 、pwd 等简单命令。当需要执行tar 或者稍微负责命令时就报错了…

数据库被.[Goodmorningfriends@onionmail.org].faust勒索病毒加密,能恢复吗?

.faust勒索病毒有什么特点及危害&#xff1f; .faust勒索病毒是一种恶意软件&#xff0c;以其复杂的加密技术和勒索行为而闻名。这种病毒的主要目标是通过加密受害者的数据文件&#xff0c;然后勒索赎金以解密这些文件。它通常通过恶意附件、恶意链接或潜在的不安全下载源传播&…

在realsense D455相机上运行orb_slam3

配置orb_slam3的环境 参考https://blog.csdn.net/weixin_42990464/article/details/133019718?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171109916816777224423276%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request…

操作符详解(C语言)—第三期

逻辑操作符 逻辑操作符有哪些&#xff1a; && 逻辑与 || 逻辑或区分逻辑与和按位与 区分逻辑或和按位或 1&2----->0 1&&2---->1 1|2----->3 1||2---->1逻辑与和或的特点&#xff1a; 360笔试题 #include <stdio.h&…

蓝桥杯2023省赛:蜗牛|DFS暴力、DP动态规划

题目链接&#xff1a; 1.蜗牛 - 蓝桥云课 (lanqiao.cn) 思路说明&#xff1a; 首先&#xff0c;考虑DFS暴力解&#xff1a;对于蜗牛来说&#xff0c;它出发的起点可能是&#xff1a; 1、Xi竹竿底部2、从上一根杆Xi-1传送门传送到的bi&#xff0c; 那么他有三种方式走&…

JS08-DOM节点完整版

DOM节点 查找节点 父节点 <div class="father"><div class="son">儿子</div></div><script>let son = document.querySelector(.son)console.log(son.parentNode);son.parentNode.style.display = none</script>通过…