c语言经典测试题5

news/发布时间2024/5/15 2:13:46

1.题1

t=0;
while(printf("*"))
{
t++;
if (t<3)
break;
}

关于上述代码描述正确的是?

A: 其中循环控制表达式与0等价 B: 其中循环控制表达式与'0'等价

C: 其中循环控制表达式是不合法的     D: 以上说法都不对

我们来分析一下:printf的返回值为正确打印的字符数,为一个整数,如果输出错误则返回一个负数。我们看上述while循环语句中的判断式它的返回值应该为1,因为打印了一个字符,我们来看选项,A选项说与0等价,如果判断式为0的话,则不会进入while循环。B选项中等价为‘0’,我们知道字符‘0’的ASCLL码值为48,将会使代码进入死循环,和1的效果相同,所以B选项正确。注意这里说的死循环只是想说明判断式恒正。

2.题2

#include <stdio.h>
int main()
{char ch;while ((ch = getchar()) != '\n'){if (ch % 2 != 0 && (ch >= 'a' && ch <= 'z'))ch = ch - 'a' + 'A';putchar(ch);}printf("\n");return 0;
}

如果我们输入1abcedf2df<回车>,那么结果会是啥呢?

我们来分析一下:这个代码的while循环的判断式是getchar输入的一个字符不为‘\n’就将其值赋给ch。if条件是ch%2后不等于0,且ch为大写字母,我们就会将其改写为小写字母,这个%2不等于0其实就是说字符得ASCLL码值是奇数。所以我们可以得到,a、c、e会被更改为大写。我们来运行看看:

3.题3

A: 只能在循环体内和switch语句体内使用break语句

B: 当break出现在循环体中的switch语句体内时,其作用是跳出该switch语句体,并中止循环体的执行

C: continue语句的作用是:在执行完本次循环体中剩余语句后,中止循环

D: 在while语句和do-while语句中无法使用continue语句

上述描述正确的是?

A是正确的,B中的break只能跳出switch语句,并不能终止循环语句,如果想达到B选项所描述的结果,我们可以使用return来结束程序。continue的作用是跳过下面的语句,直接来到该循环的判断部分。continue在三种循环中都可以使用,如果大家不太了解可以去看我之前的篇章《循环语句》。

4.题4

for(int i = 0 ; i || i++ < 5;);

上述代码会循环多少次呢?

可能大家在看到这道题的时候会有点懵,没关系我们先来分析一下:for循环直接进入后,第一次i为0,然后进入调整部分,我们发现该for循环没有调整部分,就会直接进入判断部分,这里有一个逻辑或运算符,如果前项为真,后项就不再计算,如果前项为假就计算后项,结果就为整个表达式的结果。我们发现i为0时为假,执行i++,i变为1为整个表达式的结果,此时判断式就更改为1<5恒成立了,有些人就会问了那i++就不会执行了吗?确实是的,因为没有调整,只有判断式,而且判断式的结果已经定下。所以该循环会陷入死循环。

5.题5

集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。给定一个数组 nums 代表了集合 S 发生错误后的结果。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。

int* findErrorNums(int n, int* arr,int *returnnums)
{int* arr1 = arr;int* arr2 = arr+1;while (*arr2){if (*arr1 == *arr2){*arr2 += 1;break;}arr1++;arr2++;}for (int i = 0; i < 2; i++){returnnums[i] = *arr1;arr1++;}return returnnums;
}
#include<stdlib.h>
int main()
{int n = 0;scanf("%d", &n);int* arr = (int*)calloc(n + 1, sizeof(int));int* pu = (int*)malloc(2 * sizeof(int));for (int i = 0; i < n; i++){scanf("%d",&arr[i]);}int*ret=findErrorNums(n,arr,pu);for (int i = 0; i < 2; i++){printf("%d ", ret[i]);}return 0;
}

大家可以多动手试试,我这个代码其实不太好,因为我设计的时候没有将输入放在函数中,而是将其放在main函数中。所以期待大家的改进。

 

谢谢

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

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

相关文章

【Java程序员面试专栏 数据结构】三 高频面试算法题:栈和队列

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,因为栈和队列这两哥们结构特性比较向对应,所以放到一篇Blog中集中练习 题目题干直接给出对应博客链接,这里只给出简单思路、代码实现、复杂度分析 题目关键字…

Linux篇:进程

一. 前置知识 1.1冯诺依曼体系结构 我们常见的计算机&#xff0c;如笔记本。我们不常见的计算机&#xff0c;如服务器&#xff0c;大部分都遵守冯诺依曼体系 为什么计算机要采用冯诺依曼体系呢&#xff1f; 在计算机出现之前有很多人都提出过计算机体系结构&#xff0c;但最…

上门服务小程序系统|多元化服务和高效便捷的服务体验

现代社会的快节奏生活让人们越来越追求便捷与效率&#xff0c;而上门服务系统应运而生&#xff0c;成为了现代人生活中的新选择。通过在家就能享受各种服务&#xff0c;不仅省时省力&#xff0c;还能提供个性化的服务体验。 上门服务系统的出现&#xff0c;使得各类家政、维修…

每日OJ题_二叉树dfs⑤_力扣230. 二叉搜索树中第K小的元素

目录 力扣230. 二叉搜索树中第K小的元素 解析代码 力扣230. 二叉搜索树中第K小的元素 230. 二叉搜索树中第K小的元素 难度 中等 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 个最小元素&#xff08;从 1 开始计数…

选择适合你的编程语言

