C程序设计复习资料含复习资料

合集下载

C语言程序设计复习提纲

C语言程序设计复习提纲

C语言程序设计复习提纲第一章1.了解计算机程序设计语言的发展历史与分类.2.掌握C语言程序的基本结构, main函数:(1) 每个C语言程序都是由函数组成的, 构成C语言程序的基本单位是函数;;(2) 每个C语言程序中至少要包含一个函数, 那就是main函数;(3) 任何程序都是从main函数开始执行到main结束;(4) 不像其他一些程序设计语言, C语言的函数中不能再定义函数.3.掌握标识符, C语言的关键字, C语言变量的命名规则, 注意C语言中区分大小写字母.4.运算符与表达式(1) 了解常用运算符功能,操作数的个数(即是几目运算) 以及优先级与结合方向;(2) 熟练掌握算术运算符“/”和“%”的用法, 特别注意“/”作用在整型和实型数上的差别;(3) 熟练掌握运算符“++, --”的用法及其放在变量前面与后面的区别;(4)掌握各种赋值运算符的用法及其副作用;(5) 掌握对复杂表达式求值时注意各种运算符优先级与结合方向.第二章1.了解C语言数据类型的分类, 基本数据类型的宽度(即占用内存的大小) 与sizeof运算符, 数据的定点与浮点表示法以及各种类型数据在计算机中存放方式(整型以定点方式存放; 字符类型是以ASCII码方式存放, 与整型数据通用; 实型以浮点方式存放) 等常识. 如果已知各种整型数据在内存中占用的字节数, 会计算这种数据类型所能表示数的范围.2.掌握二进制, 十进制, 八进制, 十六进制之间的转换.3.掌握C语言各种常量的书写规则.4.掌握强制类型转换运算符的使用方法.5.熟练掌握输入输出语句printf与scanf的用法, 掌握常用转义字符和格式说明符, 注意printf函数的参数计算顺序(其实任何函数参数的计算顺序都是从右到左).第三章1.了解算法的三种基本控制结构: 顺序结构, 选择结构和循环结构.2.了解算法的三个基本性质: 有效性, 确定性和有穷性.3.了解算法描述的工具流程图, N-S图与伪代码的基本用法.4.掌握C语言的关系与逻辑运算:(1) C语言中用非0表示逻辑真值, 用0表示逻辑假值;(2) 关系与逻辑运算的值只有0和1两种;(3) 注意C语言中关系运算与数学上的关系运算的区别;(4) 特别注意逻辑运算符&& 和|| 的副作用: 当由左端的值可以确定整个表达式的值时, C编译器将不再计算右边的表达式.5.掌握各种选择语句的用法, 熟练掌握与其有关的编程.6.掌握三种循环语句的用法, 熟练掌握与其有关的编程.第四章1.掌握函数的概念与函数的定义, 调用和声明的格式以及什么情况下需要使用声明, 形参与实参的概念, 参数传递规则, 传值与传址. (注意: 函数的类型即是函数返回值的类型, 若未指定, 则为int 型)2.了解递归函数的概念.3.了解变量的存储类别, 全局变量与局部变量, 动态变量与静态变量的概念.4.掌握各种类型变量的生存期与作用域. 掌握不同存储类别的变量的定义方法.5.熟练掌握静态局部变量的用法及其与自动变量的区别. (注意: 一个局部变量如果未指明存储类别, 其隐含的存储类别为auto类型).6.掌握宏命令的定义与使用方法. 熟练掌握带参宏的定义与副作用.第五章1.掌握数组的概念与定义方法, 数组初始化的方法, 数组引用的方法, 使用数组时注意下标不要越界(C语言数组的下标取值范围是0到数组大小减1).2.熟练掌握一维数组和简单的二维数组编程.3.了解数组名在C语言中的特殊含义, 掌握数组作为函数参数时参数传递的方式.4.掌握字符串的概念及其与字符数组的关系. 注意C语言中字符串占用的存储空间比它的实际长度多1, 因为任何字符串都以字符串结束标记…\0‟结尾.5.掌握字符串的初始化的方法, 字符串处理函数: gets, puts, strlen, strcpy, strcat,strcmp的用法.第六章1.了解地址与指针的概念: 任何程序实体(变量, 函数等) 的指针其含义是指其地址.2.掌握指针变量的定义, 初始化和引用的方法.3.掌握指针的赋值、比较、相减、与整数相加减等运算以及运算符“*”和“&”的互逆性.4.熟练掌握指针与数组的关系. 尤其注意一、二维数组元素的指针表示法与下标表示法的关系, 能够熟练的相互转换.5.掌握指针与函数的关系, 能够运用指针参数和返回指针的函数进行编程, 特别是要熟练掌握书中提到的各种字符串处理函数的实现方法.6.了解函数指针的基本用法.第七章1.了解结构体的概念, 掌握结构体类型与变量的定义方法, 结构体的大小与存储方式, 掌握结构体变量的使用方法, 运算符. 与-> 的用法.2.了解共用体的概念, 掌握共用体类型与变量的定义方法, 共用体的大小与存储方式.3.掌握结构体与数组, 指针, 函数的关系.4.链表的基本概念, 优缺点(与数组比较).5.了解枚举类型的概念与枚举类型变量的定义及使用方法.第八章1.了解C语言中文件的分类方法: 文本文件与二进制文件.2.了解文件操作的基本步骤, 了解函数fopen, fclose, fgetc, fputc, fgets, fputs,fread, fwrite, fscanf, fprintf 的功能与用法. 了解文件结束标记EOF与feof函数.。

C语言程序设计基础知识期末复习2023年修改整理

C语言程序设计基础知识期末复习2023年修改整理

C语言程序设计基础知识期末复习一、 C语言与算法1.程序:一组计算机能识别和执行的指令。

2.C语言的特点:运算符丰富(共有34种运算符)、数据类型丰富、具有结构化的操纵语句。

3.C语言程序的结构特点:(1).一个程序由一个或多个源程序文件组成:一个源程序文件中能够包括三个部分:预处理指令、全局声明、函数定义(2).函数是C程序的要紧组成部分:一个C程序是由一个或多个函数组成的必须包含一个main函数(只能有一个);每个函数都用来实现一个或几个特定功能;被调用的函数能够是库函数,也能够是自己编制设计的函数。

(3).一个函数包括两个部分函数首部和函数体(声明部分:定义在本函数中所用到的变量;对本函数所调用函数进行声明;执行部分:由若干个语句组成,指定在函数中所进行的操作)(4). 程序总是从main函数开始执行(5). C程序对计算机的操作由C语句完成(6.)数据声明和语句后来必须有分号(7.)C语言本身不提供输入输出语句(8.)程序应当包含注释,增加可读性4、算法(1)算法+ 数据结构= 程序(2)顺序结构、抉择结构、循环结构是表示一个良好算法的基本结构(3)算法的特性:有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性(4)算法流程图:一个流程图包括以下几部分:表示相应操作的框;带箭头的流程线;框内外必要的文字说明。

流程线不要忘记画箭头,否则难以判定各框的执行次序。

算法流程图的结构特点:只有一个入口;只有一个出口(一个推断框有两个出口;一个抉择结构只有一个出口)结构内的每一部分都有机遇被执行到。

也就是说,对每一个框来说,都应当有一条从入口到出口的路径通过它;结构内不存在“死循环”。

二、顺序结构设计5、标识符:用来标识变量名、符号常量名、数组名、类型名、函数名等的有效字符序列。

C语言对标识符的规定:(1)只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线(2)长度:在TC中最多允许32个字符,建议不要超过8个假如系统规定标识符长度为8,那样x1234567A和x1234567B会被视为同一标识符。

C语言程序设计期末考试复习题及答案[]

C语言程序设计期末考试复习题及答案[]

C语言考试期末考试复习题及答案一、选择题(1) 一个C语言程序总是从(C )开始执行A) 书写顺序的第一个函数B) 书写顺序的第一条执行语句C) 主函数main()D) 不确定(2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行以下程序段后,i的值是 ( C )int i=10。

switch(i+1){ case 10: i++。

break。

case 11: ++i。

case 12: ++i。

break。

default : i=i+1。

}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e)。

中的条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0D) 运行时出错(5) 用 int a[4]={1,2}。

对数组进行初始化后,数组元素a[3]的值是 ( B )A) 随机值B) 0 C) 1D) F(6) 在执行char str[10]=“china\0”; strlen(str)的结果是( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”。

则语句printf(“%c”,*(p+2))运行结果是 ( B )A) 随机值B) m C)o D) omputer(8) 在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)))。

