最流行的做网站语言,怎么做网站管理,网站建设研究,学校网站群管理系统建设项目2023年6月GESP C 三级试卷解析
一、单选题#xff08;每题2分#xff0c;共30分#xff09;
1.高级语言编写的程序需要经过以下#xff08; #xff09;操作#xff0c;可以生成在计算机上运行的可执行代码。
A.编辑
B.保存
C.调试
D.编译
【答案】D
【考纲知识点…2023年6月GESP C 三级试卷解析
一、单选题每题2分共30分
1.高级语言编写的程序需要经过以下 操作可以生成在计算机上运行的可执行代码。
A.编辑
B.保存
C.调试
D.编译
【答案】D
【考纲知识点】编程环境(一级)
【解析】本题属于考察计算机基础知识中的编辑、编译、解释、调试的概念其中编辑是编写修改代码保存是将代码保存下来调试是测试运行代码而编译是将源程序翻译成可执行代码所以本题正确答案为D。
2.二进制数11.01在十进制下是 。
A. 3.01
B. 3.05
C. 3.125
D. 3.25
【答案】D
【考纲知识点】进制转换(三级)
【解析】本题属于考察计算机基础知识中的进制与进制转换二进制11.01换算成10进制为3.25。所以本题正确答案为D。
3.已知大写字符A的ASCII编码的十六进制表示为0x41则字符F的ASCII编码的十六进制表示为 。
A. 46
B. 47
C. 48
D. 49
【答案】A
【考纲知识点】ASCII编码(二级)
【解析】本题属于考察计算机基础知识中的ASCII码已知A的ASCII编码十六进制表示为0x41则F的ASCII编码比A的ASCII编码大5所以字符F的ASCII编码十六进制表示为46。所以本题正确答案为A。
4.以下哪个不是C语言中的运算符
A.
B.
C. *
D. **
【答案】D
【考纲知识点】基本运算一级位运算三级
【解析】本题属于考察计算机基础知识中的运算符其中、、*分别可以表示是按位与、逻辑与和乘法但**不是C语言中的运算符。所以本题正确答案为D。
5.如果字符串定义为char str[] Hello;则字符数组str的长度为 。
A. 0
B. 5
C. 6
D. 7
【答案】C
【考纲知识点】字符串三级
【解析】本题属于考察计算机基础知识中的字符串概念。数组初始化时[]内可省略数组长度此时数组长度为初始值的长度。 字符串Hello的长度为5但是字符串最后需要额外保存一个\0符号作为结束位所以字符数组str的长度为6。所以本题正确答案为C。
6.一个数组定义为double array[3];则这个数组占用内存的大小为 。
A. 24
B. 12
C. 6
D. 3
【答案】A
【考纲知识点】计算机的存储二级一维数组三级
【解析】本题属于考察计算机基础知识中的内存概念double类型的数据占用内存为8字节位array数组共使用了3个double类型的数据所以内存大小为24。所以本题正确答案为A。
7.以下数组定义符合C语言语法的是 。
A. int a[];
B. int b[3];
C. int c[3.0];
D. int[3] d;
【答案】B
【考纲知识点】一维数组三级
【解析】本题属于考察计算机基础知识中的数组概念在C中每个字符都有对应的asciiASCII编码当需要使用整数类型的值时可以将字符通过对应的asciiASCII编码转换为整数所以int b[’3’]; 等价于int b[51];。所以本题正确答案为B。
8.下列关于进制的叙述不正确的是 。
A.正整数的二进制表示中只会出现0和1。
B. 10不是2的整数次幂所以十进制数无法转换为二进制数。
C.从二进制转换为8进制时可以很方便地由低到高将每3位二进制位转换为对应的一位8进制位。
D.从二进制转换为16进制时可以很方便地由低到高将每4位二进制位转换为对应的一位16进制位。
【答案】B
【考纲知识点】进制转换三级
【解析】本题属于考察计算机基础知识中的进制与进制转换概念任意数字都可以在不同的进制之间转换所以本题正确答案为B。
9.下列关于C语言中数组的叙述不正确的是 。
A.数组必须先定义后使用。
B.数组的所有元素在内存中是连续存放的。
C.除了字符数组在定义数组时“[]”内必须有常数。
D.不能对数组赋值但可以对数组的每个基础类型的元素赋值。
【答案】C
【考纲知识点】一维数组三级
【解析】本题属于考察计算机基础知识中的数组概念任意类型的数组只要有初始化在数组定义时就可以省略不仅可以在 “[]”内放常数也可以放变量[]内的常数。所以本题正确答案为C。
10.一个int类型的值做以下哪个操作一定会变回原来的值
A.左移3位再右移3位。
B.右移3位再左移3位。
C.按位或7再按位与-8。
D.按位异或7再按位异或7。
【答案】D
【考纲知识点】位运算三级
【解析】本题属于考察计算机基础知识中的位运算相关概念A选项可能存在越界的问题B选项会将低位的3位清零C选项肯定是错的D选项异或两次7等同于原数所以本题正确答案为D。
11.如果a和b均为int类型的变量下列表达式能正确判断“a等于b”的是 。
A. ((a / b) 1)
B. ((a b) a)
C. ((a ^ b) 0)
D. ((a | b) b)
【答案】C
【考纲知识点】位运算三级
【解析】本题属于考察计算机基础知识中的位运算相关概念。
选项A例如a为5b为3则a/b结果为1但a并不等于b
选项B例如a为5b为15则ab结果为5但a并不等于b
选项C(a ^ b) 0说明a和b的二进制位上的每一位都相等等价于“a等于b”
选项D例如a为5b为15则a|b结果为15但a并不等于b
所以本题正确答案为C。
12.如果a为int类型的变量下列哪个表达式可以正确求出满足“小于等于a且是4的倍数”的整数中最大的
A. (a (~3))
B. ((a 2) 2)
C. (a ^ 3)
D. ((a - 1) | 3) 1
【答案】A
【考纲知识点】位运算三级
【解析】本题属于考察计算机基础知识中的位运算相关概念a一个数得到的必然是小于等于a的数同时题目要求是4的倍数也就是最后两位要等于0(~3)正好是除了最后两位是0其余全是1满足要求所以本题正确答案为A。
13.在下列代码的横线处填写 可以使得输出是“24 12”。 A. a a ^ b
B. b a ^ b
C. a a b
D. b a b
【答案】B
【考纲知识点】位运算三级
【解析】本题属于考察计算机基础知识中的位运算相关概念因为异或运算中a^a0;a^0a当选项为B时第5行b(a^b),第6行aa^ba^(a^b)b,第7行ba^bbb^(a^b)a,正好对a,、b进行了交换。所以本题正确答案为B。
14.在下列代码的横线处填写 可以使得输出是“2”。 A. min array[i]
B. min array[i]
C. min array[i]
D.以上均不对。
【答案】D
【考纲知识点】循环结构(一级),一维数组三级
【解析】本题属于考察计算机基础知识中的数组相关概念从结果输出2以及变量名字min上可以看出题目本身想求一个最小值但是初始化为min0所以选项ABC的最终结果都不会等于2所以本题正确答案为D。
15.在下列代码的横线处填写 可以使得输出不是“31”。 A. res res array[i]
B. res res array[i]
C. res res | array[i]
D. res res ^ array[i]
【答案】B
【考纲知识点】位运算(三级)
【解析】本题属于考察计算机基础知识中的数组和位运算相关概念结果输出31的二进制位是11111而数组中的5个数的二进制分别是1、10、100、1000和10000所以选项A、C、D都会输出31只有B选项会输出0所以本题正确答案为B。
二、判断题每题2分共20分
1.一个算法可以用不同的形式来描述但要求描述比较规范因此不能用自然语言描述。
【答案】错
【考纲知识点】算法的概念与描述三级
【解析】本题属于考察算法相关概念算法不仅可以用程序语言描述也可以通过自然语言描述例如中文等所以本题错误。
2.域名是由一串用点分隔的名字来标识互联网上一个计算机或计算机组的名称CCF编程能力等级认证官方网站的域名是gesp.ccf.org.cn其中顶级域名是gesp。
【答案】错
【考纲知识点】计算机存储与网络二级
【解析】本题属于考察域名相关概念域名是由两个或两个以上的词构成中间用点号分隔开最右边的那个词称为顶级域名所以顶级域名是cn所以本题错误。
3.数据编码方式只有原码、反码、补码三种。
【答案】错
【考纲知识点】数据编码(三级)
【解析】本题属于考察数据编码相关概念数据编码的方式非常多例如格雷码、哈夫曼编码等它们适合使用的场景各不相同例如我们熟悉的哈夫曼编码。所以本题错误。
4.在C语言中长度为n的数组合理的下标范围是从0到n包括0和n。
【答案】错
【考纲知识点】一维数组(三级)
【解析】本题属于考察数组相关概念长度为n的数组合理的下标范围是0到n-1不包括n所以本题错误。
5.字符常量\0常用来表示字符串结束它和字符常量0是不同的。
【答案】对
【考纲知识点】字符串(三级)
【解析】本题属于考察字符串相关概念字符常量\0是字符串和字符数组的结束标记它的ASCII码为0字符常量0的ASCII码为48与\0是不同的字符常量。所以本题正确。
6.在C语言中可以使用字符如0作为数组下标。
【答案】对
【考纲知识点】位运算(三级)【解析】本题属于考察数组相关概念在C中每个字符都有对应的asciiASCII编码遍码当需要使用整数类型的值时可以将字符通过对应的asciiASCII遍码转换为整数0的ASCII编码ascii遍码为48所以int b[0] 等价于int b[48]所以本题正确。
7.在C语言中数组被定义时它的大小就确定了。
【答案】对
【考纲知识点】一维数组(三级)
【解析】本题属于考察数组相关概念在C中定义数组的时候就需要有明确的数组大小所以本题正确。
8.计算机中存储的数据都是二进制形式。因此在使用C语言编写程序时将所有十进制数改写为相同数值的二进制数会使得程序运行效率更高。
【答案】错
【考纲知识点】编程环境(一级)
【解析】本题属于考察程序的基本概念无论编写程序时使用十进制还是二进制编译器都会翻译为程序都会使用二进制机器指令进行运行所以运行效率是一样的所以本题错误。
9.在C语言中表达式(0xf 015)的值为true。
【答案】错
【考纲知识点】进制转换(三级)
【解析】本题属于考察程序的进制相关概念0xf是16进制下的f等于10进制的15015是8进制下的15等于10进制的13。可见所以它们不相等所以本题错误。
10.如果a为int类型的变量且表达式((a | 3) 3)的值为true则说明a在从0到3之间可能为0、可能为3。
【答案】对
【考纲知识点】位运算(三级)
【解析】本题属于考察位运算相关概念((a|3)3)说明a只在二进制的最低位和第二低位可能为1所以0a3所以本题正确。
三、编程题每题25分共50分
1.春游
【问题描述】
老师带领同学们春游。已知班上有N位同学每位同学有从0到 N-1 的唯一编号。到了集合时间老师确认是否所有同学都到达了集合地点就让同学们报出自己的编号。到达的同学都会报出的编号不会报出别人的编号但有的同学很顽皮会多次报出。你能帮老师找出有哪些同学没有到达吗
【输入描述】
输入包含2行。第一行包含两个整数N和M表示班级有 N 位同学同学们共有 M 次报出编号。约定2N,M1000。
第二行包含 M 个整数分别为 N 次报出的编号。约定所有编号都在合理范围内。
【输出描述】
输出一行。如果所有同学都到达则输出 N否则由小到大输出所有未到达的同学编号空格分隔。
【样例输入1】 【样例输出1】 【样例输入2】 【样例输出2】 【解题思路】
1. 使用arrive数组来记录每个同学是否到达初始为false表示没有到达。
2. 每有一个同学报出编号就将arrive数组对应的编号改为true。
3. 遍历arrive数组将数组中对应位置为false的下标输出并特判所有人均到达的情况。
【考纲知识点】循环结构一级模拟法、一维数组三级
【参考程序】 2.密码合规检测
【问题描述】
网站注册需要有用户名和密码编写程序以检查用户输入密码的有效性。合规的密码应满足以下要求
1、只能由a-z之间26个小写字母、A-Z之间26个大写字母、0-9之间10个数字以及!#$四个特殊字符构成。
2、密码最短长度6个字符密码最大长度12个字符。
3、大写字母、小写字母和数字必须至少有其中两种以及至少有四个特殊字符中的一个。
【输入描述】
输入一行不含空格的字符串。约定长度不超过100。该字符串被英文逗号分隔为多段作为多组被检测密码。
【输出描述】
输出若干行每行输出一组合规的密码。
输出顺序以输入先后为序即先输入则先输出。
【样例输入1】 【样例输出1】 【样例解释1】
输入被英文逗号分为了四组被检测密码“seHJ12!”、“sjdkffH$123”、“sdf!12HDHa!”、“123^YUhg!”。其中“sdf!12HDHa!”长度超过12个字符不合规“123^YUhg!”包含四个特殊字符之外的字符“^”不合规。
【解题思路】
1. 首先遍历输入的字符串line并按照,进行分隔。
2. 对于分隔出来的每一个密码先判断密码长度是否符合要求然后遍历所有的字符并用hasChasLhasDhasS分别记录是否存在大写字母小写字母数字以及特殊字符若存在以上四种字符外的其它字符则直接返回非法。
3. 判断是否存在特殊字符若不存在返回非法。
4. 判断是否存在两种及以上的大写字母、小写字母和数字若不存在返回非法。
5. 以上情况都存在返回合法并输出。
【考纲知识点】多层分支/循环结构二级模拟法、字符串三级
【参考程序】