一、C语言概述

1. C语言历史

1.1 1960年 ALGOL 60 面向问题,离硬件较远,不适合系统程序

1.2 1963年 CPL语言 接近硬件,但太过复杂,难以实现 英国剑桥大学

1.3 1967年 BCPL语言 对CPL语言简化而来 英国剑桥大学 Matin Richards

1.4 1970年 B语言 以BCPL为基础设计出,更简单,更接近硬件 美国贝尔实验室 Ken.Thompson

1.5 1972-1973年 C语言 由B语言发展为C语言 D.M.Ritchie

1.6 1973年 Unix操作系统 用C语言重写Unix操作系统 Ken.Thompson和D.M.Ritchie

1969年汇编写Unix 贝尔实验室 Ken.Thompson和D.M.Ritchie

1.7 1977年 可移植到C语言

1.8 1978年 K&R C The C Programming Language第一版 Brian.W.Kerninghan和Dennis.M.Ritchie

1.9 1983年 ANSI标准 美国国家标准化协会(ANSI)

1.10 1987年 87 ANSI 现行的C语言标准

1.11 1988年 K&R书改写 以ANSI C重写了The C Programming Language

1.12 1990年 ISO C 国际标准化组织接受87 ANSI C作为ISO C

2. C语言特点

1.语言简洁,紧凑,使用方便灵活。共32个关键字,9种控制语句。

2.运算符丰富。语言表达能力强,34种运算符,应用范围广。

3.数据类型丰富,具有现代化语言的各种数据结构。

4.具有结构化的控制语句。3种基本结构的流程控制语句;也有实现模块化的函数结构、函数调用。

5.语法限制不太严格,程序设计自由度大。

6.允许直接访问物理地址,可以进行位操作,能实现汇编语言的大部分功能,用于写系统软件。

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

8.程序可移植性比较好。本身不依赖于计算机硬件系统和操作系统。提供预处理命令,提高软件开发效率,为程序的组织和编译提供便利,亦提高了程序的可移植性。

9.兼有高级语言和低级语言的特点。具有高级语言面向用户,容易理解,便于阅读和书写的有点。具有与内存地址对应的指针处理方式,可以直接处理内存中的各种类型数据,直接操作硬件。

3. C语言组成结构

  1. C程序组成

语句是C语言的最小构成单位,以分号结束。

函数为C程序的基本单位,是C语言容易实现程序的模块化。main函数为程序的起点,C程序由一个main函数和若干个其它函数构成。

  1. 函数组成

函数首部:函数名,函数类型,函数属性,函数参数名,参数类型。

函数体:大括号内的,由声明部分(定义函数中用到的变量)和执行部分组成。

4. 上机运行C程序步骤

1. 编辑源程序(Edit)

2. 编译(Complie) 可查出程序中的语法错误,生成目标程序

3. 连接(Link) 生成可执行文件

4. 执行(Run)

5. 调试(Debug)

  • a) 编译错误——编译时出错
  • i. 语法错误
  • ii. 警告错误
  • b) 逻辑错误——编译和执行不出错,但得不到想得到的结果
  • c) 运行错误——特殊情况下发生,如变量越界,除零错误等
  • d) 连接错误——目标文件到可执行文件,如库函数不存在或找不到

5. 举例及习题

1.简答

From C语言程序设计教程 严尚维主审 华南理工大学出版社

1.1 C程序的基本结构包括内容?

From C语言程序设计教程 严尚维主审 华南理工大学出版社

1.2 如何定义标识符?

From C语言程序设计教程 严尚维主审 华南理工大学出版社

1.3 输入格式、输出格式的组成包括内容?

From C语言程序设计教程 严尚维主审 华南理工大学出版社

1.4 C语言函数分为哪两类?

From C语言程序设计教程 严尚维主审 华南理工大学出版社

1.5 计算机表达式的值应该考虑哪些方面?

From C语言程序设计教程 严尚维主审 华南理工大学出版社

From C语言程序设计习题解答与上机指导

1.6 上机调试程序的步骤?

From C语言程序设计全析精解(第3版) 秦友萍编 西北工业大学出版社

From C程序设计-第三版-谭浩强

From 计算机程序设计基础-C语言程序设计

1.7 写出一个C程序的构成。

From C程序设计-第三版-谭浩强

From C语言程序设计习题解答与上机指导

1.8 C语言以函数为程序的基本单位,有什么好处?

From C语言程序设计习题解答与上机指导

1.9 简述C语言的发展过程。

From C语言程序设计习题解答与上机指导

