PTA|浙大版《C语言程序设计(第4版)》题目集 编程题

这篇文章提供了一系列C语言编程练习题目,涉及基础输出、数学运算(温度转换、序列求和等)、逻辑判断(比较、统计等)、实际生活应用(阶梯电价)以及字符处理,适合学习者提升C语言实践能力。

PTA|浙大版《C语言程序设计(第4版)》题目集

目录

1.Programming in C is fun!

2.输出倒三角图案

3.温度转换

4.计算物体自由下落的距离

5.计算摄氏温度

6.整数四则运算

7.计算分段函数[1]

8.计算分段函数[2]

9.输出华氏-摄氏温度转换表

10.输出华氏-摄氏温度转换表

11.求N分之一序列前N项和

12.求奇数分之一序列前N项和

13.求简单交错序列前N项和

14.生成3的乘方表

15.求组合数

16.求整数均值

17.阶梯电价

18.求平方与倒数序列的部分和

19.求交错序列前N项和

20.求平方根序列前N项和

21.求阶乘序列前N项和

22.计算符号函数的值

23.统计学生平均成绩与及格人数

24.统计字符

25.输出闰年

26. 成绩转换

27.查询水果价格

28.比较大小

1.Programming in C is fun!

在这里插入图片描述

#include<stdio.h>
int main(void)
{
    printf("Programming in C is fun!");
    return 0;
}

2.输出倒三角图案

在这里插入图片描述

#include<stdio.h>
int main(void)
{
    printf("* * * *\n");
    printf(" * * *\n");
    printf("  * *\n");
    printf("   *\n");
    return 0;
}

3.温度转换

在这里插入图片描述

#include <stdio.h>

int main(void) {
    int f ;
    int c;
    f= 150;
    c=5 * (f - 32 ) / 9 ;
    printf("fahr = %d, celsius = %d",f,c);
    return 0;
}

4.计算物体自由下落的距离

在这里插入图片描述

#include<stdio.h>
int main (void)
{
    int t;
    double height;
    t=3;

    height=0.5*10*t*t;
    printf("height = %.2lf",height);
    return 0;
}

5.计算摄氏温度

在这里插入图片描述

#include<stdio.h>
int main (void)
{
    int farh,Celsius;
    scanf("%d",&farh );
    Celsius=5*(farh-32)/9;
    printf("Celsius = %d",Celsius);
    return 0;
}

6.整数四则运算

在这里插入图片描述

#include<stdio.h>
int main(void)
{
    int A,B;
    char op1,op2,op3,op4;
    op1='+';
    op2='-';
    op3='*';
    op4='/';
    scanf("%d %d",&A,&B);
    printf("%d %c %d = %d\n",A,op1,B,A+B);
    printf("%d %c %d = %d\n",A,op2,B,A-B);
    printf("%d %c %d = %d\n",A,op3,B,A*B);
    if (B!=0){
    printf("%d %c %d = %d\n",A,op4,B,A/B);
    }
    else{
        printf("Division by zero is not allowed.\n");
    }
    return 0;
}

7. 计算分段函数[1]

本题目要求计算下列分段函数f(x)的值:
在这里插入图片描述

#include<stdio.h>
int main(void)
{
    double x;
    scanf("%lf",&x);
    if(x==0){
        printf("f(%.1lf) = 0.0",x);
    }
    else{
        printf("f(%.1lf) = %.1lf",x,1.0/x);
    }
   
    return 0;
}

8. 计算分段函数[2]

在这里插入图片描述

#include<stdio.h>
#include<math.h>
int main(void)
{
    double x;
    double i;
    double n;
    i=0.00;
    n=0.00;
    scanf("%lf",&x);
    i=sqrt(x);
     n=1.0/x+2.0*x+pow(x+1,2);
    if(x>=0){
        printf("f(%.2lf) = %.2lf",x,i);
    }
    else{
        printf("f(%.2lf) = %.2lf",x,n);
    }
    return 0;
}

9.输出华氏-摄氏温度转换表

在这里插入图片描述

