C语言期末考试——重点考点

目录

1.C语言的结构

2.三种循环结构

3.逻辑真假判断 

4. printf函数

5. 强制类型转化

6. 多分支选择结构

7. 标识符的定义

8. 三目运算符


1.C语言的结构

选择结构、顺序结构、循环结构

2.三种循环结构

for、while、do-while

3.逻辑真假判断 

C语言用0表示false,用非0(不止1)表示true

0不能用来表示“真”
 

①下边的表达式哪个满足:-10<=x<=10,和100<=x<=110时值为“真”,否则为“假”( B )

A. ((10>x)&&(x>-10))||(100>x-100)

B. !((x<-10)||(x>10))||!((x<100)||(x>110))

C. (x<10)&&(x>-10)&&(x>100)&&(x<110)

D. (x>-10)&&(x<10)||(x<110)&&(x>100)
 

选项 A

  • 分析逻辑表达式((10>x)&&(x>-10))||(100>x-100),后半部分 100>x-100 可化简为 200 > x,这个表达式主要判断的是 x 小于 10 且大于 -10 或者 x 小于 200,并不能准确实现题目要求的 -10<=x<=10 和 100<=x<=110 这两个区间判断,存在多余的取值范围情况,所以不符合题意。

选项 B

  • 分析逻辑表达式!((x<-10)||(x>10))||!((x<100)||(x>110))!((x<-10)||(x>10)) 等价于 (x >= -10) && (x <= 10)!((x<100)||(x>110)) 等价于 (x >= 100) && (x <= 110),整体表示 x 在 -10 到 10 这个区间或者 x 在 100 到 110 这个区间时表达式为真,刚好满足题目要求的条件,符合题意。

选项 C

  • 分析逻辑表达式(x<10)&&(x>-10)&&(x>100)&&(x<110),按照逻辑与运算规则,要求 x 同时满足小于 10 、大于 -10 、大于 100 和小于 110,这是不可能同时满足的条件,所以不符合题意。

选项 D

  • 分析逻辑表达式(x>-10)&&(x<10)||(x<110)&&(x>100),前半部分表示 x 在 -10 到 10 区间,后半部分表示 x 在 100 到 110 区间,但该表达式在 x 取值稍微超出这两个区间一点时也可能为真(比如 x = 11 时后半部分就为真了),不能精准符合题目要求,所以不符合题意。

综上,答案是 B 选项。

②下边的表达式哪个满足:当x和y的值都大于0,小于n时值为“真”,否则为“假”( D )

A. (x>0)&&(y>0)&&(x<n)&&(y<n)

B. (x<n)&&(y<n)&&x&&y

C. !(x<=0)||(y<=0)||(y>=n)||(x>=n)

D. !(x<=0)&&!(y<=0)&&!(y>=n)&&!(x>=n)

选项 A

  • 分析逻辑表达式(x>0)&&(y>0)&&(x<n)&&(y<n),这个表达式要求 x 既要大于 0 又要小于 n,同时 y 也要既大于 0 又要小于 n,是 x 和 y 各自都要同时满足大于 0 且小于 n 的条件,而题目要求的是 x 和 y 的值整体满足大于 0 、小于 n 即可,并非各自都要同时满足,所以该选项不符合题意。

选项 B

  • 分析逻辑表达式(x<n)&&(y<n)&&x&&y,表达式中的 x&&y 部分只是简单判断 x 和 y 不为 0,而前面 (x<n)&&(y<n) 也只是分别判断 x 和 y 小于 n,无法准确体现出 x 和 y 都要在 0 到 n 这个区间内的要求,所以不符合题意。

选项 C

  • 分析逻辑表达式!(x<=0)||(y<=0)||(y>=n)||(x>=n),根据逻辑或运算的规则,只要其中一个子表达式为真,整个表达式就为真。该表达式只要 x 或者 y 出现小于等于 0 、大于等于 n 这些不符合要求的情况之一,表达式就为真了,与题目要求的当不符合条件时表达式为假不符,所以不符合题意。

