c语言经典测试题5

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://xiahunao.cn/news/2805562.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

笔记本Win 10系统查看电池健康状况

博主最近换了个笔记本电池&#xff0c;之前的电池容量明显变小了很多&#xff0c;而且出现了轻微鼓包的情况。所以用gpt问了一下怎么用系统的方法查看电池情况。 在Windows 10系统中&#xff0c;您可以通过以下步骤来查看笔记本电脑电池的健康状况&#xff1a; 打开命令提示符&…

ARM服务器部署Kafka集群

安装前必备的条件是: (1)安装jdk(提供环境); (2)安装zookeeper(注册kafka信息); 需要这方面信息的可以查看我之前写的文档; 一.下载安装包 Kafka官网下载地址 Apache Kafka 根据自己需要下载相应的版本 目前最新的版本是3.6.1。 二.解压安装包 服务器上传下载好的kafk…

VSCODE include错误 找不到 stdio.h

解决办法&#xff1a; Ctrl Shift P 打开命令面板&#xff0c; 键入 “Select Intellisense Configuration”&#xff08;下图是因为我在写文章之前已经用过这个命令&#xff0c;所以这个历史记录出现在了第一行&#xff09; 再选择“Use gcc.exe ”&#xff08;后面的Foun…

智慧公厕与智慧驿站:城市未来公共厕所的革命性升级

在当今社会&#xff0c;智慧公厕已经成为城市建设中一个备受关注的话题。智慧公厕究竟是什么&#xff1f;它代表了未来式的公共厕所&#xff0c;在使用方式、服务方式、管理方式、协作方式上均是变革式的升级。随着科技的进步和城市化的发展&#xff0c;智慧公厕的未来发展趋势…

悄悄话花费的时间(C语言)【二叉树各结点统计求和】

题目描述 给定一个二叉树&#xff0c;每个节点上站着一个人&#xff0c;节点数字表示父节点到该节点传递悄悄话需要花费的时间。 初始时&#xff0c;根节点所在位置的人有一个悄悄话想要传递给其他人&#xff0c;求二叉树所有节点上的人都接收到悄悄话花费的时间。 输入描述 …

LeetCode刷题----day6(1)

转载自该文章https://programmercarl.com/%E9%93%BE%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 链表基础 什么是链表 链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个…

挑战杯 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度&#xff0c;召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

基于大数据的智能家居销量数据分析

文章目录 项目介绍主要功能截图&#xff1a;部分代码展示设计总结项目获取方式 &#x1f345; 作者主页&#xff1a;超级无敌暴龙战士塔塔开 &#x1f345; 简介&#xff1a;Java领域优质创作者&#x1f3c6;、 简历模板、学习资料、面试题库【关注我&#xff0c;都给你】 &…

vue : 无法加载文件 C:\Program Files\nodejs\node_global\vue.ps1,因为在此系统上禁止运行脚本。

解决方法&#xff1a; 打开PowerShell&#xff0c;在命令框输入set-ExecutionPolicy RemoteSigned 在PowerShell中输入会出现如下图&#xff0c;输入y即可。

数据结构链表力扣例题AC(3)——代码以及思路记录

160. 相交链表 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 AC写法一 struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {//思…

Nginx跳转模块之rewrite

一.location与rewrite模块的区别 rewrite&#xff1a;对访问的域名或者域名内的URL路径地址重写 location&#xff1a;对访问的路径做访问控制或者代理转发 二.rewrite模块基本内容 1.功能 通过正则表达式的匹配来改变URI&#xff0c;可以同时存在一个或多个指令&#xff0c…

echarts:显示图例(销量1、销量2)

1、代码 <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>Insert title here</title> </head> <body> <div id"main" style"width: 600px;height:400px;"></div> &l…

了解网络延迟-MDN文档学习笔记

了解延迟 查看更多学习笔记&#xff1a;GitHub&#xff1a;LoveEmiliaForever MDN中文官网 CDN CDN (内容分发网络) 指的是一组分布在各个地区的服务器 这些服务器存储着数据的副本&#xff0c;因此服务器可以根据哪些服务器与用户距离最近&#xff0c;来满足数据的请求 CD…

kubernetes的网络flannel与caclio

flannel网络 跨主机通信的一个解决方案是Flannel&#xff0c;由CoreOS推出&#xff0c;支持3种实现&#xff1a;UDP、VXLAN、host-gw udp模式&#xff1a;使用设备flannel.0进行封包解包&#xff0c;不是内核原生支持&#xff0c;上下文切换较大&#xff0c;性能非常差 vxlan模…

NestJS入门7:增加异常过滤器

前文参考&#xff1a; NestJS入门1 NestJS入门2&#xff1a;创建模块 NestJS入门3&#xff1a;不同请求方式前后端写法 NestJS入门4&#xff1a;MySQL typeorm 增删改查 NestJS入门5&#xff1a;加入Swagger NestJS入门6&#xff1a;日志中间件 本文代码基于上一篇文章《…

C语言实现直接插入排序

直接插入排序 其平均复杂度是 O(n2)&#xff0c;因此应用场景较少。 接插入排序的思路是&#xff1a; 每次处理一个数据&#xff0c;将其插入到一个已经排好序的子序列中&#xff0c;直到数据处理完毕。 下面给出一个动画示例&#xff1a; 这里写图片描述&#xff1a;从上面来…

Python 实现 ATR 指标计算(真实波幅):股票技术分析的利器系列(10)

Python 实现 ATR 指标计算&#xff08;真实波幅&#xff09;&#xff1a;股票技术分析的利器系列&#xff08;10&#xff09; 介绍算法解释 代码rolling函数介绍核心代码 完整代码 介绍 ATR&#xff08;真实波幅&#xff09;是一种技术指标&#xff0c;用于衡量市场波动性的程…

Windows+Yolo3-darknet训练自己数据集并测试

WindowsYolo3-darknet训练自己的数据集并测试 一、首要条件 Windows 7下配置好VS2015OPENCV3.4.2YOLO3CUDA10.0CUDNN7.5生成darknet.exe。具体配置可参考我的博客&#xff1a;https://blog.csdn.net/wszswllnzn_/article/details/100760477 二.制作数据集 1、方法1 使用软件la…

ELK介绍以及搭建

基础环境 hostnamectl set-hostname els01 hostnamectl set-hostname els02 hostnamectl set-hostname els03 hostnamectl set-hostname kbased -i s/SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config systemctl stop firewalld & systemctl disable firewalld# 安…

家政小程序开发,引领家庭服务新时代的科技革命

随着科技的飞速发展&#xff0c;人们的生活方式正在发生深刻的变化。其中&#xff0c;家政服务作为日常生活的重要组成部分&#xff0c;也在经历着一场由小程序技术引领的科技革命。本文将探讨家政小程序的发展趋势、功能特点以及对家庭服务的深远影响。 一、家政小程序的发展…