贵州建设厅网站办事大厅,企业做网站需要什么软件,wordpress流媒体,松江手机网站建设目录 一、选择题 二、编程题 1、计算糖果 2、进制转换 一、选择题
1、 解析#xff1a;在C语言中#xff0c;以0开头的整数常量是八进制的#xff0c;而不是十进制的。所以#xff0c;0123的八进制表示相当于83的十进制表示#xff0c;而123的十进制表示不变。printf函数… 目录 一、选择题 二、编程题 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] Oxf8b82140x[4][9] Oxf8b82145x[9][9] Oxf8b8221c而x[4][9]和x[9][9]之间刚好相隔了5行设每行N个元素Oxf8b8221c - Oxf8b82145 5*N得到N43。
x[7][7] x[7][9]- 2x[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例如如果x1010二进制那么x-11001二进制x(x-1)1000二进制。最后当x变为0时退出循环返回count的值表示x的二进制表示中有多少个1。
6、 解析F2: FOF1递归3次F3: F2F1131 5F4: F3F21539
F5: F4F319515F6: F5F4115925F7: F6F51251541
F8: F7F61 41 25 67 二、编程题
1、计算糖果 题目解析 这道题目的实质是判断三元一次方程组是否有解及求解 这里是小学生都会的问题了。A(ac)/2C(d-b)/2B2(bd)/2B1(c-a)/2如果B1不等B2则表达式无解。
代码如下
#includeiostream
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^0X1*N^1, X2*N^2.....X0X1X2就是这些进制位的值。
首先定义一个字符串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
#includestring
#includealgorithm
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;}