C语言程序设计-概述、简单程序、数据类型

目录

第一章 C语言基础知识

1.1 C语言概述

1.1.1 C语言与程序设计

1.1.2 C程序形式和程序执行过程

1.2 简单C程序及其上机步骤

1.2.1 简单C程序和编程风格

1.3 数据类型

传送门下一节:C语言程序设计-常量与变量


第一章 C语言基础知识

1.1 C语言概述

1.1.1 C语言与程序设计


人与人之间交换信息需要借助于语言工具,人与计算机交换信息也同样要用语言工具,这一工具就是计算机语言。用计算机语言编写的代码叫作程序。所谓程序,就是一系列的指令集合。计算机的一切操作都是由程序控制的,在运行程序时,程序中的指令集决定计算机如何对用户的输入进行处理。

随着计算机技术的发展,计算机语言逐步得到完善。最初使用的计算机语言是用二进制代码表达的语言——机器语言,后来采用与机器语言相对应的助记符表达的语言——汇编语言。我们称这两种计算机语言为低级语言。虽然用低级语言编写的程序执行效率高,但程序代码长,并且这些程序都依赖于具体的计算机,因此编码、调试、阅读程序很困难通用性也差。现在使用最广的计算机语言是高级语言——用更接近于人类自然语言和数学语言的表达语言。用高级语言编写的程序独立于机器编码相对短可读性强,但必须通过编译和连接后,才能被计算机执行。用高级语言编写的程序叫作源程序

由上可见,低级语言和高级语言各有利弊。C语言是高级语言,它是一种用途广泛功能强大使用灵活面向过程的语言,它不仅具有高级语言的功能,还具有低级语言的许多功能,因此是国际上广泛流行的计算机语言。Windows、Linux和UNIX等操作系统都是用C语言编写的。

C语言的主要特点有:语言简洁,使用方便,编程自由度大,具有结构化的控制语句,运算符和数据类型丰富,而且允许直接访问物理地址,能实现汇编语言的大部分功能,可以直接对硬件进行操作,用C语言编写的程序可移植性好,生成目标代码质量高,程序执行效率高。

要得到C语言程序的运行结果,首先将源程序输入计算机内(在计算机上输入或修改源程序的过程叫作编辑),然后将源程序翻译(叫作编译)成机器能识别的目标程序,最后还要把目标程序和系统提供的库函数等连接起来生成可执行文件,这时才可以运行程序,并看到运行结果。C语言的编辑、编译、连接、运行过程可用图1.1表示(以文件名为test.c的C程序为例)。

图1.1 C程序的编辑、编译、连接、运行过程

C语言的编辑、编译、连接、运行过程可以在不同的环境中进行。

程序设计是指从确定任务到得到结果、写出文档的全过程。程序设计的步骤大体上分为:1、问题定义 2、算法设计 3、流程图设计 4、编写程序代码 5、测试与调试 6、整理文档 7、系统维护

1.1.2 C程序形式和程序执行过程

下面举一个C程序的完整例题,用此例说明C程序的一般形式和程序的执行过程。程序中的具体语法规则和其他细节将在后续章节中陆续介绍。

【例1.1】编写一个完整的C语言程序示例。

程序如下:

#include <stdio.h>  //包含文件
#include<math.h>    //包含文件
int mysum(int m,int n); //函数原型说明
int main(void)  //主函数首部
{
    int a,b,x;  //声明部分
    double c,y,z;   //声明部分

    c=4.0;  //以下各行均为语句部分
    y=sqrt(c);
    a=10;
    b=20;
    x=mysum(a,b);
    z=x+y;
    printf("z=%lf\n",z);
    return 0;
}               //主函数到此结束

int mysum(int m,int n)  //mysum函数首部
{
    int k=0,i;  //声明部分

    for(i=m;i<=n;i++)k=k+i; //以下各行均为语句部分
    return k;
}

运行结果:

z=167.000000

 程序说明:

1. 正如本例所示,C语言程序是由若干函数构成的,函数中至少包含一个主函数,C程序从主函数开始执行,主函数名必须是main。例1.1中程序的执行过程如图1.2所示,程序按1-9的顺序执行。

 图1.2 例1.1程序的执行过程

2. 程序中从“//”到本行结束是注释部分,用此对该行代码进行说明,注释对程序的运行无任何作用,注释的目的是方便阅读程序。注释还可以用“/*  */"括起,例如:

#include<stdio.h>  /*包含文件*/

1.2 简单C程序及其上机步骤

1.2.1 简单C程序和编程风格

【例1.2】编写在屏幕上显示一行句子”Let's study the C language.“的程序。

程序如下:

#include<stdio.h>
int main(void)
{
    printf("Let's study the C language.");
    return 0;
}

运行结果:

Let's study the C language.

程序说明:

1. 程序中main是主函数名,每一个C程序都必须包含而且只能包含一个主函数

2. 用一对花括号“{ }”括起来的部分是函数体。本例函数体中的语句"printf("Let's study the C language.");"是输出语句其作用是按原样输出双引号内的字符串“Let's study the C language.”。语句最后的“;”不能丢。

3. C语言中区分大小写,即main不能写成Main,printf也不能写成Printf。若程序中有此类错误,则很难发现。

