重庆市第二届程序设计大赛题目
2023年历届重庆市计算机C语言二级考试试题及答案

二级C语言笔试试卷(A)1注意事项:1.一、二题为客观题,请将答案涂在机读答题卡上2.三、四、五、六题为主观题,请将答案做在答题纸上一、单项选择题。
(每题1分,共20分)1.在C程序旳函数调用时,主调函数中旳实参和被调函数中旳形参()。
(A)个数、次序必须相似,但数据类型可以不考虑(B)个数、次序和对应参数旳数据类型都应当相似(C)个数、次序和数据类型均可以不相似(D)对应参数数据类型应相似,但个数和次序可以不考虑2.如a为int型,则与体现式a等价旳C语言关系体现式是()(A) a>0 (B) a!=0(C) a==0 (D) a<0 3.循环语句for(a=0,b=0;(b!=45)| |(a<5);a++);旳循环次数是()(A) 4 (B) 3 (C) 5(D) 无数多次4.设有字符数组a,则对旳旳输入语句是()。
(A) gets('a');(B) scanf("%c",a);(C) scanf("%s",a);(D) gets("a");5. enumcolor{red,green,yellow=5,white,black};定义了一枚举类型。
编译程序为值表中各标识符分派旳枚举值依次为()。
(A)1、2、3、4、5(B)0、1、5、2、3(C)0、1、5、6、7(D)3、4、5、6、76.运行完下列程序后,在屏幕上旳内容是()。
void main (){ int a=0;a+=(a=12);printf ("%d\n",a);}(A)0 (B)6(C)12 (D)24 7.若x,y为实数类型旳变量,要判断x,y相等,最佳使用下列关系体现式()。
(A)x==y(B)x-y==0(C) fabs(x-y)<1e-8(D)labs(x-y)<1e-88.若有如下旳定义、阐明和语句,则值为101旳体现式是()。
重庆计算机二级c语言试题及答案

重庆计算机二级c语言试题及答案一、选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是正确的?A. 变量名可以以数字开头B. 变量名可以包含空格C. 变量名区分大小写D. 变量名可以包含特殊字符答案:C2. C语言中,以下哪个关键字用于定义一个函数?A. intB. returnC. voidD. function答案:A3. 下列哪个选项是C语言中的合法整数常量?A. 0x1AB. 0X1AC. 0x1aD. 0X1a答案:D4. C语言中,以下哪个选项不是合法的字符串常量?A. "Hello, World!"B. 'Hello, World!'C. "Hello\" World!"D. "Hello\nWorld!"答案:B5. 在C语言中,以下哪个选项是正确的?A. 所有变量必须在使用前声明B. 所有变量必须在函数开始时声明C. 变量声明可以在任何地方D. 变量声明只能在函数内部答案:A6. C语言中,以下哪个选项是正确的?A. 浮点数不能用于整数运算B. 浮点数的精度总是比整数高C. 浮点数的表示范围比整数小D. 浮点数可以直接与整数进行运算答案:D7. 在C语言中,以下哪个选项是正确的?A. 所有函数都必须有返回值B. 函数可以没有参数C. 函数可以有多个返回值D. 函数可以有多个返回类型答案:B8. C语言中,以下哪个选项是正确的?A. 数组的下标总是从1开始B. 数组的下标总是从0开始C. 数组的大小在运行时确定D. 数组的大小在编译时确定答案:D9. 在C语言中,以下哪个选项是正确的?A. 指针可以存储任何类型的数据B. 指针可以存储函数的地址C. 指针可以存储数组的地址D. 所有选项都是正确的答案:D10. C语言中,以下哪个选项是正确的?A. 所有变量的声明必须在函数的开始B. 变量的声明可以在代码的任何位置C. 变量的声明必须在代码块的开始D. 变量的声明只能在函数的开始或代码块的开始答案:D二、填空题(每题2分,共20分)1. 在C语言中,______关键字用于声明一个变量。
重庆计算机二级vf试题

