我的第一篇博客

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

1.谈谈你对网络专业或者计算机专业了解是怎样?(1分)

有人问我说:“你网络专业学出来是干啥的?”,我可能会说:“不知道,应该是拉网线的吧。”随后那人皱了皱眉头用轻视的语气说:“就这?”我羞愧的低下了头,赶紧掏出手机在全网搜索一切有关网
络工程专业的信息。不查不知道,一查吓一跳,原来网络工程没我想的那么low,还是挺高大上的,不仅能进行网络对抗,还能编程,经验足够丰富、技术足够硬、管理能力足够强的话还能当上高级工程师甚至当上CTO、CEO……
当今时代已经再也离不开网络了,终端从黑白屏到智能终端,应用从语音、短信,到视频通话,游戏。走在大街上再也不怕迷路,出门在外再也不怕遭窃,这一切的一切都得益于网络的高速发展,而网络工程是促使其发展迅
速的基石之一,也是维护其稳定发展,不受为非作歹之人侵扰的基础……
我恍然大悟,抬起头对那人说:“没我你就甭上网了!

2.谈谈你对C语言的理解?(1分)

C语言是啥?只与各种APP打过交道的我仅仅知道这是一种计算机编程语言,其他再多的也就不知道了。经过查阅资料后得知以下内容:

C语言是一门面向过程,提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的计算机编程语言。
与其他计算机语言相比C语言汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当且普适较强,在许多计算机操作系统中
都能够得到适用,且效率显著。
——摘选自百度百科

也就是说C语言对于初学者来说既十分友好,难易度低,又是基础中的基础,对于以后的进阶学习起到重要的作用。

3.你希望在这个专业学到哪些内容?大学学习生活时间要怎么安排?(1分)

我希望在专业课中能够学习如何自己设计程序,并且投入到实际的应用当中,因此各种计算机语言的学习我想应该是十分重要的。
关于大学的学习时间,我打算在正课之余每天至少拿出2个小时的时间泡在图书馆学习、查阅资料,丰富自己专业知识的同时,提升自己的阅读能力。由于我就读的高中管理十分严格,从来没有课余时间一说,因此我的高中时
代没有任何姿色,所以在大学读书学习以外的时间,我更想拿去参加各种各样的活动,邂逅形形色色的人,拓展自己的眼界。

4.我目前自学的内容 (5分)

我看的慕课是翁恺老师的C语言程序设计CAP,虽然主观认为课程对理论方面的知识不如哈工大的慕课的详细,但在实践方面相当实用。(特指PTA)

4.1 分支结构

分支结构中有单分支、双分支、嵌套式分支语句以及swich-case语句。

语法

  • 单分支
if( <条件表达式> )
{
 语句块;
}
  • 双分支
if( <条件表达式> )
{
 语句块1;
}
else
{
语句块2;
}
  • 嵌套式分支
if( <条件表达式> )
{
   if( <条件表达式> )
   {
   语句块1;  
   }
   else
   {
   语句块2; 
   }
 }
else
{
  if( <条件表达式> )
   {
    语句块3;  
   }
   else
   {
     语句块4;  
   }
}
  • swich-case
switch(表达式)
{
  case 常量1:语句1;break;
  case 常量2:语句2;break;
  case 常量3:语句3;break;
  case 常量n:语句n;break;
  default : 语句n+1;
}

实现案例

可以用来计算分段函数,如个人所得税:

#include<stdio.h>
int main()
{
    int x;//x为工资
    double y;//y为个人所得税
    scanf("%d", &x);
    if (x > 4500){
        y = 0.20 * (x - 1600);
    }
    else if (x > 3500 && x <= 4500) {
        y = 0.15 * (x - 1600);
    }
    else if (x > 2500 && x <= 3500) {
        y = 0.10 * (x - 1600);
    }
    else if (x > 1600 && x <= 2500) {
        y = 0.05 * (x - 1600);
    }
    else {
        y = 0.00;
    }
    printf("%.2lf", y);
    return 0;
}

也可用于价格查询,如:

#include<stdio.h>
int main()
{
    printf("[1] apple\n");
    printf("[2] pear\n");
    printf("[3] orange\n");
    printf("[4] grape\n");
    printf("[0] exit\n");
    int x,i;
    for(i=0;i<=4;i++)
    {
        scanf("%d",&x);
        if(x==0) break;
        switch(x)
        {
            case 1:printf("price = 3.00\n");break;
            case 2:printf("price = 2.50\n");break;
            case 3:printf("price = 4.10\n");break;
            case 4:printf("price = 10.20\n");break;
            default:printf("price = 0.00\n");break;
        }
    }
    return 0;
}

实现的pta代码

实验2-2-8

