logo资料库

PTA函数答案.docx

第1页 / 共25页
第2页 / 共25页
第3页 / 共25页
第4页 / 共25页
第5页 / 共25页
第6页 / 共25页
第7页 / 共25页
第8页 / 共25页
资料共25页,剩余部分请下载后查看
三、程序填空题 3-32程序阅读: 下列程序将输出 (5 分)。 # include int s; int f(int m) { static int k=0; for(; k<=m; k++) s++; return s; } int main(void ) { int s=1; s=f(2)+f(2); printf("%d#%d#", s, f(20)); return 0; } 四、函数 4-3 求 m 到 n 之和 (10 分) int sum(int m, int n) { int i; int s=0; for(i=m; i<=n; i++) s= s + i; return (s); }
4-34 简单输出整数 (10 分) void PrintN ( int N ) { int i; for(i=1; i<=N; i++) printf("%d\n", i); } 4-36 简单求和 (10 分) int Sum ( int List[], int N ) { int k; int sum=0; for(k=0; k
4-41 统计个位数字 (15 分) int Count_Digit(const int N, const int D) { int x; int count=0; int temp=0; x=N; if(x<0) x=-x; do { } temp=x%10; if(temp==D) count++; x=x/10; while(x>0); return count; } 4-43 找两个数中最大者 (10 分) int max( int a, int b ) { int max; if(a >= 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++) putchar(' '); for(j=0; j < i; j++) printf("%-2d", i); putchar('\n'); } } 4-45 判断奇偶性 (10 分) int even( int n ) { if( n<0 ) n = -n; if( n%2==0 ) return 1; else return 0; }
4-46 使用函数求奇数和 (15 分) int even( int n ) { if( n<0 ) n = -n; if( n%2==0 ) return 1; else return 0; } int OddSum( int List[], int N ) { int k; int oddsum = 0; for(k=0; k
4-48 使用函数求素数和 (20 分) int prime( int p ) { int i,j; int 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<=n;i++) { if(prime(i)==1) { sum=sum+i; } } return sum; }
4-19 使用函数统计指定数字的个数 (15 分) int CountDigit( int number, int digit ) { int count,temp,x; x=number; if(x<0) x=-x; do { temp=x%10; if(temp==digit) count++; x=x/10; } while(x>0); return count; }
4-20 使用函数输出水仙花数 (20 分) int narcissistic(int number) { int i, 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 < 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) else flag = 1; flag = 0; return flag; } void PrintN(int m, int n) { int i; for (i = m + 1; i < n; i++) { if (narcissistic(i) == 1) printf("%d\n", i); } }
分享到:
收藏