c语言第一次作业程序题pta文档格式.docx

上传人:b****7 文档编号:22471404 上传时间:2023-02-04 格式:DOCX 页数:41 大小:35.65KB
下载 相关 举报
c语言第一次作业程序题pta文档格式.docx_第1页
第1页 / 共41页
c语言第一次作业程序题pta文档格式.docx_第2页
第2页 / 共41页
c语言第一次作业程序题pta文档格式.docx_第3页
第3页 / 共41页
c语言第一次作业程序题pta文档格式.docx_第4页
第4页 / 共41页
c语言第一次作业程序题pta文档格式.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

c语言第一次作业程序题pta文档格式.docx

《c语言第一次作业程序题pta文档格式.docx》由会员分享,可在线阅读,更多相关《c语言第一次作业程序题pta文档格式.docx(41页珍藏版)》请在冰豆网上搜索。

c语言第一次作业程序题pta文档格式.docx

a[i]);

{

if(a[i]>

=60)

count++;

sum=sum+a[i];

}

if(n!

=0)

aver=sum/n;

printf("

average=%.1f\ncount=%d\n"

aver,count);

}

5-3 

大炮打蚊子 

现在,我们用大炮来打蚊子:

蚊子分布在一个M\timesNM×

N格的二维平面上,每只蚊子占据一格。

向该平面的任意位置发射炮弹,炮弹的杀伤范围如下示意:

O

OXO

其中,X为炮弹落点中心,O为紧靠中心的四个有杀伤力的格子范围。

若蚊子被炮弹命中(位于X格),一击毙命,若仅被杀伤(位于O格),则损失一半的生命力。

也就是说,一次命中或者两次杀伤均可消灭蚊子。

现在给出蚊子的分布情况以及连续k发炮弹的落点,给出每炮消灭的蚊子数。

第一行为两个不超过20的正整数M和N,中间空一格,表示二维平面有M行、N列。

接下来M行,每行有N个0或者#字符,其中#表示所在格子有蚊子。

接下来一行,包含一个不超过400的正整数k,表示发射炮弹的数量。

最后k行,每行包括一发炮弹的整数坐标x和y(0\le≤x<

<

M,0\le≤y<

N),之间用一个空格间隔。

对应输入的k发炮弹,输出共有k行,第i行即第i发炮弹消灭的蚊子数。

56

00#00#

000###

00#000

000000

2

12

14

inti,j,m,jg,n,x[202],y[202],str[202][202];

charSTR[202][202];

%d%d"

m,&

for(j=0,i=0;

m;

i++,j++)

if(j==n)break;

%s"

STR[i]);

for(j=0;

j<

j++)

{

str[i][j]=-1;

}

if(STR[i][j]=='

#'

str[i][j]=2;

jg);

jg;

%d%d"

x[i],&

y[i]);

intxd,yd,sum=0;

