【基础强训】day1

news2024/11/27 16:25:44

一、选择题:

1.

以下for循环的执行次数是()
for(int x = 0, y = 0; (y = 123) && (x < 4); x++);
A 是无限循环
B 循环次数不定
C 4次
D 3次

C

y=123为真,所以就循环四次。

2.

以下程序的运行结果是()
#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

B

%s:遇到\0就停止打印,而且常量字符串末尾是\0。

%m.ns:

m:输出字符串的宽度;       n:左起截取n个字符,并且是右对齐,补空格。

%5.3s:

输出字符串的长度是5,左起截取3个字符,并且右对齐,但是还差两个字符,所以要在左边补两个空格。

3.

下列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

B

初始化部分i=0,j=-1;条件判断部分j=0为假,不进入循环,所以k=0

 4.

#include <stdio.h>
int main()
{
    int a=1,b=2,c=3,d=0;
    if(a == 1 && b++==2)
    if(b!=2||c--!=3)
        printf("%d,%d,%d\n" ,a,b,c);
    else
        printf("%d,%d,%d\n" ,a,b,c);
    else
        printf("%d,%d,%d\n" ,a,b,c);
    return 0;
}
下面程序输出是什么
A 1,2,3   B 1,3,2
C 3,2,1   D 1,3,3

D

这个题考查的就是else和离他最近的if对应。对于第一个If,a==1,b==2为真,b+1=3,

进入第二个if语句b=3!=2为真并且不再进行或运算右边的操作了,所以打印的是1,3,3。

 5.

若有定义语句: int a=10 ; double b=3.14 ; 则表达式 'A'+a+b 值的类型是()
A char       B int
C double     D float

C

自动提升,小->大
char -128~127
int -21亿~21亿
double 2.3*10-308~1.7*10308
由此可见double最大,所以在运算中char与int会自动提升为double

6.

在int p[][4] = {{1}, {3, 2}, {4, 5, 6}, {0}};中,p[1][2]的值是()
A 1   B 0
C 6   D 2

B

0 1 0 0
3 2 0 0   //是第一个0
4 5 6 0
0 0 0 0 

7.

选择表达式 11|10 的结果(本题数值均为十进制)()
A 11   B 10
C 8    D 2

按位或运算|(有1就是1,全0才是0)

11:  1  0  1  1

10:  1  0  1  0 

 所以是1 0 1 1=11

8.

int fun(int a){
a^=(1<<5)-1;
return a;
}
fun(21)运行结果是()
A 10  B 5
C 3   D 8

 A

1<<5---->等价于0000 0001左移5位,0010 0000=32

a^=(1<<5)-1--------->a=a^((1<<5)-1)----------> a=a^31

^按位异或操作--->相同为0相异为1

21:     0001  0101

31:^    0001  1111

10:        0000  1010

 9.

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

 D

A选项先对p解引用,也就是得到year,将year+=1,就从1009变成1010

B选项先对p解引用,也就是得到year,将year+=1,就从1009变成1010

C前置++和后置++在这里相同,同B

D这里++的优先级高于*,也就是p指针会先++,但因为这里是后置++,所以会解引用得到year也就是1009,然后再将指针++,所以我们的year根本就没有++

10.

下面关于"指针"的描述不正确的是()
A 当使用free释放掉一个指针内容后,指针变量的值被置为NULL
B 32位系统下任何类型指针的长度都是4个字节
C 指针的数据类型声明的是指针实际指向内容的数据类型
D 野指针是指向未分配或者已经释放的内存地址

 A

free释放掉一个指针内容后,只是销毁了指针所指向的空间,变成野指针,并没有对指针置空

二、编程题:

1.组队竞赛

 思路分析:

  • 队伍的水平值等于该队伍队员中第二高水平值,为了所有队伍的水平值总和最大的解法,也就是说每个队伍 的第二个值是尽可能大的值所以实际值把最大值放到最右边,最小是放到最左边。
  • 我们每次尽量取最大,但是最大的数不可能是中位数,所以退而求其次,取每组中第二大的。
  • 例如 现在排序后 有 1 2 5 5 8 9 ,那么分组为1 8 9 和 2 5 5(先升序排列),这里就满足一个关系:arr[arr.length-2*(i+1)],可以带入5,8试一试。

 源码:

