C语言笔试训练【第五天】

news2024/12/30 2:45:39

 

文章目录

1、如下程序的功能是( )

2、对于代码段,下面描述正确的是( )

3、以下程序运行时,若输入 1abcedf2df<回车> 输出结果是( )

4、下列条件语句中,功能与其他语句不同的是( )

5、我们知道C语言的 break 语句只能跳出离它最近的一层循环,可是有时候我们需要跳出多层循环,下列跳出多层循环的做法正确的是【多选】( )

6、数字在升序数组中出现的次数

7、整数转换


  大家好,我是纪宁。

  今天是C语言笔试训练的第五天,加油!

1、如下程序的功能是( )

#include <stdio.h>
int main()
{
  char ch[80] = "123abcdEFG*&";
  int j;
  puts(ch);
  for(j = 0; ch[j] != '\0'; j++)
    if(ch[j] >= 'A' && ch[j] <= 'Z')
      ch[j] = ch[j] + 'e' - 'E';
  puts(ch);
  return 0;
}

A: 测字符数组ch的长度

B: 将数字字符串ch转换成十进制数

C: 将字符数组ch中的小写字母转换成大写

D: 将字符数组ch中的大写字母转换成小写 

  在C语言中,字符可以直接使用 ASCII 码值来与数字进行运算,if 里面的条件是判断字符是否在A~E之间,如果符合的话,就让这个字符加'e'-'E'的差值,而这个差值就是小写字母与大写字母的差值,因此这段代码的功能是将大写字母转化为小写字母。所以这道题选 D

2、对于代码段,下面描述正确的是( )

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

A: 其中循环控制表达式与0等价      B: 其中循环控制表达式与'0'等价
C: 其中循环控制表达式是不合法的 D: 以上说法都不对

  这道题看似考察的是 while 的判断条件,实际上也考察了printf 函数的返回值(printf返回打印在屏幕上的字符的个数),因此这个printf函数返回1,1为真,进入循环。所以A B C说法都是不对的。这道题选 D

3、以下程序运行时,若输入 1abcedf2df<回车> 输出结果是( )

#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;
}

A: 1abcedf2df    B: 1ABCEDF2DF    C: 1AbCEdf2df    D: 1aBceDF2DF 

  这道题依然考察的是关于ASCII 码的知识,a的ASCII码是97,为奇数,不符合(-'a'+'A'变大写)的条件,一次类推,B符合,C不符合......所以这道题选 D

4、下列条件语句中,功能与其他语句不同的是( )

A: if(a) printf("%d\n",x); else printf("%d\n",y);

B: if(a==0) printf("%d\n",y); else printf("%d\n",x);

C: if (a!=0) printf("%d\n",x); else printf("%d\n",y);

D: if(a==0) printf("%d\n",x); else printf("%d\n",y);

  在条件判断的时候A和C一样,B和D一样,其中A和C都是在a!=0的条件下输出 x ,B则是在a==0的条件下输出 y,在a!=0的时候输出x,与A、C相同,而D确是在a==0的条件下输出x,显然与A B C不同,所以这道题选 D

5、我们知道C语言的 break 语句只能跳出离它最近的一层循环,可是有时候我们需要跳出多层循环,下列跳出多层循环的做法正确的是【多选】( )

A: 将程序写成函数用return结束函数,便可跳出循环

B: 修改外层循环条件例如

for (int i = 0; i < MAX1; i++)
	{
		for (int j = 0; j < MAX2; j++)
		{
			if (condition)
			{
				i = MAX1;
				break;
			}
		}
	}

C: 在外层循环设置判断条件例如


	for (; symbol != 1 && condition2; )
	{
		for (; symbol != 1 && condition3; )
		{
			if (condition1)
				symbol = 1;
		}
	}

D: 在外层循环后面加入break例如

for (; condition2; )
{
	for (; condition3; )
	{
		if (condition1)
			symbol = 1;
	}
	if (symbol == 1)
		break;
}

  此题旨在整理跳出多层循环的方法,每个选项都是正确的,代码为伪代码,condition代表逻辑表达式,所以这道题选 A B C D 

6、数字在升序数组中出现的次数

数字在升序数组中出现的次数

  给定一个长度为 n 的非降序数组和一个非负数整数 k ,要求统计 k 在数组中出现的次数。

  要求:空间复杂度:O(1),时间复杂度:O(logn)

题目来自 牛客网

