您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 创业/孵化 > 蓝桥杯试题C语言答案
1、A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:(1)A参加时,B也参加;(2)B和C只有一个人参加;(3)C和D或者都参加,或者都不参加;(4)D和E中至少有一个人参加;(5)如果E参加,那么A和D也都参加。00110c、d#includestdio.hintmain(){inta,b,c,d,e;/*0表示不参加,1表示参加.*/for(a=0;a2;a++)for(b=0;b2;b++)for(c=0;c2;c++)for(d=0;d2;d++)for(e=0;e2;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);}return0;}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也不去。试编写一个程序,输出问应当让哪几个人去?#includestdio.hintmain(){inta,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);}return0;}3、警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。在审问时,A说:“我不是小偷”;B说:“C是小偷”;C说:“小偷肯定是D”;D说:“C在冤枉好人”。现在已经知道这四人中有三人说的是真话,一人说的是假话。请问到底谁是小偷?提示:设4个变量a,b,c,d,为0时表示不是小偷,为1时表示是小偷,用四重循环穷举a,b,c,d可能的取值的组合,对每一种组合判断其是否符合题目中给出的约束。最后结论:C是小偷。#includestdio.hintmain(){inta,b,c,d;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--){if((a==0)+(c==1)+(d==1)+(d==0)==3&&a+b+c+d==1)/*4人的说法中有3个真的,且只有一个小偷*/printf(%d%d%d%d,a,d,c,d);}return0;}4、有限五位数个位数为6且能被3整除的五位数有多少个?#includestdio.hintmain(){longinti;intsum=0;for(i=1000;i=9999;i++){if((i*10+6)%3==0){sum++;}}printf(%d,sum);return0;}5、标题:错误票据某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。要求程序首先输入一个整数N(N100)表示后面数据行数。接着读入N行数据。每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于100000)每个整数代表一个ID号。要求程序输出1行,含两个整数mn,用空格分隔。其中,m表示断号ID,n表示重号ID例如:用户输入:256811910129则程序输出:79再例如:用户输入:6164178108109180155141159104182179118137184115124125129168196172189127107112192103131133169158128102110148139157140195197185152135106123173122136174191145116151143175120161134162190149138142146199126165156153193144166170121171132101194187188113130176154177120117150114183186181100163160167147198111119则程序输出:105120资源约定:峰值内存消耗64MCPU消耗1000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意:main函数需要返回0注意:只使用ANSIC/ANSIC++标准,不要调用依赖于编译环境或操作系统的特殊函数。注意:所有依赖的函数必须明确地在源文件中#includexxx,不能通过工程设置而省略常用头文件。提交时,注意选择所期望的编译器类型。#includestdio.hinta[100001];intmain(){intn,t;scanf(%d,&n);intmin=100001;intmax=0;inti;for(i=0;i=n;){t=getchar();if(t='0'&&t='9'){/*注意是字符!*/ungetc(t,stdin);/*ungetc是一个函数功能,把一个字符退回到输入流中用法:intungetc(charc,FILE*stream);输入参数c要写入的字符,stream文件流指针输出参数字符c操作成功,EOF操作失败*/scanf(%d,&t);a[t]++;/*在读入时保存下id号的最大值与最小值,这样可以为后面判断那个id遗漏(即a[id]==0)哪个id重复(即a[id]==2)提供一个范围控制。*/if(tmin){min=t;}if(tmax){max=t;}}elseif(t=='\n'){i++;}}for(i=min;imax+1;i++){if(a[i]==0){printf(%d,i);}if(a[i]==2){printf(%d\n,i);}}return0;}6、标题:马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。有一次,老师出的题目是:36x495=?他却给抄成了:396x45=?但结果却很戏剧性,他的答案竟然是对的!!因为36*495=396*45=1782类似这样的巧合情况可能还有很多,比如:27*594=297*54假设abcde代表1~9不同的5个数字(注意是各不相同的数字,且不含0)能满足形如:ab*cde=adb*ce这样的算式一共有多少种呢?请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。答案直接通过浏览器提交。注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。#includestdio.hintmain(){intn,m,i=0;for(inta=1;a10;a++){for(intb=1;b10;b++){for(intc=1;c10;c++){for(intd=1;d10;d++){for(inte=1;e10;e++){n=(a*10+b)*(c*100+d*10+e);m=(a*100+d*10+b)*(c*10+e);if(n==m&&a!=b&&a!=c&&a!=d&&a!=e&&b!=c&&b!=d&&b!=e&&c!=d&&c!=e&&d!=e)i++;}}}}}printf(%d,i);return0;}7、标题:切面条一根高筋拉面,中间切一刀,可以得到2根面条。如果先对折1次,中间切一刀,可以得到3根面条。如果连续对折2次,中间切一刀,可以得到5根面条。那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。/*切面条*/#includestdio.hmain(){inti,num=2;printf(n次条数\n);for(i=1;i=10;i++){num=num*2-1;printf(%2d%8d\n,i,num);}getch();return0;}8、标题:奇怪的分式上小学的时候,小明经常自己发明新算法。一次,老师出的题目是:1/4乘以8/5小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45(参见图1.png)老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼!对于分子、分母都是1~9中的一位数的情况,还有哪些算式可以这样计算呢?请写出所有不同算式的个数(包括题中举例的)。显然,交换分子分母后,例如:4/1乘以5/8是满足要求的,这算做不同的算式。但对于分子分母相同的情况,2/2乘以3/3这样的类型太多了,不在计数之列!注意:答案是个整数(考虑对称性,肯定是偶数)。请通过浏览器提交。不要书写多余的内容。#includestdio.hintmain(){intsum=0;for(inta=1;a=9;a++){for(intb=1;b=9;b++){for(intc=1;c=9;c++){for(intd=1;d=9;d++){if(a==b&&c==d)continue;intna=a*10+c,nb=b*10+d;if(a*1.0/b*c*1.0/d=na*1.0/nb-0.000001&&a*1.0/b*c*1.0/d=na*1.0/nb+0.000001){printf(%d/%d*%d/%d=%d/%d\n,a,b,c,d,na,nb);sum++;}}}}}printf(sum=%d,sum);return0;}
本文标题:蓝桥杯试题C语言答案
链接地址:https://www.777doc.com/doc-2088552 .html