PAT《C语言程序设计》题目集参考答案(上)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

相关文档
最新文档