Visual FoxPro数据库程序设计(考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A),B),C),D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)程序流程图中指有箭头的线段表示的是[C]A)图元关系 B)数据流 C)控制流 D)调用关系(2)结构化程序设计的基本原则不包括[A]A)多态性 B)自顶向下 C)模块化 D)逐步求精(3)软件设计中模块划分应遵循的准则是[B]A)低内聚低耦合 B)高内聚低耦合C)低内聚高耦合 D)高内聚高耦合(4)在软件开发中,需求分析阶段产生的主要文档是[B]A)可行性分析报告 B)软件需求规格说明书C)概要设计说明书 D)集成测试计划(5)算法的有穷性是指[A]A)算法程序的运行时间是有限的 B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的 D)算法只能被有限的用户使用(6)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是[D]A)快速排序 B)冒泡排序C)直接插入排序 D)堆排序(7)下列关于栈的叙述正确的是[B]A)栈按“先进先出”组织数据 B)栈按“先进后出”组织数据C)只能在栈底插入数据 D)不能删除数据(8)在数据库设计中,将E-R图转换成关系数据模型的过程属于[C]A)需求分析阶段 B)概念设计阶段C)逻辑设计阶段 D)物理设计阶段(9)有三个关系R,S和T如下:B C Dh O k1R S TB C Da o k1b 1 n1B C Da o k1a 2 x1由关系R和S通过运算得到关系T,则应使用的运算为[D]A) 并 B) 自然连接 C)笛卡尔积 D)交(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课程号,课名),选课SC(学号,课号,成绩),列表SC的关键字(键或码)为[C]A)课号,成绩 B)学号,成绩C)学号,课号 D)学号,姓名,成绩(11)在Visual Foxpro中,扩张名为mnx的文件是[D]A) 备注文件 B)项目文件 C) 表单文件 D)菜单文件(12)有如下赋值语句:a=”计算机”,b=”微型”,结果为”微型机”的表达式是[D]A)b+LEFT(a,3) B)b+RIGHT(a,1)C)b+LEFT(a,5,2) D)b+RIGHT(a,2)(13)在Visual Foxpro中,有如下内存变量赋值语句:[B]X={^2001-07-28 10:15:20PM}Y=.F.M=5123.45N=$123.45Z=”123.24”执行上述赋值语句之后,内存变量X,Y,M,N和Z的数据类型分别是A) D、L、Y、N、C B)T、L、Y、N、CC) T、L、M、N、C D)T、L、Y、N、S(14)下列程序的运行结果是[D]SET EXACT ONs="ni"+space(2)IF s=="ni"IF s="ni"?"one"ELSE?"two"ENDIFELSEIF s="ni"?"three"ELSEENDIFENDIFRETURNA) one B) two C)three D)four(15)如果内存变量和字段变量均有变量名“姓名”,那么引用引用内存变量的正确方法是[D]A)M.姓名 B)M->姓名 C)姓名 D)A)和B)都可以(16)要为当前表所有性别为“女”的职工增加100元工资,应使用命令[B]A)REPLACE ALL 工资 WITH 工资+100B)REPLACE 工资 WITH 工资+100 FOR 性别=“女”C)CHANGE ALL 工资 WITH 工资+100D)CHANGE ALL 工资 WITH 工资+100 FOR 性别=“女”(17)MODIFY STRUCTURE命令的功能是[B]A)修改记录值 B)修改表结构C)修改数据库结构 D)修改数据库或表结构(18)可以运行查询文件的命令是[A]A)DO B)BROWSEC)DO QUERY D)CREATE QUERY(19)SQL语句中删除视图的命令是[B]A)DROP TABLE B)DROP VIEWC)ERASE TABLE D)ERASE VIEW(20)设有订单表order(其中包含字段:订单号,客户号,职员号,签订日期,金额),查询2007年所签订单的信息,并按金额降序排序,正确的SQL命令是[A]A) SELECT*FROM order WHERE YEAR(签订日期)=2007 ORDER BY 金额 DESCB) SELECT*FROM order WHILE YEAR(签订日期)=2007 ORDER BY 金额 ASCC) SELECT*FROM order WHERE YEAR(签订日期)=2007 ORDER BY 金额 ASCD) SELECT*FROM order WHILE YEAR(签订日期)=2007 ORDER BY 金额 DESC(21)设有订单表order(其中包含字段:订单号,客户号,职员号,签订日期,金额),删除2002年1月1日以前签订的订单记录,正确的SQL命令是[C]A) DELETE TABLE order WHERE 签订日期<{^2002-1-1}B) DELETE TABLE order WHILE 签订日期>{^2002-1-1}C) DELETE FROM order WHERE 签订日期<{^2002-1-1}D) DELETE FROM order WHILE 签订日期>{^2002-1-1}(22)下面属于表单方法名(非事件名)的是 [B]A) lnit B)Release C)Destroy D)Caption(23)下列表单的哪个属性设置为真时,表单运行时将自动居中[A]A) AutoCenter B) AlwaysOnTop C)ShowCenter D)FormCenter(24)下列关于命令DO FORM XX NAME YY LINKED 的叙述中,正确的是[C]A) 产生表单对象引用变量XX,在释放变量XX时自动关闭表单B) 产生表单对象引用变量XX,在释放变量XX时并不关闭表单C) 产生表单对象引用变量YY,在释放变量YY时自动关闭表单D) 产生表单对象引用变量YY,在释放变量YY时并不关闭表单(25)表单里有一个选项按钮组,包含两个选项按钮Option1和Option2,假设Option2没有设置Click事件代码,而Option1以及选项按钮组和表单都设置了Click事件代码。
2024年等级考试-计算机二级-Java语言程序设计考试历年真题常考点试题2带答案