int Find_Edges(int*nums,int len,double k)
{
    int left=0,right=len-1;
    while(left<=right)
    {
        int mid=(left+right)/2;
        if(nums[mid]<k)
            left=mid+1;
        else if(nums[mid]>k)
            right=mid-1;
    }
    return left;
}

int GetNumberOfK(int* nums, int numsLen, int k ) {
    return (Find_Edges(nums,numsLen,k+0.5)-Find_Edges(nums,numsLen,k-0.5));
}

  因为data是一个非降序数组,它是有序的,并且要求的时间复杂度是log(N),这种时候我们可能会想到用二分查找。但是一个数组可能有多个k,而且我们要查找的并非常规二分法中k出现的位置,而是k出现的左界和k出现的右界。要是能刚好找到恰好小于k的数字位置和恰好大于k的数字的位置就好了。

  再有因为数组中全是整数,因此我们可以考虑,用二分查找找到 k+0.5 应该出现的位置和k−0.5应该出现的位置的左边界,这两个的左边界相减就是 k 出现的范围。

  这里视频太大貌似放不上来,后面单独发一下找左边界的视频。

7、整数转换

整数转换

  整数转换。编写一个函数,确定需要改变几个二进制位才能将整数A转成整数B

题目来自:leetcode

  需要改变几个二进制位,即找出两个数的二进制位中有几个不同。

int convertInteger(int A, int B){
    int count=0,bit=32;
    while(bit--)
    {
        if((A&1)!=(B&1))//运算符优先级
            count++;
        A>>=1;
        B>>=1;
    }
    return count;
}

  这道题考察的是按位与操作符和位操作符。只需要得出两个数的二进制位的每一位再进行比较看是否相等即可。

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

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

相关文章

成功解决Android设备adb连接后显示device unauthorized

一、提出问题 在电脑通过USB连接新的Android设备&#xff0c;想要通过adb来进行一些操作时&#xff0c;却发现命令提示符上在输入下面命令后显示设备未授权的信息也就是"unauthorized" adb devices二、不可行的解决方案 有人提出的解决方案是打开Android设备的开发…

西瓜书读书笔记整理(五)—— 第四章 决策树

第四章 决策树 4.1 基本流程4.1.1 什么是决策树算法4.1.2 决策树学习的目的4.1.3 决策树学习基本过程4.1.4 决策树学习基本算法4.1.5 递归结束的三种情况 4.2 划分选择4.2.1 信息增益&#xff08;information gain&#xff09;—— ID3 决策树学习算法属性划分准则4.2.2 信息增…

在工作中使用ChatGPT需要担心泄密问题吗?

​OpenAI的ChatGPT可以通过自动简化繁琐的任务&#xff0c;针对挑战性问题的提供创造性的解决方案来提高员工的生产力。但随着这项技术被整合到人力资源平台和其他工作场所中&#xff0c;它给各个企业带来了巨大的挑战。苹果、Spotify、Verizon和三星等大公司已禁止或限制员工在…

【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解

系列文章传送门&#xff1a; 【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 PS&#xff1a;本要求基于…

问道管理:布林线选股绝招?

布林线是一种由布林格尔夫提出的股票技术目标&#xff0c;常用于剖析股票价格动摇的趋势和动摇幅度。许多股票投资者和剖析师都广泛使用布林线来找到或许获利的股票。在本文中&#xff0c;我们将从多个角度剖析布林线选股的绝技。 首要&#xff0c;了解布林线是什么。布林线由中…

objectMapper.getTypeFactory().constructParametricType 方法的作用和使用

在使用 Jackson 库进行 JSON 数据的序列化和反序列化时&#xff0c;经常会使用到 ObjectMapper 类。其中&#xff0c;objectMapper.getTypeFactory().constructParametricType 方法用于构造泛型类型。 具体作用和使用如下&#xff1a; 作用&#xff1a; 构造泛型类型&#x…

PDF文件太大怎么办?快来试试这个方法

在办公中&#xff0c;我们常常面临着发送文件时遇到的各种难题&#xff0c;例如文件格式不支持、文件太大无法发送、发送速度过慢等&#xff0c;这些问题严重影响了我们的办公效率。但是这些难题并非没有解决办法&#xff0c;比如当我们遇到PDF文件太大的情况时&#xff0c;我们…

2023世界机器人大会新闻发布会召开,我国机器人产业持续释放活力

原创 | 文 BFT机器人 01 高端机器人市场被国外厂商长期占据&#xff0c;中国的国产替代和创新迫在眉睫。 8月2日在北京召开了2023年世界机器人大会新闻发布会。2023年世界机器人大会将于8月16日至22日在北京举行&#xff0c;大会也将围绕机器人场景应用和产业链协同&#xff0…

