360网站免费推广怎么做,电子商务公司名字,模板规格尺寸,做电商能赚钱吗2023年12月真题
单选题#xff08;每题 2 分#xff0c;共 30 分#xff09; 第 1 题 以下C不可以作为变量的名称的是( )。 A. CCF GESPB. ccfGESPC. CCFgespD. CCF_GESP 正确答案#xff1a;A 解析#xff1a;
A: 变量名不能包含空格#xff0c;因此 “CCF GESP” 是不…2023年12月真题
单选题每题 2 分共 30 分 第 1 题 以下C不可以作为变量的名称的是( )。 A. CCF GESPB. ccfGESPC. CCFgespD. CCF_GESP 正确答案A 解析
A: 变量名不能包含空格因此 “CCF GESP” 是不合法的。B: “ccfGESP” 是合法的合符变量命名规则使用了大小写字母。C: “CCFgesp” 同样是合法的使用了大小写字母符合命名规则。D: “CCF_GESP” 使用了下划线和大写字母这也是合法的。 第 2 题 C表达式10 - 3 * (2 1) % 10的值是( )。 A. 0B. 1C. 2D. 3 正确答案B 解析
A: 0 不正确实际计算得1。B: 正确答案按照操作符优先级计算得1。C: 2 不正确实际计算得1。D: 3 不正确实际计算得1。 第 3 题 假设现在是上午⼗点求出N⼩时正整数后是第⼏天⼏时如输⼊20⼩时则为第2天6点如N输⼊4则为今天14点。为实现相应功能应在横线处填写代码是( )。 int N, dayX, hourX;
cin N;
dayX ______, hourX _______;
if(dayX 0)cout 今天 hourX 点;
elsecout 第 (dayX 1) 天 hourX 点;A. (10 N) % 24 , (10 N) / 24B. (10 N) / 24 , (10 N) % 24C. N % 24, N / 24D. 10 / 24 , 10 % 24 正确答案B 解析
A: 不正确计算顺序颠倒会导致天数和小时数错误。B: 正确的计算方式正确处理小时数和天数的换算。C: 不正确没有加上当前的时间10点。D: 不正确10 / 24 结果为010 % 24 结果为10无法正确计算时间。 第 4 题 下面的程序用于判断N是否为偶数横线处应填写代码是 。 cin N;
if(_____)cout 偶数;
elsecout 奇数;A. N % 2 0B. N % 2 0C. N % 2D. N % 2 ! 0 正确答案A 解析
A: 正确判断条件符合偶数的定义。B: 语法错误应为比较操作 而非赋值操作 。C: 不正确因为该条件判断奇数而非偶数。D: 不正确因为该条件判断奇数而非偶数。 第 5 题 下面对C代码执行后输出的描述正确的是 。 cin N;
cnt 0;
for(int i 1; i N; i)cnt 1;
cout cnt;A. 如果输入的N是小于等于2的整数第5行将输出0。B. 如果输入的N是大于等于2的整数第5行将输出N-1。C. 如果输入的N是大于等于2的整数第5行将输出N。D. 以上说法均不正确。 正确答案B 解析
A: 如果输入的N是小于等于2的整数第5行将输出0不正确对于N2输出为1。B: 如果输入的N是大于等于2的整数第5行将输出N-1正确循环从1到N-1共计N-1次。C: 如果输入的N是大于等于2的整数第5行将输出N不正确输出应为N-1。D: 以上说法均不正确不正确选项B是正确的。 第 6 题 下面C代码执行后的输出是 。 cnt 0;
for(int i 1; i 10; i){cnt 1;i 2;
}
cout cnt;A. 10B. 9C. 3D. 1 正确答案C 解析
A: 不正确循环执行次数少于10。B: 不正确循环执行次数少于9。C: 正确i从1开始每次增加3共执行3次。D: 不正确循环执行次数多于1次。 第 7 题 下面C代码执行后的输出是 。 cnt 0;
for(int i 1;i 20; i){if(i%2)continue;else if(i%30 i%50)break;cnt i;
}
cout cnt;A. 90B. 44C. 20D. 10 正确答案A 解析
A: 正确总和为90。B: 不正确总和达到90。C: 不正确总和超过20。D: 不正确总和超过10。 第 8 题 下面C代码执行后的输出是 。 N 10;
cnt 0;
while(1){if(N 0) break;cnt 1;N - 2;
}
cout cnt;A. 11B. 10C. 5D. 4 正确答案C 解析
A: 不正确循环执行次数少于11。B: 不正确循环执行次数少于10。C: 正确N从10开始每次减2共执行5次。D: 不正确循环执行次数多于4次。 第 9 题 下面C代码用于判断一个数是否为质数素数在横线处应填入代码是 。 cin N;
cnt 0;
for(int i 1; i N 1; i)if(N % i 0)_____________;
if(cnt 2)cout N 是质数。;
elsecout N 不是质数。;A. cnt 1B. cnt 2C. cnt 1D. cnt 1 正确答案D 解析
A: 不正确只会在第一次满足条件时计数错误。B: 不正确只会在第一次和第二次满足条件时计数错误。C: 语法错误应为cnt 1。D: 正确计数器在每次满足条件时自增1。 第 10 题 对下面的代码描述正确的是 。 #include stdlib.h
using namespace std;
int main(){int arr[] {2,6,3,5,4,8,1,0,9,10};for(int i 0; i 10; i)cout arr[i] ;cout i endl;cout endl;return 0;
}A. 输出2 6 3 5 4 8 1 0 9 10 10B. 输出2 6 3 5 4 8 1 0 9 9C. 输出2 6 3 5 4 8 1 0 9 10D. 提示有编译错误 正确答案D 解析
A: 不正确代码有错误。B: 不正确代码有错误。C: 不正确代码有错误。D: 正确代码中访问未定义的变量i。 第 11 题 执行下面C代码后输出是 。 cnt 0;
for(i 10; i 3; i - 3)cnt cnt i;
cout cnt;A. 3B. 21C. 27D. 49 正确答案B 解析
A: 不正确计算错误。B: 正确10 7 4 21。C: 不正确计算错误。D: 不正确计算错误。 第 12 题 定义变量char c 下面对c赋值的语句不符合语法的是( )。 A. c (char)66;B. c (char)(66);C. c char(66);D. c char 66; 正确答案D 解析
A: 正确合法的类型转换和赋值。B: 正确合法的类型转换和赋值。C: 正确合法的类型转换和赋值。D: 不正确缺少括号语法错误。 第 13 题 下图所示C代码对大写字母’A’ 到’Z’ 分组对每个字母输出所属的组号那么输入’C’ 时将输出的组号是( )。 char c;
while(1){cin c;if(c q) break;switch(c){case A : cout 1; break;case B : cout 3; break;case C : cout 3; break;case D : cout 5; break;case E : cout 5; break;default : cout 9;}cout endl;
}A. 3B. 3 5C. 3 5 9D. 以上都不对 正确答案B 解析
A: 不正确输入’C’的输出为3。B: 正确根据switch语句输入’C’的输出为3E’的输出为5。C: 不正确输入’C’的输出为3。D: 不正确选项B是正确的。 第 14 题 某公司新出的一款无人驾驶的小汽车通过声控智能驾驶系统乘客只要告诉汽车目的地车子就能自动选择一条优化路线告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的。 A. 麦克风B. 扬声器C. 油量表D. 传感器 正确答案C 解析
A: 不正确麦克风用于接收语音指令是必须的。B: 不正确扬声器用于提供语音反馈是必须的。C: 正确油量表仅用于显示油量不直接影响选路。D: 不正确传感器用于感知环境是必须的。 第 15 题 现代计算机是指电子计算机它所基于的是 体系结构。 A. 艾伦·图灵B. 冯·诺依曼C. 阿塔纳索夫D. 埃克特-莫克利 正确答案B 解析
A: 不正确图灵是计算机科学的奠基人之一但现代计算机体系结构主要基于冯·诺依曼的设计。B: 正确冯·诺依曼体系结构是现代计算机的基础设计。C: 不正确阿塔纳索夫设计了早期的电子计算机但其结构未广泛应用于现代计算机。D: 不正确尽管他们是ENIAC计算机的设计者但现代计算机体系结构主要基于冯·诺依曼的设计。
二、判断题每题2分共20分 第 1 题 C表达式int(3.14)的值为3。( ) 正确答案√
解析
C中的 int(3.14) 会将浮点数3.14转换为整数3。 第 2 题 C语句cout (2 * 3, 3 % 10, 23)的输出为6,3,5。 ( ) 正确答案×
解析
逗号运算符返回最后一个表达式的值所以 cout (2 * 3, 3 % 10, 2 3) 实际输出为5。 第 3 题 for(int i 1; i 10; i 3;) ;表⽰i从1开始到10结束间隔为3相当于1、4、7、10。 正确答案×
解析
i 的值依次为1、4、7当 i 达到10时不满足 i 10循环结束所以 i 的值不会达到10。 第 4 题 C表达式010100001的值为111。 正确答案×
解析
前导0表示八进制所以 010 为八进制的10即十进制的8001 为八进制的1所以表达式的值为8 100 1 109。 第 5 题 if语句中的条件表达式的结果可以为int类型。 正确答案√
解析
在C中if语句的条件表达式可以是int类型非零值为真零为假。 第 6 题 在下⾯的C代码while(1) continue;中由于循环中的continue是⽆条件被执⾏因此将导致死循环。 正确答案√
解析
while(1) 是一个无限循环continue 语句会使得控制流直接回到循环的开头因此会导致死循环。 第 7 题 C表达式 (‘1’‘1’‘2’? flag1:flag2) 的结果值和表达式 (flag 2)的相同。 正确答案×
解析
11 的ASCII值相加等于98不等于字符’2’的ASCII值50因此表达式 (112? flag1:flag2) 的结果是 flag2与 flag2 的结果不同。 第 8 题 在C的程序中不能⽤scanf作为变量名。 正确答案×
解析
scanf 不是C的关键字可以用作变量名尽管不建议这样做以避免混淆。 第 9 题 ⼩杨最近在准备考GESP他⽤的Dev C来练习和运⾏程序所以Dev C也是⼀个⼩型操作系统。 正确答案×
解析
Dev C 是一个集成开发环境IDE不是操作系统。 第 10 题 任何⼀个while循环都可以转化为等价的for循环 。 正确答案√
解析
所有的 while 循环都可以通过 for 循环的初始化、条件和递增部分来实现因此可以相互转换。
三、编程题每题25分共50分
3.1 编程题 1 小杨的考试
3.1.1 问题描述
今天是星期 X小杨还有 N 天就要考试了你能推算出小杨考试那天是星期几吗本题中使用 7 表示星期日
3.1.2 输入描述
输入 2 行第 1 行一个整数 X1 ≤ X ≤ 7第 2 行一个整数 N1 ≤ N ≤ 364。
3.1.3 输出描述
输出一个整数表示小杨考试那天是星期几。
3.1.4 特别提醒
在常规程序中输入、输出时提供提示是好习惯。但在本场考试中由于系统限定请不要在输入、输出中附带任何提示信息。
3.1.5 样例输入 1
1
63.1.6 样例输出 1
73.1.7 样例解释 1
今天是星期 1那么 6 天后就是星期日星期日在本题中用 7 表示。
3.1.8 样例输入 2
5
33.1.9 样例输出 2
13.1.10 样例解释 2
今天是星期 5那么 3 天后就是星期 1。
3.1.11 参考程序
#include stdio.h
int main(int argc, char **argv) {int x, n;// 从标准输入读取两个整数表示今天是星期几和还有几天考试scanf(%d%d, x, n);// 计算考试那天是星期几并输出结果printf(%d\n, (x - 1 n % 7) % 7 1);return 0;
}解释 读取输入 程序从标准输入读取两个整数分别是 X 和 N。X 表示今天是星期几N 表示还有多少天就是考试日。 公式推导 由于一周有 7 天我们可以利用模运算来简化计算。例如今天是星期 X再过 N 天的情况可以用 (X N) 来表示星期几。但是直接用 (X N) 可能会超出 7因此需要取模 (X N) % 7 来将值保持在 1 到 7 之间。具体公式为 (X - 1 N % 7) % 7 1其中 X - 1 是将 X 转换为从 0 开始的索引即 X 为 1 时代表第 0 天。N % 7 是计算 N 天后是几天内的第几天避免超过一周。(X - 1 N % 7) % 7 计算从 0 开始的索引得到一个在 0 到 6 范围内的值。最后再加 1 将索引转换回从 1 开始的星期几表示。 输出结果 将计算结果输出即考试当天是星期几。
详细解释计算过程
如果今天是星期 X距离考试还有 N 天那么我们可以通过 X N 计算出考试日的星期几。例如今天是星期 1距离考试还有 6 天则 1 6 7即星期日7 表示星期日。由于一周只有 7 天所以需要对总天数取模运算以确保结果在 1 到 7 之间。公式 (X - 1 N % 7) % 7 1 通过转换和取模确保结果在正确范围内。 通过这种方式程序能够准确地计算出小杨考试当天是星期几并输出结果。
3.2 编程题 2 小杨报数
3.2.1 问题描述
小杨需要从 1 到 n 报数。在报数过程中小杨希望跳过 m 的倍数。例如如果 n 为 5m 为 2那么小杨就需要依次报出 1、3、5。 现在请你依次输出小杨报的数。
3.2.2 输入描述
输入 2 行第 1 行一个整数 n1 ≤ n ≤ 100第 2 行一个整数 m1 ≤ m ≤ 10。
3.2.3 输出描述
输出若干行依次表示小杨报的数。
3.2.4 特别提醒
在常规程序中输入、输出时提供提示是好习惯。但在本场考试中由于系统限定请不要在输入、输出中附带任何提示信息。
3.2.5 样例输入 1
5
23.2.6 样例输出 1
1
3
53.2.7 样例输入 2
10
33.2.8 样例输出 2
1
2
4
5
7
8
103.2.9 参考程序
#include stdio.hint main(int argc, char **argv) {int n, m, i;// 从标准输入读取两个整数表示报数的范围和需要跳过的倍数scanf(%d%d, n, m);// 从1到n进行循环for(i 1; i n; i) {// 如果i不是m的倍数输出iif(i % m ! 0) {printf(%d\n, i);}}return 0;
}解释 读取输入 程序从标准输入读取两个整数分别是 n 和 m。n 表示报数的范围m 表示需要跳过的倍数。 循环处理 使用一个 for 循环从 1 到 n 进行遍历。在循环中使用 if 条件判断 i 是否是 m 的倍数即 i % m ! 0。如果 i 不是 m 的倍数则输出 i。 输出结果 将所有满足条件的数逐行输出即小杨报的数。
详细解释计算过程 例如输入 n 5 和 m 2 时 循环从 1 开始到 5 1 % 2 ! 0输出 1。2 % 2 0跳过 2。3 % 2 ! 0输出 3。4 % 2 0跳过 4。5 % 2 ! 0输出 5。 输出结果为 1, 3, 5。 通过这种方式程序能够准确地输出小杨报的数跳过指定倍数的数。