2024年等级考试-计算机二级-Java语言程序设计考试历年真题常考点试题带答案(图片大小可任意调节)第1卷一.单选题(共20题)1.编译JavaApplet源程序文件产生的字节码文件的扩展名为()A.javaB.classC.htmlD.exe2.获取 InetAddress 对象的 IP 地址所用到的方法是A.etHostlPAddress()B.getHostlP()C.getHostAddress()D. getHost()3.下列叙述中正确的是哪一个( ) 。
A.在面向对象的程序设计中,各个对象之间具有密切的关系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述 3种说法都不对4.有整型数组: int[] x={12,35,8,7,2};, 则调用方法 Arrays.sort(x)后,数组 x 中的元素值依次是 ( ).A.2 7 8 12 35B.12 35 8 7 2C.35 12 8 7 2D.8 7 12 35 25.定义类头时能使用的修饰符是A. privateB.staticC.abstractD.protected6.开发软件时对提高开发人员工作效率至关重要的是 ( ) 。
A.操作系统的资源管理功能B.先进的软件开发工具和环境C.程序员的数量D.计算机的并行处理能力7.下列有关Java的叙述错误的是A.是—种强类型语言B.与平台无关C.可以使用汉字变量名D.不检查数组下标越界8.下述概念中不属于面向对象方法的是 () 。
A.对象、消息B.继承、多态C.类、封装D.过程调用9.设 int 型变量 a、b,float 型变量 x、y,char 型变量 ch 均已正确定义并赋值,正确的 switch 语句是A.switch (x + y) { ...... }B.switch ( ch + 1 ) { ...... }C. switch ch D) { ...... }D.switch ( a + b ) { ...... }10.关于包的描述错误的是A.包可以将相关的类和接口组织在一起,便于识别和管理B.包中的类可以访问同一包的其它类的私有成员C.不同包中的相同命名,不会产生冲突D.用修饰的顶级类和接口对包外代码可见11.在 Java 中, 表示换行符的转义字符是 () 。
第二届全国大学生算法设计与编程挑战赛(冬季赛)题解

