首页 > 编程语言 >7.17 C语言程序引言

7.17 C语言程序引言

时间:2024-07-17 13:25:25浏览次数:13  
标签:7.17 语言 计算机 程序 C语言 程序设计 数据 引言 函数

一、一个C语言程序

运行程序,输入4,输出24,即4的阶乘

        C程序由函数(Function,一种子程序)所组成。上述程序涉及4个函数:main()、factorial()、scanf()和printf()。其中,scanf()和printf()是系统事先设计好的函数,分别用于数据的输人和输出:factorial()是程序中定义的函数,主要目的是求!,并将作为函数的参数;main()函数是程序的主函数。

        所有的C程序都有且只有一个main()函数。C程序从main()函数处开始运行,当main()函数结束时,程序也就结束了。对于上述例子,程序先执行main()函数中的seanf()函数调用,输人数据n,然后调用print()函数,输出结果。当调用print()函数时,必须要先知道所要输出的数据,即factorial(n)。因此,此时发生了对factorial()函数的调用(Call),调用该函数所获得的结果作为printf()函数的参数(Argument),由prin()函数负责将该值按十进制整数(%d)的形式输出。

二、程序与程序设计语言

    1.程序和指令

        计算机程序(Program)是人们为解决某种问题用计算机可以识别的代码编排的一系列加工步骤。

        计算机最基本的处理数据的单元应该就是计算机的指令了。单独的一条指令本身只能完成计算机的一个最基本的功能,如实现一次加法运算或实现一次大小的判别。计算机所能实现的指令的集合称为计算机的指令系统。

        程序在计算机中是以0、1组成的指令码来表示的,即程序是0、1组成的列,这个序列能够被计算机所识别。程序与数据一样,共同存放在存储器中。当程序要运行时,当前准备运行的指令从内存被调入CPU中,由CPU处理这条令。这种将程序与数据共同存储的思想就是目前绝大多数计算机采用的冯:诺依曼模型的存储程序概念。

        如果程序设计直接用0、1序列的计算机指令来写,那将是一件难以忍受的事。所以,人们设计了程序设计语言,用这种语言来描述程序,同时应用一种软件(如编译程序)将用程序设计语言描述的程序转换成计算机能直接执行的指令序列。

   2.程序设计语言的功能

       程序设计语言是人用来编写程序的手段,是人与计算机交流的语言。人为了让计算机按自己的意愿处理数据,必须用程序设计语言表达所要处理的数据和数据处理的流程。因此,程序设计语言必须具有数据表达和数据处理(称为控制)的能力。

    (1) 数据表达(Data Representation)
        世界上的数据多种多样,而语言本身的描述能力总是有限的。为了使程序设计语言能充分、有效地表达各种各样的数据,一般将数据抽象为若干种类型。数据类型(DataType)就是对某些具有共同特点的数据集合的总称。如人们常说的整数、实数就是数据类型的例子。

        在程序设计语言中,一般都事先定义几种基本的数据类型,供程序员直接使用,如整型、实型(浮点型)、字符型等。这些基本数据类型在程序中的具体对象主要是两种形式常量(又称常数,Constant)和变量(Variable)。常量值在程序中是不变的,例如123是一个整型常量,12.3是一个实型常量,"a是一个字符型常量。变量则可对它做一些相关的操作,改变它的值。例如,在C语言中可以通过imni来定义一个新的变量i,然后就可以对该变量进行某种操作,如赋值i=20。
        同时,为了使程序员能更充分地表达各种复杂的数据,程序设计语言还提供了构造新的具体数据类型的手段,如数组(Array)、结构(Siueture)、文件(File)、指针(Pointer)等。例如,在C语言中可以通过int a[10]来定义一个由10个整数组成的数组变量。

    (2) 流程控制(Flow Control)

        程序设计语言除了能表达各种各样的数据外,还必须提供一种手段来表达数据处理的过程,即程序的控制过程。程序的控制过程通过程序中的一系列语句来实现。

        在结构化程序设计方法中,一个模块可以是一条语句(Statement)、一段程序或一个函数等。

        按照结构化程序设计的观点,任何程序都可以将模块通过3种基本的控制结构进行组合来实现。这3种基本的控制结构是顺序、分支和循环。

    (3)程序设计语言的语法

        程序员用程序设计语言编写程序以处理相应的问题。在程序中,一般要表达数据,包括定义用于存储数据的变量;还要描述数据处理的过程,包括语句级的控制和单位级的控制。为了让计算机能理解程序员在程序中所描述的这些工作,用程序设计语言所写的程序必须符合相应语言的语法(Grammar)。

        一般把用程序设计语言编写的未经编译的程序称为源程序(SourceCode,又称源代码)。从语法的角度看,源程序实际上是一个字符序列。这些字符序列按顺序分别组成了一系列“单词”。这些“单词”包括语言事先约定好的保留字(Reserved Words,如用于描述分支控制的if、else,用于描述数据类型的int等)、常量、运算符(0perator)、分隔符以及程序员自己定义的变量名、函数名等。

    (4)程序的编译与编程环境

    a.程序的编译
        计算机硬件能理解的只有计算机的指令,用程序设计语言编写的程序不能被计算机直接接受,这就需要一个软件将相应的程序转换成计算机能直接理解的指令序列。对C语言等许多高级程序设计语言来说,这种软件就是编译程序(Compiler,又称为编译器)。编译程序首先要对源程序进行词法分析,然后进行语法与语义分析,最后生成可执行的代码如果程序中有语法错误,编译器会直接指出程序中的语法错误。但是,编译程序能生成可执行的代码并不意味着程序就没有错误了。对于程序中的逻辑错误,编译程序是发现不了的、必须通过程序的调试才能发现。

    b.编程环境
        编写一个程序需要做很多工作,包括编辑程序(Edit)、编译(Compile)和调试等过程。所以,许多程序设计语言都有相应的编程环境。程序员可以直接在该环境中完成上述工作,以提高编程的效率。
        总的来说,要掌握一门程序设计语言,最基本的是要根据程序设计语言的语法要求掌握表达数据、实现程序的控制的方法和手段,并会使用编程环境进行程序设计。

    3.实现问题求解的过程

        问题:求1~100间所有偶数的和。
    (1)问题分析与算法设计
           本问题求在一定范围内(1~100)、满足一定条件(偶数)的若干整数的和,是一个求累加和的问题。
           这类问题的基本求解方法是:设置一个变量(如sum),将其初值置为0,再在指定的范围(1~100)内寻找满足条件(偶数)的整数,将它们一个一个累加到sum中。为了处理方便,将正在查找的整数也用一个变量表示(如i)。所以,一次累加过程的C语言语句为:

        sum=sum+i;