#include<stdio.h>
int main(void)
{
    int fahr,lower,upper;
    double celsius;
    scanf("%d %d\n",&lower,&upper);
    if(lower>=0&&lower<=upper&&upper<=100){
        printf("fahr celsius\n");
        for(fahr=lower;fahr<=upper;fahr=fahr+2){
             celsius=(5.0/9.0)*(fahr-32);
            printf("%d%6.1lf\n",fahr,celsius);
        }
    }
    else{
        printf("Invalid.\n");
    }
    return 0;
}

10.求N分之一序列前N项和

在这里插入图片描述

#include<stdio.h>
int main (void)
{
    int N;
    double i;
    double sum;
    sum=0.0;
     scanf("%d",&N);
    for(i=1;i<=N;i++){
        sum=sum+1.0/i;
    }
    printf("sum = %.6lf",sum);
    return 0;
}

11.求奇数分之一序列前N项和

在这里插入图片描述

#include<stdio.h>
int main (void)
{
  int N;
    double i,sum;
   sum=0;
    scanf("%d",&N);
    for(i=1;i<=2*N-1;i=i+2){
        sum=sum+1.0/i;}
         printf("sum = %.6lf",sum);
    return 0;
}

12.求简单交错序列前N项和

在这里插入图片描述

#include<stdio.h>
int main(void)
{
    int n,i,flag;
	double sum,z;
	flag=-1;
	scanf("%d",&n);
	for(i=1;i<=3*n-2;i=i+3){
		flag=-flag;
		z=1.0/i*(flag);
		sum=sum+z;
	}
	printf("sum = %.3lf",sum);
	return 0;
}

13.求简单交错序列前N项和

在这里插入图片描述

#include<stdio.h>
int main(void)
{
    int n,i,flag;
	double sum,z;
	flag=-1;
	scanf("%d",&n);
	for(i=1;i<=3*n-2;i=i+3){
		flag=-flag;
		z=1.0/i*(flag);
		sum=sum+z;
	}
	printf("sum = %.3lf",sum);
	return 0;
}

14.生成3的乘方表

在这里插入图片描述

#include<stdio.h>
#include<math.h>
int main(void)
{
    	int n,i,power;
	scanf("%d",&n);
	for(i=0;i<=n;i++){
		power=pow(3,i);
		printf("pow(3,%d) = %d\n",i,power);
}
return 0;

}

15.求组合数

在这里插入图片描述

#include<stdio.h>
double fact(int n);
int main(void)
{
	int n,i,j,m;
	double result,s;
	scanf("%d %d",&m,&n);
	result=fact(n)/(fact(m)*fact(n-m));
	printf("result = %.0lf",result);
	return 0;
}
double fact(int n){
	double fact=1;
	int i;
	for(i=1;i<=n;i++){
		fact=fact*i;
	}
	return fact;
	
}


16.求整数均值

在这里插入图片描述

#include<stdio.h>
int main(void)
{
	int m,n,z,j,Sum;
	double Average;
	scanf("%d %d %d %d",&m,&n,&z,&j);
	Sum=m+n+z+j;
	Average=1.0*Sum/4;
	printf("Sum = %d; Average = %.1lf",Sum,Average);
	return 0;
}

17.阶梯电价

在这里插入图片描述

#include<stdio.h>
int main(void)
{
	int x;
	double cost;
	scanf("%d",&x);
	if(x<0){
		printf("Invalid Value!");
	}
	else if(x>=0&&x<=50){
		cost=0.53*x;
		printf("cost = %.2lf",cost);
	}
	else {
		cost=(x-50)*0.58+26.5;
		printf("cost = %.2lf",cost);
	}
	return 0;
}

18.求平方与倒数序列的部分和

在这里插入图片描述

#include<stdio.h>

int main(void){
    int n,m,i;
    double sum;
    scanf("%d %d",&m,&n);
    for(i=m;i<=n;i++){
        sum=sum+i*i+1.0/i;
    }
    printf("sum = %.6lf",sum);
    return 0;
}

19.求交错序列前N项和

在这里插入图片描述

#include<stdio.h>
int main(void)
{
    int n,i,flag;
    double sum;
    flag=-1;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        flag=-flag;
        sum=flag*i/(2.0*i-1.0)+sum;
    }
    printf("%.3lf",sum);
    return 0;
}

