【C/C++笔试练习】——printf在使用%的注意事项、for循环语句的三个条件、运算符优先级、删除公共字符

文章目录

  • C/C++笔试练习
    • 1.%符号在printf用作格式说明符的注意事项
      • (1)输出%5.3s
      • (2)判断%中小数点含义
    • 2.for循环语句的三个条件
      • (3)判断循环次数
      • (4)判断循环次数
    • 3.运算符优先级
      • (5)判断运算符优先级
      • (6)判断优先级再计算大小
    • 4.编程题
      • (7)删除公共字符

C/C++笔试练习

1.%符号在printf用作格式说明符的注意事项

(1)输出%5.3s

  以下程序的运行结果是()

#include <stdio.h>int main(void) 
{printf("%s , %5.3s\n", "computer", "computer");return 0;
}

  A computer , puter      B computer ,  com
  C computer , computer    D computer , compu.ter

  

   %m.ns:

  m:输出字符串的宽度

  n:左起截取目标字符串n个字符,并且是右对齐,如果实际字符串长度不足3,则会在右侧用空格填充。

   所以%5.3s在C语言中表示一个字符串宽度为5,其中包括3个字符和2个空格。如果实际字符串长度不足3,则会在右侧用空格填充。

   答案选:B

在这里插入图片描述

                   

(2)判断%中小数点含义

  使用printf函数打印一个double类型的数据,要求:输出为10进制,输出左对齐30个字符,4位精度。以下哪个选项是正确的?

  A %-30.4e      B %4.30e
  C %-30.4f      D %-4.30f

   %-30.4f 中的 %-30 表示左对齐且总宽度为30个字符。

   .4 表示小数点后有4位。

   f 表示浮点数,即 double 类型。

   答案选:C

                   

   在C语言中,%符号用于格式说明符,用于指定输入或输出的数据类型和格式。

   . 表示精度,指定了小数点后的位数或字符串中的最大字符数。

   例如:

   %5.3s表示一个字符串宽度为5,其中包括3个字符和2个空格。如果实际字符串长度不足3,则会在右侧用空格填充。

   %5.3f表示一个浮点数宽度为5,其中包括3位小数和2位整数。如果实际数字不足5位,则会在左侧用空格填充。

   需要注意的是,在%d、%c等格式说明符中,.并没有实际意义,因为这些格式说明符不支持小数点后的精度。
  

   以下是C语言中常见的%打印格式及其含义:

%打印格式含义
%d:打印十进制整数。
%f:打印浮点数。
%c:打印字符。
%s:打印字符串。
%u:打印无符号十进制整数。
%x:打印十六进制整数。
%o:打印八进制整数。
%e:打印科学计数法表示的浮点数。
%g:自动选择%f或%e输出。
%p:打印指针地址。
%%:打印一个%符号。

  

   这些格式说明符可以与一些标志字符一起使用,以控制输出格式,如:

标志字符输出格式
-:左对齐输出。
+:在正数前加正号。
空格:在正数前加空格。
#:对于%o,输出前导零;对于%x和%X,输出前导0x或0X。
0:用0填充输出的数字。

                 

2.for循环语句的三个条件

在这里插入图片描述

(3)判断循环次数

   以下for循环的执行次数是()

for(int x = 0, y = 0; (y = 123) && (x < 4); x++);

   A 是无限循环     B 循环次数不定
   C 4次          D 3次

   在循环开始前,x和y都被初始化为0。然后,循环条件为 (y = 123) && (x < 4)。首先,y = 123是一个赋值操作,它将y的值设置为123,然后返回123。因此,循环条件中的y = 123始终为真。

   其次,x < 4 是一个比较操作,它检查x的值是否小于4。在每次循环迭代后,x的值增加1(因为在for循环的第三个部分中没有对x进行修改)。因此,循环将执行4次,直到x的值达到4,此时循环条件不再为真,循环终止。

   答案选:C
  

(4)判断循环次数

   下列main()函数执行后的结果为()