函数fun1参数的个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和1. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'。

华北电力大学-《C语言程序设计》复习资料

华北电力大学-《C语言程序设计》复习资料

总体上必须清楚的:1)程序结构是三种: 顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch)2)用C语言编写的程序称为C语言源程序,源程序文件的后缀名为“.c”;源程序经编译后生成后缀名为“.obj”的目标文件;再把目标文件与各种库函数连接起来,生成“.exe”的可执行文件。

3)main函数,又称主函数,每个C程序有且只有一个main函数;无论main函数在整个程序中的位置如何,程序总是从main函数开始执行、也从main函数结束。

读程序时应从main函数开始, 然后从上往下读(碰到循环做循环,碰到选择做选择)。

4)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.5)bit是位是指为0 或者1。

byte 是指字节, 一个字节= 八个位.6)一定要记住二进制如何划成十进制。

概念常考到的:1、编译预处理不是C 语言的一部分,不占运行时间,不要加分号。

C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。

2、每个C语言程序中main函数是有且只有一个。

3、在函数定义中不可以再定义函数、即不允许函数嵌套定义。

4、算法可以没有输入,必须要有输出。

5、break可用于循环结构和switch语句。

6、逗号运算符的级别最低。

7、任意合法的表达式一定有一个数值与它对应。

第一章1)C程序中对字母的大小写是敏感的,如A与a是不同的标识符。

注释:是对程序的说明,目的是提高程序的可读性,可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,不允许嵌套注释。

3)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。

有其它元素就错了。

并且第一个必须为字母或则是下划线。

第一个为数字就错了。

关键字不可以作为用户标识符号。

main define scanf printf 都不是关键字。

迷惑你的地方If是可以做为用户标识符。

c程序设计第四版复习

c程序设计第四版复习

c程序设计第四版复习C程序设计第四版是计算机科学领域的经典教材,由Brian W. Kernighan和Dennis M. Ritchie共同撰写,通常被称为K&R C。

这本书不仅介绍了C语言的基本语法和编程技巧,还涵盖了高级编程概念和实践。

以下是对C程序设计第四版的复习要点:1. C语言基础- 变量和数据类型:理解整型、浮点型、字符型等基本数据类型及其使用。

- 运算符:熟悉算术运算符、关系运算符、逻辑运算符、位运算符等。

- 控制语句:掌握if语句、switch语句、while循环、for循环和do-while循环的使用。

2. 函数- 定义和调用:理解函数的定义方式和如何调用函数。

- 参数传递:了解值传递和引用传递的区别。

- 递归:学习如何使用递归解决复杂问题。

3. 数组- 一维数组:掌握数组的声明、初始化和访问。

- 多维数组:了解二维数组的声明和使用。

- 指针和数组:理解指针与数组的关系,以及如何使用指针操作数组。

4. 指针- 指针基础:理解指针的概念和指针变量的声明。

- 指针和函数:学习如何通过指针传递函数参数。

- 指针数组和函数指针:掌握指针数组的使用和函数指针的概念。

5. 结构体和联合体- 结构体:理解结构体的声明、初始化和成员访问。

- 联合体:了解联合体的概念和使用场景。

- 结构体和指针:掌握如何使用指针访问结构体成员。

6. 预处理器- 宏定义:学习如何使用#define进行宏定义。

- 文件包含:了解如何使用#include包含其他文件。

7. 输入和输出- 标准库函数:熟悉printf和scanf等标准输入输出函数。

- 格式化输入输出:掌握如何使用格式化字符串进行输入输出。

8. 动态内存分配- malloc和free:学习如何使用malloc进行动态内存分配和使用free释放内存。

9. 文件操作- 文件指针:理解文件指针的概念。

- 打开和关闭文件:掌握如何使用fopen和fclose操作文件。

C语言程序设计期末复习

C语言程序设计期末复习

②doudb!le=
float
f &&
int
(i+1)
int
③dou4b.0le
int
*i
char
+ c double
【14】 A) double, double, double (或float)
B) int, double, char
✓C) int, int, double (或float) D) unsigned, unsigned, int
② 其他可打印(可显示)的字符,如汉字等自然语言 符号(作为字符串的内容)
[注意] C/C++语言是区分大小的语言 !
(详见P377 附录B)
8
zxl.xmu.2014
关键字
关键字/保留字 —— C语言程序中有特殊含义 的英文单词,主要用于构成语句、定义存储类 型和数据类型。
✓ C语言中仅有37个关键字
else continue;
printf("%4d",n); }
break; 仅输出: 100 }
输出【:131】00A1)01fo1r0(3n=1100401;0(n6%1037)&…&…n<=200; n++) printf("%4d",n); B) for (n=100; (n%3)||n<=2仅00输; n出++:) p1ri0n0tf1("0%1 4d",n);
非法字符举例:M.D.John,$123,1AB,d e
11
zxl@xmu
运算符(共34种,详见P378《附录D》)
• 目/元——运算时所需运算对象(操 作数)的个数。

国家开放大学《C语言程序设计》复习资料

国家开放大学《C语言程序设计》复习资料

7.在一维数组的定义语句中,数组名前为元素类型关键字。(√) 8.假定二维数组的定义语句为 “double a[M][NJ;" ,则每个数组元素的列下标取值范围在 0-N-i 之间。 (√) 9.一个二维字符数组 a[10][20 」中存储每个字符串的最大长度为 190(√) 10.假定 a 是一个一维数组,则表达式, (a+i) 所对应的元素为 a[i-1],(×) 11.进行动态存储分配的。alloc() 函数带有两个参数。(√) 12.对于标识为 static 属性的变量,若没有对它进行初始化,则默认的初值为 10(×) 13.在 C 语言中一个结构类型的长度等于所含的所有数据成员类型的长度之和。(√) 14.在结构成员访问运算符中,点运算符和箭头运算符的左边均为结构变量。(×) 15.当向字符文件输出一个换行符时,实际将输出的是回车符或换行符。(×) 16.在 C 语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。( √ ) 17.一个 C 语言程序能够包含多个用户头文件。( √ ) 18.在定义一个变量时,不能够同时给它赋初值。( × ) 19. 表达式 (int)14.6%5 的值为 40 ( √) 20.若 x=5 , y=10 ,则 x>y 逻辑值为真。( × ) 21.当循环次数确定时, while 循环语句能够转换为 for 循环语句。( √ ) 22.在一维数组的定义语句中,数组名后带有一对中括号。( √ ) 23.在二维数组的定义语句中,不能给数组中每个元素赋初值。( × ) 24.对于一个长度为 n 的字符串,存储它的字符数组的长度至少为 no ( × ) 25.假定一个数据对象为 int *类型,则指向该对象的指针类型为 int *祷。( √ ) 26.进行动态存储分配的 malloc( )函数带有两个参数。( × ) 27.函数定义格式中的参数表被称为实参表。( × ) 28.在同一个结构类型的定义中,各数据成员名必须不同。( √ ) 29.在结构成员访问运算符中,点运算符(.)为双目运算符。( √ ) 30. 在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。( × ) 31.在 C 语言程序中,只有一种使用注释语句的方法。( × ) 32.常数 3. 26 是双精度定点数。( √ ) 33. 表达式(f!oat)25/4 的值为 6 0 ( × ) 34. 已知 x= 一 25 ,则 fabsCx) 的值为一 25.0 0 ( × ) 35.while 循环是先判断循环条件,当条件为真时执行循环体。( √ ) 36.在一维数组的定义语句中,数组名后带有一对中括号。( √ ) 37.字符串允许为空,并且其长度为 0 0 ( √ ) 38. 一个二维字符数组 a[10][20] 中存储每个字符串的最大长度为 20 0 ( × ) 39.假定 a 是一个一维数组,则进行 a++ 运算是不允许的。 ( √ ) 40.在一个函数定义中,函数体是一条简单语句。 ( × ) 41,在 C 语言程序中,对于递归函数和非递归函数,其函数头部有区别标志。 ( × ) 42.在结构类型的定义中,结构类型的作用域范围,与它的定义位置有关。( √ ) 43.在结构成员访问运算符中,点运算符和箭头运算符的左边均为结构指针变量。 ( × ) 44.在一个磁盘数据文件的文件名中,文件主名是必须的,扩展名可任选使用。( √ ) 45. 对二进制文件进行读和写操作将使用不同的系统函数。( √ )

《C语言程序设计》专题复习资料

《C语言程序设计》专题复习资料

7、编写一个程序,将用户输入的十进制整数转换成
十六进制数。

8、编写程序,把一个65---91之间的数据看成是字
符的ASCII码,输出对应的字符。

(用Do循环语句编写,且字符之间用空格分开)
9、输入一个英文句子,它仅包含单词与空格,试把其中的每一个单词的第一个字母设置为大写,其余字母设置为小写,输出结果。

(用数组编程)
10、
11、
12、
13、
14、
15、
16、
17
18、
19、
20、
21、
第二部分参考答案
参考资料:[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》
[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》
[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》
[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》
[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》。

C语言程序设计期末考试复习题及答案

C语言程序设计期末考试复习题及答案

C语言考试期末考试复习题及答案一、选择题(1) 一个C语言程序总是从(C )开始执行A) 书写顺序的第一个函数B) 书写顺序的第一条执行语句C) 主函数main()D) 不确定(2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行以下程序段后,i的值是 ( C )int i=10。

switch(i+1){ case 10: i++。

break。

case 11: ++i。

case 12: ++i。

break。

default : i=i+1。

}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e)。

中的条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0D) 运行时出错(5) 用 int a[4]={1,2}。

对数组进行初始化后,数组元素a[3]的值是 ( B )A) 随机值B) 0 C) 1 D) F(6) 在执行char str[10]=“china\0”; strlen(str)的结果是 ( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”。

则语句printf(“%c”,*(p+2))运行结果是( B )A) 随机值B) m C)o D) omputer(8) 在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)))。

