山西微网站建设,网站建设资源分享,长沙本地推广平台,哪个杭州seo好目录
一、选择题
1、
2、
3、
4、
5、
6、
7、
8、
9、
10、
二、编程题
1、组队竞赛 2、删除公共字符 一、选择题
1、
以下for循环的执行次数是#xff08;#xff09;
for(int x 0, y 0; (y 123) (x 4); x);
A 、是无限循环 B 、循环次…目录
一、选择题
1、
2、
3、
4、
5、
6、
7、
8、
9、
10、
二、编程题
1、组队竞赛 2、删除公共字符 一、选择题
1、
以下for循环的执行次数是
for(int x 0, y 0; (y 123) (x 4); x);
A 、是无限循环 B 、循环次数不定 C、 4次 D 、3次 答案C 解释 先复习一下 for循环的用法 for(初始化部分条件判断部分调整部分) { // 循环体} 执行次数为 x 0、1、2、3 x 4 跳出循环所以选择C 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 解释 每个字符串结尾都有一个默认的 ‘/0’%s 打印遇到 ‘/0’ 就停止打印所以第一 个 “computer” 会完整打印 先来解释一下通用的%m.ns m输出字符串的宽度 n左起截止目标字符串的 n个字符并且是右对齐左边不够补空格 当 字符串长度 n 此时 m的作用失效了直接截取 n个字符并且是右对齐左边不够补空格格式输出宽度依旧为 m当 字符串长度 n 作用和 %s 一样遇到 ‘\0’ 就停止会完整打印整个字符串 题目中的 %5.3s 字符串长度8 35 的作用失效了直接截取前 3个字符 ‘com’格式输出宽度依旧为 5右对齐左边不够补空格所以输出结果为 com 所以选择B 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 解释 进入循环的条件是 j 0而 j 开始的值就为 -1不满足循环条件所以 k 依旧为 0所以选择B 4、
下面程序输出是什么
#include stdio.h
int main()
{
int a1,b2,c3,d0;
if(a 1 b2)if(b!2||c--!3)printf(%d,%d,%d\n ,a,b,c);
elseprintf(%d,%d,%d\n ,a,b,c);
elseprintf(%d,%d,%d\n ,a,b,c);
return 0;
}A 、123 B 、132 C、 321 D 、133 答案D 解释 上面的代码很乱而且 if 语句还省略了缩进 {}我们看代码就容易出错 else 有最近匹配原则所以 else会与它最近的 if 进行匹配 还有要注意一点|| 逻辑或任意一方为真就执行。左边表达式为真右边的表达式就不会执行 如题 if(a 1 b2)表达式左边为真右边的表达式就不会执行-- 也就不会执行所以选择D 5、
若有定义语句 int a10 ; double b3.14 ; 则表达式 Aab 值的类型是 A、 char B、 int C 、double D、 float
答案C 解释 A’是char类型占一个字节范围是-128 ~ 127 a是int 类型 占4个字节范围是 -21亿 ~ 21亿 c是double类型占8个字节范围是2.310的308次方 ~ 1.710的308次方 不同类型运算会自动提升向高位提升即小范围 - 大范围最后转换为double类型所以答案选C 6、
在
int p[][4] {{1}, {3, 2}, {4, 5, 6}, {0}};
中p[1][2]的值是 A 、1 B、 0 C 、6 D 、2 答案B 解释 p 数组的每个大括号是一行都没有进行完全初始化没初始化的默认为0 p[][4] 第一个参数没给这是可以的有几行第一个参数就为几数组下标从 0 开始 数组补充完如下 1 0 0 0 3 2 0 0 4 5 6 0 0 0 0 0 所以 p[1][2] 0标红色的所以选择B 7、
选择表达式 11|10 的结果本题数值均为十进制 A 、11 B 、10 C、 8 D、 2 答案A 解释 写出两个数的补码正数的原码、反码、补码相同 假设用8个 bit 表示 11: 0000 1011 10 :0000 1010 | 按位或的规则只有有一个为 1结果 位 就为 1其余情况为 0 转换为十进制就是 11所以选择A 8、
fun(21)运行结果是
int fun(int a){
a^(15)-1;
return a;
}
A 、10 B、 5 C、 3 D 、8 答案A 解释 ^ 运算符的规则为相同为0相异为1 a ^ b --- a a^b 则 a ^ (15)-1 --- a a ^ ((15)-1) 1 5 就是 1 向左移动 5 个bit0000 0001 --- 0010 0000十进制为32 最后 a a ^ 31 --- a 21 ^ 31 最后转成十进制就是10所以答案选A 9、
若有定义语句int year1009,*pyear;以下不能使变量 year 中的值增至 1010 的语句是 A、 *p1
B 、(*p)
C、 (*p)
D、 *p
答案D 解释 这里考察的是运算符的优先级 由图得知 * 的优先级大与 的优先级比 高 的优先级比 * 要高没有对1009进行而是对指针所以选择D 10、
下面关于指针的描述不正确的是
A、 当使用free释放掉一个指针内容后,指针变量的值被置为NULL
B 、32位系统下任何类型指针的长度都是4个字节
C 、指针的数据类型声明的是指针实际指向内容的数据类型
D、 野指针是指向未分配或者已经释放的内存地址
答案A 解释 free指针只是把指向的空间销毁了 指针的值置空是要我们手动置空 32位指针的长度都是4个字节64位下是8字节 再说一下造成野指针的三大原因 定义时没有初始化free掉后没有置空越界访问使用指针所以选择A 二、编程题
1、组队竞赛
题目链接组队竞赛 思路分析 首先对数据进行排序然后进行分组前面取一个后面取两个然后对中间下标进行观察可以发现规律 解题关键如何进行分组主要思路是贪心算法 代码如下C
#include iostream
#include algorithm
#include vector
using namespace std;int main()
{int n 0;cin n;vectorint arr;arr.resize(n*3);for(int i 0; i arr.size(); i){cin arr[i];}sort(arr.begin(), arr.end());long long sum 0;for(int i 0; i n; i){sum arr[arr.size() - 2*(i1)];}cout sum;return 0;
} 2、删除公共字符
题目链接删除公共字符 思路分析 使用哈希思想定义一个数组遍历 s2把 s2 里面有的字符映射到数组上 再遍历 s1比较为0就插入 ret 中即不重复的字符 代码如下C
#include iostream
#include string
using namespace std;int main()
{string s1, s2;getline(cin, s1);getline(cin, s2);int hash[256] {0};for(int i 0; i s2.size(); i){hash[s2[i]];}string ret;for(int i 0; i s1.size(); i){if(hash[s1[i]] 0){ret s1[i];}}cout ret;return 0;
}
----------------我是分割线---------------
Day_01完结下篇即将更新