网站开发简述,vps网站无法通过ip访问,手工制作冰墩墩,百度新闻源网站一.选择#xff1a; 1.以下for循环的执行次数是#xff08;#xff09; for(int x 0, y 0; (y 123) (x 4); x);
A.是无限循环 B.循环次数不定 C.4次 D.3次
对于循环#xff0c;其组成部分可以四个部分#xff1a;
for(初始化;循环进行条件;调整)
…一.选择 1.以下for循环的执行次数是 for(int x 0, y 0; (y 123) (x 4); x);
A.是无限循环 B.循环次数不定 C.4次 D.3次
对于循环其组成部分可以四个部分
for(初始化;循环进行条件;调整)
{循环语句//
}
对于上面给出的循环的循环条件由于中间用于连接因此必须左右的条件都为真循环才能继续进行。因此当循环进行五次时此时的不满足条件退出循环因此答案选择循环四次 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
此题目的考点主要在于打印的格式即题目中的%。对于这种%格式的格式。其中表示输出字符串的宽度表示左起截取字符串中的多少字符且对齐格式为右对齐如果字符不足则用空格补足。但是也存在特殊情况
当字符串长度此时的作用不再生效。即输出左起截取字符串中的前个字符。
当字符串长度时直接从头打印至尾部。
例如本题中字符串长度所以上述的打印格式应该为打印字符串的长度从左截取字符串中的个字符由于截取的字符小于需要打印的字符因此用空格补齐由于存在右对称所以打印结果为
computer,空格空格com
答案选择不过此处的答案并没有体现右对齐和补齐空格。 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());
A.-1
B. 0
C.1
D.2
在上面给出的代码中调用了函数结果打印函数的返回值。在函数的循环中由于因此并不符合循环的判断条件因此不会进入循环所以直接返回.。答案选择 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);else printf(%d,%d,%d\n ,a,b,c);else printf(%d,%d,%d\n ,a,b,c);return 0;
}
A.123
B. 132
C.321
D.133
在本题给出的代码中由于并没有搭配相应的括号因此会有些混乱下面将题目的格式进行一定的更改即
#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);}else {printf(%d,%d,%d\n ,a,b,c);}else printf(%d,%d,%d\n ,a,b,c);}return 0;
}
在第一个判断中第一个条件判断为真第二个条件由于是后置即先使用后因此也满足条件。但是在判断结束后
在第二个判断中需要注意此时的操作符存在短路机制即如果第一个条件满足则结果直接判断为真不再判断第二个条件哟与为真因此不再运行。直接进行打印此时的值分别是因此答案选择 5.若有定义语句 int a10 ; double b3.14 ; 则表达式 Aab 值的类型是
A.char B. int C.double D. float
针对此题目需要注意不同类型的变量在进行运算时会出现自动提升的机制即表示数据范围小的类型会自动提升到表示范围大的类型在题目给出的类型中占用一个字节占用字节占用字节因此运算结果在最后会转换为。因此答案选择。 6.在下面给出的数组中中p[1][2]的值是()
int p[][4] {{1}, {3, 2}, {4, 5, 6}, {0}};
A.1 B. 0 C.6 D.2
给出的数组是一个二维数组其行数没有给出列数为在数组中的数组中如果给出的数没有达到位则会用补齐。因此题目中给出的二维数组的结构为
{1,0,0,0}
{3,2,0,0}
{4,5,6,0}
{0,0,0,0}
对于二维数组其行、列数都是从开始算起的因此.因此答案选择 7.选择表达式 11|10 的结果本题数值均为十进制):
A.11 B. 10 C.8 D.2
题目涉及到二进制的运算将转为二进制形式其后八位为
0000 1011
对于其二进制位数为
0000 1010
对于二者的运算规则为二进制位数有为全则为.
110000 1011
100000 1010 运算结果0000 1011
因此答案选择 8.fun(21)运行结果是 int fun(int a){ a^(15)-1; return a;
}
A.10 B. 5 C.3 D.86
在本题目中涉及到了两个操作符分别是异或操作符^,以及位运算操作符。对于异或操作符其运算规则为两个二进制位相异为相同则为。
对于本处的位操作符是左移操作符其规则是右边二进制位丢弃且补
而对于右移操作符则分为算术右移和逻辑右移对于题目一般默认采用算术右移即右边丢弃左边补上符号位负数补正数补.
在本题中其位移后为
移动前:0000 0001
移动后:0010 0000
移动后此时二进制位数转换为进制则表示的数为。所以答案是变量即与的异或即
21的二进制位0001 0101
31的二进制位0001 1111
异或结果 0000 1010
所以答案选择 9.若有定义语句int year1009,*pyear;以下不能使变量 year 中的值增至 1010 的语句是
A.*p1;
B. (*p);
C.(*p)
D. *p
在本题目中涉及到了操作符结合的优先顺序在选项中的优先级大于因此可以增到。对于存在括号因此不做解释可以增到.对于选项由于后置的优先级大于。但是由于是后置因此选项的整体运行顺序为解引用指针在对指针进行答案选择 10.下面关于指针的描述不正确的是
A.当使用free释放掉一个指针内容后,指针变量的值被置为NULL
B. 32位系统下任何类型指针的长度都是4个字节
C.指针的数据类型声明的是指针实际指向内容的数据类型
D.野指针是指向未分配或者已经释放的内存地址
对于选项当指针被后指针变量的值不是而是依旧指向一块空间的地址但是由于这块空间被释放因此指针为野指针。
对于选项指针的定义正确
对于选项正确此处给出避免野指针的措施即创建指针时即使初始化掉指针指向的空间后将指针置空不进行数组的越界访问 二.编程:
2.1 删除公共字符 题目对于链接如下删除公共字符_牛客题霸_牛客网 (nowcoder.com)
对于本题可以利用哈希的思想进行解决首先创建两个类型的对象分别命名为其中分别用于接收第一行、第二行的输入。
在完成输入后创建一个数组用于统计中各个字符出现的次数如果出现一个字符则对于数组的位置置为.
最后从头遍历中的字符如果位置的值为即中的字符在数组中在中没有出现过。则输出该字符具体代码如下
int main()
{string str1,str2;getline(cin,str1);getline(cin,str2);int arr[256] {0};for( size_t i 0; i str2.size(); i){arr[str2[i]] 1;}for(size_t j 0; j str1.size(); j){if(arr[str1[j]] 0){cout str1[j];}}return 0;}
2.2 组队竞赛 题目分析
本题题目较长看起来较为复杂其实原理并不难具体如下 题目会给定个队伍每个队伍均有三名选手对于每个选手都定义了一个水平值为了方便表示这里将水平值定义为。
对于一个队伍整体的水平值等于队伍中第二高的水平值。
对于题目的要求是需要个队伍的整体水平值达到最大。例如题目中给出的例子。最大水平值的组合应该是和.不难看出在本题目中最大的水平值永远无法取到。如果想要让两个队伍的水平值之和为最大。最优情况是在每组中均能取到所有人水平值的第二高。具体如下 假如对于的组其每个人的水平值为。对于最优的水平值上面说到了是取总体水平值的第二高。因此也就是而为了能取到队伍中需要一个比大的值一个最小的值也就是.所以第一组分组为。同理第二组的分组为。第三组为。
所以解决题目的重点有两个一是将选手的水平值排列成升序序列此问题比较简单直接调用函数即可。
第二个问题是如何取到第二大的值
对于上面给出的图蓝色方框表示需要选中的数下面的蓝色数字表示数组的下标。对于数组的长度设为不难看出蓝色方框选出的数的下标可以通过下面给出的式子表示即
因此代码为
#include iostream
#includevector
#includealgorithm
using namespace std;int main()
{vectorint v;int n 0;cin n;v.resize(3*n);for( size_t i 0; i 3*n; i){cin v[i];}long long sum 0;sort(v.begin(),v.end());for( size_t j 0; j n; j){sum v[v.size()-2*(j1)];}cout sum;return 0;}