第⼆届全国⼤学⽣算法设计与编程挑战赛(冬季赛)题解第⼆届全国⼤学⽣算法设计与编程挑战赛(冬季赛)只会做⽔题555 剩下的连题解也没看懂QAQ⽬录A 塔签到#include<iostream>using namespace std;int main(){char c1;int n=26; //设定塔的层数为26for(int i=1;i<=n;i++){ //对塔每⼀层按照规律进⾏构造。
//⾸先进⾏输出空格的操作:对于第i⾏,字符前⾯的空格个数为n-i个。
for(int j = 1;j<=n-i;j++)cout<<" ";for(int j=1;j<=i;j++){ //按照规律1,输出第1~第i个⼤写字母。
c1=j+'A'-1; //第j个⼤写字母为'A'+j-1cout<<c1; //输出第j个⼤写字母}for(int j=i-1;j>=1;j--){ //按照规律1,输出第i-1~第1个⼤写字母,注意是倒序c1=j+'A'-1;cout<<c1;}cout<<endl;//第i⾏输出结束,进⾏换⾏。
}return 0;}B ⽇记签到#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 5;typedef long long LL;string s;int main() {s = "ibti lbtlovebte lbtlibtinbtnkbtkebtezbas jebte dosadnbtna ""ovakbtkebtemibtijaxaszxdbtddbtddbtddbtddbtddbtd";string res;for (int i = 0; i < s.size(); i++) {res.push_back(s[i]);if (s[i] == 'l' || s[i] == 'i' || s[i] == 'n' || s[i] == 'k' ||s[i] == 'e') {i += 3;}}cout << res << endl;return 0;}C 哥布林待补...D 质数区间待补...E 神仙爱采药贪⼼即可,如果背包满了,那么遇到1就把2换掉,否则就⼀直往背包⾥放即可#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 5;typedef long long LL;#define int LLint v, num1, num2, res, now;string s;cin >> v;cin >> s;for (int i = 0; i < s.size(); i++) {if (s[i] == '1') {if (num1 + num2 * 2 < v) {num1++;now++;} else {if (num2) {num2--;num1++;}}} else {if (num1 + num2 * 2 + 2 <= v) {num2++;now++;}}res += now;}cout << res << endl;return 0;}F 但更爱字符串模拟...#include <bits/stdc++.h>using namespace std;typedef long long LL;int const MAXN = 2e5 + 10;int n, m, T;string s = "";string s0 = "";string t = "";string s1 = "";int main() {int len = 0;while (getline(cin, s0)) {int f = 0;int da = 0;int flag = 0;s0.push_back('\n');for (int i = 0; i < s0.size(); i++) {if ((s0[i] >= 'A' && s0[i] <= 'Z') ||(s0[i] >= 'a' && s0[i] <= 'z')) {s = s + s0[i];if (s0[i] >= 'A' && s0[i] <= 'Z') da++;continue;}if (s[0] >= 'a' && s[0] <= 'z' || da > 1 || s.size() <= 1) { if (len <= 1) {f = 1;cout << s1;if (len == 1) cout << " ";t = "";s1 = "";len = 0;} else {f = 1;cout << t;cout << " (" << s1 << ") ";t = "";s1 = "";len = 0;}cout << s;} else {if (s0[i] == ' ') {if (s0[i - 1] == ',' || s0[i - 1] == '.' ||s0[i - 1] == '!') {cout << " ";continue;}t = t + s[0];if (len >= 1) s1 += " ";s1 = s1 + s;len++;f = 0;} else {if (len < 1) {f = 1;cout << s1;if (len == 1) cout << " ";s1 = "";len = 0;cout << s;} else {f = 1;t = t + s[0];cout << t;if (s != "," || s != ".") s1 = s1 + " " + s;cout << " (";cout << s1;cout << ")";t = "";s1 = "";len = 0;}}}if (f) cout << s0[i];if (s0[i] >='a'&&s0[i] <='z'||s0[i] >='A'&&s0[i] <='Z')f = 1;s = "";da = 0;}}return 0;}贴个标程吧,感觉标程写的很清晰:#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<vector>using namespace std;vector <string> word;//存放单词和符号bool bigletter(char c){//判断是不是⼤写字母if(c>='A'&&c<='Z') return true;return false;}bool smallletter(char c){//判断是不是⼩写字母if (c>='a'&&c<='z') return true;return false;}bool bigletterword(string s){//判断是不是wordif (!bigletter(s[0])) return false;if (s.size()<=1) return false;for (int i=1;i<s.size();i++){if (!smallletter(s[i])) return false;}return true;}void work(){//处理每⼀个单词或符号int n=word.size();for (int i=0;i<n;i++){int inow=i;if (!bigletterword(word[i]))//如果不需要缩写则直接输出cout<<word[i];if (bigletterword(word[i])) {if (i!=n-1){//最后⼀位要么跟着前⾯的缩写,要么就是只有⼀个符合的所以不⽤缩写 if (word[i+1]==" "&&bigletterword(word[i+2])){int j;for (j=i;j<n;j++){if ((j-i)%2==0){if (!bigletterword(word[j])){j--;break;}else cout<<word[j][0];}else if (word[j]!=" ") break;}//j停在了最后符合要求的word的最后⼀位的后⾯⼀位cout<<" (";for (int k=i;k<j-1;k+=2)cout<<word[k]<<' ';cout<<word[j-1]<<')';inow=j-1;//i直接跳过缩写的部分}else cout<<word[i];}else cout<<word[i];}i=inow;}int main(){string s;while(getline(cin,s)){if (s.size()==0) break;//如果输⼊为空就停⽌string w="";//存放单词for (int i=0;i<s.size();i++){//循环sif (bigletter(s[i])||smallletter(s[i])) w+=s[i];//如果是字母则直接压到s⾥if (!bigletter(s[i])&&!smallletter(s[i])){//否则把单词压到word了,并把符号也压进去 word.push_back(w);w="";w+=s[i];word.push_back(w);w="";}}word.push_back(w);//把最后⼀个单词压进去work();word.clear();//清空wordcout<<endl;}return 0;//完美结束}G 猫腥草争夺⼤战状压DP,待补...H ⽆限⼭河印的故事倍增+字符串hash 待补...I 奇怪的传输机增加了模拟每⼀天的状态即可#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 5;typedef long long LL;double n, now;int x, y;const double eps = 1e-8;// 和0做⽐较int sgn(double x) {if (fabs(x) < eps) return 0; // =0if (x < 0)return -1; // < 0elsereturn 1; // > 0}int main() {cin >> n >> x >> y;now = n;for (int i = 1; i <= y; i++) {now = 2.0 * now / 3.0;if (i >= x) {now = min(n, now + (n / 2));x = 1e5;}if(sgn(now-n/32)<0){cout << "N0!" << endl;printf("%d %.6lf\n", i, now);return 0;}}cout << "YE5!" << endl;printf("%.6lf\n", now);return 0;}J 奇怪的⼩鸭⼦也增加了数学题#include<bits/stdc++.h>using namespace std;const int N = 1e6 + 5;typedef long long LL;int main(){cin >> A >> B >> a >> b;int x = (A - a) / a / 2 + 1;int y = (B - b) / b / 2 + 1;cout << x * y << endl;return 0;}K 关于哥俩好的数字这件事暴⼒枚举数位和#include <bits/stdc++.h>using namespace std;const int N = 1e6 + 5;typedef long long LL;#define int LLvector<int> res[N];int get(int x) {int res = 0;while (x) {res += x % 10;x /= 10;}return res;}signed main() {for (int i = 1; i <= 1e7; i++) {res[get(i)].push_back(i);}int n;cin >> n;if(n==1)cout << 1 << endl;else if (n <= 10) {LL ress = 0;for (int i = 0; i < n; i++) {ress += res[n - 1][i];}cout << ress << endl;} else if (n >= 11) {LL ress = 1e18;for (int j = 9; j <= 20;j++){LL tmp = 0;for (int i = 0; i < n; i++) tmp += res[j][i];ress = min(ress, tmp);}cout << ress << endl;}return 0;}L 我们仍未知道那窝蛋的名字待补...M 出题⼈说这道题是⼀个签到题签到#include <bits/stdc++.h>using namespace std;int n;signed main() {cin >> n;if (n == 1)cout << "ADPC";elsecout << "12345";return 0;}。
重庆计算机二级 分析题 程序题

