C语言编程题Word格式.docx
- 文档编号:20542078
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:15
- 大小:18.45KB
C语言编程题Word格式.docx
《C语言编程题Word格式.docx》由会员分享,可在线阅读,更多相关《C语言编程题Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
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];
intt;
boolempty(){
returnt==0;
voidpush(intx){
a[++cnt]=x;
intp=t;
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>
t)return;
if(t+1<
=t&
a[t+1]<
a[t])
t++;
if(a[t]<
a[x])
swap(a[t],a[x]);
down(t);
}
voidpop(){
a[1]=a[cnt];
t--;
down
(1);
}q;
q.push(x);
charopt[15];
=m;
%s"
opt);
if(opt[0]=='
E'
if(q.empty())
NULL"
q.top()<
q.pop();
7.护林员盖房子
在一片保护林中,护林员想要盖一座房子来居住,但他不能砍伐任何树木。
现在请你帮他计算:
保护林中所能用来盖房子的矩形空地的最大面积。
intans;
intv[25][25];
boolcheck(inta,intb,intc,intd)
for(inti=a;
=c;
for(intj=b;
=d;
if(v[i][j])return0;
return1;
n>
for(intj=1;
v[i][j];
for(intk=i;
k<
k++)
for(intl=j;
l<
l++)
if(check(i,j,k,l))
ans=max(ans,(k-i+1)*(l-j+1));
8.汽车限行
为了缓解交通压力、减少空气污染,B市市政府决定在工作日〔周一至周五〕对机动车进展限行,每辆机动车每周将有一个工作日不能出行,但周末不限行。
假设该政策从2000年1月1日起开场执行。
限行安排为:
尾号为1和6:
周一限行
尾号为2和7:
周二限行
尾号为3和8:
周三限行
尾号为4和9:
周四限行
尾号为5、0和字母:
周五限行
2000年1月1日为周六,现在给出一些日期和车牌号,求问该机动车在该天是否限行。
intT;
T;
while(T--)
charch;
ch>
strings;
s;
intday,tot=0;
if(s[5]>
'
9'
||s[5]<
0'
)day=5;
elseday=(s[5]-'
)%5;
if(day==0)day=5;
for(inti=2000;
if((tot+6-1)%7+1==day)
yes"
no"
9.人工智能
人工智能一直是计算机学所追求的一个很高的境界,全世界的计算机学家们至今仍在不断努力力求到达这个境界。
这道题也跟“人工智能〞有关。
学过初中物理的同学都应该知道物理学中的这个公式P〔功率〕=U〔电压〕*I〔电流〕。
如果给定其中的任意两个值,第三个值都是很容易求的,这个就是此题的任务。
string>
strings;
map<
char,double>
mp;
doubleget(intx)
doublev=0,t=1;
for(inti=x;
s.length();
if(s[i]>
='
&
s[i]<
if(t==1)
v=v*10+s[i]-'
v=v+(s[i]-'
)*t;
t*=0.1;
elseif(s[i]=='
.'
t=0.1;
m'
v*=0.001;
k'
v*=1000;
M'
v*=1000000;
elsebreak;
returnv;
ch=getchar();
for(intt=1;
t<
=T;
t++)
Problem#%d\n"
t);
getline(cin,s);
mp['
I'
]=mp['
U'
P'
]=-1;
for(inti=0;
if(s[i]=='
='
mp[s[i-1]]=get(i+1);
if(mp['
]==-1)
I=%.2lfA\n"
mp['
]/mp['
]);
U=%.2lfV\n"
P=%.2lfW\n"
]*mp['
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程