序言C语言概述和运行环境
1概述:
语言:
C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
二级C语言属于全国计算机等级考试一年举行两次。每年上半年3月倒数第一个星期六上午进行;每年下半年九月份的9月倒数第二个星期六上午进行。
考试内容为10分计算机公共基础题(数据结构、程序设计、软件工程、数据库),90分的C语言课程题;考试题型分为:40个选择题(40分),1道程序填空题(18分),1道程序改错题(18分),1道子程序实现题(24分),总分100分,考试时间120分钟,考试成绩总分60以上且上机题36分以上考试合格。
2运行环境:Microsoft Visual C++ 6.0
3环境安装:
图1选择“setup.exe”双击开始安装
图 2 选择接受协议继续安装
图 3 无需安装msdn 4软件应用
图 4 首先新建一个工程
图 5 然后在“工程”中新建文件
5常用的快捷键:
编译:ctrl+F7 运行:ctrl+F5 创建可执行文件:F7 插入/删除断点:F9
编辑 “源文件”.c ;编译生成:中间文件.obj ;连接生成:目标文件.exe ;执行内存映像文件。
第一章程序设计基本概念
1.1 程序和程序设计
1.1.1 C程序
软件:程序+数据+文档
程序:连续执行的一条条指令的集合称为“程序”。(若干有序指令的集合称为程序。)指令:完成特定意义的语句。
语句:表达式和分号。(任何语句都是以分号为结尾)
表达式:若干标识符和功能函数。
标识符:各种自定义变量和系统保留字;
功能函数:系统函数和自定义的子程序函数。
对于计算机来说,它不能识别由高级语言编写的程序,它只能接受和处理由0和1代码构成的二进制指令或数据。由于这种形式的指令是面向机器的,因此也被称为“机器语言”。所以所有由高级语言编写的程序都要经过编译,编译成二进制代码。这种具有翻译功能的软件称为编译程序。(C++)
语言有很多种,我们现在要谈论的就是C语言。为什么计算机会能进行各种各样的操作,就是由不同的指令来实现的。而不是只有C语言才可以实现这样的功能。还有其它很多语言。但是我们一般说C语言是其它语言的母语。会了C语言其它语言在学习的过程的过程就会感到轻松一些。
C语言源程序文件名的后缀.c,经过编译后,生成文件的后缀是.obj,经过连接后,生成可执行文件的后缀是.exe。
1.1.2 程序设计(选择题)
1.确定数据结构(数据存放与数据之间的关系,)
2.确定算法(可以理解成将原材料进行加工的加工厂,解决问题的方法和思路)
3.编码(写代码,去实现功能)
4.在计算机上调试程序(有错误进行调试)
5.整理并写出文档资料(阑述程序所实现的功能,使用时应注意什么)
1.2 算法
定义:是指为了解决某个特定的问题而采取的确定
..的步骤。
..且有限
1.有穷性(有限的时间内能执行完)
2.确定性(每次得到的结果是一样的)
3.可行性(能用)
4.有零个或多个输入
5.有一个或多个输出
1.3 结构化程序设计和模块化结构
结构化程序由三种基本结构组成: 1.
2. 选择结构
3. 循环结构(所有循环都是趋于结束的)
例:计算机能直接执行的程序是()
A.源程序
B.目标程序
C.汇编程序
D.可执行程序
例:以下叙述正确的是()
A.程序设计的任务就是编写程序代码并上机调试
B.程序设计的任务就是确定所用数据结构
C.程序设计的任务就是确定所用算法
D.以上三种说法都不完整
第二章 C程序设计初步知识
2.1 简单C语言程序的构成和格式
#include
main()
{
double a,b,area;
a=1.2; /*将矩形的两条边长分赋给a和b*/
b=3.6;
area=a*b;/*计算矩形的面积并存储到变量area中*/
printf("a=%f,b=%f,area=%f\n",a,b,area);
}
#include
main():是一个程序的主函数。一个程序是由多个函数组成,而任何一个程序都要有一个主函数,有且只有一个。任何程序都是由主函数开始执行的。
{}:它们两个必须要成对出现,它们中的语句是主函数体。包括定义部分和执行部分。它们中的语句,每一条必须由“;”结束。“;”是C语句的一个组成部分而不是结束标识。
/**/:注释符一事实上要成对出现,不允许嵌套。两个符号间的语句不被执行。
例1:
#include
main()
{
int a;
a=5; /*给a变量赋值5
a=a+3; 赋值后再加3*/
printf("%d\n",a);
}
看似等于8,其实为5
例:以下叙述中正确的是()
A.C程序的基本组成单位是语句
B.C程序中的每一行只能写一条语句
C.简单C语句必须以分号结束
D.C语句必须在一行内写完
例:以下叙述中正确的是()
A. C程序中的注释只能出现在程序的开始位置和语句的后面
B. C程序书写格式严格,要求一行内只能写一个语句
C. C程序书写格式自由,一个语句可以写在多行上
D. 用C语言编写的程序只能放在一个程序文件中
改错:
#include stdio.h
main(); / *main function * /
float r,s; /*/* r is radius *//*s is area of circular*/
r=5.0;
s=3.14159*r*r;
printf("%f\n",s)
2.2标识符、常量和变量
2.2.1标识符
定义:由字母、数字和下划线组成,并且第一个字符必须为字母或下划线的。这样的组成是标识符。
下列合法的是:
else what#$123 34a a34 a_b a-b if
注意:
1.在C中大写字母与与小写字母被认为两个不同的字符。
2.对于标识符的长度,标识符的前若干个字符有效,超过的字符将不被识别。
C语言标识符分为以下三类:
关键字:在C中已经定义好了的,不能用作它用的。如if double int等。(附录1)预定义标识符:如printf scanf
用户(自定义)标识符:用户根据自己的需求来定义的。
例:以下选项中,能用作用户标识符的是()
A.void
B.8_8
C._0_
D.unsigned
例:以下选项中合法的标识符是()
A.1-1
B.1-1
C._11
D.1—
例:以下选项中不合法的标识符是()
A、print
B、FOR
C、&a
D、_00
2.2.2常量
定义:是指在程序的执行的过程中,其值不会被改变的量。
分类:
整型常量:没有小数的常量。如:3 9 1324
实型常量:有小数点的常量。如:3.9 3.0 3.
字符常量:由单个字符组成的量。如’a’’b’‘3’ 1.符号字符串常量:至少由一个字符组成的量。如”a”“abc”“beijing”区别 2.空间符号常量:符号常量的值到底是多少,这是由定义符号常量时来决定的。如:P 10 例:以下选项中,能用作数据常量的是()
A.o115
B.0118
C. 1.5e1.5
D.115L
例:以下选项中不能作为C语言合法常量的是()
A.‘cd’
B.0.1e+6
C.“\a”
D.‘\011’
例:以下选项中不属于字符常量的是()
A.‘c’
B.“c”
C.“\xcc0”
D.‘\072’
2.2.3整型常量和实型常量
一、整型常量:
整型常量的几种表示方法:
十进制:0-9
八进制:以0开头的数字,由0-7组成。如0234
十六进:以0x开头,由0-9和A-F组成。
例:下列合法的八进制数是()
A.0
B.028
C.-077(以0开头的,不能表示负数)
D.01.0
例:下列不合法的十六进制数是()
A.oxff
B.0xabc
C.0x11
D.0x19
注:十进制、八进制、十六进制是可以相互转换的。
例:2710=338=1B16
27=033=0x1B
二、实型常量
实型常量的几种表示方法:
小数形式:12.3
指数形式:1.23e2
注意:
1.字母e或E之前必须要有数字
2.字母e或E之后的数字必须是整数
3.字母e或E与数字之间不能有空格
例:下列实型常量合法的是()
2.607E-10.8103E 2 -77.77 456E-20.1e+6 1.23E1.2
2.2.4变量
一、定义:在程序的运行过程中其值可以被改变的量,就叫变量。
二、原则:变量必须先定义后使用。变量定义的过程就是给变量开辟存储单元的过程。
三、分类:
1.整型变量
用关键字int来定义。
例:
#include
main()
{
int a;
a=7;
printf("%d",a);
}
Int 普通整型:
short int 短整型:在内存中占2字节,范围-32768--32767
long int 长整型:在内存中占有4个字节,如123L
unsigned 无符号如有-2000U这是错误的。
变量的定义:int a,b;这是定义了两个整型变量a和b。
2.实型变量
用关键字double和float来定义
float单精度:在内在中占了4个字节
double双精度:在内存中占8个字节
在VC6.0中,所有的float类型数据在运算中自动转换成double类型数据。
例:
#include
main()
{
double a=7.7,b=8;
printf("%f,%f",a,b);
}
2.3算术表达式
一、算术运算符
+、-、*、/、%:双目运算符(就是操作对象有两个)
注意:除%以外,其它的运算符的运算对象可以是整型也可以是实型,%的操作对象只能是整型。(可以用于判断是不是偶数等)
如:10%3=1 错误:10.7%3 10%4.5
+、-:可以做为单目运算符
说明:
(1)如果双目运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致。
如1.0/2.0=0.5 1/2=0
(2)如果双目运算符两边运算数的类型不一致,则系统会自动进行类型转换,使两边的类型一致后,再进行运算。(附录5)
如1.0/2=0.5
(3)所有的单精度数据,在运算过程中都以双精度进行运算。
二、优先级
()+ - * / % + -
单目双目
同级同级同级
高低
例:5+1/2=5
三、算术表达式
用算术运算符和一对圆括号将运算数连接起来的表达式。
(1)算术表达式中,运算对象可以是常量、变量和函数等,如:2+sqrt(c)*b
(2)在算术表达式中,若包含不同优先级的运算符,则按运算符的优先级由高到低的顺序进行,若表达式中运算符的级别相同,则按结合方向进行。单目运算符+和-的结合方向是从右向左,其余运算符的结合方向是从左到右。
2.4强制类型转换表达式
格式:(类型名)(表达式)
例:(int)(3.234)=3
(double)10%3=?
总结:类型名的括号不能省,若表达式为一个运算数时,表达式的括号可以省。
例14:表达式:(int)((double)9/2)-(9)%2的值是()
A.0
B.3
C.4
D.5
例14:设变量已正确定义并赋值,以下正确的表达式是()
A.x=y*5=x+z
B.int(15.8%5)
C.x=y+z,++y
D.x=25%5.0
2.5赋值表达式
一、赋值运算符和赋值表达式
赋值运算符:=
格式:变量名=表达式
注意:
1.不可以颠倒(左边必须是变量名,右边必须是C语言中合法的表达式)
2.功能就是先求出右边表达式值,然后把此值赋值给赋值号左边的变量。确切的
说是把数据存入以该变量为标识的存储单元中去。如a=4,a=7
3.结合性的优先级仅高于逗号表达式。顺序是自右向左的。如a=2+7/3
4.=是一个赋值号,不是一个等号a==b(a等于b);a=b(a赋值为b)
5.x=y。变量的值也是可以传递和赋值的。它是将变量y的值赋值到x中去,同
样a=a+1也成立(或写成a+=1)
6.赋值运算符的左侧只能是变量,不能是常量或表达式,如a+b=c是错误的
7.赋值号的右边也可以是一个赋值表达式。如a=b=7+1
补充:表达式与语句的区别:表达式后面加一个分号就是语句。
二、复合赋值表达式
在赋值运算符之前加上其他运算符可以构成复合赋值运算符。复合运算符有+=、-=、*=、/=、%=,它的优先级别与赋值运算符相同。
如:a+=3相当于a=a+3,同理-=、*=、/=、%=。
如:a+=a-=a+a,其中a的初值为9,则结果a=-18
例15:若有定义语句:int x=10;,则表达式x-=x+x(相当于:x=x-(x+x))的值是()A.-20
B.0
C.-10
D.10
例14:设有定义:int x=2;,以下表达式值不为6的是()
A.x*=x+1 →x=x*(x+1)
B.x++,2*x →[x=x+1, ] 2(x+1)
C.x*=(1+x)→x=x*(1+x)
D.2*x,x+=2→x+=2→x=x+2
例17:若变量均已正确定义并赋值,以下合法的C语言赋值语句是()
A.x=(y= =5);y等于5?(y赋值为5,也就是y就是5,y=5)
B.x+n=1;
C.x=n%2.5;
D.x=5=4+1;
2.6自加和自减运算符
1.自加运算符“++”和自减运算符“--”的运算结果是使运算对象的值增1或减1。如i++相当于i=i+1,i+=1;,i--相当于i=i-1,i-=1。
2.运算符“++”和自减运算符“--”是单目运算符,运算对象可以是整型变量也可以是实型变量,不能是常量或表达式,如3++,(i+j)--
3.自加或自减运算符构成表达式时,既可以前缀形式出现,也可以以后缀形式出现。如i++,i--,++i,--i。对变量具有相同的效果,但对表达式来说有着不同的值。
如:
#include
main()
{
int i=4;
printf("%d",++i);相当于:i=i+1,i
printf("%d",i);
}
结果:55
#include
main()
{
int i=4;
printf("%d",i++);相当于:i,i=i+1;
printf("%d",i);
}
结果:45
总结:当++在前,先变量自身加1,然后计算整个表达式的值。总结为:先自增后使用当++在后,先计算整个表达式的值,然后变量自身加1。总结为:先使用后自增--与++同理。
如:int i=3,a;
a=i++;→(a=i;i=i+1;) 则a=3;i=4; 先使用,然后再自增
a=++i;→(i=i+1;a=i;) 则a=4;i=4; 先自增,然后再使用
2.7逗号表达式
一、用逗号将表达式连接起来的式子称为逗号表达式
二、格式:表达式1,表达式2,……表达式n
说明:
1.逗号表达式的结合性为从左到右进行运算,逗号表达的值是最后一个表达式的值
2.在所有运算符中,逗号运算符的优先级最低
例:
int i=5;
int a,b,c;
a=(i+8,7,i+7); 则a=12,i=5
b=(i++,++i); 则b=7,i=7
b=(i++;i++); 则b=6,i=7;
c=(i+7,i++); 则c=5,i=6
c=i+7,i++; 则c=12,i=6
总结:虽然逗号表达式的值为最后一个表达式的值,但不是说前面的不计算直接看后面表达式的值。\
/* /* /* afab */
课后习题
第三章顺序结构
3.1赋值语句
在赋值表达式的尾部加上一个“;”号,就构成了赋值语句。例如:
a=b+c;
i++;
--i;
a=b=c;
a=b,b=c;
赋值语句是一种可执行语句,一般出现在的可执行函数部分,不要把变量定义时的赋初值和赋值语句混为一谈。Int a=10; //int a; a=10;
3.2数据输出
1.printf函数的一般调用形式
格式:printf(格式控制,输出项1,输出项2,……)
在printf函数的最后面写上“;”就是输出语句。
如:printf(“a=%d,b=%d,c=%d”,a,b); 占位符
其中printf是函数名,用“”括起来的为格式控制;a,b为输出项
1)在格式控制中,用%前导的内容一般为输出格式控制可以理解为占位符;其他的一
般为原样输出;在格式控制部分,除了使用%前导的部分被后面的输出项替换外,其他内容原样输出。
2)输出项的个数一定要大于等于格式控制占位符的个数(最好相等)。输出项与对应
占位符的控制格式应该保持一致。个数尽量一致,类型必须一致
1.格式控制
(1)格式说明符
作用:就是使数据按格式说明符的要求进行输出
组成:由%号和紧跟在其后的格式描述符组成。
输出项类型为int→%d(对于长整型应该加l,即%ld,对于短整型可以用%hd)输出项类型为float或double→%f或%e
输出项类型为char→%c
输出项类型为char[]/string →%s
如表3.1P-24
例:
#include
main()
{
int i=67;
printf("%d\n",i);
printf("%c\n",i);//整型数与字符之间可以互换。字符型数据在内存中以整型的ASCII码进行存储。C→67
}
0→48
A→65
a→97
null→0
例:
#include
main()
{
double i=12.34;
printf("%f\n",i);
printf("%e\n",i); //科学计数法:1.025*105
} 1.025e001
(2)提供原样输出的文字或字符
在“”中除了格式说明符之外的内容要全部原样输出。
如:printf(“a=%d,b=%d”,a,b);
2.输出项(输出参数列表)
各个输出项之间要用逗号隔开。
输出项可以是任意合法的常量,变量或表达式。
例:
#include
main()
{
int a=1234;
double i=12.34;
printf("a=%d,i=%f,i*10=%e\n",a,i,i*10);
}
二、printf函数中常用的格式说明
在格式说明符中,每一个格式说明符都必须以%号开头,由相应的格式字符结束。但在他们之间可以加入“宽度说明”,左对齐符号“-”,前导零符号“0”等。
%c:输出一个字符
%d:输出一个十进制的数据
%o:以八进制格式输出
%x或%X:以十六进制输出
%u:无符号十进制输出
%f:以带小数点的数字输出
%e:以指数形式输出
%s:输出一个字符串
%%:输出一个%号
%4d:输出数据长度是4个长度,当原来的长度大于4个时会自动突破。小于4个时会从左填充空格。
%x.yf:x代表数制的宽度(包括小数点)。y代表小数点后面的小数位数。
输出宽度的控制:如果规定的宽度大于实际宽度,不足部分使用空格填充,如果是正数则前补空格,如果是负数则后补空格;如果规定的宽度小于实际宽度,整数部分原样输出,小数部分则使用四舍五入进行处理。
注意:
1.printf提供输出格式自由,是否在两个数之间留逗号、空格、回车完全取决于格式控制。如printf(“%d %d %d\n”,a,b,c);或printf(“%d,%d,%d\n”,a,b,c);这样数之间不会连在一起。即“”里面的格式制字符除了格式说明符(%引导)和转义字符(\引导)以外,其它字符原样输出。
2.格式说明符要与输出项一一对应。
如:int a=4,b=10;char c='7';printf("%d,%s\n",a,b);
如:int a=4,b=10;char c='7';printf("%d,%c\n",a,c,b);
3.输出语句中还可以有任意合法的字符,包括普通文本与转义字符,普通文本原样输出,转义字符\n(回车),\r(换行但不回车),\t(制表位),\a(响铃)。
4.尽量不要在输出语句中改变输出变量的值。
如:int i=3;printf(“%-d,%d\n”,i,++i);结果:4,4
如:int i=3;printf(“%d,%d\n” ,++i,i);结果:4,3
因为printf函数是从右向左进行处理的。
5.输出的数据中如果存在变量,一定要定义过的。
6.输出数据的域宽可以改变。
如:printf(“%*d” ,m,n);则按照m指定的域宽输出n的值,m不输出。printf(“%md”,n); 7.若要输出%,则可以在格式控制中用%%表示。
例13:阅读以下程序
#include
main()
{
int case;
float printF;
printf("请输入2个数")
scanf("%d%f",&case,&printF);
printf("%d%f\n",case,printF);
}
该程序编译时产生错误,其出错原因是()
A、定义语句出错,case是关键字,不能用作用户定义标识符
B、定义语句出错,printF不能用作用户定义标识符
C、定义语句无错,scanf不能作为输入函数使用
D、定义语句无错,printF不能输出case的值。
例16:以以下程序
#include
main()
{
int a=1,b=0;
printf("%d,",b=a+b) // 1,
printf("%d\n",a=2*b);//1,2
}
程序运行后的输出结果是()
A、0,0
B、1,0
C、3,2
D、1,2
例:程序段:int x=12;
double y=3.141593;
printf(“%d%8.6f”,x,y);的输出结果是()//12
A、123.141593
B、12
3.141593
C、12,3.141593
D、12 3.141593
如:
#include
main()
{
double a=123.456;
printf("%6.2f,",a);
}
运行结果:123.46
同样的程序,做出以下修改后的结果分别是:
printf("%3.3f,",a); 结果:123.456
printf("%7.8f,",a); 结果:123.45600000
总结:若给出的宽度小于实际长度,则自动突破,若给出的宽度大于实际长度,则右对齐。
若小数位数大于实际小数位数,则自动在小数位右侧补0。
3.3数据输入
scanf(“”,);
如:
#include
main()
{
int i;
printf("请输入一个数:");
scanf("%d",&i);//相当于为变量i赋值,值来源于屏幕上按格式扫描到的内容。
printf("刚才输入的是:%d\n",i);
}
一、scanf函数的一般调用格式
格式:scanf(格式控制,输入项1,输入项2,……)
在scanf函数后加上“;”,则构成输入语句。
如:想通过键盘输入3个数分别给a,b,c。并且他们分别为整型,浮点型,双精度型。
则输入语句为:scanf(“%d%f%lf”,&a,&b,&c);
其中:scanf是函数名,双引号括起来的字符串部分为格式控制部分,其后的&a,&b,&c 为输入项。
如:
#include
main()
{
int a;
float b;
double c;
printf("请输入三个数:");
scanf("%d%f%lf",&a,&b,&c);
printf("刚才输入的是:%d,%f,%f\n",a,b,c);
}
输入:作为数值型的输入,可以使用回车作为分隔符。
1
2.3
4.6
结果:
二、scanf函数中常用的格式说明符
每个格式说明符必须用%开头,以一个“格式字符”作为结束。
格式字符及其功能如下:
%c:输入一个字符
%d:输入带符号十进制整型数
%i:输入整型数,整型数可以是带先导0的八进制数,也可以是带先导0x(或0X)的十六进制数。
%o:以八进制格式输入整型数,可以带先导0,也可以不带。
%x:以十六进制格式输入整型数,可以带先导0x(或0X),也可以不带
%u:以无符号十进制输入整型数
%f(lf):以带小数点的数学形式或指数形式输入浮点数(单精度用f,双精度用lf)%e(le):同上
%s:输入一个字符串,直到遇到“\0”。
%x.yf:x代表数制的宽度(包括小数点)。y代表小数点后面的小数位数。
说明:
1.格式说明符与输出语句一样。
2.在格式串中,必须含有与输入项一一对应的格式转换说明符。即类型和个数都要对应。如:上例中输入a,b,c为2.3.4,则结果:
3.在VC6.0的环境下,要输入double型数据的格式说明符一定要用%lf,否则数据不能正确的输入,如:上例输入语句改成:scanf("%d%f%f",&a,&b,&c);。
若要输入:
1
2.23
1.123456
则结果:
4.由于输入是一字符流,所以当输入的数据少于输入项时,程序会等待用户输入,直到满足要求。当输入的数据多于输入项时,多余的数据会自动作废。
如:上例输入1.2.3.4后直接接收1 .2 .3后面舍弃了。
三、通过scanf函数从键盘输入数据
1.输入数值数据
在输入整数或实数时,输入的数据之间必须用空格、回车符、制表位等间隔符隔开,间
ACM协会C语言讲义 知识点1:C语言的数据类型 所谓数据类型是按被定义变量的性质,表示形式,占据存储空间的多少,构造特点来划分的。在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。 知识点2:常量 对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不能被改变的量称为常量。 整型常量:12,0,-3 实型常量:0.25,12.345,-3.4 字符常量:’a’,’b’ 知识点3:符号常量 符号常量:用标示符代表一个常量。在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。 符号常量在使用之前必须先定义,其一般形式为: #define 标识符常量 习惯上,符号常量名用大写,变量名用小写,以示区别 例 #define PRICE 30 #include
total=num*PRICE; printf("total=%d\n",total); } 程序中,用#define命令行定义PRICE代表常量30,此后凡在本程序中出现的PRICE都代表30,可以和常量一样进行运算,程序运行结果为 total=300 用标识符代表一个常量,称为符号常量。 符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值。 符号常量的好处是: 含义清楚; 能做到“一改全改”。 知识点4:标识符 在C语言中用来对变量、符号常量、函数、数组、类型等数据对象命名的有效字符序列统称为标识符。简单的说,标识符就是一个名字。 C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。 知识点5:字符串常量 字符换常量是一对双撇号括起来的字符序列。 “Hello world” C规定:在每一个字符串常量的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。C规定以字符’\0’作为字符串结束标志。 知识点6:强制类型转换 (double)a (将a转换成double类型) (int)(x+y) (将x+y的值转换成整形) (float)(5%3) (将5%3的值转换成float型) 其一般形式为 (类型名)(表达式) 知识点7:自增、自减运算符 ++i,--I (在使用i之前,先使用i的值加(减)1) i++,i-- (在使用i之后,使用i的值加(减)1) 例 i=3; printf("%d",++i); 输出“4”,若改为 printf("%d",i++); 则输出“3”。 知识点8:复合的赋值运算符 a+=3 等价于a=a+3
C语言程序设计 模块一认识C语言 能力标准: 1.了解C语言的作用; 2.熟悉C程序结构; 3.掌握TC集成调试环境的使用。 知识点: 1.C语言是人和计算机交流的一种工具; 2.C语言程序的执行过程。 1.C语言的发展 计算机语言是计算机和人交流的工具,必须遵守一定的规则,具有一定的书写格式。C语言就是一种计算机语言,诞生于1972年,是由美国电话电报公司(AT&T)贝尔实验室的Dennis.M.Ritchie 设计。C语言诞生至今已30多年,其发展经历了ALGOL(1960年)—CPL(1963年)—B(1970年)—C(1972年)的演变过程。 2.人机交流 人和计算机交流可以采用对话形式的一问一答方式,也可采用任务方式,即把需要交流的内容集中在一起,一次性完成。前者的专业述语叫解释方式,后者叫编译方式。用C语言进行人和计算机交流采用的是编译方式。具体过程如下: ?编程首先人将和计算机交流的内容按要求,用C语言写成任务,如要计算机计算5!,则需要写出以下任务: #include
经典,学习C语言的天堂C语言算法:栈 void fun (char *s, char *t) { int i, d; /***********SPACE***********/ d = 【?】; /***********SPACE***********/ for (i = 0; i 序言C语言概述和运行环境 1概述: 语言: C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。 二级C语言属于全国计算机等级考试一年举行两次。每年上半年3月倒数第一个星期六上午进行;每年下半年九月份的9月倒数第二个星期六上午进行。 考试内容为10分计算机公共基础题(数据结构、程序设计、软件工程、数据库),90分的C语言课程题;考试题型分为:40个选择题(40分),1道程序填空题(18分),1道程序改错题(18分),1道子程序实现题(24分),总分100分,考试时间120分钟,考试成绩总分60以上且上机题36分以上考试合格。 2运行环境:Microsoft Visual C++ 6.0 3环境安装: 图1选择“setup.exe”双击开始安装 图 2 选择接受协议继续安装 图 3 无需安装msdn 4软件应用 图 4 首先新建一个工程 图 5 然后在“工程”中新建文件 5常用的快捷键: 编译:ctrl+F7 运行:ctrl+F5 创建可执行文件:F7 插入/删除断点:F9 编辑 “源文件”.c ;编译生成:中间文件.obj ;连接生成:目标文件.exe ;执行内存映像文件。 第一章程序设计基本概念 1.1 程序和程序设计 1.1.1 C程序 软件:程序+数据+文档 程序:连续执行的一条条指令的集合称为“程序”。(若干有序指令的集合称为程序。)指令:完成特定意义的语句。 语句:表达式和分号。(任何语句都是以分号为结尾) 表达式:若干标识符和功能函数。 标识符:各种自定义变量和系统保留字; 功能函数:系统函数和自定义的子程序函数。 对于计算机来说,它不能识别由高级语言编写的程序,它只能接受和处理由0和1代码构成的二进制指令或数据。由于这种形式的指令是面向机器的,因此也被称为“机器语言”。所以所有由高级语言编写的程序都要经过编译,编译成二进制代码。这种具有翻译功能的软件称为编译程序。(C++) 语言有很多种,我们现在要谈论的就是C语言。为什么计算机会能进行各种各样的操作,就是由不同的指令来实现的。而不是只有C语言才可以实现这样的功能。还有其它很多语言。但是我们一般说C语言是其它语言的母语。会了C语言其它语言在学习的过程的过程就会感到轻松一些。 C语言源程序文件名的后缀.c,经过编译后,生成文件的后缀是.obj,经过连接后,生成可执行文件的后缀是.exe。 1.1.2 程序设计(选择题) 1.确定数据结构(数据存放与数据之间的关系,) 2.确定算法(可以理解成将原材料进行加工的加工厂,解决问题的方法和思路) 3.编码(写代码,去实现功能) 4.在计算机上调试程序(有错误进行调试) 5.整理并写出文档资料(阑述程序所实现的功能,使用时应注意什么) 1.2 算法 定义:是指为了解决某个特定的问题而采取的确定 ..的步骤。 ..且有限 1.有穷性(有限的时间内能执行完) 2.确定性(每次得到的结果是一样的) 3.可行性(能用) 4.有零个或多个输入 5.有一个或多个输出 C++语言基础 说明:本部分资料是C++语言基础部分,由于《C++程序设计》课本中未讲解语言基础,在此我们补充完整,希望同学们认真学习。 本资料中使用编译环境为VC 第1章C++语言概述 1.1 简单的C++程序介绍 例 #include C语言讲义
C语言讲义C基础