刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读下列说明、C++代码和运行结果,填补代码中的空缺,将解答填入答题纸的对应栏内。
[说明]
很多依托扑克牌进行的游戏都要先洗牌。下面的C++程序运行时先生成一副扑克牌,洗牌后再按顺序打印每张牌的点数和花色。

[C++代码]

    #include<iostream>

    #include<stdlib.h>

    #include<ctime>

    #include<algorithm>

    #include<string>

    USing namespace
std;

    const string
Rank[13]={"A","2","3","4","5","6","7","8","9","10","J",
"Q","K"};  //扑克牌点数

    const strinq
Suits[4]={"SPADES","HEARTS","DIAMONDS","CLUBS");
//扑克牌花色

    Class Card{

    private:

    int rank;

    int suit;

    public:

    Card(){}

    ~Card(){}

    Card(int rank,int
suit) {______ rank=rank;______ suit=suit;}

    int getRank(){

    return rank;

    }

    int getSuit(){

    return suit;

    }

    void printCard(){

    cout<<  '('<<Rank[rank]<<",
 "<<Suits[suit]<<")":

    }

    };

    Class
 DeckofCards{

    private:

    Card deck[52];

    public:

    DeckOfCards(){
      //初始化牌桌并进行洗牌

    for(int i=0; i<52;i++)  {    //用Card对象填充牌桌

    ______
=card(i%13,i%4);

    }

  
 Srand((unsigned)time(0));    //设置随机数种孔

    std::random
shuffle(&deck[0],&deck[51]);   //洗牌

    }

    ~DeckOfCards()  {

    }

    void printCards()
 {

    for(int i=0; i<52; i++){

    ______
printCard();

    if((i+1)%
4==0)cout<<endl;

    else cout<<"\t";

    }

    }

    };

    int main  (){

    DeckOfCards
 *d= ______;    //生成一个牌桌

    ______;  
 //打印一副扑克牌中每张牌的点数和花色

    delete d:

    return 0;

    }

使用微信搜索喵呜刷题,轻松应对考试!

答案:

this->
this->
deck[i]    或*(deck+i)  或等价表示
deck[i].    或*(deck+i).或等价表示
new DeckOfCards()
d->printCards()  或等价表示

解析:

本题考查了C++面向对象编程中的类、对象、构造函数以及数组的使用。根据题目描述和给出的代码片段,需要完成扑克牌和牌桌的相关操作。

  1. 在Card类的构造函数中,需要初始化成员变量rank和suit。由于参数名称与成员变量名称相同,为了避免混淆,需要使用"this->"来指明是访问类的成员变量。所以空(1)处应填写:this->rank = rank; this->suit = suit;

  2. 在DeckOfCards类的构造函数中,需要初始化牌桌并洗牌。初始化牌桌是通过创建Card对象并赋值给数组deck完成的。因此空(2)处需要表示创建Card对象并赋值给deck数组的元素,可以填写:deck[i] = Card(i%13, i%4);或者等效的写法,如*(deck+i) = Card(i%13, i%4); 另外,也可以直接对成员变量进行赋值,如:deck[i].rank = i%13;,deck[i].suit = i%4;。

  3. 在main函数中,首先需要创建一个DeckOfCards类的对象指针d,即生成一个牌桌。这可以通过new关键字来完成,所以空(3)处应填写:new DeckOfCards()。

  4. 接下来需要打印一副扑克牌中每张牌的点数和花色,这可以通过对象指针d调用其成员函数printCards()来完成。因此空(4)处应填写:DeckOfCards *d = new DeckOfCards(); d->printCards()或等价表示。

综上所述,根据题目的要求和给出的代码片段,以上答案正确地填补了代码中的空缺部分。

创作类型:
原创

本文链接:阅读下列说明、C++代码和运行结果,填补代码中的空缺,将解答填入答题纸的对应栏内。[说明]很多依托扑

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share