20.求平方根序列前N项和

在这里插入图片描述

#include<stdio.h>
#include<math.h>
int main(void)
{
    int n,i;
    double sum;
    sum=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        sum=sum+sqrt(i);
    }
    printf("sum = %.2lf",sum);
    return 0;
}

21.求阶乘序列前N项和

在这里插入图片描述

#include<stdio.h>
int main(void)
{
    int n,i,p;
    int sum;
    sum=0;
    p=1;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
        p=p*i;
        sum=sum+p;
    }
    printf("%d",sum);
    return 0;
}

22.计算符号函数的值

在这里插入图片描述

#include<stdio.h>
int main(void)
{
    int n;
    scanf("%d",&n);
    if(n<0){
        printf("sign(%d) = -1",n);
    }else if(n==0){
        printf("sign(%d) = 0",n);
    }else{
        printf("sign(%d) = 1",n);
    }
    return 0;
}

23.统计学生平均成绩与及格人数

#include<stdio.h>
int main(void)
{
    int n,count,i,a;
    double average,sum;
    count=0;
    average=0.0;
    sum=0;
    scanf("%d",&n);
    if(n==0){
        printf("average = 0.0\n");
        printf("count = 0\n");
    }
    else{
        for(i=1;i<=n;i++){
        scanf("%d",&a);
        sum=sum+a;
          if(a>=60){
            count++;
        }
    }
    
     average=sum/n*1.0;
    printf("average = %.1lf\n",average);
    printf("count = %d\n",count);
}
   return 0;
}

24.统计字符

在这里插入图片描述

#include<stdio.h>
#include<math.h>
int main(void)
{
    int digit,i,letter,other,blank;
	char ch;
	digit=letter=blank=other=0;
    for(i=1;i<=10;i++){
    	ch=getchar();
	 if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')){
		letter++;
	}else if(ch>='0'&&ch<='9'){
		digit++;
	}else if((ch==' ')||(ch=='\n')){
			blank++;
     }else{
		other++;
	}
}
	printf("letter = %d, blank = %d, digit = %d, other = %d\n",letter,blank,digit,other);
	return 0;
}

25.输出闰年

在这里插入图片描述

#include<stdio.h>
int main()
{
    int n,i,x;
    scanf("%d",&n);
    if(n<=2000||n>2100){
        printf("Invalid year!\n");
    }else{
         x=0;
    for(i=2001;i<=n;i++){
      if((i%400==0)||(i%4==0&&i%100!=0)){
          printf("%d\n",i);
          x=1;
     }
}if(x==0){
        printf("None\n");
    }
    }
    return 0;
}

26.成绩转换

在这里插入图片描述

#include<stdio.h>
int main()
{
    int a;
    scanf("%d",&a);
    if(a>=90){
        printf("A");
    }else if(a<90&&a>=80){
        printf("B");
    }else if(a<80&&a>=70){
        printf("C");
    }else if(a<70&&a>=60){
        printf("D");
    }else{
        printf("E");
    }
    return 0;
}

27.查询水果价格

在这里插入图片描述
在这里插入图片描述

#include<stdio.h>
int main(void){
    int n,i;
    printf("[1] apple\n[2] pear\n[3] orange\n[4] grape\n[0] exit\n");
    for(i=1;i<=5;i++){
        scanf("%d",&n);
        if(n==0) break;
        switch(n){
            case 1:printf("price = 3.00\n");break;
            case 2:printf("price = 2.50\n");break;
            case 3:printf("price = 4.10\n");break;
            case 4:printf("price = 10.20\n");break;
            default: printf("price = 0.00\n");break;
        }
    }
    return 0;
}

28.比较大小

在这里插入图片描述

#include<stdio.h>
int main(void){
    int x,y,z,t;
    scanf("%d %d %d",&x,&y,&z);
    if(x>y){t=y;y=x;x=t;}
    if(x>z){t=z;z=x;x=t;}
    if(y>z){t=z;z=y;y=t;}
    printf("%d->%d->%d\n",x,y,z);
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值