当前位置: 首页 > news >正文

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。

 


http://www.mrgr.cn/news/31198.html

相关文章:

  • OJ 旋转图像
  • postgresql gcc编译选项解释
  • Java集成gdal 处理解析tiff和shp数据
  • 大模型的实践应用30-大模型训练和推理中分布式核心技术的应用
  • iftop流量监控工具
  • 鸿蒙OpenHarmony【轻量系统内核通信机制(消息队列)】子系统开发
  • 红日药业携手实在智能,构建RPA数字员工平台满足业务一体化需求 | 实在RPA案例
  • cmake--set_target_properties
  • 20240921 每日AI必读资讯
  • 基于Java的房地产在线营销管理系统研究与实现
  • 浅谈死锁以及判断死锁的方法
  • QEMU 运行Win11 成功的例子
  • fastadmin后台自定义按钮,并且刷新页面
  • 线程池的类型
  • 【测试】博客系统测试报告
  • mybatisplus乐观锁
  • Nginx处理带有分号“;“的路径
  • 【手把手】Windows上安装Python,小白必看
  • 编辑器拓展(入门与实践)
  • VSCode 定义代码模板