C语言程序设计初学笔记

一、第一周 

在第一周的四个学时的学习中,我对计算机、程序有了初步的认识。具体的收获如下:

1、信息:概率不为1的事件

2、冯诺伊曼的三句话奠定计算机的基础:

(1)数据存储需要二进制

(2)存储程序的工作原理

 (3)计算机的五大组件:输入、存储、处理器(控制器、计算器)、输出

3、数位进制的换算:

(1)其他进制换算十进制:只需按照位权和基数展开(位数按照阶次相加即可)

 (2)十进制换算其他进制:整数:除需要转换的进制,取余数,直到整数部分为0,从下往上写;小数:乘以需要转换的进制,取整数,剩余部分的小数继续乘,转换到题目要求的位次。

   (3)二进制,八进制,十六进制为乘方关系,转换时可以按照位次进行等价替换。二进制转换八进制只需整数部分从后往前取三位合并,小数部分只需从前往后取三位合并,转换十六进制同理,只是为四位合并。

4、汇编语言,B语言(BASIC)、C语言都为面向对象的语言,是基于过程的语言,而Python是面向结果的语言,我们的老师有一个很形象的例子:要做一桌菜,C语言是从采购原料开始,买菜,切菜,炒菜,上桌;而Python更像是买回来半成品,加热后上桌。因此学会C语言,Python可以更快的学会学好,学C语言也可以更好地了解程序的运作原理,对今后我计划展开的研究(地质大数据处理)有很大的帮助。

5、课程教学演示使用的“翻译官”(即编译器)为VC++ 6.0,通过站内其他大佬的帮助,我找到了win10兼容的VC++ 6.0。老师所举的“翻译官”的例子我非常喜欢。即为了与计算机交流,我们可以利用”编译器“这个翻译官来和计算机交流。

6、C语言程序设计的核心语句:算法是程序的灵魂。我们要成为一名算法师而不是程序员。

希望我能在下一周的学习中收获更多有用的知识。

二、第二周

在周一的两个学时中,我学习了三个简单的C语言程序,老师对于代码的拆解与讲解十分细致,讲解顺序也是以一名初学者为例,通过在写程序的过程中解决一个个error,最后得到能够完美运行的程序。但这篇博客以总结为主,因此我想按照我的理解来对今天的程序进行归纳总结,而不是复刻老师的讲课的过程和PPT。

1、任何一个C语言有且只有一个“main”,即主函数。由于翻译的问题,个人认为这里的“function”应当翻译为主要功能。

       要动用像是"printf"、“system”、“scanf”这样C语言自带功能的主函数,需要在头文件进行编译预处理,如:

           #include<stdio.h>      //编译预处理,即让这个程序包含“standard input&output”这个库,否则就会出现error 2065:undeclared indentifier 即未声明标识符。

2、“Hello world”程序解析拆解

#include <stdio.h>   

#include<stdlib.h>                                  //编译预处理,包含这个库

int main()                                          //int为整数的意思定义主函数,括号中可放东西,操作对象

{                                                          //开始程序执行

system("color F4");                        //CMD窗口的颜色

printf("hello world"\n);                     //主函数的内容

system("pause");        //注意:这里的这个CMD暂停程序需要写在return 0之前,否则没有效果

return 0;                     //目的是为了防止随机数(垃圾数)的出现,导致程序崩溃,使程序更加规范

}                                 //函数结束

作业1:通过C语言画一面迎风飘扬的红旗

3、C语言程序需要注意的三件事情:

  • 1、英文输入法小写!
  • 2、main()括号!
  • 3、写完一个句子要加;

4、第二个程序:求两个整数之和

#include<stdio.h>                               

#include<stdlib.h> 

int main()

{

printf("请输入两个数,空格间隔.\n");

 int a,b,sum;                                         //声明部分,命名三个抽屉为 a,b,c

 scanf("%d%d",&a,&b);                       //输入变量的函数,&的意义是取地址,printf一定不要取地址

 sum=a+b;                                           //真正的运算

 printf("sum = %d\n",sum);                  //%d是格式控制符,表示为十进制格式,\n是换行

 system("pause");                                //使结果能够停留在屏幕上面

 return 0;                    /*返回函数值,有同学在这个位置出现了问题,个人理解 return值不应该影                                             响 输出结果,因为输出结果早在之前的printf中就已经输出了结果
                                            这个return返回的是主函数的(?)值   ,有待商榷*/               
                                   

作业二:做一个可以四则运算的计算器,可以同时输出加减乘除的数值

5、第三个程序:比较大小,让计算机自己做决定的程序

# include<stdio.h>
# include<stdlib.h>
int main()                                                                    //定义主函数,即为主要的算法
{
 printf("请输入两个数,逗号隔开\n");                         //提示符
int max(int x,int y);                                                     //声明要调用该函数,max函数之后会定义
int a,b,c;                                                                    //定义变量a,b,c
scanf("%d,%d",&a,&b);                                             //输入函数,调用库里面的
c=max(a,b);                                                               //根据函数计算
printf("max=%d\n",c);                                                //输出结果
system("pause");                                                       //暂停能够看到
return 0;                                                                     //主函数值归零
}
 

int max(int x,int y)                                                     //max函数定义

int z;                                                                          //max函数声明部分
if(x>y)z=x;                                                                
else z=y;
return(z);
}

这个程序由两部分组成,第一部分是主函数,即我们使用的函数,第二部分为定义的max函数,因为max函数在库里面没有,需要自己定义。在编写这段程序时,发生了两个啼笑皆非的错误,放在这里供大家欣赏:

  •  在执行程序时,发现”数字 空格  数字“始终输出的是前面的数字,后面复盘时发现,我们在输入函数(scanf)中的格式为:%d,%d,所以是逗号隔开的而不是空格隔开,空格隔开后应当默认是第一个数字,逗号,0了,所以输出的值始终是第一个数字。
  • 之后我调试结束后,发现不报错,但是执行程序后输出值是一串数字,之后发现我竟然没有在主函数部分把”c=max(a,b)写上去,推测这样输出的值应当是c的地址

其他诸如忘记写分号,单词拼写错误(stdio,stdlib拼写成studio等等),中英文输入法等低级错误不必赘述,希望大家共勉,不要犯低级错误。(T-T)orz

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值