在Ruoyi中采用Ajax动态生成Echarts图表实践

前言 在之前博文中&#xff0c;我们讲解了如何使用java在后台进行Echarts的图表生成组件&#xff0c;博文如下&#xff1a; 序号 博客连接1一款基于JAVA开发的Echarts后台生成框架2Ruoyi单体项目与Echarts4.2.1地图集成时的思路及解决办法3解决Ruoyi单体版本集成Echarts多图表时…

OpenSource - 分布式重试平台

文章目录 概述重试方案对比设计思想流量管理平台预览场景应用强通知场景发送MQ场景回调场景异步场景 概述 在当前广泛流行的分布式系统中&#xff0c;确保系统数据的一致性和正确性是一项重大挑战。为了解决分布式事务问题&#xff0c;涌现了许多理论和业务实践&#xff0c;其…

Idea全局搜索(ctrl+shift+F),搜索不全问题

今天idea突然出现&#xff0c;全局搜索&#xff0c;命名html文件中有这个字符&#xff0c;但是全局搜索居然匹配内容是空。。。。而且全局搜索界面也设置好了 经查发现是缓存问题&#xff0c;于是&#xff1a; 清空缓存后发现全局搜索功能可正常使用...

9.1网络通信基础

一.基础概念: 1)IP地址:描述网络上的一个设备所在的位置. 2)端口号(port):区分一个主机上不同的进程,和pid一样的作用,但两者不同. 3)协议:网络通信传输数据的含义,协议表示一种约定,这种约定可以是任意的.协议分层之后,上层不需要知道下层协议的细节,可以灵活地调整,替换某…

数字电路基础(MOS管)

1.PMOS和NMOS MOS晶体管的物理结构如下&#xff0c;由衬底和注入粒子的材质不同分为PMOS和NMOS。 2.CMOS CMOS由PMOS和NMOS组成&#xff0c;是一个反相器&#xff0c;其电路图如下所示。当In为1时&#xff0c;PMOS断开&#xff0c;NMOS导通&#xff0c;Out输出为0&#xff1b;…

探索ES高可用:滴滴自研跨数据中心复制技术详解

Elasticsearch 是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎&#xff0c;其每个字段均可被索引&#xff0c;且能够横向扩展至数以百计的服务器存储以及处理TB级的数据&#xff0c;其可以在极短的时间内存储、搜索和分析大量的数据。 滴滴ES发展至今&#xf…

Python实战之使用Python进行数据挖掘详解

一、Python数据挖掘 1.1 数据挖掘是什么&#xff1f; 数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中&#xff0c;通过算法&#xff0c;找出其中的规律、知识、信息的过程。Python作为一门广泛应用的编程语言&#xff0c;拥有丰富的数据挖掘库&#…

Java课题笔记~ AOP 概述

AOP 简介 AOP&#xff08;Aspect Orient Programming&#xff09;面向切面编程。 面向切面编程是从动态角度考虑程序运行过程。 AOP的底层&#xff0c;就是采用动态代理的方式实现的。 采用了两种代理&#xff1a;JDK动态代理、CGLIB动态代理。 JDK动态代理&#xff1a;使…

ElasticSearch 7.4学习记录(基础概念和基础操作)

若你之前从未了解过ES&#xff0c;本文将由浅入深的一步步带你理解ES&#xff0c;简单使用ES。作者本人就是此状态&#xff0c;通过学习和梳理&#xff0c;产出本文&#xff0c;已对ES有个全面的了解和想法&#xff0c;不仅将知识点梳理&#xff0c;也涉及到自己的理解&#xf…

聊聊springcloud如何与k8s configMap整合实现配置动态刷新

前言 配置中心在微服务的服务治理场景基本上是属于标配&#xff0c;常见可以用来做配置中心有nacos、apollo、zookeeper、springcloud config、consul、etcd、redis、disconf、dimond、xxl-conf等。这些组件的特点都是需要安装&#xff0c;如果大家的部署环境中有用到k8s&…

创意项目管理软件推荐:满足客户需求的完美解决方案

发现功能强大的工作管理软件&#xff0c;让创意大放异彩。将您团队的愿景变成引人注目的项目。 一、交付总是令人印象深刻的工作 Zoho Projects的创意项目管理软件可帮助您和您的团队在一个地方监督多个项目。使用我们的内置管理工具和模板&#xff0c;花更少的时间在管理上&a…