1、C++|day-1

一、选择

1.下列main()函数执行后的结果为()
A -1
B 0
C 1
D 2

for(int x = 0, y = 0; (y = 123) && (x < 4); x++);
#include <stdio.h>
int main(void) 
{
printf("%s , %5.3s\n", "computer", "computer");
return 0;
}
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;
}
 C (错误)
正确答案: B

解析:因为j = 0为假,所以根本不进入循环,直接结束,那么j = 0。
2.fun(21)运行结果是()
A 10
B 5
C 3
D 8

int fun(int a) {
a^=(1<<5)-1;
return a;
}
C (错误)
正确答案: A

解析:这是一道位运算,我老是很抵触,然后将1左移五位,然后-1,相同为0,相异为1。

二、编程

1.牛牛组队问题

链接

思路:取中间,就是个公式。

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
    vector <int> team;
    int n = 0;
    long long sum = 0; //注意这里是long long
    cin >> n;
    team.resize(3*n);
    for(int i = 0; i < 3 * n; i++) {
        cin >> team[i];
    }
    sort(team.begin(),team.end());
    for(int i = 0; i < n; i++) {
        sum += team[team.size()-(2*(i+1))];
    }
    cout << sum << endl;
}
2.删除公共字符

链接

思路:哈希表映射,将s2出现的字符映射,如果hash[s1] == 0,证明s2中的字符没出现。

#include <iostream>
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 << endl;
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值