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

此篇博客意义为总结pta上浙大版《C语言程序设计(第3版)》题目集所做题目的错误点,心得体会。

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

题目截图

本题目要求计算下列分段函数f(x)的值:

公式

输入格式:

输入在一行中给出实数x。

输出格式:

在一行中按“f(x) = result”的格式输出,其中x与result都保留一位小数。

输入样例1:

10

输出样例1:

f(10.0) = 0.1

输入样例2:

0

输出样例2:

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

错误点:

  • (X=0)中少了一个'='号
  • printf语句中,输出的格式控制字符为%.1f,意思是指定输出时保留一位小数,详见课本P25页
  • pta作业上面对输出内容空格的要求

**2.练习2-12 输出华氏-摄氏温度转换表 **

输入2个正整数lower和upper(lower≤upper≤100),请输出一张取值范围为[lower,upper]、且每次增加2华氏度的华氏-摄氏温度转换表。

温度转换的计算公式:C=5×(F−32)/9,其中:C表示摄氏温度,F表示华氏温度。

输入格式:
在一行中输入2个整数,分别表示lower和upper的值,中间用空格分开。
输出格式:
第一行输出:"fahr celsius"

接着每行输出一个华氏温度fahr(整型)与一个摄氏温度celsius(占据6个字符宽度,靠右对齐,保留1位小数)。

若输入的范围不合法,则输出"Invalid."。

输入样例1:
32 35
输出样例1:
fahr celsius
32 0.0
34 1.1
输入样例2:
40 30
输出样例2:
Invalid.

错误代码

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

心得:一开始不知道怎么做测试,调试程序

3.练习2-18 求组合数

本题要求编写程序,根据公式 算出从n个不同元素中取出m个元素(m≤n)的组合数。建议定义和调用函数fact(n)计算n!,其中n的类型是int,函数类型是double。

输入格式:
输入在一行中给出两个正整数m和n(m≤n),以空格分隔。
输出格式:
按照格式“result = 组合数计算结果”输出。题目保证结果在double类型范围内。
输入样例:
2 7
输出样例:
result = 21
#include <stdio.h>

double fact(int n) {
int i;
double result = 1.0; if (n == 0) {
return 1.0;
}
for (i = 2; i <= n; i++) {
result *= i;
} return result;
} int main(void) {
int m, n;
double result; scanf("%d %d", &m, &n);
result = fact(n) / (fact(m)*fact(n - m));
printf("result = %.0f\n", result); return 0;
}

疑难点:对定义函数不熟悉,一开始做的时候会想起用for循环控制运算逻辑,但是后来写的时候发现用for循环太长了

总结:怎么定义函数?

4.习题2-1 求整数均值

dev上面做测试,调试完全没有错误,但是在pta提交却出现了编译错误……且测试了多组数据,我想原因应该在double(Sum)上面



更正:将第8行改为Average=1.0*Sum/4;pta应该识别不了double(sum)这种格式的输入。

**5.习题2-5 求平方根序列前N项和 **

在这道题目中,我把定义i放在了for循环类,即i首次出现的位置,给予i定义整形变量,这样是不是减少一个开辟空间,还是没有,哈哈。

**6.练习3-3 统计学生平均成绩与及格人数 **

#include <stdio.h>
int main()
{
int N,i,defen;
int sum=0,count=0;
double average;
scanf("%d\n",&N);
if(N>0)//注意检测人数,题干中要求非负数
{
for(i=0;i<N;i++)//通过for循环来控制循环输入,i<N控制循环次数
{
scanf("%d",&defen);//一次输入一个数,进行下一逻辑运算
if(defen>=60)
count++;
sum+=defen;
}
average=1.0*sum/N;
}
printf("average = %.1f\n",average);
printf("count = %d",count); return 0;
}

