基本语法
C的令牌:关键字、标识符、常量、字符串值、符号等
分号、注释、标识符、关键字。
注释:C的多行注释不是/**...*/,而是/*... ... ...*/
标识符:C 标识符是用来标识变量、函数,或任何其他用户自定义项目的名称。一个标识符以字母 A-Z 或 a-z 或下划线 _ 开始,后跟零个或多个字母、下划线和数字(0-9).
如:
mohd zara abc move_name a_123
myname50 _temp j a23b9 retVal
关键字
auto,break,case,char(声明字符型变量或函数返回值类型),const(声明只读变量),continue(结束当前循环,开始下一轮循环),,default(开关语句中的"其它"分支),do(循环语句的循环体),double(声明双精度浮点型变量或函数返回值类型),else,enum(声明枚举类型),exterm,for,goto(无条件跳转语句),if,int,long,register(声明寄存变量),return(返回语句,可带参数可不带),short,signed(声明有符号类型变量或函数),size of(计算数据类型或变量长度),static(声明静态变量),struct(声明结构体类型),switch(用于开关语句),typedef(给数据类型区别名),unsigned(声明无符号类型),union(声明共用体类型),void(无返回值/无),volatile,while.
数据类型
序号 | 类型与描述 |
---|---|
1 | 基本类型: 它们是算术类型,包括两种类型:整数类型和浮点类型。 |
2 | 枚举类型: 它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。 |
3 | void 类型: 类型说明符 void 表明没有可用的值。 |
4 | 派生类型: 它们包括:指针类型、数组类型、结构类型、共用体类型和函数类型。 |
整数类型:char(字符默认),int(数字默认),short,long
浮点类型:float(小数默认),double
void类型:void
类型 | 存储大小 | 值范围 |
---|---|---|
char | 1 字节 | -128 到 127 或 0 到 255 |
int | 2 或 4 字节 | -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647 |
short | 2 字节 | -32,768 到 32,767 |
long | 4 字节 | -2,147,483,648 到 2,147,483,647 |
类型 | 存储大小 | 值范围 | 精度 |
---|---|---|---|
float | 4 字节 | 1.2E-38 到 3.4E+38 | 6 位小数 |
double | 8 字节 | 2.3E-308 到 1.7E+308 | 15 位小数 |
long double | 16 字节 | 3.4E-4932 到 1.1E+4932 | 19 位小数 |
序号 | 类型与描述 |
---|---|
1 | 函数返回为空 C 中有各种函数都不返回值,或者您可以说它们返回空。不返回值的函数的返回类型为空。例如 void exit (int status); |
2 | 函数参数为空 C 中有各种函数不接受任何参数。不带参数的函数可以接受一个 void。例如 int rand(void); |
3 | 指针指向 void 类型为 void * 的指针代表对象的地址,而不是类型。例如,内存分配函数 void *malloc( size_t size ); 返回指向 void 的指针,可以转换为任何数据类型。 |
练习
1.
#include <studio.h>
int main(){
int i = 1;
char c = "a";
float f = 1.1;
printf("%d\n",i);//"%d"表示按照整数的方式输出,"\n"代表回车也是一种格式
printf("%c\n",c);
printf("%f\n",c);
return 0;
}
2.现在你来定义 a
、b
、c
三个变量,分别是 int
、float
、char
型的,赋值为1、10.2、a,用 printf()
函数把这3个变量打印出来吧,要求只能使用一次printf()
哦。
#include <stdio.h>
int main() {
int a = 1;
float b = 10.2;
char c = 'a';
printf("三个变量的值分别为:a = %d, b = %f, c = %c", a, b, c);
return 0;
}
3.
#include<stdio.h>
int main()
{
int a,b,c;
printf(" Please enter a value:");
scanf("%d",&a);//scanf格式输出
printf("\n");
printf("Please enter b value");
scanf("%d",&b);
c=a+b;
printf("\n%d",c);
return 0;
}
printf("I love %d and %d",x,s);
第一个 %d
对应的是 x 的值,第二个 %d
对应的是 s 的值。 I love
和 and
(注意这里包括空格)都是普通字符会原样输出。 假如 x 的值是 3,s 的值是 4,这条语句将会输出“ I love 3 and 4 ”。
scanf("a=%d,b=%d",&a,&b);
scanf("a=%d,b=%d",&a,&b); a 和 b 前面的 & 不能省掉
- 常用的控制字符:
4.计算圆面积
#include <studio.h>
#define PI 3.14159//定义一个常量PI,其值为3.14159
int main() {
float floatR,float floatA;
printf("请输入圆的半径:"\n);
scanf("%f",&floatR);
floatA = (float) PI * floatA *floatA;
printf("半径为%.3f的圆面积为:%.3f\n",floatR,floatA);
return 0;
}
5.中文图书管理系统登陆界面是进入图书管理系统的第一个界面,实现实现用户登录系统的功能,可据此对用户的合法性进行检查,本案例只是实现简单的登录功能。 用户输入:借书卡号,用户姓名 期望的输出:登陆成功的提示信息
#include<stdio.h>
int main()
{
int cardnum;
char name[20]; //小伙伴注意了,这个就是定义了一个字符串数组,可以容纳20字符
printf("**********************************************************\n");
printf("********Welcome to the books management system************\n");
printf("**********************************************************\n");
printf("~~~~~~~~~\t\t\t\t~~~~~~~~~~~~~~\n");
printf("Please input your card number:\n");
scanf("%d",&cardnum);
printf("Please input your name:\n");
scanf("%s",name);
printf("\nWelcome,%s!Your card number is:%d\n",name,cardnum);
return 0;
}
6.一台拖拉机耕地一亩耗油 0.85kg,它的油箱的容积是 100 升(0.1m3),柴油的密度是 850kg/m3,该拖拉机装满油后最多耕地的亩数是多少?
#include<stdio.h>
int main()
{
float tank_volume; // 定义油箱的容积为浮点类型变量 tank_volume
float oil_density; // 定义油的密度为浮点类型变量 oil_density
float oil_kg;
float area;
tank_volume=0.1; // 给变量 tank_volume 赋值
oil_density=850; // 给变量 oil_density 赋值
oil_kg=tank_volume*oil_density; // 求 tank_volume 和 oil_density 的积并赋值给 oil_kg
area=oil_kg/0.85; // 求 oil_kg/0.85 的商并赋值给 area
printf("Most farming is %f mu",area);
return 0;
}