还剩58页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
语言程序设计基础教程C课程概述与学习目标课程概述学习目标本课程旨在帮助学生掌握语言的基本语法、程序设计方法和数理解语言的基本语法,熟练运用语言进行编程;掌握程C
1.C C
2.据结构等方面的知识,并培养学生独立进行程序设计的能力序设计的基本概念,包括数据类型、运算符、表达式、流程控制、数组、函数等;了解常见的语言编程技巧,能够编写简单
3.C高效的程序C语言发展历史C年19721语言诞生于贝尔实验室,由丹尼斯里奇设计C·年19782肯汤普森和丹尼斯里奇共同编写了第一本语言的参考··C书,名为《》The CProgramming Language年19833美国国家标准学会()发布了语言的第一个官方ANSI C标准,称为ANSI C年19894国际标准化组织()发布了语言的国际标准,称为ISO CISO C年19995发布了语言的最新标准,称为ISOCC99程序设计基本概念算法算法是指解决问题的方法或步骤,用以完成特定任务的指令序列数据结构数据结构是指数据的组织方式,以有效地存储和访问数据,如数组、链表、树等程序程序是指由计算机执行的指令序列,用来实现特定功能或解决特定问题编程语言编程语言是指用于编写程序的语言,如语言、、等C JavaPython开发环境配置选择编译器常用的语言编译器有、、等C GCCVisual StudioCode::Blocks安装编译器根据所选编译器,从官网下载并安装相应的软件配置环境变量将编译器的路径添加到系统环境变量中,以便在命令行中使用创建项目在编译器中创建一个新项目,并编写第一个程序C第一个程序C Hello World#includeint main{printfHello World!\n;return0;}基本数据类型整型int unsignedint用于存储整数,如、、等,可分为有符号整型和无符号整用于存储无符号整数,范围为到最大值,表示正整数和10-5000型常用的修饰符有短整型•short长整型•long超长整型•long long基本数据类型浮点型float doublelong double用于存储单精度浮点数,精度较低,占用于存储双精度浮点数,精度较高,占用于存储长双精度浮点数,精度最高,用字节内存用字节内存占用字节内存4812基本数据类型字符型字符常量转义字符char用于存储单个字符,如、、等,字符常量用单引号括起来,例如、表示特殊字符的字符序列,例如(A b#A\n占用字节内存、换行)、(水平制表符)1b0\t变量声明和定义int age;//声明一个整型变量agefloat salary;//声明一个浮点型变量salarychar grade;//声明一个字符型变量grade变量声明用于告知编译器变量的类型,而变量定义则用于分配内存空间常量定义与使用const intMAX_SIZE=100;//定义一个整型常量MAX_SIZE,值为100const floatPI=
3.14159;//定义一个浮点型常量PI,值为
3.14159const charNAME[]=John;//定义一个字符串常量NAME,值为John常量是指在程序执行过程中其值不能改变的值,使用关键字定义const标识符命名规则标识符用于标识变量、常量、语言区分大小写,例如12C函数、结构体等它由字母、和是两个不同的标name Name数字和下划线组成,必须以字识符母或下划线开头建议使用有意义的标识符,例如、、等3age salaryname基本运算符算术运算运算符描述示例加法+a+b减法-a-b乘法*a*b除法/a/b取余a%b基本运算符关系运算运算符描述示例等于==a==b不等于!=a!=b大于ab小于ab大于等于=a=b小于等于=a=b基本运算符逻辑运算运算符描述示例逻辑与ab逻辑或||a||b逻辑非!!a基本运算符位运算运算符描述示例按位与ab按位或|a|b按位异或^a^b按位取反~~a左移ab右移ab表达式与运算符优先级表达式是由运算符、操作数和括号组成的组合运算符优先级决定了表达式中运算符的执行顺序数据输入函数scanfint age;float salary;char grade;printf请输入您的年龄;scanf%d,age;printf请输入您的薪水;scanf%f,salary;printf请输入您的成绩;scanf%c,grade;函数用于从标准输入流(通常是键盘)读取数据并存储到指定的变量中scanf数据输出函数printfint age=25;float salary=
5000.5;char grade=A;printf您的年龄是%d\n,age;printf您的薪水是%f\n,salary;printf您的成绩是%c\n,grade;函数用于向标准输出流(通常是屏幕)输出格式化的数据printf格式化输出详解函数可以使用格式控制符来控制输出数据的格式,例如(整数)、(浮点数)、(字符)等printf%d%f%c选择结构语句ifint age;printf请输入您的年龄;scanf%d,age;if age=18{printf您已成年\n;}语句用于根据条件执行不同的代码块if选择结构语句if-elseint age;printf请输入您的年龄;scanf%d,age;if age=18{printf您已成年\n;}else{printf您尚未成年\n;}语句用于根据条件执行两个不同的代码块,其中只有一个会被执行if-else选择结构嵌套语句ifint age;char gender;printf请输入您的年龄;scanf%d,age;printf请输入您的性别(M/F);scanf%c,gender;if age=18{if gender==M{printf您是成年男性\n;}else ifgender==F{printf您是成年女性\n;}else{printf性别输入错误\n;}}else{printf您尚未成年\n;}嵌套if语句是指在一个if语句中嵌套另一个if语句,用于根据多个条件执行不同的代码块选择结构语句switchint grade;printf请输入您的成绩(1-4);scanf%d,grade;switch grade{case1:printf您的成绩为优\n;break;case2:printf您的成绩为良\n;break;case3:printf您的成绩为中\n;break;case4:printf您的成绩为差\n;break;default:printf成绩输入错误\n;}switch语句用于根据表达式的值执行不同的代码块,提高代码的可读性和效率循环结构循环whileint i=1;while i=10{printf%d\n,i;i++;}循环用于重复执行一段代码,直到满足某个条件为止while循环结构循环do-whileint i=1;do{printf%d\n,i;i++;}while i=10;循环与循环类似,但它至少执行一次循环体,然后再判断条件do-while while循环结构循环forfor inti=1;i=10;i++{printf%d\n,i;}循环用于重复执行一段代码,它包含初始化表达式、条件表达式和递增表for达式循环控制语句breakfor inti=1;i=10;i++{if i==5{break;}printf%d\n,i;}语句用于跳出当前循环,执行循环体后面的代码break循环控制语句continuefor inti=1;i=10;i++{if i%2==0{continue;}printf%d\n,i;}语句用于跳过当前循环的剩余部分,直接执行下一次循环continue数组一维数组int numbers
[5]={1,2,3,4,5};一维数组是存储相同类型数据的线性集合,每个元素可以单独访问数组二维数组int matrix
[3]
[4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};二维数组是存储相同类型数据的表格形式,通过两个索引来访问元素数组多维数组int cube
[2]
[3]
[4]={{{1,2,3,4},{5,6,7,8},{9,10,11,12}},{{13,14,15,16},{17,18,19,20},{21,22,23,24}}};多维数组是存储相同类型数据的立方体或更高维空间,通过多个索引访问元素字符数组与字符串char str
[10]=Hello;字符数组用于存储字符串,它可以存放多个字符,每个字符占一个字节常用字符串函数语言提供了一些常用的字符串函数,例如、、、C strcpystrcat strlen等,方便对字符串进行操作strcmp函数基本概念函数是指一段可以重复使用的代码块,用于完成特定的任务,提高代码的可重用性和可读性函数参数传递void swapint*a,int*b{int temp=*a;*a=*b;*b=temp;}函数的参数传递是指将数据传递给函数,以便函数可以操作这些数据函数返回值int suminta,int b{return a+b;}函数的返回值是指函数执行完成后返回的结果,可以是任意数据类型函数局部变量void printSuminta,int b{int sum=a+b;printf两数之和为%d\n,sum;}局部变量是指在函数内部声明的变量,只在函数内部有效,函数执行完毕后会被销毁函数全局变量int global_var=10;void printGlobal{printf全局变量的值为%d\n,global_var;}全局变量是指在函数外部声明的变量,在整个程序中都有效,可以在不同的函数中访问和修改函数递归int factorialintn{if n==0{return1;}else{return n*factorialn-1;}}递归函数是指一个函数在其定义中调用自身的函数,用于解决一些具有递归性质的问题存储类别说明符说明符描述自动变量,在函数内部声明,函auto数执行完毕后被销毁静态变量,在函数内部声明,函static数执行完毕后不会被销毁,下次调用函数时可以保留上次的值外部变量,在函数外部声明,在extern整个程序中都有效寄存器变量,在函数内部声明,register建议将频繁使用的变量声明为寄存器变量,以提高程序执行效率指针基本概念指针是指向内存地址的变量,用来存储变量的地址它可以用来直接访问内存中的数据,提高程序的灵活性和效率指针指针运算int num=10;int*ptr=#//获取num的地址并赋给ptrprintfnum的值%d\n,num;//输出num的值printfptr指向的地址%p\n,ptr;//输出ptr指向的地址printfptr指向的值%d\n,*ptr;//输出ptr指向的值*ptr=20;//修改ptr指向的值printf修改后的num的值%d\n,num;//输出修改后的num的值指针运算包括取地址运算符、解引用运算符、指针加减运算等*指针指针与数组int arr
[5]={1,2,3,4,5};int*ptr=arr;//指针指向数组的首地址printf数组第一个元素的值%d\n,*ptr;//输出数组第一个元素的值ptr++;//指针指向下一个元素printf数组第二个元素的值%d\n,*ptr;//输出数组第二个元素的值指针可以用来访问数组的元素,通过指针运算符可以遍历数组指针指针与字符串char str[]=Hello;char*ptr=str;//指针指向字符串的首地址while*ptr!=\0{printf%c,*ptr;ptr++;}指针可以用来访问字符串的字符,通过指针运算符可以遍历字符串指针指针数组int*ptr
[5];//声明一个指针数组,每个元素都是一个指针指针数组是指每个元素都是指针的数组,用来存储多个指针变量指针函数指针int addinta,int b{return a+b;}int subtractinta,int b{return a-b;}int*ptrint,int;//声明一个函数指针ptr=add;//赋值为add函数的地址printfadd函数的结果%d\n,ptr10,5;//通过函数指针调用add函数ptr=subtract;//赋值为subtract函数的地址printfsubtract函数的结果%d\n,ptr10,5;//通过函数指针调用subtract函数函数指针是指向函数的指针,可以通过函数指针来调用函数,提高程序的灵活性和效率结构体基本概念结构体是一种用户自定义的数据类型,用来将不同类型的数据组合在一起,方便管理和操作结构体成员访问struct Student{char name
[20];int age;float score;};struct Students1={John,20,
90.5};printf学生姓名%s\n,s
1.name;printf学生年龄%d\n,s
1.age;printf学生分数%f\n,s
1.score;通过结构体名和成员名,使用点运算符()访问结构体的成员.结构体数组struct Student{char name
[20];int age;float score;};struct Studentstudents
[3];for inti=0;i3;i++{printf请输入学生%d的姓名,i+1;scanf%s,students[i].name;printf请输入学生%d的年龄,i+1;scanf%d,students[i].age;printf请输入学生%d的分数,i+1;scanf%f,students[i].score;}for inti=0;i3;i++{printf学生%d的信息\n,i+1;printf姓名%s\n,students[i].name;printf年龄%d\n,students[i].age;printf分数%f\n,students[i].score;}结构体数组是指每个元素都是结构体的数组,可以存储多个结构体类型的数据结构体指针struct Student{char name
[20];int age;float score;};struct Students1={John,20,
90.5};struct Student*ptr=s1;//获取结构体变量的地址并赋给指针printf学生姓名%s\n,ptr-name;printf学生年龄%d\n,ptr-age;printf学生分数%f\n,ptr-score;结构体指针是指指向结构体变量的指针,使用箭头运算符()访问结构体的-成员共用体基本概念共用体是一种用户自定义的数据类型,它允许不同的数据类型共享同一块内存空间枚举类型enum Weekday{MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY};enum Weekdaytoday=WEDNESDAY;printf今天是%d\n,today;枚举类型用于定义一组具有特定值的符号常量,使代码更易读和维护的使用typedeftypedef intInteger;typedef floatRealNumber;typedef charCharacter;Integer num=10;RealNumber salary=
5000.5;Character grade=A;printfnum的值%d\n,num;printfsalary的值%f\n,salary;printfgrade的值%c\n,grade;关键字用于为现有数据类型定义一个新的别名,使代码更易读和维护typedef文件操作打开与关闭文件操作包括打开文件、读取文件、写入文件和关闭文件等操作,使用指FILE针和相应的函数进行操作文件操作读写操作FILE*fp;char str
[100];fp=fopendata.txt,w;//打开文件data.txt,用于写入if fp==NULL{printf打开文件失败\n;return1;}fprintffp,HelloWorld!\n;//向文件写入数据fclosefp;//关闭文件fp=fopendata.txt,r;//打开文件data.txt,用于读取if fp==NULL{printf打开文件失败\n;return1;}fscanffp,%s,str;//从文件读取数据到str中fclosefp;//关闭文件printf读取到的字符串%s\n,str;文件操作函数用于读取或写入文件数据,例如fopen、fclose、fprintf、fscanf等预处理命令宏定义#define PI
3.14159#define MAX_SIZE100#define SQUARExx*xint main{printfPI的值%f\n,PI;printfMAX_SIZE的值%d\n,MAX_SIZE;printf5的平方%d\n,SQUARE5;}宏定义是指使用指令定义一个符号常量或宏函数,在预编译阶段进行替换#define预处理命令条件编译#define DEBUGintmain{#ifdef DEBUGprintf调试信息正在运行程序...\n;#endif//其他代码}条件编译是指使用、、、等指令,根据条件选择编译哪些代码块#ifdef#ifndef#else#endif预处理命令文件包含#include#include myheader.hint main{//其他代码}文件包含是指使用指令将其他文件的内容包含到当前文件中,方便代码管理和重用#include位运算实例位运算可以用来进行高效的数据处理,例如数据压缩、加密解密等。
个人认证
优秀文档
获得点赞 0