选项 D

  • 分析逻辑表达式!(x<=0)&&!(y<=0)&&!(y>=n)&&!(x>=n)!(x<=0) 等价于 x > 0!(y<=0) 等价于 y > 0!(y>=n) 等价于 y < n!(x>=n) 等价于 x < n,整体就是要求 x 大于 0 且小于 n ,同时 y 也要大于 0 且小于 n ,正好符合当 x 和 y 的值都大于 0 、小于 n 时值为 “真”,否则为 “假” 的要求,所以符合题意。

综上,答案是 D 选项。

4. printf函数

如:printf ("%d",3>2>1)

在 C 语言(以及很多遵循类似语法规则的编程语言中),关系运算符(如 >)的结合性是从左到右依次进行运算的。

 

首先计算 3>2,这个比较的结果是 1(在 C 语言中,关系表达式成立时返回值为 1,表示逻辑真;不成立时返回 0,表示逻辑假)。

 

然后用这个结果 1 再去和 1 进行 > 比较,也就是计算 1>1,该比较的结果是 0(因为 1 并不大于 1,关系表达式不成立)。

如:printf ("%d\n”,034)

在 C 语言(以及一些相关的编程语言中),以 0 开头的数字常量表示八进制数。所以这里的 034 实际上是一个八进制数

要计算八进制数 034 对应的十进制数值,可以使用按权展开的方法。八进制数从右到左每位的权值依次是 8^08^18^2……

对于八进制数 034,其转换为十进制数的计算过程如下:

5. 强制类型转化

①float  x = 3.1415926;输出语句printf (“%6d”,(int)x);

运行的输出结果是:3

②计算题

int a=3,b=4; float x=3.5,y=2.5;

则表达式 (float)(a+b)/2 + (int)x%(int)y 的值为:4.5

6. 多分支选择结构

①嵌套的if语句

②switch语句,case后只能为常量和常量表达式

7. 标识符的定义

不能使用关键字

  • 不能与 C 语言的关键字相同,如intfloatifelsewhile等都是关键字,不能用作用户定义的标识符。

合法字符组成

  • 只能由字母(包括大写和小写)、数字和下划线_组成。
  • 标识符的第一个字符必须是字母或下划线,不能是数字。

8. 三目运算符

①x=1,y=3        x=y>2?6:5

这里的结果为x=6

思路:首先计算 y > 2 这个条件表达式的值

  • 如果 y 的值大于 2,那么 y > 2 的结果为真(在 C 语言中就是值为 1),此时整个三元条件表达式 y > 2? 6 : 5 的值就为 6,然后再将这个值 6 赋给变量 x,即 x 的值最终变为 6
  • 如果 y 的值小于等于 2,那么 y > 2 的结果为假(值为 0),此时整个三元条件表达式 y > 2? 6 : 5 的值就为 5,然后再将这个值 5 赋给变量 x,即 x 的值最终变为 5

②表达式x>0?1:(x<0?-1:0)在x>0时的结果是:

对于表达式 x>0?1:(x<0?-1:0),首先判断最外层的条件 x>0

已知当前情况是 x>0,根据三元条件运算符的运算规则,当 x>0 这个条件成立(也就是为真)时,整个表达式 x>0?1:(x<0?-1:0) 的值就取 1,而不会再去管后面嵌套部分 (x<0?-1:0) 的情况了。

所以,表达式 x>0?1:(x<0?-1:0) 在 x>0 时的结果是 1

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

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

相关文章

ansible基础教程(下)

一、playbook 简介&#xff1a; playbook 是 ansible 用于配置&#xff0c;部署&#xff0c;和管理被控节点的剧本。 通过 playbook 的详细描述&#xff0c;执行其中的一系列 tasks &#xff0c;可以让远端主机达到预期的状态。 使用场景&#xff1a; 像执行shell命令与写…

mid360使用cartorapher进行3d建图导航

1. 添加urdf配置文件&#xff1a; 添加IMU配置关节点和laser关节点 <!-- imu livox --> <joint name"livox_frame_joint" type"fixed"> <parent link"base_link" /> <child link"livox_frame" /> <o…

聚合支付系统/官方个人免签系统/三方支付系统稳定安全高并发 附教程

聚合支付系统/官方个人免签系统/三方支付系统稳定安全高并发 附教程 系统采用FastAdmin框架独立全新开发&#xff0c;安全稳定,系统支持代理、商户、码商等业务逻辑。 针对最近一些JD&#xff0c;TB等业务定制&#xff0c;子账号业务逻辑API 非常详细&#xff0c;方便内置…

CV工程师专用键盘开源项目硬件分析

1、前言 作为一个电子发烧友&#xff0c;你是否有遇到过这样的问题呢。当我们去查看函数定义的时候&#xff0c;需要敲击鼠标右键之后选择go to definition。更高级一些&#xff0c;我们使用键盘的快捷键来查看定义&#xff0c;这时候可以想象一下&#xff0c;你左手按下ALT&a…

【Redis】深入解析Redis缓存机制:全面掌握缓存更新、穿透、雪崩与击穿的终极指南

文章目录 一、Redis缓存机制概述1.1 Redis缓存的基本原理1.2 常见的Redis缓存应用场景 二、缓存更新机制2.1 缓存更新的策略2.2 示例代码&#xff1a;主动更新缓存 三、缓存穿透3.1 缓存穿透的原因3.2 缓解缓存穿透的方法3.3 示例代码&#xff1a;使用布隆过滤器 四、缓存雪崩4…

ABAP - 系统集成之SAP的数据同步到OA(泛微E9)服务器数据库

需求背景 项目经理说每次OA下单都需要调用一次SAP的接口获取数据&#xff0c;导致效率太慢了&#xff0c;能否把SAP的数据保存到OA的数据库表里&#xff0c;这样OA可以直接从数据库表里获取数据效率快很多。思来想去&#xff0c;提供了两个方案。 在集群SAP节点下增加一个SQL S…

2023年华数杯数学建模A题隔热材料的结构优化控制研究解题全过程文档及程序

2023年华数杯全国大学生数学建模 A题 隔热材料的结构优化控制研究 原题再现&#xff1a; 新型隔热材料 A 具有优良的隔热特性&#xff0c;在航天、军工、石化、建筑、交通等高科技领域中有着广泛的应用。   目前&#xff0c;由单根隔热材料 A 纤维编织成的织物&#xff0c;…

MongoDB性能监控工具

mongostat mongostat是MongoDB自带的监控工具&#xff0c;其可以提供数据库节点或者整个集群当前的状态视图。该功能的设计非常类似于Linux系统中的vmstat命令&#xff0c;可以呈现出实时的状态变化。不同的是&#xff0c;mongostat所监视的对象是数据库进程。mongostat常用于…

SpringBoot 赋能:精铸超稳会员制医疗预约系统,夯实就医数据根基

1绪论 1.1开发背景 传统的管理方式都在使用手工记录的方式进行记录&#xff0c;这种方式耗时&#xff0c;而且对于信息量比较大的情况想要快速查找某一信息非常慢&#xff0c;对于会员制医疗预约服务信息的统计获取比较繁琐&#xff0c;随着网络技术的发展&#xff0c;采用电脑…

电子商务人工智能指南 3/6 - 聊天机器人和客户服务

介绍 81% 的零售业高管表示&#xff0c; AI 至少在其组织中发挥了中等至完全的作用。然而&#xff0c;78% 的受访零售业高管表示&#xff0c;很难跟上不断发展的 AI 格局。 近年来&#xff0c;电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…

mock.js介绍

mock.js http://mockjs.com/ 1、mock的介绍 *** 生成随机数据&#xff0c;拦截 Ajax 请求。** 通过随机数据&#xff0c;模拟各种场景&#xff1b;不需要修改既有代码&#xff0c;就可以拦截 Ajax 请求&#xff0c;返回模拟的响应数据&#xff1b;支持生成随机的文本、数字…

优化LabVIEW数据运算效率的方法

在LabVIEW中进行大量数据运算时&#xff0c;提升计算效率并减少时间占用是开发过程中常遇到的挑战。为此&#xff0c;可以从多个角度着手优化&#xff0c;包括合理选择数据结构与算法、并行处理、多线程技术、硬件加速、内存管理和界面优化等。通过采用这些策略&#xff0c;可以…

从零开始学TiDB(1) 核心组件架构概述

首先TiDB深度兼容MySQL 5.7 1. TiDB Server SQL语句的解析与编译&#xff1a;首先一条SQL语句最先到达的地方是TiDB Server集群&#xff0c;TiDB Server是无状态的&#xff0c;不存储数据&#xff0c;SQL 发过来之后TiDB Server 负责 解析&#xff0c;优化&#xff0c;编译 这…

AI与低代码技术融合:如何加速企业智能化应用开发?

引言 随着全球数字化转型的步伐加快&#xff0c;企业在智能化应用开发方面面临着前所未有的挑战和机遇。传统的软件开发方式往往需要大量的技术人员、时间和资源&#xff0c;而在瞬息万变的市场环境中&#xff0c;这种模式显得效率低下且难以满足企业快速迭代和创新的需求。 与…

unity与android拓展

一.AndroidStudio打包 1.通过Unity导出Android Studio能够打开的工程 步骤 1.设置导出基本信息&#xff1a;公司名、游戏名、图标、包名等关键信息 2.在File——>Build Settings中&#xff0c;勾选 Export Project 选项 3.点击Export 导出按钮 2.在Android Studio中打开Un…

40分钟学 Go 语言高并发:服务注册与发现

服务注册与发现 一、系统架构设计 让我们先通过流程图了解服务注册与发现的整体架构&#xff1a; 二、核心组件实现 1. 服务注册中心 package discoveryimport ("context""sync""time" )// ServiceInstance 服务实例 type ServiceInstance…

ESP8266作为TCP客户端或者服务器使用

ESP8266模块&#xff0c;STA模式&#xff08;与手机搭建TCP通讯&#xff0c;EPS8266为服务端&#xff09;_esp8266作为station-CSDN博客 ESP8266模块&#xff0c;STA模式&#xff08;与电脑搭建TCP通讯&#xff0c;ESP8266 为客户端&#xff09;_esp8266 sta 连接tcp-CSDN博客…

基于DFA算法实现敏感词过滤

1、什么是DFA&#xff1f; DFA&#xff08;Deterministic Finite Automaton&#xff09;&#xff0c;即确定有穷自动机。其特征为&#xff1a;有一个有限状 态集合和一些从一个状态通向另一个状态的边&#xff0c;每条边上标记有一个符号&#xff0c;其中一个状态是 初态&#…

详解MySQL安装

目录 Ubantu 1. 使⽤apt安装MySQL 2.查看MySQL状态 3. MySQL 安装安全设置 4.设置密码 卸载MySQL Centos 1. 确认当前的系统版本 2.下载MySQL源 3.安装MySQL 4.启动mysqld 5.查看MySQL状态 6.设置开机自启动 7.查看MySQL密码&#xff0c;并登录 8.修改密码 Ubant…

Android 实现中英文切换

在开发海外项目的时候&#xff0c;需要实现app内部的中英文切换功能&#xff0c;所有的英文都是内置的&#xff0c;整体思路为&#xff1a; 创建一个sp对象&#xff0c;存储当前系统的语言类型&#xff0c;然后在BaseActivity中对语言进行判断&#xff1b; //公共Activitypubl…