主讲人:梁蕊
联系方式:18791374973
QQ:2447640268
本次培训主要针对大一新生对C语言的入门学习,挑了通俗易懂和最基础的部分讲解,分为基础讲解,例题解析以及当场联系三部分,欢迎大家课后反馈,提出宝贵的意见和建议。
C语言简介
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言的编译环境
一、vc++ 软件有点老,只有计算机等级考试和学校平时教学使用
二、Devc++
C语言的基本结构
#include<studio.h>
void main()
{
printf("This is a C-language Program.\n");
}
C语言的基本构成
数据类型
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
字符串
C语言的字符串其实就是以'\0'字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行操作的函数。它们不同于字符数组。使用这些函数需要引用头文件。
变量赋值
在一个变量声明中,你可以给一个标量变量指定一个初始值,方法是在变量名后面跟一个等号(赋值号),后面就是你想要给变量的值。例如:
inti_Num=10;
char c_Name[]=”student”;
上述语句声明i_Num为一个整数变量,其初始值为10,声明c_Name为一个字符数组,其初始值为“student”。
在赋值语句的使用中需要注意以下几点:
a)由于在赋值符“=”右边的表达式也可以又是一个赋值表达式。
下述形式:
变量=(变量=表达式);
该语句是成立的,从而形成了嵌套的情形。其展开后的一般形式为:
变量=变量=…=表达式;
例如:a=b=c=d=e=5;
按照赋值运算符的右结合性,因此实际上等效于:e=5;d=e;c=d;b=c;a=b;
b)注意在变量声明中给变量赋初值和赋值语句的区别
给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其他同类变量之间仍必须用逗号隔开,而赋值语句则必须用分号隔开。
例如:int a=5,b,c;
c)在变量声明中,不允许连续给多个变量赋初值。
如下述说明就是错误的:
int a=b=c=5;
正确写法为:inta=5,b=5,c=5;
但是,赋值语句允许连续赋值。
d)注意赋值表达式和赋值语句的区别。
赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。下述语句是合法的:
If((x=y+7)>0) z=x;
语句功能为若表达式x=y+5大于0则z=x。
但是,下述语句是错误的:
If((x=y+7;)>0) z=x;
因为x=y+7;是语句,不能出现在表达式中。
运算
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。(i++;++i)
算术运算符及使用方式
例:
int i=3,j;
j=i++;
int i=3,j;
j=++i;
关系运算符
逻辑运算符及使用方式(&&、||、!)
关键字
void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。
char:字符型类型数据,属于整型数据的一种。
int:整型数据,表示范围通常为编译器指定的内存字节长。
double:双精度浮点型数据,属于浮点数据的一种。
分支结构
if:条件语句,后面不需要放分号。
例:#include
int
main()
{
constintMINOR = 35;
intage = 0;
printf("请输入你的年龄: ");
scanf("%d", &age);
printf("你的年龄是%d岁。\n", age);
if( age < MINOR ) {
printf("年轻是美好的,");
}
printf("年龄决定了你的精神世界,好好珍惜吧。\n");
return0;
}
else:条件语句否定分支(与if连用)。
例: # include
int main()
{
// 初始化
int price = 0;
int bill = 0;
// 读入金额和票面
printf("请输入金额:");
scanf("%d", &price);
printf("请输入票面:");
scanf("%d", &bill);
// 计算找零
if( bill >= price ) {
printf("应该找您:%d\n", bill - price);
}else{
printf("你的钱不够\n");
}
return 0;
}
switch:开关语句(多重分支语句)。
例:#include
intmain()
{
intsum = 0;
intcount = 0;
intnumber;
scanf("%d", &number);
while( number != -1 ) {
sum += number;
count ++;
scanf("%d", &number);
}
doubledsum = sum;
printf("The average is %f.\n", dsum / count);
return0;
}
case:开关语句中的分支标记,与switch连用。
C语言的语法结构
顺序结构
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c;则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。
选择结构
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用选择结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的选择语句。选择结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。
循环结构
循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do while循环和for循环。
特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。
三个循环的异同点:用while和do…while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while循环和for循环都是先判断表达式,后执行循环体,而do…while循环是先执行循环体后判断表达式,也就是说do…while的循环体最少被执行一次,而while循环和for就可能一次都不执行。
顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,均可广义的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。
具体内容:
for循环
for循环结构是c语言中最具有特色的循环语句,使用最为灵活方便,它的一般形式为:
for(表达式1;表达式2;表达式3)循环体语句 。(其中;不能省略)
表达式
#include"stdio.h"
void main()
{
int i=1,sum=0;
for(;i<=100;i++)
{
sum+=i;
}
printf("sum=%d\n",sum);
}
表达式1为初值表达式,用于在循环开始前为循环变量赋初值。
表达式2是循环控制逻辑表达式,它控制循环执行的条件,决定循环的次数。
表达式3为循环控制变量修改表达式,它使for循环趋向结束。
循环体语句是在循环控制条件成立的情况下被反复执行的语句。
但是在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。
先执行表达式2,然后执行循环结构,最后表达式3,一直这样循环下去。
for循环语句是c语言种功能最为强大的语句,甚至在一定程度上可以代替其他的循环语句。
do
do循环结构,do 1 while⑵;的执行顺序是1->2->1...循环,2为循环条件。
while
while循环结构,while(1) 2; 的执行顺序是1->2->1...循环,1为循环条件
以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。
例;
#include
intmain()
{
intnumber =rand()%100+1;
intcount = 0;
inta = 0;
printf("我已经想好了一个1到100之间的数。");
do{
printf("请猜这个1到100之间数:");
scanf("%d", &a);
if( a > number ) {
printf("你猜的数大了。");
}elseif( a < number ) {
printf("你猜的数小了。");
}
count ++;
}while(a != number);
printf("太好了,你用了%d次就猜到了答案。\n", count);
return0;
}
程序结构
C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数+子函数。因此,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。
判断语句(选择结构):
if 语句:“如果”语句;if—else 语句:“若…(则)…否则…”语句;switch 语句:“切换”语句;switch—case:“切换—情况”语句。
循环语句(循环结构):
while 语句:“当…”语句;do—while 语句:“做…当…(时候)”语句;for 语句:条件语句(即“(做)…为了…”语句)。
网友评论