每日刷题-3

news/2024/11/17 15:58:09/

目录

一、选择题

二、编程题

1、计算糖果

2、进制转换


一、选择题

1、

解析:在C语言中,以0开头的整数常量是八进制的,而不是十进制的。所以,0123的八进制表示相当于83的十进制表示,而123的十进制表示不变。printf函数用%o格式符输出八进制数,所以输出结果是123 173。

2、

解析:为在C语言中,按位与运算符&可以用来清除某些位,而按位或运算符|可以用来设置某些位。如果要将flag的第二个bit置0,就需要用flag和一个只有第二个bit为0的数进行按位与运算,这个数就是~2,即2的按位取反。所以,flag&=~2就可以实现这个目的。

3、

解析:由题可得,&x[4][4]= Oxf8b82140,&x[4][9]= Oxf8b82145,&x[9][9] = Oxf8b8221c,而x[4][9]和x[9][9]之间刚好相隔了5行,设每行N个元素,Oxf8b8221c - Oxf8b82145 = 5*N,得到N=43。

&x[7][7] = &x[7][9]- 2,&x[4][9]+3*43- 2,可得到0xf8b82145 + 127为x[7][7]的地址。答案为A。

4、

解析:首先,定义了一个静态字符指针数组a,它包含了三个字符串元素:“morning”,“afternoon”,“evening”。然后,定义了一个字符指针的指针p,它指向了a的首地址,也就是第一个元素"morning"的地址。接着,调用了func函数,传入了p作为参数。在func函数中,参数m是一个字符指针的指针,它接收了p的值,也就是a的首地址。然后,对m进行了自增操作,使得m指向了a的下一个元素,也就是第二个元素"afternoon"的地址。最后,输出了m所指向的内容,也就是字符串"afternoon"。

5、

解析:这个函数的功能是计算一个整数x的二进制表示中有多少个1。然后,进入一个while循环,只要x不为0,就执行以下操作:

  • 将count加1,表示找到了一个1。
  • 将x与x-1进行按位与运算,并将结果赋给x。这个运算的作用是将x的最低位的1变成0,例如:如果x=1010(二进制),那么x-1=1001(二进制),x&(x-1)=1000(二进制)。
  • 最后,当x变为0时,退出循环,返回count的值,表示x的二进制表示中有多少个1。

6、

解析:F2: FO+F1=递归3次,F3: F2+F1=1+3+1 = 5,F4: F3+F2=1+5+3=9

F5: F4+F3=1+9+5=15,F6: F5+F4=1+15+9=25,F7: F6+F5=1+25+15=41,

F8: F7+F6=1 +41 +25 = 67

二、编程题

1、计算糖果

题目解析: 这道题目的实质是:判断三元一次方程组是否有解及求解, 这里是小学生都会的问题了。A=(a+c)/2;C=(d-b)/2;B2=(b+d)/2,B1=(c-a)/2;
如果B1不等B2则表达式无解。

代码如下:

#include<iostream>
using namespace std;
int main() {int a, b, c, d;cin >> a >> b >> c >> d;int A = (a + c) / 2;int C = (d - b) / 2;int B1 = (c - a) / 2;int B2 = (b + d) / 2;if (B1 != B2)cout << "No";elsecout << A << " " << B1 << " " << C;return 0;
}

2、进制转换

题目解析:本题思路很简单,首先想清楚原理:N进制数,每个进制位的值分别是X0*N^0,X1*N^1, X2*N^2.....,X0,X1,X2就是这些进制位的值。

首先定义一个字符串table,用于存储0到F的字符,表示从0到15的数。然后定义一个字符串str,用于存储转换后的结果。接着定义一个布尔变量flag,用于判断输入的数是否为负数。如果是负数,就将flag设为true,并将M取反。如果M为0,就直接将str设为"0"。

然后进入一个循环,不断地对M进行取余和除法操作,将M除以N得到的余数作为table的下标,找到对应的字符,并将其添加到str的末尾。同时将M更新为M除以N得到的商。当M为0时,退出循环。

