文档库 最新最全的文档下载
当前位置:文档库 › 浙江省程序设计大赛历年赛题解析V4.1

浙江省程序设计大赛历年赛题解析V4.1

浙江省程序设计大赛历年赛题解析V4.1
浙江省程序设计大赛历年赛题解析V4.1

浙江省程序设计大赛 历年简单题解题分析
V4.1 2008~2011
软件技术教研室 程序设计兴趣小组 2011 年

2 浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
目录 说明 ······················································································································ 3 版本更迭 ·············································································································· 3 2011 年第八届程序设计大赛 ·········································································· 4
ORDINAL NUMBERS ······················································································································································· 6 CONIC SECTION ····························································································································································· 8 STRING SUCCESSOR ······················································································································································ 10 KAGOME KAGOME ······················································································································································· 13 JAVABEANS ································································································································································· 15 MEDIAN ···································································································································································· 17
2010 年第七届程序设计大赛 ······································································· 19
WHO IS OLDER? ·························································································································································· 21 SOMALI PIRATES ·························································································································································· 23 AN AWFUL PROBLEM ··················································································································································· 25 WU XING ··································································································································································· 28 STRANGE COUNTRY II ··················································································································································· 30 GUESS THE PRICE ························································································································································· 34
2009 年第六届程序设计大赛 ······································································· 35
SECOND-PRICE AUCTION ················································································································································37 LIGHT BULB ································································································································································ 40 CONNECT THEM ·························································································································································· 42 80ERS' MEMORY ························································································································································· 45 A STACK OR A QUEUE? ··················································································································································47 K-NICE ······································································································································································ 49
2008 年第五届程序设计大赛 ······································································· 51
ACCURATELY SAY "COCACOLA"! ····································································································································· 53 BUILD THE ELECTRIC SYSTEM ········································································································································· 55 EASY TASK ···································································································································································57 FASTER, HIGHER, STRONGER ·········································································································································· 59 GIVE ME THE NUMBER ················································································································································· 61 KINDS OF FUWAS ························································································································································· 63 LIGHT BULBS ······························································································································································· 66

浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
3
说明
此文档只针对专科组学生需要解决的简单题进行分析,中等难度题不列入考虑。 此文档只针对专科组学生需要解决的简单题进行分析,中等难度题不列入考虑。 请各位同学按照自己的掌握情况完成任务提示。 请各位同学按照自己的掌握情况完成任务提示。 文中很多地方注有批注, 文中很多地方注有批注,Word2010 请通过审阅 修订 显 勾选标记进行显示, 请自行寻找。 示标记 勾选标记进行显示,其他版本 Office 请自行寻找。
版本更迭
版本号 1.0 1.1 2.0 3.0 3.1 3.2 3.3 4.0 4.1 2011 年第七届简单题题解。 增加 2011 年第七届 K 题的 DFS 解,供拓宽思路用。 增加几张赛场或颁奖礼照片; 增加 2009 年第六届简单题题解。 增加 2008 年第五届简单题题解(部分)。 增加 2008 年 G 和 K 题题解。 格式修改 字体缩小 增加 2011 年简单题 6 题题解 增加 M 题 2 解 增加总体分析 变更情况 实施 杨森 杨森 杨森 杨森 杨森 杨森 杨森 杨森 批注 [ys1]: 某位同学 N 度上相

4 浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
2011 年第八届程序设计大赛
总体分析
本届大赛本科组浙江大学八届以来第一次丢杯。 专科组特等奖一队。 杭州职业技术学院本次比赛参赛队员和教练的心情比较跌宕,最终三队全部获奖,获得一银二铜的成绩。
批注 [ys2]: 专科组情况有待更新
总体上比 2010 年题目数量增加,简单题难度有所上升。 现将第八届程序设计大赛试题分析如下 A B C D E F G H I J K L M Ordinal Numbers Conic Section Old Labels String Successor Wall-nut Bowling Kagome Kagome 51.24% (413/806) 29.45% (291/988) 5.26% (6/114) 15.50% (198/1277) 0.00% (0/13) 55.55% (345/621) 10.52% (4/38) 15.90% (7/44) 10.20% (5/49) 12.19% (10/82) 10.97% (46/419) 46.88% (339/723) 51.83% (381/735) 批注 [ys3]: 外部数据,仅供参考
Palm Up and Palm Down BCD Code Lego Bricks Assignment Mistwald Javabeans Median

浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
5
图中,蓝色部分为 AC 量,灰色部分为非 AC 提交,可以发现,大致难度为 A < M < F < L < B < D < K <…,按照杭州职业技术 学院的学生水平,我的期望好点的队伍 5 题。大一队伍 3~4 题。
任务提示
请大一同学务必使用 C 语言、C++或者 Java 完成第 A、M、F 和 M 题。 有一定几何基础的做 B 题。 冲榜的请做到 D 题。

6 浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
Ordinal Numbers
Ordinal numbers refer to a position in a series. Common ordinals include zeroth, first, second, third, fourth and so on. Ordinals are not often written in words, they are written using digits and letters. An ordinal indicator is a sign adjacent to a numeral denoting that it is an ordinal number, rather than a cardinal number. In English, the suffixes -st (e.g. 21st), -nd (e.g. 22nd), -rd (e.g. 23rd), and -th (e.g. 24th) are used. The rules are as follows:
If the tens digit of a number is 1, then write "th" after the number. For example: 13th, 19th, 112th, 9311th. If the tens digit is not equal to 1, then use "st" if the units digit is 1, "nd" if the units digit is 2, "rd" if the units digit is 3, and "th" otherwise: For example: 2nd, 7th, 20th, 23rd, 52nd, 135th, 301st.
Input There are multiple test cases. The first line of input is an integer T ≈ 1000 indicating the number of test cases. Each test case consists of a cardinal number 0 ≤ n < 1,000,000,000. Output
For each test case, output the corresponding ordinal number. Sample Input
5 1 2 3 4 1024
Sample Output
1st 2nd 3rd 4th 1024th
解析
此题属简单题,题意是给整数,输出这个整数英语的序数形式。赛场上貌似 2 分钟就有队伍做出此题了,我们的队伍大约 在第 6 分钟做出此题,很快。 要求有两个,一个是十位为 1 的,后面统一 th;另一个是十位非 1 的,1,2,3 有变化。

浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
7
C++样例代码 样例代码
1 #include 2 using namespace std; 3 4 int main(){ 5 intT,n,x,y; 6 cin>> T; 7 while(T--){ 8 cin>> n; 9 x = n % 10; //个位数字 10 y = n / 10 % 10; //十位数字 11 cout<< n; 12 if(x == 1 && y != 1) cout<< "st"; 13 else if(x == 2 && y != 1) cout<< "nd"; 14 else if(x == 3 && y != 1) cout<< "rd"; 15 else cout<< "th"; 16 cout<

