当前位置: 首页 > news >正文

每日一练--IT冷知识C/C++--第八天

目录

讽刺的名字

Unix 诞生

RISC-V 的掌门人

计算出现次数最多的整数及其出现次数

字符串相乘

找x


讽刺的名字

Symantec 公司曾发布一款个人信息安全产品 Norton Antivirus,也便是大名鼎鼎的诺顿杀毒;在美国,诺顿是市场占有率第一的杀毒软件。但事实上,诺顿杀毒软件的名字却来源于一个不相信电脑病毒存在的程序员,这个程序员曾出版《计算机概论》,为计算机的发展带来了许多贡献。

这位程序员的名字叫什么?

A詹姆·诺顿(Jame Norton)
B彼得·诺顿(Peter Norton)
C玛丽·诺顿(Mary Norton)
D爱德华·诺顿(Edward Norton)

答案:彼得·诺顿(Peter Norton) 


Unix 诞生

Unix 是一个多任务、多用户的计算机操作系统家族,前身为 1964 年启动的 Multics;由于 Multics 项目缓慢,1969 年贝尔实验室退出项目,由三名程序员完成了对其衍生作品 Unix 的自研。Unix 直接影响了如今流行的所有操作系统。

以下哪一位程序员没有参与开发 Unix?

A肯·汤普森
B道格拉斯·麦克罗伊
C蒂姆·伯纳斯·李
D丹尼斯·里奇

答案:蒂姆·伯纳斯·李


RISC-V 的掌门人

RISC-V 是一个基于精简指令集(RISC)原则的开源指令集架构(ISA),简单解释为开源软件运动相对应的一种“开源硬件”;如今 RISC-V 基金会的创始人在广东的清华-伯克利深圳学院(TBSI)建立了 RISC-V 的国际开源实验室,而这个人也是 2017 年的图灵奖得主。

这个人是谁?

A唐纳德·克努特(Donald ErvinKnuth)
B约翰·巴克斯(John Backus)
C约翰·轩尼诗(John Hennessy)
D大卫·帕特森(David Patterson)

答案:大卫·帕特森(David Patterson)


计算出现次数最多的整数及其出现次数

【问题描述】 输入一组无序的整数,编程输出其中出现次数最多的整数及其出现次数。
【输入形式】
先从标准输入读入整数的个数(大于等于1,小于等于100),然后在下一行输入这些整数,各整数之间以一个空格分隔。
【输出形式】
在标准输出上输出出现次数最多的整数及其出现次数,两者以一个空格分隔;若出现次数最多的整数有多个,则按照整数升序分行输出。
【样例输入】
10
0 -50 0 632 5813 -50 9 -50 0 632
【样例输出】
-50 3
0 3
【样例说明】
输入了10个整数,其中出现次数最多的是-50和0,都是出现3次。

以下程序实现了这一功能,请你填补空白处的内容:

#include <stdio.h>
int main()
{
    int a[50], b[50], c[50], n, i, j, t, max;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    for (i = 1; i < n; i++)
        for (j = 0; j < n - 1; j++)
        {
            if (a[j] > a[j + 1])
            {
                t = a[j];
                a[j] = a[j + 1];
                a[j + 1] = t;
            }
        }
    j = 0;
    t = -1;
    for (i = 0; i < n - 1; i++)
    {
		____________________;
    }
    b[j] = n - 1 - t;
    c[j] = n - 1;
    max = b[0];
    for (i = 1; i <= j; i++)
    {
        if (max < b[i])
        {
            max = b[i];
        }
    }
    for (i = 0; i <= j; i++)
        if (b[i] == max)
        {
            t = c[i];
            printf("%d %d\n", a[t], b[i]);
        }
    return 0;
}
Aif (a[i] != a[i + 1])
{
    b[j] = i + t;
    c[j] = i + 1;
    t = i;
    j++;
}
Bif (a[i] != a[i + 1])
{
    b[j] = i + t;
    c[j] = i - 1;
    t = i;
    j++;
}
Cif (a[i] != a[i + 1])
{
    b[j] = i + t;
    c[j] = i;
    t = i;
    j++;
}
Dif (a[i] != a[i + 1])
{
    b[j] = i - t;
    c[j] = i;
    t = i;
    j++;
}

 答案:

if (a[i] != a[i + 1])
{
	b[j] = i - t;
	c[j] = i;
	t = i;
	j++;
}

字符串相乘

给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。

示例 1:

输入: num1 = "2", num2 = "3"
输出: "6"

示例 2:

输入: num1 = "123", num2 = "456"
输出: "56088"

说明:

  1. num1 和 num2 的长度小于110。
  2. num1 和 num2 只包含数字 0-9
  3. num1 和 num2 均不以零开头,除非是数字 0 本身。
  4. 不能使用任何标准库的大数类型(比如 BigInteger)直接将输入转换为整数来处理

