第1章C语言概述

 1 #include<stdio.h>  //编译预处理命令 
 2 int factorial (int n);  //函数声明 
 3 int main(void)  //主函数 
 4 {     
 5     int n;    //变量定义     
 6  scanf("%d",&n);  //输入一个整数 
 7  printf("%d\n",factorial(n));    //调用函数计算阶乘 
 8  return 0; 
 9 } 
10 int factorial (int n)  //定义计算n!的函数
11 {     
12     int i,fact=1;         
13  for(i=1;i<=n;i++)  //注意i<n与i<=n         
14      fact=fact*i;             
15  return fact; 
16 } 
#include<stdio.h>  //编译预处理命令 
int factorial (int n);  //函数声明 
int main(void)  //主函数 
{     
    int n;    //变量定义     
 scanf("%d",&n);  //输入一个整数 
 printf("%d\n",factorial(n));    //调用函数计算阶乘 
 return 0; 
} 
int factorial (int n)  //定义计算n!的函数
{     
    int i,fact=1;         
 for(i=1;i<=n;i++)  //注意i<n与i<=n         
     fact=fact*i;             
 return fact; 
} 

第1章C语言概述

1.1一个C语言程序

【例1-1】求阶乘问题。输入一个正整数n,输出n!

 #include<stdio.h>  //编译预处理命令 
 int factorial (int n);  //函数声明
 int main(void)  //主函数
 {
     int n; //变量定义
  scanf("%d",&n);  //输入一个整数
  printf("%d\n",factorial(n)); //调用函数计算阶乘
  return 0;
 }
 int factorial (int n)  //定义计算n!的函数
 {
     int i,fact=1;
  for(i=1;i<=n;i++)  //注意i<n与i<=n
      fact=fact*i;
  return fact;
 }

 

1.2程序与程序设计语言

程序设计语言提供表示数据与处理数据的功能,要按照语法规则来编写程序;

1.2.1程序与指令

程序是0、1组成的序列,该指令码序列能够被计算机所识别;

1.2.2程序设计语言的功能

1.数据表达

数据类型就是对某些具有共同特点的数据集合的总称,包括数据类型的定义域及运算操作;

程序设计语言提供基本数据类型以及构造复杂类型(数组、结构等);

基本数据类型:整型、实型、字符型等,两种主要形式:常量(Constant)和变量(Variable);

可以构造新的具体数据类型:数组(Array)、结构(Structure)、文件(File)、指针(Pointer)等;

2.流程控制(语句级控制)

在结构化程序设计方法中,将复杂程序划分为若干个相互独立的模块(语句、段程序、函数);

三种基本控制结构:顺序、分支(选择结构)和循环

(1)顺序控制结构:按照自然顺序执行各个模块;

(2)分支控制结构:判断条件是否满足,选择执行相应的模块;

(3)循环控制结构:检测是否符合条件,重复执行相应的模块;

3.单位级控制

函数的定义与调用控制:将程序划分为子程序,由函数实现各个功能,直接调用函数,可以传递零个或多个参数,函数被调用的结果将返回给调用函数;

1.2.3程序设计语言的语法

1."单词"(字符序列组合)

(1)标识符:由字母、数字和下划线组成,其中第一个字符必须是字母或下划线;

系统预定义标识符(保留字、关键字),主要与数据类型和语句有关;

用户自定义标识符,包括程序中定义的变量名、数据类型名、函数名和符号常量名;

(2)常量:也有数据类型,如整型常量、实型常量;

(3)运算符:表示对各种数据类型数据对象的运算,有运算优先级;

(4)分隔符:如#、[、]、;、(、)等;

2.C语言的主要语法单位

(1)表达式:由运算符与运算对象的组合,可含多种数据类型的运算符;

(2)变量定义:类型名 变量名; 如 int i;

(3)语句:程序最基本的执行单位,主要有表达式语句、分支语句、循环语句、复合语句四类;

(4)函数定义与调用

a.函数定义:编写一系列语句来规定其所完成的功能,主要有函数头和函数体。其中,函数头包括函数名、函数返回值类型、参数类型,函数体则是一个程序模块,规定了函数所具有的功能;

b.函数调用:通过传递函数的参数并执行函数定义所规定的程序过程,以实现相应功能;

例如:函数max求两个整数(作为参数)的较大值(作为返回值)

 int max(int a,int b)  //函数头:函数类型 函数名(函数参数列表)
 {                //函数体开始    
     int x;  //函数中要用到的临时变量    
     if(a>b)  x=a;  //判断a、b的大小,将x赋值为较大者    
     else x=b;    
     return x;  //结束函数调用并返回x
 }          //函数体结束`

(5)输入与输出:调用系统库函数printf()和scanf();

1.2.4程序的编译与编程环境

1.程序的编译

由编译程序(编译器)对原程序进行词法分析,然后进行语法与语义分析,最后生成可执行的代码;

2.编程环境

集成开发环境(IDE)是用于提供程序开发环境的应用程序,包括代码编辑器、编译器、调试器和图形用户界面等工具,集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。

1.3C语言的发展历史与特点

(1)C语言是一种结构化语言

函数是C语言程序的基本模块,程序的许多操作可有不同功能的函数组装而成;以及完整的控制语句和构造数据类型,使程序流程与数据描述也结构化;

(2)C语言语句简洁紧凑,使用方便灵活

只有32个保留字和9种控制语句,可用宏定义和文件包含等预处理语句;

(3)C语言程序易于移植

C语言将与硬件有关的因素从语言主体中分离出来,通过库函数或其他实用程序来实现;

(4)C语言具有强大的处理能力

结构、指针、地址、位运算等功能,具有汇编语言的特点;

(5)生成的目标代码质量高,运行效率高

1.4实现问题求解的过程

问题:求1~100间所有偶数的和。

1.问题分析与算法设计

求累加和的基本方法:设置一个变量并初始化为0,在指定范围内寻找满足条件的数做累加 sum=sum+i;

这个累加过程要反复做,用循环控制语句来实现,在循环过程中:

a.需要判断 i 是否满足问题要求的条件(偶数):分支控制语句;

b.需要对循环次数做控制,通过 i 值的变化进行控制:将 i 初始化为1,每循环一次加1,直到100结束;

2.编辑源程序sum.c

 #include<stdio.h>
 int main(void)
 {
     int i,sum=0;  //变量定义并初始化
     for(i=1;i<=100;i++)  //累加1~100的偶数
         if(i%2==0)  sum=sum+i;  //判断是否为偶数
     printf("%d",sum);  //按十进制整数输出
     return 0;
 }

3.编译生成目标程序sum.obj

通过编程环境提供的库函数进行连接,形成可执行程序sum.exe

4.运行与调试:设置断点并观察变量;

猜你喜欢

转载自www.cnblogs.com/zju1897/p/10538884.html