站长之家ping检测,别墅装修装饰,广点通推广登录入口,有没有资源可以在线观看目录 一、选择题二、编程1、组队竞赛2、删除公共字符 一、选择题
1、以下for循环的执行次数是#xff08;#xff09;
for (int x 0, y 0; (y 123) (x 4); x);A 是无限循环 B 循环次数不定 C 4次 D 3次 答案#xff1a;C 2、以下程序的运行结果是… 目录 一、选择题二、编程1、组队竞赛2、删除公共字符 一、选择题
1、以下for循环的执行次数是
for (int x 0, y 0; (y 123) (x 4); x);A 是无限循环 B 循环次数不定 C 4次 D 3次 答案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 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 4、下面程序输出是什么()
#include stdio.h
int main()
{int a 1, b 2, c 3, d 0;if (a 1 b 2)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 5、若有定义语句 int a10 ; double b3.14 ; 则表达式 ‘A’ab 值的类型是 A char B int C double D float 答案C 6、下面代码中p[1][2]的值是
int p[][4] { {1}, {3, 2}, {4, 5, 6}, {0} };A 1 B 0 C 6 D 2 答案B 7、选择表达式 11|10 的结果本题数值均为十进制 A 11 B 10 C 8 D 2 答案A 8、fun(21)运行结果是
int fun(int a)
{a ^ (1 5) - 1;return a;
}A 10 B 5 C 3 D 8 答案A 9、若有定义语句int year1009,*pyear;以下不能使变量 year 中的值增至 1010 的语句是 A *p1; B (*p); C (*p) D *p 答案D 10、下面关于指针的描述不正确的是 A 当使用free释放掉一个指针内容后,指针变量的值被置为NULL B 32位系统下任何类型指针的长度都是4个字节 C 指针的数据类型声明的是指针实际指向内容的数据类型 D 野指针是指向未分配或者已经释放的内存地址 答案A 二、编程
1、组队竞赛
入口题目链接
题目描述
题目解析 队伍的水平值等于该队伍队员中第二高水平值为了所有队伍的水平值总和最大的解法也就是说每个队伍的第二个值是尽可能大的值。所以实际值把最大值放到最右边最小是放到最左边。
解题思路
本题的主要思路是贪心算法贪心算法其实很简单就是每次选值时都选当前能看到的局部最解忧所以这里的贪心就是保证每组的第二个值取到能选择的最大值就可以我们每次尽量取最大但是最大的数不可能是中位数所以退而求其次取每组中第二大的例如现在排序后有 1 2 5 5 8 9 那么分组为1 8 9 和 2 5 5关系arr[arr.size() - 2 * (i 1)]
代码展示
#include iostream
#include algorithm
#include vector
using namespace std;
int main()
{int n;while (cin n){long long sum 0;vectorint a;a.resize(3 * n);for (int i 0; i 3 * n; i){cin a[i];}std::sort(a.begin(), a.end());for (int i 0; i n; i){sum sum a[a.size() - 2 * (i 1)];}cout sum endl;}return 0;
}2、删除公共字符
入口题目链接
题目描述 解题思路
将第二个字符串的字符都映射到一个hash数组中用来判断一个字符在这个字符串。判断一个字符在第二个字符串不要使用删除这样效率太低因为每次删除都伴随数据挪动。这里可以考虑使用将不在字符添加到一个新的字符串中最后返回新的字符串。
代码展示
#includeiostream
#includestring
using namespace std;
int main()
{// oj中IO输入字符串最好使用getline。string str1, str2;//cinstr1; // 注意这里不能使用cin接收因为cin遇到空格就结束了。getline(cin, str1);getline(cin, str2);// 使用哈希映射思想先str2统计字符出现的次数int hash[256] { 0 };for (size_t i 0; i str2.size(); i){hash[str2[i]];}// 遍历str1str1[i]映射hash对应位置为0则表示这个字符在// str2中没有出现过则将他到ret。注意这里最好不要str1.erases(i)// 因为边遍历边erase容易出错。string ret ;for (size_t i 0; i str1.size(); i){if (hash[str1[i]] 0)ret str1[i];}cout ret endl;return 0;
}