引言 在当今瞬息万变的技术领域中&#xff0c;选择一门合适的编程语言对于个人职业发展和技术成长至关重要。每种语言都拥有独特的设计哲学、应用场景和市场需求&#xff0c;因此&#xff0c;在决定投入时间和精力去学习哪种编程语言时&#xff0c;我们需要综合分析多个因素&a…

JavaScript中手动实现Array.prototype.map方法

在前端开发中&#xff0c;我们经常需要对数组进行操作和处理。在JavaScript中&#xff0c;数组是常用的数据类型之一。而数组的map方法可以将一个数组中的每个元素都进行某种操作&#xff0c;并返回一个新的数组。今天&#xff0c;我们就来手动实现JavaScript中数组原型的map方…

stm32——hal库学习笔记(SPI)

一、SPI介绍&#xff08;了解&#xff09; 二、SPI结构框图介绍&#xff08;熟悉&#xff09; 三、SPI工作模式介绍&#xff08;熟悉&#xff09; 四、SPI相关寄存器介绍&#xff08;熟悉&#xff09; 五、SPI相关HAL库驱动介绍&#xff08;掌握&#xff09; 六、NOR FLASH介绍…

linux 防火墙

防火墙分类 按保护范围划分 主机防火墙&#xff1a;服务服务为当前一台主机 网络防火墙&#xff1a;服务服务为防火墙一侧的局域网 按实现方式分类划分 硬件防火墙&#xff1a;在专用硬件级别实现部分功能的防火墙&#xff1b;另一部分基于软件的实现 如&#xff1a;华为&#…

5分钟JavaScript快速入门

目录 一.JavaScript基础语法 二.JavaScript的引入方式 三.JavaScript中的数组 四.BOM对象集合 五.DOM对象集合 六.事件监听 使用addEventListener()方法添加事件监听器 使用onX属性直接指定事件处理函数 使用removeEventListener()方法移除事件监听器 一.JavaScript基础…

[python]python监听、操作键盘鼠标库pynput详细教程

1.【pynput简介】pynput简介&#xff0c;官方是这样介绍自己的&#xff1a; pynput这个库&#xff0c;允许你控制、监听输入设备。例如监听鼠标、键盘的各种操作。 This library allows you to control and monitor input devices.It contains subpackages for each type of …

spring框架介绍

spring 1.优点 1&#xff09;针对接口编程&#xff0c;解耦合 2&#xff09;aop&#xff1a;变向切面编程&#xff0c;动态增加功能 3&#xff09;方便集成框架&#xff0c;mybatis,hibernate,strust等 4&#xff09;降低j2ee接口的使用难度 2.spring是干什么的 管理bean及bean…

IT廉连看——C语言——循环语句

IT廉连看——C语言——循环语句 循环语句分为三种&#xff1a; while for do while 一、while循环 我们已经掌握了&#xff0c;if语句&#xff1a; if(条件)语句; 当条件满足的情况下&#xff0c;if语句后的语句执行&#xff0c;否则不执行。 但是这个语句只会执行一次…

Spring篇----第四篇

系列文章目录 文章目录 系列文章目录前言一、区分构造函数注入和 setter 注入二、spring 中有多少种 IOC 容器?三、区分 BeanFactory 和 ApplicationContext。四、列举 IoC 的一些好处。前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大…

Web基础02 -CSS+CSS3

目录 一、CSS 1.CSS盒模型 2.元素宽度计算 3.元素高度计算 4.宽度和高度的度量单位 5.设置元素的极限宽高 6.CSS属性&#xff08;第二部分&#xff09; &#xff08;1&#xff09;纯色背景 &#xff08;2&#xff09;图片背景 &#xff08;3&#xff09;列表样式 &am…

互联网加竞赛 大数据房价预测分析与可视

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 大数据房价预测分析与可视 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 该项目较为新颖&#xff0c;适合…

回归预测 | Matlab实现SSA-BiLSTM-Attention麻雀算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测

回归预测 | Matlab实现SSA-BiLSTM-Attention麻雀算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测 目录 回归预测 | Matlab实现SSA-BiLSTM-Attention麻雀算法优化双向长短期记忆神经网络融合注意力机制多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基…

精通Django模板(模板语法、继承、融合与Jinja2语法的应用指南)

模板&#xff1a; 基础知识&#xff1a; ​ 在Django框架中&#xff0c;模板是可以帮助开发者快速⽣成呈现给⽤户⻚⾯的⼯具模板的设计⽅式实现了我们MVT中VT的解耦(M: Model, V:View, T:Template)&#xff0c;VT有着N:M的关系&#xff0c;⼀个V可以调⽤任意T&#xff0c;⼀个…

【MySQL】数据类型(常见类型)-- 详解

一、数据类型分类 二、数值类型 1、tinyint 类型 在 MySQL 中&#xff0c;整型可以指定是有符号的和无符号的&#xff0c;默认是有符号的。 有符号&#xff1a; 插入数据越界测试&#xff1a; 在 MySQL 表中建立属性列时&#xff0c;我们可以发现列名称在前&#xff0c;类型在…

【Unity自制手册】Unity—Camera相机跟随的方法大全

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…

springboot网站开发02-接入持久层框架mybatisPlus

springboot网站开发02-接入持久层框架mybatisPlus&#xff01;经过上一小节内容分享&#xff0c;我们的项目嵌套模式框架搭建好了&#xff0c;下面就是开始编辑具体的业务代码了&#xff0c;我们使用到了持久层框架是mybatisPlus插件。下面是一些具体的植入框架的操作步骤。 第…
推荐文章