第二章,C语言概述
2.1 简单的C程序示例
#include <stdio.h> #include <stdlib.h> int main(void) { int num; num=1; printf("I am a simple"); printf("computer.\n"); printf("MY favorite number is %d because it is first.\n",num); getchar(); return 0; }
2.2 解释示例
典型的c程序
2.3 简单的程序结构
程序由一个或多个函数组成,必须有main函数。
函数由函数头和函数体组成。
函数头包括函数名,传入该函数的信息类型和函数返回类型。
函数体被花括号括起来,由一系列语句、声明组成。
2.8 关键字和保留标志符
关键字:一种基本的c语言数据类型。
标志符:一个变量、函数或其他实体的名称。保留标志符表示那些以下划线字符开头的标志符及标准库函数名,例printf
一、数据类型关键字(12个):
(1) char :声明字符型变量或函数
(2) double :声明双精度变量或函数
(3) enum :声明枚举类型
(4) float:声明浮点型变量或函数
(5) int: 声明整型变量或函数
(6) long :声明长整型变量或函数
(7) short :声明短整型变量或函数
(8) signed:声明有符号类型变量或函数
(9) struct:声明结构体变量或函数
(10) union:声明共用体(联合)数据类型
(11) unsigned:声明无符号类型变量或函数
(12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
二、控制语句关键字(12个):
A循环语句
(1)for:一种循环语句(可意会不可言传)
(2) do :循环语句的循环体
(3) while :循环语句的循环条件
(4) break:跳出当前循环
(5) continue:结束当前循环,开始下一轮循环
B条件语句
(1) if: 条件语句
(2) else :条件语句否定分支(与 if 连用)
(3) goto:无条件跳转语句
C开关语句
(1) switch :用于开关语句
(2) case:开关语句分支
(3) default:开关语句中的“其他”分支
D返回语句
return :子程序返回语句(可以带参数,也看不带参数)
三、存储类型关键字(4个)
(1) auto :声明自动变量 一般不使用
(2) extern:声明变量是在其他文件正声明(也可以看做是引用变量)
(3) register:声明积存器变量
(4) static :声明静态变量
四、其它关键字(4个):
(1) const :声明只读变量
(2) sizeof:计算数据类型长度
(3) typedef:用以给数据类型取别名(当然还有其他作用)
(4) volatile:说明变量在程序执行中可被隐含地改变
ISO C99标准新增
(1) _Bool:布尔类型,用来表示真或假,零表示假,非零表示真。所有非零的数赋值给布尔型变量,最终的值还是1。
(2) _Complex, _Imaginary:复数类型和虚数类型,C99提供了三种复数类型和虚数类型:float _Complex,double _Complex,long double _Complex和float _Imaginary,double _Imaginary,以及 long double _Imaginary。复数类型包括一个实部和一个虚部,虚数类型没有实部,只有虚部。
(3) _Imaginary
(4) restrict:用来限定指针,表明指针是访问一个数据对象的唯一且初始化对象。作用是告诉编译器除了该指针,其他任何指针都不能对所指向的数据进行存取,以便编译器优化代码。
(5) inline:内联函数,是为了解决C 预处理器宏存在的问题所提出一种解决方案,用来提高函数使用效率。内联函数使用inline关键字定义,并且函数体和申明必须结合在一起, 否则编译器将他作为普通函数对待。
2.11 复习题
1.c语言的基本模块?
函数
2.什么是语法错误?
违反了组成语句或程序的规则。
3.什么是语义错误?
含义错误
4.以下程序的问题?
写下修改后的程序
#include <stdio.h> int main(void) { int s; s=52; printf("There are %d weeks in a year.\n",s); return 0; }
5.以下4个例子,他们能输出什么结果
6.在main、int、function、char、=中,那些为关键字?
int、char。
7.如何以下面的格式输出words和lines?
printf("There are were %d word and %d lines ",works,lines)
2.12 编程练习
1.主要对于pritf()的使用,以及转义字符\n的使用。
#include <stdio.h> int main(void) { printf("su wen\n"); printf("su\nwen\n"); printf("su"); printf("wen\n"); }
2.打印姓名和地址,如上类似。
3.编写一个程序把年龄转化为天数,并显示这俩个值。
程序目标:将年龄转化为天数
设计程序:
输入年龄数据,将年龄转化为天数,程序输出天数。
用户界面:提示用户输入年龄,然后打印出对应的结果。
程序核心:将年龄转化为天数。
数据类型:应使用整数来存储数据。
#include <stdio.h> int main(void) //将年龄转化为天数, { int age=0; int day=0; printf("请输入您的年龄\n"); scanf("%d",&age); day=age*365; printf("your age is %d,the number of day for age is %d",age,day); return 0; }
4.生成以下输出?
#include <stdio.h> void jolly(void); void deny(void); int main(void) { jolly(); jolly(); jolly(); deny(); return 0; } void jolly(void) { printf("you are handsome,Thrice to emphasize\n"); } void deny(void) { printf("I know\n"); }