PAT《C语言程序设计》题目集参考答案(上)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PAT浙大版《C语言程序设计(第3版)》题目集参考答案
(上)
目录
练习5-1 求m到n之和(10分) (1)
练习5-2 找两个数中最大者(10分) (2)
练习5-3 数字金字塔(15分) (2)
习题5-1 符号函数(10分) (3)
习题5-2 使用函数求奇数和(15分) (3)
习题5-3 使用函数计算两点间的距离(10分) (4)
习题5-4 使用函数求素数和(20分) (4)
习题5-5 使用函数统计指定数字的个数(15分) .. 5习题5-6 使用函数输出水仙花数(20分) (6)
习题5-7 使用函数求余弦函数的近似值(15分) .. 8习题6-1 分类统计字符个数(15分) (8)
习题6-2 使用函数求特殊a串数列和(20分) (9)
习题6-3 使用函数输出指定范围内的完数(20分) (10)
习题6-4 使用函数输出指定范围内的Fibonacci数(20分) (11)
习题6-5 使用函数验证哥德巴赫猜想(20分) (13)
练习5-1 求m到n之和(10分)
本题要求实现一个计算m~n(m 函数接口定义: int sum( int m, int n ); 其中m和n是用户传入的参数,保证有m int sum(int m, int n){ int a=0; while(m<=n){ a=m+a; m++; } return a; } 练习5-2 找两个数中最大者(10分) 本题要求对两个整数a和b,输出其中较大的数。 函数接口定义: int max( int a, int b ); 其中a和b是用户传入的参数,函数返回的是两者中较大的数。 int max(int a,int b){ int c; if (a>b) c=a; else c=b; return c; } 练习5-3 数字金字塔(15分) 本题要求实现函数输出n行数字金字塔。 函数接口定义: void pyramid( int n ); 其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注 意每个数字后面跟一个空格。 void pyramid( int n ){ for(int i=1;i<=n;i++){ for(int z=n-i;z>0;z--) printf(" "); for(int j=1;j<=i;j++){ printf("%d ",i); } printf("\n"); } } 习题5-1 符号函数(10分) 本题要求实现符号函数sign(x)。 函数接口定义: int sign( int x ); 其中x是用户传入的整型参数。符号函数的定义为:若x大于0,sign(x) = 1;若x等于0,sign(x) = 0;否则,sign(x) = −1。 int sign( int x ){ int a; if(x>0){ a=1; }; if(x==0){ a=0; }; if(x<0) { a=-1; }; return a; } 习题5-2 使用函数求奇数和(15分) 本题要求实现一个函数,计算N个整数中所有奇数的和,同时实现一个判断奇偶性的函数。 函数接口定义: int even( int n ); int OddSum( int List[], int N ); 其中函数even将根据用户传入的参数n的奇偶性返回相应值:当n为偶数时返回1,否则返回0。函数OddSum负责计算并返回传入的N个整数List[]中所有奇数的和。 int even(int n){ int a; if(n%2==0){ a=1; } else if(n%2!=0) a=0; return a; }; int OddSum( int List[], int N ){ int sum=0; for(int i=0;i if(List[i]%2!=0) sum=List[i] +sum; } return sum; } 习题5-3 使用函数计算两点间的距离(10分) 本题要求实现一个函数,对给定平面任意两点坐标(x1,y1)和(x2,y2),求这两点之间的距离。函数接口定义: double dist( double x1, double y1, double x2, double y2 ); 其中用户传入的参数为平面上两个点的坐标(x1, y1)和(x2, y2),函数dist应返回两点间的距离。 double dist( double x1, double y1, double x2, double y2 ){ double m; m=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); return m; } 习题5-4 使用函数求素数和(20分) 本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。 素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。 函数接口定义: int prime( int p ); int PrimeSum( int m, int n ); 其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数m≤n。 int prime( int p ) { int i ; if(p<=1){ return 0; }else if (p==2){ return 1; }else{ for(i=2;i<=p/2;i++){ if(p%i==0){ return 0;