PROBLEM SET
题库
按难度与知识点筛选,找到适合的练习题。
题目列表
共 67434 题
A27071
唯一分解定理描述了关于正整数的什么性质?( )
C-L5
困难
--
A27072
下面的代码用于判断整数n是否是质数,错误的说法是( )。bool is_prime(int n){ if(n<= 1)return false; int finish number =static_cast<int>(sqrt(n))+ 1; for(int i=2;i<finish number; ++i){ if(n%i== 0) return false; } return true; }
C-L5
困难
--
A27073
下列C++代码用两种方式求解两个正整数的最大公约数,说法错误的是( )。int gcd0(int big,int smal1){ if(big<small){ swap(big,small); } if(big%small==0){ return small; } return gcd0(small,big %small); } int gcd1(int big, int small){ if(…
C-L5
困难
--
A27074
下列C++代码判断一个正整数是否是质数,说法正确的是( )。bool is_prime(int n){ if(n<= 1) return false; if(n==2||n==3l|n== 5) return true; if(n%2=0ln%3==0|n%5==0) return false; int i = 7; int step =4; int finish number = sqrt(n…
C-L5
困难
--
A27075
下列C++代码用循环链表解决约瑟夫问题,即假设 n 个人围成一圈,从第一个人开始数,每次数到第 k 个的人就出圈,输出最后留下的那个人的编号。横线上应填写( )。struct Node{ int data; Node* next; }; Node* createcircularList(int n){ Node* head= new Node{1, nullptr}; Node* prev= h…
C-L5
困难
--
A27076
基于上题代码正确的前提下,填入相应代码完善 append() ,用于在双向链表尾部增加新节点,横线上应填写( )。void append(int data){ Node* newNode = new Node{data, nullptr, nullptr}; if(is_empty()){ head = tail= newNode; }else { ___________________ } +…
C-L5
困难
--
A27077
下面C++代码实现双向链表。函数 is_empty() 判断链表是否为空,如链表为空返回 true ,否则返回false 。横线处不能填写( )。//节点结构体 struct Node { int data; Node* prev; Node* next; }; //双向链表结构体 struct DoubleLink{ Node* head; Node* tail; int size; Doub…
C-L5
困难
--
A27078
与数组相比,链表在( )操作上通常具有更高的效率。
C-L5
困难
--
A27081
下面代码采用动态规划求解零钱兑换问题:给定n种硬币,第i种硬币的面值为 coins[i-1] ,目标金额为amt,每种硬币可以重复选取,求能够凑出目标金额的最少硬币数量;如果不能凑出目标金额,返回 -1 。( )int coinchangeDPcomp(vector<int>&coins,int amt){ int n=coins.size(); int MAX = amt + 1; vecto…
C-L6
困难
--
A27082
在树的深度优先搜索(DFS)中,使用栈作为辅助数据结构以实现“先进后出”的访问顺序。( )
C-L6
困难
--
A27083
下列代码中的tree向量,表示的是一棵完全二叉树(-1代表空节点)按照层序遍历的结果。( )#include <vector>std::vector<int>tree={1,2,3,4,-1,6,7}
C-L6
困难
--
A27084
下列C++ 代码可以成功编译,并且子类child的实例能通过其成员函数访问父类Parent的属性value。( )class Parent{ private: int value =100; }; class child :public Parent{ public: int get_private_val(){ return value;//尝试访问父类的私有成员 } };
C-L6
困难
--
A27085
执行下列代码, my_dog.name 的最终值是 Charlie 。( )class Dog { public: std::string name; Dog(std::string str):name(str){} }; int main(){ Dog my_dog("Buddy"); my_dog.name = "Charlie"; return 0; }
C-L6
困难
--
A27087
对一棵二叉排序树进行中序遍历,可以得到一个递增的有序序列。( )
C-L6
困难
--
A27088
为了实现一个队列,使其出队操作( pop )的时间复杂度为0(1)并且避免数组删除首元素0(n) 问题,一种常见且有效的方法是使用环形数组,通过调整队首和队尾指针来实现。( )
C-L6
困难
--
A27090
构造函数可以被声明为virtual。( )
C-L6
困难
--
A27091
给定n个物品和一个最大承重为W的背包,每个物品有一个重wt[i] 和价val[i] ,每个物品只能选择放或不放。目标是选择若⼲个物品放入背包,使得总价值最大,且总重量不超过W 。关于下面代码,说法正确的是( )。int knapsack1D(int W, vector<int>& wt, vector<int>& val, int n){ vector<int>dp(kh1,0); for(in…
C-L6
困难
--
A27092
以下关于动态规划算法特性的描述,正确的是( )。
C-L6
困难
--
A27093
下面代码实现一个二叉排序树的插入函数(没有相同的数值),横线处应填入( )。struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int x):val(x),left(nullptr),right(nullptr){} }; void insert(TreeNode*& root, int key){ if(!ro…
C-L6
困难
--
A27094
给定一个二叉树,返回每一层中最大的节点值,结果以数组形式返回,横线处应填入( )。#include <vector> #include <queue> #include <algorithm> struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int x):val(x),left(nullptr),right(…
C-L6
困难
--