当前位置: 首页 > news >正文

【时时三省】(C语言基础)选择结构程序设计习题1

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省

1.什么是算术运算?什么是关系运算?什么是逻辑运算?

 

算术运算

对数值进行加、减、乘、除、取余等基本数学计算的操作 ,用于处理数值间数量关系。

关系运算

比较两个值的大小、是否相等关系,结果为真或假,辅助条件判断。

逻辑运算

对布尔值进行与、或、非操作,组合条件表达式,得出新的真假判断结果。

2.C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?

在C语言中,早期用0表示“假”,非0表示“真”;C99标准引入 stdbool.h 头文件后,可用 false 表示“假”, true 表示“真”。

系统判断时,以0为“假”,非0为“真”,用于条件判断等场景。

3 .写出下面各逻辑表达式的值。设a = 3,b = 4,c = 5。

( 1 )a + b>c&&b==c

( 2 ) a || b + c && b - c

( 3 ) ! ( a > b ) && ! c || 1

( 4 ) ! ( x = a ) && ( y = b ) && 0

( 5 ) ! ( a + b ) + c-1 && b + c/2

解答:

(1)a + b > c && b == c 

- 先计算  a + b > c : a + b = 3 + 4 = 7 , 7 > 5  为真,值是  1 。

- 再计算  b == c : 4 == 5  为假,值是  0 。

- 最后计算逻辑与  && : 1 && 0  为假,值是  0 。

(2)a || b + c && b - c 

- 先计算  b + c  和  b - c : b + c = 4 + 5 = 9 , b - c = 4 - 5 = -1 。

- 逻辑与  &&  优先级高于逻辑或  || ,先算  b + c && b - c  , 9  非零为真(值为  1 ), -1  非零为真(值为  1 ) , 1 && 1  结果为  1 。

- 再算  a || (b + c && b - c)  , a = 3  非零为真(值为  1 ) , 1 || 1  结果为  1 (真)。

 (3)!(a > b) &&!c || 1 

- 先算  a > b : 3 > 4  为假(值为  0 ), !(a > b)  为真(值为  1 )。

- 再算  !c : c = 5  非零为真, !c  为假(值为  0 )。

- 然后算  !(a > b) &&!c  : 1 && 0  为假(值为  0 )。

- 最后算  !(a > b) &&!c || 1  : 0 || 1  为真(值为  1 )。

 (4)!(x = a) && (y = b) && 0 

- 先算  !(x=a) : a = 3  非零为真, !(a)  为假(值为  0 )。

- 逻辑与  &&  只要有一个为假则结果为假,所以  !(a) && (b) && 0  结果为  0 (假)。

!(a + b) + c - 1 && b + c / 2 

- 先算  a + b : a + b = 3 + 4 = 7 , !(a + b)  为假(值为  0 )。

- 再算  !(a + b) + c - 1 : 0 + 5 - 1 = 4  ,非零为真(值为  1 )。

- 接着算  b + c / 2 : c / 2  因为都是整数 , 5 / 2 = 2  , b + c / 2 = 4 + 2 = 6  ,非零为真(值为  1 )。

- 最后算逻辑与  && : 1 && 1  为真(值为  1 )。

4 .有3个整数a,b,c,由键盘输入,输出其中最大的数。

编写程序:

代码说明:

先定义变量用于存储输入的三个整数和最大值,通过  scanf  接收用户输入。先假设  a  是最大值,然后通过两个  if  语句分别比较  b  和  c  与当前最大值的大小,若更大则更新最大值,最后输出最大值。

5 .从键盘输入一个小于1000的正数,要求输出它的平方根(如平方根不是整数,则输出其整数部分)。要求在输入数据后先对其进行检查是否为小于1000的正数。若不是,则要求重新输入。

编写程序:

代码说明:

定义变量  num  存储输入值,接收用户输入后,先通过  if  语句判断输入是否符合要求(大于0且小于1000 )。若符合,调用  sqrt  函数计算平方根,再判断平方根是否为整数,分别进行输出;若不符合,提示输入错误。

