2013蓝桥杯初赛c语言专科组--题目与答案资料
蓝桥比赛练习C语言[5篇]
蓝桥比赛练习C语言[5篇]第一篇:蓝桥比赛练习C语言时间限制:1.0s 内存限制:256.0MB1闰年判断问题描述给定一个年份,判断这一年是不是闰年。
当以下情况之一满足时,这一年是闰年: 1.年份是4的倍数而不是100的倍数; 2.年份是400的倍数。
其他的年份都不是闰年。
输入格式输入包含一个整数y,表示当前的年份。
输出格式输出一行,如果给定的年份是闰年,则输出yes,否则输出no。
说明:当试题指定你输出一个字符串作为结果(比如本题的yes 或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。
样例输入2013 样例输出no 样例输入2016 样例输出yes 数据规模与约定1990 <= y <= 2050。
本题的C参考代码如下:1.#include2.int main()3.{4.int y;5.scanf(“%d”, &y);6.if(y%4==0 && y%100!=0 || y%400==0)7.printf(“yes”);8.else9.printf(“no”);10.return 0;11.} 2.01字串问题描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。
它们的前几个是:00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串。
输入格式本试题没有输入。
输出格式输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出00000 00001 00010 00011 本题的C参考代码如下:1.#include2.int main()3.{4.int i, j, k, l, m;5.for(i = 0;i <= 1;++i)6.for(j = 0;j <= 1;++j)7.for(k = 0;k <= 1;++k)8.for(l = 0;l <= 1;++l)9.for(m = 0;m <= 1;++m)10.printf(“%d%d%d%d%dn”, i, j, k, l, m);11.return 0;12.}3.字母图形问题描述利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
C语言初赛题库 带答案
1、执行以下程序时输人1234567,则输出结果是(D)。
#includemain(){int a =1,b;scanf("%3d%2d",&a,&b);printf("%d%d\n",a,b);}A.12367B.12346C.12312D.123452、C语言主要是借助以下哪个功能来实现程序模块化( A )A.定义函数B.定义常量和外部变量C.三种基本结构语句D.丰富的数据类型3、关于C语言中数的表示,以下叙述正确的是(B)。
A.只有整型数在允许范围内能精确无误的表示,实型数会有误差B.只要在在允许范围内整型和实型都能精确表示C.只有实型数在允许范围内能精确无误的表示,整型数会有误差D.只有八进制表示的数在不会有误差4、若有定义和语句:int a,b; scanf("%d,%d",&a,&b); 以下选项中的输入数据,不能把值3 赋给变量a、5 赋给变量b 的是DA.3,5,B.3,5,4C.3 ,5D.3.55、设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应选择的存储类别是( C)A.autoB.registerC.staticD.auto或register6、若有定义语句 int b=2; 则表达式(b<2)/(3||b)的值是CA.4B.8C.0D.27、设有定义:int x=3;,以下表达式中,值不为l2的是(D)。
A.x*=x+1B.x++,3*xC.x*=(1+x)D.2*x,x+=68、以下关于long、int和short类型数据占用内存大小的叙述中正确的是(D)。
A .均占4个字节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由C语言编译系统决定9、若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为(B)。
2010-2013蓝桥杯预赛真题及详细答案
第三届蓝桥桥杯预赛真题及详细答案一、微生物增殖假设有两种微生物X和Y, X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。
一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。
现在已知有新出生的X=10, Y=89,求60分钟后Y的数目。
如果X=10,Y=90呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。
把答案写在“解答.txt”中,不要写在这里!答案:0 和94371840(此题比较简单就不写程序了,以下均有程序)二、古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把ABCDE 所代表的数字写出来。
答案写在“解答.txt”中,不要写在这里!参考答案:21978参考程序:#include<stdio.h>void main(){int k,t1 ,t;for(k=10234;k<50000;k++){bool flag[10]={0};t=k;t1=0;while(t){if(flag[t%10])break ;flag[t%10] = true ;t1 = t1*10 + t%10 ;t /= 10 ;}if( t==0 && t1%k==0){printf("%d * %d = %d\n",k,t1/k,t1);}}}三、比酒量有一群海盗(不多于20人),在船上比拼酒量。
过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。
再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。
当第4瓶酒平分喝下后,大家都倒下了。
2013蓝桥杯试题及答案
2013蓝桥杯试题及答案一、选择题1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在Java中,以下哪个是合法的类名?A. 2ClassB. classC. ClassD. Class_答案:C3. 在HTML中,用于插入图片的标签是:A. <img>B. <image>C. <picture>D. <photo>答案:A4. 在数据库设计中,实现表之间关系的是:A. 主键B. 外键C. 索引D. 视图答案:B5. 在Python中,以下哪个是正确的字符串格式化方法?A. %sB. .format()C. str()D. printf()答案:B二、填空题6. 在C++中,标准模板库(STL)中的_________容器提供了平均时间复杂度为O(1)的插入和删除操作。
答案:vector7. 在JavaScript中,用于定义一个函数的关键字是_________。
答案:function8. 在SQL中,用于查询数据的关键字是_________。
答案:SELECT9. 在CSS中,用于设置元素宽度的属性是_________。
答案:width10. 在操作系统中,进程和线程的主要区别在于_________。
答案:进程是资源分配的基本单位,线程是执行的基本单位。
三、简答题11. 请简述软件开发过程中的需求分析阶段的主要任务。
答案:需求分析阶段的主要任务是确定软件系统的功能和性能要求。
这包括与客户沟通以了解他们的需求,收集和分析这些需求,然后明确和文档化软件必须执行的功能。
此外,还包括确定系统的性能要求,如响应时间、并发用户数等。
12. 请描述在网络编程中,TCP和UDP协议的主要区别。
答案:TCP(传输控制协议)和UDP(用户数据报协议)是网络层的两种主要协议。
TCP提供面向连接、可靠的字节流服务,它确保数据包按顺序、无误差地传输,适用于需要可靠传输的应用,如网页浏览和文件传输。
蓝桥杯第八届c语言试题及答案
蓝桥杯第八届c语言试题及答案蓝桥杯第八届C语言试题及答案1. 题目一:字符串反转要求:编写一个函数,实现字符串的反转。
```cvoid reverseString(char* str) {int i = 0, j = strlen(str) - 1;while (i < j) {char temp = str[i];str[i] = str[j];str[j] = temp;i++;j--;}}```答案:上述代码定义了一个名为`reverseString`的函数,它接受一个字符数组`str`作为参数。
通过交换数组两端的字符,实现了字符串的反转。
2. 题目二:寻找最大数要求:给定一个整数数组,找出数组中的最大数。
```cint findMax(int arr[], int size) {int max = arr[0];for (int i = 1; i < size; i++) {if (arr[i] > max) {max = arr[i];}}return max;}```答案:函数`findMax`接受一个整数数组`arr`和数组的大小`size`作为参数。
它初始化最大数为数组的第一个元素,然后遍历数组,如果发现更大的数,则更新最大数。
最后返回找到的最大数。
3. 题目三:计算阶乘要求:编写一个函数,计算一个整数的阶乘。
```clong long factorial(int n) {if (n == 0) return 1;long long result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}```答案:函数`factorial`接受一个整数`n`作为参数。
如果`n`为0,直接返回1,因为0的阶乘定义为1。
否则,初始化结果为1,并通过循环计算从1到`n`的乘积,最后返回计算出的阶乘值。
2013年蓝桥杯模拟赛答案
2013年蓝桥杯模拟赛答案⼀、标题: 1的个数从1到20的所有数字中含有多少个“1”仔细数⼀下,应该是12个。
那么从1到1000的整数中,含有多少个“1”呢?请填写该数字。
#include <iostream>using namespace std;#define MAX 1000int main(){int count = 0;int m;for(int i = 1; i <= MAX; i++){int j = i;while(j){m = j % 10;if(m == 1){count++;}j = j / 10;}}cout << count << endl;}题⽬标题: 1的个数参考答案:301得分:10⼆、标题:硬币⽅案有50枚硬币,可能包括4种类型:1元,5⾓,1⾓,5分。
已知总价值为20元。
求各种硬币的数量。
⽐如:2,34,6,8 就是⼀种答案。
⽽ 2,33,15,0 是另⼀个可能的答案,显然答案不唯⼀。
你的任务是确定类似这样的不同的⽅案⼀共有多少个(包括已经给出的2个)?直接提交该数字,不要提交多余的内容。
#include <iostream>using namespace std;#define MAX 20int main(){int count = 0;for(int i = 0; i <= 20; i++){for(int j = 0; j <= 40; j++){for(int k = 0; k <= 200; k++){for(int m = 0; m <= 400; m++){if(i + j + m + k == 50 && i * 100 + j * 50 + k *10 + m * 5 == 2000){count++;}}}}}cout << count << endl;}题⽬标题:硬币⽅案参考答案:50三、标题:四⽅定理数论中有著名的四⽅定理:所有⾃然数⾄多只要⽤四个数的平⽅和就可以表⽰。
蓝桥杯c语言答案
蓝桥杯c语言答案【篇一:2013蓝桥杯c语言编程答案】代码2. 标题: 马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
有一次,老师出的题目是:36 x 495 = ?他却给抄成了:396 x 45 = ?但结果却很戏剧性,他的答案竟然是对的!!因为 36 * 495 = 396 * 45 = 17820类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54假设a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。
满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。
答案直接通过浏览器提交。
注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。
答案:1423. 标题: 振兴中华小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)从我做起振我做起振兴做起振兴中起振兴中华比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。
一直要跳到“华”字结束。
要求跳过的路线刚好构成“从我做起振兴中华”这句话。
请你帮助小明算一算他一共有多少种可能的跳跃路线呢?答案是一个整数,请通过浏览器直接提交该数字。
答案:354. 标题: 幻方填空幻方是把一些数字填写在方阵中,使得行、列、两条对角线的数字之和都相等。
欧洲最著名的幻方是德国数学家、画家迪勒创作的版画《忧郁》中给出的一个4阶幻方。
他把1,2,3,...16 这16个数字填写在4 x 4的方格中。
如图p1.jpg所示,即:16 ? ? 13? ? 11 ?9 ? ? *? 15 ? 1表中有些数字已经显露出来,还有些用?和*代替。
2013 c语言试题及答案
理论考试(120分钟)一、单项选择题(在每小题的4个备选答案中,选出一个最佳答案,共15小题;每小题2分,共30分)1.一个C程序的执行是从( A)A.本程序的main函数开始,到main函数结束B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束2.已知int x=10,y=20,z=30; 以下语句执行后x,y,z的值是( B) if (x>y) z=x; x=y;y=z;A. 10,20,30B. 20,30,30C. 20,30,10D. 20,30,20 3.int a=1,b=2,x=3; 表达式:x*=a+b计算后x的值为:( B )A. 5B. 9C. 3D. 64.下列选项,在C语言中能作为合法标识符的是( D)A. %xB. a+bC. 2_int_12_D. int_2_5.#include<stdio.h> (A)void main(){int sum,pad;sum=pad=5;pad=sum++;pad++;++pad;printf("%d %d\n",pad, sum);}A.7 6B. 6 5C. 7 5D. 6 6 6.若有说明:int a[10];则对a 数组元素的正确引用是( D )A. a[10]B. a[3, 5]C. a(5)D. a[10-10] 7.请读程序#include<stdio.h>#define MUL(x,y) (x)*yvoid main(){ int a=3, b=4, c;c=MUL(a++, b++);printf("%d\n", c);}上面程序的输出结果是(A)。
A. 12B. 15C. 20D. 168.若用数组名作为函数调用的实参,传递给形参的是数组的( A )A. 数组的首地址B. 数组第一个元素的值C. 数组中全部元素的值D. 数组元素的个数9.阅读以下程序void main(){ int a=5,b=0,c=1;if(a=b+c) printf(“***\n”);else printf(“$$$\n”);}以上程序( C)A. 语法有错不能通过编译B. 可以通过编译但不能通过连接C. 输出***D. 输出$$$10.下列关于函数定义正确的是( D )A. fun(int x,y){ int z;return z;}B. void fun(int x,int y){ return x+y;}C. fun(x,y){int x,y;double z;z=x+y;return z;}D. double fun(int x,int y) { double z;z=x+y;return z;}11.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(B )A. 地址传递B. 单向值传递C. 由实参传给形参,再由形参传回实参D. 传递方式由用户指定12.具有相同基类型的指针变量P和数组Y,下列写法中不合法的是( D ) A.P = Y B.*P = Y[i]C.P = &Y[i] D.P = &Y13.设x和y均为int型变量,则下列语句:x+=y; y=x-y; x- =y;的功能是(D ) A.把x和y按从大到小排列。
蓝桥杯专科组c语言试题及答案
蓝桥杯专科组c语言试题及答案蓝桥杯专科组C语言试题及答案1. 单项选择题(1) 在C语言中,下列哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str[] = {"Hello"};D. char str[] = "Hello";答案:A(2) 下列关于C语言函数的描述中,错误的是?A. 函数可以没有返回值。
B. 函数可以有多个返回值。
C. 函数可以有默认参数。
D. 函数可以有不定数量的参数。
答案:C2. 程序填空题请在空白处填入正确的代码,以实现以下功能:计算并输出1到100之间所有偶数的和。
#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}3. 编程题编写一个C语言程序,实现以下功能:接受用户输入的两个整数,输出它们的和。
#include <stdio.h>int main() {int num1, num2, sum;printf("Enter two integers: ");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("The sum is: %d\n", sum);return 0;}4. 简答题(1) 请简述C语言中指针的概念。
答案:在C语言中,指针是一种变量,它存储了另一个变量的内存地址。
蓝桥杯第六届c语言试题及答案
蓝桥杯第六届c语言试题及答案蓝桥杯第六届C语言试题及答案1. 选择题1.1. 以下哪个选项是C语言中的关键字?A. intB. integerC. varD. string答案: A1.2. C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案: A2. 填空题2.1. 在C语言中,用于定义一个整型变量的关键字是____。
答案: int2.2. C语言中,用于数组定义的关键字是____。
答案: array3. 编程题3.1. 编写一个C语言程序,计算并输出100以内所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```3.2. 编写一个C语言程序,实现字符串反转。
答案:```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```4. 简答题4.1. 简述C语言中指针的概念及其用途。
JavaC组蓝桥杯107道历年真题
JavaC组蓝桥杯107道历年真题2013年JavaC组————蓝桥杯第四届猜年龄暴⼒法 or Set集合【问题描述】美国数学家维纳(N.Wiener)智⼒早熟,11岁就上了⼤学。
他曾在1935~1936年应邀来中国清华⼤学讲学。
⼀次,他参加某个重要会议,年轻的脸孔引⼈注⽬。
于是有⼈询问他的年龄,他回答说: “我年龄的⽴⽅是个4位数。
我年龄的4次⽅是个6位数。
这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。
” 请你推算⼀下,他当时到底有多年轻。
通过浏览器,直接提交他那时的年龄数字。
注意:不要提交解答过程,或其它的说明⽂字。
【答案】18【暴⼒法代码】public static void main(String[] args) {for (int age = 11; age < 20; age++) {System.out.println("年龄"+age+":"+Math.pow(age, 3) +" "+ Math.pow(age, 4));}}【输出】年龄11:1331.0 14641.0年龄12:1728.0 20736.0年龄13:2197.0 28561.0年龄14:2744.0 38416.0年龄15:3375.0 50625.0年龄16:4096.0 65536.0年龄17:4913.0 83521.0年龄18:5832.0 104976.0年龄19:6859.0 130321.0【Set集合代码】public static void main(String[] args) {for(int i=10;i<100;i++) {int i1=i*i*i;int i2=i1*i;String s1 = i1+"";String s2 = i2+"";if(s1.length()==4&&s2.length()==6&&Check(s1+s2)) {System.out.println(i);break;}}}public static boolean Check(String s) {Set<Character> set=new HashSet<Character>(); // 不允许出现重复元素for(int i=0;i<s.length();i++) {set.add(s.charAt(i));}return set.size()==10; // 等于10 正好0~9都存⼊Set集合中}组元素暴⼒法or递归全排列【问题描述】素数就是不能再进⾏等分的数。
2013蓝桥杯初赛c语言专科组--题目与答案
1. 题目标题: 猜年龄美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。
他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。
于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。
我年龄的4次方是个6位数。
这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。
”请你推算一下,他当时到底有多年轻。
通过浏览器,直接提交他那时的年龄数字。
注意:不要提交解答过程,或其它的说明文字。
答案:182. 标题: 马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
有一次,老师出的题目是:36 x 495 = ?他却给抄成了:396 x 45 = ?但结果却很戏剧性,他的答案竟然是对的!!因为36 * 495 = 396 * 45 = 17820类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。
满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。
答案直接通过浏览器提交。
注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。
答案:1423. 标题: 振兴中华小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)从我做起振我做起振兴做起振兴中起振兴中华比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。
一直要跳到“华”字结束。
要求跳过的路线刚好构成“从我做起振兴中华”这句话。
请你帮助小明算一算他一共有多少种可能的跳跃路线呢?答案是一个整数,请通过浏览器直接提交该数字。
蓝桥杯c语言试题及答案预赛
蓝桥杯c语言试题及答案预赛蓝桥杯C语言试题及答案预赛1. 题目一:计算阶乘要求:编写一个程序,计算并输出任意正整数的阶乘。
答案:```c#include <stdio.h>long long factorial(int n) {if (n == 0) return 1;long long result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}int main() {int number;printf("请输入一个正整数:");scanf("%d", &number);printf("%d的阶乘是:%lld\n", number, factorial(number));return 0;}```2. 题目二:寻找最大值要求:给定一个整数数组,找出数组中的最大值。
答案:```c#include <stdio.h>int findMax(int arr[], int size) {int max = arr[0];for (int i = 1; i < size; i++) {if (arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {3, 5, 2, 7, 1};int size = sizeof(arr) / sizeof(arr[0]);printf("数组中的最大值是:%d\n", findMax(arr, size)); return 0;}```3. 题目三:字符串反转要求:编写一个程序,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```4. 题目四:斐波那契数列要求:编写一个程序,输出斐波那契数列的前N项。
2013年大学生英语竞赛C类初赛真题及详解
2. What does “Fill Me In” refer to in this conversation? A. A type of upgraded mobile phone. B. A well-selling magazine. C. A writer’s new book series. 【听力原文】 M: So, how well is your “Fill Me In” selling? W: Oh, great, in fact it’s only the fourth week of publication of the first issue, and we’ve had to reprint another 2000. We’ve sold about 2300. Mostly in alternative bookshops that cater for people who are... er different. M: Congratulations!
Part V Translation (10 marks) Part VI Error Correction (10 marks) Part VII IQ Test (5 marks) Part VIII Writing (30 marks)
I (10 marks) II (20 marks)
Part I Listening Comprehension (30 marks)
Part II Vocabulary and Structure (15 marks) Part Ⅲ Cloze (10 marks) Part Ⅳ Reading Comprehension (40 marks) Part V Translation (10 marks) Part VI Error Correction (10 marks) Part VII IQ Test (5 marks) Part VIII Writing (30 marks)
蓝桥杯试题C语言答案
1、A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:(1)A参加时,B也参加;(2)B和C只有一个人参加;(3)C和D或者都参加,或者都不参加;(4)D和E中至少有一个人参加;(5)如果E参加,那么A和D也都参加。
00110 c、d#include<stdio.h>int main(){int a,b,c,d,e; /*0表示不参加, 1表示参加.*/for(a=0;a<2;a++)for(b=0;b<2;b++)for(c=0;c<2;c++)for(d=0;d<2;d++)for(e=0;e<2;e++){if(a&&!b) continue;if(b&&c||!b&&!c) continue;if(c&&!d||!c&&d) continue;if(!d&&!e) continue;if(e&&(!a||!d)) continue;printf("%d%d%d%d%d",a,b,c,d,e);}return 0;}2、某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:1)A和B两人中至少去一人;2)A和D不能一起去;3)A、E和F三人中要派两人去;4)B和C都去或都不去;5)C和D两人中去一个;6)若D不去,则E也不去。
试编写一个程序,输出问应当让哪几个人去?#include<stdio.h>int main(){int a,b,c,d,e,f;for(a=1;a>=0;a--)for(b=1;b>=0;b--)/*1:去 0:不去*/for(c=1;c>=0;c--)for(d=1;d>=0;d--)for(e=1;e>=0;e--)for(f=1;f>=0;f--){if(a+b>=1&&a+d!=2&&a+e+f==2&&b==c&&c+d==1&&(d+e==0||d==1))printf("a=%d,b=%d,c=%d,d=%d,e=%d,f=%d",a,b,c,d,e,f);}return 0;}3、警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。
2013年大学生英语竞赛C类初赛真题及详解-131页
Part Ⅳ Reading Comprehension (40 marks)
Section A (10 marks) complete summary
Section B (10 marks) T/F + answer questions
Section C (10 marks) complete statements + multiple choice
Section C (5 marks) five short news items
Section D (10 marks) a short passage
Partห้องสมุดไป่ตู้II Vocabulary and Structure (15 marks)
15 incomplete sentences
Part Ⅲ Cloze (10 marks)
wonderful. I wish I’d been able to get a ticket.
2. What does “Fill Me In” refer to in this conversation? A. A type of upgraded mobile phone. B. A well-selling magazine. C. A writer’s new book series.
全国大学生英语竞赛 2013年C类初赛试题及详解
Part I Listening Comprehension (30 marks)
Section A (5 marks) five short conversations
Section B (10 marks) two long conversations
3. Why doesn’t the woman like the bag? A. She doesn’t like the pattern. B. It’s not easy to carry. C. It’s too big for her.
蓝桥杯2013年部分省赛题解
蓝桥杯2013年部分省赛题解买不到的数⽬Description⼩明开了⼀家糖果店。
他别出⼼裁:把⽔果糖包成4颗⼀包和7颗⼀包的两种。
糖果不能拆包卖。
⼩朋友来买糖的时候,他就⽤这两种包装来组合。
当然有些糖果数⽬是⽆法组合出来的,⽐如要买 10 颗糖。
你可以⽤计算机测试⼀下,在这种包装情况下,最⼤不能买到的数量是17。
⼤于17的任何数字都可以⽤4和7组合出来。
本题的要求就是在已知两个包装的数量时,求最⼤不能组合出的数字。
Input两个正整数,表⽰每种包装中糖的颗数(都不多于1000)Output⼀个正整数,表⽰最⼤不能买到的糖数Sample Input 14 7Sample Output 117Sample Input 23 5Sample Output 27这道题其实想通了⼀⾏代码,没想通就卡了,答案很简单就是a*b-a-b(也就是(a-1)*b - a),这样就很简单了,但是这是怎么得来的呢?传送门:或者找到了公式,这样就简单了。
(附上数论若⼲公式:)#include <stdio.h>int main(void){int a, b;scanf("%d %d", &a, &b);printf("%d", a*b-a-b);return 0;}连号区间数资源限制时间限制:1.0s 内存限制:256.0MB问题描述⼩明这些天⼀直在思考这样⼀个奇怪⽽有趣的问题:在1~N的某个全排列中有多少个连号区间呢?这⾥所说的连号区间的定义是:如果区间[L, R] ⾥的所有元素(即此排列的第L个到第R个元素)递增排序后能得到⼀个长度为R-L+1的“连续”数列,则称这个区间连号区间。
当N很⼩的时候,⼩明可以很快地算出答案,但是当N变⼤的时候,问题就不是那么简单了,现在⼩明需要你的帮助。
输⼊格式第⼀⾏是⼀个正整数N (1 <= N <= 50000), 表⽰全排列的规模。
c03-NOIP2013初赛答案解析
一、单选题(15*1.5)1、A,一个字节有8个bit,32位整型变量占用4个字节,故选A。
2、A,二进制11.01转为十进制,(11.01)2 = 1*2+1+0*0.5+1*0.25 = (3.25)10 。
3、B,老和尚给小和尚讲的故事里边有故事本身,递归是函数内部调用函数本身,故选B,递归。
4、D,香农信息论鼻祖。
5、A,一定是满二叉树时拥有2个字节点的节点数最多,最下一层会有2013-1023=990个节点,于是倒数第二层会有990/2=495个节点有2个字节点,从第1层到倒数第三层共有1023-2^9=511个节点,且这些节点都是用2个子节点的节点,所以共有495+511=1006个,选A。
6、B,要使图不联通,只要其中某一个节点不连通即可,所有顶点度最少是3,所以最少需要删除3条边,选B。
7、D,此题最开始一眼扫到的时候脑子进水,跟学生将选B,O(n),实际上不是,计算F1需要1次,计算F2需要一次,计算Fn需要计算F(n-1)的次数加上F(n-2)的次数,所以其实就是计算Fn次,于是答案选择D,至于这个Fn到底是多大,数学上可以计算,它等于O(((1+sqrt(5))/2)^n).8、B,这个必须是B,没有什么好说的,中序遍历保证左边都是小于根的,右边都是大于根的,所以可以保证是一个有序序列。
9、D,A项6和17对11取余都是6发生冲突,B项10的平方和17的平方对11取余都是1发生冲突,C项6的两倍和17的两倍对11取余都是1发生冲突,D 项分别为1,2,3,4,不冲突。
10、D,IPV6地址是128位的。
谢谢网友指正!11、C,二分为6个和6个的顶点,此时边最多,有36条边。
12、B,我的学生几乎全选A去了,因为之前讲题只介绍过ASCII码,但是看到统一二字也应该想到Uni...前缀啊。
13、D,64位非零浮点数强制转换成32位浮点数,两个数会有大小上的细微差别,但不会发生符号变化,因为有专门的符号位。
第八届蓝桥杯c组决赛试题及答案
第八届蓝桥杯c组决赛试题及答案第八届蓝桥杯C组决赛试题及答案一、选择题1. 下列关于C语言的描述,不正确的是:A. C语言是一种高级编程语言B. C语言支持面向对象编程C. C语言支持函数式编程D. C语言具有丰富的库函数答案:B2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A二、填空题1. 在C语言中,用于定义一个整型数组的语句是:`int array[10];`,其中数组的元素个数为____。
答案:102. 若定义了一个指针变量`int *p;`,则`*p`表示的是指针p指向的____。
答案:整型变量的值三、编程题1. 编写一个函数,计算并返回一个整数数组中的最大值。
```cint findMax(int arr[], int size) {int max = arr[0];for (int i = 1; i < size; i++) {if (arr[i] > max) {max = arr[i];}}return max;}```2. 编写一个程序,实现字符串反转的功能。
```cvoid reverseString(char* str) {int length = 0;while (str[length] != '\0') {length++;}for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}```四、简答题1. 请简述C语言中指针和数组的关系。
答案:在C语言中,数组名可以被看作指向数组第一个元素的指针。
指针可以用于访问数组中的元素,通过指针可以遍历数组。
2. 解释C语言中的“预处理器”是什么,并给出一个使用预处理器的例子。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 题目标题: 猜年龄美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。
他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。
于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。
我年龄的4次方是个6位数。
这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。
”请你推算一下,他当时到底有多年轻。
通过浏览器,直接提交他那时的年龄数字。
注意:不要提交解答过程,或其它的说明文字。
答案:182. 标题: 马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
有一次,老师出的题目是:36 x 495 = ?他却给抄成了:396 x 45 = ?但结果却很戏剧性,他的答案竟然是对的!!因为36 * 495 = 396 * 45 = 17820类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。
满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。
答案直接通过浏览器提交。
注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。
答案:1423. 标题: 振兴中华小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)从我做起振我做起振兴做起振兴中起振兴中华比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。
一直要跳到“华”字结束。
要求跳过的路线刚好构成“从我做起振兴中华”这句话。
请你帮助小明算一算他一共有多少种可能的跳跃路线呢?答案是一个整数,请通过浏览器直接提交该数字。
答案:354. 标题: 幻方填空幻方是把一些数字填写在方阵中,使得行、列、两条对角线的数字之和都相等。
欧洲最著名的幻方是德国数学家、画家迪勒创作的版画《忧郁》中给出的一个4阶幻方。
他把1,2,3,...16这16个数字填写在4 x 4的方格中。
如图p1.jpg所示,即:16 ? ? 13? ? 11 ?9 ? ? *? 15 ? 1表中有些数字已经显露出来,还有些用?和*代替。
请你计算出? 和 * 所代表的数字。
并把 *所代表的数字作为本题答案提交。
答案是一个整数,请通过浏览器直接提交该数字。
答案:125. 题目标题:公约数公倍数我们经常会用到求两个整数的最大公约数和最小公倍数的功能。
下面的程序给出了一种算法。
函数 myfunc 接受两个正整数a,b经过运算后打印出它们的最大公约数和最小公倍数。
此时,调用 myfunc(15,20)将会输出:360// 交换数值void swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;}void myfunc(int a, int b){int m,n,r;if(a<b) swap(&a,&b);m=a;n=b;r=a%b;while(r!=0){a=b;b=r;r=a%b;}printf("%d\n",b); // 最大公约数printf("%d\n", ____________________________________); // 最小公倍数}请分析代码逻辑,并推测划线处的代码,通过网页提交。
答案: m*n/b标题:三部排序一般的排序有许多经典算法,如快速排序、希尔排序等。
但实际应用时,经常会或多或少有一些特殊的要求。
我们没必要套用那些经典算法,可以根据实际情况建立更好的解法。
比如,对一个整型数组中的数字进行分类排序:使得负数都靠左端,正数都靠右端,0在中部。
注意问题的特点是:负数区域和正数区域内并不要求有序。
可以利用这个特点通过1次线性扫描就结束战斗!!以下的程序实现了该目标。
其中x指向待排序的整型数组,len是数组的长度。
void sort3p(int* x, int len){int p = 0;int left = 0;int right = len-1;while(p<=right){if(x[p]<0){int t = x[left];x[left] = x[p];x[p] = t;left++;p++;}else if(x[p]>0){int t = x[right];x[right] = x[p];x[p] = t;right--;}else{__________________________; //填空位置}}}如果给定数组:25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0则排序后为:-3,-2,-16,-5,0,0,0,21,19,33,25,16,18,25请分析代码逻辑,并推测划线处的代码,通过网页提交答案:p++7. 标题:核桃的数量小张是软件项目经理,他带领3个开发组。
工期紧,今天都在加班呢。
为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。
他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)程序从标准输入读入:a b ca,b,c都是正整数,表示每个组正在加班的人数,用空格分开(a,b,c<30)程序输出:一个正整数,表示每袋核桃的数量。
例如:用户输入:245程序输出:20再例如:用户输入:311程序输出:3#include <stdio.h>void swap(int *a, int *b){int temp;temp = *a;*a = *b;*b = temp;}int f(int a, int b){int m, n, r;if (a<b) swap(&a, &b);m = a, n = b, r = a % b;while (r != 0){a = b;b = r;r = a % b;}return m * n / b;}int main(){int a, b, c;scanf("%d %d %d", &a, &b, &c);printf("%d", f(f(a,b), f(b,c)));return0;}8. 题目标题:打印十字图小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示(可参见p1.jpg)$$$$$$$$$$$$$$ $$$$ $$$$$$$$$ $$$$ $ $ $$ $$$ $$$$$ $$$ $$ $ $ $ $ $$ $ $$$ $ $$$ $ $$ $ $ $ $ $ $$ $ $ $$$$$ $ $ $$ $ $ $ $ $ $$ $ $$$ $ $$$ $ $$ $ $ $ $ $$ $$$ $$$$$ $$$ $$ $ $ $$$$ $$$$$$$$$ $$$$ $$$$$$$$$$$$$$对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。
为了能准确比对空白的数量,程序要求对行中的空白以句点(.)代替。
输入格式:一个正整数 n (n<30) 表示要求打印图形的层数输出:对应包围层数的该标志。
例如:用户输入:1程序应该输出:..$$$$$....$...$..$$$.$.$$$$...$...$$.$$$$$.$$...$...$$$$.$.$$$..$...$....$$$$$..再例如:用户输入:3程序应该输出:..$$$$$$$$$$$$$....$...........$..$$$.$$$$$$$$$.$$$$...$.......$...$$.$$$.$$$$$.$$$.$$.$...$...$...$.$$.$.$$$.$.$$$.$.$$.$.$...$...$.$.$$.$.$.$$$$$.$.$.$$.$.$...$...$.$.$$.$.$$$.$.$$$.$.$$.$...$...$...$.$$.$$$.$$$$$.$$$.$$...$.......$...$$$$.$$$$$$$$$.$$$..$...........$....$$$$$$$$$$$$$..请仔细观察样例,尤其要注意句点的数量和输出位置。
#include <stdio.h>void swap(int *a, int *b){int temp;temp = *a;*a = *b;*b = temp;}int go(int i, int j, int n){if (i > n * 2 + 3)i = n * 4 + 6 - i;if (j > n * 2 + 3)j = n * 4 + 6 - j;if (i < j) swap(&i, &j);if (i <= 2 && j <= 2) return0;if (i % 2 == 1 && j >= i - 2) return1;if (j % 2 == 1 && j != i - 1) return1;return0;}int main(){int n;scanf("%d", &n);int i, j;for (i = 1; i <= n*4+5; i++){for (j = 1; j <= n*4+5; j++){if (go(i, j, n))printf("$");elseprintf(".");}printf("\n");}return0;}9. 标题:带分数100可以表示为带分数的形式:100 = 3 + 69258 / 714还可以表示为:100 = 82 + 3546 / 197注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。
类似这样的带分数,100有11种表示法。
题目要求:从标准输入读入一个正整数N (N<1000*1000)程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。
注意:不要求输出每个表示,只统计有多少表示法!例如:用户输入:100程序输出:11再例如:用户输入:105程序输出:6#include <stdio.h>#define N 9int num[N] = {1,2,3,4,5,6,7,8,9};int tag[3][3] = {{4,3,2},{5,3,1},{6,2,1}};void swap(int *a, int *b){int temp;temp = *a;*a = *b;*b = temp;}int go(int i, int n){int a, b, c;int count = 0;for (a = 0; a < 3; a++){int r[3] = {0} , d = 0;for (b = 0; b < 3; b++)for (c = 0; c < tag[a][b]; c++)r[b] = r[b] * 10 + num[d++];if (r[0] + r[1] / r[2] == n && r[1] % r[2] == 0) count++;if (r[0] + r[2] / r[1] == n && r[2] % r[1] == 0) count++;if (r[1] + r[0] / r[2] == n && r[0] % r[2] == 0) count++;if (r[1] + r[2] / r[0] == n && r[2] % r[0] == 0) count++;if (r[2] + r[0] / r[1] == n && r[0] % r[1] == 0) count++;if (r[2] + r[1] / r[0] == n && r[1] % r[0] == 0) count++; }while (i < N){int k = i + 1;while (k < N){swap(num + i, num + k);count += go(i + 1, n);swap(num + i, num + k);k++;}i++;}return count;}int main(){int n;scanf("%d", &n);printf("%d", go(0, n));return0;}10. 标题:剪格子如图p1.jpg所示,3 x 3的格子中填写了一些整数。