#include<iostream>
#include<algorithm>  //这个头文件必须加,要不std的排序就报错
#include<vector>
using namespace std;
int main()
{
    int n=0, m=0;
    cin>>n;
    vector<int> a;
     a.resize(n*3); //给容器开辟合适的空间
   for (int i = 0; i < (3 * n); i++)
    {
        cin >> a[i];
    }
    long long int sum = 0;
    std::sort(a.begin(), a.end());
    for (int i = 0; i < n; i++)
    {
        sum+=a[a.size()-(2*(i+1))];
    }
    cout << sum << endl;
}

2. 删除公共字符

 思路分析:

  1. 我们申请一个字符数组,用来代表256个字符然后把数组2映射到字符数组中,只要是数组2中出现的字符就把对应位置标记为1没有出现的字符标记为0.
  2. 然后我们可以通过查询数组1中的字符在数组中对应的位置是否为1,如果为1,则删除。
  3. 把所有位置上的数是0的全部相加到一个新数组上就行了。
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string str1;
    string str2;
    getline(cin, str1);  //cin如果遇到空格就会自动停止,所以用getline
    getline(cin, str2);
   char hashtable[256]={0}; 
   for(size_t i=0;i<str2.size();i++) //先映射str2
   {
        hashtable[str2[i]]++; //str映射到hashtable上的位置数值
        //只要不为0就可以
   }
   string ret; //新字符串来存储删除后的字符串
   for(size_t i=0;i<str1.size();i++)
   {
       if( hashtable[str1[i]]==0)
       {
         ret += str1[i];  //把位置上不为0的字符全部想加
       }
   }
   cout<<ret<<endl;
}

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

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

相关文章

jsp+ssm计算机毕业设计ssm酒店综合管理平台【附源码】

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JSPSSM mybatis Maven等等组成&#xff0c;B/S模式 Mave…

2D激光雷达:使用MindStudio进行MindX SDK任务开发

任务介绍 该项目基于DROW3和DR-SPAAM模型&#xff0c;实现了实时的2D激光雷达行人检测。 主要处理流程为&#xff1a;输入预处理后的激光雷达点云序列&#xff08;帧&#xff09;->行人检测模型推理->行人检测模型后处理->检测结果输出及可视化。 由于二维距离数据信…

Unity Gradient Lerp 颜色渐变

最近改插件&#xff0c;本来如果有Gradient的lerp方法&#xff0c;改起来会非常方便。因为插件的更改入口是这个Gradient。运行时候手动调节inspector面板可以直接更改效果。那么此时只要在代码中更改Gradient即可。 但是找了几遍Color&#xff0c;ColorUtility&#xff0c;Gr…

怎么去图片水印?三招让你快速学会图片去水印

上大学的时候&#xff0c;老师让我们每人写一个关于“阅读”的主题报告。写这个主题报告的时候&#xff0c;我发现在网上找的图片素材大多带有水印&#xff0c;十分影响报告的展示效果。于是&#xff0c;我就上网找了一些怎么去图片水印的方法&#xff0c;对这些方法进行试验后…

Redis持久化(RDBAOF)

持久化简介&#xff1a; 不知道大家有没有遇见过&#xff0c;就是正工作的时候停电了&#xff0c;如果你用的是笔记本电脑还好&#xff0c;你有电池&#xff0c;但如果你用的是台式机呢&#xff0c;那恐怕就比较灾难了&#xff0c;假如你现在正在写一个比较重要的文档&#xf…

Java集合——Map

Map集合 Map用于保存具有映射关系的数据&#xff0c;以键值对的形式存储&#xff0c;支持通过key来访问value&#xff0c;因此key不能重复。 Map接口下主要有Hashtable、HashMap、LinkedHashMap、ConcurrentHashMap 四个主要的实现类&#xff0c;实现的基本原理类似&#xff0…

【图像处理】Hough变换检测直线与圆的原理

霍夫变换的基本原理 霍夫变换(Hough Transform)可以理解为图像处理中的一种特征提取技术&#xff0c;通过投票算法检测具有特定形状的物体。霍夫变换运用两个坐标空间之间的变换将在一个空间中具有相同形状的曲线或直线映射到另一个坐标空间中的一个点形成峰值&#xff0c;从而…

菜菜学paddle第七篇:目标检测的基本概念

一、什么是目标检测&#xff1f; 在前面的几篇中&#xff0c;我们学习了使用卷积神经网络进行图像分类&#xff0c;比如手写数字识别是用来识别0~9这十个数字。与图像分类处理单个物体的识别不同&#xff0c;目标检测它识别的不仅是物体&#xff0c;还是多个物体&#xff0c;…