四、读程序写出运行结果(每小题5分,共20分)1.有一表单程序的运行界面如图2所示。
以下是其文本框控件的valid事件代码。
程序运行后,在文本框输入“45673”。
请写出程序运行结果(文本框的新值)。
X=val(Thisform.text1.value)Y=100Do while x>0y=y-x%10x=int(x/10)enddoThisform.text1.value=str(y)2.设有数据表ST.DBF的结构内容如下:记录号编号(C)性别(C)成绩(N)1 001 男 862 122 女 623 225 男 584 220 女 795 010 女 89设计如图3所示表单,将st.dbf添加到表单的数据环境中,表单运行后,单击命令按钮“Command1”,标签Label1将显示什么?“Command1”命令按钮的click事件代码:X=1cj=成绩SCANIF=成绩>cjcj=成绩x=RECNO()ENDIFENDSCANGO xThisform.refreshz=学号+space(2)+性别+space(2)+allt(str(成绩)) bel1.caption=z3.下面程序运行时输入5,请写出程序执行结果。
SET TALK OFFCLEARINPUT “请输入层数” TO NFOR K=1 TO N?? SPACE(N-K)FOR J=1 TO K?? “*”ENDFOR?ENDFOR4.以下程序的运行结果是什么?主程序main.prgCleaa=1b=2c=3do sub1 with a?a,b,cretu*sub1.prgParapriv ca=10b=20c=30?a,b,cdo sub2retu*sub2.prgpriv aa=2b=2*a?a,b,cretu五、程序设计题(每小题10分,共20分)1.编写一个程序计算:S=1+2+3+……+N,N的值由用户确定。
重庆计算机二级c语言试题及答案