int func()
{int i, j, k = 0;for(i = 0, j = -1;j = 0;i++, j++){k++;}return k;
}int main()
{cout << (func());return 0;
}

   A -1       B 0
   C 1       D 2

  同理这段代码中的函数 func 包含一个 for 循环,该循环的初始条件是 j = -1,并且在每次迭代中 j 的值都会增加 1。循环的终止条件是 j = 0,这意味着当 j 的值变为 0 时,循环将停止。

  然而 j 的值在开始就赋值为了 -1 ,在条件判断中 j =0 为假,所以根本不会进入到这个循环中,直接跳出,k=0。

   答案选:B

                 

3.运算符优先级

(5)判断运算符优先级

   若有定义语句:int year=1009,*p=&year;以下不能使变量 year 中的值增至 1010 的语句是()

   A *p+=1;       B (*p)++;
   C ++(*p)       D *p++

  

   A、*p+=1; 等价于 *(p+1),先解引用得到year的值,然后增加1,再赋值给year,year的值变为1010,可以;

   B、(*p)++; 等价于 *(p+1),先解引用得到year的值,然后增加1,再赋值给year,year的值变为1010,可以;

   C、++(*p) 等价于 ++(year),先解引用得到year的值,然后增加1,再赋值给year,year的值变为1010,可以;

   D、*p++ 等价于 *p再对p++,先解引用得到year的值,然后p指针向后移动一位,year不变,所以D不可以。

   答案选:D
  
在这里插入图片描述
  
在这里插入图片描述
              

(6)判断优先级再计算大小

  32位系统中,定义**a[3][4],则变量占用内存空间为()。

  A 4      B 48
  C 192     D 12

  因为 [ ] 的优先级高于 * ,所以a先和 [ ] 结合,所以a是数组;

  在32位系统中,指针大小是4,此时a是一个二维数组a[3][4],每个数组元素是一个**类型变量,每个元素是一个二级指针,占用4个字节。整个数组a包含3行4列,共12个元素,所以整个数组占用的内存空间为12*4=48个字节。

   答案选:B

              

4.编程题

(7)删除公共字符

删除公共字符

   暴力解法

   本题可以使用传统的暴力查找方式,判断第一个串的字符是否在第二个串中,在再挪动字符删除这个字符的方式,时间复杂度为O(N^2),效率比较低。

#include <iostream>
#include <string>
using namespace std;int main() {string str1;string str2;getline(cin,str1);//使用getline可以输入空格getline(cin,str2);for(int i=0;i<str1.size();i++)//暴力查找{for(int j=0;j<str2.size();j++)//有一样的数字就删除{if(str1[i]==str2[j]){str1.erase(i,1);}}}cout<<str1;return 0;
}

  
   哈希表

   1.将第二个字符串的字符都映射到一个hashtable数组中,用来判断一个字符在这个字符串。

  2.判断一个字符在第二个字符串,不要使用删除,这样效率太低,因为每次删除都伴随数据挪动。这里可以考虑使用将不在字符添加到一个新字符串,最后返回新新字符串。

#include<iostream>
#include<string>
using namespace std;int main() {//IO输入字符串最好使用getline。string str1, str2;getline(cin, str1);getline(cin, str2);//使用哈希映射思想先str2统计字符出现的次数int hashtable[256] = {0};for (size_t i = 0; i < str2.size(); ++i) {hashtable[str2[i]]++;}//遍历str1,str1[i]映射hashtable对应位置为0,则表示这个字符在//str2中没有出现过,则将他+=到ret。注意这里最好不要str1.erases(i)//因为边遍历,边erase,容易出错。string ret;for (size_t i = 0; i < str1.size(); ++i) {if (hashtable[str1[i]] == 0)ret += str1[i];}cout << ret << endl;return 0;
}

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

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

相关文章

计算机专业毕业设计项目推荐08-英语在线点读平台(SpringBoot+Vue+MongoDB)

