PTA程序设计答案Word文件下载.docx

上传人:b****3 文档编号:16846481 上传时间:2022-11-26 格式:DOCX 页数:75 大小:30.55KB
下载 相关 举报
PTA程序设计答案Word文件下载.docx_第1页
第1页 / 共75页
PTA程序设计答案Word文件下载.docx_第2页
第2页 / 共75页
PTA程序设计答案Word文件下载.docx_第3页
第3页 / 共75页
PTA程序设计答案Word文件下载.docx_第4页
第4页 / 共75页
PTA程序设计答案Word文件下载.docx_第5页
第5页 / 共75页
点击查看更多>>
下载资源
资源描述

PTA程序设计答案Word文件下载.docx

《PTA程序设计答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《PTA程序设计答案Word文件下载.docx(75页珍藏版)》请在冰豆网上搜索。

PTA程序设计答案Word文件下载.docx

returnma*;

4-44数字金字塔(15分)

voidpyramid(intn){

inti,j,space;

i<

=n;

i++){

space=n-i;

for(j=0;

j<

space;

j++)

printf("

"

);

i;

%-2d"

i);

printf("

\n"

4-45判断奇偶性(10分)

inteven(intn){

if(n%2==0)

4-46使用函数求奇数和(15分)

intOddSum(intList[],intN){

intoddsum=0;

if(even(List[i])==0)

oddsum+=List[i];

returnoddsum;

4-47使用函数计算两点间的距离(10分)

doubledist(double*1,doubley1,double*2,doubley2){

doubled;

d=sqrt((*1-*2)*(*1-*2)+(y1-y2)*(y1-y2));

returnd;

4-48使用函数求素数和(20分)

intprime(intp){

inti,j,count=0;

for(j=2;

j<

p;

j++)

if(p%j==0)

count++;

if(count==0&

&

p>

0&

p!

=1)

intPrimeSum(intm,intn){

inti,sum=0;

if(prime(i)==1)

sum=sum+i;

returnsum;

4-20使用函数输出水仙花数(20分)

intnarcissistic(intnumber){

inti,j,digit,power,powerSum,integer,count,flag;

count=0;

integer=number;

while(integer>

0){

integer=integer/10;

count++;

powerSum=0;

for(i=0;

count;

digit=integer%10;

power=1;

for(j=0;

power=power*digit;

powerSum=powerSum+power;

if(powerSum==number)

flag=1;

flag=0;

returnflag;

voidPrintN(intm,intn){

for(i=m+1;

n;

if(narcissistic(i)==1)

4-21使用函数求余弦函数的近似值(15分)

doublefuncos(doublee,double*){

doublesum=0,d=100;

inti=0,j;

doublecj;

intcount=0;

while(d>

e){

count++;

if(count%2!

=0){

cj=1;

for(j=1;

j<

=i;

j++)

cj=cj*j;

d=pow(*,i)/cj;

sum=sum+d;

i+=2;

}

else{

sum=sum-d;

}

4-49分类统计字符个数(15分)

voidStringCount(chars[]){

intn1=0,n2=0,n3=0,n4=0;

s[i]!

='

\0'

;

if((s[i]>

a'

s[i]<

z'

)||(s[i]>

A'

Z'

))

n1++;

elseif(s[i]=='

'

||s[i]=='

\n'

n2++;

elseif(s[i]>

0'

9'

n3++;

elsen4++;

letter=%d,blank=%d,digit=%d,other=%d"

n1,n2,n3,n4);

4-7使用函数求特殊a串数列和(20分)

intfn(inta,intn){

int*,p=0,i;

n;

*=a*pow(10,i);

p=p+*;

returnp;

intSumA(inta,intn){

intk;

intsum=0;

for(k=0;

k<

n+1;

k++)

sum=sum+fn(a,k);

4-22使用函数输出指定围的完数(20分)

intfactorsum(intnumber){

inti,s=1;

=number/2;

if(i>

1&

number%i==0)

voidPrintPN(intm,intn){

intk,t,found=0;

for(k=m;

k++){

if(factorsum(k)==k){

found=1;

%d=1"

k);

for(t=1;

t<

=k/2;

t++)

if(t>

k%t==0)

printf("

+%d"

t);

if(found==0)

Noperfectnumber"

4-25使用函数输出一个整数的逆序数(20分)

intreverse(intnumber){

intm=0;

if(number<

number=-number;

-"

elseif(number==0)

m=0;

while(number>

0){

m=m*10+number%10;

number=number/10;

returnm;

4-50移动字母(10分)

voidShift(chars[]){

inti,n;

chara[3];

n=strlen(s);

3;

a[i]=s[i];

if(n>

3)

for(i=3;

s[i-3]=s[i];

s[n-3+i]=a[i];

4-51在数组中查找指定元素(15分)

intsearch(intlist[],intn,int*){

inti,result;

for(i=0;

if(list[i]==*){

result=i;

break;

if(i==n)

result=-1;

returnresult;

4-52数组循环右移(20分)

intArrayShift(inta[],intn,intm){

inti=0,s[100];

if(m>

=n)

m=m%n;

if(m!

=0){

for(i=n-m;

s[i-(n-m)]=a[i];

for(i=n-m-1;

i>

=0;

i--)

a[i+m]=a[i];

for(i=0;

m;

a[i]=s[i];

return0;

4-54删除字符(20分)

voiddelchar(char*str,charc){

inti=0,j=0;

for(;

str[i]!

='

if(str[i]!

=c){

str[j]=str[i];

j++;

str[j]='

4-55分类统计各类字符个数(15分)

voidStringCount(char*s){

intn1=0,n2=0,n3=0,n4=0,n5=0;

if(s[i]>

n2++;

n4++;

elsen5++;

%d%d%d%d%d"

n1,n2,n3,n4,n5);

4-26使用递归函数计算1到n之和(10分)

intsum(intn){

if(n<

=0)

else{

sum+=i;

returnsum;

4-28递归求阶乘和(15分)

doublefact(intn){

doublem=1;

if(n==0)

returnm;

m=m*i;

doublefactsum(intn){

intj;

doublesum=0;

0)

for(j=1;

sum+=fact(j);

4-29递归实现指数函数(15分)

doublecalc_pow(double*,intn){

m=m**;

4-32递归求Fabonacci数列(10分)

intf(intn){

intd;

d=0;

elseif(n==1)

d=1;

elsed=f(n-2)+f(n-1);

4-33十进制转换二进制(15分)

voiddectobin(intn){

intt;

if(n==0||n==1)

%d"

n%2);

t=n;

dectobin(n=n/2);

t%2);

4-8递归实现顺序输出整数(15分)

voidprintdigits(intn){

if(n<

10)

n);

printdigits(n/10);

n%10);

4-9统计各位数字之和是5的数(20分)

intis(intnumber){

ints=0;

while(number>

s+=number%10;

number/=10;

if(s==5)

else

voidcount_sum(inta,intb){

inti,count=0,count_sum=0;

for(i=a;

=b;

if(is(i)){

count_sum+=i;

count=%d,sum=%d"

count,count_sum);

4-10简单实现*的n次方(10分)

doublemypow(double*,intn){

doubles=1;

s=s**;

4-13使用函数求1到10的阶乘和(10分)

s=s*i;

4-14使用函数求最大公约数(10分)

intgcd(int*,inty){

inti,t;

if(*<

y){

t=y;

y=*;

*=t;

for(i=y;

i>

=1;

i--)

if(*%i==0&

y%i==0)

break;

returni;

4-15使用函数的选择法排序(25分)

voidsort(inta[],intn){

inti,j,k,t;

n-1;

i++){

for(j=i+1;

if(a[j]<

a[i]){

t=a[i];

a[i]=a[j];

a[j]=t;

4-16函数实现字符串逆序(15分)

voidf(char*p){

inti,n=0;

chart;

p[i]!

n++;

n/2;

i++){

t=p[i];

p[i]=p[n-1-i];

p[n-1-i]=t;

4-17递归计算P函数(15分)

doubleP(intn,double*){

doublez;

if(n==0)

z=1;

elseif(n==1)

z=*;

elseif(n>

1)

z=((2*n-1)*P(n-1,*)-(n-1)*P(n-2,*))/n;

returnz;

4-1计算存款利息-genlib(10分)

intmain(void)

{

intmoney,year;

doubleinterest,rate;

scanf("

&

money);

year);

%lf"

rate);

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

interest=%.2f\n"

interest);

4-2弹球距离(15分)

doubledist(doubleh,doublep){

doubled=h;

while(p!

h=p*h;

if(h<

TOL)

d=d+2*h;

四、编程题

单词长度(20分)

*include<

stdio.h>

string.h>

intmain(){

chara[1000];

inti,n=0,k,t=0;

scanf("

%c"

a[i]);

if(a[i]=='

.'

k=i;

for(i=i-1;

i>

=0;

i--){

t++;

elsebreak;

=k;

){

if(n!

=0){

printf("

}

n=0;

if(i<

k-t)

else{

n++;

掉入陷阱的数字(20分)

intn[1000],s[1000],i,t;

n[0]);

for(i=1;

1000;

s[i-1]=0;

t=n[i-1];

while(t>

s[i-1]+=t%10;

t/=10;

n[i]=3*s[i-1]+1;

%d:

i,n[i]);

if(n[i]==n[i-1])break;

九宫格输入法(20分)

char*key[10]={"

0"

"

1,."

!

"

2ABC"

3DEF"

"

4GHI"

5JKL"

6MNO"

7PQRS"

8TUV"

9W*YZ"

};

intlength[10];

for(inti=0;

10;

length[i]=strlen(key[i]);

charch;

charp;

intcount=0;

do{

ch=getchar();

if(ch!

ch!

p=ch;

putchar(key[p-'

][(count-1)%length[p-'

]]);

count=0;

}while(ch!

算术入门之加减乘除(20分)

main(){

inta,b,r1,r2,r3,r41,c;

floatr42;

%d%d"

a,&

b);

r1=a+b;

r2=a-b;

r3=a*b;

%d+%d=%d\n%d-%d=%d\n%d*%d=%d\n"

a,b,r1,a,b,r2,a,b,r3);

c=a%b;

if(c==0){

r41=a/b;

%d/%d=%d"

a,b,r41);

r42=(float)a/b;

%d/%d=%.2f"

a,b,r42);

人民币兑换(20

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

当前位置:首页 > 成人教育 > 成考

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

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