重庆计算机二级c语言试题及答案一、选择题1. 在C语言中,以下哪个是合法的变量名?A. 2VarB. var2C. var_2D. _var2答案:B、C、D2. 下面哪个是正确的C语言语句?A. int a, b = 10;B. int a = 10, b;C. int a = 10, b = a;D. int a, int b = 10;答案:A、B、C3. 关于C语言中的sizeof运算符,下面哪个说法是正确的?A. sizeof(char)的结果是1B. sizeof(int)的结果是4C. sizeof(float)的结果是8D. sizeof(double)的结果是2答案:A、B4. 下面哪个不是C语言中的关键字?A. mainB. ifC. forD. while答案:A5. 下面哪个是C语言中的保留字?A. printfB. scanfC. returnD. continue答案:C、D二、填空题1. 在C语言中,能够表示整数常量的数据类型是______。
答案:int2. 在C语言中,用于定义宏的关键字是______。
答案:#define3. 在C语言中,两个整数相除的结果是______。
答案:整数相除的结果会舍去小数部分,只保留整数部分。
4. 在C语言中,用于声明常量的关键字是______。
答案:const5. 在C语言中,用于定义结构体类型的关键字是______。
答案:struct三、编程题1. 编写一个C语言程序,计算并输出1到100之间所有奇数的和。
```c#include <stdio.h>int main() {int sum = 0;int i;for (i = 1; i <= 100; i += 2) {sum += i;}printf("1到100之间所有奇数的和为:%d\n", sum);return 0;}```2. 编写一个C语言程序,判断一个输入的整数是否为质数。
重庆工学院第二届大学生程序设计大赛说明

