第一章 程序设计和C语言

本文详细介绍了计算机语言的发展历程,从机器语言、符号语言(汇编语言)到高级语言,特别是C语言的特点和使用。C语言以其简洁、高效和良好的可移植性著称,同时提供了丰富的数据类型和控制结构。通过示例展示了C程序的基本结构和函数使用,并解释了程序的编译、链接过程以及程序调试和测试的概念。
摘要由CSDN通过智能技术生成

知识梳理

程序:一组计算机可以识别和执行的指令。

计算机语言经历了以下发展阶段:

1.机器语言。计算机工作基于二进制,从根本上说,计算机只能识别和接受由0和1组成 的指令。机器能直接识别和接受的二进制代码称为机器指令。机器指令的集合就是该计算机的机器语言。ex:1011011000000000

2.符号语言。符号语言又称为符号汇编语言或汇编语言。虽然汇编语言比机器语言简单好记一些,但仍然难以普及,只在专业人员中使用。不同型号的计算机的机器语言和汇编语言是互不通用的。ex:ADD代表加,SUB代表减

3.高级语言。这种语言功能很强,且不依赖于具体机器,用它写出来的程序对任何型号的计算机都适用(或只需做很少的修改),故称为计算机高级语言。计算机不能直接识别高级语言程序。用一种称为编译程序的软件把高级语言写的程序(称为源程序)转换为机器指令的程序(成为目标程序),然后让计算机执行机器指令程序,最后得到结果。高级语言经历了不同的发展阶段:(1)非结构化的语言(2)结构化的语言(3)面向对象的语言。

C语言的特点:

1.语言简洁、紧凑,使用方便、灵活。C语言一共有37个关键字、9种控制语句,程序书写形式自由,主要用小写字母表示。

2.运算符丰富。C语言一共有34种运算符。

3.数据类型丰富。C语言提供的数据类型包括整型、浮点型、字符型、数组类型、指针类型、结构体类型和共用体类型等,C99又扩充了复数浮点型、超长整型和布尔类型等。

4.具有结构化的控制语句。ex:if…else语句、while语句、do…while语句、switch语句和for语句

5.语法限制不太严格,程序设计自由度大。一般的高级语言语法检查比较严,能检查出几乎所有的语法错误,而C语言为了使编写者有较大的自由度放宽了语法检查。

6.C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。

7.用C语言编写的程序可移植性好。

8.生成目标代码质量高,程序执行效率高。

//要求在屏幕上输出以下一行信息
//This is a C program.
#include<stdio.h>
int main()
{
	printf("This is a C program.");
	return 0;
}

//单行注释
/* */多行注释
注意字符串中的的//和/*都不作为注释的开始,而是作为字符串的一部分

printf("//how do you do!\n");

输出为//how do you do!

printf("/*how do you do!*/");

输出为/how do you do!/

//求两个整数的和
#include<stdio.h>
int main()
{
	int a, b, sum;
	a = 123;
	b = 456;
	sum = a + b;
	printf("sum is %d", sum);
	return 0;
}

输出为sum is 579

//求两个整数中的较大者
#include<stdio.h>
int main()//主函数
{
	int max(int x, int y);//被调函数
	int a, b, c;
	scanf("%d,%d", &a, &b);
	c = max(a, b);
	printf("max=%d", c);
	return 0;
}
int max(int x, int y)//此处不需要分号
{
	int z;
	if (x > y)
	{
		z = x;
	}
	else
	{
		z = y;
	}
	return(z);
}

C语言程序的结构:

1.一个程序由一个或多个源程序文件组成。一个规模较小的程序,往往只包括一个源程序文件。上述例题有两个函数,属于同一个源程序文件。一个源程序文件可以包括3个部分:(1)预处理指令。ex:#include<stdio.h>、#define(2)全局声明。ex:int a,b,sum(3)函数定义。

2.函数是C程序的主要组成部分。一个C程序语言是由一个或多个函数组成的,其中必须包含一个main函数(且只能有一个main函数)。一个小程序只包含一个源程序文件,在一个源程序文件中包含若干个函数(其中有一个main函数)。当程序规模较大的时候,所包含的函数的数量较多,如果把所有的函数都放在同一个源程序文件中,则此文件显得太大,不便于编译和调试。为了便于调试和管理,可以使一个程序包含若干个源程序文件,每个源程序文件又包含若干个函数。

3.一个函数包括两个部分。(1)函数首部(2)函数体,函数体又包括声明部分和执行部分。

4.程序总是从main函数开始执行。

5.程序中要求计算机完成的操作是由函数中的C语句完成的。

6.在每个数据声明和语句最后必须有一个分号。

7.C语言本身不提供输入输出语句。输入输出是由库函数scanf和printf等函数来完成的。

8.程序应当包含注释。

课后习题

1.什么是程序?什么是程序设计?
程序:一组计算机可以识别和执行的指令
程序设计:从确定任务到得到结果、写出文档的全过程

2.为什么需要计算机语言?高级语言有哪些特点?
计算机语言解决了人和计算机交流的语言问题,使得计算机和人都能识别
(1) 高级语言的数据结构要比汇编和机器语言丰富
(2) 高级语言与具体机器结构的关联没有汇编以及机器语言密切
(3) 高级语言更接近自然语言更容易掌握
(4) 高级语言编写的程序要经过编译或解释计算机才能执行

3.正确理解以下名词及其含义:

(1)源程序,目标程序,可执行程序。
源程序:指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令
目标程序:为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名
可执行程序:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体,生成一个可供计算机执行的目标程序,成为可执行程序

(2)程序编辑,程序编译,程序连接。
程序编辑:上机输入或者编辑源程序。
程序编译:先用C提供的“预处理器”,对程序中的预处理指令进行编译预处理;对源程序进行语法检查, 判断是否有语法错误,直到没有语法错误未知;编译程序自动把源程序转换为二进制形式的目标程序
程序连接:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体的过程称之为程序连接

(3)程序,程序模块,程序文件。
程序:一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具
程序模块:可由汇编程序、编译程序、装入程序或翻译程序作为一个整体来处理的一级独立的、可识别的程序指令
程序文件:程序的文件称为程序文件,程序文件存储的是程序,包括源程序和可执行程序

(4)函数,主函数,被调用函数,库函数。
函数:将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,来完成一定功能
主函数:又称main函数,是程序执行的起点
被调用函数:由一个函数调用另一个函数,则称第二个函数为被调用函数
库函数:一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是编译器特定的库函数

(5)程序调试,程序测试。
程序调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程
程序测试:是指对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行

4.编写一个C程序,运行时输出
Hello World!

#include<stdio.h>
int main()
{
	printf("Hello World!");
	return 0;
}

5.编写一个C程序,运行时输出以下图形:
在这里插入图片描述

#include<stdio.h>
int main()
{
	printf("*****\n *****\n  *****\n   *****\n");
	return 0;
}

6.编写一个C程序,运行时输人a,b,c三个值,输出其中值最大者。

#include<stdio.h>
int main()
{
	int a, b, c, t;
	int max(int x, int y);
	scanf("%d %d %d", &a, &b, &c);
	t = max(a, b);
	if (t > c)
	{
		printf("%d", t);
	}
	else
	{
		printf("%d", c);
	}
	return 0;
}
int max(int x, int y)
{
	if (x > y)
	{
		return(x);
	}
	else
	{
		return(y);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值