函数fun1参数的个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和1. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'。

《C语言程序设计II》期末复习

《C语言程序设计II》期末复习

《C语言程序设计II》期末复习一、复习内容:⏹第1~4讲指针●指针的概念:内存单元的排列方式、地址的概念、不同数据类型内存单元的个数、存储方式不同,两种变量的存取方式,指针即是地址,NULL;●指针变量:概念和定义方法(空悬指针、空类型与空指针),指针的两个特殊运算符(*与&),指针变量作为函数参数(通过函数调用得到n个要改变的值);●指针运算:指针与整数的运算、++(--)、比较、相减;●指针与一维数组:对数组名的理解,指针与一维数组(指向数组元素的指针、引用数组元素时的指针运算、通过指针引用数组元素的几种方法、用数组名作函数参数);●指针与二维数组:理解二维数组中行指针、列指针的类型,加减1所移动的字节数,如何利用它们访问二维数组元素,用作函数参数参数时在主调函数中如何给出实参。

●通过指针引用字符串:字符串的引用方式,字符指针作函数参数,使用字符指针变量和字符数组的比较;●指向函数的指针:什么是函数指针,怎样定义和使用指向函数的指针变量,用指向函数的指针作函数参数;●返回指针值的函数:函数的返回值是一个地址,定义格式,使用;●指针数组和多重指针:什么是指针数组,指向指针数组的指针,指针数组作main函数的形参;●动态内存分配:动态内存分配的概念、必要性,与动态内存分配相关的4个函数,动态数组的建立;●有关指针的小结:指针、指向、指针变量,void *类型与NULL的比较,指针与数组的关系,各类指针类型的比较,指针的几类运算;●结构体指针:什么是结构体指针,用结构体指针访问成员的简便写法,指向结构体数组的指针,结构体变量与结构体指针作函数参数;●用指针处理链表:什么是链表,建立静态链表,建立动态链表,输出链表。

(理解链表的概念,本次考试不包含这一部分内容)。

⏹第5讲位运算和预处理指令●位运算与位运算符:位运算概念,6种基本的位运算符(&、|、^、~、<<、>>),&和^运算符的一些用法,位运算的复合赋值运算符;●位段:问题的提出,位段的概念与定义,位段的使用,注意事项;(这一部分内容不考)●预处理:概念,主要工作,功能类型,书写要求;●宏定义:不带参数的宏定义,带参数的宏定义;●“文件包含”处理:格式,作用,带<>与””的差别;●条件编译:概念,好处,几种基本格式。

C程序设计复习资料(含答案)

C程序设计复习资料(含答案)

C程序设计复习要点第一章概述1.C程序的构成与结构特点2.C程序上机调试过程与流程第二章数据类型、运算量与表达式1.数据类型的种类(基本数据类型和构造数据类型)2.常量的数据类型及其表示(表示方法、存储字节数与表数范围)——整、实、字符、字符串和转义字符3.变量的命名、定义方法与赋初值4.各种表达式及其运算规则——优先级、结合性、类型自动转换与强制转换●算术运算符、表达式及其构造(注意“/”和“%”特殊性)●自增、自减运算符及其简单表达式运算●赋值运算符及其表达式(注意复合赋值运算符的运算方法)●逗号运算符及其表达式第三章流程控制1.赋值语句的一般形式、赋值过程及赋值规则(注意左右数据类型的一致或兼容)2.输入和输出函数的格式、功能及用法(只要求常用的格式控制符d, f, c, s),提醒注意:●格式输出中域宽和小数位数的控制●格式输入与输出中普通字符的原样输入和输出问题●熟悉并区别以下函数:putchar()、printf()、puts();getchar()、scanf()、gets()3.关系运算符及其表达式、逻辑运算符及其表达式和条件运算符及其表达式的运算规则(优先级、结合性)4.关系表达式与逻辑表达式的构造(根据已知条件写表达式)5.if语句的三种形式:if …语句、if …else …语句、if 语句的嵌套●if 语句的格式与用法:简单if、嵌套if、并列if●逻辑关系与执行过程●嵌套规则(重点掌握if …else …if …else …if …else)6.switch语句的格式与用法7.*熟练使用if和switch语句阅读和编写较为简单的选择结构程序8.三种循环语句:while() …、do …while()、for()的格式、执行过程及其用法●循环变量初始化、循环条件构造、循环体所要实现的任务和控制变量修改注意循环期间与结束时循环控制变量的取值问题9.结合例题理解和区别break与continue语句的作用及其用法10.本章涉及的主要算法:累加(计数)、累乘、递推、穷举、判素数、求最大公约与最小公倍等11.*熟练使用三种循环语句并结合以上算法阅读和编写较为简单的循环结构及其嵌套程序第四章复杂数据类型1.一维、二维数组的定义、初始化及其引用方法(数据输入、输出、存储与处理)2.字符数组的定义、初始化及其引用(字符串输入、输出、存储与处理)3.常用字符串处理函数:gets()、puts()、strlen()、strcmp()、strcpy()4.数组涉及的主要算法:排序、极值、逆序、回文和字符串的连接、复制、求长度等5.*熟练使用数组并结合以上算法阅读和编写较为简单的程序6.指针的概念:指针、指针变量、指针运算(*、&、++、--、+、-)7.变量、数组和字符串指针的定义、指向与引用(仅限于一维数组)8.了解指针数组与二级指针的概念和定义9.*能够阅读并理解使用指针进行数据处理的相关程序(极值、逆序、回文和字符串的连接、复制、求长度等)10.结构体与共用体的概念、定义与引用(仅限概念)第五章结构化程序设计与应用1.熟悉程序的三种基本结构:顺序、选择和循环2.*通过其中部分例题掌握选择、循环语句的使用以及循环和数组涉及的主要算法第六章函数与编译预处理1.掌握函数的定义、声明和调用方法及参数传递方式2.*结合相关例题掌握一般函数和递归函数的定义与使用3.熟悉局部变量与全局变量的定义及作用范围,了解各种静态与动态变量的定义、作用范围与生存期4.了解内部函数与外部函数的定义及调用规则5.掌握宏定义与宏展开(重点掌握带参数宏的定义与展开)6.了解文件包含的作用及其使用场合第七章文件1.了解文件的概念2.熟悉文件打开、关闭及各种与文件读写有关函数的格式与用法特别提醒:以上带*部分主要涉及程序阅读、程序填空和编写程序,其余部分主要以选择和概念填空题出现3ae bc C语言程序设计参考题型说明:★本题仅反映考试的题型,作为考前复习参考。

大一期末C语言程序设计基础题库与总结复习资料

大一期末C语言程序设计基础题库与总结复习资料

C语言题库第一章计算机语言经历发展阶段:机器语言、符号语言、高级语言程序结构有3种:顺序结构,选择结构,循环结构C语言的特点:允许直接访问物理地址。

【C语言中含有的位和指针运算,能够直接对内存地址进行访问。

】不是C语言的特点的是:能够编制出功能复杂的程序【所有程序都可以,不算特点】Main:主函数,是所有程序运行的入口、起点。

