c语言程序设计题库_精品文档.docx

上传人:b****1 文档编号:211940 上传时间:2022-10-06 格式:DOCX 页数:49 大小:36.23KB
下载 相关 举报
c语言程序设计题库_精品文档.docx_第1页
第1页 / 共49页
c语言程序设计题库_精品文档.docx_第2页
第2页 / 共49页
c语言程序设计题库_精品文档.docx_第3页
第3页 / 共49页
c语言程序设计题库_精品文档.docx_第4页
第4页 / 共49页
c语言程序设计题库_精品文档.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

c语言程序设计题库_精品文档.docx

《c语言程序设计题库_精品文档.docx》由会员分享,可在线阅读,更多相关《c语言程序设计题库_精品文档.docx(49页珍藏版)》请在冰豆网上搜索。

c语言程序设计题库_精品文档.docx

第二题

#include

voidmain()

{

charch[20];

inti;

gets(ch);

for(i=0;i<20;i++)

{

if(ch[i]>='a'&&ch[i]<='z')

ch[i]=ch[i]-32;

elseif(ch[i]>='A'&&ch[i]<='Z')

ch[i]=ch[i]+32;

}

puts(ch);

}

第三题

#include

voidmain()

{

intn,i,max=0;

inta[20];

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

for(i=0;i

{

if(max

max=a[i];

}

printf("%d",max);

}

第四题

#include

doublef(int);

voidmain()

{

intn;

scanf("%d",&n);

printf("%.8f",f(n));

}

doublef(intn)

{

inti;

doubleresult=0.0;

for(i=1;i<=n;i++)

result=result+(double)1/i;

returnresult;

}

5题目标题:

汽水瓶(谌海军)

题目描述:

有这样一道智力题:

“某商店规定:

三个空汽水瓶可以换一瓶汽水。

小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?

”答案是5瓶,

方法如下:

先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。

然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。

如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?

输入描述:

输入为一个正整数n(1<=n<=100),表示空汽水瓶个数。

#include

voidmain()

{intn,m=0,sum=0,i=0;

scanf("%d",&n);

while(n>=3)

{m=n/3;

n=n-2*m;

sum=sum+m;

}

if(n=2)

sum++;

elseif(n<2)

sum=sum+i;

printf("%d",sum);

}

6题目标题:

栽树(彭玉旭)

题目描述:

在某食堂门前有n(n<200)个树坑,编号是从0~n-1,开始时是没有树的。

每个月,园林工人都会在编号a~b(0<=a<=b<=n-1)之间栽树(包括a,b),如果树坑原来有树,则不需要从新栽树。

请计算4个月后,食堂门前总共有多少棵树。

输入描述:

第一个整数是n,接下来有8个整数,分别为每个月栽树的编号。

输出描述描述:

食堂门前树的总数。

第六题

#include

voidmain()

{

intn;

inta1,b1,a2,b2,a3,b3,a4,b4;

intresult=0;

inti;

scanf("%d",&n);

scanf("%d%d",&a1,&b1);

scanf("%d%d",&a2,&b2);

scanf("%d%d",&a3,&b3);

scanf("%d%d",&a4,&b4);

for(i=0;i

{

if(i>=a1&&i<=b1)

result++;

elseif(i>=a2&&i<=b2)

result++;

elseif(i>=a3&&i<=b3)

result++;

elseif(i>=a4&&i<=b4)

result++;

}

printf("%d",result);

}

7题目标题:

密码破译(闫博钊)

题目描述:

某组织欲破获一个外星人的密码,密码由一定长度的字串组成。

此组织拥有一些破译此密码的长度不同的钥匙,若两个钥匙的长度之和恰好为此密码的长度,则此密码被成功破译。

现在就请你编程找出能破译此密码的两个钥匙。

输入描述:

输入第一行为钥匙的个数N(1≤N≤5000)

输入第二行为密码的长度

以下N行为每个钥匙的长度

输出描述描述:

若无法找到破译此密码的钥匙,则输出仅1行0。

若找到两把破译的钥匙,则输出有两行,分别为两把钥匙的编号。

若有多种破译方案,则只输出一种即可。

#include

voidmain()

{

intn,s[5000],l,i,j,sign=1,m=0;

scanf("%d",&n);

scanf("%d",&l);

for(i=0;i

scanf("%d",&s[i]);

for(i=0;i

{

if(sign==0)break;

for(j=i+1;j

if(s[i]+s[j]==l)

{printf("%d\n%d",i+1,j+1);sign=0;break;}}

if(sign)printf("%d",m);

}

#include

voidmain()

{intm,n,sum,i,j,a[5000];

scanf("%d",&n);

scanf("%d",&m);

for(i=1;i<=n;i++)

scanf("%d",&a[i]);

for(i=1;i

for(j=i+1;j<=n;j++)

{sum=a[i]+a[j];

p=sum-m;

if(p==0)

printf("%d\n%d",i,j);

}

}

#include

voidmain()

{

intN,length;

inti,j,key[5000];

intnum1,num2,t;

scanf("%d",&N);

scanf("%d",&length);

for(i=0;i

scanf("%d",&key[i]);

t=1;

for(i=0;i

for(j=i+1;j

{

if(key[i]+key[j]==length)

{

num1=i+1;

num2=j+1;

t=0;

break;

}

}

if(t==1)

printf("0");

else

printf("%d\n%d",num1,num2);

}

9题目标题:

基因编码(闫博钊)

题目描述:

小可可选修了基础生物基因学。

教授告诉大家SuperSamuel星球上Kitty猫的基因的长度都是2的正整数次幂2k(k≤8),全是由两种不同的基因单元组成的。

这两种不同的基因单元分别记成0和1,于是Kitty猫的基因可以写成一个01串表达式S。

为了便于分析和降低数据存储量,教授发明了ABC编码规则。

该编码规则是不断地按照

A(若S串全是0)

T(S)=  B(若S串全是1)

        CT(S1)T(S2) (否则把S串分成两个等长的子串S1和S2)

对Kitty猫基因01串表达式S进行改写,直至最终被改写成只含有字符“A”、“B”、“C”的符号串。

例如T(01001011)

=CT(0100)T(1011)

=CCT(01)T(00)CT(10)T(11)

=CCCT(0)T

(1)ACCT

(1)T(0)B

=CCCABACCBAB

请你编写程序帮助小可可求出Kitty猫基因的ABC编码以协助教授开展科研工作。

输入描述:

测试数据以一行的形式存放Kitty猫基因的01串表达式,字符串长度不超过500

输出描述描述:

对应测试数据,以一行的形式输出这个Kitty猫基因的ABC编码。

#include

#include

voidf(chara[],intbegin,intend);

intmain()

{

chara[500];

intlength;

gets(a);

length=strlen(a);

f(a,0,length);

return0;

}

voidf(chara[],intbegin,intend)

{

intnum_A=0,num_B=0;

inti;

for(i=begin;i

{

if(a[i]=='0')

num_A++;

elseif(a[i]=='1')

num_B++;

}

if(num_A==end-begin)

printf("A");

elseif(num_B==end-begin)

printf("B");

else

{

printf("C");

f(a,begin,(end+begin)/2);

f(a,(end+begin)/2,end);

}

}

10题目标题:

最大公约数(闫博钊)

题目描述:

输入两个整数a,b(1≤a,b≤100000),请编写程序求出他们的最大公约数。

输入描述:

输入两个整数ab,用空格隔开

输出描述描述:

输出对应a,b的最大公约数

#include

voidmain()

{longa,b,c,t;

scanf("%ld%ld",&a,&b);

if(a

{

t=a;

a=b;

b=t;

}

while(b!

=0)

{

c=a%b;

a=b;

b=c;

}

printf("%ld",a);

}

11题目标题:

大数相加(彭玉旭)

题目描述:

a+b这个程序大家都会做,但是如果a和b都比较大时该怎么办呢。

其实我们可以把输入一个比较大的数用字符串表示,模拟人工加法方式。

如123+23,一个字符串是123另外一个字符串是23,从字符串的最后开始加,得到146.结果最大是两个字符串最长的那个值加1。

现在请你计算两个不

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1