网站导航:2019年上半年程序员考试下午真题(专业解析+参考答案)>列表1

题目:

阅读以下说明和流程图,填写流程图中的空缺,将解答填入答题纸的对应栏内。【说明】如果n位数(n≥2)是回文数(从左到右读与从右到左读所得结果一致),且前半部分的数字递增(非减)、后半部分的数字将递减(非增),则称该数为拱形回文数。例如, 12235753221就是一个拱形回文数。显然,拱形回文数中不含数字0。下面的流程图用于判断给定的n位数(各位数字依次存放在数组的各个元素A[i]中, i=1,2, ...,n)是不是拱形回文数。流程图中,变量T动态地存放当前位之前一位的数字。当n是奇数时,还需要特别注意中间一位数字的处理。

【流程图】  注1: “循环开始”框内给出循环控制变量的初值、终值和增值(默认为1),格式为: 循环控制变量=初值,终值[,增值]注2: 函数int(x)为取x的整数部分,即不超过x的最大整数。

考点:流程图

题目:

阅读以下说明和C代码,回答问题,将解答写入答题纸的对应栏内。【说明】函数bubbleSort(int arr[], int n, int (*compare)(int,int))的功能是根据调用时传递的比较函数compare对数组arr的前n个元素进行排序。【C代码】#define swap(a, b) { a = a^b; b = a^b; a = a^b;} //交换a与b的值int less(int x,int y){     return ((x<y) ? 1 : 0);}int larger(int x, int y){     return ((x>y) ? 1 : 0);}void bubbleSort(int arr[ ], int n, int (*compare)(int,int)){      int i,j;       int swapped = 1;       for( i=0; swapped; i++) {            swapped = 0;            for(j=0; j<n-1-i; j++)                 if ( compare( arr[j+1], arr[j])) {                         swap( arr[j+1], arr[j]);                         swapped =1;                 }         }}

【问题】设有如下数组定义: int data1 = 4, 2, 6, 3, 1; int data2 = 4, 2, 6, 3, 1; int data3 = 4, 2, 6, 3, 1;请分别给出下面的函数调用执行后,数组data1、data2和data3各自的元素序列。 (1)bubbleSort(data1, 5, less); (2) bubbleSort(data2, 5, larger); (3) bubbleSort(data3, 3, larger);

考点:C程序设计案例

题目:

阅读以下说明和Java代码,将应填入    (n)    处的字句写在答题纸的对应栏内。【说明】   现如今线下支付系统可以使用现金(Cash)、移动支付、银行卡(Card)(信用卡 (CreditCard)和储蓄卡(DebitCard))等多种支付方式(PaymentMethod)对物品(Item)账单(Bill)进行支付。图5-1是某支付系统的简略类图。

【Java代码】 Import java.util. ArrayList; import java.util.List; interface PaymentMethod       public      (1)       ;// Cash、DebitCard和Item实现略,Item中getPrice( )获取当前物品对象的价格abstract class Card       (2)            private final String name, num;      public Card(String name, String num) this.name = name; this.num = num;        @Oveiride      public String toString ( )              return String.format(“%s cardname = %s, num = %s”,this.getType (), name, num);             @Override      public void pay(int cents)              System.out.println(“Payed + cents + “ cents using “ + toString( ));              this.executeTransaction(cents);            protected abstract String getType( );      protected abstract void executeTransaction(int cents);class CreditCard       (3)            public CreditCard(String name, String num)      (4)       ;       @Override      protected String getType( ) return CREDIT;       @Override      protected void executeTransaction(int cents)             System.out.println(cents + paid using Credit Card. ’);       class Bill //包含所有购买商品的账单      private List<Item> items = new ArrayList<>();      public void add(Item item) items.add(item);       public intgetTotalPrice( )/*计算所有 item 的总价格,代码略*/       public void pay(PaymentMethod paymentMethod)//用指定的支付方式完成支付            (5)       (getTotalPrice( ));       public class PaymentSystem        public void pay( )              Bill bill = new Bill( );             Item item1 = new Item(1234,10); Item item2 = new Item( 5678,40);              bill.add(item1); bill.add(item2); //将物品添加到账单中             bill.pay(new CreditCard(LI SI, 98765432101)); //信用卡支付            public static void main(String args)                   (6)     = new PaymentSystem( );              payment.pay( );       

考点:Java程序设计案例

题目:

阅读下列说明和C++代码,将应填入   (n)   处的字句写在答题纸的对应栏内。【说明】现如今线下支付系统可以使用现金(Cash)、移动支付、银行卡(Card)(信用卡 (CreditCard)和储蓄卡(DebitCard))等多种支付方式(PaymentMethod)对物品(Item) 账单(Bill)进行支付。图6-1是某支付系统的简略类图。图6-1  类图

【 C++代码 】  #include <iostream>#include〈vector〉#include〈string〉using namespace std;class PaymentMethod public: virtual void pay(int cents)=0;;// Cash、DebitCard和Item实现略,Item中getPrice( )获取当前物品对象的价格 class Card : public PaymentMethod  private: string name, num; public:       Card(string name, string num) this->name = name; this->num = num;         string toString( )               return this->getType( ) + cardname = + name + ,num = + num + ; )                void pay(int cents)               cout<< Payed <<cents << cents using <<toString( ) <<end1;              this->executeTransaction(cents);         protected:        virtual string getType( )=0;         virtual void     (1)      =0:;class CreditCard 

    (2)        public:       CreditCard(stringname, stringnum) 

    (3)               protected:        string getType( ) return CREDIT ;         void executeTransaction(int cents)               cout<<cents << paid using <<getType( )<< Card. << end1;        ;class Bill //包含所有购买商品的账单private:         vector< Item*> items; //包含物品的 vector public:         void add(Item* item) items.push_back(item);          int getTotalPrice( ) /*计算所有item的总价格,代码略*/         void pay(PaymentMethod* paymentMethod) //用指定的支付方式完成支付         

    (4)        (getTotalPrice( ));         ;class PaymentSystempublic:        void pay( )                Bill* bill = new Bill( );               Item* item1= new Item1234,10); Item* item2 = new Item(5678,40);                bill->add(item1); bill->add(item2); //将物品添加到账单中               

    (5)        (new CreditCard(LI SI, 98765432101)); //信用卡支付         ;Intmain( )          

    (6)        = new PaymentSystem( );         payment->pay( );          return 0;

考点:C++程序设计

1
4条数据

其它类目题库