学习C++从娃娃抓起!记录下CSP-J备考学习过程中的题目,记录每一个瞬间。
附上汇总贴:历年CSP-J初赛真题解析 | 汇总_热爱编程的通信人的博客-CSDN博客
#include <iostream>
using namespace std;
bool isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
int countPrimes(int n) {
int count = 0;
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
count++;
}
}
return count;
}
int sumPrimes(int n) {
int sum = 0;
for (int i = 2; i <= n; i++) {
if (isPrime(i)) {
sum += i;
}
}
return sum;
}
int main() {
int x;
cin >> x;
cout << countPrimes(x) << " " << sumPrimes(x) << endl;
return 0;
}
第16题
当输入为“10”时,程序的第一个输出为“4”,第二个输出为“17”。( )
A.正确
B.错误
【答案】:A
第17题
若将 isPrime(i)函数种的条件改为 i<=n/2,输入“20”时,countPrimes(20)的
输出将变为“6”。( )
A.正确
B.错误
【答案】:B
第18题
sumPrimes 函数计算的是从 2 到 n 之间的所有素数之和( )
A.正确
B.错误
【答案】:A
第19题
当输入为“50”时,sumPrimes(50)的输出为( )
A.1060
B.328
C.381
D.275
【答案】:B
第20题
如果将 for(int i=2;i*i<=n;i++)
改为 for(int i=2;i<=n;i++)
,输入“10”时,程序的输出( )
A.将不能正确计算 10 以内素数个数及其和
B.仍然输出“4”和“17”
C.输出“3”和 10
D.输出结果不变,但运算时间更短
【答案】:A
#include <iostream>
#include <vector>
using namespace std;
int compute(vector<int> &cost) {
int n = cost.size();
vector<int> dp(n + 1, 0);
dp[1] = cost[0];
for (int i = 2; i <= n; i++) {
dp[i] = min(dp[i - 1], dp[i - 2]) + cost[i - 1];
}
return min(dp[n], dp[n - 1]);
}
int main() {
int n;
cin >> n;
vector<int> cost(n);
for (int i = 0; i < n; i++) {
cin >> cost[i];
}
cout << compute(cost) << endl;
return 0;
}
第21题
当输入的 cost 数组为{10,15,20}时,程序的输出为 15( )
A.正确
B.错误
【答案】:A
第22题
如果将 dp[i-1]改为 dp[i-3],程序可能会产生编译错误( )
A.正确
B.错误
【答案】:B
第23题
程序总是输出 cost 数组种的最小的元素( )
A.正确
B.错误
【答案】:B
第24题
当输入的 cost 数组为{1,100,1,1,1,100,1,1,100,1}时,程序的输出为( )。
A.“6”
B.“7”
C.“8”
D.“9”
【答案】:A
第25题
如果输入的 cost 数组为{10,15,30,5,5,10,20},程序的输出为( )。
A.“25”
B.“30”
C.“35”
D.“40”
【答案】:B
第26题
若将代码中的 min(dp[i-1],dp[i-2])+cost[i-1]修改为 dp[i-1]+cost[i-2],输入 cost 数组为{5,10,15}时,程序的输出为( )。
A.“10”
B.“15”
C.“20”
D.“25”
#include <iostream>
#include <cmath>
using namespace std;
int customFunction(int a, int b) {
if (b == 0) {
return a;
}
return a + customFunction(a , b - 1);
}
int main() {
int x, y;
cin >> x >> y;
int result = customFunction(x, y);
cout << pow(result, 2) << endl;
return 0;
}
第27题
当输入为“2 3”时,customFunction(2,3)的返回值为“64”。( )
A.正确
B.错误
【答案】:B
第28题
当 b 为负数时,customFunction(a,b) 会陷入无限递归。( )
A.正确
B.错误
【答案】:A
第29题
当 b 的值越大,程序的运行时间越长。( )
A.正确
B.错误
【答案】:A
第30题
当输入为“5 4”时,customFunction(5,4) 的返回值为( )。
A.5
B.25
C.250
D.625
【答案】:B
第31题
如果输入 x = 3 和 y = 3,则程序的最终输出为( )
A.“27”
B.“81”
C."144“
D."256”
【答案】:C
第32题
若将 customFunction 函数改为“return a + customFunction(a-1,b-1);” 并输入“3 3”,则程序的最终输出为( )。
A.9
B.16
C.25
D.36
【答案】:D
标签:10,return,真题,int,初赛,cost,答案,CSP,dp From: https://blog.csdn.net/guolianggsta/article/details/142416694