以下程序实现了这一功能,请你填补空白处内容:

#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
	string multiply(string num1, string num2)
	{
		string res(num1.length() + num2.length(), '0');
		for (int i = num2.length() - 1; i >= 0; i--)
		{
			int j, carry = 0;
			for (j = num1.length() - 1; j >= 0; j--)
			{
				_____________________;
			}
			res[i + j + 1] = carry + '0';
		}
		int i;
		for (i = 0; i < res.length() - 1; i++)
		{
			if (res[i] != '0')
			{
				break;
			}
		}
		return res.substr(i);
	}
};
Acarry += (num1[j] - '0') * (num2[i] - '0') + (res[i + j + 1] - '0');
res[i + j + 1] = carry % 10 + '0';
carry /= 10;
Bcarry += (num1[j] - '0') * (num2[i] - '0') + (res[i + j - 1] - '0');
res[i + j - 1] = carry % 10 + '0';
carry %= 10;
Ccarry += (num1[j] - '0') * (num2[i] - '0') + (res[i + j] - '0');
res[i + j] = carry % 10 + '0';
carry %= 10;
Dcarry += (num1[j] - '0') * (num2[i] - '0') + (res[i + j] - '0');
res[i + j] = carry % 10 + '0';
carry /= 10;

 答案:

carry += (num1[j] - '0') * (num2[i] - '0') + (res[i + j + 1] - '0');
res[i + j + 1] = carry % 10 + '0';
carry /= 10;

找x

题目描述

输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。

输入

测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。

输出

对于每组输入,请输出结果。

样例输入

4
1 2 3 4
3

样例输出

2

以下程序实现了这一功能,请你填补空白处的内容:

#include <iostream>
using namespace std;
int main()
{
    int n = 0;
    cin >> n;
    int *ptr = new (nothrow) int[n];
    for (auto i = 0; i < n; i++)
    {
        cin >> ptr[i];
    }
    int x = 0;
    cin >> x;
    auto j = 0;
    auto status = 0;
    for (; j < n; ++j)
    {
		______________;
    }
    if (status == 0)
    {
        j = -1;
    }
    cout << j << endl;
    delete[] ptr;
    cin.get();
    cin.get();
    return 0;
}
Aif (ptr[j] <= x)
{
    status = 1;
    continue;
}
Bif (ptr[j] == x)
{
    status = 1;
    continue;
}
Cif (ptr[j] == x)
{
    status = 1;
    break;
}
Dif (ptr[j] >= x)
{
    status = 1;
    continue;
}

 答案:

if (ptr[j] == x)
{
	status = 1;
	break;
}

相关文章:

  • 家用电器的检测项目和检测标准有哪些?
  • 迅为龙芯开发板系统编译安装pmoncfg
  • C++11 返回值优化、移动语义及函数返回值构造的重载决议
  • 数据湖:OPPO数据湖统一存储技术实践
  • vue3 setup(基础版)
  • 单例模式c++
  • 猿创征文|Highgo Database安全版安装指导手册
  • 从零开始配置 vim(18)——终端模式
  • 五:Dubbo中Provider参数配置及源码讲解
  • EXTJS 中grid 动态增加列的方法
  • Navicat快速将mysql表转为postgresql表(数据+表结构)
  • 车道线检测传统方法笔记
  • (六)vue-router+UI组件库
  • 路由知识——路由分类+RIP相关知识+链路状态协议和距离矢量协议的区别
  • LeetCode_贪心算法_中等_665.非递减数列
  • [Vue CLI 3] 配置解析之 css.extract
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Git初体验
  • Golang-长连接-状态推送
  • iOS | NSProxy
  • java中具有继承关系的类及其对象初始化顺序
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • rabbitmq延迟消息示例
  • Spring Cloud中负载均衡器概览
  • SwizzleMethod 黑魔法
  • Xmanager 远程桌面 CentOS 7
  • 对JS继承的一点思考
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 利用DataURL技术在网页上显示图片
  • 马上搞懂 GeoJSON
  • 实战|智能家居行业移动应用性能分析
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 在Mac OS X上安装 Ruby运行环境
  • ​MySQL主从复制一致性检测
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #define 用法
  • #Linux(帮助手册)
  • #pragma data_seg 共享数据区(转)
  • #vue3 实现前端下载excel文件模板功能
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $jQuery 重写Alert样式方法
  • (2.2w字)前端单元测试之Jest详解篇
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (编译到47%失败)to be deleted
  • (第二周)效能测试
  • (二)Eureka服务搭建,服务注册,服务发现
  • (分布式缓存)Redis持久化
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (三)终结任务
  • (十六)串口UART
  • (实战篇)如何缓存数据