考研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"));//14
    return 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了
    在这里插入图片描述

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

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

相关文章

【重学 MySQL】六十九、揭秘级联约束,让你的数据库关系更智能、更强大!

【重学 MySQL】六十九、揭秘级联约束&#xff0c;让你的数据库关系更智能、更强大&#xff01; 级联约束的定义级联约束的类型级联约束的应用场景级联约束的实现方式级联约束的注意事项 在MySQL数据库中&#xff0c;级联约束是维护数据完整性和一致性的重要机制。它允许在执行某…

Spring源码分析:bean加载流程

背景 在Spring中&#xff0c;Bean的加载和管理是其核心功能之一&#xff0c;包括配置元数据解析、Bean定义注册、实例化、属性填充、初始化、后置处理器处理、完成创建和销毁等步骤。 源码入口 AbstractBeanFactory#doGetBean 具体源码流程如下&#xff1a; bean加载流程&#…

万界星空科技:智能称重打标系统

万界星空科技的称重系统是其为制造业&#xff0c;特别是线缆、漆包线、食品等行业提供的重要解决方案之一。以下是对该系统的详细介绍&#xff1a; 一、系统概述 万界星空科技称重系统是集成在其MES&#xff08;制造执行系统&#xff09;中的一个功能模块&#xff0c;专门用于…

数据结构之旅(顺序表)

前言: Hello,各位小伙伴们我们在过去的60天里学完了C语言基本语法,由于小编在准备数学竞赛,最近没有给大家更新,并且没有及时回复大家的私信,小编在这里和大家说一声对不起!,小编这几天会及时给大家更新初阶数据结构的内容,然后我们来学习今天的内容吧! 一. 顺序表的概念和结…

2024.10.15 sql

刷题网站&#xff1a; 牛客网 select device_id as user_infos_example from user_profile where id < 2 select device_id, university from user_profile where university"北京大学" select device_id, gender, age, university from user_profile where ag…

Bellman-Ford

思路 外层遍历V-1次内层遍历所有边&#xff08;共E次&#xff09;&#xff0c;尝试更新起点的终点的dist值 原材料是backup&#xff08;前次遍历的结果&#xff09;维持住性质&#xff08;见下&#xff09; 优点 允许负环 允许负权边 有特殊性质 缺点 复杂度达到 例题 代码…

2、CSS笔记

文章目录 二、CSS基础CSS简介CSS语法规范CSS代码风格CSS选择器CSS基础选择器标签选择器类选择器--最常用id选择器通配符选择器 CSS复合选择器交集选择器--重要并集选择器--重要后代选择器--最常用子代选择器--重要兄弟选择器相邻兄弟选择器通用兄弟选择器 属性选择器伪类选择器…

Flutter url_launcher:打开网页、邮件、电话和短信的最佳实践

Flutter url_launcher&#xff1a;打开网页、邮件、电话和短信的最佳实践 视频 https://youtu.be/uGT43gZNkyc https://www.bilibili.com/video/BV1G42EYcE7K/ 前言 原文 如何在 Flutter 中使用 url_launcher 打开网页和发送短信 本文介绍了如何在 Flutter 中使用 url_launc…

【深度学习代码调试1】环境配置篇(上) -- 安装PyTorch(安利方法:移除所有国内源,使用默认源)

【深度学习代码调试1】环境配置篇 -- 安装TensorFlow和PyTorch 写在最前面1. 创建新的Conda环境2. 安装PyTorch及相关库&#xff08;可以直接跳到2.3安装方法&#xff09;2.1 检查CUDA版本2.2 解决安装过程中常见问题2.2.1 超时问题&#xff08;这个不是最终解决方案&#xff0…

【argparse】 菜鸟实用教程指南

