我的第一篇博客

| 这个作业属于哪个班级 | C语言--网络2011/2012 |
| ---- | ---- | ---- |
| 这个作业的地址 | C博客作业00--我的第一篇博客 |
| 这个作业的目标 | 学习Makdown语法,对本专业及C语言课程有个简单了解,记录自学慕课视频的笔记。教师可以对学生有个初步的认识。 |

1.我对网络专业或计算机专业的了解

  1. 网络工程是属于计算机类的一门学科,在计算机网络技术及应用得到大力发展的背景下,催生了此专业,从专业定名、培养目标和专业课程设置都直接反映出是面向网络工程建设的专业。
  2. 网络工程专业旨在培养掌握计算机技术及网络工程基本理论与方法的工程技术人才,主要是针对以“网络工程建设”为培养目标的的大学的专业设置,学成可在各种信息产业及部门从事设计开发等,也由此也成了目前热度较高的专业之一。
  3. 以上是我在网上查询资料后得知的内容,在此之前,就很简单的认为计算机类的专业就是学学代码啊什么的,提到计算机学科,脑海中浮现的就是那些
    坐在电脑前让手指在键盘上不停飞舞的码农。带着对计算机的好奇心,懵懵懂懂的我填报了网络工程专业,可我一时间甚至不知道网络工程究竟是个什么样的专业,在网上一番搜寻后,我才恍然大悟,原来计算机类的专业也分门别类,各有各的特色,在计算机这三个字的背后,是一个更加广袤、更为精彩的世界。我所在的专业是网络工程,听学姐说,网络工程分网络运维、网络安全、网络攻防等等,自然我听的是一头雾水,不知所云。但,这就是我以后要学习的东西,我会去了解更多的有关计算机,有关网络工程的知识和背景,让自己更快的适应这个新的学习旅途,我想在计算机的世界里尽情奔跑,并期盼着拨开云雾见月明的那天。

2.我对C语言的理解

c语言,讲真的是我在知道自己被网络工程录取后才知道还有这么一种语言,c语言,当这个词汇首次进入我的脑海中,哦,它是一种语言,C,为什么叫C呢?带着满满的好奇,我去查询了资料,在它之前又追溯到B语言,又有BCPL语言,​虽然不清楚B和BCPL是什么,但我明白了c是一种编程语言。
犹记得在慕课学习第一章时,抑制不住内心的激动甚至有点冲动的我先去打开了题集,里面有这么一道题,问:编程语言是和计算机交谈的语言,我秒选了✓,后来才明白过来,原来c语言是一种教计算机做事的语言。嗯,我在教它做事,明白了。随着学习的深入,我了解到c语言有它的基本语法,这一点和我们常用的语言一样,C语言有它独特的句式、语段结构、专属用词。到这里,一下子激起了我对c语言的兴趣,在这种强烈的兴趣的推动下,我迫不及待的进一步学习c语言,可慢慢的,我发现,这东西并不是个软柿子,真的不好拿捏,从函数开始以后的部分,让我是真的有种雾里看花的感觉,即便如此,这云里雾里的感觉却更加激发了我的好奇心,驱动着我去一探究竟。

3.我希望在这个专业学到的东西和我的大学安排

  1. 首先呢,c语言作为一种教计算机做事的语言,我肯定先要精通这门语言,先从它的语法开始,同时学习并掌握牢靠它的一些基础知识像c语言的命名、变量及赋值、基本数据类型、格式化输出语句、强制类型转换、常量、自动类型转换等等等等。从已经学过的同学那里了解到,函数、数组、结构体、指针、链表这几个地方学起来较困难,我就想先把前面的基础打牢,这样才能对付后面的这些拦路虎。在学过这些东西后,我希望我得到的不仅仅是知识,更是在自己原有的基础上,让自己的逻辑思维能力有明显提升,让自己的动手实践能力有质的飞跃。
  2. 进入大学后,相比在高中的学习,学习会更加系统化,也更加自主了,除了在课堂的学习,每天的自习时间也变多。我初步决定:
    • 每周坚持在图书馆学习10-15小时,阅读计算机编程的有关书籍,并在阅读完之后整理笔记,总结心得,构成系统的知识网络框架。
    • 在宿舍我会根据自己的短板在慕课进行补课,并在pta进行刷题。
    • 随着时间的推移,我会了解更深入的内容,因此我会以每周课程安排为参考,适当增加泡图书馆的时间一至两个小时,并坚持记录笔记,心得。
  3. 我一直坚信有了强健的体魄,健康的心理,才能有好的学习成效,因此我会合理的安排学习、休息、娱乐的时间:
    • 晚上正常11点半睡觉,可以熬夜,但拒绝通宵打游戏刷剧,早上正常早起;
    • 保证课堂上保持良好的精神状态,杜绝翘课;
    • 学校举办的活动,我会积极参与其中。

4.我目前自学的内容

4.1分支结构

(1)语法

  • if结构
if(条件表达式){
      语句块;
}
  • if-else结构
if(条件表达式){
      语句块1;
} else {
      语句块2;
}

  • if-else嵌套结构