4. printf是C语言标准库中提供的输出函数。需要在程序中使用输入、输出函数,程序的开头要加“#include<stdio.h>”命令行。实际上,每个程序中必定会有输出操作,因此编写程序时,在程序的第一行都写此命令行。

【例1.3】编写输出两行句子”Let's study the C language.“和”It's interesting.“的程序。

#include<stdio.h>
int main(void)
{
    printf("Let's study the C language.\n");  //输出字符串后换行
    printf("It's interesting.\n");
    return 0;
}

运行结果:

Let's study the C language.
It's interesting.

程序说明:

1. 本程序的函数体包括两条输出语句,此两条语句可写为一条语句,即”printf("Let's study the C language.\nIt's interesting.\n");”。

2. “\n”是换行符,如果程序中去掉“\n”,则输出形式为:

Let's study the C language.It's interesting.

3. C程序的书写格式比较自由。例如,一行内可以包括多条语句,一条语句可以写在多行上,每行的内容可以从任何一列开始写,等等,但提倡学习者在编写程序时要形成良好的程序设计风格。良好的编程风格能提高程序的可读性、可维护性,也有助于促进技术交流,便于团队合作。在此介绍如下几点风格,其他风格在后续章节陆续介绍。

(1) 合理安排各成分的位置。一般#include命令行在程序的最前面,接着依次为#define命令行、类型声明(如结构体类型声明)、函数原型说明、各函数定义等。

(2)适当加注释。一般在程序的开头加注释,解释本程序的功能和一些说明,在函数或程序段的开头加注释,解释其要实现的功能、算法、参数等,在变量的定义行后面加注释,解释该变量的用途等。

(3)在程序中适当加上空行。在命令行和类型声明之间、类型声明和函数原型之间、函数原型与函数定义之间、函数内部变量定义与其下执行语句之间均空一行,有些地方视情况可空两行。

(4) 采用缩进格式。一般用Tab键将某些行向右缩进,这样可使程序的逻辑结构更加清晰,层次分明,显著提高程序的可读性。例如,

#include<stdio.h>
int main(void)
{
    int i=0,n=0,s=0;

    for (i=1;i<10;i++)
    {
       if(i%3==0)
            n++;
       s=s+i;
    }

    printf("s=%d,n=%d\n",s,n);
    return 0;
}

程序结果:

s=45,n=3

在多人共同完成一项任务时,如果不用Tab键而用空格键缩进,则可能对统一格式带来不便。

(5)标识符要见名知意。可用英文单词、拼音或缩写作为标识符的一部分,一般标识符的第一个字符用字母,其余字符用字母、数字或下划线。

(6)一行写一条语句。

(7)算法简单明了。尽量采用简单易懂的算法,不使用过分复杂的算法。

(8) 用户界面友好。一般使用计算机解决问题时,采用人机对话形式。当要求用户输入信息时,给出提示信息,而且输入格式要一致,如果用户误操作,输入的数据有错误,则应进行相应的处理,保证软件不崩溃(使程序具有健壮性)。输出数据时适当控制输出格式,使输出的数据清晰、美观。

需要注意的是,在编写代码时应时刻注意编码风格,良好的风格是为编程者服务的。

1.3 数据类型

C语言中常用的数据类型有整型实型字符型数组结构体类型指针类型等。在程序设计中,根据不同的需要正确选用数据类型是至关重要的。

【例 1.4】编写输出5和6的和与平均值的程序。

#include<stdio.h>
int main(void)
{
    int a,b,sum;    //指定变量a、b、sum为整型
    double ave;     //指定变量ave为实型

    a=5;    //给整型变量a赋值5
    b=6;    //给整型变量b赋值6
    sum=a+b;    //将a中值5和b中值6之和11赋给整型变量sum
    ave=sum/2;  //将sum中值11和2之商5赋给实型变量ave
    printf("sum=%d,ave=%lf\n",sum,ave); //按指定格式输出sum和ave的值
    return 0;
}

运行结果:

sum=11,ave=5.000000

注意:输出结果不是:sum=11,ave=5.500000

程序说明:

1、 a、b、sum和ave是变量,其中a、b、sum是整型变量,而ave是实型变量,整型变量中只能存放整型值,实型变量中只能存放实型值。

2、为什么输出结果不是sum=11,ave=5.500000呢?其原因是程序中第8行sum中的值11和除数2都是整数,在C语言中两个整数的商仍为整数,表达式11/2的值为5。由于ave是实型变量,因此其中只能存放实型数5.0而不能存放整型数5(参见1.4.3节)。如果将此行改成“ave=sum/2.0;”,则输出:sum=11,ave=5.500000.

在处理数据和输出数据时,一定要选择合适的数据类型和正确的输出格式说明,否则将得到错误的运行结果或程序出错。如果在上面的程序中将sum的数据类型改为实型,ave的数据类型改为整型,则在执行“ave=sum/2;”后,sum/2的值为5.5,但ave值为5.

3、程序中最后一条语句“printf("sum=%d,ave=%lf\n",sum,ave); ”与例1.2中输出语句格式不同。本语句的作用是按原样输出双引号内除%d和%lf以外的内容,而在%d的位置上输出sum的值,%lf的位置上输出ave的值(小数点后保留6位)。%d和%lf是输出函数的格式说明,分别用于输出整型数和实型数(详见2.3.1节)。


传送门来喽🚪~

传送门下一节:C语言程序设计-常量与变量


We fight for our future! 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值