1.10 C语言程序的主要结构特点和书写格式是什么?

From C语言程序设计

1.11 C程序中,main函数其什么作用?

From C程序设计-第三版-谭浩强

From C语言程序设计

From 计算机程序设计基础-C语言程序设计

1.12 C语言的主要特点。

From C程序设计-第三版-谭浩强

1.13 C语言的主要用途是什么?它和其他高级语言有什么异同?

2.程序

From C程序设计-第三版-谭浩强

From C语言程序设计辅导讲案-主讲教材-C语言程序设计

From C语言程序设计习题解答与上机指导

2.1 在屏幕上输出字符串。

例:

输出字符串“This is a C program.”
#include<stdio.h>
void main()
{printf("This is a C program.\n");
}

例:

输出字符串
#include<stdio.h>
void main()
{printf("********************\n");printf(" Very good!\n");printf("********************\n");
}

From C语言程序设计教程 严尚维主审 华南理工大学出版社

2.2 输入圆点半径,求圆面积、圆周长,将结果显示。

例:

求圆周长,面积#include<stdio.h>
#define PI 3.14
void main()
{float r,area,girth;printf("\nr = ");scanf("%f",&r);area = PI*r*r;girth = 2*PI*r;printf("Circle area = %.2f, girth = %.2f\n",area,girth);
}

From C程序设计-第三版-谭浩强

From C语言程序设计辅导讲案-主讲教材-C语言程序设计

From C语言程序设计全析精解(第3版)

From C语言程序设计

2.3 求两个数的最大数。——求最小值,求三个数最大数,四个数最大数。

例:

求两个数的最大值
#include<stdio.h>
void main()
{int max(int x,int y);int a,b,themax;printf("Input two number:[format:number1,number2]\n");scanf("%d,%d",&a, &b);themax = max(a,b);printf("max = %d\n",themax);
}int max(int x,int y)
{int z;if(x>y){z=x;}else{z=y;}return z;
}

例:

求四个数的最大值
#include<stdio.h>
void main()
{int max(int x,int y);int a,b,c,d,themax;printf("Input four number:[Format:a,b,c,d]\n");scanf("%d,%d,%d,%d",&a, &b, &c, &d);themax = max(a,b);themax = max(themax,c);themax = max(themax,d);printf("max = %d\n",themax);
}int max(int x,int y)
{int z;if(x>y){z=x;}else{z=y;}return z;
}

From 程序设计技术

2.4 输入一个字符串,将其中的小写字母转化为大写字母。

例:

求四个数的最大值
#include<stdio.h>
#define SIZE 80
void main()
{void myputc(char ch);char str[SIZE];int j;gets(str);for(j=0;str[j]!='\0';j++){myputc(str[j]);}
}void myputc(char ch)
{char cc;cc=(ch>='a'&&ch<='z')?ch+'A'-'a':ch;putchar(cc);
}

From C程序设计-第三版-谭浩强

2.5 求数之和

例:

两数之和
#include<stdio.h>
void main()
{int a,b,sum;a = 123; b = 456;sum = a + b;printf("sum is %d\n",sum);
}

例:1到n累加和

1到n累加和
#include<stdio.h>
void main()
{int i,n,sum = 0;printf("please input n:");scanf("%d",&n);for(i = 1;i <= n;i++){sum = sum + i;}printf("1+2+...+%d = %d\n",n, sum);
}

From C语言程序设计习题解答与上机指导

2.6 求三个数的平均值

例:

三个数的平均值
#include<stdio.h>
void main()
{int a,b,c;float avrg;printf("Input three numbers:[format:a,b,c]\n");scanf("%d,%d,%d",&a,&b,&c);avrg = (a+b+c) / 3.0;printf("average is %.2f\n",avrg);
}

3.其他

From C语言程序设计教程 严尚维主审 华南理工大学出版社

3.1 【判断】C程序执行的入口时main函数,所以main函数必须放在程序的开头。

3.2 【判断】定义一个函数包括说明部分和执行语句部分,两者可以交叉出现。

3.3 【判断】编辑与编译不是同一回事。

3.4 【判断】scanf(“%d,%d”,&x,&y);的正确输入格式是:3,4↙。

3.5 【判断】注释内容太多会影响程序的执行效率。

3.6 【判断】所有的数学公式可以直接出现在源程序中。

析:3.1 C程序中main函数可以出现在任何位置。3.2 3.3 正确。编辑为对源程序内容编写,编译为将源程序转换为目标文件。3.4 正确3.5 错误。注释作用是增加程序的可读性,在编译连接后,注释被忽略,并不影响执行效率。3.6 错误。有些数学公式需要调用函数,有的需要自定义函数。

