(C++练习)选择题+编程题

个人主页:Lei宝啊 

愿所有美好如期而遇


选择题 

第一题

执行下面语句后的输出为

int I=1;
if(I<=0)
 printf("****\n") ;
else
 printf("%%%%\n");
  • A. %%
  • B. ****
  • C. 有语法错,不能正确执行
  • D. %%%%

解析:

printf函数中,%用于格式控制,如果要输出文本%,需使用两个百分号,即%%

所以答案为A。

第二题

C++ 中,有如下类模板定义:

template<class T> class BigNumber
{
     long n;
public:
     BigNumber(T i) 
        :n(i) 
     {}

     BigNumber operator+(BigNumber b) 
     {
         return BigNumber(n + b.n);
     }
};

已知 b1, b2 是 BigNumber 的两个对象,则下列表达式中错误的是()

  • A. 3+3
  • B. b1+3
  • C. b1+b2
  • D. 3+b1 

解析:

A: 就单纯的只是int + int,莫要想多,这个是对的。

B: b1 + 3 就相当于 b1.operator+(3),因为类的构造函数是单参数,所以3可以隐式类型转换构造一个BigNumber的对象,所以这个也是对的。

C: 这个显然是对的,不多解释。

D: 内置的整型int,+不能改变其含义。

 编程题

不要二icon-default.png?t=N7T8https://www.nowcoder.com/practice/1183548cd48446b38da501e58d5944eb?tpId=85&&tqId=29840&rp=1&ru=/activity/oj&qru=/ta/2017test/question-ranking

#include <iostream>
#include <vector>
using namespace std;

int main() 
{
    
    int weight, high;
    cin >> weight >> high;

    vector<vector<int>> vv(high, vector<int>(weight, 1));
    for(int i=0; i<high; i++)
    {
        for(int j=0; j<weight; j++)
        {
            if(vv[i][j] == 1 && i + 2 < high)
            {
                vv[i+2][j] = 0;
            }

            if(vv[i][j] == 1 && j + 2 < weight)
            {
                vv[i][j+2] = 0;
            }
        }
    }

    int count = 0;
    for(auto &e : vv)
    {
        for(auto &ee : e)
        {
            if(ee == 1) count++;
        }
    }

    cout << count;

    return 0;
}
// 64 位输出请用 printf("%lld")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lei宝啊

觉得博主写的有用就鼓励一下吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值