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<n)之间所有整数的和的简单函数。
函数接口定义:
int sum( int m, int n );
其中m和n是用户传入的参数,保证有m<n。函数返回的是m~n之间所有整数的和。
int sum(int m, int n){
int a=0;
while(m<=n){
a=m+a;
c++判断素数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<N;i++){
if(List[i]%2!=0)
sum=List[i] +sum;
}
return sum;
}