巧妙处:

    for(i=0;i<N;i++)
{
scanf("%d",&defen);

知识点:逐个输入,输入数字控制了数入个数。


巧妙处:

 for(i=0;i<N;i++)
{
scanf();
if()

知识点:对逐个输入的数据进行判断;对符合赛选条件的元素,进行逻辑运算。


浙大版《C语言程序设计(第3版)》题目集 --总结的更多相关文章

  1. 简易版C语言程序设计语法

    源程序 → 外部声明 | 子程序(外部声明) 外部声明   → 函数定义| 函数声明 函数定义 → 类型标识符(复合句) 标识符类型 → 无类型 | 字符型 | 整型 | 浮点型 整型→ 长整型 | ...

  2. 武汉科技大学ACM:1009: 华科版C语言程序设计教程(第二版)习题5.12

    Problem Description 这天老师照例给小豪出了一道题目:老师给小豪一个字符串,让小豪将该字符串逆序输出. Input 第一行包括一个T,表示有多少组测试数据: 接下来T行,每行包括一个 ...

  3. 武汉科技大学ACM:1006: 华科版C语言程序设计教程(第二版)例题4.17

    Problem Description 输入一个整数,求它的素数因子.并按照格式输出. Input 一个整数n.(2<=n<=100) Output n=a*b*c*... (a,b,c为 ...

  4. 武汉科技大学ACM:1005: 华科版C语言程序设计教程(第二版)例题5.8

    Problem Description 老师给小豪出了一道题目:给你两个整数x和n(-10<=x<=10,1<=n<=10),让你求出x^1+x^2+x^3+……+x^n的结果 ...

  5. 武汉科技大学ACM:1004: 华科版C语言程序设计教程(第二版)习题5.6

    Problem Description 这天老师又给小豪出了一道题目:给你三根长度分别为a,b,c的火柴,让你计算这三跟火柴能组成的三角形的面积. Input 输入每行包括三个数a,b,c. Outp ...

  6. 武汉科技大学ACM:1003: 华科版C语言程序设计教程(第二版)例题6.6.改编

    Problem Description 小明明最喜欢学英语了,英语课从来不翘课,但是英语却一直没学好,因为上课一直在睡觉.为什么会睡觉呢,因为他觉得英文单词太长了.现在小明明有一个很长很长很长的单词, ...

  7. 武汉科技大学ACM:1002: 华科版C语言程序设计教程(第二版)例题6.6

    Problem Description 明天就要英语考试了,小明明正在挑灯夜 战背单词.小明明发现单词很难背,背一个忘一个.经过仔细研究,小明明发现单词难背的原因是因为某个字符的出现,破坏了整个单词的 ...

  8. 武汉科技大学ACM:1001: 华科版C语言程序设计教程(第二版)习题6.7

    Problem Description 输出杨辉三角前n行. Input 输入一个数n(n <= 9) Output 输出杨辉三角前n行.(注意行末不能有多余的空格,数字以%3d的格式输出) S ...

  9. 武汉科技大学ACM :1009: 华科版C语言程序设计教程(第二版)习题6.11

    Problem Description n个人围成一圈,依次从1至n编号.从编号为1的人开始1至k报数,凡报数为k的人退出圈子,输出最后留下的一个人原来的编号. Input 首先输入一个t,表示有t组 ...

  10. 武汉科技大学ACM :1008: 华科版C语言程序设计教程(第二版)习题6.14

    Problem Description 输入一个八进制的字符串,将它转换成等价的十进制字符串,用pringf的%s格式输出. Input 首先输入一个正整数t,表示有t组测试数据(1<= t & ...

随机推荐

  1. mysql报错com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException

    一.问题 运行java代码时报如下的错误: You have an error in your SQL syntax;Cause:com.mysql.jdbc.exceptions.jdbc4.MyS ...

  2. Ajax异步后台加载Html绑定不上事件

    因项目需要,需要实时从后台动态加载html,开发过程中,遇到事件绑定不上,后来百度一番,大概意思:ajax是异步加载的,页面一开始绑定事件的时候,后台数据还没有传过来,就绑定事件,这个时候找不到这个d ...

  3. mssql SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法

    解决方法: 工具-〉选项-〉左侧有个 设计器-〉表设计器和数据库设计器 -> 阻止保存要求重新创建表的更改(右侧) 把钩去掉即可.

  4. jQuery 的58种事件方法你都用过了吗

    jQuery 事件方法 事件方法触发或将函数附加到所选元素的事件处理程序. 下表列出了用于处理事件的所有jQuery方法. 方法 描述 bind() 在3.0版中已弃用. 请改用on()方法.将事件处 ...

  5. 【转载】Visual Studio中WinForm窗体程序如何切换.NET Framework版本

    在C#语言的WinForm窗体程序中,有时候我们需要切换WinForm窗体程序项目的.NET Framework版本号,例如从.NET Framework 4.5版本切换到.NET Framework ...

  6. Java中的参数验证(非Spring版)

    1. Java中的参数验证(非Spring版) 1.1. 前言 为什么我总遇到这种非正常问题,我们知道很多时候我们的参数校验都是放在controller层的传入参数进行校验,我们常用的校验方式就是引入 ...

  7. Docker 清理日志

    docker 长时间运行后,日志文件会逐渐变大可以使用下面命令进行清除 #!/bin/bash echo "==================== start clean docker c ...

  8. 初识V4l2(二)-------浅析video_register_device

    在V4l2初识(一)中,我们已经知道当插上一个摄像头的时候,在uvc_driver.c中最终会调用函数video_register_device函数.接下来我们就简要分析这个函数做了哪些事情,揭开其神 ...

  9. Maven 依赖范围 scope 属性详解

    依赖范围就是用来控制依赖与三种 classpath(编译 classpath.测试 classpath.运行 classpath)的关系. 依赖范围(scope) 对于编译 classpath 有效 ...

  10. MySQL拓展 视图,触发器,事务,存储过程,内置函数,流程控制,索引,慢查询优化,数据库三大设计范式

    视图: 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图 create view tea ...