for(j=0;

sum=0;

xd=x[j];

yd=y[j];

if(xd>

=0&

&

xd<

m&

yd>

yd<

n)

if(str[xd][yd]==2)

{

sum++;

str[xd][yd]=-1;

}

else

if(str[xd][yd]==1)

{

sum++;

str[xd][yd]=-1;

}

if(xd-1>

=m&

if(str[xd-1][yd]==2||str[xd-1][yd]==1)

str[xd-1][yd]=str[xd-1][yd]-1;

if(str[xd-1][yd]==0)

str[xd-1][yd]=-1;

if(xd+1<

xd>

=-1&

if(str[xd+1][yd]==1||str[xd+1][yd]==2)

str[xd+1][yd]=str[xd+1][yd]-1;

if(str[xd+1][yd]==0)

str[xd+1][yd]=-1;

yd-1>

=n)

if(str[xd][yd-1]==1||str[xd][yd-1]==2)

str[xd][yd-1]=str[xd][yd-1]-1;

if(str[xd][yd-1]==0)

str[xd][yd-1]=-1;

yd+1<

n&

=-1)

if(str[xd][yd+1]==1||str[xd][yd+1]==2)

str[xd][yd+1]=str[xd][yd+1]-1;

if(str[xd][yd+1]==0)

str[xd][yd+1]=-1;

printf("

%d\n"

sum);

return0;

5-4 

人民币兑换 

1元5角钱人民币兑换5分、2分和1分的硬币(每一种都要有)共100枚,会有很多种兑换方案。

请编写程序给出各种兑换方案。

输入为一个正整数n,表示要求输出前n种可能的方案。

方案的顺序,是按照5分硬币从少到多排列的。

显示前n种方案中5分、2分、1分硬币各多少枚。

每行显示一种方案,数字之间空一格,最后一个数字后没有空格。

注意:

如果全部方案不到n种,就顺序输出全部可能的方案。

14653

24256

33859

43462

53065

inti,j,k,n,a;

for(i=1;

=n;

for(j=0;

=75;

for(k=0;

k<

=150;

k++)

if(5*i+j*2+k==150&

i+j+k==100)

printf("

%d%d%d\n"

i,j,k);

5-5 

计算分段函数[2] 

(10分)

本题目要求计算下列分段函数f(x)f(x)的值:

注:

可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂。

输入在一行中给出实数x。

在一行中按“f(x)=result”的格式输出,其中x与result都保留两位小数。

输入样例1:

10

输出样例1:

f(10.00)=3.16

输入样例2:

-0.5

输出样例2:

f(-0.50)=-2.75

math.h>

floatx,y;

%f"

x);

if(x>

y=sqrt(x);

else

y=pow(x+1,2)+2*x+1/x;

f(%.2f)=%.2f\n"

x,y);

5-6 

厘米换算英尺英寸 

如果已知英制长度的英尺footfoot和英寸inchinch的值,那么对应的米是(foot+inch/12)\times0.3048(foot+inch/12)×

0.3048。

现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?

别忘了1英尺等于12英寸。

输入格式:

输入在一行中给出1个正整数,单位是厘米。

输出格式:

在一行中输出这个厘米数对应英制长度的英尺和英寸的整数值,中间用空格分开。

输入样例:

170

输出样例:

#include<

intmain(){

intcmlen;

cmlen);

intfoot=cmlen/100.0/0.3048;

intinch=(cmlen/100.0/0.3048-foot)*12;

%d%d\n"

foot,inch);

return0;

5-8 

单词长度 

你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。

你要输出每个单词的长度。

这里的单词与语言无关,可以包括各种符号,比如it'

s算一个单词,长度为4。

注意,行中可能出现连续的空格;

最后的.不计算在内。

输入在一行中给出一行文本,以.结束

提示:

用scanf("

%c"

...);

来读入一个字符,直到读到.为止。

在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。

It'

sgreattoseeyouhere.

452334

方法一

{

inti=0;

charstr;

while

(1)

str);

if(str=='

.'

if(i!

i);

\n"

);

break;

if(str=='

'

%d"

i=0;

i++;

方法二

string.h>

charstr[520];

inti,j=0,k,g=0;

;

str[i]);

if(str[i]=='

break;

k=i;

for(i=i-1;

i>

=0;

i--)

g++;

else

break;

=k;

if(j!

printf("

j);

}break;

j=0;

if(i<

k-g)

"

j++;

}

}#include<

{

charc,firstflag=1;

intcount=0;

c);