if(条件表达式1){
      语句块1;
}else if(条件表达式2){
      语句块2;
}else if(条件表达式3){
      语句块3;
}else if(......){
  ......;
}else{
      语句块n;
}
  • switch-case结构
switch(表达式)
   {
      case 常量表达式1:语句1;break;
      case 常量表达式2:语句2;break;
      ......
      case 常量表达式n:语句n;break;   
      default:语句n+1;break;  //上述都不满足则执行该语句
   }

(2) 用分支结构可实现的案例

  • 给出若干个数找其中的最值
  • 评定成绩
  • 分段函数

(3) 我不懂的地方

  • 用switch-case实现分段函数

(4) 我在pta自己实现的代码

  • 实验 2-2-4-if-else计算分段函数[2]
#include <stdio.h>
#include <math.h>

int main()
{
      double x;
      double result;//
      scanf("%lf",x);
      if(x<0){
        result=pow((x+1),2)+2.0*x+1.0/x;
    } 
      else {
        result=sqrt(x);
    }
      printf("f(%.2f) = %.2f",x,result);
      return 0;
} 
  • 实验3-7-switch-case 统计学生成绩
#include <stdio.h>

int main()
{
    int N,a,b,c,d,e;
    double grades;
    scanf("%d",&N);
    a=b=c=d=e=0;
    for(int i=0;i<=N;i++){
        scanf("%lf",&grades);
        int temp = int(grades/10);
        switch (temp){
            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;
}

4.2 循环结构

(1)语法

  • while型循环——先判断,符合循环条件后再执行循环
while(循环条件)
{      
      循环体;
} 
  • do-while型循环——先执行一次循环,再判断是否符合循环条件,符合则继续执行循环
do 
{
      循环体;
}
while(循环条件);
  • for型循环——使用最多的,适用于有明确的循环次数
for(循环变量初始化;循环条件;循环变量的变化)
{
      循环体;
}  

(2)利用循环结构解决的案例

  • 有序数列前N项累加求和
  • 有序数列前N项累乘
  • 求最大公约数最小公倍数
  • 凑钱问题
  • ......

(3)我不懂的地方

  • continue的意义和用法

(4)我在PTA实现的代码

  • 实验2-3-7-for/求平方与倒数序列的部分和
#include <stdio.h>
#include<math.h>

int main()
{
    int m,i,n;
    double sum;
    scanf("%d %d",&m,&n);
    for(i=m;i<=n;i++){
        sum+=pow(i,2)+1.0/i;
    }printf("sum = %.6f",sum);
    
    return 0;
}
  • 实验2-4-7-for 求组合数
#include <stdio.h>
double fact(int n);
int main()
{
    int m,n;
    double res;
    scanf("%d %d",&m,&n);
    res =fact(n)/(fact(n-m)*fact(m));
    printf("result = %.0f",res);
}
double fact(int n){
    int i;
    double p=1;
    for(i=1;i<=n;i++){
        p*=i;
    }
    return p;
}

4.3函数

(1)函数的定义

函数是一段可以重复使用的代码,用来独立地完成某一个功能,它可以接收用户传递的数据,也可以不接收。接收用户数据的函数在定义时要指明参数,不接收用户的数据的函数则不需要指明参数,由此可将函数分为有参函数和无参函数。
函数的定义一般包括函数头function head或称为声明符(declarator))和一个函数块
函数头指定了函数的名称、返回值的类型以及参数的类型及名称。函数块中的语句明确了该函数要做的事

函数定义的一般格式如下:

  • 无参函数
dataType functionName(){
  //body
}
  • 有参函数
dataType functionName(dataType1 param1,dataType2 param2,......){
  //body
}

注:

  • dataType 是返回值的类型,可以是int、char、double等。
  • functionName 是函数名,它是标识符的一种,命名规则和标识符的相同,后面的“()”不能少
  • body 是函数体,即函数要执行的代码,必须要有"{}"包裹
  • 如果有返回值,要在函数体中使用return返回,类型与要与dataType返回值类型一样。
  • 函数的参数可以有一个也可以有多个,多个参数之间用“,”隔开。参数本质上也是变量,定义时要指明类型与名称
  • 函数必须先定义后使用,函数不能嵌套使用,每个定义的函数都是平行的。

数据通过参数传递到函数内部进行处理,处理完成以后通过返回值告知函数外部。

(2)我在PTA用函数实现的代码

  • 实验2-4-1 统计各位数字之和是5的数

代码中的函数部分:

int is (int number){
    int val=0;
    while(number%10||number){
        val+=number%10;
        number=number/10;
    }
    if(val==5)
        return 1;
    else 
        return 0;
}
void count_sum(int a,int b){
    int j;
    int sum=0,count=0;
        j=a;
    for(j=a;j<=b;j++){
        if(is(j)){
            sum=sum+j;
            count++;
            a++;
        }
    }
    printf("count = %d, sum = %d",count,sum);
}

(函数学习较慢,以上部分是已经学到的。)

posted on 2020-10-18 22:13  木野  阅读(143)  评论(2编辑  收藏  举报