考研C语言程序设计_语法相关(持续更新)

目录

  • 一、语法题
    • strlen+转义字符
    • 内置数据类型
    • 字符串结束标志
    • 局部变量和全局变量名字冲突 局部优先
    • switch语句中的关键字
    • 数组初始化是否正确
    • 注意define不是关键字
    • C语言中不能用连等判断
    • switch( )的括号里可以是什么类型?
    • 关于if
    • 关于switch
    • 关于while
  • 二、程序阅读题
    • 有关static
    • 有关continue
    • 说明代码的功能
    • for循环省略部分条件
    • 计算循环次数
    • 代码阅读(=和==)
    • 关于switch的穿透现象
    • switch嵌套
    • ?
  • 三、运算式相关
    • 逗号表达式

一、语法题

strlen+转义字符

  • 答案为6 14
  • \t和\62是两个转义字符 注意八进制里是不可能有8的
//程序输出什么?
#include <stdio.h>
int main()
{printf("%d\n", strlen("abcdef"));//6// \62被解析成一个转义字符printf("%d\n", strlen("c:\test\628\test.c"));//14return 0;
}
  • 这样改一下 就是一个陷阱了
  • 确实是变成了13个字符 但是这道题会直接报错 因为八进制627>127
//程序输出什么?
#include <stdio.h>
int main()
{printf("%d\n", strlen("abcdef"));// \62被解析成一个转义字符printf("%d\n", strlen("c:\test\627\test.c"));return 0;
}

在这里插入图片描述

  • 这题就是7 \121算一个 而且没超过127
    在这里插入图片描述

内置数据类型

  • C是自定义类型
    在这里插入图片描述

字符串结束标志

在这里插入图片描述

局部变量和全局变量名字冲突 局部优先

在这里插入图片描述

switch语句中的关键字

  • 分支有if和switch两种
  • continue是用于跳过当次循环 进入下一次循环的;break是结束当前这一层循环的
  • 在switch分支里 可以有break(防止case穿透) 但是肯定没有continue
  • continue只可能在循环里出现
    在这里插入图片描述

数组初始化是否正确

  • A没问题 不完全初始化的部分默认为0

  • B绝对错误 哪怕是支持C99也不对! 因为变长数组是不可以显式初始化的!

  • C没问题 虽然没指定大小 但是会根据显式初始化的内容确定大小

  • D字符数组 没问题 注意自带’\0’

  • 选B
    在这里插入图片描述

  • 可以说明VS2022不支持C99标准 也就不支持变长数组
    在这里插入图片描述

  • 就算支持C99 那也不能初始化数组
    在这里插入图片描述

  • 不初始化是下面这种写法
    在这里插入图片描述

注意define不是关键字

  • #define是预处理指令
    在这里插入图片描述

C语言中不能用连等判断

  • 下面那部分不能写成90<=score<=100 就算答案有可能是对的 那也是运气 这种写法逻辑就不对
    在这里插入图片描述

switch( )的括号里可以是什么类型?

  • 注意char的本质还是整型 switch要求的就是整型表达式
  • 故选D
    在这里插入图片描述

关于if

  • B只能说1可以表示真 因为非0都是真 -1也是真
  • C肯定是对的 单选的话就选C
    在这里插入图片描述

关于switch

在这里插入图片描述

关于while

第一次成立 进去循环一次
第二次成立 进去循环一次
第三次不成立 不进去
while判断要比循环多一次
选B
在这里插入图片描述

二、程序阅读题

有关static

  • 核心在于static修饰的b 没次调用完sum b是不销毁的
  • 而c每次都会重新创建 从0开始
    i:0->1->2
    a:2->2->2->2
    c:0->1->0->1->0->1
    static b:3->5->7->9

结果:
打印8,10,12,14,16
在这里插入图片描述

有关continue

  • 本题打印1 2 3 4之后就开始死循环
  • n=5后 n++再也没机会执行
    在这里插入图片描述

说明代码的功能

  • 如果不是在0~9就不打印
  • 所以是:读取一个数 如果他是0~9的数字 就把他打印出来
  • 在这里插入图片描述

在这里插入图片描述

for循环省略部分条件

请问下面的代码会循环几次?

3*3=9次
在这里插入图片描述

i = 0 的时候 j = 0,1,2,3 最终j变成了3 一共循环三次
然后i = 1 再进入内存循环 j还是3 不会进入循环
然后i = 2 j还是3 不进去 然后i = 3 全都结束
从头到尾只有i = 0的时候 循环了三次
在这里插入图片描述

计算循环次数

  • 中间的表达式2 是for的判断部分
  • k=0是个赋值语句 该表达式的结果恒为0 也就是说判断部分恒为0
  • 恒为假 一次都不循环
  • 0次循环
    在这里插入图片描述