一个C语言程序必须只有一个main函数。

程序总是从main函数开始执行,main函数可以放任何位置,到main函数结束。

函数体由花括号括起来结束标志:returnreturn 0的作用是:当main函数执行结束前将整数0作为函数值返回到调用函数处return(z)的作用是:将z的值作为max的函数值返回给调用max 函数的函数。

只有通过return(z)才能把求出的z值作为函数值并返回调用它的main函数中C语言程序的结构:由一个或多个源程序(C语言编写的程序,也可以叫编译单位)文件组成(源程序文件中包含:预处理指令、全局声明、函数定义)函数是C程序的主要组成部分(也是基本单位),C语言由函数组成。

函数包括两部分:函数首部、函数体C语言本身不提供输入输出语句,输入输出的操作是有库函数scanf 和printf等函数来完成的。

程序应包含注释#define和printf都不是C语句C语言程序的运行经过:编辑(edit)、编译(compile)、连接(link)【C语言中是build】、执行(execute)。

C语言源程序文件的后缀是.cpp,经过编译之后,生成后缀为.obj 的目标文件,经连接生成后缀.exe的可执行文件C语言的储存类型包括register、extern、statis和auto基础知识6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( C )。

A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D. 自动保存源文件运算优先级:!(非)>算数(如%)>关系>逻辑>赋值运算符(低)空语句:只有分号组成的语句,即一个分号。

c语言程序设计(复习资料)

c语言程序设计(复习资料)

