欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > C语言基础

C语言基础

2024/10/25 22:25:55 来源:https://blog.csdn.net/m0_64148419/article/details/142034159  浏览:    关键词:C语言基础

1.1 基础知识
C 语言程序结
在这里插入图片描述
书写格式:
(1)所有语句都必须以分号”;”结束。
(2)一行内可写几条语句,一条语句也可写在几行上。
(3)允许使用注释,以增强程序的可读性。
注释格式: /* 注释内容串 /
(1)”/
”和”/”必须成对使用。
(2)注释的位置,可单占一行,也可以跟在语句的后面。
(3)如果一行写不下,可另起一行继续写。
(4)注释中允许使用汉字。
C 语言的基本符号
标识符:
标识符是一种特定的字符序列。变量名、数组名、函数名和用户自定义的数据类型
名称等。
例如:变量名:x,y
函数名:max
(1)只能由英文字母、数字和下划线构成,长度为 1~32。
(2)必须以字母或下划线开头。
(3)严格区分大、小写字母。
(4)不能以关键字作为标识符。
(5)系统内部使用了一些下划线开头的标识符,为防止冲突,建议用户尽量避免使用
下划线开头的标识符。
(6)标识符选用应尽量做到”见名知意”,即选用有含义的英文单词或缩写。如 sum,
name,max,year,total 等。
标识符的分类:
(1) 控制语句关键字(12 个)
break, case, continue, default, do, else, for, goto, if, return, switch, while
(2) 数据类型关键字(12 个)
char, enum, double, long, float, int, short, signed, struct, unsigned, union, void
(3) 存储类型关键字(4 个)
auto, extern, register, static
(4) 其他关键字(4 个)
const, sizeof, typedef, volatile
1.2 数据类型
(1)C 语言的数据类型
在这里插入图片描述
在这里插入图片描述
(2)常量
程序运行时其值不能改变的量(即常数),符号常量:用标识符代表常量。
定义格式:#define 符号常量 常量
一般用大写字母,是宏定义预处理命令,不是 C 语句。
直接常量:整型常量、实型常量、字符常量、字符串常量。
例 符号常量举例
#define PRICE 30
main()
{ int num,total;
num=10;
total=num
PRICE;
printf(“total=%d”,total);
}
字符常量:用单引号括起来的单个普通字符或转义字符. 转义字符:反斜线后面
在这里插入图片描述
字符串常量
定义:用双引号(““)括起来的字符序列
存储:每个字符串尾自动加一个 ‘\0’ 作为字符串结束标志。
(3)变量
概念:其值可以改变的量
变量定义的一般格式:
数据类型 变量 1[,变量 2,…,变量 n];
main()
{
int a, b=2;
int data;
a=1;
data=(a+b)*1.2;
printf(“data=%d\n”,data);
}
main()
{
int a,b=2;
a=1;
float data;
data=(a+b)*1.2;
printf(“data=%f\n”,data);
}
(3)C 语言的运算符和表达式

  1. 五种基本算术运算符
  • 、- ( 取负)、*、/(除法)、%(求余数)
    1)除法运算 /
    两个整数相除商为整数,小数部分被舍弃。
    例如:5/2 = 2 而:5.0/2 = 2.5。
    2)求余数运算 %
    参加运算的两操作数均为整型数据,否则出错。结果是整除后的余数。
    7%3=1,7%-3=1 -7%3=-1,-7%-3=-1;(商分别为 -2、2)。
    自增(++)、自减(–)运算符
    自增(++)运算是使单个变量的值增 1;自减(–)运算使单个变量的值减 1。
    自增、自减运算符都有两种用法:
    1)前置运算:
    运算符放在变量之前:++变量、–变量。先使变量的值增(或减)1 然后再以变化后的值参
    与其他运算,即先增(减)、后运算。
    2)后置运算:
    运算符放在变量之后:变量++、变量–。变量先参与其他运算,然后再使变量的值增(或
    减)1,即先运算、后增(减)。
    例 j=3; k=++j;
    j=3; k=j++;
    j=3; printf(“%d”,++j);
    j=3; printf(“%d”,j++);
    a=3;b=5;c=(++a)*b;
    a=3;b=5;c=(a++)*b;
  1. 简单赋值运算符
    符号: = 格式:变量标识符=表达式
    作用:将一个数据(常量或表达式)赋给一个变量
    赋值运算时的类型转换:
    “=“两侧类型不一致时,要进行类型转换:
    整←实:截掉小数部分
    实(单、双精度)←整:数值不变,存为浮点
    整←char:整型低 8 位←char,整型高 8 位←0 或符号位扩展
    long int←int:符号位扩展
    int←long int:int←long int 低 16 位
    long int←unsigned int:高位补 0
    整型←(字节数相同的)unsigned 整型:原样送入。若超过整型表示范围,会出错。
    unsigned←(字节数相同的)非 unsigned 整型:原样送入,符号位也作为有效数值。
  2. 关系运算就是将两个数据进行“比较运算”,如果条件成立结果为“真”;否则条件不
    成立结果为“假”。
    1)关系运算符
    <(小于), <= (小于或等于), >(大于),>= (大于或等于),== (等于),!=(不等于)
    2)关系运算符优先级
    前 4 个优先级相同,后 2 个相同,且前 4 个高于后 2 个。即:(< 、 <= 、> 、>=)→
    ( ==、!=)
    3)与其他运算的优先级
    关系运算符的优先级低于算术运算符,但高于赋值运算符。即:算术运算符 →(<,
    <=,>,>= )→ ( ==,!= )→ 赋值运算符
    例 int a=3,b=2,c=1,d,f;
    a>b
    (a>b)==c
    b+cb
    f=a>b>c
  3. 逻辑运算符及其优先次序
    1)逻辑运算符及其运算规则
    逻辑运算符: && 逻辑与(相当于“并且”),|| 逻辑或(相当于“或者”), ! 逻
    辑非(相当于“否定”)。“&&”和“||”是双目运算符;而“!”是单目运算符。
    2)优先级 !>&&>||
    1.3 C 语句
  4. C 语句分为以下五类:
    控制语句:完成程序流程控制,包括条件、循环、分支等。
    函数调用语句:由函数调用加分号构成。
    表达式语句:在表达式后面加分号构成,常用的有赋值语句。
    空语句:仅包含一个分号的语句。
    复合语句:由大括号{ }括起来的语句序列。
  5. C语言中没有提供专门的输入输出语句,所有的输入输出都是由调用标准库函数中的
    输入输出函数来实现的。
    scanf 和 getchar 函数是输入函数。
    scanf 是格式输入函数, 可按指定的格式输入任意类型数据。
    getchar 函数是字符输入函数, 只能接收单个字符。
    printf 和 putchar 函数是输出函数。
    printf 是格式输出函数,可按指定的格式显示任意类型的数据。
    putchar 是字符显示函数,只能显示单个字符。
  6. 基础流程控制语句
    ① if-else 语句 (条件语句)
    ② switch 语句 (多分支选择语句)
    ③ for 语句 (循环语句)
    ④ while 语句(循环语句)
    ⑤ do-while 语句 (循环语句)
    ⑥ continue 语句 (结束本次循环语句)
    ⑦ break 语句(终止循环语句或 switch 语句)
    ⑧ goto 语句 (转向语句)
    ⑨ return 语句 (函数返回值语句)
  7. C 语言是结构化程序设计语言,结构化程序设计的结构主要有:顺序结构、选择结构
    和循环结构三种。
    (1)顺序结构
    在这里插入图片描述
    (2)选择结构
    选择结构就是根据给定条件从两条或多条可能的分支中选择一个分支执行。
    在这里插入图片描述
    在这里插入图片描述
    (3)循环结构
    循环结构是由循环控制条件来控制循环体是否执行。这种结构也有两种形式:“当型循
    环”和“直到型循环”
    在这里插入图片描述
    (4)选择结构又称为分支结构。
    1)条件选择结构:根据给定的条件表达式进行判断,决定执行某个分支中的程序段。
    由 if 语句来实现。
    2)开关选择结构:根据给定的整型表达式的值进行判断,然后决定执行多个分支中的
    某一个分支。由 switch 语句来实现。
    a.单分支选择结构
    一般形式为:
    if(表达式)
    {
    语句;
    }
    b.双分支选择结构
    一般形式为:
    if(表达式)
    { 语句 1;}
    else
    { 语句 2;}
    c.多重选择结构
    if(表达式 1) {语句 1;}
    else if (表达式 2) {语句 2;}
    else if (表达式 3) {语句 3;} …
    else if (表达式 n) {语句 n;}
    else {语句 n+1;}
    d、if 语句中的子语句 1 或子语句 2 还可以是 if 语句,这称为 if 语句的嵌套。注意:else
    总是与前面最近的 if 配对。
    if(表达式 1)
    if(表达式 11) 语句 11;
    else 语句 12;
    else
    if(表达式 2) 语句 21;
    else 语句 22;
    例:输入一个整数,求其绝对值。
    #include <stdio.h>
    main()
    {
    int x, y;
    printf(“Enter an integer:”);
    scanf(“%d”, &x);
    y=x;
    if(y<0)
    y= -y;
    printf(“\n integer:%d—>absolute value:%d\n”, x, y);
    }
    例:输入两个整数,判断是否相等。
    #include <stdio.h>
    main()
    {
    int a,b;
    printf(“Enter integer a:”);
    scanf(“%d”, &a);
    printf(“Enter integer b:”);
    scanf(“%d”, &b);
    if (ab)
    printf("a
    b\n");
    else
    printf(“a!=b\n”);
    }
    例:判断输入字符的类型
    #include <stdio.h>
    main()
    { char c;
    printf(“Enter a character:”);
    c=getchar();
    if(c<0x20) printf(“is a control character\n”);
    else if(c>=‘0’&&c<=‘9’) printf(“is a digit\n”);
    else if(c>=‘A’&&c<=‘Z’) printf(“is a capital letter\n”);
    else if(c>=‘a’&&c<=‘z’) printf(“is a lower letter\n”);
    else printf(“The character is other character\n”);
    }
    (5)switch 语句的一般形式:
    switch(表达式)
    {
    case 常量表达式 1: 语句组 1;break;
    case 常量表达式 2: 语句组 2;break;
    ┇ ┇
    case 常量表达式 n: 语句组 n; break;
    [default: 语句组 n+1;]
    }
    例:判断成绩的优劣
    switch(score)
    {
    case 5: printf(“Very good! “);break;
    case 4: printf(“Good! “); break;
    case 3: printf(“Pass! “); break;
    case 2: printf(“Fail! “); break;
    default : printf(“data error! “);
    }
    (6)循环结构又称为重复结构:C 语言提供了以下形式的循环结构。
    1)用 for 语句构成循环;
    for(表达式 1;表达式 2;表达式 3)
    语句;
    表达式 1:通常用来给循环变量赋初值,一般为赋值表达式。
    表达式 2:通常是循环结束条件,一般为关系表达式或逻辑表达式。
    表达式 3:通常用来修改循环变量的值,一般是赋值表达式。
    2)用 while 语句构成循环;
    一般形式为:
    while(表达式) 语句;
    其中:表达式是循环条件,语句为循环体
    3)用 do-while 语句构成循环。
    一般形式为:
    do{
    语句;
    }while(表达式);
    其中:表达式是循环条件,语句为循环体。
    例:求 1 到 100 的整数和
    #include <stdio.h>
    main()
    {
    int i, sum=0;
    i=1;
    while (i<=100)
    {
    sum=sum+i;
    i++;
    }
    printf(”%d”, sum);
    }
    #include <stdio.h>
    main()
    {
    int i, sum=0;
    i=1;
    do
    {
    sum+= i;
    i++;
    } while (i<=100);
    printf(”%d”, sum);
    }
    #include <stdio.h>
    main()
    {
    int i;
    int sum=0;
    for (i=1; i<=100; i++)
    sum+= i;
    printf(”%d”, sum);
    }一个循环结构的循环体内又包含另外一个完整的循环结构,称为循环的嵌套。循环的嵌
    套层数可以是多层,称为多重循环。
    ①三种循环结构(while 循环结构、do…while 循环结构、for 循环结构)可以相互嵌套;
    ②循环嵌套时应注意内层循环结构必须完整地被嵌套在外层循环结构的循环体内,不得
    出现交叉的现象;
    ③一般情况下,嵌套结构中的外层循环和内层循环的循环控制变量不得同名。
    例:打印乘法表
    #include <stdio.h>
    main()
    {
    int i,j;
    for (i=1; i<10; i++)
    printf(”%4d”, i);
    printf(”\n----------------------\n”);
    for (i=1; i<10; i++)
    for (j=1; j<10; j++)
    printf((j==9)?“%4d\n” :“%4d”, i*j);;
    }
    (7)break 语句
    功能:在循环语句和 switch 语句中,终止并跳出循环体或开关体。
    说明:break 只能终止并跳出最近一层的结构,break 不能用于循环语句和 switch 语句之
    外的任何其它语句之中。
    例:小写字母变成大写字母
    #include <stdio.h>
    main()
    {
    int i, j;
    char c;
    while (1)
    { c = getchar();getchar();
    if(c>=‘a’ && c<=‘z’)
    putchar(c-‘a’+‘A’);
    else
    break;
    }
    }
    (8)continue
    功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判
    断,仅用于循环语句中。
    例:统计正数的和
    #include <stdio.h>
    main()
    { int i, a;
    int num=0;
    float sum=0;
    for (i=0; i<10; i++)
    {
    scanf(“%d”, &a);
    if(a<=0) continue;
    num++;
    sum += a;
    }
    printf(“%d plus integer’s sum :%6.0f\n”,num,sum);
    printf(“Mean value:%6.2f\n”,sum/num);
    }

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com