代码阅读(=和==)

  • 每次进入循环 i都被改为5 表达式的值就是5 为真 打印5 然后i++ 6<10 又进去了 又变成了5
  • 所以会死循环的打印5
    在这里插入图片描述

关于switch的穿透现象

  • a就是决定了程序的入口 然后一路上都没有遇到break 所以case 3执行完 没有break的话 default也会执行的
  • 最后返回b 返回0 也就是func(1) = 0
    在这里插入图片描述

switch嵌套

  • 先进入外层switch的case 1
  • 然后进入内层的case 3 也就是default 打印hello
  • 打印完hello 其实相当于是执行完了外层switch的case 1 发现case 1没有break 所以继续执行外层switch的case 2 打印third
  • 故答案是 打印hellothird
    在这里插入图片描述

?

在这里插入图片描述

三、运算式相关

逗号表达式

  • 核心在于 逗号表达式的优先级是所有运算符里最最最低的 比赋值都低!!
  • 先算a = 27 然后a/5的值作为( )里逗号表达式的结果 赋给i 所以i = 5
  • 然后虽然会继续执行一下a+11 但是不会影响i的值
  • 故选A
    在这里插入图片描述
  • 第一步:逗号表达式(a = 3 * 9, a / 5)的值赋给i
  • 第二步:i = (a = 3 * 9, a / 5), a + 11; 这整体是一个逗号表达式 不影响a或者i的值 单纯执行了一遍
    在这里插入图片描述
  • 要这么写的话 m的值就是38了
    在这里插入图片描述

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

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

相关文章

【openGL学习笔记】----GLFW、GLAD环境配置

glew、glad、freeglut、glfw的区别&#xff1f; glew&#xff08;The OpenGL Extension Wrangler Library&#xff09;是对底层OpenGL接口的封装&#xff0c;可以让你的代码跨平台。glad与glew作用相同&#xff0c;可以看作它的升级版。Freeglut&#xff08;OpenGL Utility To…

计算机组成原理(笔记7高速缓冲存储器Cache,计算机组成原理的重难点全、直接、组相连)

为什么要设立高速缓冲存储器 &#xff08;Cache&#xff09;&#xff1f; Cache是介于CPU和主存之间的小容量存储器&#xff0c;存取速度比主存快。它能高速地向CPU提供指令和数据&#xff0c;加快程序的执行速度。它是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。…

使用Mockaroo生成测试数据

使用Mockaroo生成测试数据 最近在学习【Spring Boot & React】Spring Boot和React教程视频的P51.Generating 1000 students一课中&#xff0c;看到了https://www.mockaroo.com/网站可以用来模拟生成测试数据&#xff0c;觉得还不错&#xff0c;特此记录一下。感觉每次看老…

centOS部署Jenkins实现项目可持续自动化部署

个人看的是尚硅谷的视频&#xff0c;跟着实战&#xff0c;但因为视频是21年的&#xff0c;所以很容易出现jenkins插件不适配问题。 因而个人直接用较新版的jdk和jenkins. 先切换到root用户 sudo su一、安装jdk 先查询可安装版本 yum list java*安装jdk&#xff08;只复制圈…

【Python爬虫实战】正则:中文匹配与贪婪非贪婪模式详解

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、匹配中文 &#xff08;一&#xff09;匹配单个中文字符 &#xff08;二…

DeepFM模型代码详解

直到看到这篇文章&#xff0c;我才搞明白类别特征怎么做lookup的&#xff0c;也看明白了代码逻辑。如果你看完没懂&#xff0c;私信留下wx&#xff0c;给你讲懂。 1、Deepfm 的原理&#xff0c;DeepFM 是一个模型还是代表了一类模型&#xff0c;DeepFM 对 FM 做了什么样的改进…

单细胞copyKat分析学习和整理

CopyKAT(肿瘤拷贝数核型分析)是一种使用综合贝叶斯方法的计算工具&#xff0c;能够在单细胞中以5MB分辨率检测全基因组非整倍体&#xff0c;以便从高通量单细胞RNA测序数据中区分肿瘤细胞与正常细胞&#xff0c;并识别肿瘤亚克隆。 (这里提一下,“5MB”是指 5兆碱基对(5 megab…

CTF-PWN方向 栈溢出等基础知识笔记(2)

C语言基本函数补充 write函数 ret2syscall 要求有0x80这种系统调用存在 &#xff08;0x0A是回车的意思&#xff09; 案例 通过file查看这个文件 发现是静态编译的文件 所以很多库函数都被编译进去了 但是不存在bin/sh字符串 不存在system和backdoor函数 修改&#xff0c;rea…

【环境搭建】远程服务器搭建ElasticSearch

参考&#xff1a; 非常详细的阿里云服务器安装ElasticSearch过程..._阿里云服务器使用elasticsearch-CSDN博客 服务器平台&#xff1a;AutoDL 注意&#xff1a; 1、切换为非root用户&#xff0c;su 新用户名&#xff0c;否则ES无法启动 2、安装过程中没有出现设置账号密码…