8 浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
Conic Section
The conic sections are the nondegenerate curves generated by the intersections of a plane with one or two nappes of a cone. For a plane perpendicular to the axis of the cone, a circle is produced. For a plane that is not perpendicular to the axis and that intersects only a single nappe, the curve produced is either an ellipse or a parabola. The curve produced by a plane intersecting both nappes is a hyperbola. conic section circle ellipse parabola hyperbola equation x +y =a
2 2 2 2 2 2 2 2
x /a +y /b =1 y =4ax x /a -y /b =1
2 2 2 2
Input There are multiple test cases. The first line of input is an integer T ≈ 10000 indicating the number of test cases.
Each test case consists of a line containing 6 real numbers a, b, c, d, e, f. The absolute value of any number never exceeds 10000. It's guaranteed that a2+c2>0, b=0, the conic section exists and it is non-degenerate. Output
2 2
For each test case, output the type of conic section ax +bxy+cy +dx+ey+f=0. See sample for more details. Sample Input
5 1 0 1 0 0 -1 1 0 2 0 0 -1 001100 1 0 -1 0 0 1 202440
Sample Output
circle ellipse parabola hyperbola circle

浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
9
解析
这题是几何题,看题目忽悠的挺厉害,其实没有其他任何的不存在的条件,通过观察 Output 也没有任何其他情况,所以 必定有解,无需考虑其他不可能的情况,比如平方和为负等。 可知对于 ax +bxy+cy +dx+ey+f=0 的方程,b 始终为零(题目限定) ,只要按照方程的要求去考虑 a 和 c 的关系即可,有一个 为零即为 parabolay2=4ax 的情形,否则,如果两个异号,就是 hyperbolax2/a2-y2/b2=1,如果同号,a==c 就是圆,不相等就 是椭圆。 这题需要着重注意的是 real number,所以一定要声明成 double 或者 float,int 的话就是华丽的 WA。 C++样例代码 样例代码
2 2
1 #include 2 using namespace std; 3 4 int main(){ 5 int T; 6 double a,b,c,d,e,f; 7 cin>> T; 8 while(T--){ 9 cin>> a >> b >> c >> d >> e >> f; 10 if(a == c && a * c > 0) cout<< "circle" < 0) cout<< "ellipse" <