重庆工学院第二届大学生程序设计大赛说明一、竞赛规则1. 比赛时间共4小时。
试题以中文表述。
考察内容以程序设计、数据结构、算法分析为主,为ACM(美国计算机协会)竞赛的命题形式。
3. 参赛学生可以携带诸如书、手册、程序清单等纸质参考资料。
4. 参赛学生不能携带任何可用计算机处理的软件或数据(如存储设备、计算器或电子辞典等)。
5. 参赛学生不能携带任何类型的通讯工具,包括无线电接收器、移动电话。
6. 在竞赛中,不同小组参赛选手之间不能交谈。
系统支持人员可以回答和系统相关的问题,例如解释系统错误信息。
7.结果上传服务器地址为:ftp:10.0.101.99 ,权限为上传,下载,删除。
用户名:cxxj 密码:3076 二、解题(程序运行)正确的判定裁判系统运行结果分为以下7 种:1. 正确:程序得到了正确的结果。
2. 输出格式错:虽然程序的结果是正确的,但是输出结果的格式与题目要求的不符,一般是由于在某些位置多输出或少输出了空格或空行。
3. 答案错误:程序运行完毕,但没有输出正确的结果。
4. 运行时错误:在程序的执行过程中,出现了堆栈溢出、访问无效内存单元、数组越界、计算中除以零等导致异常结束的情况。
5. 超过时间限制:程序没有在限定时间内执行完。
6. 超过内存设置:程序所使用的内存空间超过了题目的限定。
7. 无法编译:程序有语法错误,没有通过编译,请仔细检查。
注意:只有评测结果为“正确”的题才算正确,其余结果均为错误。
三、成绩(排名)的确定获胜原则:1、解题正确的数量多;2、如果选手解题数量相同,则完成时间少(交卷早);3、如果选手解题数量相同,完成时间少也相同(差距3分钟内),以算法效率高、注释清楚为佳;4、其它情况由校评判小组老师集体决定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5. 轰炸 输入文件:bomb.in
输出文件:estdout.pc2
问题描述: “我该怎么办?”飞行员 klux 向你求助。事实上,klux 面对的是一个很简单的
问题,但是他实在是太菜了。Klux 要想轰炸某个区域内的一些地方,它们是位 于平面上的一些点,但是 klux 遇到了抵抗,所以他只能飞一次,而且由于飞机 比较破,一旦起飞就只能沿直线飞行,无法转弯。现在他想一次轰炸最多的地方
7. 拱猪计分 输入文件:pig.in
输出文件:estdout.pc2
问题描述: 拱猪是一种有趣的扑克牌游戏。即使你不知道他的玩法,你也可以由他的计
分方式来了解他的趣味性。假设在此我们仅考虑四个人的拱猪牌局,本题要求你 根据下面的积分规则,在牌局结束时计算四位玩家所得分数。
1.我们分别以 S、H、D 及 C 来代表黑桃,红心,方块及梅花,并以数字 1 至 13 来代表 A、2、...、Q、K 等牌点,例如:H1 为红心 A,S13 为黑桃 K。
8. 定向越野 输入文件:cross.in
输出文件:estdout.pc2
问题描述: XX 大学城离市中心比较远,因此占地面积巨大,因而 XX 市团委准备充分
利用资源,在大学城举办定向越野比赛,但规则与普通定向越野不同,每个队 被要求从某个起点出发最后到达终点,只要是地图上每个标注的点都可以走, 经过一个点时必须在打卡器上打卡做记录,记录该点的打卡器所在位置的海拔 高度,高度用一个非负整数来度量,该书将会被保存在卡中。最后到达终点时, 该队的成绩就为卡中记录的最大数与最小数之差,差最小的队伍将摘取桂冠。
4.若红心牌不在同一家,则 H1 至 H13 等 13 张牌均以负分计,其数值为50,-2,-3,-4,-5,-6,-7,-8,-9,-10,-20,-30,-40.而且 S12 和 D11 分别以-100 和+100 分计算。
5.若红心牌 H1 至 H13 均在同一家,有下列情形: a) 所有红心牌以+20+500 分 c) 而 C10 还是以前面的原则计算分数
相邻两组测试数据之间不会有空白行,读到四家持牌数都为零表示文件结 束。 输出:
每一行输出一组测试数据对应的结果,一次输出各玩家所得分数,共四个 整数(含正负号,0 除外),相邻两个整数之间用一个空格隔开,符号和数字 之间不可以有空格。每组输出之间不需要空白行。 输入样本: 4 S12 H3 H5 H13 3 D11 H8 H9 6 C10 H1 H2 H4 H6 H7 3 H10 H11 H12 13 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12 H13 2 S12 C10 1 D11 0 0 0 0 0 输出样本: -148 +83 -138 -60 +200 -200 +100 0
输入: 多组数据,每组数据共 2 行。每行中两个数之间用一个空格隔开。 第一行为两个正整数 M 和 N(0<M<=100,0<N<=1000),代表内存容量和
文章长度。 第二行为 N 个非负整数,按照文章的顺序,每个数(大小不超过 1000)代
表一个英文单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数 相同。
提示: 每个国家分得的油田都是整数,不会出现几个国家共同拥有一块油田。每个 国家都不希望别人的方案通过,但是每个国家都按照本国利益投票,比如 1 号 国家提出一个方案, X 号国家分 Y 油田,X 号国家会进行比较, 如果该方案被 否决,那么下次 2 号提出的方案 X 号国家分 Z 油田,而 Z < Y,那么 X 号国家 会赞成 1 号的方案, 否则反对。
输入: 输入文件由一行构成,就是 N 的值
输出: 输出文件是一行字符串,字符串由 N 个'@'字符(代表教徒)和 N 个'+'字符
(代表非教徒)排列组成。该排列使得按照提述方法每次投入大海的都是非教徒
输入样本: 15
输出样本: @@@@+++++@@+@@@+@++@@+++@++@@+
2 翻译 输入文件:trans.in
重庆市第二届程序设计大赛
1 数字的游戏 输入文件名:gaspar.in
输出文件名:estdout.pc2
问题描述: N 个教徒和 N 个非教徒在深海上遇险,必须将一半的人投入海中,其余的
人才能幸免于难,于是他们想了一个办法:2N 个人围成一圈,从第一个人开始 依次循环报数,每数到第 9 个人就将他扔进大海,如此循环直到只剩下 N 个人 为止。问怎样的站法,才能使得每次投入大海的都是非教徒。
假设内存中有 M 个单元,每个单元能存放一个单词和含义。每当软件将一个 新单词存入内存前,如果当前内存中已经存入的单词数不超过 M,软件会将新 单词存入下一个未使用的内存单元;若内存中已存入 M 个单词,软件会清空最 早进入内存的那个单词,腾出单元来,存放新单词。
假设一篇英语文章长度为 N 个单词,给定这篇待译文章,翻译软件需要去 外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。
输出: 针对每一个需要查询的单词,输出一行字符串。要求:该字符串以需要查询
的单词开始,并从下面 3 个黑体描述中选择一个合适的字串添加在后。 1.如果需要查询的单词在字典中就添加字串“is correct” 2.如果需要查询的单词不在字典中,则添加字串“is a misspelling of <x>”,
输入: 输入由若干组数据构成,每组数据的第一行是整数 n,然后是 n 行整数对组
成(1<n<700),每对整数表示一个点的坐标,且没有一个点会出现两次。当 n 为 0 时表示输入结束。
输出: 针对没组数据输出一个数,它表示一条直线能覆盖的最多的点数
输入样本: 5 11 22 33 9 10 10 11 0 输出样本: 3
当 M=N=0 时输入数据结束。
输出: 每组数据占一行,分别包含一个整数,为软件需要查词典的次数。
输入样本: 37 1215441 2 10 8 824 11 78 11 78 11 78 8 264 00 输出样本: 5 6
3 自然数的计算
输入文件:natrual.in
输出文件:estdout.pc2
则各玩家得分依次序为:+200,-200,+100 及 0。
例三: 若有一玩家持有所有 16 张计分牌,则得分+1000 分,其余玩家均得
零分。
输入: 每个输入文件有多组数据组成,每组测试数据有四行,每一行第一个数为
该玩家所持有计分牌的总数,而后列出其所持有的所有计分牌,牌数与各计分 牌均以一个以上的空格分开。
0<=n<=1000。在紧接着的 n 行里包含有字典中的 n 个单词。在这 n 行后的第 1 行 里将给出 1 个正整数 q,其中 0<=q<=1000,它表示需要查询单词的数量。在这之 后的 q 行里包含有 q 个需要查询的单词。你可以假设在输入文件中每一个单词只 能由 26 个小写字母('a'~'z')构成。
输出文件:estdout.pc2
问题描述: 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文
章。 这个软件的原理很简单,他只是从头到尾,一次将每个单词用对应的中文
含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义, 如果内存中有,软件就会用它来翻译;如果内存中没有,软件就会在外存中的 词典里查找,查出单词的中文含义然后翻译,并将这个单词和含义放入内存, 以备后续查找和翻译。
输出样本: su is a misspelling of us as is a misspelling of is the is unknown dictonary is a misspelling of dictionary us is correct willl is a misspelling of will
ZZ 和他的同学也参加了这次比赛,拿到地图后,他们想要迅速的找到一条 最佳路线以确保获得冠军。
输出: 每组数据占一行,一个数,表示满足条件的数的个数
输入样本: 1 6
输出样本: 6
4. 自动纠正拼写错误
输入文件:auto.in
输出文件:estdout.pc2
问题描述: 某些文件编辑器提供纠正英文单词拼写错误的功能。你们本次要解决的问题
就是实现这样一个能够完成自动纠正拼写错误(ACM)功能的应用程序。 ACM 能够纠正以下几类的单词拼写错误: 1.漏写或多写 1 个字母,例如单词“letter”被写成了“leter”,或者是 “letter”被写成了“lettter”。 2.写错了一个字母,例如“letter”被写成了“ketter”。 3.两个相邻的字母书写顺序弄错了,例如“letter”被写成了“lettre”。 ACM 的纠错功能是基于一个已知单词集的字典来进行的。每当一个文档中
输入:
输入文件有由若干行构成,每行包括一组数据由 2 个整数 N,M 构成, (N,M <= 10^8),输入文件的最后一行是‘#’表示文件结束。
输出:
按照输入文件的顺序对于每组输入数据输出一行,每行包括 1 个整数,1 号 国家能获得的最多油田数。
输入样本: 7 100 6 100 #
输出样本: 97 98
含有字典中不存在的单词时,ACM 就会试图用字典中与该单词最相似的单词替 代它。ACM 对单词是相似的有这样的定义:只要两个单词能够按照上面叙述的 3 类拼写错误规则中的任何一种进行相互转换,就认为这两个单词是相似的。如 果在字典中没有发现相似的单词,就在原文本中保留这个未知的单词。
输入: 在输入文件的第 1 行里将给出字典中已知的单词数量:整数 n,其中