From C语言程序设计习题解答与上机指导

3.7 【程序分析】分析下列程序运行结果。

main()
{printf(“Test…”);printf(“…1”);printf(“…2”);printf(“\n”);
}

析:输出结果:Test......1...2

From C语言程序设计习题解答与上机指导

3.8 【程序分析】找出下列程序错误,修改后验证正确性。

main()
{int sum;/*Compute resultsum=25+45+50/*Display result*/printf("The answer is %d\\n",sum);
}

析:注释正确格式/*……*/,即上述程序第4~6行均被注释,需在第4行加入*/。
加入*/后,第5行语句不完整,缺少“;”。
最后的输出函数中\\为转义符表示输出\,故原本需要的换行\n失效,删除一个\即可。
正确程序: main(){int sum;/*Compute result*/sum=25+45+50;/*Display result*/printf("The answer is %d\n",sum);}

:注释正确格式/*……*/,即上述程序第4~6行均被注释,需在第4行加入*/。

加入*/后,第5行语句不完整,缺少“;”。

最后的输出函数中\\为转义符表示输出\,故原本需要的换行\n失效,删除一个\即可。

正确程序: main()

{

int sum;

/*Compute result*/

sum=25+45+50;

/*Display result*/

printf("The answer is %d\n",sum);

}

From C语言程序设计

3.9 【选择】用C语言编写的代码程序()

A. 可立即执行

B. 是一个源程序

C. 经过编译即可执行

D. 经过编译解释才能执行

析:C语言为编译型语言,需要通过编译,而执行又须通过连接。故B正确。

From C语言程序设计

3.10【选择】以下叙述正确的是()

A. C语言比其他语言高级

B. C语言可以不用编译就能被计算机识别执行

C. C语言可以接近英语国家的自然语言和数学语言作为语言的表达式

D. C语言出现的最晚,具有其他语言的一切优点

析:C语言相对于汇编语言高级,人们习惯于将C语言划分为高级语言,但C语言是介于低级语言与高级语言之间的,同时具有两者的优点。C语言也有其局限性,与C++相比,C++更适合开发大型项目。C语言为编译型语言,而非解释性语言,必须通过编译连接,才能被计算机识别执行。

From C语言程序设计

3.11【选择】在一个C程序中()

A. main函数必须出现在所有函数之前

B. main函数可以在任何地方出现

C. main函数必须出现在所有函数之后

D. main函数必须出现在固定位置

析:main函数可以出现在程序中的任何位置。不过在使用其他函数时需预先声明其他函数,以确保在main函数调用时,能够找到。

From 计算机程序设计强化复习-最新大纲版-C语言篇

3.12 【选择】以下叙述正确的是()。

A. 一个用C语言编写的程序在运行时总是从main函数开始执行的

B. main函数是系统库函数

C. main函数中每行只能出现一条语句

D. main函数必须出现在所有其他函数之前

析:任何一个C程序都从main函数开始执行,A正确。
库函数是C编译系统中已经预先定义的函数,使用它必须先包含该库函数所在地头文件。
C程序中每行并不限定写几条语句,书写格式自由,只是为了程序的美观以及可读性,习惯性每行只写一条程序语句。
main函数可以出现在源程序的任何位置。

From 计算机程序设计强化复习-最新大纲版-C语言篇

3.13 【选择】一个C语言编写的源程序中,()是必不可少的。

A. 取名为main的函数定义

B. #include<stdio.h>

C. 变量声明

D. 注释

析:main函数必不可少,程序入口,任何一个C程序都从main函数开始执行。
#include<stdio.h>引入标准输入输出函数,C程序中输入输出由函数实现。
当函数中未使用到变量时,则不需变量,如简单的输出一个字符串。
注释作用是为了提高程序的可读性。

转载于:https://www.cnblogs.com/huaxia283611/articles/2830497.html