6 .有一个函数:

写程序,输入x的值,输出y相应的值。

编写程序:

代码解释:

先定义变量 x 和 y 用于存储输入值和计算结果。通过 scanf 获取用户输入的 x 值,然后利用 if - else if - else 语句进行条件判断,根据 x 所在区间,按照对应的函数表达式计算 y 值,最后输出 y  。

7 .有一函数:

有人编写了以下两个程序,请分析它们是否能实现题目要求。

程序(1)

程序(2) 

程序(1)分析

代码逻辑

- 首先提示用户输入 x 的值,然后将 y 初始化为 -1  。

- 接着判断 x 是否不等于 0  ,如果 x != 0  ,再进一步判断 x 是否大于 0  。若 x > 0  ,将 y 赋值为 1  ;否则(即 x 不等于 0  但小于 0  ),将 y 赋值为 0  。最后输出 x 和 y 的值。

能否实现题目要求

- 不能实现题目要求。对于 x < 0 的情况,根据题目函数要求, y 应该为 -1  ,但此程序中当 x < 0 (满足 x != 0  且不满足 x > 0  )时, y 被赋值为 0  ,不符合函数定义。

程序(2)分析

代码逻辑

- 提示用户输入 x 的值后,将 y 初始化为 0  。

- 然后判断 x 是否大于等于 0  ,若 x >= 0  ,再进一步判断 x 是否大于 0  。若 x > 0  ,将 y 赋值为 1  ;否则(即 x = 0  ), y 保持为 0  。若 x < 0  (不满足 x >= 0  ),将 y 赋值为 -1  。最后输出 x 和 y 的值。

能否实现题目要求

- 能实现题目要求。它按照题目中函数对于 x < 0  、 x = 0  、 x > 0  三种情况的定义,正确地给 y 赋了相应的值。

8 .给出一百分制成绩,要求输出成绩等级‘A '、' B '、' C '、' D '、' E '。90分以上为' A ',80 ~ 89分为' B ',70 ~ 79分为' C ',60 ~ 69分为D ',60分以下为' E '。

编写程序:

代码解释:

先定义存储成绩的 int 型变量 score 和存储等级的 char 型变量 grade  。获取用户输入成绩后,通过 if - else if 语句判断成绩所在区间,为 grade 赋予对应等级字符,最后输出等级。

 

相关文章:

  • Python异步编程入门:Async/Await实战详解
  • vector常用的接口和底层
  • AI对话高阶玩法:解锁模型潜能的实用案例教程
  • 消息中间件面试题
  • 开源TTS项目GPT-SoVITS,支持跨语言合成、支持多语言~
  • java面向对象06:封装
  • cmd 终端输出乱码问题 |Visual Studio 控制台输出中文乱码解决
  • Day08【基于预训练模型分词器实现交互型文本匹配】
  • 考研数据结构之树与二叉树的应用:哈夫曼树、哈夫曼编码与并查集
  • JavaWeb开发 Servlet底层 从概念到HTTP请求 到web服务器再到servlet
  • ROS2 常用
  • How to run ERSEM
  • linux上安装vimplus 从零开始
  • 使用Python构建桌面图片浏览器
  • cursor如何回退一键回退多个文件的修改
  • Docker 安装 Elasticsearch 8.x
  • Java二叉树深度解析:结构、算法与应用实践指南
  • 【教程】检查RDMA网卡状态和测试带宽 | 附测试脚本
  • Java公平锁和非公平锁实现原理
  • 图论-BFS搜索图/树-最短路径问题的解决
  • 能上天入海的“鲲龙”毕业了,AG600取得型号合格证
  • 央视网评论员:婚约不是性许可——山西订婚强奸案背后的性教育盲区
  • 中国船东协会:强烈要求美方停止基于政治偏见的调查和行动
  • 如何应对国际贸易形势变化?长三角四省市主要领导密集部署
  • 抵制饭圈极端应援,发倡议书还不够
  • 加力扩围支持消费品以旧换新,江苏要送出1800万元彩票