浙大版《C语言程序设计(第3版)》题目集 --总结
浙大版《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版)》题目集 --总结的更多相关文章
- 简易版C语言程序设计语法
源程序 → 外部声明 | 子程序(外部声明) 外部声明 → 函数定义| 函数声明 函数定义 → 类型标识符(复合句) 标识符类型 → 无类型 | 字符型 | 整型 | 浮点型 整型→ 长整型 | ...
- 武汉科技大学ACM:1009: 华科版C语言程序设计教程(第二版)习题5.12
Problem Description 这天老师照例给小豪出了一道题目:老师给小豪一个字符串,让小豪将该字符串逆序输出. Input 第一行包括一个T,表示有多少组测试数据: 接下来T行,每行包括一个 ...
- 武汉科技大学ACM:1006: 华科版C语言程序设计教程(第二版)例题4.17
Problem Description 输入一个整数,求它的素数因子.并按照格式输出. Input 一个整数n.(2<=n<=100) Output n=a*b*c*... (a,b,c为 ...
- 武汉科技大学ACM:1005: 华科版C语言程序设计教程(第二版)例题5.8
Problem Description 老师给小豪出了一道题目:给你两个整数x和n(-10<=x<=10,1<=n<=10),让你求出x^1+x^2+x^3+……+x^n的结果 ...
- 武汉科技大学ACM:1004: 华科版C语言程序设计教程(第二版)习题5.6
Problem Description 这天老师又给小豪出了一道题目:给你三根长度分别为a,b,c的火柴,让你计算这三跟火柴能组成的三角形的面积. Input 输入每行包括三个数a,b,c. Outp ...
- 武汉科技大学ACM:1003: 华科版C语言程序设计教程(第二版)例题6.6.改编
Problem Description 小明明最喜欢学英语了,英语课从来不翘课,但是英语却一直没学好,因为上课一直在睡觉.为什么会睡觉呢,因为他觉得英文单词太长了.现在小明明有一个很长很长很长的单词, ...
- 武汉科技大学ACM:1002: 华科版C语言程序设计教程(第二版)例题6.6
Problem Description 明天就要英语考试了,小明明正在挑灯夜 战背单词.小明明发现单词很难背,背一个忘一个.经过仔细研究,小明明发现单词难背的原因是因为某个字符的出现,破坏了整个单词的 ...
- 武汉科技大学ACM:1001: 华科版C语言程序设计教程(第二版)习题6.7
Problem Description 输出杨辉三角前n行. Input 输入一个数n(n <= 9) Output 输出杨辉三角前n行.(注意行末不能有多余的空格,数字以%3d的格式输出) S ...
- 武汉科技大学ACM :1009: 华科版C语言程序设计教程(第二版)习题6.11
Problem Description n个人围成一圈,依次从1至n编号.从编号为1的人开始1至k报数,凡报数为k的人退出圈子,输出最后留下的一个人原来的编号. Input 首先输入一个t,表示有t组 ...
- 武汉科技大学ACM :1008: 华科版C语言程序设计教程(第二版)习题6.14
Problem Description 输入一个八进制的字符串,将它转换成等价的十进制字符串,用pringf的%s格式输出. Input 首先输入一个正整数t,表示有t组测试数据(1<= t & ...
随机推荐
- centos7安装jdk1.7(rpm版)
一.环境 centos7 jdk-7u80-linux-x64.rpm下载:链接:https://pan.baidu.com/s/10UMrxNE1d2ZbDt7kvBM1yQ 提取码:pmov ...
- English--美式发音
English|美式发音 本文,总结了自己在学习美音的一些感悟,希望大家学习愉快!enjoy~ 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我感情色彩 ...
- 谁在使用GPU?
nvidia-smi命令可以查看GPU使用情况,但是只能看到占用每个GPU的进程ID.根据进程ID可以得到进程详情,进程详情中包括用户ID,根据用户ID可以获取用户名称,从而知道哪个用户在使用GPU. ...
- python网络编程-1
1.网络基础 回顾计算IP所处网段方式 #128 64 32 16 8 4 2 1 #IP1 = 192.168.9.1/24 # 11000000 10101000 00001001 0000000 ...
- 物联网通信 - RESTDemo示例程序(Java版本)
源码下载 -> 提取码 QQ:505645074 Netty的Restful API实现 Get: http://127.0.0.1:8662/test Post http://127.0. ...
- flask uwsgi和nginx配置信息
1. 安装 pip3 install uwsgi 2. uwsgi配置信息 创建一个uwsgi.ini文件 [uwsgi] socket=/opt/script/uwsgi.sock #启动程序时所使 ...
- 数据库-mysql01 简单介绍以及安装部署
本次mysql数据库安装采用二进制安装(免安装即绿色版),数据库版本是mysql5.7.26 首先下载mysql安装包,然后上传服务器里,最后解压. 卸载centos7自带的数据库软件包: [root ...
- python cookie登录DVWA,phpstudy搭建DVWA参考https://www.jianshu.com/p/97d874548300
import requestsheader={"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleW ...
- 201871010105-曹玉中《面向对象程序设计(java)》第七周学习总结
201871010105-曹玉中<面向对象程序设计(java)>第七周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这 ...
- sed与grep练习题
第1章 练习题 第1题 取得/etc/hosts 文件的权限 如何取得/etc/hosts 文件的权限对应的数字内容,如-rw-r--r-- 为 644,要求使用命令取得644 这样的数字. 方法一 ...