PTA函数答案.docx
- 文档编号:2440844
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:24
- 大小:19.42KB
PTA函数答案.docx
《PTA函数答案.docx》由会员分享,可在线阅读,更多相关《PTA函数答案.docx(24页珍藏版)》请在冰豆网上搜索。
PTA函数答案
三、程序填空题
3-32程序阅读:
下列程序将输出(5分)。
#include
ints;
intf(intm)
{
staticintk=0;
for(;k<=m;k++)s++;
returns;
}
intmain(void)
{
ints=1;
s=f
(2)+f
(2);
printf("%d#%d#",s,f(20));
return0;
}
四、函数
4-3 求m到n之与 (10分)
intsum(intm,intn)
{
inti;
ints=0;
for(i=m;i<=n;i++)
s=s+i;
return(s);
}
4-34 简单输出整数 (10分)
voidPrintN(intN)
{
inti;
for(i=1;i<=N;i++)
printf("%d\n",i);
}
4-36 简单求与 (10分)
intSum(intList[],intN)
{
intk;
intsum=0;
for(k=0;k sum+=List[k]; returnsum; } 4-40 简单阶乘计算 (10分) intFactorial(constintN) { inti; ints=1; if(N<0) return0; elseif(N==0) return1; else for(i=1;i<=N;i++) s*=i; returns; } 4-41 统计个位数字 (15分) intCount_Digit(constintN,constintD) { intx; intcount=0; inttemp=0; x=N; if(x<0) x=-x; do { temp=x%10; if(temp==D) count++; x=x/10; } while(x>0); returncount; } 4-43 找两个数中最大者 (10分) intmax(inta,intb) { intmax; if(a>=b) max=a; else max=b; returnmax; } 4-44 数字金字塔 (15分) voidpyramid(intn) { inti,j,space; for(i=1;i<=n;i++) { space=n-i; for(j=0;j putchar(''); for(j=0;j printf("%-2d",i); putchar('\n'); } } 4-45 判断奇偶性 (10分) inteven(intn) { if(n<0) n=-n; if(n%2==0) return1; else return0; } 4-46 使用函数求奇数与 (15分) inteven(intn) { if(n<0) n=-n; if(n%2==0) return1; else return0; } intOddSum(intList[],intN) { intk; intoddsum=0; for(k=0;k if(even(List[k])==0) oddsum+=List[k]; returnoddsum; } 4-47 使用函数计算两点间的距离 (10分) doubledist(doublex1,doubley1,doublex2,doubley2) { doubleDist; Dist=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); returnDist; } 4-48 使用函数求素数与 (20分) intprime(intp) { inti,j; intcount=0; for(j=2;j { if(p%j==0) { count++; } } if(count==0&&p>0&&p! =1) { return1; }else{ return0; } } intPrimeSum(intm,intn) { inti,sum=0; for(i=m;i<=n;i++) { if(prime(i)==1) { sum=sum+i; } } returnsum; } 4-19 使用函数统计指定数字的个数 (15分) intCountDigit(intnumber,intdigit) { intcount,temp,x; x=number; if(x<0) x=-x; do { temp=x%10; if(temp==digit) count++; x=x/10; } while(x>0); returncount; } 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; integer=number; for(i=0;i { digit=integer%10; integer=integer/10; power=1; for(j=0;j power=power*digit; powerSum=powerSum+power; } if(powerSum==number) flag=1; else flag=0; returnflag; } voidPrintN(intm,intn) { inti; for(i=m+1;i { if(narcissistic(i)==1) printf("%d\n",i); } } 4-21 使用函数求余弦函数的近似值 (15分) doublefuncos(doublee,doublex) { 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(x,i)/cj; sum=sum+d; i+=2; } else { cj=1; for(j=1;j<=i;j++) cj=cj*j; d=pow(x,i)/cj; sum=sum-d; i+=2; } } returnsum; } 4-49 分类统计字符个数 (15分) voidf(longintx,char*p) { charq; staticinti=0,j=0; if(x<0) { x=-x; *p='-'; p++; } q=x%16; if(q<10) q=('0'+q); else q=('A'+q-10); x=x/16; j++; i=j; if(x>0) f(x,p); *(p+(i-j))=q; j--; } 4-7 使用函数求特殊a串数列与 (20分) intfn(inta,intn) { intx; intp=0; inti; for(i=0;i { x=a*pow(10,i); p=p+x; } returnp; } intSumA(inta,intn) { intk; intsum=0; for(k=0;k sum=sum+fn(a,k); returnsum; } 4-22 使用函数输出指定范围内的完数 (20分) voidPrintPN(intm,intn) { intk; intt; intfound=0; for(k=m;k<=n;k++) { if(factorsum(k)==k) { found=1; printf("%d=1",k); for(t=1;t<=k/2;t++) if(t>1&&k%t==0) printf("+%d",t); printf("\n"); } } if(found==0) printf("Noperfectnumber"); } 4-25 使用函数输出一个整数的逆序数 (20分) intreverse(intnumber) { intm=0; if(number<0) { number=-number; printf("-"); } elseif(number==0) m=0; while(number>0) { m=m*10+number%10; number=number/10; } returnm; } 4-50 移动字母 (10分) voidShift(chars[]) { inti; intn; chara[3]; n=strlen(s); for(i=0;i<3;i++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PTA 函数 答案