10 浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
String Successor
The successor to a string can be calculated by applying the following rules: Ignore the nonalphanumerics unless there are no alphanumerics, in this case, increase the rightmost character in the string. The increment starts from the rightmost alphanumeric. Increase a digit always results in another digit ('0' -> '1', '1' -> '2' ... '9' -> '0'). Increase a upper case always results in another upper case ('A' -> 'B', 'B' -> 'C' ... 'Z' -> 'A'). Increase a lower case always results in another lower case ('a' -> 'b', 'b' -> 'c' ... 'z' -> 'a'). If the increment generates a carry, the alphanumeric to the left of it is increased. Add an additional alphanumeric to the left of the leftmost alphanumeric if necessary, the added alphanumeric is always of the same type with the leftmost alphanumeric ('1' for digit, 'A' for upper case and 'a' for lower case). Input There are multiple test cases. The first line of input is an integer T ≈ 10000 indicating the number of test cases. Each test case contains a nonempty string s and an integer 1 ≤ n ≤ 100. The string s consists of no more than 100 characters whose ASCII values range from 33('!') to 122('z'). Output For each test case, output the next n successors to the given string s in separate lines. Output a blank line after each test case. Sample Input 4 :-( 1 cirno=8 2 X3 /**********/ 4 Sample Output :-) cirno=9 cirnp=0 Y Z AA /**********0 /**********1 /**********2 /**********3
解析
此题典型模拟题,字符串操作,类似大数加法操作。 几个要点是 忽略非数字字母字符,除非没有数字字母字符,只要在最右边的字符上加 1 增加从最右边的数字字母字符开始

浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
11
数字字符的加 1 结果仍是数字字符 ('0' -> '1', '1' -> '2' ... '9' -> '0'). 大写字母字符的加 1 结果仍是大写字母字符('A' -> 'B', 'B' -> 'C' ... 'Z' -> 'A'). 小写字母字符的加 1 结果仍是小写字母字符('a' -> 'b', 'b' -> 'c' ... 'z' -> 'a'). 如果+1 产生了进位,字母数字字符的左边的要+1 如果必要,在最左边的字母数字字符的左边加上一个字母数字字符,形态和最左边的这个一样,数字就是 1,大 写字母是 A,小写字母是 a。 基本运算步骤: 首先寻找字母数字字符,如果没找到直接把最后一位++ 否则,找到最后一个字母数字字符开始增量操作并且记录进位,如果走完了还有进位,就找到第一个数字字母字符,在其 前面插入对应的字符即可。 考验字符串操作基本功,此题使用 string 比较方便,可能造成效率稍低。 C++样例代码 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 7 int carry; 8 9 intwillcarry(char c){ //判定会不会进位 10 if(c == '9' || c == 'z' || c == 'Z') return 1; 11 return 0; 12 } 13 14 char inc(char c){ //增一,会产生进位的判定 15 if(willcarry(c)) carry = 1; 16 else carry = 0; 17 if(isdigit(c)) return '0' + (c - '0' + 1) % 10; 18 if(islower(c)) return 'a' + (c - 'a' + 1) % 26; 19 if(isupper(c)) return 'A' + (c - 'A' + 1) % 26; 20 } 21 22 intjd(char c){ //是否是数字字母字符 23 if(isdigit(c) || islower(c) || isupper(c)) return 1; 24 return 0; 25 } 26 27 void proceed(string s, int t){ //入口 s 即字符串 28 string temp = s, add; 29 inti,hasa,x; 30 while(t--){ //变换 t 次 31 hasa = 0;x = temp.length(); 32 for(i = x - 1;i >= 0;i--){ 33 if(jd(temp[i])){ //找到最后一个字母数字字符 34 hasa = 1;break; 35 } 36 } 37 if(!hasa){ //如果没找到,第一位++ 38 temp[x - 1]++; 39 }else{ //找到了 40 for(;i >= 0;i--){ 41 if((hasa || carry) &&jd(temp[i])){ //如果是第一次或者有进位 42 hasa = 0; //第一次的标志清除 43 temp[i] = inc(temp[i]); //增量操作 44 }

12 浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 } if(carry){ //如果走完了还有进位没处理 for(i = 0;!jd(temp[i]);i++); if(isdigit(temp[i])) add = "1"; if(islower(temp[i])) add = "a"; if(isupper(temp[i])) add = "A"; temp = temp.substr(0,i) + add + temp.substr(i); } } cout<< temp <> T; while(T--){ cin>> s >> n; proceed(s,n); cout<//操作输出

浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
13
Kagome Kagome
Kagome kagome, kago no naka no tori wa Itsuitsudeyaru?Yoake no ban ni Tsuru to kame to subetta. Ushiro no shoumendaare? Translation: Kagome kagome, the bird in the cage, when will you come out? In the evening of the dawn, the crane and turtle slipped. Who stands right behind you now? Kagome Kagome is a Japanese children's game. One child is chosen as the oni (literally demon or ogre, but similar to the concept of "it" in tag) and sits blindfolded (or with their eyes covered). The other children join hands and walk in circles around the oni while singing the song for the game. When the song stops, the oni speaks aloud the name of the person behind him, and if he is correct, the person behind will exchange places with the oni. HigurashiTewi is playing Kagome Kagome with her n (n is even) friends as the oni now. She peeps to know who is right in front of her. Knowing the order of the children in circle and assuming that they keep distance evenly, it's easy to derive who is right behind her. Input There are multiple test cases. The first line of input is an integer T ≈ 100 indicating the number of test cases. The first line of each test case starts with an even number 1 ≤ n ≤ 100, followed by the name of the child who is right in front of HigurashiTewi. The second line contains exactly n different names, listed in counterclockwise order. Name is an alphanumeric string whose length never exceeds 20. It's guaranteed that the child in front of HigurashiTewi is always contained in the list exactly once. Output For each test case, output the name of the child who is right behind HigurashiTewi. Sample Input 3 2 Alice Alice Bob 4 inu inunekousagikizune 4 cat dog cat rabbit fox Sample Output Bob usagi fox
解析

14 浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
这题前面的太长了,就是做游戏,一个叫 HigurashiTewi 的小子在圈的中央,有偶数个小朋友以平均距离把她围成一圈,其 中一个站在她面前,在知道次序的情况下问站在她正后方的是谁。 此题接收的时候定位到面前的人,然后加上 n/2 再模除 n 即可。 C++样例代码 样例代码 1 #include 2 #include 3 using namespace std; 4 5 string s[101]; 6 7 int main(){ 8 intT,n,i,x; 9 string name; 10 cin>> T; 11 while(T--){ 12 cin>> n >> name; 13 for(i = 0;i > s[i]; 15 if(s[i] == name) x = i; 16 } 17 cout<< s[(x + n / 2) % n] <

浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
15
Javabeans
Javabeans are delicious. Javaman likes to eat javabeans very much. Javaman has n boxes of javabeans. There are exactly i javabeans in the i-th box (i = 1, 2, 3,...n). Everyday Javaman chooses an integer x. He also chooses several boxes where the numbers of javabeans are all at least x. Then he eats x javabeans in each box he has just chosen. Javaman wants to eat all the javabeans up as soon as possible. So how many days it costs for him to eat all the javabeans? Input There are multiple test cases. The first line of input is an integer T ≈ 100 indicating the number of test cases. Each test case is a line of a positive integer 0 < n < 231. Output For each test case output the result in a single line. Sample Input 4 1 2 3 4 Sample Output 1 2 2 3
解析
这题是这样的,有 n 个盒子从 1~n,第 i 个盒子里有 i 个咖啡豆,javaman 就每天选一个整数 x,然后在所有大于等于 x 的 盒子里面每个盒子吃掉 x 个咖啡豆,问最快几天可以把所有豆吃掉。 可以这样考虑,1,2,3,... n 这些盒子,第一天吃掉 n/2 ~ n 中的每个盒子里 n/2 个咖啡豆,这样剩下了一个从 1~n/2 的序 列,正好和前面的 1~n/2 个盒子合并考虑,这样有了折半的思想,知道所有的盒子里面要么是 0 要么是 1,吃掉即可。所 以这题的答案是向下取整 log2n+1。 解法 1 31 从 2 的 i 次方试验上去,知道超过 n 就算了,但是此题的数据最大可能到 2 ,这样当算到足够大的数再乘以 2 就越界,可 能成为负的,然后就是无限的循环,造成 TLE。 一种办法是升级整数表示范围,使用 long long。 C++样例代码 样例代码 1 #include 2 using namespace std; 3 4 int main(){ 5 intT,n,ic;

16 浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
6 7 8 9 10 11 12 13 14 15 16 17 18 19 long long i; cin>> T; while(T--){ cin>> n; ic = 0; i = 1; while(i <= n){ i *= 2; ic++; } cout<解法 2 就是直接求向下取整 log2n + 1,用位运算更快。 15 比如 12345,对应二进制是 11000000111001,一共 14 位,可知它小于 2 ,使用位运算将其逐位向右移,直到全部移出为 0 为止,这不会有溢出危险。 C++样例代码 样例代码 1 #include 2 #include 3 using namespace std; 4 5 int main(){ 6 intT,n,ic; 7 cin>> T; 8 while(T--){ 9 ic = 1; 10 cin>> n; 11 while(n >>= 1) ic++; 12 cout<

浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
17
Median
A median is described as the numeric value separating the higher half of a list, from the lower half. The median of a finite list of numbers can be found by arranging all the elements from lowest value to highest value and picking the middle one. If there is an even number of elements, the median is then defined to be the mean of the two middle values. Now, could you write a program to help to find the median? Input There are multiple test cases. The first line of input is an integer T ≈ 100 indicating the number of test cases. The first line of each test is an integer 0 < n < 500 indicating the number of elements. The second line consists of n numbers, the elements of the list, whose absolute values are smaller than 1,000,000. Output For each test case, output the median, with 3 decimal digits. Sample Input 3 1 0.0 4 1.0 1000.3 100.2 10.1 5 2.0 3.0 5.0 7.0 11.0 Sample Output 0.000 55.150 5.000
解析
此题找到若干个数按次序排好的中间一个,如果是奇数 n 个,就是第 n / 2 个,如果是偶数 n 个,就是 n/2-1 和 n/2 两个数 的平均数。 此题考查排序和输出格式化,当如如果要高效率,可以使用第 k 个元素的做法,参照 2009 年 Second-price Auction 题的第 三种解法。 这里排序使用了快速排序。 解法 1 C++样例代码 样例代码 1 #include 2 #include 3 #include 4 using namespace std; 5 6 double s[500]; 7 8 int comp(const void *a, const void *b){ 9 double *a1 = (double*) a; 10 double *b1 = (double*) b; 11 return *a1 - *b1;

18 浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 } int main(){ intT,n,i; cin>> T; while(T--){ cin>> n; for(i = 0;i > s[i]; qsort(s,n,sizeof(s[0]),comp); if(n & 1){ cout<解法 2 使用 algorithm 头文件里的 nth_element 函数定位第 n 个元素,效率貌似高了一点点,省了 10ms 时间。 C++样例代码 样例代码 1 #include 2 #include 3 #include 4 using namespace std; 5 6 double s[500]; 7 8 int main(){ 9 intT,n,i; 10 double res,mid1,mid2; 11 cin>> T; 12 while(T--){ 13 cin>> n; 14 for(i = 0;i > s[i]; 16 nth_element(s,s + n / 2,s + n); //定位中间 17 res = s[n / 2]; 18 if(!(n & 1)){ //如果是偶数 19 nth_element(s,s + n / 2 - 1,s + n); 20 mid1 = s[n / 2 - 1]; 21 res = (res + mid1) / 2; 22 } 23 cout<

浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
19
2010 年第七届程序设计大赛
总体分析
本届大赛专科组特等奖一队,经贸职业技术学院,解题数量 6 题; 一等奖五队,浙江教育学院、丽水职业技术学院、经贸职业技术学院、衢州职业技术学院、宁波大红鹰职业学院,解题数 量均为 5 题; 杭州职业技术学院的俞挺(07 软件)、华宇侃(08 计算机)、陈乐笑(08 计算机)组成的“我们的祖先在忽悠着你”队以 4 题成 绩排名 13,获银奖。 批注 [ys4]: 为啥会有一个垃圾袋?
现将第七届程序设计大赛试题分析如下 A B C D E F G H I J K L Who is Older? Somali Pirates Machine Next Expression An Awful Problem Friend Number Wu Xing One Person Game Country F Process the Tasks Strange Country II Guess the Price 54.42% (283/520)71.58% (383/535) 59.40% (278/468) 69.69% (345/495) 8.00% (2/25) 8.23% (14/170) 0.00% (0/2) 0.00% (0/0) 17.81% (173/971)26.68% (210/787) 4.73% (9/190) 11.27% (15/133) 28.67% (121/422)50.31% (240/477) 2.77% (3/108) 4.96% (15/302) 6.66% (1/15) 4.00% (2/50) 2.89% (7/242) 7.09% (23/324) 15.87% (67/422) 1.72% (151/695) 70.50% (294/417) 83.44% (363/435) 批注 [ys5]: 此为省赛内部数据 批注 [ys6]: 此数据为外部数据,一般 是省外或未在赛场比赛的队伍, 仅供 参考

20 浙江省程序设计大赛历年简单题解题分析|Since2011-4-3
图中,蓝色部分为 AC 量,灰色部分为非 AC 提交,可以发现,大致难度为 L< A< B< E< G< K< F< J< H< C< I< D,按照杭州职 业技术学院的学生水平,我的期望好点的队伍 5 题。大一队伍 2~3 题。
批注 [ys7]: 后面几题已不适用于专 科组学生
任务提示
批注 [ys8]: 请根据自身情况完成任 务 请大一同学务必使用 C 语言、C++或者 Java 完成第 L、A 和 B 题。 有一定基础的做 E 题,尝试理解 G 题。 冲榜的请做到 K 题。 如果该题有贱招,请尽量理解贱招 批注 [ys9]: 简单题很多都有竞赛思 维的解法, 也请已经做过的同学多思 考

C程序设计题库

填空题 20*2 ■对于51系列单片机,现有4种语言支持程序设计,它们是(汇编语言)、PL/M、(C语言)、BASIC。 ■单片机程序设计时需要在主程序中设计死循环来防止程序跑飞。在C语言中采用(while(1))或for(;;)语句实现死循环。 ■单片机程序设计中经常用到中断,在C语言程序设计中外部中断1的中断入口序号(2),而汇编语言程序设计中外部中断1的入口地址是(0013H)。 ■编写串口中断程序时要在函数说明部分后写interrupt 4 。 ■编写定时器0中断程序时要在函数说明部分后写interrupt 1 。 ■C语言程序设计中有一个无符号形字符变量temp和一个位变量Flag,现在分别对它们取反。相应的语句为temp=__~___temp; Flag=_!___Flag;。 ■I2C总线在传送数据过程中共有三种类型控制信号,它们分别是:_(起始信号)____、应答信号、_(停止信号)_____。 ■I2C的地址由(协议规定)与(硬件设置)两部分组成。 ■I2C器件的两条信号线分别为串行时钟线SCL 与串行数据线 SDA 。 ■MCS-51单片机操作I2C器件时,单片机必须做为主机,I\O编程。 ■在Cx51所有的数据类型中,只有bit 与unsigned char 直接支持机器指令。 ■编译器性能比较有如下几个方面:算数支持、生产代码大小、开打速度、支持浮点和long 。 ■在KEIL开发套件中,BL51链接器/定位器用于创建一个绝对目标横快。 ■Cx51中函数分为两大类:标准库函数和用户自定义函数。 ■在函数名前如果不指定函数类型,则该函数的类型为整型。 ■具有一定格式的数字或数值叫做数据,数据的不同格式叫做数据类型, 数据按一定的数据类型进行的排列、组合及架构称为数据结构。 ■数据类型的转换有自动转换与强制转换两种。 ■直接出现在程序中的数值(如TMOD=0x21)称为常数。在程序运行的过程中,其值不能改变且被定义为符号的(如#define CONST 60)称为常量。 ■软件对常量与变量的命名规范是:常量名用大写字母,变量名用小写字母。 ■MCS-51单片机串口用于中断通讯时,在进行初始化时必须设置的特殊功能寄存器有:

C语言程序设计竞赛题及其答案

数学与统计学院 第三届计算机程序设计竞赛题 竞赛需知: 1、答案必须写在答题纸上。 2、程序采用C/JAVA/VB/VFP语言实现均可。 3、考虑到各种因素,程序的键盘输入和结果输出可以用伪代码或者自然语言表示。但是必 须说明输入变量和输出变量。 4、题目最好能用完整、正确的语言程序来解决问题,如确实无法编写完整语言程序的,可 以写出程序主要框架和流程,必要时可以用伪代码或者自然语言描述算法(程序)。 一、玫瑰花数(20分) 如果一个四位数等于它的每一位数的4次方之和,则称为玫瑰花数。例如: + + 1634+ =, 4^4 4^3 4^6 4^1 编程输出所有的玫瑰花数。 #include void main() { int i,j,k,l,m; for(i=999;i<=9999;i++) { j=i/1000; k=i%10; l=i/100-10*j; m=i/10-100*j-10*l; if(i==j*j*j*j+k*k*k*k+l*l*l*l+m*m*m*m) printf("%d\n",i); } } 二、菱形图案(20分) 对给定的奇数n,编程打印菱形图案。 输入样例: 7 输出样例: * *** ***** ******* ***** *** * #include #include void main() {

int i,j,k; int n; scanf("%d",&n); for(i=0;i #include void main() { int i,j,x,y; float r; int a,b,count=0; printf("请输入矩阵的行列i,j:"); scanf("%d%d",&i,&j); printf("请输入圆心的坐标点及半径x,y,r:"); scanf("%d%d%f",&x,&y,&r); for(a=0;a

全国大学生结构设计竞赛赛题

第六届全国大学生结构设计竞赛赛题 1.命题背景 吊脚楼是我国传统山地民居中的典型形式。这种建筑依山就势,因地制宜,在今天仍然具有极强的适应性和顽强的生命力。这些建筑既是我中华民族久远历史文化传承的象征,也是我们的先辈们巧夺天工的聪明智慧和经验技能的充分体现。 重庆地区位于三峡库区,旧式民居中吊脚楼建筑比比皆是。近年来的工程实践和科学研究表明,这类建筑易于遭受到地震、大雨诱发泥石流、滑坡等地质灾害而发生破坏。自然灾害是这种建筑的天敌。 相对于地震、火灾等灾害而言,重庆地区由于地形地貌特征的影响,出现泥石流、滑坡等地质灾害的频率更大。因此,如何提高吊脚楼建筑抵抗这些地质灾害的能力,是工程师们应该想方设法去解决的问题。本次结构设计竞赛以吊脚楼建筑抵抗泥石流、滑坡等地质灾害为题目,具有重要的现实意义和工程针对性。 2.赛题概述 本次竞赛的题目考虑到可操作性,以质量球模拟泥石流或山体滑坡,撞击一个四层的吊脚楼框架结构模型的一层楼面,如图2.1所示。四层吊脚楼框架结构模型由参赛各队在规定的时间内现场完成。模型各层楼面系统承受的竖向荷载由附加配重钢板实现。主办方提供器材将模型与加载装置连接固定(加载台座倾角均为o 30θ=),并提供统一的测量工具对模型的性能进行测试。 图2.1.第六届全国大学生结构设计竞赛赛题简图 配重1M 配重2M 配重2M 后固定板 前撞击板 螺杆 钢底座 钢架A 钢架B 不锈钢半圆滑槽 模型部分(含部分加载装置) 加载台座 θ θ 加速度传感器 螺杆 硬橡胶

3.模型要求 图3.1.模型要求示意图 图 3.1模型设计参数取值表 q o 30 0L 20cm > —— H 1cm 99± L < 24cm —— q 配重1M 配重2M 配重2M 前撞击板 后固定板 底板 模型平面尺寸要求示意图 要求平整,且与前撞击板端头有效接触面积不小于22cm 要求平整,且与后固定板端头有效接触面积不小于22cm 底板示意图 允许固定区域 硬橡胶

程序设计题目

程序设计题一:学生信息管理系统 【课题内容】 学生信息的管理是每个学校必须具有的管理功能,主要是对学生的基本情况及学习成绩等方面的管理。该系统模拟一个简单的学生管理系统,要求对文件中所存储的学生数据进行各种常规操作,如:排序、查找、计算、显示等功能。通过此课题,熟练掌握文件、数组、结构体的各种操作,在程序设计中体现一定的算法思想,实现一个简单的学生信息管理系统。 【基本要求】 (1)学生信息包括: 学生基本信息文件(student.txt)(注:该文件不需要编程录入数据,可用文本编辑工具直接生成)的内容如下: 学号姓名性别宿舍号码电话号码 01 张成成男 501 87732111 02 李成华女 101 87723112 03 王成凤女 101 87723112 04 张明明男 502 87734333 05 陈东男 501 87732111 06 李果男 502 87734333 07 张园园女 102 87756122 ………………… (2)学生成绩基本信息文件(score.dat)及其内容如下:((注:该文件内容需要编程录入数据,具体做法见下面的要求) 学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩实得学分 01 A01 大学物理 3 66 78 82 02 B03 高等数学 4 78 -1 90 01 B03 高等数学 4 45 -1 88 02 C01 VF 3 65 76 66

…………………… (3)需要实现的功能 1)数据录入和计算功能:对score.dat进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据,综合成绩、实得学分由程序根据条件自动运算。 综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%;如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*15%+卷面成绩*70% 。 实得学分的计算:采用等级学分制,综合成绩在90-100之间,应得学分=学分*100%;综合成绩在80-90之间,应得学分=学分*80%;综合成绩在70-80之间 ,应得学分=学分*75%;综合成绩在60-70之间,应得学分=学分*60%;综合成绩在60以下 ,应得学分=学分*0%。 2)查询功能:分为学生基本情况查询和成绩查询两种 (1)学生基本情况查询: ①、输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出,格式如下: ②、输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。(格式如上所示) (2)成绩查询: ①、输入一个学号时,查询出此生的所有课程情况,格式如下: 学号:xx 姓名:xxxxx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx ………………… … 共修:xx科,实得总学分为: xxx (3)删除功能:

程序设计比赛试题

程序设计比赛试题 最少钱币数: 【问题描述】 这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数,一般而言有多种方式。例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。显然,最少需要2个钱币才能凑成15元。 你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。 【要求】 【数据输入】输入可以有多个测试用例。每个测试用例的第一行是待凑的钱数值M (1<=M<=2000,整数),接着的一行中,第一个整数K(1<=K<=10)表示币种个数,随后是K个互不相同的钱币面值Ki(1<=Ki<=1000)。输入M=0时结束。 【数据输出】每个测试用例输出一行,即凑成钱数值M最少需要的钱币个数。如果凑钱失败,输出“Impossible”。你可以假设,每种待凑钱币的数量是无限多的。 【样例输入】 15 6 2 5 10 20 50 100 1 1 2 【样例输出】 2 Impossible

Feli的生日礼物 【问题描述】 Felicia的生日是11月1日(和Kitty是同一天生的哦)。于是Feli请来Kitty一起过生日。Kitty带来了最新款的“Kitty猫”玩具准备送给Feli,不过她说,这份礼物可不是白送的。Feli要帮她一个忙,才能够得到心仪已久的玩具。Kitty说,“Kitty猫”玩具已经卖出了n!个,n<=10^100*_*,Kitty想知道确切的数字,而不是无聊的“一个数加个感叹号”。Feli听了大吃一惊。要知道,算出n!是一个无比艰巨的任务。Feli告诉Kitty,就算Feli算出n!,Kitty也看不下去,因为当n=20时,计算机的长整型已经存不下了(Kitty只能接受1-9之间的数字)。于是Kitty说,你只要告诉我n!最后一位非0的数就可以了。Feli想了想,立刻动手写了个程序算出了正确的答案。现在,请你也试试看!注意哦,AC的男生将会得到一个“Hello Kitty”计算器(可编程,CPU 1THz,Mem 1TMB),AC的女生将会得到一个仿真“Hello Kitty”宠物(善解人意,无须喂养,智商1101,附带写情书功能)。 【要求】 【数据输入】每行一个n,直到输入数据结束 【数据输出】对应输入的n,每行输出一个答案 【样例输入】 1101 【样例输出】 8

安徽ACM省赛试题

2018年安徽省机器人大赛程序设计竞赛

目录A.数7 B.编译错误 C.做操的时候要排好队D.判重 E.最长上升字串 F.雄伟的城堡 G.然后打5 H.运货卡车 I.最大矩形框 J.数列分段 K.数数字

A.数7 时间限制: 3s 描述 求整数序列中位置L到位置R中一共有多少个7。对于每个数7的个数的定义为,十进制各个位置上一共有多少个7,以及能够被7整除的次数。 输入 第一行是一个整数T,代表测试数据的组数。每组数据中两个整数L,R。其中T≤50,L

B.编译错误 时间限制: 3s 描述 在程序员编写程序的时候,通常会引用其他文件,而引用的文件也会引用其它的头文件。但是出现循环引用的现象编译时便会报错。例如A引用了B,B引用了C,C引用了A,那么就产生了循环引用(Circular reference)。考虑另外一个情况,A引用了B和C,B引用D,C引用D,虽然D被引用了两次,但是没有出现循环引用。 输入 第一行是一个整数T,代表测试数据的组数。每组数据中第一行是一个整数n,代表有多少个引用关系。接下来n行每行有2个字符串a,b,用空格分隔,代表a引用了b。其中T≤50, n≤105,每个字符串长度不超过100。 输出 共T行。若不会产生编译错误则输出Passed,否则输出Failed。 样例输入 样例输出

C.做操的时候要排好队 时间限制: 3s 描述 同学们在做早操时,应该按照身高从低到高排好队。但是总是有人不好好排队,老师在审查时会对没有排好的队伍扣除一定的分数。扣的分数被定义为,找到三个人Ai,Aj,Ak,其中i

中南大学结构设计大赛赛题

纵坡公路桥梁结构设计 一、赛题背景 猴子石大桥,又名长沙湘江三大桥、长沙湘江南大桥是长沙市二环线上 横跨湘江的一座特大桥。初建于1958年,后因历史原因于1960年停建;1996年再建,1997年再次停工;最后,大桥从1998年底开始建造,并于2000年9月建成通车。 猴子石大桥位于南二环与湘江交汇处,湘江河水从南边滔滔而来,又从 这里向北滚滚而去。东头是临江而卧的南郊公园,青山绿水在这里相得益彰,西头是大学城。其南边五公里处是连接南三环线的黑石铺大桥,北边六公里 处是横跨橘子洲的湘江一桥。因桥在老地片名猴子石地域内,猴子石知名度高,故名“猴子石大桥”。又因为大桥属于南二环线,因此也称其为南大桥。 大桥横跨湘江两岸,总跨度达1389米。其所处地点呈明显的“东高西低”之势,即东岸高,西岸低,带有明显的纵坡,大桥的桥柱高度是从桥中 心位置依次朝着两边递减,这样既保证了船只在河流中正常通航又能够缩短 工期节约成本。 猴子石大桥对在长沙的交通地位显著,在所有跨湘江通道中,猴子石大 桥白天12小时交通量分布比重达到28.8%,在长沙34条跨湘江通道中所占 交通比重最大。猴子石大桥建成后,对长沙的交通和经济发展都做出了巨大 贡献 此次比赛我们以湘江上这一著名的桥梁──猴子石大桥作为背景。

二、总体模型 总体模型由给定的承台、桥梁模型和底座木板三部分组成。用于固定山体及桥梁模型的底座木板,其顶面标高为±0.00m;给定的承台有两个,桥梁起始端承台标高为﹢0.24m,末端承台标高为+0.14m,两承台具体尺寸见图2至图5。桥梁模型为斜交纵坡直桥,全长1.4m。桥段结构的所有构件及节点均采用给定材料与 502 胶水手工制作完成。桥段结构桥面板制作时要求满铺,不允许有空隙,桥面上需设置两个减速带,减速带为3D打印构件(加载现场加装于桥面固定位置),具体位置见图1。底座木板主要用来承托给定的山体模型和制作的桥梁模型,模型与底座板用自攻螺钉连接。承台板上划有一条具有一定宽度的河流航道区域(距起点550mm处,河流宽450mm,流向与桥面呈75度角),为便于通航,航道内不允许设置桥墩。 三、两岸承台、桥梁模型及底座木板连接 承台模型与桥梁模型连接采用搭接方式,即在桥梁与各承台连接处设置搭接平台,搭接平台均设置在各承台小车通过平面下10mm处。搭接平台宽25mm,长210mm(如图3、5三维图所示);承台及各桥段模型通过自攻螺钉(螺钉直径5mm,钉长16mm,重量为1g/颗)与底座木板相连。要求桥墩柱脚处设置带孔连接件,用于螺钉与底座木板锚固,比赛中,每队将配发6颗螺钉,各队可视情况决定使用螺钉数,使用的螺钉重量将计入各队相应模型重量。 图1总模型布置图

程序设计大赛试题及答案

试题 1、数学黑洞(程序文件名maths.c/maths.cpp) 【问题描述】 任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。 【输入】 一行,一个4位正整数n(1000< n<9999) 【输出】 掉进黑洞的步数 输入 1234 输出 3 2、进制转换(程序文件名conver.c/conver.cpp) 【问题描述】 任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。 【输入】 一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。 【输出】 转换后的数 【输入输出样例】 输入 255 8 输出 377 3、分数线划定(程序文件名score.c/score.cpp) 【问题描述】 公务员选拔工作正在 A 市如火如荼的进行。为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。 【输入】 第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。输入数据保证m*150%向下取整后小于等于n。 第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。数据保证选手的报名号各不相同。 【输出】 第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。 从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。 【输入输出样例】 输入 6 3 1000 90 3239 88 2390 95 7231 84 1005 95 1001 88

acm程序设计大赛

acm程序设计大赛 一、参赛队的组成: 每只队伍三名参赛队员组成,设队长一名。 超过两名以上选手为女队员的参赛队可认为具有女队的资格。 在解出同等题目的情况下,女队优先,然后再计算时间(争夺第一名时除外)。 二、竞赛过程 竞赛中命题 6 题,比赛时间为5个小时。比赛编程语言为C或C++。 队员在接到题目后,编程进行解答,解答完每道题目,即可将程序通过网络提交,评委当场对提交的程序进行评判,并对提交的时间进行记录,经运行测试后由裁判判为正确或者错误,判决结果由系统自动反馈给参赛队伍。如果正确,就为该队挂上一个气球,不同颜色的气球代表不同的题目。为了增加比赛的紧张气氛,比赛结束前一个小时,停止公布所有的成绩。 参赛队员有权提交解释请求,针对题目描述中的不明确或错误的部分提问。如果裁判确认题目中确实存在不明确或错误的部分,将会通告所有参赛队伍进行声明或更正。 在竞赛中,参赛队员不得和同组成员以及竞赛组委会指定工作人员以外的人交谈;系统支持人员可以回答和系统相关的问题,例如解释系统错误信息。 参赛队员不能携带任何电子设备。允许携带纸质材料,包括源代码,参考书,字典等。 当参赛队伍出现妨碍比赛正常进行的行为时,诸如擅自移动赛场中的设备,未经授权修改比赛软硬件,干扰他人比赛等,都将会被竞赛组委会剥夺参赛资格。 三、竞赛评分 竞赛裁判主要负责当比赛选手对裁判系统的结果提出异议或题目需要人工判别时作出相应解释或判定。竞赛组委会主任在与竞赛裁判组协商后确定获胜队伍,有权根据由于不可预见的事件引起的问题,对结果进行调整,这个决定是最终的。 比赛最终结果由每支队伍解决的题目以及解决时间来决定。解题多者获胜,如果有队伍解题数量相同,则根据总用时加上惩罚时间进行排名。总用时和惩罚时间由每道解答正确的试题的用时加上惩罚时间组成。每道试题用时将从竞赛开始到试题解答被判定为正确为止,期间每一次错误的运行将被加罚20分钟时间,未正确解答的试题不计时。

长安大学2016年度结构设计大赛赛题-竹质塔结构

长安大学2016年大学生结构设计竞赛赛题 竹质塔结构模型设计、制作与测试 1.竞赛模型 设计能够承受一定的竖向荷载和水平地震作用的竹质塔结构模型,具体结构形式不限,可为四根、六根或八根柱组成的框架式空间结构,也可为其他结构。模型包括小振动台系统、上部塔结构模型和塔顶铁块三个部分,铁块通过热熔胶固定于塔顶,塔结构模型由参赛选手制作,并通过螺栓和竹质底板固定于振动台上,图1给出了一示意性结构图。 图1 模型立面示意图(单位:mm) 2. 模型要求 2.1 几何尺寸要求: (1) 底板:塔结构模型用胶水固定于模型底板上,底板为330mm×330mm×

8mm的木板(如图2所示),底板用螺栓固定于振动台上。 (2) 模型大小:模型总高度应为900mm,允许误差为±3mm。总高度为模型底板顶面至塔顶(模型顶面)上表面的垂直距离,但不包括塔顶铁块的高度。模型顶面为平面,应满足安全放置铁块的要求。模型底面尺寸不得超过220mm×220mm的正方形平面,塔顶不得小于150mm×150mm的正方形平面,即整个模型需放置于该正方形平面范围内,可为等截面结构也可为变截面结构,模型底面外轮廓与底板边缘应有足够的距离以保证螺栓能顺利紧固。模型的主要受力构件应合理布置,整体结构应体现“创新、轻巧、美观、实用”的原则。 图2模型底板示意图(单位:mm) 2.2 模型及附加铁块安装要求: (1)利用热熔胶将附加铁块固定在塔顶上,可在顶层设置固定铁块辅助装置,但辅助装置和铁块不能超出塔顶范围且不能直接跟柱接触。 (2) 提供的铁块为底边150mm高50mm的长方体,重量约为8.83 kg。 3. 加载设备介绍

【汇编语言程序设计】试题及答案合集

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 1.对于有符号的数来说,下列哪个值最大(D) A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是(D) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.8088/8086存储器分段,每个段不超过(D ) A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A) A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置?1?,可以使用(B)A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是( C) A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的(D) A:一个存储单元由16个二进制位组成,简称字。

B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 10.下列关于堆栈的说法,错误的是(D) A:以?先入后出?为原则。 B:栈区最高地址单元的前一个单元为栈底。 C:运行中SP寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 11.表示过程定义结束的伪指令是( A) A.ENDP B.ENDS C.END D.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $-BUF1 符号COUNT等价的值是( B) A.6 B.18 C.16 D.9 13.下列标志位中,可以用来判断计算结果正负的是(B) A:PF B:SF C:DF D:OF 14.下列指令正确的是( CD) A. MOV [100H], [BX] B.MOV DS, ES C. ADD V[BX], CX D.MOV AX, 34H 15.下列哪个寄存器是属于指针寄存器(C) A:SI B:DX C:SP D:ES 二、填空题 (每小题4 分,共 20 分) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _LEA SI,FLD______ MOV CX, 8 XOR AX, AX

第六届程序设计比赛题目与答案

一、鸡兔同笼 问题描述 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物 输入数据 第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (a < 32768)。 输出要求 n行,每行输出对应一个输入。输出是两个正整数,第一个是最少的动物数,第二个是最多的动物数,两个正整数用空格分开。如果没有满足要求的情况出现,则输出2个0。 输入样例 2 3 20 输出样例 0 0 5 10 解题思路 这个问题可以描述成任给一个整数N,如果N是奇数,输出0 0,否则如果N是4的倍数,输出N / 4 N / 2,如果N不是4的倍数,输出N/4+1 N/2。这是一个一般的计算题,只要实现相应的判断和输出代码就可以了。题目中说明了输入整数在一个比较小的范围内,所以只需要考虑整数运算就可以了。 参考程序 1.#include 2.void main( ) 3.{ 4.int nCases, i, nFeet; //nCases 表示输入测试数据的组数,nFeet表示输入的脚数。 5.scanf("%d", &nCases); 6.for(i = 0; i < nCases; i++){ 7.scanf("%d", &nFeet); 8.if(nFeet %2 != 0) // 如果有奇数只脚,则输入不正确, 9.// 因为不论2只还是4只,都是偶数 10.printf("0 0\n"); 11.else if (nFeet%4 != 0) //若要动物数目最少,使动物尽量有4只脚 12.//若要动物数目最多,使动物尽量有2只脚 13.printf("%d %d\n", nFeet / 4 + 1, nFeet / 2); 14.else printf("%d %d\n", nFeet / 4, nFeet / 2); 15.} 16.}

山东科技大学第二届ACM程序设计大赛试题

山东科技大学 第二届ACM程序设计大赛 试题册 试题共14页,题目共计12道

山东科技大学第二届ACM 程序设计大赛试题册 Problem A 简单计算 Description 给出n 个十进制的数,找出这n 个数的二进制表示中1的个数最少的数。 Input 输入的第一行为一个正整数T (1≤T ≤20),代表测试数据组数。 对于每组测试数据,输入的第一行为一个正整数n (1≤n ≤10000),第二行为n 个正整数A 1、A 2、…、A n (1≤A i ≤109 ),每个数之间以空格分隔。 Output 每组数据输出一行,先输出数据组数,再输出二进制中含1最少的数,如果存在多个数符合条件,输出最小的那个。具体输出格式见样例输出。 Sample Input Sample Output

山东科技大学第二届ACM 程序设计大赛试题册 Problem B 关键字搜索 Description 我们的新网站具有了全新的搜索功能,使用了2个通配符“*”和“?”,其中“*”表示0或者多个小写字母,“?”代表1个字母。 当我们输入一个关键字的时候,我们在不确定的地方就使用通配符。我们在数据库里面有多条记录,每条记录都是由小写字母组成,现在给出一个关键字,你能告诉我数据库里面有多少条与关键字相匹配的记录吗? 例如: 如果关键字是j*y*m*y?,那么jiyanmoyu ,jyanmoyu ,jymyu 都是相匹配的记录。 Input 第一行输入一个T (T ≤20),表示有T 组测试数据。对于每组测试数据,第一行是输入的关键字,接下是数据库里面的所有记录的条数n ,1≤n ≤10000,每条记录的长度不超过50个小写字母。 Output 对于每组测试数据,输出与关键字相匹配的总记录条数,占一行。 Sample Input Sample Output

全国大学生第四届结构设计大赛赛题

全国大学生第四届结构设计大赛赛题 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

第四届全国大学生结构设计竞赛 赛题 第四届全国大学生结构设计竞赛委员会 2010. 6. 30 赛题名称:体育场悬挑屋盖结构 1、竞赛模型 竞赛模型为体育场看台上部悬挑屋盖结构,采用木质材料制作,具体结构形式不限。模型包括下部看台、过渡钢板和上部挑篷结构三部分。其中前两部分通过螺栓连接,由承办方提供;挑篷结构由参赛选手设计制作,并通过螺栓与过渡钢板连接。图1给出一示意性结构形式。 图1示意性悬挑屋盖结构 2、模型要求 2.1 下部看台及过渡钢板 看台底面尺寸600mm×800mm(800mm为悬挑方向),高340mm,剖面呈梯形,顶部宽150mm(如图2所示)。看台顶部设有过渡钢板,厚10mm,平面尺寸150mm×600mm。板上设有如图2所示的M4螺栓孔,用于固定挑篷结构。 2.2挑篷结构 挑篷结构包括支承骨架和围护材料两部分。支承骨架由木条制成,形式不限。围护材料采用120g布纹纸,由承办方统一提供,各队自行裁剪粘贴。要求

围护材料在外观上必须全部覆盖挑篷上部及背部区域;即从挑篷上方和后方看,围护材料不得出现空隙(见图3)。围护材料可探出支承骨架边缘,但其最大探出长度不得大于20mm。 图2 看台平面图及剖面图 图3 悬挑结构示意 为保证竞赛的公平性、合理性和可操作性,对挑篷几何尺寸做如下限定:1)在距挑篷前缘60mm区域内(图4中的A点附近),必须保证屋面平坦,不得有明显的倾斜和弯曲,以便竞赛过程中的加载与测量; 2)挑篷结构上弦前缘(即图4中的A点)高度不得低于650mm,在挑篷结构的下方(即图4中B点以下以右区域)不得出现任何构件; 3)屋面前缘最低点不得低于后缘的最高点,相当于图4中的A点高度不低于C点。 图4 尺寸限值(图中括号内数字为相对于O点的坐标) 3、加荷方式 采用在悬挑屋盖上加竖向静载和风荷载的方式考核各队模型的刚度和承载力。 3.1 荷载施加 1)在距悬挑屋盖前缘50mm处缓慢施加一重物加载条,测量屋盖前端在重物荷载作用下的竖向位移(见图5),记为d1。重物加载条为钢质,截面 20mm×20mm,长600mm,重约1.88kg,在屋面上沿垂直悬挑方向放置,测量完毕后取下。

程序设计题

程序填空题 1.下列给定程序中,函数fun的功能是:找出100到x(x≤999)之间各位上的数字之和为15的所有整数,并在屏幕输出;将符合条件的整数的个数作为函数值返回。 例如,当n值为500时,各位数字之和为15的整数有:159、168、177、186、195、249、258、267、276、285、294、339、348、357、366、375、384、393、429、438、447、456、465、474、483、492。共有26个。请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程 #include int fun(int x) { int n, s1, s2, s3, t; /**********found**********/ n=__1__; t=100; /**********found**********/ while(t<=__2__) { s1=t%10; s2=(t/10)%10; s3=t/100; if(s1+s2+s3==15) { printf("%d ",t); n++; } /**********found**********/ __3__; } return n; } main() { int x=-1; while(x>999||x<0) { printf("Please input(0 #include #include #define N 9

acm程序设计大赛题目

The Mailboxes Manufacturers Problem Time Limit:1000MS Memory Limit:65536K Total Submit:299 Accepted:227 Description In the good old days when Swedish children were still allowed to blowup their fingers with fire-crackers, gangs of excited kids would plague certain smaller cities during Easter time, with only one thing in mind: To blow things up. Small boxes were easy to blow up, and thus mailboxes became a popular target. Now, a small mailbox manufacturer is interested in how many fire-crackers his new mailbox prototype can withstand without exploding and has hired you to help him. He will provide you with k(1 ≤ k≤ 10) identical mailbox prototypes each fitting up to m(1 ≤ m≤ 100) crackers. However, he is not sure of how many firecrackers he needs to provide you with in order for you to be able to solve his problem, so he asks you. You think for a while and then say, “Well,if I blow up a mailbox I can’t use it again, so if you would provide me with only k = 1 mailboxes, I would have to start testing with 1 cracker, then 2 crackers, and so on until it finally exploded. In the worst case, that is if it does not blow up ev en when filled with m crackers, I would need 1 + 2 + 3 + … + m = m ×(m+ 1) ? 2 crackers. If m = 100 that would mean more than 5000 fire-crackers!” “That’s too many,” he replies. “What if I give you more than k = 1 mailboxes? Can you find a strategy that requires less crackers?” Can you? And what is the minimum number of crackers that you should ask him to provide you with? You may assume the following: 1.If a mailbox can withstand x fire-crackers, it can also withstand x? 1 fire-crackers. 2.Upon an explosion, a mailbox is either totally destroyed (blown up) or unharmed, which means that it can be reused in another test explosion.

第八届全国大学生结构设计竞赛赛题

附件:2014全国大学生结构设计竞赛赛题 三重檐攒尖顶仿古楼阁模型制作与测试 1、选题背景 中国木结构古建筑在世界建筑之林中独树一帜、风格鲜明,具有极高的历史、文化及艺术价值。其中楼阁式古建筑以其优美的造型和精巧的设计闻名于世,已成为中国古建筑的典型象征。 据历代营造史料记载,楼与阁原有明显区别,但后来因其均为复层建筑,故通称楼阁,其中比较著名的有武汉黄鹤楼、岳阳岳阳楼、南昌滕王阁、烟台蓬莱阁以及西安钟楼等。我国古代楼阁构架形式多样,屋盖造型丰富。在广泛调研及征求意见的基础上,本次竞赛的模型形式确定为三重檐攒尖顶仿古楼阁。该类古建的一个现存实例为明代所建的西安钟楼,如图1所示。基于当前全球已进入巨震期这一工程背景,本次竞赛引入模拟地震作用作为模型的测试条件,这对于众多现存同类古建的抗震修缮与补强具有现实的科学价值和工程意义。 图1 西安·钟楼

2、竞赛模型 竞赛模型采用竹质材料制作,包括一、二、三层构架及一、二层屋檐,其构造示例如图2(a)所示。模型柱脚用热熔胶固定于底板之上,底板用螺栓固定于振动台上。模型制作材料、小振动台系统和模型配重由承办方提供,底板用螺栓固定于振动台上,其加载安装形式见图2(b) 。 (a )模型构造示例 (b )加载安装形式 图2 竞赛模型及其加载安装 3、模型要求 3.1 模型构造 3.1.1 总体规定 (1)赛题中所涉及各种尺寸,如无特殊说明,允许误差均为±3mm 。 (2)一至三层楼面标高(由底板上表面量至各楼层梁的上表面最高处)分别为0.24m 、0.42m 、0.60m 。 (3)沿结构的外轮廓不能设置任何蒙皮。 3.1.2竖向构件布置要求: (1)结构竖向构件必须是铅直柱,不允许使用斜向支撑与拉条。 振动台 底板 模型配重

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

相关文档
相关文档 最新文档