英语在线点读平台&#xff08;SpringBootVueMongoDB&#xff09; **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设…

【Linux】【网络】传输层协议:UDP

文章目录 UDP 协议1. 面向数据报2. UDP 协议端格式3. UDP 的封装和解包4. UDP 的缓冲区 UDP 协议 UDP传输的过程类似于寄信。 无连接&#xff1a;知道对端的IP和端口号就直接进行传输&#xff0c;不需要建立连接。不可靠&#xff1a;没有确认机制&#xff0c;没有重传机制&am…

钉钉h5微应用调试 整理

钉钉 H5微应用整理 1.申请H5微应用2.登录3.调试 1.申请H5微应用 https://open.dingtalk.com/ 登录钉钉开发平台。 应用appId、CorpId都可以在网站上自行查找 应用首页地址&#xff08;指手机端显示地址&#xff09; pc端首页地址&#xff08;指电脑端显示地址&#xff09; 我这…

工业交换机常见的故障有哪些?

通常情况下&#xff0c;工业交换机出现故障可以分为两类&#xff1a;软件性能故障和硬件物理故障。软性能故障通常指工业交换机在研发设计阶段出现的问题。 物理层故障主要指交换机本身的硬件故障以及连接交换机的物理线路故障。安防专用工业交换机的交换是根据通信双方传输信…

