【C语言】if语句选择题

前言

题目一:

题目二:

题目三:

题目四:

题目五:

题目六:

题目七:

题目八:


前言

关于if语句相关的选择题


题目一:

关于if语句说法正确是:( )

A .if语句后面只能跟一条语句

B .if语句中0表示假,1表示真

C .if语句是一种分支语句,可以实现单分支,也可以实现多分支

D .else语句总是和它的对齐的if语句匹配

选择C。

讲解:选项A是错误的,if语句后面不是只能跟一条语句,可以跟多条语句,跟多条语句时,需要用大括号{}进行包裹,跟一条语句时可以省略{}; 选项B的错误的在于后半句,if语句应该为0表示假,非0表示真; 选项D的错误在于else语句是跟离它最近的if进行匹配,不是跟它对齐的if语句进行匹配。


题目二:

下面代码执行的结果是:( )

A .1 2 3 4 5 6 7 8 9 10

B .5 5 5 5 5 5 5 5 5 5

C .死循环的打印5

D .0 1 2 3 4 5 6 7 8 9

#include <stdio.h>
int main()
{int i = 0;for (i = 0; i<10; i++){if (i = 5)printf("%d ", i);}return 0;
}

选择C。

讲解:for循环里的if语句中,条件判断语句为i = 5,= 为赋值操作符,因此i的值总是为5,陷入死循环打印5; 这里需要注意赋值 = 与等于 == 之间的区别,对于这种情况,也是往往会出错,我们可以这样写:如想让i等于5打印,可以将变量和常量换个位置,如:5 == i,当写错了,编译器就会进行报错,防止影响后续的逻辑。


题目三:

下面代码的执行结果是什么( )

A .secondthird

B .hello

C .firstsecond

D .hellothird

#include <stdio.h>
int main() {int x = 3;int y = 3;switch (x % 2) {case 1:switch (y){case 0:printf("first");case 1:printf("second");break;default: printf("hello");}case 2:printf("third");}return 0;
}

选择D。

讲解:Switch选择语句有一个易错点,就是case或default后有没有跟break,当没有break时,不会跳出switc语句,会顺延执行下去,直到switch语句结束,因此这道题最外层的switch中的case1后没有break,程序打印完"hello"后又进入case 2中执行。


题目四:

switch(c)语句中,c不可以是什么类型( )

A .int

B .long

C .char

D .float

选择D。

讲解:switch选择语句中,switch(整型表达式),case 整型常量表达式;我们需要注意:字符类型char本质上也属于整型家族,因为char类型在内存中以ASCll码进行存储,ASCII码本质上是一组整数。


题目五:

则func(1) = (      )

A .30

B .20

C .16

D .0

int func(int a)
{int b;switch (a){case 1: b = 30;case 2: b = 20;case 3: b = 16;default: b = 0;}return b;
}

选择D。

讲解:case或default后有没有跟break,当没有break时,不会跳出switc语句,会顺延执行下去,直到switch语句结束。


题目六:

关于switch说法不正确的是:( )

A .switch语句中的default子句可以放在任意位置

B .switch语句中case后的表达式只能是整形常量表达式

C .switch语句中case子句必须在default子句之前

D .switch语句中case表达式不要求顺序

选择C。

讲解:switch语句中对于case子句与default子句摆放位置是不要求的,因为switch语句是根据switch()中()里的为准,进行选择,并不是顺序执行。


题目七:

程序的输出结果是?( )

A .10

B .9

C .8

D .7

#include <stdio.h>
int main()
{int a = 0, b = 0;for (a = 1, b = 1; a <= 100; a++){if (b >= 20) break;if (b % 3 == 1){b = b + 3;continue;}b = b-5;}printf("%d\n", a);return 0;
}

选择C。

图解如下:


题目八:

关于while(条件表达式) 循环体,以下叙述正确的是( )? (假设循环体里面没有break,continue,return,goto等等语句)  

A .循环体的执行次数总是比条件表达式的执行次数多一次

B .条件表达式的执行次数总是比循环体的执行次数多一次

C .条件表达式的执行次数与循环体的执行次数一样

D .条件表达式的执行次数与循环体的执行次数无关

选择B。

讲解:

  • 在第一次循环之前,条件表达式 会被执行一次。
  • 对于每一次循环体的执行,之前都会先执行一次 条件表达式
  • 当 条件表达式 的值为假时,循环体不再执行,但 条件表达式 已经被执行了最后一次。

因此,条件表达式 的执行次数总是比循环体的执行次数多一次。这是因为即使循环体一次都不执行(例如,如果初始的 条件表达式 的值就是假),条件表达式 仍然会被执行一次。

