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

03-27 1731阅读

目录

  • PTA 浙大版《C语言程序设计(第4版)》题目集 参考答案(编程题)
    • 本答案配套详解教程专栏
    • 练习2-1 Programming in C is fun! (5 分)
    • 练习2-3 输出倒三角图案 (5 分)
    • 练习2-4 温度转换 (5 分)
    • 练习2-6 计算物体自由下落的距离 (5 分)
    • 练习2-8 计算摄氏温度 (10 分)
    • 练习2-9 整数四则运算 (10 分)
    • 练习2-10 计算分段函数[1] (10 分)
    • 练习2-11 计算分段函数[2] (10 分)
    • 练习2-12 输出华氏-摄氏温度转换表 (15 分)
    • 练习2-13 求N分之一序列前N项和 (15 分)
    • 练习2-14 求奇数分之一序列前N项和 (15 分)
    • 练习2-15 求简单交错序列前N项和 (15 分)
    • 练习2-17 生成3的乘方表 (15 分)
    • 练习2-18 求组合数 (15 分)
    • 习题2-1 求整数均值 (10 分)
    • 习题2-2 阶梯电价 (15 分)
    • 习题2-3 求平方与倒数序列的部分和 (15 分)
    • 习题2-4 求交错序列前N项和 (15 分)
    • 习题2-5 求平方根序列前N项和 (15 分)
    • 习题2-6 求阶乘序列前N项和 (15 分)
    • 练习3-2 计算符号函数的值 (10 分)
    • 练习3-3 统计学生平均成绩与及格人数 (15 分)
    • 练习3-4 统计字符 (15 分)
    • 练习3-5 输出闰年 (15 分)
    • 练习3-7 成绩转换 (15 分)
    • 练习3-8 查询水果价格 (15 分)
    • 习题3-1 比较大小 (10 分)
    • 习题3-2 高速公路超速处罚 (15 分)
    • 习题3-3 出租车计价 (15 分)
    • 习题3-4 统计学生成绩 (15 分)
    • 习题3-5 三角形判断 (15 分)
    • 练习4-3 求给定精度的简单交错序列部分和 (15 分)
    • 练习4-6 猜数字游戏 (15 分)
    • 练习4-7 求e的近似值 (15 分)
    • 练习4-10 找出最小值 (20 分)
    • 练习4-11 统计素数并求和 (20 分)
    • 习题4-1 求奇数和 (15 分)
    • 习题4-2 求幂级数展开的部分和 (20 分)
    • 习题4-3 求分数序列前N项和 (15 分)
    • 习题4-4 特殊a串数列求和 (20 分)
    • 习题4-5 换硬币 (20 分)
    • 习题4-6 水仙花数 (20 分)
    • 习题4-7 最大公约数和最小公倍数 (15 分)
    • 习题4-8 高空坠球 (20 分)
    • 习题4-9 打印菱形图案 (15 分)
    • 习题4-10 猴子吃桃问题 (15 分)
    • 习题4-11 兔子繁衍问题 (15 分)
    • 练习6-3 英文字母替换加密(大小写转换+后移1位) (15 分)
    • 习题6-7 简单计算器 (20 分)
    • 习题6-8 单词首字母大写 (15 分)
    • 练习7-2 求最大值及其下标 (20 分)
    • 练习7-3 将数组中的数逆序存放 (20 分)
    • 练习7-4 找出不是两个数组共有的元素 (20 分)
    • 练习7-7 矩阵运算 (20 分)
    • 练习7-8 方阵循环右移 (20 分)
    • 练习7-9 计算天数 (15 分)
    • 练习7-10 查找指定字符 (15 分)
    • 练习7-11 字符串逆序 (15 分)
    • 习题7-1 选择法排序 (20 分)
    • 习题7-2 求一批整数中出现最多的个位数字 (20 分)
    • 习题7-3 判断上三角矩阵 (15 分)
    • 习题7-4 求矩阵各行元素之和 (15 分)
    • 习题7-5 找鞍点 (20 分)
    • 习题7-6 统计大写辅音字母 (15 分)
    • 习题7-7 字符串替换 (15 分)
    • 习题7-8 字符串转换成十进制整数 (15 分)
    • 习题8-7 字符串排序 (20 分)
    • 习题8-10 输出学生成绩 (20 分)
    • 习题9-1 时间换算 (15 分)
    • 习题9-3 平面向量加法 (15 分)
    • 习题9-4 查找书籍 (20 分)
    • 习题9-5 通讯录排序 (20 分)

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

      本答案配套详解教程专栏

      😀😀 欢 迎 订 阅😀😀

      PTA 浙大版《C语言程序设计(第4版)》题目集 参考答案(编程题)
      (图片来源网络,侵删)

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

      练习2-1 Programming in C is fun! (5 分)

      #include
      int main(){
          printf("Programming in C is fun!");
          return 0;
      }
      

      练习2-3 输出倒三角图案 (5 分)

      #include
      int main(){
          printf("* * * *\n");
          printf(" * * *\n");
          printf("  * *\n");
          printf("   *\n");
          return 0;
      }
      

      练习2-4 温度转换 (5 分)

      #include
      int main(){
          int C,F=150;
          C=5*(F-32)/9;
          printf("fahr = 150, celsius = %d",C);
          return 0;
      }
      

      练习2-6 计算物体自由下落的距离 (5 分)

      #include 
      int main(){
          float h,t = 3,g = 10;
          h = 0.5*g*t*t;
          printf("height = %.2f",h);
          return 0;
      }
      

      练习2-8 计算摄氏温度 (10 分)

      #include
      int main(void){
          int C,F;
          scanf("%d",&F);
          C=5*(F-32)/9;
          printf("Celsius = %d",C);
          return 0;
      }
      

      练习2-9 整数四则运算 (10 分)

      #include
      int main(){
          int m,n;
          scanf("%d %d",&m,&n);
          printf("%d + %d = %d\n",m,n,m+n);
          printf("%d - %d = %d\n",m,n,m-n);
          printf("%d * %d = %d\n",m,n,m*n);
          printf("%d / %d = %d",m,n,m/n);
          return 0;
      }
      

      练习2-10 计算分段函数[1] (10 分)

      #include
      int main(){
          float x,result;
          scanf("%f",&x);
          if(x!=0){
              result=1/x;
          }else {
              result=0;
          }
          printf("f(%.1f) = %.1f",x,result);
          return 0;
      }
      

      练习2-11 计算分段函数[2] (10 分)

      #include 
      #include 
      int main(){
      	float x, y;
      	scanf("%f", &x);
      	if(x>=0)y=sqrt(x);
      	else y=pow(x+1,2)+2*x+1/x;
      	printf("f(%.2f) = %.2f", x,y);
      	return 0;
      }
      

      练习2-12 输出华氏-摄氏温度转换表 (15 分)

      for循环版本

      #include
      int main(){
          int lower,upper,F;
          float C;
          scanf("%d %d",&lower,&upper);
          F=lower;
          if(lower
              printf("fahr celsius\n");
              C=5.0*(F*1.0-32)/9.0;
              printf("%d%6.1f",F,C);//占据6个字符宽度,靠右对齐,保留1位小数
              for(F=lower+2;F
                  C=5.0*(F*1.0-32)/9.0;
                  printf("\n%d%6.1f",F,C);//保证结尾无空行
              }
          }else printf("Invalid.");
          return 0;
      }
      
          int lower,upper,F;
          float C;
          scanf("%d %d",&lower,&upper);
          F=lower;
          if(lower
              printf("fahr celsius\n");
              C=5.0*(F*1.0-32)/9.0;
              printf("%d%6.1f",F,C);//占据6个字符宽度,靠右对齐,保留1位小数
              while((F+=2)
                  C=5.0*(F*1.0-32)/9.0;
                  printf("\n%d%6.1f",F,C);//保证结尾无空行
              }
          }else printf("Invalid.");
          return 0;
      }
      
          int lower,upper,F;
          float C;
          scanf("%d %d",&lower,&upper);
          F=lower;
          if(lower
              printf("fahr celsius\n");
              do{
                  C=5.0*(F*1.0-32)/9.0;
                  printf("%d%6.1f\n",F,C);//占据6个字符宽度,靠右对齐,保留1位小数
              }while((F+=2)
          double sum=0;
          int n,i;
          scanf("%d",&n);
          for(i=1;i
          sum=sum+1.0/i;
          }
          printf("sum = %.6f\n",sum);
          return 0;
      }
      
          double sum=0;
          int n,i;
          scanf("%d",&n);
          for(i=1;i
          sum=sum+1.0/(2*i-1);
          }
          printf("sum = %.6lf\n",sum);
          return 0;
      }
      
          double sum=0;
          int i,n,flag=1;
          scanf("%d",&n);
          for(i=1;i
              sum+=1.0/(3*i-2)*(flag);
              flag*=-1;
          }
          printf("sum = %.3lf",sum);
          return 0;
      }
      
          int i,n;
          scanf("%d",&n);
          for(i=0;i
              printf("pow(3,%d) = %.0f\n",i,pow(3,i));
          }
          return 0;
      }
      
          double fact=1;
          for(int i=1;i
              fact*=i;
          }
          return fact;
      }
      int main(){
          double result;
          double m,n;
          scanf("%lf %lf",&m,&n);
          result = fact(n)/(fact(m)*fact(n-m));
          printf("result = %.0f",result);
          return 0;
      }
      
          int a,b,c,d,sum;
          float average;
          scanf("%d %d %d %d",&a,&b,&c,&d);
          sum=a+b+c+d;
          average=sum/4.0;
          printf("Sum = %d; Average = %.1f",sum,average);
          return 0;
      }
      
          int n;
          double cost;
          scanf("%d",&n);
          if(n
              printf("Invalid Value!");
              return 0;
          }
          else if(n
          int m,n;
          double sum=0;
          scanf("%d %d",&m,&n);
          for(int i=m;i
          double i,item,sum=0;
          int n,flag=1;
          scanf("%d",&n);
          for(i=1;i
              item=flag*i/(2*i-1);
              sum+=item;
              flag*=-1;
          }
          printf("%.3f",sum);
          return 0;
      }
      
          int n,i;
          double sum=0,item;
          scanf("%d",&n);
          for(i=1;i
              item=sqrt(i);
              sum+=item;
          }
          printf("sum = %.2f",sum);
          return 0;
      }
      
          int n,sum=0,i,j=1;
          scanf("%d",&n);
          for(i=1;i
              j*=i;
              sum+=j;
          }
          printf("%d",sum);
      }
      
          int n,sign;
          scanf("%d",&n);
          if(n
          int i,N,score,count=0;
          double sum=0,average;
          scanf("%d",&N);
          if(N==0){
              printf("average = 0.0\n");
              printf("count = 0");
          }else{
              for(i=1;i
                  scanf("%d",&score);
                  sum=sum+score;
                  if(score=60)count++;
              }
              average=sum/N;
              printf("average = %.1f\n",average);
              printf("count = %d",count);
          }
              return 0;
      }
      
          int i,letter = 0, blank = 0, digit = 0, other = 0;
          char ch;
          for(i=0;i
              ch=getchar();
              if((ch='a'&&ch
          int i,j=0,year;
          scanf("%d",&year);
          if(year
              for(i=2001;i
                  if((i%4==0&&i%100!=0)||(i%400==0)){
                  printf("%d\n",i);
                  j=1;
                  }
              }
              if(j==0)printf("None");
          }
          return 0;
      }
      
          int x;
          scanf("%d",&x);
          switch(x/10){
          case 10:printf("A");break;
          case 9:printf("A"); break;
          case 8:printf("B"); break;
          case 7:printf("C"); break;
          case 6:printf("D"); break;
          default:printf("E");
          }
          return 0;
      }
      
          int i,a;
          printf("[1] apple\n[2] pear\n[3] orange\n[4] grape\n[0] exit\n"); 
          for(i=1;i 
              scanf("%d",&a);
                  if(a==0)break;
                  switch(a){
                      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");
                  }
          }
          return 0;
      }
      
          int x,y,z,t;
          scanf("%d %d %d",&x,&y,&z);
          if(xy){t=y;y=x;x=t;}
          if(xz){t=z;z=x;x=t;}
          if(yz){t=z;z=y;y=t;}
          printf("%d-%d-%d\n",x,y,z);
          return 0;
      }
      
          int v,limit;
          double exceed;
          scanf("%d %d",&v,&limit);
          exceed=(v-limit)*100.0/limit;
          if(exceed=50)printf("Exceed %.f%%. License Revoked",exceed);
          else if(exceed=10)printf("Exceed %.f%%. Ticket 200",exceed);
          else printf("OK");
          return 0;
      }
      
          double mileage;
          int time,pay;
          scanf("%lf %d",&mileage,&time);
          if(mileage
          int n,i,grade,a=0,b=0,c=0,d=0,e=0;
          scanf("%d",&n); 
          for(i=1;i
              scanf("%d",&grade);
              switch (grade/10){
                  case 10: 
                  case 9:a++;break;
                  case 8:b++;break;
                  case 7:c++;break;
                  case 6:d++;break;
                  default:e++;break;
              }
          }
          printf("%d %d %d %d %d",a,b,c,d,e);
          return 0;
      }
      
          double x1,y1,x2,y2,x3,y3,p,s;
          double j,k,l;
          scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3);
          j=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
          k=sqrt(pow(x2-x3,2)+pow(y2-y3,2));
          l=sqrt(pow(x1-x3,2)+pow(y1-y3,2));
          if(j+kl&&k+lj&&j+lk){
              p=(j+k+l)/2;
              s=sqrt(p*(p-j)*(p-k)*(p-l));//海伦公式
              printf("L = %.2lf, A = %.2lf",p*2,s);
          }
          else printf("Impossible");
          return 0;
      }
      
          double sum=0,eps,item;
          int n=1,flag=1;
          scanf("%lf",&eps);
          do{
              item=1.0/(3*n-2);
              sum+=flag*item;
              flag=-flag;
              n++;
          }while(itemeps);
          printf("sum = %f",sum);
          return 0;
      }
      
      	int random,i=1,n,input;
      	scanf("%d %d",&random,&n);
          scanf("%d",&input);
          while(i
      		if(i==1&&input==random){
      			printf("Bingo!\n");
      			break;
      		}
      		if((i==2||i==3)&&input==random){
      			printf("Lucky You!\n");
      			break;
      		}
      		if(i3&&input==random){
      			printf("Good Guess!\n");
      			break;
      		}
      		if(inputrandom)
      			printf("Too big\n");
      		if(input
          int random,n,i,a;
          scanf("%d %d",&random,&n);
          for(i=1;i
              scanf("%d",&a);
              if(aprintf("Game Over\n");break;}
              if(a==random){
                  if(i==1){printf("Bingo!");break;}
                  else if(iprintf("Lucky You!");break;}
                  else if(iprintf("Good Guess!");break;}
              }
              if(arandom)printf("Too big\n");
              if(a
          double e=1,fact=1;
          int n;
          scanf("%d",&n);
          for(int i=1;i
              fact*=i;
              e+=1/fact;
          }
          printf("%.8lf",e);
          return 0;
      }
      
          int min,n,temp;
          scanf("%d",&n);
          scanf("%d",&min);
          for(int i=1;i
              scanf("%d",&temp);
              if(temp
          int M,N,count=0,sum=0,i,j;
          scanf("%d %d",&M,&N);
          for(i=M;i
              for(j=2;j
                  count++;
                  sum+=i;
              }
          }
          printf("%d %d",count,sum);
          return 0;
      }
      
          int num,sum=0;
          do{
              scanf("%d",&num);
              if(num0&&num%2==1)sum+=num;
          }while(num0);
          printf("%d",sum);
          return 0;
      }
      
          double x,sum=1,item = 1.0,n = 1.0;
          scanf("%lf",&x);
          while(item=eps){
              item *= x/n;
              sum+=item;
              n++;
          }
          printf("%.4f",sum);
          return 0;
      }
      
      	int n,i;
      	double a=2,b=1,temp,sum=0;
      	scanf("%d", &n);
      	for(i=1;i
      		sum+=a/b;
              temp=a;
              a+=b;
              b=temp;
      	}
      	printf("%.2f",sum);
      	return 0;
      }
      
          int a,n,i,item=0,sum=0;
          scanf("%d %d",&a,&n);
          for(i=1;i
              item=item*10+a;
              sum+=item;
          }
          printf("s = %d",sum);
          return 0;
      }
      
          int count=0,i,j,k;
          double x;
          if(scanf("%lf",&x)==1);
          for(i=x/5;i=1;i--){
              for(j=(x-5*i)/2;j=1;j--){
                  for(k=x-5*i-2*j;k=1;k--){
                      if(5*i+2*j+k==x){
                          printf("fen5:%d, fen2:%d, fen1:%d, total:%d\n",i,j,k,i+j+k);
                          count++;
                      }
                  }
              }
          }
          printf("count = %d",count);
          return 0;
      }
      
      	int N, i,j,temp,remainder,Npower, sum;
      	scanf("%d", &N);
      	for (i = ipow(10, N - 1); i 
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]