《c语言试题完整版本.docx》由会员分享,可在线阅读,更多相关《c语言试题完整版本.docx(37页珍藏版)》请在优知文库上搜索。
1、C语言试题第三题#inc1.udevoidmai0(intn,i,ma=0;inta20;scanf(%d,n);for(i=0;in;i+)scanf(%d,a(i);for(i=0;in;i+)(if(maai)ma=ai;)printf(%d,ma);)第四题#inc1.udedoub1.ef(int);voidmai0(intn;scanf(%d,n);printf(%.8f,f(n);)doub1.ef(intn)inti;doub1.eresu1.t=0.0;for(i=1.;i=n;i+)resu1.t=resu1.t+(doub1.e)1.i;returnresu1.t;6题目
2、:栽树题目描述:在某食堂门前有11(n200)个树坑,编号是从0n-1.,开始时是没有树的。每个月,园林工人都会在编号ab(0=a=b=n-:1.)之间栽树(包括a,b),如果树坑原来有树,则不需要从新栽树。请计算4个月后,食堂门前总共有多少棵树。输入描述:第一个整数是nf接下来有8个整数,分别为每个月栽树的编号。输出描述描述:食堂门前树的总数.第六题#inc1.udevoidmai0intn;inta1.,b1.,a2,b2,a3,b3,a4,b4;intresu1.t=O;inti;scanf(%dn);scanf(%d%da1.,8ib1.);scanf(n%d%dna2f8b2);sc
3、anf(n%d%da3,8b3);SCanf(%d%d,&a4,&b4);for(i=0;i=a1.&i=a2&i=a3&i=a4&i=b4)resu1.t+;)printf(%d,resu1.t);)7题目标题:密码破译题目描述:某组织欲破获一个外星人的密码,密码由一定长度的字串组成。此组织拥有一些破译此密码的长度不同的钥匙,若两个钥匙的长度之和恰好为此密码的长度,则此密码被成功被逐。现在就请你编程找出能破译此密码的两个钥匙。输入描述:输入第一行为钥匙的个数N(1N5OOO)输入第二行为密码的长度以下N行为每个钥匙的长度输出描述描述:若无法找到破译此密码的钥匙,则输出仅1行0。若找到两把破译
4、的钥匙,则输出有两行,分别为两把钥匙的编号。若有多种破译方案,则只输出一种即可。#indudevoidmai0(intn,s5000J,ij,sign=1.jm=0;scanf(%d,&n);scanf(%d,8i1.);for(i=0;in;i+)scanf(n%dsi);for(i=0;in;i+)if(sign=O)break;for(j=i+1.;jn;j+)if(si+sj=1.)printf(%dn%d,i+1.,j+1.);sign=O;break;if(sign)printfC%d,m);)#inc1.udevoidmain()intm,n,sum,ij,a5000;scanf
5、(n%d8in);scanf(%d,8tm);for(i=1.;i=n;i+)scanf(%dai);for(i=1.;in;i+)for(j=i+1.;j=n;j+)sum=ai+aj;p=sum-m;if(p=O)printfC%dn%dii,j);)#inc1.udevoidmai0(intN1Iength;intij,key(5000;intnum1.,num2,t;scanf(%dN);scanf(%d,8i1.ength);for(i=0;in;i+)sc/n;i+)/n;i+)/n;j+)/n;i+)/n;i+)/n;i+)ai)/n;i+)/n;i+)anf(%dkey(i);
6、t=1.;for(i=0;in&;&t=1.;i+)for(j=i+1.jnj+)(if(keyi+keyj=Iength)(num1.=i+1.;num2=j+1.;t=0;break;)if(t=1.)printf(0);e1.seprintf(%dn%d,num1.,num2);9题目标题:基因编码(闫博钊)题目描述:小可可选修了基础生物基因学.教授告诉大家SUPerSamue1.星球上Kitty猫的基因的长度都是2的正整数次幕2k(k8),全是由两种不同的基因单元组成的。这两种不同的基因单元分别记成0和1,于是Kitty猫的基因可以写成一个O1.串表达式So为了便于分析和降低数据存储量
7、,教授发明了ABC编码规则。该编码规则是不断地按照A(若S串全是0)T(三)=B(若S串全是1)CT(S1.)T(S2)(否则把S串分成两个等长的子串S1.和S2)对Kitty猫基因01串表达式S进行改写,直至最终被改写成只含有字符A、B、C的符号串。例如T(01001011)=CT(O1OO)T(1O11)=CCT(O1)T(OO)CT(1O)T(11)=CCCt(O)T(I)ACCT(I)T(O)B=CCCABACCBAB请你编写程序帮助小可可求出Kitty猫基因的ABC编码以协助教授开展科研工作。输入描述:测试以一行的形式存放Kitty猫基因的01串表达式,字符串长度不超过500输出描述
8、描述:对应测试数据,以一行的形式输出这个Kitty猫基因的ABC编码.#inc1.ude#inc1.udevoidf(charaQ,intbegin,intend);intmain()(chara500;int1.ength;gets(八);1.ength=str1.en(八);f(a,OJength);return0;)voidf(chara。,intbegin,intend)intnum_A=0,num_B=0;inti;for(i=begin;iend;i+)if(ai=O)num_A+;e1.seif(ai=)num_B+;)if(num_A=end-begin)printf(A);e
9、1.seif(num_B=end-begin)printf(B);e1.se(printf(C);f(a,begin,(end+begin)2);f(a,(end+begin)2,end);11题目标题:(有问题)大数相加(彭玉旭)题目描述:ab这个程序大家都会做,但是如果a和b都匕嫩大时该怎么办呢。其实我们可以把输入一个比较大的数用字符串表示,模拟人工加法方式。如12323,一个字符串是123另外一个字符串是23,从字符串的最后开始加彳国到146.结果最大是两个字符串最长的那个值加Ie现在请你计算两个不超过30位的十进制的数的和。知识点:字符串输入,字符的09的加法运算。提示:字符。的ASC
10、II是48,注意进位处理输入描述:包行四行,每一行包含不超过30个的由09的字符组成字符串.输出描述描述:第一行加第二行的和以及第三行加第四行的和。每一个和占一行#inc1.ude#inc1.ude/end;i+)/n;j+)str1.en(八))s=a;a=b;b=s;1.enma=str1.en(八);1.enmin=str1.en(b);for(i=1.;i=10)a1.enma-i=m%10+48;key=1.;)e1.se(a1.enma-i=m+48;key=0;)for(i=1.;i=10)(a1.enma-1.enmin-i=m%10+48;key=1.;)e1.sea1.en
11、ma-1.enmin-i=m+48;key=O;)if(key)(for(i=1.enmax;i=1.;i)ai=ai-1.;aO=;a(1.enma+1.=,O,;)returna;12题目标题:(有问题)字符串比对(讴海军)题目描述:有字符串a(长度=1OO),b(长度=10),计算b串在a串中出现的次数。解题思路:1、用gets语句从键盘输入两个字符串赋予a,b字符数组;2、建立两层嵌套循环,外循环至a串结束标志为止,内循环至b串结束标志为止;3、内循环中比对b串与a串的数据,满足条件时计数,否则break;4、所有循环结束后输出计数值。输入描述:输入为两个字符串,第一个字符串长度小于1
12、00,第二个字符串长度小于10;输出描述描述:输出为一个正整数;#inc1.ude#inc1.udevoidmai0chara(100,b10;intij,count,resu1.t;gets(八);gets(b);resu1.t=O;for(i=0;istr1.en(八);i+)for(j=0,count=0;jstr1.en(b);j+)(if(bj=ai+j)count+;e1.sebreak;)if(count=str1.en(b)resu1.t+;)printf(%d,resu1.t);)intmain()(chara40=0),b40=,0,jc40=,0,d40=,0,e40=,0,f40=0;whi1.e(gets(八)!=NU1.1.&;&;gets(b)!=NU1.1.&;&;gets(c)!=NU1.1.&;&;gets(d)!=NU1.1.)/?x?Oi?a?(StrCPy(e,adC1.highJd(a,b);strcpy(f,add-highjd(c,d);puts(e);/?.puts(f);/?.)returnO;14题目标题:(有问题)星期几?(讴海军)题目描述:编一个程