[学习总结]C-翁恺老师-入门-总 1-首先按视频说的下载编辑器 <DevC++> 并一路默认设置: 安装包下载链接 (我有vc6.0不过预感告诉我老师要用类似CS50里那种命令行编辑器?然而好像并不....) 注:安装语言为英文,运行语言选简体中文 2-第一个helloworld程序: 文件--新建--源代码--写代码--编译运行--错误分析 3-做点计算 END…
[学习总结]C-翁恺老师-入门-总 1-阶乘:引入for循环 2-控制循环次数:初始化与控制条件的设置 任何一个for循环都可以写成一个while循环 for中的每一个表达式都是可以省略的:for(;条件;) == while(条件) 有固定次数用for,必须执行一次用do-while,其他用while…
[学习总结]C-翁恺老师-入门-总 1-求一个整数的位数:引入循环while 注:循环体内要有改变循环的机会,要不然就死循环了啊! 注:手写推测程序是否正确. 注:测试程序-边界:个位数.10.0.负数等.或者插入print来显示一定变量的值 2-求整数位数升级版:引入循环do-while 无论条件,先做一次循环体内的语句,可以解决以上的0是一位数的问题. 注意:do-while的while之后有分号 3-log2x,倒计时:计算log2x的值,讨论循环条件的控制:倒计时,讨论循环执行的次数,以…
2019-1-2 翁恺老师C入门视频-启程 代码详见GitHub: 目录 第0周:程序设计与C语言 第1周:计算 第2周:判断 第3周:循环 第4周:循环控制 第5周:数据类型 第6周:函数 第7周:数组 第8周:指针与字符串 第0周:程序设计与C语言 [学习总结]C-翁恺老师-入门-第0周 第1周:计算 第2周:判断 第3周:循环 [学习总结]C-翁恺老师-入门-第3周 第4周:循环控制 [学习总结]C-翁恺老师-入门-第4周 第5周:数据类型 第6周:函数 第7周:数组 第8周:指针与字符串…
知识点1:众多编程语言,为何选择C? 现在我们的同学喜欢java,也参加很多java的培训班,java是比较热门,但是C语言在工业界依然有重要的地位,在很多领域无可替代,几乎所有和硬件打交道的地方都得要用C语言,比如再工业界大量实用的linux操作系统,几乎都是C语言编写的. 至于编程语言的热度,参考TIOBE编程语言排行榜http://www.tiobe.com/tiobe-index// 的三张图:   2017年2月份最新数据,C语言第二.每个月都会有新的数据出来. 2002年到现在15年…
1 时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果小时小于10,则没有千位部分:如果小时是0,则没有百位部分:如果小时不是0而分小于10分,需要保留十位上的0:如果小时是0而分小于10分的,则不需要保留十位上的0.如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分. 有效的输入范围是0到2359,即你的程序不可能从…
1 素数和(5分) 题目内容: 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推. 现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数. 输入格式: 两个整数,第一个表示n,第二个表示m. 输出格式: 一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数. 输入样例: 2 4 输出样例: 15 时间限制:500ms内存限制:32000kb   个人解答(OJ已验…
1 奇偶个数(5分) 题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据.程序输出读到的数据中的奇数和偶数的个数. 输入格式: 一系列正整数,整数的范围是(0,100000).如果输入-1则表示输入结束. 输出格式: 两个整数,第一个整数表示读入数据中的奇数的个数,第二个整数表示读入数据中的偶数的个数.两个整数之间以空格分隔. 输入样例: 9 3 4 2 5 7 -1 输出样例: 4 2 时间限制:500ms内存限制:32000kb     个人解答(OJ已…
1 逆序的三位数(5分) 题目内容: 逆序的三位数: 程序每次读入一个正三位数,然后输出逆序的数字.注意,当输入的数字含有结尾的0时,输出不应带有前导的0.比如输入700,输出应该是7. 提示:用%10可以得到个位数,用/100可以得到百位数....将这样得到的三个数字合起来:百位*100+十位*10+个位,就得到了结果. 注意:除了题目要求的输出,不能输出任何其他内容,比如输入时的提示,输出时的说明等等都不能.这道题目要求输出逆序的数字,程序就只能输出这个数字,除此之外任何内容都不能输出. 输…
1 输出“Hello World”(5分) 题目内容: 请输出一行,内容为 Hello World 请注意大小写. 由于这一周只是简单地介绍了C程序的基本框架,还不能做很多事情,甚至还不能做数据的输入,所以这一周的题目也非常简单. 第二周会仔细介绍如何在中M和拼题A做题,如果你一时无法搞定如何提交这周的作业,没关系,可以先在在线编程环境或IDE中做好程序,下周学过之后再来提交作业.我们所有的作业的截止时间都是到2018年12月31号晚上.所以,你可以慢慢来,一点点能跟上来就可以了.   输入格式…
问题1:计算机遍布生活的各个方面,若你需要一个功能可以下载APP,我们需要的大部分功能都可以找到对应的APP,如果没有可以自己写一个软件,但是很少人需要这么做,那么我们为什么学习计算机编程语言? 学习语言重要的不是写软件而是1)通过学习语言去理解计算机是如何工作的?2)计算机擅长做什么?能够做什么?擅长做什么?不能够做什么? 问题2:计算机是如何解决问题的? 比如你在餐馆,想要一杯水.那么如果你跟一个服务员交流,只需要告诉服务员:"请给我一杯水",那么服务员知道怎么打一杯水给你,他会去…
关于C语言如何做文件和底层操作: 文件操作,从根本上说,和C语言无关.这部分的内容,是教你如何使用C语言的标准库所提供的一系列函数来操作文件,最基本的最原始的文件操作.你需要理解,我们在这部分所学习的,是函数库的使用,而非C语言.顺便我们还学习了很多和计算机相关的知识,比如重定向.文本文件和二进制文件的江湖恩怨.但是既然不是C语言,也就意味着你将来的工业环境下,未必还会使用这么原始的文件操作函数了.这些函数,只是一个标本,让你知道可以这样来操纵文件.但是,不见得所有的库都是以这样的方式来操纵文件…
指针应用场景一:交换两个变量的值 在学习函数时,交换两个数的值,做一个swap函数,传递值进去,也可以将两个值交换过来,没问题,可是离开swap就没有用了,为什么?因为传进去的是两个值. #include <stdio.h> void swap(int a,int b); int main(void) { ; ; swap(i,j); printf("i=%d,j=%d\n",i,j); ; } void swap(int a,int b){ int p; p=a; a=b…
在上一个blog学习了&运算符,使用&取了变量.数组等地址,有什么用那?如果能够将取得的变量的地址传递给函数,能否通过这个地址在函数内访问到外部这个变量?答案是肯定的,scanf("%d",&i)就是一个C语言的函数,另外我们试了,将地址交给一个整数,这个事情不靠谱,因为整数和地址不见得总是类型一致,那么什么样的类型可以接收取地址得到的地址那?指针! 指针的定义 指针类型的变量就是保存地址的变量,就是保存&运算符取得的其他变量的地址的一个变量:有int…
<>重定向 如果使用标准的printf输出,有一个比较简便的方法,可以将程序的结果写入一个文件.使用<和>符号,将程序运行结果重定向到文件中去,具体使用到的代码如下: ./test > 12.out //将运行结果写入文件12.out more 12.out //查看 cat > 12.in //将终端内容输入12.in ./test < 12.in //运行test,输入为文件12.in ./test < 12.in > 12.out //输入为文件…
typedef 虽然我们知道使用struct这个关键字定义一个结构类型,然后可以使用该结构类型定义变量.但是每次要使用的时候都需要带着struct这个关键字,那么如何摆脱这个关键字哪?C语言提供了一个叫做typedef的功能来声明一个已有的数据类型的新名字,typedef也是个关键字,比如: typedef int Length; 意思是Length是int类型的别名,可以代表int.在程序的变量定义或者参数声明时,如果出现Lenght就是表示int: Length a,b,len; Lengt…
结构数组: 和C语言中的int,double一样,一旦我们做出一个结构类型,就可以定义这个结构类型的变量,也可以定义这个结构类型的数组.比如下面这个例子: struct date dates[100]; struct date dates[] = {{4,5,2005},{2,4,2005}}; dates[100]是一个结构数组,其中每个元素是date结构的变量.对dates初始化的时候就需要两层括号,外层大括号是说初始化dates这个数组,里面的每个大括号都是一个数组元素,比如{4,5,20…
结构作为函数参数: 声明了一个结构就有了一种自定义的数据类型,这个数据类型和int.float.double一样,int等基本类型可以作为函数的参数,那么这种个自定义的结构类型也应该可以作为函数参数,比如: int numberofDays(struct date d):函数numberofDays的参数就是一种结构变量. 整个结构是可以作为参数的值传入函数的,这时是在函数内新建一个结构变量,并复制调用者的结构的值,这和数组是完全不一样的.结构除了可以作为参数,也可以作为返回值,例如下述程序中,…
定义结构: 在程序里,如果想要表达一个数据就需要一个变量,而每个变量又都需要一个类型,之前学过C语言中有int.double.float.char等这些基础类型,还有指针.数组等.如果你要表达的数据比较复杂,不是一个值,比如你要表达日期,有年月日三个值,要表达时间,有时分秒三个值,要表达一个人可能需要姓名.学号等一堆数据,但是又想要一个整体表达这么多数据,这时就需要C语言中一种特殊的东西,叫做结构! 一个结构就是一个复合的数据类型,里面有各种数据类型的成员,然后用一个变量来表达那么多的数据.比如…
枚举类型的定义 用符号而不是具体的数字来表示程序中的数字,这么表示的好处是可读性,当别人看你的程序,看到的是单词,很容易理解这些数字背后的含义,那么用什么符号来表示名字哪?需要const int常量的整数,不可修改的整型的变量.大家看下面的程序,0,1,2使用red,yellow,green代替,那么程序中就使用red,yellow,green而不是0,1,2: #include <stdio.h> ; ; ; int main(int argc,char const *argv[]){ ;…
字符串的赋值 字符串的输入与输出 对C语言的基础类型,比如int.double等类型,scanf.printf有专门的格式转换,而对字符串,scanf.printf使用%s格式字符进行输入与输出.当使用scanf进行读一个字符串的时候,读到什么东西,读到什么位置为止是很微妙的,试一下: #include <stdio.h> int main(void){ ]; scanf("%s",word); printf("%s##\n",word); ; } 程序…
C语言中字符串的定义 如果定义一个字符数组word,并使用大括号对其初始化,如下图所示: 但是这个不是C语言的字符串,只是字符数组,不是字符串,因为不能使用字符串的方式进行计算.那么C语言的字符串长什么样呢?如下图所示: 那么上述两个定义有何区别呢?区别就是C语言字符数组初始化时的最后一个字符加入了一个特殊的东西,就是'\0',这个符号的意思就是整数0,这里去掉单引号和斜杠,只放0也是可以的.这个字符数组总共有7个元素,最后的这个0使得这个数组就是C语言的字符串,那么这个字符串就可以使用c语言字…
指针值加1就是将指针值加上sizeof(指针所指变量的类型) 1+1=2,那么指针加1是加上了1这个数字吗?试一下,在代码中定义了char数组,char也是整数,数组名是ac,ac中有10个元素,0-9,然后做了一个char *p=ac,定义了*p的一个指针,p指向了ac数组的第一个单元.然后分别输出p和p+1的值,结果是差了1: #include <stdio.h> int main(void){ ,,,,,,,,,}; char *p = ac; printf("p =%p\n&…
如果我们通过函数的参数将一个数组传递到参数中去,那么在函数里接收到的是什么东西呢?我们知道如果传递一个普通变量,那么参数接收到的是值,如果传递一个指针变量,参数接收到的也是值,只不过这时的值是地址.那么数组是什么?将数组作为值传给一个函数,在函数的参数里有一个数组变量来接收这个数组,看下到底接收到数组变量的什么东西呢?以minmax作为例子来测试下: 在minmax函数中能不能计算出数组a的个数?在minmax和main中分别添加printf函数,从结果可以看出,在main里a的大小是68,而在…
使用devC++写hello world 第一步:文件-新建-源代码.然后输入"输出hello world"程序: 注意:写程序时关闭中文输入法,否则语句输入的分号可能会被识别为错误.除了printf外,剩余的代码叫做程序框架,是我们后面所有的程序都需要的. 第二步:保存时注意修改保存类型,devc++默认是C++文件,需要修改为C. 第三步:类似魔方的小方块的编译,运行或者编译+运行:或者运行菜单项下的运行.编译:或者F9快捷键.运行时会弹出小黑框,这是程序运行看结果的地方,这个小黑…
由于看这个慕课的时候已经结课了,没有办法提交查看代码是否正确...先保存一下,以后再提交改错 欢迎批评指正! 题目链接:https://www.icourse163.org/learn/ZJU-1001542001#/learn/ojhw?id=1004600071 题目详情: 题目内容: 设计一个表示分数的类Fraction.这个类用两个int类型的变量分别表示分子和分母. 这个类的构造函数是: Fraction(int a, int b) 构造一个a/b的分数. 这个类要提供以下的功能: d…
使用switch-case语句的练习 import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int i; int j; int k; i = in.nextInt(); j = i/10; k = i%10; switch (k) {…
import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int i; i = in.nextInt(); if(i>2359) { i = in.nextInt(); } if(i>=1000||i>=800&&i…
import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub int f; int c; Scanner in = new Scanner(System.in); f = in.nextInt(); c = (f-) * /; System.out.println((int)c); } }…
1.时间换算(5分) 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果小时小于10,则没有千位部分:如果小时是0,则没有百位部分:如果分小于10分,需要保留十位上的0.如1124表示11点24分,而905表示9点5分,36表示0点36分,7表示0点7分. 有效的输入范围是0到2359,即你的程序不可能从测试服务器读到0到2359以外的输入数据. 你的程序要输出这个时间…