它表示把sum的值加上i后再重新赋给sum。
        这个累加过程要反复做,就要用程序设计语言的循环控制语句来实现。在循环过程中:

                ①需要判别i是否满足问题要求的条件(偶数)。可以用分支控制语句实现只把满足条件的整数累加到sum中。
                ②需要对循环次数进行控制。这可通过i值的变化进行控制,即i的初值设为1,每
循环一次加1,一直加到100为止。

        流程图是算法的图形表示法,它用图的形式掩盖了算法的所有细节,只显示算法从开始到结束的整个流程。

        对于求1~100偶数和的问题,基于前面的分析,可以用流程图来描述解决步骤(算法)

标签:7.17,语言,计算机,程序,C语言,程序设计,数据,引言,函数
From: https://blog.csdn.net/2302_81787841/article/details/140477353

相关文章

  • C语言超市管理系统UI界面
    以下是部分源码,需要源码的+qq:2758566124 #include<easyx.h>#include<stdio.h>#include<stdlib.h>#definewidth1280#defineheight840#definefont_w35//字体宽度#definefont_h90//字体高度typedefstructnode{ charname[100];//名字 charnumb......
  • C语言中的结构体
    前言    在日常使用中,很容易就见到一些使用结构体封装的数据,通过使用结构体,可以编写出更加模块化和易于维护的C程序。在C语言中,结构体(Struct)是一种用户自定义的数据类型,它允许你将不同类型的数据项组合成一个单一的类型。通过使用结构体,你可以表示如学生信息、员工记录......
  • C语言——实验课大作业(十个C语言实验)
    第1关:实验8数学函数任务描述本关任务:编写一个能计算数的正弦、余弦、平方根的小程序。相关知识为了完成本关任务,你需要掌握:调用C语言自带的函数库的方法。导入函数相关库#include<math.h>导入相关库后,可以直接调用相关的函数进行运算,比如计算数a的平方根,可以通过调用s......
  • 闲话 24.7.17
    闲话不是,绝区零真好玩吧?质疑艾莲,理解艾莲,单推艾莲/se从图书馆借了本陶哲轩实分析(预告:处理▂▕▄▄制▒▟▀问题可以▙依赖[错误:所引对象未导引至对象实例;标准处理方法_003.rtf不存在]。不确定能否[已编辑]。推歌:未名星河by蛾君etal.feat.洛天依奇思妙想:一阶常......
  • [C语言] 作业8 学生管理系统(结构体实现)
    1、使用结构体完成学生(学号、姓名、性别、成绩)管理系统1>使用菜单实现2>功能1:完成对学生信息的录入,确定人数,完成输入2>功能2:完成对学生信息的输出3>功能3:输出成绩最高和最低学生的信息4>功能4:输出学生的总成绩和平均成绩5>功能5:对学生信息按成绩进行排序,根据传入的......
  • c语言-逻辑运算符和逻辑表达式
    一认识三个逻辑运算符    1.&&“逻辑与”一假则假 2.||“逻辑或”一真则真3.!“逻辑非” 逻辑与和逻辑或都是双目运算符,要求两个操作数;逻辑非为单目运算符优先级为!>算术运算符>关系运算符>&&和|| >赋值运算符  运算符可以通过括号展开或收缩......
  • C语言中的整数类型及其类型转换
    C语言中的整数数据类型C语言中的整型数据就是定点整数,根据位数的不同,可分为字符型(char,8位)、短整型(short或shortint,16位)、整型(int,32位)、长整型(long或longint,在32位机器中为32位,在64位机器中为64位)。char是整型数据中比较特殊的一种,其他如short/int/......
  • 【C语言习题】39.模拟实现atoi
    文章目录作业标题作业内容代码作业标题模拟实现atoi作业内容自行了解库函数atoi的功能,学习使用,并模拟实现atoi函数。文档链接:atoi-C++Reference(cplusplus.com)代码//atoi将一个字符串转化为一个整型#include<stdio.h>#include<assert.h>#include<......
  • 【C语言习题】40.变种水仙花数
    文章目录题目代码题目代码#include<stdio.h>intmain(){inti,j;for(i=10000;i<99999;i++){intsum=0;for(j=10;j<=10000;j=10*j){sum+=(i/j)*(i%j);}if(sum==i)prin......
  • 【c语言】函数递归的一些例题1.编写一个函数,不许创建临时变量,求字符串长度 2.求n的阶
    1.intmy_strlen(char*str){   if(*str!='\0')   {      return1+my_strlen(str+1);//利用递归求字符串长度:递归一次就是多一个字符这样就可以求出字符串的长度了   }   else      return0;}intmain(){   //编写......