while(c!

='

if(c=='

{

if(count!

=0)

{

if(firstflag==1)

{

count);

firstflag=0;

}

else

%d"

count=0;

}

else

count++;

if(count!

=0)

if(firstflag==1)

printf("

}

方法三

stdbool.h>

charch;

inti;

booll;

l=false;

i=0;

while((ch=getchar())&

ch!

if(ch!

elseif(i!

if(l)

i);

l=true;

if(i!

5-9 

爬动的蠕虫 

一条蠕虫长1寸,在一口深为N寸的井的底部。

已知蠕虫每1分钟可以向上爬U寸,但必须休息1分钟才能接着往上爬。

在休息的过程中,蠕虫又下滑了D寸。

就这样,上爬和下滑重复进行。

请问,蠕虫需要多长时间才能爬出井?

这里要求不足1分钟按1分钟计,并且假定只要在某次上爬过程中蠕虫的头部到达了井的顶部,那么蠕虫就完成任务了。

初始时,蠕虫是趴在井底的(即高度为0)。

输入在一行中顺序给出3个正整数N、U、D,其中D<

U,N不超过100。

在一行中输出蠕虫爬出井的时间,以分钟为单位。

1231

11

intN,U,D,L,time;

%d%d%d"

N,&

U,&

D);

time=L=0;

while(L<

N)

time++;

L=L+U;

if(L>

=N)

L=L-D;

time);

5-10 

字符串字母大小写转换 

本题要求编写程序,对一个以“#”结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。

输入为一个以“#”结束的字符串(不超过30个字符)。

在一行中输出大小写转换后的结果字符串。

HelloWorld!

123#

hELLOwORLD!

123

inti,k;

chara[3000];

30000;

if(a[i]=='

{k=i;

}}

30;

if('

A'

=a[i]&

a[i]<

='

Z'

{a[i]=a[i]+32;

a'

z'

{a[i]=a[i]-32;

elsea[i]=a[i];

k;

{printf("

a[i]);

5-11 

找最长的字符串 

本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。

输入第一行给出正整数N;

随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。

在一行中用以下格式输出最长的字符串:

Thelongestis:

最长的字符串

如果字符串的长度相同,则输出先输入的字符串。

charstr[10000][100];

intN,i,j,k=0,m;

N);

=N;

80;

scanf("

str[i][j]);

if(str[i][j]=='

\n'

break;

for(i=0;

if(str[i][j]=='

if(j>

k)

k=j;

m=i;

printf("

str[m][i]);

return0;

4-1 

使用函数计算两个复数之积 

若两个复数分别为:

c_1=x_1+y_1ic1​=x1​+y1​i和c_2=x_2+y_2ic2​=x2​+y2​i,则它们的乘积为 

c_1\timesc_2=(x_1x_2-y_1y_2)+(x_1y_2+x_2y_1)ic1​×

c2​=(x1​x2​−y1​y2​)+(x1​y2​+x2​y1​)i。

本题要求实现一个函数计算两个复数之积。

函数接口定义:

doubleresult_real,result_imag;

voidcomplex_prod(doublex1,doubley1,doublex2,doubley2);

其中用户传入的参数为两个复数x1+y1ii和x2+y2ii;

函数complex_prod应将计算结果的实部存放在全局变量result_real中、虚部存放在全局变量result_imag中。

裁判测试程序样例:

intmain(void)

doubleimag1,imag2,real1,real2;

%lf%lf"

&

real1,&

imag1);

real2,&

imag2);

complex_prod(real1,imag1,real2,imag2);

productofcomplexis(%f)+(%f)i\n"

result_real,result_imag);

voidcomplex_prod(doublex1,doubley1,doublex2,doubley2)

result_real=x1*x2-y1*y2;

result_imag=x1*y2+x2*y1;

4-2 

计算存款利息-genlib 

本题要求提交main函数,实现以下功能:

读入存款金额money、存期year和年利率rate,根据下列公式计算存款到期时的利息interest(税前):

interest=money\times(1+rate)^{year}-moneyinterest=money×

(1+rate)year​−money

输出时保留2位小数。

你需要提交一个完整的main函数,但不要修改下列函数提示中已经给出的内容。

函数接口定义及提示:

intmain(void)

intmoney,year;

doubleinterest,rate;

/*--你需要实现的代码--*/

interest=%.2f\n"

interest);

#include"

genlib.h"

simpio.h"

/*你的代码将被嵌在这里*/

输入样例(括号内为说明):

1000(money=1000)

3(year=3)

0.025(rate=0.025)

interest=76.89

money);

year);

%lf"

rate);

interest=money*pow((1+rate),year)-money;

4-3 

提桶寻宝 

给你准备好一个小桶,告诉你一片广袤的天地,随手一指,挖宝去吧~

说计算机话!

好吧,题目是这样的:

假设一个二维区域内藏有财宝,对于给定的此前寻到的财宝数量以及坐标(x,y),按照以下规则在该位置寻回财宝,并更新财宝数量。

规则:

∙如果x、y均为奇数,则获得原有三分之一数量的财宝,小数部分忽略不计

∙如果x、y均为偶数,则获得5财宝

∙如果x、y奇偶性不同,则不获得财宝

财宝数量、坐标x、坐标y都是int类型范围内的非负整数,在同一个位置可以重复寻找并获得财宝。

intgetTreasure(int*pBucket,intx,inty);

其中,整型参数x、y表示坐标,指针型参数pBucket指向财宝计数的整型变

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

当前位置:首页 > 高等教育 > 工学

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

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