PTA 基础编程题目集 -函数12题

原创 2016年05月08日 21:46:06


4-1 简单输出整数   (10分)

void PrintN(int N)
{
    int i,sum=0;
    for(i=1; i<=N; i++)
        printf("%d\n",i);
}


4-2 多项式求值   (15分)

double f( int n, double a[], double x )
{
    int i;
    double sum;
    for(i=0; i<=n; i++)
    {
        if(i==0) sum+=a[i];
        else if(i==1) sum+=a[i]*x;
        else
        {
            x*=x;
            sum+=a[i]*x;
        }
    }
    return sum;
}


4-3 简单求和   (10分)

int Sum ( int List[], int N )
{
    int i,sum=0;
    for(i=0;i<N;i++)
        sum+=List[i];
    return sum;
}


4-4 求自定类型元素的平均   (10分)

ElementType Average( ElementType S[], int N )
{
    int i;
    double sum,ave;
    for(i=0; i<N; i++)
        sum+=S[i];
    ave=sum/N;
    return ave;
}


4-5 求自定类型元素的最大值   (10分)

ElementType Max( ElementType S[], int N )
{
    int i,j,temp;
    for(i=0; i<N-1; i++)
        for(j=0; j<N-i-1; j++)
        {
            if(S[j]<S[j+1])
            {
                temp=S[j];
                S[j]=S[j+1];
                S[j+1]=temp;
            }
        }
        return S[0];

}


4-6 求单链表结点的阶乘和   (15分)

int fun(int n)
{
    if(n==0 || n==1)
        return 1;
    else
        return n*fun(n-1);
}
int FactorialSum( List L )
{
    int sum = 0;
    while(L!=NULL){
        int m = fun(L->Data);
        sum += m;
        L = L->Next;
    }
    return sum;
}


4-7 统计某类完全平方数   (20分)

int IsTheNumber ( const int N )
{
    int M=N;
    double m=sqrt(N);
    int m1=sqrt(N),a[10]= {0},i,j,c=0;
    if(m>m1) return 0;
    else
    {
        while(M>0)
        {
            j=M%10;
            a[j]++;
            M=M/10;
        }
        for(i=0; i<10; i++)
        {
            if(a[i]>1) c=1;
            if(c==1) break;

        }
        if(c==1) return 1;
        else return 0;
    }
}


4-8 简单阶乘计算   (10分)

int Factorial( const int N )
{
    int i,fac=1;
    if(N<0) return 0;
    else
    {
        for(i=1; i<=N; i++)
            fac*=i;
        return fac;
    }
}


4-9 统计个位数字   (15分)

int Count_Digit ( const int N, const int D )
{
    int i,num=0,M;
    if(N>=0) M=N;
    else M=-N;
    if(M==0)
    {
        if(D==0) return 1;
        else return 0;
    }
    else
    {
        while(M>0)
        {
            i=M%10;
            if(i==D) num++;
            M=M/10;
        }
    }
    return num;
}


4-10 阶乘计算升级版   (20分)

void Print_Factorial( const int N )
{
    int i,j,f[3200]= {0};
    f[0] = 1;
    if(N<0) printf("Invalid input");
    else
    {
        for(i=2; i<=N; i++)
        {
            int c = 0;
            for(j=0; j<3200; j++)
            {
                int s = f[j]*i+c;
                f[j]=s%10;
                c = s/10;
            }
        }
        for(j = 3199; j >= 0; j--)
        {
            if(f[j]!=0) break;
        }
        for(i=j; i>=0; i--)
        {
            printf("%d",f[i]);
        }
    }
}


4-11 求自定类型元素序列的中位数   (25分)

void mergearray(ElementType A[],int first,int mid,int last,ElementType temp[])
{
	int i=first,j=mid+1,m=mid,n=last,k=0;
	while(i<=m&&j<=n){
		if(A[i]<=A[j]){
			temp[k++]=A[i++];
		}
		else{
			temp[k++]=A[j++];
		}
	}
	while(i<=m){
		temp[k++]=A[i++];
	}
	while(j<=n){
		temp[k++]=A[j++];
	}
	for(i=0;i<k;i++){
		A[first+i]=temp[i];
	}
}
void mergesort(ElementType A[],int first,int last,ElementType temp[])
{
	if(first<last){
		int mid=(first+last)/2;
		mergesort(A,first,mid,temp);
		mergesort(A,mid+1,last,temp);
		mergearray(A,first,mid,last,temp);
	}
}
ElementType Median( ElementType A[], int N )
{
	ElementType p[MAXN];
	mergesort(A,0,N-1,p);

	return A[N/2];
}


4-12 判断奇偶性   (10分)

int even( int n )
{
    if(n%2==0) return 1;
    else return 0;
}











版权声明:本文为博主原创文章,未经博主允许不得转载。

pta基础编程题目集 编程题

题目链接5-7 12-24小时制#include int main(int argc, const char * argv[]) { int hour,minute; scanf("%...
  • bobo1356
  • bobo1356
  • 2017年03月29日 18:33
  • 2975

PTA 基础编程题 5-37 整数分解为若干项之和 (20分)

5-37 整数分解为若干项之和 (20分) 将一个正整数N分解成几个正整数相加,可以有多种分解方法,例如7=6+1,7=5+2,7=5+1+1,…。编程求出正整数N的所有整数分解式子。 本题采...
  • VisDate
  • VisDate
  • 2016年03月20日 22:01
  • 3852

PTA 基础编程题目集 函数题 4-1~4-13

4-1//水题无难点 void PrintN(int N) { int i; for(i=1;i printf("%d\n",i); } 4-2//水题无难点 double ...
  • hys0124
  • hys0124
  • 2017年04月10日 21:44
  • 705

pat全套答案

  • 2014年03月02日 21:54
  • 2.32MB
  • 下载

浙大PAT全套答案_1001至1049.

  • 2013年04月13日 20:01
  • 2.71MB
  • 下载

PTA数据结构与算法题目集(中文) 函数题 (1)

PTA数据结构与算法题目集(中文) 函数题4-1~4-5
  • Phenixfate
  • Phenixfate
  • 2015年11月27日 14:22
  • 3424

【练习】PTA基础编程题目集

6-1 简单输出整数(10 分) 本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。 函数接口定义: void PrintN ( int N ); 其中N是用...
  • sunny_wing
  • sunny_wing
  • 2017年09月08日 20:40
  • 568

jquery date插件

$(function() { var dates = $( "#from, #to" ).datepicker( { defaultDate: "+1W", changeYear: tru...
  • dpf3977013
  • dpf3977013
  • 2011年09月14日 17:32
  • 600

【Pta测试6.1】:基础编程题目集

6-1 简单输出整数(10 分) 本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。 函数接口定义: void PrintN ( int N ); 其中N是用户传...
  • Bonstoppo
  • Bonstoppo
  • 2017年11月21日 20:05
  • 148

Html Dom 的nodetype解析

TAG:nodetype 将HTML DOM中几个容易常用的属性做下记录: nodeName、nodeValue 以及 nodeType 包含有关于节点的信息。 nodeName 属...
  • KAIFEIXIONGDI
  • KAIFEIXIONGDI
  • 2011年08月02日 11:07
  • 242
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PTA 基础编程题目集 -函数12题
举报原因:
原因补充:

(最多只允许输入30个字)