#include<stdio.h>
int main()
{
    double x, y;
    scanf("%lf", &x);
    if (x < 0)
    {
        printf("Invalid Value!\n");
    }
    else if (x >= 0 && x <= 50)
    {
        y = 0.53 * x;
        printf("cost = %.2lf\n", y);
    }
    else
    {
        y = 0.53 * x + 0.05 * (x - 50);
        printf("cost = %.2lf\n", y);
    }
    return 0;
}

实验3-8

#include<stdio.h>
#include<math.h>
int main()
{
    int a, b, c;
    double area, s;
    scanf("%d %d %d", &a, &b, &c);
    if (a + b > c && a + c > b && b + c > a) {
        s = (a + b + c) / 2.0;
        area = sqrt(s * (s - a) * (s - b) * (s - c));
        printf("area = %.2lf; perimeter = %.2lf\n", area,s*2);
    }
    else {
        printf("These sides do not correspond to a valid triangle");
    }
    return 0;
}

等等……

4.2 循环结构

循环结构中有三种循环语句:while、do...while和for

语法

  • while语句
while (表达式)
{
  语句;
}

先计算控制表达式。如果为 true,就执行循环体,然后再次计算控制表达式。如果控制表达式为 false,程序跳过循环体,而去执行循环体后面的语句。

  • for语句
for ([表达式1(初始化)];[表达式2(控制表达式)];[表达式3(调节器)])
{
  语句;
}

先计算一次表达式1,以进行必要的初始化,后面不再计算它。
每轮循环前都要计算表达式2,以判断是否需要继续本轮循环。当控制表达式的结果为 false,结束循环。
表达式3在每轮循环结束后且表达式2计算前执行。

  • do...while语句
do
{
  语句;
}
while (表达式);

与while语句类似,唯一不同点在于循环之前会先执行语句内容,再进行判断是否执行循环。

  • 实现案例
    阶乘计算、求n项之和、判断是否为素数等等
//阶乘计算

#include<stdio.h>
int main(){
    int i, n, sum = 1;
    printf("请输入一个数字:");
    scanf("%d", &n);     /* 输入一个数字n */
    /* 计算n的阶乘 */
    for(i = 1; i <= n; i++){    /* 循环n次计算n的阶乘 */
        sum = sum * i;
    }
    printf("%d的阶乘为:%d\n", n, sum);
    return 0;
}

实现PTA代码

实验4-1-8

#include<stdio.h>
#include<math.h>
int main()
{
    double n, sum=0, a=1, d=1, f=1;
    scanf("%lf",&n);
    if(n>=1)
      sum=1;
    else
    {
        while(fabs(a)>n)
        {
            a=1.0*f/d;
            d=d+3;
            f=-f;
            sum=sum+a;
        }    
    }
    printf("sum = %lf",sum);
    return 0;    
}

等……

4.3 函数

通过设计自己的函数,将代码合理的分为不同的区块,每一个区块具有相对独立的功能,并为其它程序提供对外调用的参数和返回值,起到让程序阅读者更方便的理解程序设计的功能。

定义

例:

int plus(int a, int b)
{
    a = a + 1;
    b = b + 1;
    return a + b;
}

其中第一行为函数头,开头的int为返回类型,()中的为参数表。{}中的为函数体
若想要定义一个无返回值类型的函数,则可以用void类型。同样如果想定义一个没有参数的函数可以将其参数定义为void,通常如果一个函数没有参数可以在函数名后的小括号里什么都不写。(void是C语言中的一个关键
字,表示“空类型”或“无类型”,绝大部分情况下也就意味着没有return语句。)

如:

void sum(void)
{
}

实现的pta代码

实验5-3

int even(int n)
{
    int a = 0;
    if (n % 2 == 0) a = 1;
    return a;
}

int OddSum(int List[], int N)
{
    int sum = 0;
    for (int i = 0; i < N; i++)
    {
        if (even(List[i])==0)
            sum += List[i];
    }
    return sum;
}

注意事项

函数不能嵌套定义

错误案例:

    #include <stdio.h>
    void a(){
        printf("1");
        void b(){
            printf("2");
        }
    }
    int main(){
        a();
        return 0;
    }

错因是在函数a中定义了函数b,这样运行函数a的同时也会运行函数b

正确案例:

    #include <stdio.h>
    void b(){
        printf("2");
    }
    void a(){
        printf("1");
        b();
    }
    int main(){
        a();
        return 0;
    }

a()、b()、main() 三个函数是平行的,谁也不能位于谁的内部,要想达到「调用 a() 时也调用 b()」的目的,必须将 b() 定义在 a() 外面,并在 a() 内部调用 b()。

posted @ 2020-10-16 20:48  箱推人  阅读(260)  评论(2编辑  收藏  举报