考试简介

  1. 考试对象:
    上海市高等学校信息技术水平考试(SCITE)(官网:欢迎使用上海市高等学校信息技术水平考试(SCITE)报名系统)相对于其他信息技术考试的特点为:对本科生免费。就像对大三学生免费的普通话考试引来众多学生参考一样,SCITE也吸引了一批学生来考。然而关于这考试的信息很少,在B站上也只能找到一位UP主(计算机二级阿福课堂)的付费教程,所以并不太好备考。
  2. 考试科目&考试大纲:
    在上海招考官网查看,例如2025年的场次安排和考试科目介绍在shmeea.edu.cn/download/20250925/1.pdfshmeea.edu.cn/download/20250925/2.pdf
    不同学校的开考科目不同,例如我校为:
    图1 SCITE科目
    图1 SCITE科目
  3. 报名时间:每年不同,如2025年为9月26日(周五)16:00至10月10日(周五)9:00。
  4. 考试成绩拟于2025年12月上旬公布。

PS:上信考虽然免费,但全国计算机等级考试(NCRE)(官网:上海市教育考试院)似乎更有用。

考试经历

报名时卡了个DDL,没什么时间决定考哪科,遂随便报了个二三级Python。后来听考场的老师聊天说,大多数人(甚至报满了名额)都是来考四级人工智能的,有点后悔:可能华为之类的互联网厂商会参看这门考试的成绩?

虽然平时会用python,还是得定点复习。在B站搜到了怎么复习? | 上海市高等学校信息技术水平考试(上信考/SCITE)二三级Python备考小建议_哔哩哔哩_bilibili这位学长(大概)的视频,简介给出了历年试卷链接,里面还附有他写的答案。老实说,我备考一半靠他的卷子、一半靠Gemini,让我们说:谢谢学长!

除自行准备外,开考的学校一般会设一次模拟考,方便学生熟悉考试环境和电脑状况(一般都给spyder或idle,vscode这种能装插件的太超模了);模拟题则是去年的考试题。值得一去。


正式考试那一天,正常来说我所在的第一场从8:30考到11:00,只考两个半小时。

然而,Drama的是,我考到10点,发现电脑卡了。它卡住的触发点是我打开sample.html的行为(正则表达式那道题的素材文件),故我严重怀疑电脑卡住的根本原因是“禁用网页”的命令和“维持考试”的命令冲突了— 假如我手没那么快,用txt打开html,可能不会出现该情况。Anyway,这是机房电脑自己的问题。

好在监考老师给我延长了考试时间 (并且他们还努力地修了近一个小时的电脑,虽然没修好) ,让我能正常考完。让我们说:谢谢老师!


但老实说,我半天突击出来的考试水平不太好,更何况今年的考点和我复习的那套卷子有所不同 。希望能合格吧。(看同学们的分数了)

题型&考点总结

一、单选题(1.5’×10)

8道题能运行程序验证,2道纯概念。期望得分12分。

二、程序填空题(10’×3)(每题4个空)

考点:元组字典循环递归

字典操作:

  1. cart.items() (遍历字典 cart 的键值对)

  2. sta.get(i, 0) + 1 (用 get(i, 0) 获取 sta 字典中 i 的当前计数值,若 i 不存在则返回0。然后加1并存回)

  3. lambda x: x[1] ( sta.items() 得到 (菜名, 次数) 的元组列表 。sort 按次数排序 ,所以 key 应提取元组中索引为 1 的元素)

  4. item[0] (item(菜名, 次数) 元组,item[0] 是菜名)

比较菜。期望得分30分。

三、程序调试题(10’×3)(每题3个错)

考点:

  • 缩进、==int()、函数变量、return语句、break语句

  • 数字和字符转换

    • ord(‘a’) = 97 获取单个字符的 Unicode 编码值
    • chr(97) = a ord() 的逆向操作,用来获取一个整数编码对应的 Unicode 字符
    • str(123) ='123’ 将几乎任何数据类型(如整数、浮点数、布尔值、列表、字典等)转换成它对应的字符串表现形式

比二还菜。期望得分30分。

四、编程题(75’)