[附源码]Python计算机毕业设计高校教务管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

Spring之IOC

IoC&#xff08;Inverse of Control:控制反转&#xff09;是一种设计思想&#xff0c;就是 将原本在程序中手动创建对象的控制权&#xff0c;交由Spring框架来管理。 IoC 在其他语言中也有应用&#xff0c;并非 Spirng 特有。 IoC 容器是 Spring 用来实现 IoC 的载体&#xff0…

服务攻防-应用协议RsyncSSHRDPFTP漏洞批扫口令猜解

目录 测试思路 &#xff08;一&#xff09;口令猜解——SSH&RDP&FTP Demo: &#xff08;二&#xff09;配置不当-未授权访问-Rsync 文件备份 尝试读取src文件 &#xff08;三&#xff09;协议漏洞-应用软件-FTP&Proftpd 搭建 &#xff08;四&#xff09;协议漏…

音视频- iOS使用metal渲染图像(一)

概要 本文主要总结一下Metal的基本使用&#xff0c;用来渲染拍照的到的图像&#xff0c;其中涉及到的有UIKit中的MTKView&#xff0c;Metal中负责渲染的几个类&#xff0c;使用MSL&#xff08;Metal Shading Language&#xff09;编写着色器&#xff0c;最终将图片渲染出来…

Python 绘制极坐标图(玫瑰花图优化)

风速的玫瑰花图可见 Matlab 绘制风速、风向统计玫瑰花图 在今天的这边博文,选用Python工具,绘制玫瑰花图,并对图进行优化。 example 1 【不规则宽度】N = 20 theta = np.linspace(0.0,2*np.pi,N,endpoint=False)

Jmeter(十五):jmeter场景的运行方式(GUI运行和命令行运行)命令行相关参数

jmeter场景的运行方式(GUI运行和命令行运行) 运行方式&#xff1a; GUI运行&#xff1a;通过图形界面方式运行&#xff0c;该运行方式的可视化界面及监听器动态展示 结果都比较消耗负载机资源&#xff0c;建议大并发时不用&#xff0c;一般进行脚本调试&#xff1b; 命令行运…

【PTA-训练day17】L2-029 特立独行的幸福 + L1-071 前世档案

L2-029 特立独行的幸福 - 递归/模拟 判断素数 PTA | 程序设计类实验辅助教学平台 思路&#xff1a; 第一层循环是边界循环 for(int il;i<r;i)枚举每一个i 第二层循环是判断这个i是不是幸福数st数组 判定 i 这个数在迭代过程中是否出现循环 如果出现循环及时跳出比如&…

【TypeScript系列】【一篇就够】TypeScript知识点总结(二)

12 面向对象简介 简而言之&#xff0c;面向对象就是程序之中所有的操作都需要通过对象来完成。 举例来说&#xff0c; 操作浏览器要使用windows对象&#xff1b;操作网页要使用document对象&#xff1b;操作控制台要使用console对象。一切操作都要通过对象&#xff0c;也就是…

nacos--扩展--03--系统参数

nacos–扩展–03–系统参数 1、Nacos Server 配置参数位置&#xff1a;{nacos.home}/conf/application.properties里注意&#xff1a;如果参数名后标注了(-D)的&#xff0c;则表示是 JVM 的参数&#xff0c;需要在{nacos.home}/bin/startup.sh里进行相应的设置。 案例&#xf…

测试用例等级怎么划分?别再傻傻的一脸懵逼

我们都知道测试工程师最基本的能力便是编写测试用例&#xff0c;可是看似简单的用例&#xff0c;后面其实蕴含这个很多人忽略的细节&#xff0c;今天就来说测试里面所蕴含的很多细节。 很多时候不只是测试和测试用例息息相关&#xff0c;开发&#xff0c;产品也有的时候对于测试…

C/C++程序的断点调试 - CodeBlocks

本文以CodeBlocks为例&#xff0c;简述C/C程序断点调试的基本方法和过程。其它的IDE环境&#xff0c;大同小异。 本文引用自作者编写的下述图书; 本文允许以个人学习、教学等目的引用、讲授或转载&#xff0c;但需要注明原作者"海洋饼干叔 叔"&#xff1b;本文不允许…

单链表翻转-链表篇

leetcode206单链表的翻转 题目&#xff1a; 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1] 示例 2&#xff1a; 输入&#xff1a;head [1,2] 输出…