CSP-J2024全真模拟题 阅读程序题3+程序填空题
由于明天考试,今天晚上给大家提供详细的答案和解析,求关注点赞和评论
28.将第 1 行改为 #include<iostream>,程序的运行结果不变。()
A.对B.错
29.本程序用到了队列而不是栈的思想。()
A.对B.错
30.将第 12 行中的 '0' 替换为 48,程序的运行结果不会改变。()
A.对B.错
31.如果输入的都是非零数字和加、减、乘、除四则运算符号,那么运行程序输出的值一定是正整数。()
A.对B.错
32.本题的主要思想是求()表达式的值。
A.前缀B.后缀C.中缀D.逻辑
33.若输入 234--,那么程序的输出结果是()。
A. 3B. 2C. 1D. 0
34.(4分)若输入数据为 5432*%/,则输出是()。
A. 3B. 2C. 1D. 0
答案与解析:
28. B:将第1行改为#include<iostream>,程序的运行结果可能改变,因为<bits/stdc++.h>包含了所有C++标准库,而<iostream>只包含输入输出流库,缺少其他必要的库可能导致编译错误或程序行为改变,而且程序很明显用来栈,需要栈库。
29. B:本程序用到了栈的思想,而不是队列。从代码中可以看出,使用了stack容器,并且操作符合栈的后进先出(LIFO)特性。
30. A:将第12行中的'0'替换为48,程序的运行结果不会改变,因为在ASCII码表中,字符'0'对应的数值是48,所以替换后逻辑不变。
31. B:如果输入的都是非零数字和加、减、乘、除四则运算符号,运行程序输出的值不一定是正整数,因为可能存在减法或除法运算导致结果为负数或非整数。
32. B:本题的主要思想是求后缀表达式的值。从代码中可以看出,输入的是一个后缀表达式,然后通过栈来进行计算。
33. C:若输入234--,那么程序的输出结果是1。根据后缀表达式的计算规则,234先入栈,然后遇到两个减号,分别进行两次减法运算,最终得到1。
34. C:略
阅读程序题
35.①处应填()。
A. flag = falseB. flag = trueC. vis[1] = falseD. vis[1] = true
36.②处应填()。
A. vis[i] = trueB. a[i] = iC. vis[a[i]] = trueD. vis[a[i]] = false
37.③处应填()。
A.a[i] = iB.a[i] = jC.a[i] = trueD.a[i] = false
38.④处应填()。
A.j<=mB.j<=kC.j<=nD.j<=i
39.⑤处应填()。
A. exitB. return 0C. continueD. break
答案与解析:
①处应填:A. flag = false
解析:在输出完一组排列后,需要将flag设置为false,以便在找到下一组排列时再重新设置为true。
②处应填:D. vis[a[i]] = false
解析:为了回溯到上一层,需要将当前位置i的数标记为未访问,以便尝试下一个数。
③处应填:B. a[i] = j
解析:找到一个未访问的数j后,将其赋值给当前位置i,并标记为已访问。
④处应填:C. j<=n
解析:内层循环用于寻找下一个未访问的数,其范围应该是从1到n。
⑤处应填:D. break
解析:当内层循环找到一个未访问的数并赋值后,需要跳出内层循环,继续外层循环的下一个数的寻找。
40.①处应填()。
A. &pointB. point + iC. &point +iD. point[i]
41.②处应填()。
A. vis[i] = iB. vis[i] = point[i]C. vis[i] = trueD. vis[i] = false
42.③处应填()。
A. !vis[i]B. vis[i]C. !vis[point[i]]D. vis[point[i]]
43.④处应填()。
A. j = point[i]B. j = point[j]C. i = point[j]D. i = point[i]
44.⑤处应填()。
A. cnt = j+1B. cnt = n-jC. ++cntD. cnt = n-i
答案与解析:
①处应填(D)。解析:需要读取每个顶点的指向,并存储在point数组中,所以应使用point[i]来接收输入。
②处应填(D)。解析:在读取每个顶点的指向之前,需要将vis数组初始化为false,表示所有顶点都未被访问过。
③处应填(C)。解析:在DFS过程中,如果遇到一个未被访问过的顶点,则开始DFS。所以应检查point[i]指向的顶点是否被访问过。
④处应填(B)。解析:在DFS过程中,需要不断访问point[j]指向的顶点,直到找到一个环或者访问完所有可达的顶点。
⑤处应填(C)。解析:每当找到一个环时,需要将环的计数器cnt加1。