这里的5道题指向性都很明显,需要定点复习。下面用2021年真题做例子:

1.数据分析题(17’)

TXT/CSV文件读取与数据处理

1
2
3
4
5
6
7
8
with open(r'path') as f:
reader = csv.reader(f)
next(reader) # 跳过标题行

for row in reader:
if not row:
continue
a = row[0]; b = row[1]; ...

2.运算题(18’)

第二个问会让安装包并import使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
import scre
import math

while True:
n = int(input('请输入正整数(输入0退出程序)'))
if n ==0:
break
else:
sum = 0
for i in range(1,n+1):
sum += 1/(i**2)
p = math.sqrt(6*sum)
print(f'用多项式计算p的值为 {p},最终运算结果为{scre.zna(p)}')

3.图形绘制题(15’)

plt领域大神

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import matplotlib.pyplot as plt
import numpy as np

w=h=6
wh=hh=3

plt.figure(figsize=(w,h))
plt.xlim(-wh, wh)
plt.ylim(-hh, hh)

t = np.arange(0, 2*np.pi, 0.01)
x = wh*(np.cos(t)+(1/2)*np.cos(7*t)+(1/3)*np.sin(17*t))/2
y = hh*(np.sin(t)+(1/2)*np.sin(7*t)+(1/3)*np.cos(17*t))/2

plt.plot(x,y,'blue')

ax = plt.gca()
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))
ax.spines['top'].set_visible(False)
ax.spines['right'].set_visible(False)
ax.set_xticks([])
ax.set_yticks([])

plt.show()

4.数据库应用题(12’)

注意:2025年考了数据的插入,语法为:
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)] VALUES (value1, value2, value3,...valueN);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import sqlite3

conn = sqlite3.connect(r"D:/学术资料/SCITE二三级Python备考用试卷/2020 2021 2023 2024 上信考二三级Python试题(含有自制答案和部分标准答案)/2021-27二三级Python程序设计(2021年版试行考纲)模拟卷/素材/fangyi.db")
cur = conn.cursor()

while True:
name = input('请输入社区名称(输入0退出)')
if name == 0:
break
else:
cur.execute("SELECT 联系人, 电话 FROM lianxi WHERE 社区名称=?", (name,))
result = cur.fetchall()

if result:
for row in result:
print('联系人 \t 电话')
print(f'{row[0]} \t {row[1]}')
else:
print('no info')

cur.close()
conn.close()

5.文本分析题(正则表达式)(13’)

1
2
3
4
5
6
7
8
9
10
11
12
13
import re

f1=open(r"D:/学术资料/SCITE二三级Python备考用试卷/2020 2021 2023 2024 上信考二三级Python试题(含有自制答案和部分标准答案)/2021-27二三级Python程序设计(2021年版试行考纲)模拟卷/素材/h.txt", 'r')
content = f1.read()

str_pattern = r'<a href="(http[^"]+)"\s+mon="ct=1&amp;a=2&amp;c=top&pn=\d{1,2}"\s+target="_blank">\s*([^<]+)\s*</a>'
matches = re.findall(str_pattern, content)
f1.close()

f2=open(r"D:/学术资料/SCITE二三级Python备考用试卷/2020 2021 2023 2024 上信考二三级Python试题(含有自制答案和部分标准答案)/2021-27二三级Python程序设计(2021年版试行考纲)模拟卷/素材/news.csv", 'w')
for i in matches:
f2.write(f'{i[0]}, {i[1]} \n')
f2.close()

注意:

  • \s+ 匹配标签属性之间的空白

    • 当你确定某个地方必须有空白(哪怕只有一个)时,用 \s+
      • 例如:HTML属性之间、单词之间。
    • 当你不确定某个地方有没有空白(可有可无)时,用 \s*
      • 例如:标签的开头和结尾、代码的缩进、一行的末尾。
  • () 表示一个组

  • [^"]+ 表示多个不是 " 的元素

  • d{1,2} 表示1-2个数字


本站总访问量次!

本站由 Yantares 使用 Stellar 1.33.1 主题创建。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

发表了 96 篇文章 · 总计 175k 字