ImageVerifierCode 换一换
格式:DOCX , 页数:203 ,大小:4.29MB ,
资源ID:11006125      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11006125.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(PTA程序设计答案.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

PTA程序设计答案.docx

1、PTA程序设计答案PTA所有答案工业gc1601学习小组一、判断题二、选择题 三、函数题4-3 求m到n之和 (10分)答案:int sum(int m, int n) int s=0,i; for(i=m;i=n;i+) s+=i; return s;4-34 简单输出整数 (10分)答案:void PrintN ( int N ) int i; for(i=1;i=N;i+) printf(%dn,i);4-36 简单求和 (10分)答案:int Sum ( int List, int N ) int i,s=0; for(i=0;iN;i+) s+=Listi; return s;4-4

2、0 简单阶乘计算 (10分)答案:int Factorial( const int N ) int i, s=1; if( N 0 ) return 0; else if( N = 0) return 1; else for(i=1; i= b) max = a; else max = b; return max;4-44 数字金字塔 (15分)答案:void pyramid(int n) int i, j, space; for(i=1; i = n; i+) space = n - i; for(j=0; j space; j+) printf( ); for(j=0; j i; j+)

3、printf(%-2d, i); printf(n); 4-45 判断奇偶性 (10分)答案:int even( int n ) if( n%2=0 ) return 1; else return 0;4-46 使用函数求奇数和 (15分)答案:int even( int n ) if( n%2=0 ) return 1; else return 0;int OddSum( int List, int N ) int i; int oddsum = 0; for(i=0; iN; i+) if(even(Listi)=0) oddsum += Listi; return oddsum;4-47

4、 使用函数计算两点间的距离 (10分)答案:double dist(double x1, double y1, double x2, double y2) double d; d = sqrt(x1 - x2)*(x1 - x2) + (y1 - y2)*(y1 - y2); return d;4-48 使用函数求素数和 (20分)答案:int prime( int p ) int i,j,count =0; for(j=2;j0&p!=1) return 1; else return 0;int PrimeSum( int m, int n ) int i,sum=0; for(i=m;i

5、0) integer = integer / 10; count+; powerSum = 0; integer = number; for (i = 0; i count; i+) digit = integer % 10; integer = integer / 10; power = 1; for (j = 0; j count; j+) power = power*digit; powerSum = powerSum + power; if (powerSum = number) flag = 1; else flag = 0; return flag;void PrintN(int

6、m, int n) int i; for (i = m + 1; i 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= a&si = A&si = 0&si = 9) n3+; else n4+; printf(letter = %d, blank = %d, digit = %d, other = %d,n1,n2,n3,n4);4-7 使用函数求特殊a串数列和 (20分)答案:int fn( int a, int

7、n ) int x,p=0,i; for(i=0; in; i+) x= a * pow(10,i); p = p + x; return p;int SumA( int a, int n ) int k; int sum=0; for(k=0; kn+1; k+) sum = sum + fn( a , k ); return sum;4-22 使用函数输出指定范围内的完数 (20分)答案:int factorsum( int number ) int i,s=1; for(i=1; i1 & number%i = 0) s+=i; return s;void PrintPN( int m,

8、 int n ) int k,t,found = 0; for(k=m; k=n; k+) if (factorsum( k ) = k) found = 1; printf(%d = 1,k); for(t=1; t1 & k%t = 0) printf( + %d, t); printf(n); if (found = 0) printf(No perfect number); 4-25 使用函数输出一个整数的逆序数 (20分)答案:int reverse( int number ) int m=0; if(number 0) m = m*10 + number%10; number=nu

9、mber/10; return m;4-50 移动字母 (10分)答案:void Shift( char s ) int i,n; char a3; n = strlen(s); for(i=0; i3) for(i=3; in; i+) si-3 = si; for(i=0; i3; i+) sn-3+i=ai;4-51 在数组中查找指定元素 (15分)答案:int search(int list, int n, int x) int i, result; for (i=0; i=n) m=m%n; if(m!=0) for(i=n-m; i=0; i-) ai+m=ai; for(i=0;

10、 i= A&si = a&si = 0&si = 9) n4+; else n5+; printf(%d %d %d %d %d,n1,n2,n3,n4,n5);4-26 使用递归函数计算1到n之和 (10分)答案:int sum( int n ) int i,sum=0; if(n=0) return 0; else for(i=1; i=n; i+) sum += i; return sum; 4-28 递归求阶乘和 (15分)答案:double fact( int n ) int i; double m=1; if(n=0) return m; else for(i=1; i0) for

11、(j=1; j=n; j+) sum += fact(j); return sum;4-29 递归实现指数函数 (15分)答案:double calc_pow( double x, int n ) int i; double m=1; for(i=1; i=n; i+) m = m*x; return m;4-32 递归求Fabonacci数列 (10分)答案:int f( int n ) int d; if(n=0) d=0; else if(n=1) d=1; else d=f(n-2)+f(n-1); return d;4-33 十进制转换二进制 (15分)答案:void dectobi

12、n( int n ) int t; if(n=0|n=1) printf(%d,n%2); else t=n; dectobin(n=n/2); printf(%d,t%2); 4-8 递归实现顺序输出整数 (15分)答案:void printdigits(int n) if (n 0) s += number%10; number /= 10; if(s = 5) return 1; else return 0;void count_sum( int a, int b ) int i, count=0, count_sum=0; for(i=a; i=b; i+) if( is(i) ) c

13、ount+; count_sum += i; printf(count = %d, sum = %d, count, count_sum);4-10 简单实现x的n次方 (10分)答案:double mypow( double x, int n ) int i; double s=1; for(i=0; in; i+) s = s*x; return s;4-13 使用函数求1到10的阶乘和 (10分)答案:double fact( int n ) int i; double s=1; for(i=1;i=n; i+) s = s * i; return s;4-14 使用函数求最大公约数 (

14、10分)答案:int gcd( int x, int y ) int i,t; if(x=1;i-) if(x%i=0 & y%i=0) break; return i;4-15 使用函数的选择法排序 (25分)答案:void sort( int a, int n ) int i,j,k,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(ajai) t=ai;ai=aj;aj=t; 4-16 函数实现字符串逆序 (15分)答案:void f(char *p) int i,n=0; char t; for(i=0; pi != 0; i+) n+; for (i=0

15、; i 1) z = (2*n-1)*P(n-1,x) - (n-1)*P(n-2,x)/n; return z;4-1 计算存款利息-genlib (10分)答案:int main(void) int money, year; double interest, rate; scanf(%d, &money); scanf(%d, &year); scanf(%lf, &rate); interest = money * pow(1+rate,year) - money; printf(interest = %.2fn, interest); return 0;4-2 弹球距离 (15分)答案

16、:double dist( double h, double p ) double d=h; while(p!=0) h=p*h; if(hTOL) break; d=d+2*h; return d;四、编程题单词长度 (20分)答案:#include #include int main() char a1000; int i, n = 0, k, t = 0; for (i = 0; i+) scanf(%c, &ai); if (ai = .) break; k = i; for (i = i - 1; i = 0; i-) if (ai = ) t+; else break; for (

17、i = 0; i = k; i+) if (ai = .) if (n != 0) printf(%d, n); printf(n); break; if (ai = ) if (n != 0) printf(%d, n); n = 0; if (i k - t) printf( ); else n+; return 0;掉入陷阱的数字 (20分)答案:#include int main() int n1000, s1000, i, t; scanf(%d, &n0); for (i = 1; i 0) si - 1 += t % 10; t /= 10; ni = 3 * si - 1 +

18、1; printf(%d:%dn, i, ni); if (ni = ni - 1)break; return 0;九宫格输入法 (20分)答案:#include #includeint main() char *key10 = 0 , 1,.?!, 2ABC, 3DEF, 4GHI, 5JKL, 6MNO, 7PQRS, 8TUV, 9WXYZ ; int length10; for (int i = 0; i10; i+) lengthi = strlen(keyi); char ch; char p; int count = 0; do ch = getchar(); if (ch != &ch != n) p = ch; count+; else putchar(keyp - 0(count - 1) % lengthp - 0); count = 0; while (ch != n); return 0;算术入门之加减乘除 (20分)答案:#include main() int a, b, r1, r2, r3, r41, c; floa

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

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