文章目录 0. 引言1. argparse简介2. argparse的使用3. 实例操作4. 代码运行4.1 命令行执行4.1 IDE执行 5. 总结 0. 引言 在深度学习的过程中&#xff0c;我们常常需要操作和调参大量的参数。如果采用硬编码&#xff08;直接在代码中赋值&#xff09;的方式来设置这些参数&…

java项目之科研工作量管理系统的设计与实现源码(springboot+vue+mysql)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的科研工作量管理系统的设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 科研工作…

【C语言】算术运算、关系运算、逻辑运算

算术运算&#xff1a;常见的数字运算&#xff0c;加减乘除等 关系运算&#xff1a;数值之间大小多少的关系 逻辑运算&#xff1a;逻辑与、或、非 #include <stdio.h> /* 功能&#xff1a;算术运算、关系运算、逻辑运算 时间&#xff1a;2024年10月 地点&#xff1a;贤者…

斯坦福 CS229 I 机器学习 I 构建大型语言模型 (LLMs)

1. Pretraining -> GPT3 1.1. Task & loss 1.1.1. 训练 LLMs 时的关键点 对于 LLMs 的训练来说&#xff0c;Architecture&#xff08;架构&#xff09;、Training algorithm/loss&#xff08;训练算法/损失函数&#xff09;、Data&#xff08;数据&#xff09;、Evalu…

Linux INPUT 子系统实验

按键、鼠标、键盘、触摸屏等都属于输入(input)设备&#xff0c;Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符设备&#xff0c;只是在此基础上套上了 input 框架&#xff0c;用户只需要负责上报输入事件&#xff0c;比如按键值、坐…

Qt-系统文件相关介绍使用(61)

目录 描述 输⼊输出设备类 打开/读/写/关闭 使用 先初始化&#xff0c;创建出大致的样貌 输入框设置 绑定槽函数 保存文件 打开文件 提取文件属性 描述 在C/C Linux 中我们都接触过关于文件的操作&#xff0c;当然 Qt 也会有对应的文件操作的 ⽂件操作是应⽤程序必不…

八、Linux之实用指令

1、指定运行级别 1.1 基本介绍 运行级别说明 0 &#xff1a;关机 1 &#xff1a;单用户【找回丢失密码】 2&#xff1a;多用户状态没有网络服务&#xff08;用的非常少&#xff09; 3&#xff1a;多用户状态有网络服务&#xff08;用的最多&#xff09; 4&#xff1a;系统未使…

《Effective C++》 笔记

让自己习惯C&#xff0c;Accustoming Yourself to C 1. 视C为一个语言联邦&#xff0c;View Cas a federation of languages. 将 C视为一个由相关语言组成的联邦而非单一语言。在其某个次语言&#xff08;sublanguage&#xff09;中&#xff0c;各种守则与通例都倾向简单、直观…

机器学习笔记-2

文章目录 一、Linear model二、How to represent this function三、Function with unknown parameter四、ReLU总结、A fancy name 一、Linear model 线性模型过于简单&#xff0c;有很大限制&#xff0c;我们需要更多复杂模式 蓝色是线性模型&#xff0c;线性模型无法去表示…

【.net core使用minio大文件分片上传】.net core使用minio大文件分片上传以及断点续传、秒传思路

版本&#xff1a;.net core 7 需求&#xff1a;net限制了上传的大小&#xff0c;只能上传25M上下的文件&#xff0c;如果上传一个八十多兆的文件&#xff0c;swagger接口报错&#xff0c;如果前端调用上传接口&#xff0c;会报CORS跨域错误&#xff0c;这篇文章介绍怎么使用分片…

【X线源】关于滨松MCS2软件的说明

【X线源】关于滨松MCS2软件的说明 1.软件背景2.MCS2界面3.MCS2操作4.常见问题 1.软件背景 滨松为了方便客户将滨松MFX集成进自己的系统&#xff0c;滨松提供了MFX二次开发相关的信息和Demo代码。参考博客说明&#xff1a; 【X线源】关于滨松MFX二次开发demo示例简介 https://…