注意:其它的循环也是如此,for循环、do...while循环

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

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

相关文章

详解TCP/IP五层模型

目录 一、什么是TCP五层模型&#xff1f; 二、TCP五层模型的详细内容 1. 应用层 2. 传输层 3. 网络层 4. 数据链路层 5. 物理层 三、网络设备所在分层 封装和分⽤ 三、Java示例 引言&#xff1a; 在网络通信中&#xff0c;TCP/IP协议是至关重要的。为了更好地理解TCP协议的工…

【考研数学】如何做题,做什么题,才能打好基础?

还是建议做经验贴推荐的练习册去巩固基础&#xff01;毕竟目的是考研&#xff0c;考研习题册出的题目更加有针对性&#xff0c;如果拿课后习题练手的话还是差一些强度的&#xff01; 看到网上说1800适合零基础&#xff0c;兴致勃勃下单&#xff0c;买回来发现自己练零基础的题…

微信小程序上传到gitee

共三步 1、新建gitee仓库 点号&#xff0c;新建仓库&#xff0c;填入仓库信息新建即可 2、修改版本管理参数 微信开发者工具中点开版本管理&#xff0c;未初始化&#xff0c;需要先点初始化 接下来将设置中的通用、网络认证、远程3个部分的参数填写好 通用&#xff1a;核对…

JS继承与原型、原型链

在 JavaScript 中&#xff0c;继承是实现代码复用和构建对象关系的重要概念。本文将讨论原型链继承、构造函数继承以及组合继承等几种常见的继承方式&#xff0c;并提供相应的示例代码&#xff0c;并分析它们的特点、优缺点以及适用场景。 在开始讲解 JavaScript 的继承方式之…

从人机界面设计黄金三法则视角看 ChatGPT 的界面设计的“好”与“坏”

热门文章推荐&#xff1a; &#xff08;1&#xff09;《为什么很多人工作 3 年 却只有 1 年经验&#xff1f;》&#xff08;2&#xff09;《一文掌握大模型提示词技巧&#xff1a;从战略到战术巧》&#xff08;3&#xff09;《AI 时代&#xff0c;程序员的出路在何方&#xff1…

法向量估计

法向量估计 1. 求解点P法向量的原理2. 法向量估计的证明3. 为什么求点P的法向量&#xff0c;需要使用以P为中心的邻域内的点&#xff1f;4. 法向量估计的应用和思考5. 权重法向量估计 1. 求解点P法向量的原理 已知有一组点 P ( p 1 , p 2 , p 3 , . . . , p n ) , p i ∈ R 3…

小问题/小技巧/小知识汇总(记录贴)

目录 第一章、小问题①使用了Lombok的Data注解&#xff0c;但是getter方法失效&#xff0c;报错空指针异常③什么是字典项查询④workbench 导出包错误&#xff1a;could not get mysql version⑤一个自定义导包后出现的小问题⑥使用org.json将xml转json的时候出错⑦报错MySQLSy…

基于微信小程序的实验室预约系统的设计与开发

个人介绍 hello hello~ &#xff0c;这里是 code袁~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的…

leetcode 热题 100(部分)C/C++

leetcode 热题 100 双指针 盛最多水的容器 【mid】【双指针】 思路&#xff1a; 好久没写代码sb了&#xff0c;加上之前写的双指针并不多&#xff0c;以及有点思维定势了。我对双指针比较刻板的印象一直是两层for循环i&#xff0c;j&#xff0c;初始时i,j都位于左界附近&…

GIS水文分析计算流向学习

1 初步操作 流向&#xff0c;即水文表面水的流向&#xff1b; 水文分析的很多功能需要基于流向栅格&#xff1b; 在 SuperMap 中&#xff0c;对中心栅格的8个邻域栅格进行编码&#xff1b; 每一个中心栅格的水流方向都由这八个值中的某一个值来确定&#xff1b; 我还没弄懂水…

深入理解计算机系统 家庭作业 2.83

要读懂题目挺难的 A. 假设我们要求的无穷串是x0.yyyyyyy... Y(0.y<<ky) (由YB2Uk(y)得到,B2Uk是一个截断成k位的函数) x0.yyyyy...(这是我们假设的) 于是有 Yx y.yyyyyy... Yx y.yyyyyy... x<<k Yx-x xY(-1) B. a.Y5 k3 ,x5/7 b.Y6 k4 ,x6/152/5 c…

基于单片机的盆栽自动浇花系统

**单片机设计介绍&#xff0c;基于单片机的盆栽自动浇花系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的盆栽自动浇花系统设计概要主要涵盖了通过单片机技术实现盆栽植物的自动化、智能化浇水管理。下面将从系统…