基于遗传算法解决的多仓库多旅行推销员问题(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

NSS [HXPCTF 2021]includer‘s revenge

NSS [HXPCTF 2021]includer’s revenge 题目描述&#xff1a;Just sitting here and waiting for PHP 8.1 (lolphp). 题目源码&#xff1a;&#xff08;index.php&#xff09; <?php ($_GET[action] ?? read ) read ? readfile($_GET[file] ?? index.php) : inclu…

【TCP】三次握手 与 四次挥手 详解

三次握手 与 四次挥手 1. 三次握手2. 四次挥手三次握手和四次挥手的区别 在正常情况下&#xff0c;TCP 要经过三次握手建立连接&#xff0c;四次挥手断开连接 1. 三次握手 服务端状态转化&#xff1a; [CLOSED -> LISTEN] 服务器端调用 listen 后进入 LISTEN 状态&#xff…

基于Xilinx UltraScale+ MPSOC(ZU9EG/ZU15EG)的高性能PCIe数据预处理平台

PCIE707是一款基于PCIE总线架构的高性能数据预处理FMC载板&#xff0c;板卡具有1个FMC&#xff08;HPC&#xff09;接口&#xff0c;1路PCIe x4主机接口、1个RJ45千兆以太网口、2个QSFP 40G光纤接口。板卡采用Xilinx的高性能UltraScale MPSOC系列FPGA作为实时处理器&#xff0c…

工具篇 | WSL使用入门教程以及基于WSL和natApp内网穿透实践 - 对比VMWare

介绍 在开发工具中&#xff0c;Windows Subsystem for Linux (WSL) 和 VMWare 它们都可以实现了在 Windows 上运行 Linux系统。 文章概览 WSL Vs VMWare 我们将简单比对 WSL 和 VMWare&#xff0c;在性能、资源消耗等方面的差异&#xff0c;以协助您做出更加明确的选择。 …

ATA-8000系列射频功率放大器——应用场景介绍

ATA-8000系列是一款射频功率放大器。其P1dB输出功率500W&#xff0c;饱和输出功率最大1000W。增益数控可调&#xff0c;一键保存设置&#xff0c;提供了方便简洁的操作选择&#xff0c;可与主流的信号发生器配套使用&#xff0c;实现射频信号的放大。 图&#xff1a;ATA-8000系…

Android 编译插桩操纵字节码

本文讲解如何编译插桩操纵字节码。 就使用 ASM 来实现简单的编译插桩效果&#xff0c;通过插桩实现在每一个 Activity 打开时输出相应的 log 日志。实现思路 过程主要包含两步&#xff1a; 1、遍历项目中所有的 .class 文件​ 如何找到项目中编译生成的所有 .class 文件&#…

基于C#的AE二次开发之IQueryFilter接口、ISpatialFilter接口、IQueryDef 接口的查询接口的介绍

一、开发环境 开发环境为ArcGIS Engine 10.2与Visual studio2010。在使用ArcEngine查询进行查询的时候主要使用三种查询接口IQueryFilter&#xff08;属性查询&#xff09; 、ISpatialFilter&#xff08;空间查询&#xff09; 、IQueryDef &#xff08;多表查询&#xff09; 那…

leetcode 133. 克隆图

leetcode 133. 克隆图 给你无向 连通 图中一个节点的引用&#xff0c;请你返回该图的 深拷贝&#xff08;克隆&#xff09;。 图中的每个节点都包含它的值 val&#xff08;int&#xff09; 和其邻居的列表&#xff08;list[Node]&#xff09;。 class Node { public int val;…

PHP自动识别采集何意网址文章正文内容

在做PHP采集内容时&#xff0c;用过querylist采集组件&#xff0c;但是这个插件采集页面内容时&#xff0c;都必须要写个采集选择器。这样比较麻烦&#xff0c;每个文章页面都必须指定一条采集规则 。就开始着手找一个插件可以能自动识别任意文章url正文内容并采集的&#xff0…

小黑下班品尝网红团结湖四川麻辣烫,吃的特别撑,支付宝抽到3元红包,耳机找到,开始接触强化学习的leetcode之旅:LCR 188. 买卖芯片的最佳时机

小黑代码 class Solution:def bestTiming(self, prices: List[int]) -> int:# 数组长度n len(prices)if n < 2:return 0# 结果变量profit 0# 记录第i天之前的股票价格最小值min_ prices[0]for i in range(1, n):if prices[i]-min_ > profit:profit prices[i]-min…

简易磁盘自动监控服务

本文旨在利用crontab定时任务(脚本请参考附件)来监控单个服务节点上所有磁盘使用情况&#xff0c;一旦超过既定阈值则会通过邮件形式告警相关利益人及时介入处理。 1. 开启SMTP服务 为了能够成功接收告警信息&#xff0c;需要邮件接收客户都安开启SMTP服务。简要流程请参考下…

Fortinet 2023上半年全球威胁态势研究报告:勒索软件检测成下降趋势,针对性攻击持续升温

近日&#xff0c;专注于推动网络与安全融合的全球网络安全领导者Fortinet&#xff08;NASDAQ&#xff1a;FTNT&#xff09;&#xff0c;发布《2023上半年全球威胁态势研究报告》。报告显示&#xff0c;2023 年上半年勒索软件检出数量继续下降、高级持续性威胁&#xff08;APT&a…

深度学习|如何确定 CUDA+PyTorch 版本

对于深度学习初学者来说&#xff0c;配置深度学习的环境可能是一大难题&#xff0c;因此本文主要讲解CUDA; cuDNN; Pytorch 三者是什么&#xff0c;以及他们之间的依赖关系。 CUDA CUDA&#xff08;Compute Unified Device Architecture&#xff09;是由NVIDIA开发的用于并行计…

秋招在线人才测评考什么内容?

又是一年招聘季&#xff0c;各大高校都会组织校园招聘&#xff0c;这次我们就来了解一下秋季校园招聘究竟考什么。近些年来校园秋招已经广泛采用在线测评&#xff0c;尤其各行业龙头大厂们&#xff0c;网申、在线测评、小组无领导讨论&#xff0c;一面二面......各类纷杂的面试…

某瑞集团安全技术研发岗位面试

本文由掌控安全学院 - sbhglqy 投稿 一、自我介绍 阿吧阿吧&#xff0c;不多说 二、就ctf比赛经历方面提些问题 面试官&#xff1a;ctf打了多久了 我&#xff1a;两三年了。 面试官&#xff1a;得过什么奖项没有 我&#xff1a;本科的时候得过一个校一等奖。 面试官&#x…