程序设计基础C语言常考知识点大总结.pdf_第1页
程序设计基础C语言常考知识点大总结.pdf_第2页
程序设计基础C语言常考知识点大总结.pdf_第3页
程序设计基础C语言常考知识点大总结.pdf_第4页
程序设计基础C语言常考知识点大总结.pdf_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计基础(C 语言)复习大纲 程序设计基础(C 语言)复习大纲 题型 一填空题(每题 2 分,共 20 分) 二单项选择题(每题 2 分,共 40 分) 三改错题(每错 2 分,共 8 分) 四程序填空题(每空 3 分,共 12 分) 五程序设计题(每题 10 分,共 20 分) 复习要点 第一章 C 语言与程序的算法(5%) 1. C 程序的基本结构 1)C 程序有且仅有一个 main() 函数;main() 函数是 C 程序处理的起点;程序的执行 总是从 main 函数开始,在 main 函数结束 2)C 程序中的一个语句可以跨越多行,并且用分号(语句分隔符)通知编译器该语句 已结束。 3)函数是 C 程序的基本构成单位 4)/*.*/表示注释 2. 编译和执行 C 程序 1)编译过程: 2)源程序:是用户创建的文件,以“.c”为文件扩展名保存 3)目标文件:是编译器的输出结果。这类文件的常见扩展名为“.o”或“.obj” 4)可执行文件:是连接器的输出结果。可执行文件的扩展名为“.exe”。 5)头文件:含有函数的声明和预处理语句,用于帮助访问外部定义的函数。头文件的 扩展名为“.h” 。 6)计算机不能直接执行用 C 语言编写的源程序 7).obj 和.exe 的文件都是一个二进制文件。.exe 可以直接运行,但.obj 文件不能直接运 行 3.算法的特征:算法:解决问题的具体方法和步骤 第 1 页 共 14 页 用户在程序中需要调用某个库函数时, 必须用#include编译预处理命令 将描述该库函数的头文件包含进去。 如:#include 每个语句和数据定义的最后必须有一个分号 编译(Compile):将C源程序文件翻译成能被计算机识别的二进制形式 的“目标”文件;编译时,编译器将检查源程序每一条语句的语法错误。 程序设计基础(C 语言)复习大纲 1)有穷性算法必须在执行有穷步之后结束,而且每一步都可在有穷时间内完成 1)确定性每条指令无二义性。并且,相同的输入只能得到相同的输出; 2)可行性(有效性)对需要执行的每一步操作,必须给出清楚、严格的规定。 3)输入算法有零至多个输入。 4)输出算法有一个至多个输出 4.流程图 开始/结束 处理 输入/输出 判断/分支 连接符 流程线 5.课后习题答案: 1)选择题 题号 1 2 3 4 5 答案 D B B C D 2)判断题 题号 1 1 2 2 3 3 4 4 5 5 答案 第二章 数据类型、运算符与表达式(10%) 1. 变量的命名规则 1)组成:52 个字母(A-Z, a-z),10 个数字(0-9),下划线(_) 2)开头:字母或下划线 3)注意:不能是关键字,C 语言区分大小写 2. 数据类型 1)基本数据类型:int,char,float,double,void 2)整型 ? 整型:int (VC+中占 4 字节) ? 无符号整型:unsigned (VC+中占 4 字节) ? 短整型: short(VC+中占 2 字节) ? 无符号短整型: unsigned short(VC+中占 2 字节) ? 长整型: long(VC+中占 4 字节) ? 无符号长整型: unsigned long(VC+中占 4 字节) 3)整型常量 ? 十进制:09 的数字,前面可添加”+“或”-“,不能以 0 开始 ? 八进制: 07 的数字,以 0 为前缀 第 2 页 共 14 页 int型的取值范围是-3276832767。 程序设计基础(C 语言)复习大纲 ? 十六进制:09 的数字和 AF 的字母(大小写均可) ,以 0X 或 0x 为前缀 ? 数字后加 L 或 l 表示长整数 ? 数字后加 U 或 u 表示无符号数 4)单精度浮点型:float(VC+中占 4 字节) 5)双精度浮点型:double (VC+中占 8 字节) 6)实型常量 ? 定点数:09 数字和小数点组成 ? 指数形式: 形式为:aEn(a 为十进制数,E 大小写均可,n 为十进制整数,值为 a*10n 7)字符型:char(内存中以 ASCII 码存放,在其取值饭范围内和整数可以相互通用) 如:char c=A+10;后,c 为 K ? 常见的字符相应的 ASCII 码:0:48,A:65 ,a:97 ? 小字字母的 ASCII 码和大字字母的 ASCII 码相差 32。 小字字母-32=对应的大字字母;大字字母+32=对应的小字字母 ? 转义序列:后的字符和一起表示另外一个字符。 n:换行,0:空字符,: 单引号,“: 双引号,:反斜线, ddd:ASCII 码为 ddd 的一个字符(ddd 为 8 进制数) 8)字符型常量:用单引号引起来的一个字符 3. 变量定义: ? 允许在一个类型说明符后声明多个类型相同的变量, 各变量名之间用逗号隔开; ? 类型说明符与变量间有一个空格 ? 最后一个变量名后有一个分号 ? 变量使用前必须定义 ? 可以在定义变量的同时赋初值,也可在定义后,使用前赋初值。 4. 算术运算符:熟悉常用算术运算符的使用:+,-,*,%,+,- ? 两个整数相除的结果是整数 (小数部分被自动切断) , 如果运算量有一个中实型, 结果为双精度实型。如:7/4 结果是 1。 ? %操作两边必须是整数,结果等于两数相除后的余数。如 7%4 结果是 3 ? 前置+:先加后用,后置+:先用后加(-也是一样) 5. 赋值运算符:熟悉常用赋值运算符的使用:= ,+= ,*=, /=, %=, -= ? a=b=c=5(从右向左计算)如:int x=10,y,z;执行 y=z=x;后,x,y,z 的值都为 10。 ? 变量+=表达式 表示:变量=变量+表达式(如 a+=5 表示:a=a+5) 6. 逗号运算符和逗号表达式 ? 从左向右计算表达式的值为最后一个表达式的值。 a=3*5,a*4, 计算结果为 a=15, 整数个表达式的值为 60。 如:int a,b,c;a=(b=c=3,c+,b+=c);则 a 的值是 7。 7. 关系运算符:熟悉常用关系运算符的使用:,=,bc 是先计算 ab 的值(1 或 0) ,再用 1 或 0 和 c 进行比较。 8. 逻辑运算符:熟悉常用关系运算符的使用: int b=12,c;c=(int)a+b;c 的值为 377. 13. 课后习题答案: 1)选择题 题号 1 2 3 4 5 第 4 页 共 14 页 算术运算符 关系运算符 逻辑运算符 赋值运算符 若运算量中有一个是 实型,则结果为 双精度实型。 参与运算量均为 整型时,结果为 整型,舍去小数; 如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换, 即把赋值号右边的类型换成左边的类型。 1)实型赋予整型,舍去小数部分。前面的例子已经说明了这种情况。 2)整型赋予实型,数值不变,但将以浮点形式存放,即增加小数部分(小数部分的值为0)。 3)字符型赋予整型,由于字符型为一个字节,而整型为二个字节,故将字符的ASCII码值 放到整型量的低八位中,高八位为0。整型赋予字符型,只把低八位赋予字符量。 sizeof(float)的值为4,占4个字节; sizeof(2*3)的值为2,占2个字节; 程序设计基础(C 语言)复习大纲 答案 D B C D A 2)程序阅读题 题号 1 1 2 2 答案 2,1c=377 第三章 输入输出与顺序程序设计(5%) 1. printf 函数 1)格式:printf(“格式控制串”,参数 1,数 2,.); 2)格式控制串中除格式控制字符外,其余内容会原样输出。 3)常见格式控制字符: ? %d:将参数按整数形式转换输出,对应参数应是 int 类型 ? %c :输出一个字符,对应参数应该是一个字符 如: a=A;printf(“%c,%dn“,a,a);输出:A,65 ? %s:输出一个字符串,对应参数应该是一个字符串 ? %f :将参数按带小数点数形式输出,对应参数应是 double 类型,默认情况下 精确到 6 位小数 ? %md: 输出数据占 m 个位宽, 数据长度将左补空格。 如果实际数据长度超出 m, 将原样输出 ? %m.nf:m 同上,n 表示小数位数 2. scanf 函数 1)格式:scanf(“格式控制串”,参数 1 地址,数 2 地址,.); 2)格式控制串中除格式控制字符外,其余内容要求原样输入。 3)常见格式控制字符: ? %d:将参数按整数形式转换输出,对应参数应是 int 类型 ? %o:将参数按 8 进制形式转换输出,对应参数应是 int 类型 ? %x:将参数按 16 进制形式转换输出,对应参数应是 int 类型 ? %c :输出一个字符,对应参数应该是一个字符 ? %s:输出一个字符串,对应参数应该是一个字符串 ? %f :将参数按带小数点数形式输出,对应参数应是 double 类型,默认情况下 精确到 6 位小数 4)数据输入结束:空格、回车、非法输入 5)字符输入:任何输入都是字符,包括空格、回车等。 3. putchar(),向终端输出一个字符,语法:putchar(ch); 4. getchar(),从终端输入一个字符,语法: ch=getchar(); ? 注意:只能接收一个字符 5. 课后习题答案: 第 5 页 共 14 页 %5d:至少占用5个字符空间,若不够5位数字,则左侧补空格; %-5d:至少占用5个字符空间,左对齐; %5.3d:至少占用5个字符空间并至少有3位数字,若不够3位则左侧补0; %10.3f:总共10个字符,整数位6位,小数位3位,小数点1位; 对于字符串数组或指针型变量, 数组名和指针变量名本身即为地址; scanf(“%5s”,p);表示只能输入 5个字符给字符串指针p; 程序设计基础(C 语言)复习大纲 1)选择题 题号 1 2 3 答案 C B B 2)程序阅读题 题号 1 1 2 2 3 3 答案 K,77 x=-26 x=-6 1.printf(“Input;x=?n”); 2.scanf(“%d”, 3.最后一行:y 没有赋值 第四章 选择结构程序设计(15%) 1. 程序的三种基本结构:顺序结构、分支结构、循环结构 2. 复合语句:用括起来的一个或多个 C 语句。 3. 熟悉 if,ifelse,多重 ifelse,嵌套 ifelse,switchcase 的用法 1)C 语言以 0 表示假,非 0 整数值表示真。 2)为避免嵌套的 if-else 语句的二义性,C 语言规定 else 总是与在其之前未配对的最近的 if 组成配对关系。提倡使用大括号括起来以避免看起来有二义性 3)switch 括号中要求数据类型为:整型或字符表达式。case 后要求为常量或常量表达式。 如果需要每个 case 执行完后跳出,在每个 case 后不要忘记写 break; 4. 程序编程 1)编写一个程序,从终端输入一个字符,如果是小字字母则将其转换成大字字母并输出, 如果是大字字母换成小字字母并输出,如果都不是则原样输出。 2)编写一个 C 语言程序,输入三角形的三条边 a,b,c,判断它们能否构成三角形。 第五章 循环控制(15%) 1. 熟悉 while,do.while,for ,continue,break 的用法 2. while ( 循环条件 ) 循环操作 特点:先判断,再执行 循环条件以 0 表示假,非 0 整数值表示真 3. do 循环操作 while ( 循环条件 ); 特点:先执行,再判断 第 6 页 共 14 页 case后面没有匹配的结果的话,就找default去执行,执行完没有break的话,继续向下执行。 程序设计基础(C 语言)复习大纲 4. 初始情况不满足循环条件时while循环一次都不会执行,do-while循环不管任何情况都 至少执行一次 5. for(参数初始化; 条件判断; 更新循环变量) 循环操作 条件判断 参数初始化 更新循环变量 循环操作 真 假 6. for 语句的三个表达式都可以省略,但分号不能省。 1)表达式 1 省略,循环变量的初始值在 for 语句之前由赋值 语句取得 2)表达式 2 省略,编译正确,但是缺少循环条件,造成死循 环 3)省略表达式 3,在循环体内应设法改变循环变量的值以结 束循环 4)表达式全省略,无条件判断,循环变量无改变,应在循环 体内设法结束循环,否则会造成死循环 7. break:改变程序控制流。用于 do-while、while、for 中时,可跳出循环而执行循环 后面的语句。break 语句可以用于 switch 和循环语句体中 8. continue :只能用在循环里。作用:跳过循环体中剩余的语句而执行下一次循环 9. 注意: 1)在循环中,需要修改循环变量的值以改变循环条件,否则有可能形成死循环 2)循环嵌套必须将内层循环完整的包含在外层循环中 10. 程序编程 1)编写一个 C 语言程序,求 S=a+aa+aaa+aaa(n 个 a)之值,其中 a 是一个数字。例 如 2+22+222+2222+22222(此时 n=5),注意,a 的值和 n 的值都由键盘输入。 2)学生有近千名学生,在操作上排队,5 人一行余 2 人,7 人一行余 3 人,3 人一行余 1 人,编写一个程序,求该校的学生人数。 11. 课后习题答案: 1)选择题 题号 1 2 3 4 答案 B A A D 2)程序阅读题 题号 1 2 3 4 5 答案 D C A B * * * * 第六章 数组(15%) 1. 数组是可以在内存中连续存储多个元素的结构 2. 数组的大小是固定的,所有数组元素的类型必须相同 第 7 页 共 14 页 结束本次循环,接着进入下一次是否执行循环的判断。 程序设计基础(C 语言)复习大纲 3. 数组的定义 1)一维数组:数据类型 数组名常量表达式:数组大小; 2)一维数组的初始化: ? int arr10= 10,9,8,7,6,5,4,3,2,1; ? int arr10 = 10,9,8,7,6,5,4,3,2,1,0; /错误!越界了 ? int arr10 = 9,8,7,5; /正确,后面的 6 个元素未初始化,默认为 0 ? int arr = 9,8,7; /正确:元素个数为 3 ? int arr=; /错误,到底是几个元素? 3)二维数组:数据类型 数组名常量表达式:行大小 常量表达式:列大小; 4)二维数组的初始化: ? int arr23 = 1,2,3, 4,5,6 ;/2 行 3 列数组 ? int arr 3 = 1,2,3, 4,5,6 ;/2 行 3 列数组 ? int arr2 = 1,2,3, 4,5,6 ; /错误,不能省略第二维长度 ? int arr23= 1,2,3,4,5,6; /正确:先为第 1 行赋值,再为第 2 行赋值 ? int arr 3= 1,2,3,4,5; /正确:先为第 1 行赋值,再为第 2 行赋值,不够默认 为 0 4. 数组的使用 1)一维数组:数组名索引号,可以取出数组中一个元素;/索引号从 0 开始 2)二维数组:数组名行索引号 列索引号;可以取出数组中一个元素;/行、列索引 号从 0 开始 5. 字符串 1)字符串常量是双引号括起的任意字符序列 2)在语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串 3)字符数组和字符串的区别是:字符串的末尾有一个空字符 0 4)使用 puts 函数输出字符串:puts(字符串名); ? puts 函数完全可以由 printf 函数取代。 当需要按一定格式输出时,通常使用 printf 函数。 5)使用 gets 函数字符串:gets(字符串名) ? 从键盘上读入一个完整的行,存入字符数组。并用空字符0取代行尾的换行符 n。 ? gets 允许输入空格,scanf 不允许输入空格(以空格做为输入结束标识) 6)字符串处理函数 ? strlen()、strcpy()、strcat()、strcmp() 和 strlen() 6. 程序编程 1)冒泡排序:编写一个程序,从终端输入十个整数,对这十个整数按从小到大的排序 并输出。 第 8 页 共 14 页 二维数组元素的顺序是:按行存放 连接拷贝比较长度 比较两个字符串,若相等,则返回0,若字符串1字符串2,则返回1,否则返回-1; 如:表达式strcmp(“box”, “boss”) 的值是一个_正数_. 程序设计基础(C 语言)复习大纲 2)编写一个 C 语言程序,由用户输入 10 个整数,将这 10 个整数放入一个数组中,然 后将数组中的值按相反的顺序重新存放。如原来的顺序是 7,3,9,10,2,6, 1, 5, 4,8 要求改为 8,4,5,1,6,2,10,9,3,7。 3)自定义串复制函数:void stringCopy(char *s,char *t) 4)自定义串联接函数:void stringConcat(char s1,char s2) 7. 课后习题答案: 1)选择题 题号 1 2 3 4 5 答案 C B A C D 2)判断题 题号 1 1 2 2 3 3 4 4 5 5 答案 3)程序填空题 题号 1 2 答案 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 gets(a) gets(b) ai=0 ak+=bi puts(a) 第七章 函数(15%) 1. 函数定义: 返回值类型 函数名(参数数据类型 参数名,参数数据类型 参数名,.) 1)C 语言中规定函数返回值的类型是由在定义该函数时所指定的函数类型所决定,即 返回值类型决定函数的类型,如果没有返回值,需要使用 void。如果没有指定返回 值类型,系统将默认返值类型为 int。 2)参数可以没有,但()不可少, 3) 内为函数体, 不可少 4)函数返回值: (return) ? C 语言中的函数至多可以返回一个值,不能返回多个值; ? 返回值的数据类型必须与函数原型中返回值的数据类型匹配; ? 当遇到 return 语句时,函数执行将终止。程序控制流将立即返回调用函数; 2. 函数原型: 形式:返回值类型 函数名(参数数据类型,参数数据类型,.); 1)函数原型说明在形式上与函数头部类似,最后加一个分号。原型说明中参数表里的 参数名可以不写(只写参数类型) 。 第 9 页 共 14 页 程序设计基础(C 语言)复习大纲 2)如果在调用函数前没有出现函数的定义,必须先做函数申明,及先写出函数原型。 3)函数原型中没有函数体( 部分) ,分号不可少。 3. 函数调用: 1)函数调用时,主调函数中的参数称为实参,表示实际要传入的值。定义函数时定义 的参数称为形参,表示实现由主调函数传入值。 2)函数可以嵌套调用但不能嵌套定义函数,即在一个函数内部定义一个函数。 3)在一个函数体内调用自身称为函数的递归调用 4. 函数传参: 1)函数默认传参方式为值传参,实参将值赋值给形参,实参和形参占用不同的内存空 间,形参值的改变不会改变实参的值。 2)当函数传递的是数组名、指针时,为地址传参,实参将其内存地址赋值给形参,实 参和形参指向同一个内存空间,形参对该空间值的改变同时也改变了实参的值。 3)当形参定义为数组时(如:int a),实参应为数组名(如 a); 5. 变量的作用域 1)程序中变量有不同的使用范围,称为变量的作用域。变量的作用域决定变量的可访 问性 2)在函数内或语句块中申明的变量为局部变量,作用域为函数内部或语句块内部 3)在函数外申明的变量为全局变量,作用域为定义开始部分到程序结束部分 6. 变量的生存期 1)变量的存储方式可分为“静态存储”和“动态存储”两种 2)静态存储变量是一直存在的,而动态存储变量则时而存在时而消失。这种由于变量 存储方式不同而产生的特性称为变量的生存期。生存期表示了变量存在的时间 3)auto:自动变量:局部变量在缺省存储类型的情况下归为自动变量。其生存期和作用 域相同 4)static :静态变量:在程序执行时存在,并且只要整个程序在运行,就可以继续访问 该变量。静态局部变量生存期为整个源程序 ? 静态局部变量作用域与自动变量相同,即只能在定义该变量的函数内使用该变 量 ? 对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予 0 值 ? 函数被调用时,其中的静态局部变量的值将保留前次被调用的结果 7. 程序编程 1)编写一个函数将数组中元素逆转并输出 2)编写一个函数,判断一个整数是否是素数,如果不是素数返回 0,如果是素数返回 1 8. 课后习题答案: 1)选择题 题号 1 2 3 4 5 6 答案 B C D A B A 2)判断题 第 10 页 共 14 页 定义函数时,在类型名前加“static”,则为内部函数,只能被所在的源文件中的函数调用。 程序设计基础(C 语言)复习大纲 题号 1 2 3 4 5 6 7 8 9 10 答案 3)程序填空题 题号 1 2 3 答案 B D D 第八章 指针、结构型与联合型(15%) 1. 指针相关概念 1)指针也是一个变量,只不过该变量中存储的是另一个对象的内存地址 2)如果一个变量存储另一个对象的地址,则称该变量指向这个对象 3)由于指针值是数据,指针变量可以赋值,所以一个指针的指向在程序执行中可以改 变。指针 p 在执行中某时刻指向变量 x,在另一时刻也可以指向变量 y 3)指针变量的命名规则和其他变量的命名规则一样 4)指针不能与现有变量同名 5)指针可存放 C 语言中的任何基本数据类型、数组和其他所有高级数据结构的地址 6)若指针已声明为指向

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论