C语言入门篇
从 Hello World 开始本次C语言学习之旅!
C语言简介
C语言是贝尔实验室的Dennis Ritchie在B语言的基础上开发的。
1972年在DEC PDP-11计算机上得到实现。C语言作为UNIX操作系统的开发语言之后广为人知。
1989年,美国国家标准协会制定了C语言的标准(ANCI C)。
作为高级语言,C语言支持结构化程序设计,很多操作系统、编译器都是用C语言开发的。
UNIX系统、手机的安卓等系统的底层代码都是用C语言开发的。
一、C程序设计概述
1.C程序的重要性
编程语言排行榜虽不完全据此说明某一种语言的好坏,但也能从相当程度上反映某种编程语言的热门程度。
图1-1 编程语言排行榜TOP 20 榜单
2.第一个C程序
入门开发出简单的HelloWorld程序
代码如下:
#include <stdio.h>
int main(void)
{
printf("HelloWorld!\n");
return 0;
}
3.C程序的基本结构
- 由一个或多个函数构成
- 函数分布在一个或者多个文件中
- 每个文件为一个可编译单元
- 只能存在一个main函数
- main函数是程序的开始,调用其他函数使用
以下为一个main函数基本结构示例:
返回值类型 函数名(形参列表)
{
数据定义;
数据处理;
return 返回值;
}
将第一个C程序分解为两个函数构成
代码如下:
#include <stdio.h>
void sayHello(void)
{
printf("HelloWorld!\n");
}
int main(void)
{
sayHello();
return 0;
}
4.C程序基本的输入、输出
程序就是对输入的数据进行处理,得到我们想要得到的输出。
- 利用printf输出的代码如同第一个C程序:
#include <stdio.h>
int main(void)
{
printf("HelloWorld!\n");
return 0;
}
程序编译后的运行结果如图1-2:
图1-2 利用printf输出第一个C程序运行结果
- 利用scanf输入的代码如下:
#include <stdio.h>
int main(void)
{
//输入一个整数
int n;
scanf("%d",&n);
//输入一个浮点数
double x;
scanf("%lf",&x);
//输入一个字符
char ch;
scanf("%c",&ch);
}
输入时需指示输入数据的格式控制,常用的格式控制符有:
%d:十进制带符号整数
%lf:双精度浮点数
%c:单个字符
%s:字符串
scanf输入中“&”取变量的地址。
- 一个完整的输入输出代码如下:
#include <stdio.h>
int main(void)
{
int n;
printf("请输入一个整数:");
scanf("%d",&n);
printf("你输入的整数为%d\n",n);
printf("该整数后面的整数为%d\n",n+1);
return 0;
}
程序编译后的运行结果如图1-3:
图1-3 利用printf输出与scanf输入C程序运行结果
5.数据存储与运算
C语言中基本数据类型如图1-4所示:
图1-4 C语言基本数据类型
C语言中运算符如图1-5所示:
图1-5 C语言中的运算符
- 应用整除和求模运算符输出3位整数的每一位代码如下:
#include <stdio.h>
int main(void)
{
int x;
printf("输入一个3位整数:");
scanf("%d",&x);
printf("%d的每一位的值是:%d %d %d\n",x,x/100,x%100/10,x%10);
return 0;
}
程序编译后的运行结果如图1-6:
图1-6 C程序运行结果
小结:
C语言本身并没有提供输入、输出语句,但可以通过相应的库函数来实现输入、输出的。最常用的输入库函数为scanf,输出库函数为printf。C语言通过表达式来进行计算表达式是用运算符将运算对象连接起来的表示一个运算过程的式子,运算对象可以是符号常量、变量或函数调用。
二、C程序设计之选择、循环结构
1.C程序的条件语句
C语言中的条件语句是if语句,它有三种形式:单分支语句(if)、双分支语句(if-else)、多分支语句(if-else if...)。
单分支语句(if)
- 输入一个年份,判断其是否为闰年,如果是闰年,则输出Y。
#include <stdio.h>
int main(void)
{
int year;
printf("输入一个年份数:");
scanf("%d",&year); //闰年是400的倍数或是4的倍数但不是100的倍数
if(year%400==0||year%4==0&&year%100!=0)
printf("Y\n");
return 0;
}<