AD9361 在低至 1MHz 的频率下运行

AD9361 在低至 1MHz 的频率下运行 AD -FREQCVT1-EBZ是包含AD9361的FMCOMMS3/4/5板的附加板。虽然完整的芯片级设计包可在此 RF 收发器的ADI产品页面上找到&#xff0c;但有关此卡的信息及其使用方法、围绕它的设计包以及可使其工作的软件可在此处找到。 AD-FREQCVT1-EBZ 模块…

山西农业大学20241015

02-VUE 一. Vue中常用的指令1. Vue指令概述2 Vue中指令的分类3 Vue中指令3.1 内容渲染指令3.2 条件渲染指令3.2.1 v-show3.2.2 v-if3.2.3 v-else 和 v-else-if 3.3 事件绑定指令 v-on--重要3.3.1 内联语句3.3.2 methods中的函数名 一. Vue中常用的指令 1. Vue指令概述 概念: 指…

安装Node.js环境,安装vue工具

一、安装Node.js 去官方网站自行安装自己所需求的安装包 这是下载的官方网站 下载 | Node.js 中文网 给I accept the terms in the License Agreement打上勾然后点击Next 把安装包放到自己所知道的位置,后面一直点Next即可 等待它安装好 然后winr打开命令提示符cmd 二、安装…

MySQL中表的约束

1&#xff0c;概念 表中一定要有各种约束&#xff0c;通过约束&#xff0c;让我们来插入数据库中的数据是符合预期的。 约束本质是通过技术手段&#xff0c;倒逼程序员插入正确的数据&#xff1b;反过来&#xff0c;站在MySQL的角度来单&#xff0c;内部已经插进来的数据&…

Web安全 - 跨站点请求伪造CSRF(Cross Site Request Forgery)

文章目录 OWASP 2023 TOP 10CSRF 导图CSRF的基本概念CSRF的工作原理常见CSRF攻击模式CSRF防御策略补充建议应用场景实战防御策略选择1. CSRF Token&#xff08;首选&#xff09;2. SameSite Cookie属性3. 验证Referer和Origin4. 多因素认证 实现方案CSRF Token实现SameSite Coo…

(39)MATLAB生成高斯脉冲及其频谱

文章目录 前言一、MATLAB仿真代码二、仿真结果画图 前言 高斯脉冲在通信中是很重要的调制符号波形&#xff0c;本文使用MATLAB生成高斯脉冲&#xff0c;并使用FFT变换给出其频谱。 一、MATLAB仿真代码 代码如下&#xff1a; % 信号参数 fs 100; % 采样…

【Vercel】Vercel部署项目遇到的问题

部署问题1&#xff1a; 问题详情 部署提示报错&#xff0c;vite的命令找不到 13:18:21.159 13:18:21.160npm error This is an error with npm itself. Please report this error at: 13:18:21.160npm error 13:18:221.16 npm error A complete l <https://github.com/np…

【自动驾驶汽车通讯协议】I2C(IIC)总线通讯技术详解

文章目录 0. 前言1. I2C简介2.I2C的工作原理2.1 硬件要求&#xff1a;2.2 半双工通信&#xff1a; 3. 通信时序4. 其他特性4.1 通信速率4.2 抗干扰措施4.3 注意事项 5. 在自动驾驶汽车中的应用5.1 I2C操作模式5.2 I2C的用途 6. 总结 0. 前言 按照国际惯例&#xff0c;首先声明&…

Java—类和对象习题讲解

如果您觉得这篇文章对您有帮助的话 欢迎您一键三连&#xff0c;小编尽全力做到更好 欢迎您分享给更多人哦 目录 习题一&#xff1a; 习题二&#xff1a; 习题三&#xff1a;.import static 能够导入一些静态方法 习题四&#xff1a; 习题五&#xff1a; 习题六&#xff1…

【刷题册】2024.10.13 - 2024.10.15

目录 一、2024.10.131.1 BC153 [NOIP2010]数字统计1.2 NC313 两个数组的交集1.2.1 思路一&#xff1a;暴力O(N^2)1.2.2 思路二&#xff1a;hash 1.3 AB5 点击消除 二、2024.10.142.1 BC64⽜⽜的快递2.2 DP4 最⼩花费爬楼梯2.3 数组中两个字符串的最⼩距离 三、2024.10.153.1 BC…

Visual Studio Code基础:使用debugpy调试python程序

相关阅读 VS codehttps://blog.csdn.net/weixin_45791458/category_12658212.html?spm1001.2014.3001.5482 一、安装调试器插件 在VS code中可以很轻松地调试Python程序&#xff0c;首先需要安装Python调试器插件&#xff0c;如图1所示。 图1 安装调试器插件 Python Debugge…