C语言编程题文档格式.docx
- 文档编号:14365276
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:15
- 大小:18.28KB
C语言编程题文档格式.docx
《C语言编程题文档格式.docx》由会员分享,可在线阅读,更多相关《C语言编程题文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
>
n;
doubleans=0;
for(inti=1;
i<
=n;
i++)
{
intx;
x;
ans=ans+((x-1)/70+1)*0.1;
}
printf("
%.1lf\n"
ans);
return0;
}
2.集体照
医学部口腔3班n位同学约定拍集体照,n大于1且不超过100。
摄影师要求同学按照身高站成两排,保证第二排的人身高都要大于等于第一排的人,且第二排的人数和第一排的人数相等或者比第一排多一个人。
输入n位同学的身高,请问第二排中身高最矮的人的身高是多少?
inta[105];
while(scanf("
%d"
&
n))
if(n==0)return0;
a[i];
sort(a+1,a+n+1);
cout<
<
a[n/2+1]<
endl;
3.1020跳格问题
有一种游戏,在纸上画有很多小方格,第一个方格为起点(S),最后一个方格为终点。
有一个棋子,初始位置在起点上,棋子每次可移动一次,棋子在起点时,可向前移动一个格子到第二个方格内;
棋子在其他方格内时,可根据方格内的数字Ni进行移动。
如果Ni大于零,就向前移动Ni个格子;
如果Ni小于零,就向后移动-Ni个格子;
如果Ni等于零,则此次原地不动一次,在下一步移动时可向前移动一步到下一个格子。
显然,如果仅按此方案,会出现棋子永远移动不到终点的情形。
为防止这种情况发生,我们规定,当棋子再次来到它曾经到过的方格时,它需要原地不动一次,在下一步移动时可向前移动一步到下一个格子。
按此方案,棋子总能够走到终点(F)。
如果给定一个方格图,试求棋子要走多少步才能从起点走到终点。
(注:
当然还可能会出现向前移动Ni个格子就跑过终点了,则把棋子放到终点上。
如果Ni太小,使得棋子向后移动跑过了起点,则把棋子放到起点上。
)(如图所示,其中S代表起点,F代表终点)(只有离开后再次来到一个方格时,才算来到它曾经到过的方格,包括起点S)
intn,ans;
boolvis[105];
voiddfs(intx)
if(x<
1)
x=1;
if(x>
n+2)
x=n+2;
if(vis[x])
if(a[x])ans+=2;
elseans+=1;
dfs(x+1);
else
vis[x]=1;
if(x==n+2)return;
ans++;
dfs(x+a[x]);
scanf("
n);
a[1]=1;
for(inti=2;
=n+1;
dfs
(1);
ans<
4.配对碱基链
脱氧核糖核酸(DNA)由两条互补的碱基链以双螺旋的方式结合而成。
而构成DNA的碱基共有4种,分别为腺瞟呤(A)、鸟嘌呤(G)、胸腺嘧啶(T)和胞嘧啶(C)。
我们知道,在两条互补碱基链的对应位置上,腺瞟呤总是和胸腺嘧啶配对,鸟嘌呤总是和胞嘧啶配对。
你的任务就是根据一条单链上的碱基序列,给出对应的互补链上的碱基序列。
stringx;
for(intj=0;
j<
x.length();
j++)
if(x[j]=='
T'
)
x[j]='
A'
;
elseif(x[j]=='
C'
G'
x<
5.打鱼还是晒网
中国有句俗语叫“三天打鱼两天晒网”。
某人从1990年1月1日起开始“三天打鱼两
天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
注意要区分闰年和不是闰年的两种情况
inty,m,d;
intmm[12]={31,28,31,30,31,30,31,31,30,31,30,31};
inttot;
y>
m>
d;
for(inti=1990;
y;
if((i%4==0&
&
i%100!
=0)||i%400==0)
tot+=366;
elsetot+=365;
m;
if(((y%4==0&
y%100!
=0)||y%400==0)&
i==2)
tot+=29;
else
tot+=mm[i-1];
tot+=(d-1);
if(tot%5<
=2)
puts("
fishing"
);
sleeping"
6.优先队列
给定一个初始数字集合,对其做如下两种操作:
1.添加一个新的数字
2.将集合中当前最小的数字取出(输出并删除),如果最小的数字有多个,只取出其中一个。
queue>
intn,m;
structdata{
inta[200005];
intcnt;
boolempty(){
returncnt==0;
voidpush(intx){
a[++cnt]=x;
intp=cnt;
while(p>
1&
a[p]<
a[p/2])
swap(a[p],a[p/2]);
p=p/2;
inttop(){
returna[1];
voiddown(intx){
intt=x<
1;
if(t>
cnt)return;
if(t+1<
=cnt&
a[t+1]<
a[t])
t++;
if(a[t]<
a[x])
swap(a[t],a[x]);
down(t);
}
voidpop(){
a[1]=a[cnt];
cnt--;
down
(1);
}q;
q.push(x);
charopt[15];
=m;
%s"
opt);
if(opt[0]=='
E'
if(q.empty())
NULL"
q.top()<
q.pop();
7.护林员盖房子
在一片保护林中,护林员想要盖一座房子来居住,但他不能砍伐任何树木。
现在请你帮他计算:
保护林中所能用来盖房子的矩形空地的最大面积。
a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程
![提示](https://static.bdocx.com/images/bang_tan.gif)