PTA實驗八函數 驗證哥德巴赫猜想函數求直角三角形的斜邊長並以保留兩位小數的形式輸出給定正整數打印從1到N全部偶數主函數中輸入日期的年月日求當年的第幾天函數打印乘法口訣表輸出等腰三角形倒數字金字塔

我最近考試比較多,所以可能沒啥時間寫解析了,我準備把題目答案發一下,解析的話考完試再看看吧。

在這裏插入圖片描述

1.下面代碼通過函數調用對4到N(1000>=N>=4)之間的偶數,驗證哥德巴赫猜想,請補充代碼。哥德巴赫猜想:即任一大於2的偶數都可寫成兩個素數之和。

m%i==0;
scanf(%d”,&N);
if(isprime(i)==1&&isprimr(n-i)==1;
break;

2.編寫函數,求直角三角形的斜邊長並以保留兩位小數的形式輸出。兩條直角邊(兩個正整數)由鍵盤輸入,以空格分隔,由被調函數計算斜邊長。

float f(int a,int b)
{
float c;
c=sqrt(a*a+b*b);
return c;
}

3.本題要求實現一個函數,對給定的正整數N(N>=1),打印從1到N(包含N)的全部偶數(用一個空格分隔)。

void PrintN(int n)
{
int i;
for(i=1;i<=n;i++)
if(i%2==0)
printf("%d ",i);
return;
}

4.本題要求實現一個函數,在主函數中輸入一個日期的年、月、日的值(空格分隔),然後在被調函數中求出這一天是當年的第幾天,在主函數中輸出結果。

int sumdays(int y,int m,int d)
{
int i;
int a[12]={31,28,31,30,31,30,31,31,30,31,30};
int sum=0;
for(i=0;i<=m-2;i++)
sum+=a[i];
sum+=d;
if((((y%4==0)&&(y%100!=0))||y%400==0)&&m>2)
sum+=1;
return sum;
}

5.要求實現一個函數,打印乘法口訣表,輸入正整數n(9>=n>=1),輸出n行口訣表,每個等式中的乘積值佔三個字符寬度,左對齊

#include <stdio.h>
void print(int x)
{
int i,j;
for(i=1;i<=x;i++)
{for(j=1;j<=i;j++)
printf("%d*%d=%-2d ",j,i,j*i);
printf("\n");}
}

6.在主函數中輸入一個字符ch和一個正整數n(20>=n>=1),然後在被調函數中輸出由n行字符ch構成的等腰三角形。

void printstar(char ch,int n)
{
int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("%c",ch);
printf("\n");
}
return;
}

7.在主函數中輸入一個正整數N(9>=N>=1),然後在被調函數中輸出由N行數字構成的倒數字金字塔。

void printN(int n)
{
int i,j;
for(i=n;i>=1;i--)
{
for(j=0;j<n-i;j++)
printf(" ");
for(j=1;j<=i;j++)
printf("%d",j);
for(j=i-1;j>=1;j--)
printf("%d",j);
if(i!=1)
printf("\n");
}
return;
}

8.修改下面程序中的錯誤,使通過函數調用來求兩個正整數的最大公約數(限定不使用全局變量)。

#include <stdio.h>
int gcd(int a,int b)
{int m,n,r;
m=a;
n=b;
while(1)
{r=m%n;
if(r==0)
return n;
m=n;
n=r;
}
}
int main(void)
{int a,b,g;
scanf("%d%d",&a,&b);
g=gcd(a,b);
printf("%d\n",g);
return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章