C语言学习1——C语言概述相关推荐

  1. c语言float二进制输出代码_C语言学习笔记——学前知识概述

    将我大一学习C语言时做的笔记拿来与大家分享,内容比较浅显,比较适合初学者,如有错误还请见谅,提出改正,谢谢! 前言:此C语言笔记是本人在自学时记录的一些重点或初学者常犯的错误,希望我的这本笔记能够对大 ...

  2. Python语言学习:python语言代码调试—异常处理之详细攻略

    Python语言学习:python语言代码调试-异常处理之详细攻略 目录 python语言代码调试-异常处理 异常捕捉可以使用 try/except 语句 相关文章 Python3 错误和异常 | 菜 ...

  3. python语言学习:python语言学习中的定义类、定义函数、封装api等详细攻略

    python语言学习:python语言学习中的定义类.定义函数.封装api等详细攻略 目录 python语言学习中的定义类 python语言学习中的定义函数 python语言学习中封装api pyth ...

  4. Python语言学习:python语言的特点、入门、基础用法之详细攻略

    Python语言学习:python语言的特点.入门.基础用法之详细攻略 相关内容 Python 基础教程 目录 python语言的特点 python语言的入门 python语言的基础用法 python ...

  5. C语言学习笔记---001C语言的介绍,编译过程原理,工具等

    C语言学习笔记---001C语言的介绍,编译过程原理,工具等 创梦技术交流平台:资源下载,技术交流,网络赚钱: 交流qq群:1群:248318056 2群:251572072 技术交流平台:cre.i ...

  6. Python语言学习:Python语言学习之硬件交互应用(arduino、树莓派等)相关的简介、案例应用之详细攻略

    Python语言学习:Python语言学习之硬件交互应用(arduino.树莓派等)相关的简介.案例应用之详细攻略 目录 Python与硬件交互应用 1.适合运行python的嵌入式硬件系统 1.1. ...

  7. Python语言学习:Python语言学习之正则表达式常用函数之re.search方法【输出仅一个匹配结果(内容+位置)】、re.findall方法【输出所有匹配结果(内容)】案例集合之详细攻略

    Python语言学习:Python语言学习之正则表达式常用函数之re.search方法[输出仅一个匹配结果(内容+位置)].re.findall方法[输出所有匹配结果(内容)]案例集合之详细攻略 导读 ...

  8. C语言学习历程——C语言发展史以及--Hello World 程序

    C语言之父 丹尼斯·麦卡利斯泰尔·里奇(英语:Dennis MacAlistair Ritchie,1941年9月9日-2011年10月12日),美国计算机科学家,他是C语言的创造者.Unix操作系统 ...

  9. net语言学习教程 net语言从入门到精通视频教程

    net语言学习教程_0基础学net语言也可以,空闲时间学习,不耽误上班.2019年net语言新课程已经上线,多种课程任您选,随到随学,互动性强,效果好! NET语言学习介绍 NET学习课程说明 NET ...

最新文章

  1. 系统动力学_System Dynamics
  2. 2019计算机原理及应用期末自测题,微机原理期末自测题答案.ppt
  3. ubuntu常见错误–Could not get lock /var/lib/dpkg/lock解决
  4. sparksql dataframe变成csv保存_Spark大数据分析(三):DataFrame和SQL
  5. Spring 事务core 模块-JdbcTeamplate 对象
  6. 鸿蒙1号六年级下册课时练答案,【奥数天天练】小学1~6年级思维能力特训|第310期...
  7. 计算机操作系统读者和写者模型的简单介绍以及思考
  8. 一个iOS 框架介绍:MKNetworkKit
  9. mui mui.plusReady() 事件中的变量问题;
  10. 数组的声明、创建、初始化
  11. 20世纪50年代到60年代 电子计算机,计算机基础知识习题标准答案
  12. 带你快速入门AXI4总线--AXI4-Full篇(2)----XILINX AXI4-Full接口IP源码仿真分析(Slave接口)
  13. ANT:修改测试报告的样式jmeter-results-shanhe-me.xs
  14. [JZOJ5551] 【NOI2019模拟6.24】旅途【最短路】
  15. 深度神经网络之Keras(二)——监督学习:回归
  16. 元素显示类型-快元素、行内元素、行内快元素、盒子模型以及元素类型相互转换
  17. 天翼云linux远程密码不对,天翼云主机远程连接
  18. android EditText 属性介绍
  19. visualDL(一)scalar标量图
  20. 汇编总结:mov指令

热门文章

  1. 海信75E5K怎么样 海信75E5K和75E5H区别 哪个好
  2. 安化哪里赏雪景?去云台山巅,一步一景,景景皆宜!
  3. ubuntu配置网易云音乐
  4. Linux下挂载NTFS分区
  5. 糅合了《魔兽》和《第二人生》优点的新式游戏闪亮登场!
  6. linux安全配置技术论文,基于linux平台的web安全技术研究apache安全大学论文.doc
  7. arduino ide 2.0 中文设置
  8. 浅学 “ 增强For循环 ”
  9. 按Backspace键删除时,会出现^H
  10. mysql查找喜欢的女孩_看着自己喜欢的女生喜欢上别人是什么感觉?