最后判断flag是否为true,如果是,就在str的末尾添加一个负号。然后将str反转,输出结果。这样就完成了10进制转换成任意进制的过程。

#include <iostream>
#include<string>
#include<algorithm>
using namespace std;int main() {int M, N;string table = "0123456789ABCDEF";string str = "";bool flag = false;while (cin >> M >> N) {if (M < 0) {flag = true;M = -M;}if (M == 0)str = "0";while (M) {str += table[M % N];M = M / N;}if (flag)str += '-';reverse(str.begin(), str.end());}cout << str << endl;}


http://www.ppmy.cn/news/1096672.html

相关文章

Windows系统的桌面显示信息工具___BGInfo使用

一、BGInfo简介 BGInfo(桌面显示信息工具)是微软开发的用于在Windows系统中实现将Windows系统信息【如:当前用户名、CPU、操作系统版本、IP地址、硬盘等】或自定的内容显示在桌面壁纸上的操作工具,用户可以根据自己的需要定制属于自己的桌面内容(特别是对应企业来说通过域…

苏宁API接口解析,实现获得suning商品详情

要解析苏宁API接口并实现获取苏宁商品详情&#xff0c;你需要按照以下步骤进行操作&#xff1a; 了解苏宁开放平台&#xff1a;访问苏宁开放平台官网&#xff0c;找到API接口相关的开发者文档、指南等信息。注册开发者账号&#xff1a;在苏宁开放平台上注册一个开发者账号&…

it监控系统可以电脑吗?有什么效果

IT业务监控已经成为公司不可或缺的一部分&#xff0c;以确保业务的正常运行&#xff0c;提高企业的竞争能力。本文将详细介绍IT业务监控的必要性、实施方法以及如何选择合适的监控工具。 IT业务监控的必要性 确保业务稳定运行  IT业务监控可以实时检测公司的工作流程&#x…

【我的第一千篇文章】

作为一名Java开发者&#xff0c;我很自豪地宣布&#xff0c;这里是我输出的第一千篇文章。在过去的六年里&#xff0c;我一直坚持每月输出优质内容&#xff0c;并将其分享给了全世界的读者们。这一千篇文章中&#xff0c;有很多关于Java编程的技巧、经验分享、优秀实践示例、案…

Ubuntu下通过python使用MySQL

参考资料 MySQL Connector/Python Developer Guide 环境 Ubuntu 20.04Python 3.8.10MySQL Server 8.0.34mysql-connector-python 8.1.0 安装MySQL pip install mysql-connector-python # 注意&#xff0c;不要安装成 mysql-connector 了环境测试 注意&#xff1a; 千万不能…

简明SQL别名指南:掌握AS实现列名更名

在 SQL 查询中&#xff0c;使用 {原始字段名} as {别名} 的语法来为查询结果的列赋予更直观的名称&#xff0c;以提高查询结果的可读性和可理解性。 以下是用到的表。 用AS更名 例如&#xff0c;查询表1的name字段&#xff0c;并将其更名为"名字"&#xff0c;同时查…

ERROR: your rosdep installation has not been initialized yet

这个错误表示你的 rosdep 还没有初始化。rosdep 是一个 ROS 中的系统依赖管理工具,用于安装和配置需要的系统依赖包。在使用 rosdep 之前,需要先通过 rosdep update 命令初始化它。这个命令会连接远程服务器来更新 rosdep 的数据源,以获取所有支持的 ROS 版本和平台的依赖信息。…

laravel 报错误信息 Carbon\Exceptions\InvalidFormatException

Carbon\Exceptions\InvalidFormatException Unexpected data found. at vendor\nesbot\carbon\src\Carbon\Traits\Creator.php:687 683▕ return $instance; 684▕ } 685▕ 686▕ if (static::isStrictModeEnabled()) { ➜ 687…