c语言程序设计(复习资料)总共50题共100分一、单选题(共20题,共40分)1. 假定一个二维数组的定义语句为“int a[3][4]={{3,4,{2,8,6;”,则元素a[2][1]的值为()。

(2分)A.0B.4C.6D.8★标准答案:A2. 以下说法中正确的是()。

(2分)A.C++程序总是从第一个定义的函数开始执行B.C++程序总是从main函数开始执行C.C++函数必须有返回值,否则不能使用函数D.C++程序中有调用关系的所有函数必须放在同一个程序文件中★标准答案:B3. 在下面循环语句中循环体执行的次数为()。

int i=0,s=0; while(s<20) {i++; s+=i; (2分)A.4B.5C.6D.7★标准答案:C4. 虚函数的定义是在基类中进行的,定义时需要冠以关键字(2分)A.staticB.frendC.virtualD.public★标准答案:C5. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。

(2分)A.内联函数B.重载函数C.递归函数D.函数模板★标准答案:A6. 设x和y均为bool量,则x || y为假的条件是( )。

(2分)A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假★标准答案:C7. 若数组名作实参而指针变量作形参,函数调用时实参传给形参的是(2分)A.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址★标准答案:D8. 字符串”a+b=12\n”的长度为()。

(2分)A.6B.7C.8D.9★标准答案:C9. 程序中主函数的名字为()。

(2分)A.mainB.MAINC.MainD.任意标识符★标准答案:A10. 假定下列x和y均为int型变量,则不正确的赋值为()。

(2分)A.x+=y++B.x++=y++C.x=++yD.++x=++y★标准答案:B11. do语句能够改写为()语句。

C程序设计复习资料知识点总结C语言

C程序设计复习资料知识点总结C语言

C程序设计知识点都懂了;一定过第1章 C语言概述1.1.C语言属高级语言;区分字母的大小写;以函数为基本单位采用模块化程序设计;可直接访问内存;进而对硬件进行操作..1.2.用C语言编写和程序称作C源程序;简称C程序;C程序可由若干个文本文件组成;文件扩展名为C使用C++编译器时默认扩展名为CPP..C源程序经编译、连接后得到扩展名为EXE的可执行文件目标程序..预处理编译、连接执行若干个C程序文件----→C程序------→目标程序文件--→1.3.C程序从主函数开始执行;每个C程序有且仅有一个主函数;因此;每个C程序文件中至多有一个主函数..1.4.C语句以分号结尾;用{}括起来的一组语句称作复合语句;复合语句可省略花括号之后的分号..1.5.允许一行内写多个C语句;也允许一个C语句占用多行;但保留字和标识符不可拆行..1.6.在C集成环境VC++ 6.0中;新建工程、保存当前程序文件、编译当前程序、执行当前程序的快捷键依次为:Ctrl+N、Ctrl+S、F7、Ctrl+F5..第2章 程序设计的灵魂——算法2.1. 解决问题的方法和步骤称作算法..算法和数据结构是程序的两个主要要素.. 2.2. 算法具有确定性、有穷性、有效性等特点..2.3. 算法可用自然语言、流程图、N-S 图、计算机语言、伪代码等描述..伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法..2.4. 算法的基本结构分为:顺序结构、选择结构、循环结构..↓↓↓↓←- --Y ┌ 条件 ┐N 条件 ┐N││││条件┘Y--- ← ┘ ↓N图2.2 顺序结构 图2.3 选择结构 图2.4 当循环 图2.5 直到循环图直到循环2.5.由三种基本结构组成的程序称作结构化程序;结构化程序中的每个模块只有一个入口和一个出口..结构化程序设计通常采用“自顶向下、逐步细化”的设计方法..第3章数据类型、运算符与表达式3.1.C的数据类型如下所示:表3.1 C语言的数据类型3.2.字母或下划线开头;由字母、数字、下划线组成;超出32个字符部分被忽略最好不超过8个字符..3.3.以0开头的整数为八进制整数;以0X或0x开头的整数为十六进制无符号整数..3.4.-32768~32767为int型;0U~65535U为unsignedunsigned long型;-~-32769、32768~和-L~L为long型..后缀U和L不区分大小写和次序..3.5.数据的存储字节数可用运算符sizeof查询;括号内可是数据、表达式或类型名..3.6.有符号整数int和long3.7.定点数含小数点数和浮点数统称C实型常量;浮点数的一般形式为:尾数e除码或尾数E除码其含义为:尾数×10除码其中;尾数为定点数或整数;除码为整数..标准浮点数的小数点在第1位非0数字之后..后缀L或l的实型常量为长双精度;无后缀实型常量为双精度..3.8.用一对单引号括起来的单个字符称作C字符常量;其值为该字符的ASCII码1字节无符号整数..3.9.转义字符'\n'、'\t'、'\\'、'\''、'\"'分别表示回车符、制表符、反斜杠、单引号、双引号..3.10.转义字符'\整数'、'\x整数'或'\X整数'中的整数分别为八进制、十六进制;表示以此整数为ASCII码的字符..3.11.用双引号括起来的一串字符称作C字符串型常量;串中字符数称作串长;可以为0..字符串的存储形式为:依次存储字符串中字符的ASCII码;并追加一个空字符'\0'1字节无符号整数0..3.12.字符型、整型、实型数据统称数值型数据;不同类型的数值型数据可以混合运算;低精度数据被自动强制转换为高精度数据后方参与运算..另外;字符常量为有符号短整数;两个字符型数据间的运算按有符号短整数处理..3.13.如果将数值型数据赋给不同类型的数值型变量;则数值型数据将被自动强制转换为变量的数据类型..3.14.C允许定义变量的同时赋初值..3.15.C运算符及其优先级、结合性如附录C教材第365页所示..3.16.强制数据类型转换的一般形式为:类型名数据3.17.自增++、自减--运算只能作用于变量;作用于右侧时;返回变量自增、自减前的值..3.18.赋值表达式的格式为:变量=表达式或变量op=表达式其中;op为运算符 +、-、、/、%、>>、<<、&、^、| 中某一个..前者将右边表达式的值赋给左边的变量;后者将左边变量的当前值与右边表达式的值作相应运算后仍赋给左边的变量..整个赋值表达式取左边变量所赋的新值..3.19.用逗号分隔的一组表达式称作逗号表达式;其一般形式为:表达式; 表达式; …; 表达式其功能为:从左至右依次计算各表达式的值;并以最后一个表达式的值为整个逗号表达式的值..3.20.将数学式改为C表达式时应注意:(1)乘号不可省略;(2)正确改写脚码、运算符、括号等;(3)正确书写函数名;(4)把握好运算优先级;分数线改为/时;分子、分母相应加括号;(5)正确拆分不等式组;(6)区分整数除法和实数除法..第4章顺序结构程序设计4.1.表达式后缀分号称作表达式语句;即;表达式;4.2.putchar、getchar、printf、scanf等输入输出函数的原型在头文件stdio.h中..4.3.函数putchar和getchar的格式和功能如下:(1)putchar格式:putchar表达式功能:向标准输出设备输出以指定表达式的值为ASCII码的字符;并以该值为函数值自动强制转换为int型..(2)getchar格式:getchar功能:从标准输入设备输入一个字符;并以该字符为函数值..注意:getchar可提取空格及回车、Tab等部分控制字符;而且只提取输入中相应位置上的一个字符;因此;输入字符间无须分隔;否则也被视为输入字符..4.4.printf函数的格式和功能如下:格式:printf格式控制串; 输出表列功能:(1)从右至左依次计算输出表列中各表达式的值;(2)从左至右依次输出格式控制串中的字符;其中;%引导的格式控制符由输出表列中相应表达式的值所取代..输出表列是一组用逗号分隔的表达式又称输出项;可以为0项..格式控制串为字符串型数据可以是表达式..其中;格式符用于控制输出表列中相应表达式的输出格式..格式符及其功能如下表所示:表4.1 printf格式字符4.5.格式:scanf格式控制串; 地址表列其中;格式控制串为字符串型数据可以是表达式;地址表列是一组用逗号分隔的地址..功能:(1)右至左依次计算地址表列中各表达式的值;(2)从标准输入设备提取数据;并从左至右依次存储到所指定的存储单元..(3)地址表列中的地址可用表达式表示;通常形式为:&变量其中&是地址运算符;它表示取其后变量的存储起始地址..说明:(1)scanf函数格式符与printf函数的格式符的功能相似..scanf的合法格式符不区分大小写、实型格式符均等效;另外;表4.2 scanf的附加格式符说明(2)符;且被跳过;这为指定数据间分隔符提供了方便..(3)printf和scanf格式控制串中的每对%%从左至右结合按一个普通字符%对待..第5章选择结构程序设计5.1.C逻辑值为短整数int;真、假分别为1、0..另外;字符、数、指针作为逻辑量时;非0、非空为真即1;0、空为假即0..逻辑运算如下表所示:表5.1 逻辑运算真值表5.2.□||□||…的逻辑式;从左至右计算□的逻辑值;遇到真则提前终止..5.3.对于形如□&&□&&…的逻辑式;从左至右计算□的逻辑值;遇到假则提前终止..5.4.算术、关系、逻辑运算的优先级参见附录C教材第365页..5.5.if语句的格式和功能如下:(1)格式一:if条件语句功能:如果条件成立;方执行语句..(2)格式二:if条件语句1 else 语句2功能如果条件成立;执行语句1;否则执行语句2..注意:else不可独立使用;它与其前最近一个尚未配对的if配对;为避免歧义;通常只在else中嵌套if语句..5.6.条件表达式的格式和功能如下:格式:条件表达式1:表达式2功能:如果条件成立;取表达式1的值;否则取表达式2的值..说明:条件表达式可以嵌套;与其前最近一个尚未配对的if配对..5.7.switch语句的格式和功能如下:格式:switch表达式{…case 常量i: 语句组i…default: 语句组n+1}功能:如果表达式的值等于常量i;则从语句组i开始执行;否则执行语句组n+1..说明:(1)“表达式”的值和“常量”为整型包括字符型..(2)switch中的每个语句组称作一个分支;为使各分支独立;通常以break、return、exit等语句结尾..另外;“default: 语句组n+1”可以缺省..5.8.break语句的格式和功能如下:格式:break;功能:结束本层switch语句或本层循环语句..说明:break语句只能用于switch语句和循环..第6章循环结构程序设计6.1.while语句的格式和功能如下:格式:while表达式循环体功能:当表达式的值为真时;重复执行其后循环体..说明:循环体是循环语句的内嵌语句;可以是空或复合语句下同..6.2.do-while语句的格式和功能如下:格式:do 循环体 while表达式功能:重复执行循环体;直到表达式的值为假..说明:do-while循环至少执行一次循环体..6.3.for语句的格式和功能如下:格式:for表达式1; 表达式2; 表达式3 循环体功能:(1)计算表达式1;(2)当表达式2的值为真时;重复执行循环体和计算表达式3..说明:表达式1、表达式2、表达式3均可缺省;但保留分号..6.4.continue语句的格式和功能如下:格式:continue;功能:跳过循环体中其后程序段结束本次循环..说明:continue语句只能用于循环..6.5.掌握以下算法:累加、阶乘、判断素数、分解整数数字、递推数列、打印字符图形..第7章数组7.1.同一类型数据的序列称作数组;数组中数据用相应下标变量访问;因此;数组亦可视为由下标变量组成的序列..7.2.定义数组语句的一般格式和功能为:格式:数据类型名数组名第1维长度…第n维长度功能:为数组分配连续内存单元;用于存储数组中的下标变量低维优先;并将起始地址又称基址赋给数组名..说明:数组长度只能为整型常量或整型常量表达式..7.3.数组的要素有:数据类型、数组名、维数及各维的长度..各维的长度必须是常量;可用常量表达式表示;其值的整数位有效——截断取整..7.4.下标变量的格式为:数组名第1维下标…第n维下标7.5.下标从0开始;可用表达式表示;其值的整数位有效..下标最大值比长度小1..7.6.下标变量的使用与普通变量相同..7.7.定义数组的同时可对数组中的下标变量赋初值..格式:数据类型名数组名第1维长度…第n维长度={数据表}功能:定义数组的同时将数据表中数据依次赋给数组中下标变量;未赋值下标变量的初值为相应数据类型的0..说明:数据表中的数据必须是常量;可用表达式表示..第1维长度可省略;如果省略;其长度由数据表和其它维长度确定——存储所需的最小长度..7.8.以字符为数据元素的数组称作字符数组;它由一组字符型下标变量组成..除赋值外;字符数组名的使用与字符串变量相似..字符数组也可用字符串初始化..7.9.标准函数库提供许多用于处理字符串的函数..表7.1 常用字符串处理函数后的字符..7.10.掌握冒泡排序..第8章函数8.1.自定义函数的格式为:函数值类型函数名带类型声明的形参表列{函数体}8.2.函数值的默认数据类型为int..8.3.如果函数有返回值;则用return语句返回;其格式为:return 表达式; 或 return表达式;8.4.如果函数无返回值;即函数值类型为void;亦可用格式:return;结束本函数并返回调用者..8.5.函数一般调用格式为:函数名实参表列其中;实参表列为一组逗号分隔的表达式..实参按从右至左的次序计算并传递给相应形参..8.6.如果函数调用在其定义之前;调用前应作相应声明;声明格式为:函数值类型名函数名形参及其类型声明表列;其中;形参可省略..8.7.函数不可嵌套定义;但允许嵌套调用;亦可直接或间接调用自身称作递归函数..8.8.递归函数的函数体的一般格式为:B班同学不作要求if递归条件语句1 /递归时;如何递归/else 语句2 /非递归时;如何处理/或if递归条件语句1 /非递归时;如何处理/else 语句2 /递归时;如何递归/8.9.形参及函数内定义的变量称作局部变量;它从定义处生效;且只在该函数内有效..因此;不同函数中的局部变量可以同名;但同名不同义..8.10.在所有函数之外定义的变量称作全局变量;它从定义处生效..8.11.如果局部变量与全局变量同名;则同名全局变量被屏蔽..8.12.局部变量的存储方式分为:自动auto;默认、静态static、寄存器register..8.13.存储方式和数据类型是变量的两个重要属性;必须在定义变量时一并声明;关键字的排列顺序没有限制..变量的默认数据类型为int;默认存储方式为auto;但关键字auto和int不可同时缺省..8.14.auto型局部变量占用动态数据区;当函数调用结束时释放所占内存..register占用CPU中的寄存器;但寄存器不够用时;占用动态数据区..8.15.全局变量和static型局部变量占用静态数据区;默认初值为相应数据类型的0..8.16.static型局部变量的声明和初始化只执行一次..8.17.如果全局变量被声明为static型;则其它程序文件不能使用该全局变量..否则;其它程序文件也可使用该全局变量;但使用前应作extern声明..8.18.被声明为static型的函数;只在本程序文件中有效;不能被其它程序文件调用..否则;其它程序文件也可调用此函数;但调用前应作extern声明..8.19.常用数学函数在头文件math.h中..掌握基本初等函数..第9章预处理命令9.1.预处理命令在程序编译前执行;其主要功能是“文本置换”..9.2.不带参数宏定义的格式和功能如下:格式:define 宏名文本功能:在预处理时;将程序中宏名用相应的文本置换..9.3.带参数宏定义的格式和功能如下:格式:define 宏名形参表列文本功能:在预处理时;将程序中带参数的宏用相应的文本置换;且文本中的形参被相应的实参所置换..注意:形参无须且做类型声明..9.4.终止宏定义的格式如下:格式 undef 宏名9.5.宏定义可以引用已有的宏;亦可重新定义所代表的文本..9.6.预处理命令无须以分号结尾;否则分号也参与置换..9.7.include命令的格式和功能如下:格式一:include "文件名"格式二:include <文件名>功能:在预处理时;用指定文件置换本命令——加载文件..置换后;被包含文件成为本文件的一部分;其函数、全局变量等均可在本文件中直接使用;无须作extern声明..前一种格式先在当前目录中找指定文件;如果未找到;方到存放C头文件的目录中查找..后一种格式直接到存放C头文件的目录中查找指定文件..9.8.条件编译命令的格式和功能如下:格式一:ifdef 宏名程序段1 else 程序段2 endif功能:在预处理时;如果指定的宏名已定义;则用程序段1置换本命令;否则用程序段2置换本命令..当程序段2为空时;else可省略下同..格式二:ifndef 宏名程序段1 else 程序段2 endif功能:在预处理时;如果指定的宏名未定义;则用程序段1置换本命令;否则用程序段2置换本命令..格式三:if 常量表达式程序段1 else 程序段2 endif功能:在预处理时;如果指定常量表达式的值为真非0;则用程序段1置换本命令;否则用程序段2置换本命令..9.9.注释命令在预处理时被删除;不影响源程序和目标程序..注释命令的格式如下:/注释内容/第10章指针10.1.内存的基本单位是字节;每个字节都有相应的编号;称作地址或指针..借助于指针;C语言可以直接访问内存;从而对硬件进行操作..10.2.变量所占用内存的大小由其数据类型决定;变量所占用内存的第1个字节的地址称作该变量的地址或指针;表为:&变量名10.3.指针所指向数据的类型称作该指针的基类型;它所指向数据用指针访问;可作为普通变量使用..10.4.指针本身也是一种数据类型;占用2字节内存;可作为无符号整数输出和参与关系运算、逻辑运算;但指针的其它运算不同于整数运算..10.5.指针运算可简单地分为以下五类:(1)单目运算有六个:、&、、++、--、sizeof..(2)双目运算有四种:-、关系运算、逻辑运算、赋值运算..(3)指针与整数间的运算有三个:+、-、 ..(4)强制类型转换运算: ..(5)结构体成员运算:->..其中;+、-、++、--、+=、-=均以基类型数据为基本单位..10.6.一维数组的数组名可作为指针调用;它指向数组中的第一个元素;以数组中元素的类型为基类型..数组名的值不可修改;且sizeof数组名的值为整个数组所占内存的字节数..10.7.对于一维数组来说;基址+i 和 &基址i均指向数组中的第i+1个元素i>=0;基址+i 和基址i均表示数组中的第i+1个元素i>=0..10.8.n维数组可看作是以n-1维数组为元素的一维数组;数组名可看作是指向数组中的第一个n-1维数组的指针..10.9.下标变量可作为实参;但不可作为形参;实际上;它被误认为指针..10.10.※ C源程序经编译后;系统为源程序中的每个函数均分配一个入口地址;称作函数指针..在C源程序中;函数指针用函数名表示;其值不可修改..以函数指针为值的变量称作函数指针变量;其定义格式为:函数类型名函数指针变量名 ;可用下述格式代替函数名:函数指针10.11.※1函数返回值可以是指针;定义函数的一般格式为:基类型函数名形参列表{函数体}10.12.不允许将非0数直接赋给指针变量;须做强制转换..当指针变量的值为0时;称之为空指针..10.13.※以指针为元素的数组称作指针数组..10.14.※以指针为基类型的指针称作指向指针的指针;以指向指针的指针为值的变量称作指向指针的指针变量;其定义格式为:存储方式关键字基类型名指向指针的指针变量名10.15.※ C源程序经编译、连接所得目标程序exe文件可作为DOS外部命令使用;命令行的一般式为:路径\目标程序文件名参数1 参数2 …参数n10.16.※ C主函数main可带两个形参;前者为int型;用于接收命令行中字符串个数;后者为字符串指针数组;用于接收命令行中各字符串..带参主函数的格式为:void mainint 形参1;char 形参2 {函数体}其中;形参1=参数个数+1形参20="路径\目标程序文件名"形参2i="参数i";i=1;2;…;n1标注※表示此部分为非考试内容。

计算机考研谭浩强《C程序设计》考研考点复习资料

计算机考研谭浩强《C程序设计》考研考点复习资料

计算机考研谭浩强《C程序设计》考研考点复习资料第1章程序设计和C语言1.1 考点复习笔记一、计算机程序1程序就是一组计算机能识别和执行的指令2计算机的一切操作都是由程序控制的二、计算机语言1定义人和计算机交流信息,要解决语言问题。

需要创造一种计算机和人都能识别的语言,这就是计算机语言。

2发展阶段计算机语言经历了几个发展阶段:(1)机器语言(2)符号语言(3)高级语言三、C语言的发展及其特点1概述(1)C语言是国际上广泛流行的计算机高级语言。

(2)C语言的祖先是BCPL语言。

2发展最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的,后来逐步发展为一种高级编程语言,目前C语言使用的标准是1999年修正的C99。

3特点(1)语言简洁、紧凑,使用方便、灵活(2)运算符丰富(3)数据类型丰富(4)具有结构化的控制语句(5)语法限制不太严格,程序设计自由度大(6)C语言允许直接访问物理地址(7)用C语言编写的程序可移植性好(8)生成目标代码质量高,程序执行效率高四、简单的C语言程序(1)一个程序由一个或多个源程序文件组成在一个源程序文件中可以包括3个部分:①预处理指令②全局声明③函数定义(2)函数是C程序的主要组成部分①函数是C程序的基本单位。

②一个C语言程序是由一个或多个函数组成的,有且仅有一个main函数。

③一个小程序只包含一个源程序文件。

④函数既可以是库函数,也可以是用户自定义函数。

(3)函数的两个部分①函数首部函数首部包括函数名、函数类型、函数属性、函数参数(形式参数)名、参数类型。

②函数体即函数首部下面的花括号内的部分。

函数体一般包括两部分:声明部分和执行部分。

(4)程序总是从main函数开始执行的(5)程序中对计算机的操作是由函数中的C语句完成的(6)在每个数据声明和语句的最后必须有一个分号(7)C语言本身不提供输入输出语句(8)程序应当包含注释五、运行C程序的步骤与方法C程序运行步骤图如图1-1所示。

程序设计基础(C)第1——5章复习题答案

程序设计基础(C)第1——5章复习题答案

程序设计基础(C)第1——5章复习题及参考答案一、单选题1.可以在C语言中使用的一组用户标识符是(C)。

A. 3BB. KEYC. _123D. voidsizeof cl_c2 T3_al_ CHA TDO -for scanf 6B2.while(!x)中的!x与下面条件(A)等价。

A. x==0B. x==1C. x!=5D. x!=03.增1减1运算只能作用于(B)。

A. 常量B. 变量C. 表达式D. 函数4.下面四个选项中,均是字符常量或数值常量的选项是(A)。

A. 0.0B. “A”C. …3‟D. +0010f 3.9E-2.5 011 0xabcd8.9e 1e1 0xff00 2e3…&‟ …\”‟ 0a 50.5.下选项中正确的实型常量是(D)。

A. 0B. 0.618*10^2C. .871D. 3.1415 6.C语言中运算对象必须是整型的运算符是(D)。

A. %= 与/B. = 与&C. * 与^D. % 与|7.设a=2,b=2;则++a+b的结果是( D),a的结果是( B ),b的结果是( A)。

A. 2B. 3C. 4D. 59.下列运算符中优先级最低的是(B)。

A. +B. &&C. <=D. sizeof10.设int a=2;则表达式(a++*1/3)的值是(A),a的值是(D)。

A. 0B. 1C. 2D. 311.字符数据在内存中的存储采用的是(D)。

A. 反码B. 补码C. EBCDIC码D. ASCII码12.在C语言类型说明中,int、char、short等类型数据的长度是(D)。

A. 固定的B. 由用户自己定义的C. 任意的D. 与机器字的长度有关的13.在C语言中,不同类型的两个数据混合运算时,要先转换成相同类型再进行运算,设有int,long,unsigned和char类型的变量和数据,则它们的转换规律是(C),表达式最后的运算结果是(D)类型的数据。

《C语言程序设计》复习大纲

《C语言程序设计》复习大纲

《C语言程序设计》复习大纲(此课程为考查课,开卷考试)第一章C语言程序设计初步1、从编写一个C程序到完成运行一般经过以下几个步骤:编辑、编译、连接、执行。

2、标识符命名规则:由英文字母、数字和下划线组成;长度不大于32个字符;必须以英文字母或下划线开头;不能和关键字重名;区分大小写;命名要“见名知意”。

3、C语言的输入输出功能是由C的库函数提供的。

4、C程序是由函数组成的,一个完整的程序必须有一个main函数,即主函数,程序总是从main 函数开始执行的,不论main函数在整个程序的什么位置。

第二章程序设计基础知识1、算法的特性:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。

第三章C数据及其表达式1、C语言中基本数据类型有:整型、字符型、实型、枚举型。

2、C语言中有四种基本常量:整形常量、实型常量、字符常量和字符串常量。

两种特殊常量:转义字符常量和符号常量。

3、一个整型常量以2个字节存储,一个长整型数占4个字节。

4、字符常量用单引号括起来,字符串常量用双引号括起来;每个字符串结尾都有一个字符串结束标志‟\0‟,‟a‟和”a”最大的区别就是”a”实际上是两个字符:‟a‟和‟\0‟; 而‟a‟只是一个字符本身。

5、逗号表达式的一般形式为:表达式1,表达式2;逗号表达式的计算过程是:先求解表达式1,再求解表达式2。

整个逗号表达式的值是表达式2的值。

6、++i,--i i的值先增1(或减1),然后再参与其他运算;i++,i-- 先参与其它运算,然后使i值增1(或减1)第四章顺序结构程序设计1、程序分为顺序结构、选择结构或分支结构、循环结构。

2、C语言的语句大体上分为五种类型:1、函数调用语句;2、表达式语句;3、控制语句;4、空语句;5、复合语句。

3、语句在最后必须出现分号,分号是语句中不可缺少的一部分。

4、putchar(c)的功能是向屏幕输出一个字符;printf(“格式化字符串”,输出项表)的功能是按用户指定的格式,把指定的数据显示到屏幕上。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C程序设计复习要点第一章概述1.C程序的构成与结构特点2.C程序上机调试过程与流程第二章数据类型、运算量与表达式1.数据类型的种类(基本数据类型和构造数据类型)2.常量的数据类型及其表示(表示方法、存储字节数与表数范围)——整、实、字符、字符串和转义字符3.变量的命名、定义方法与赋初值4.各种表达式及其运算规则——优先级、结合性、类型自动转换与强制转换●算术运算符、表达式及其构造(注意“/”和“%”特殊性)●自增、自减运算符及其简单表达式运算●赋值运算符及其表达式(注意复合赋值运算符的运算方法)●逗号运算符及其表达式第三章流程控制1.赋值语句的一般形式、赋值过程及赋值规则(注意左右数据类型的一致或兼容)2.输入和输出函数的格式、功能及用法(只要求常用的格式控制符d, f, c, s),提醒注意:●格式输出中域宽和小数位数的控制●格式输入与输出中普通字符的原样输入和输出问题●熟悉并区别以下函数:putchar()、printf()、puts();getchar()、scanf()、gets()3.关系运算符及其表达式、逻辑运算符及其表达式和条件运算符及其表达式的运算规则(优先级、结合性)4.关系表达式与逻辑表达式的构造(根据已知条件写表达式)5.if语句的三种形式:if …语句、if …else …语句、if 语句的嵌套●if 语句的格式与用法:简单if、嵌套if、并列if●逻辑关系与执行过程●嵌套规则(重点掌握if …else …if …else …if …else)6.switch语句的格式与用法7.*熟练使用if和switch语句阅读和编写较为简单的选择结构程序8.三种循环语句:while() …、do …while()、for()的格式、执行过程及其用法●循环变量初始化、循环条件构造、循环体所要实现的任务和控制变量修改注意循环期间与结束时循环控制变量的取值问题9.结合例题理解和区别break与continue语句的作用及其用法10.本章涉及的主要算法:累加(计数)、累乘、递推、穷举、判素数、求最大公约与最小公倍等11.*熟练使用三种循环语句并结合以上算法阅读和编写较为简单的循环结构及其嵌套程序第四章复杂数据类型1.一维、二维数组的定义、初始化及其引用方法(数据输入、输出、存储与处理)2.字符数组的定义、初始化及其引用(字符串输入、输出、存储与处理)3.常用字符串处理函数:gets()、puts()、strlen()、strcmp()、strcpy()4.数组涉及的主要算法:排序、极值、逆序、回文和字符串的连接、复制、求长度等5.*熟练使用数组并结合以上算法阅读和编写较为简单的程序6.指针的概念:指针、指针变量、指针运算(*、&、++、--、+、-)7.变量、数组和字符串指针的定义、指向与引用(仅限于一维数组)8.了解指针数组与二级指针的概念和定义9.*能够阅读并理解使用指针进行数据处理的相关程序(极值、逆序、回文和字符串的连接、复制、求长度等)10.结构体与共用体的概念、定义与引用(仅限概念)第五章结构化程序设计与应用1.熟悉程序的三种基本结构:顺序、选择和循环2.*通过其中部分例题掌握选择、循环语句的使用以及循环和数组涉及的主要算法第六章函数与编译预处理1.掌握函数的定义、声明和调用方法及参数传递方式2.*结合相关例题掌握一般函数和递归函数的定义与使用3.熟悉局部变量与全局变量的定义及作用范围,了解各种静态与动态变量的定义、作用范围与生存期4.了解内部函数与外部函数的定义及调用规则5.掌握宏定义与宏展开(重点掌握带参数宏的定义与展开)6.了解文件包含的作用及其使用场合第七章文件1.了解文件的概念2.熟悉文件打开、关闭及各种与文件读写有关函数的格式与用法特别提醒:以上带*部分主要涉及程序阅读、程序填空和编写程序,其余部分主要以选择和概念填空题出现3ae bc C语言程序设计参考题型说明:★本题仅反映考试的题型,作为考前复习参考。

★要通过这些典型题目,掌握复习要点中所列内容。

所给题目不可死记硬背,而是通过题目掌握其涉及要点和重要算法。

一、单项选择题1.C程序的基本构成单位是【C 】A)文件B)命令C)函数D)语句2.下列叙述中错误的是【C 】A)C程序中main( )函数的位置可以任意B)C程序可以由多个程序文件组成, 而一个程序文件又可以由一个或多个函数组成C)每个程序文件都有一个main( )函数D)C程序总是从main( )开始执行,也是由它结束3.将C源程序转换为目标程序的过程称为【B 】A)编辑B)编译C)连接D)运行4.C语言中最基本的数据类型包括【B 】A)整型、实型、逻辑型B)整型、实型、字符型C)整型、逻辑型、字符型D)整型、实型、字符串型5.以下不合法的用户标识符是【C 】A)j2_KEY B)Double C)4d D)_8_6.C源程序中不能表示的数制是【A 】A)二进制B)八进制C)十进制D)十六进制7.以下合法的字符常量的是【A 】A)'\x13' B)'\081' C)'65' D)"\n "8.以下选项中,能用作数据常量的是【D 】A)o115 B)0118 C)1.5e1.5 D)115L9.C语言中,要求运算对象必须是整型数据的运算符是【A 】A)% B)/ C)\ D)&&10.表示数学关系“x≥y≥z”的C语言表达式是【C 】A)x>=y>=z B)x>=y || y>=z C)x>=y&&y>=z D)x≥y≥z11.若变量均已正确定义并赋值,以下合法的C语言赋值语句是【A 】A)x=y==5; B)x=n%2.5; C)x+n=j; D)x=5=4+1;12.设有定义:int k=0; 以下选项的四个表达式中与其他三个表达式的值不相同的是【A 】A)k++ B)k+=1 C)++k D)k+113.若有代数式:以下错误的C语言表达式是【 C 】A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*314.设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为【C 】A)int B)float C)double D)不确定15.若p和x已经正确定义,x已赋值,并且p=&x,则下列关系表达式之值为1的是【B】A)p==x B)*p==x C)&p==x D)*x==p16.当用户要求输入的字符串中含有空格时,应使用的输入函数是【C 】A)scanf() B)getchar() C)gets() D)getc()17.下列能输出字符数组str中字符串的语句是【B 】A)printf("%c",str[0]); B)printf("%s",str);C)printf("%s",str[]); D)putchar(str);18.有输入语句:scanf("B%d,%d",&a,&b);为使变量a、b分别为5和3,从键盘输入数据的正确形式为【 B 】A)5 3<回车> B)5,3<回车> C)a=5 b=3<回车> D)a=5,b=3<回车> 19.定义如下变量和数组:int j;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是【 C 】for(j=2; j>=0; j--)printf("%2d",x[j][2-j]);A)1 5 9 B)1 4 7 C)7 5 3 D)3 6 920.执行下面程序后,a的值是【B 】#define SQR(x) x*xvoid main( ){ int a=10,k=2,m=1;a=SQR(k+m);printf("%d\n",a);}A)10 B)5 C)2 D)121.简单if语句的基本形式:if(表达式)语句【D 】其中“表达式”A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式22.在嵌套使用if语句时,C语言规定else总是【C 】A)和之前与其具有相同缩进位置的if配对B)和之前与其最近的if配对C)和之前与其最近的且不带else的if配对D)和之前的第一个if配对23.下列叙述中正确的是【D 】A)break语句只能用于switch语句B)在switch语句中必须使用defaultC)break语句必须与switch语句中的case配对使用D)在switch语句中,不一定使用break语句24.有以下程序段:x=-1;dox=x*x;while(!x);执行时,循环体执行的次数为【B 】A)0 B)1 C)2 D)不确定25.以下不正确的if语句形式是【C 】A)if(x>y&&x!=y); B)if(x==y) x+=y;C)if(x!=y) scanf("%d",&x) else scanf("%d",&y); D)if(x<y) {x++;y++;}26.以下程序的输出结果是【C 】void main( ){ int x=2,y=-1,z=2;if(x<y)if(y<0) z=0;else z+=1;printf("%d\n",z);}A)0 B)1 C)2 D)327.以下能正确计算1×2×3×…×10的程序段是【A 】A)i=1,s=1; B) s=1;i=1;do while(i<=10){s=s*i;i++;} s=s*(++i);while(i<11);C)for(i=1,s=0;i<=10;i++) D) for(i=1,s=1;;i++)s=s*i; s=s*i;28.若j为整型变量,则以下循环执行次数是【C 】for(j=0;j==0;) printf("%d",j--);A)无限次B)0次C)1次D)2次29.若有说明:int a[10];则对a数组元素的正确引用是【C 】A)a[3.5] B)a(8) C)a[6-5] D)a[10]30.若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0}, *p=x;则错误引用x 数组元素的是【B 】A)*p B)x[5] C)*(p+1) D)*x31.C中,一个char类型的数据在内存中占用的字节数是【A 】A)1 B)2 C)4 D)832.设有程序段:int k=5;while (k<=0)k--;则下列描述中正确的是【 C 】A)while循环执行5次B)循环是无限循环C)循环语句一次也不执行D)循环体语句执行一次33.下面程序段的运行结果是【B 】char c[5]={ 'a', 'b', '\0', 'c', '\0' };printf(“%s”, c);A)'a''b' B)ab C)Abc D)"abc"34.以下不正确的字符串赋值语句是【C 】A)char *s; s="abcde"; B)char s[ ]="abcde";C)char s[10]; s="abcde"; D)char *s="abcde";35.设p1、p2是指向int型一维数组的指针变量,k为int型变量,以下错误的语句是【B 】A)k=*p1+*p2; B)p2=k; C)p1=p2; D)k=p2-p1;36.下面程序的输出结果是【A 】void main( ){ char s[]= "ABCD";char *p;for (p=s;p<s+4;p++)printf(“%s\n”, p);}A)ABCD B) A C)D D) ABCDBCD B C ABCCD C B ABD D A A37.以下关于C函数的定义和调用描述正确的是【B 】A)函数的定义可以嵌套,但函数的调用不可嵌套B)函数的调用可以嵌套,但函数的定义不可嵌套C)函数的定义和调用均可以嵌套D)函数的定义和调用均不可嵌套38.以下关于变量的存储类型和作用域说法错误的是【C 】A)函数内定义的变量默认存储类型为auto,函数调用结束时释放其值B)静态局部变量的生存期虽然被延长,但作用范围依然只限于所在函数内有效C)寄存器变量主要用于使用频度较高的变量,其资源依然使用计算机内存D)外部变量可以跨文件使用,但静态外部变量不允许跨文件使用39.以下关于变量的作用域叙述不正确的是【D 】A)在函数内部定义的变量是局部变量B)函数中的形式参数是局部变量C)局部变量的作用范围仅限于其所在函数或复合语句D)全局变量的作用范围仅限于其所在的文件40.以下关于C函数参数说法不正确的是【B 】A)实参可以是常量、变量和表达式B)形参可以是常量、变量和表达式C)实参和形参可以为任意数据类型D)实参与对应的形参类型一致41.以下关于C函数返回值的叙述正确的是【D 】A)被调函数中只有使用return语句才能返回主调函数B)使用一个return语句可以返回多个函数值C)函数返回值类型取决于return语句中的表达式类型D)函数返回值类型取决于定义该函数时所指定的类型42.以下数组定义中错误的是【B 】A)int x[][3]={0}; B)int x[2][3]={{1,2},{3,4},{5,6}};C)int x[][3]={{1,2,3},{4,5,6}};D)int x[2][3]={1,2,3,4,5,6};43.若有定义语句:char s[10]="1234567\0\0";则strlen(s)的值是【A】A)7 B)8 C)9 D)1044.给定以下程序段:int n=10;while (n>6){ n--;printf(“%3d”,n);}以上程序段输出结果是【D】A)10 9 8 B)9 8 7 C)10 9 8 7 D)9 8 7 645.若i,j已定义为int型,则以下程序段中内循环总的执行次数是【C 】for (i=5; i>0; i--)for (j=1; j<6; j++){……}A)30 B)24 C)25 D)2046.若已定义:float *p, m=3.14159; 则使p指向m正确的赋值语句是【B 】A)p=m; B)p=&m; C)*p=m; D)*p=&m;47.若已定义:char s[10]; 则下面表达式中不能作为s[1]地址的是【A 】A)s++ B)s+1 C)&s[0]+1 D)&s[1]48.已知:int a=3, b=5, t; 要将a和b中的数值进行交换,错误..的程序段是【C 】A)a=a+b; b=a-b; a=a-b; B)t=a; a=b; b=t;C)t=a; b=a; a=t; D)t=b; b=a; a=t;49.关于C程序中的#include <math.h>,错误..的描述是【 D 】A)它是C语言的预编译命令B)在程序中该行尾部不需要分号C)用于将math.h包含进来D)math.h是一个函数50.下列C程序段的输出结果是【C 】int a=0;switch(a){ case 0: printf(“a=0”);case 1: printf(“a=1”);default: printf(“default”);}A)a=0 B)a=0default C)a=0a=1default D)default51.已知:int a, x, y; 有语法错误..的C语句是【 B 】A)while(x) y++; B)while(x+y=0) a++;C)while(x<y); D)while(y=5) ++x;52.对于do … while( )语句,错误..的说法是【C 】A)用条件控制循环体的重复执行B)循环体至少要执行一次C)循环体有可能一次也不执行D)循环体中可以包含若干条语句53.已知:int a, x, y; 有语法错误..的C语句是【 B 】A)while(x) y++; B)while(x+y=0) a++;C)while(x<y); D)while(y=5) ++x;54.已知:int a[5], *p=a; 利用p为数组元素a[4]赋值的正确C语句是【B】A)scanf(“%d”, p+3); B)scanf(“%d”, p+4);C)scanf(“%d”, *(p+3)); D)scanf(“%d”, *(p+4));55.对于C语句:char *a[2]={“abcd”, “ABCD”}; 叙述正确的是【B 】A)a是指针变量B)a是指针数组C)a是数组指针 D)a是字符串56.设有如下说明语句:struct ex{ int x; float y; char z; } example;则下面叙述中不正确的是【 B 】A)struct是结构体类型的关键字B)example是结构体类型名C)x, y, z都是结构体成员名D)struct ex是结构体类型名57.有以下程序#include <stdio.h>struct ord{ int x,y;} dt[2]={1,2,3,4};void main(){ struct ord *p=dt;printf(“%d,”,++p->x); printf(“%d\n”,++p->y);}程序的运行结果是【B 】A)1,2 B)2,3 C)3,4 D)4,158.设有以下定义【D 】union data{ short int d1; char d2; }demo;则下面叙述中错误的是____。

相关文档
最新文档