C语言复习提纲(含答案).ppt

上传人:max****ui 文档编号:10963301 上传时间:2020-04-16 格式:PPT 页数:73 大小:648KB
返回 下载 相关 举报
C语言复习提纲(含答案).ppt_第1页
第1页 / 共73页
C语言复习提纲(含答案).ppt_第2页
第2页 / 共73页
C语言复习提纲(含答案).ppt_第3页
第3页 / 共73页
点击查看更多>>
资源描述
1 内容提要 2 1 选择 每题2分 共40分 2 程序填空 每题2分 共20分 3 读程序写结果 8题 40分 4 程序设计填空题 每题5分 共10分 考试试题题型 3 第1章程序设计和C语言第2章算法 程序的灵魂第3章最简单的C程序设计第4章选择结构程序设计第5章循环结构程序设计第6章利用数组处理批量数据第7章用函数实现模块化程序设计第8章善于利用指针第9章用户自己建立数据类型第10章对文件的输入输出 考试内容 4 第1章程序设计和C语言 C语言程序基本构成 1 4 2节 包括 函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main 程序执行从main开始 在main中结束 其它函数通过嵌套调用得以执行 程序语句C程序由语句组成用 作为语句终止符注释 为注释 不能嵌套不产生编译代码 5 举例 1 以下叙述不正确的是 A 一个C源程序必须包含一个main函数B 一个C源程序可由一个或多个函数组成C C程序的基本组成单位是函数D 在C程序中 注释说明只能位于一条语句的后面2 一个C语言程序是由 A 一个主程序和若干个子程序组成B 函数组成C 若干过程组成D 若干子程序组成 D B 6 1 一个C程序的执行是从 A 本程序的main函数开始 到main函数结束B 本程序文件的第一个函数开始 到本程序文件的最后一个函数结束C 本程序文件的第一个函数开始 到本程序main函数结束D 本程序的main函数开始 到本程序文件的最后一个函数结束3 以下叙述正确的是 A 在对一个C程序进行编译的过程中 可发现注释中的拼写错误B 在C程序中 main函数必须位于程序的最前面C C语言本身没有输入输出语句D C程序的每行中只能写一条语句 A C 7 第2章算法 程序的灵魂 1 计数 求和 求阶乘等简单算法计数 i 求和 s s x求阶乘 p p i2 找出最大数 最小数和平均数3 判断某一年是否为闰年4 判断某个数是否为素数5 冒泡 选择 插入排序6 求多项式的值 8 第3章顺序程序设计 常量 整型 实型 字符 普通 转义 字符串 符号字符常量 ASCII码存储空格为32字符变量 charc1 100 与c1 e 等价字母小写 大写c c 32 或c c a A 变量 先定义 再使用标识符 掌握标识符的命名规则 以下划线或字母开始 后面跟着数字 字母 下划线 a b 合法 a b 不合法 9 注意 数据占内存字节数数据取值范围 10 举例 1 下列四组选项中 均是不合法的用户标识符的选项是A WP 0doB b agotointC floatla0 AD 123abcTEMP2 下面正确的字符常量是A c B C D K 3 已知字母A的ASCII码为十进制数65 且c2为字符型 则执行语句c2 A 6 3 后 c2中的值为A DB 68C 不确定的值D C4 sizeof float 是 A 一个双精度型表达式B 一个整型表达式C 一种函数表达式D 一个不合法的表达式 B D C 11 常见运算符 算术运算符 运算结果为数值 注意 自增 自减运算符的应用 关系运算符 0 d 0 d 0 x 12 常见运算符 逗号运算符 运算结果为最右边表达式的值 指针运算符 求字节 强制类型转换 下标 函数调用运算符 注意 运算符的优先级 结合性和目数隐式类型转换 13 举例 1 若x i j k都是int型变量 则计算下面表达式后 x的值为x i 4 j 16 k 32 A 4B 16C 32D 522 以下叙述不正确的是 A 在C程序中 逗号运算符的优先级最低B 在C程序中 MAX和max是两个不同的变量C 若a和b类型相同 在计算了赋值表达式a b后 b中的值将放入a中 而b中的值不变D 当从键盘输入数据时 对于整型变量只能输入整型数值 对于实型变量只能输入实型数值 C D 14 3 设以下变量均为int类型 则值不等于7的表达式是A x y 6 x y x 1 B x y 6 x y y 1 C x 6 x 1 y 6 x y D y 6 y 1 x y x 1 4 设C语言中 一个int型数据在内存中占2个字节 则unsignedint型数据的取值范围为 A 0 255B 0 32767C 0 65535D 0 21474836475 设有说明 charw intx floaty doublez 则表达式w x z y值的数据类型为 A floatB charC intD double C C D 15 表达式不同类型数据间的转换与运算 例如 inta 123 则a 100的值为 1 a 10 10的值为 2 a 10的值为 3 表达式j i 2的值注意 两整数相除 结果为整数 16 C语句分类程序控制语句 9种 分支 if else switch循环 for while do while 辅助控制 continue break goto return函数调用语句表达式语句 表达式加分号构成 空语句 复合语句 用 括起来的一组语句 17 赋值语句赋值运算符 复合的赋值运算符 赋值表达式 赋值过程中的类型转换赋值表达式和赋值语句 变量赋初值例 x 0与x 0的区别inta 23 6 则a的值为23x y 0的值 18 举例 1 若s是int型变量 且s 6 则下面表达式的值为 s 2 s 1 22 若a是int型变量 则下面表达式的值为 a 4 5 a 2 a 63 若a是int型变量 则计算下面表达式后a的值为 a 25 3 34 若x和n均是int型变量 且x和n的初值均为5 则计算表达式后x的值为 n的值为 x n 5 若有定义 charc 010 则变量c中包含的字符个数为 6 若有定义 intx 3 y 2 floata 2 5 b 3 5 则下面表达式的值为 x y 2 int a int b7 已知字母a的ASCII码为十进制数97 且设ch为字符型变量 则表达式ch a 8 3 的值为 1 26 2 10 6 1 1 102 或 f 19 数据的输入与输出printf 格式控制 输出表列 例如 printf i d ch c n i ch 1 格式控制 是用双撇号括起来的字符串 也称 转换控制字符串 它包括两种信息 格式说明 由 和格式字符组成 它的作用是将输出的数据转换为指定的格式输出 普通字符 即需要原样输出的字符 2 输出表列 是需要输出的一些数据 可以是表达式字符数据的输入输出 putchar getchar 20 数据的输入与输出scanf 格式控制符 地址列表 例如 scanf d d 如希望a 56 b x 输入格式为 56x或56x 21 举例 1 putchar函数可以向终端输出一个 A 整型变量表达式B 实型变量值C 字符串D 字符或字符型变量值2 printf函数中用到格式符 5s 其中数字5表示输出的字符串占用5列 如果字符串长度大于5 则输出按方式 如果字符串长度小于5 则输出按方式 A 从左起输出该字符串 右补空格B 按原字符长从左向右全部输出C 右对齐输出该字符串 左补空格D 输出错误信息 D B C 22 1 以下的输出结果是 1 main shorti i 4 printf ni dec d oct o hex x unsigned u n i i i i 2 以下的输出结果是 2 main charc x printf c dec d oct o hex x ASCII c n c c c c Dec 4 oct 17774 hex fffc unsigned 65532 Dec 120 oct 170 hex 78 ASCII x 23 3 以下的输出结果是 3 main intx 1 y 2 printf x dy d sum d n x y x y printf 10Squaredis d n 10 10 4 假设变量a和b均为整型 以下语句可以不借助任何变量把a b中的值进行交换 请填空 a 4 b a 5 a 6 x 1y 2 sum 310Squaredis 100 bbb 24 第4章选择结构 用if语句实现选择结构 用switch语句实现多分支选择结构 根据表达式的具体值进行多分支选择 表达式的类型要求 语句中的break 选择结构的嵌套注意 同一程序的等价转换 25 举例 1 逻辑运算符两侧运算对象三数据类型 A 只能是0和1B 只能是0或非0正数C 只能是整型或字符型数据D 可以是任何类型的数据2 判断char型变量ch是否为大写字母的正确表达式是 A A A ch A ch ch 3 若希望当A的值为奇数时 表达式的值为 真 A的值为偶数时 表达式的值为 假 则以下不能满足要求的表达式是 A A 2 1B A 2 0 C A 2 D A 2 C D C 26 4 设有 inta 1 b 2 c 3 d 4 m 2 n 2 执行 m a b A x 10 y 20 z 30B x 20 y 30 z 30C x 20 y 30 z 10D x 20 y 30 z 20 B B A 27 第5章循环结构程序设计 for循环结构 指定次数的循环while和dowhile循环结构 循环的嵌套 两层 循环结束条件循环控制变量的使用改变循环执行的状态 break continue 例 编写程序打印码值为33 127的ASCII值 字符对照表 28 举例 1 设有程序段intk 10 while k 0 k k 1 下面描述中 正确的是 a while循环执行10次b 循环是无限循环c 循环体语句一次也不执行d 循环体语句执行一次2 语句while E 中的表达式 E等价于 a E 0b E 1c E 0d E 13 下面程序段的运行结果是 intn 0 while n 2 printf d n a 2b 3c 4d 有语法错 C A C 29 6 若有如下语句intx 3 do printf d n x 2 while x 则上面程序段 a 输出的是1b 输出的是1和 2c 输出的是3和0d 是死循环7 下面程序的运行结果是 includemain inty 10 do y while y printf d n y a 1b 1c 8d 0 B D 30 8 若i为整型变量 则以下循环执行次数是 for i 2 i 0 printf d i a 无限次b 0次c 1次d 2次9 执行语句for i 1 i 4 后变量i的值是 a 3b 4c 5d 不定10 以下正确的描述是 a continue语句的作用是结束整个循环的执行b 只能在循环体内和switch语句体内使用break语句c 在循环体内使用break语句或continue语句的作用相同d 从多层循环嵌套中退出时 只能使用goto语句 D C D 31 1 下面程序段是从键盘输入的字符中统计数字字符的个数 用换行符结束循环 请填空 intn 0 c c getchar while if n c getchar c n c 0 c 9 32 2 下面程序的功能是用 辗转相除法 求两个正整数的最大公约数 请填空 includemain intr m n scanf d d t m m n n tm n 33 3 下面程序的运行结果是 includemain inta s n count a 2 s 0 n 1 count 1 while count 7 n n a s s n count printf s d s s 254 34 4 下面程序段的运行结果是 i 1 a 0 s 1 do a a s i s s i while i 10 printf a d a 5 下面程序段的运行结果是 i 1 s 3 do s i if s 7 0 continue else i while s 15 printf d i a 5 8 35 第6章利用数组处理批量数据 一维数组 定义和初始化 数组元素的引用二维数组 定义 存储空间的大小 数组元素的引用 例 二维数组在定义时 如果有初始化 则可以缺省第一维的长度 例 inta 5 6 a数组中存放5 6个int类型数据 其占据的内存空间是 sizeof int 5 6 120字节 a 2 3 表示a数组中第三行第四个元素 编程 找出二维数组中每一行的最小值 36 字符数组的定义和赋值 字符串结束标志 0 字符数组的输入和输出 s 格式符字符串处理函数 puts gets strlen strcpy strcmp 例 chars1 80 s2 80 abc 则strcpy s1 s2 和strcmp s1 s2 的作用 strlen s1 与sizeof s1 的区别 strlen abc x61 4 37 以下程序用以删除字符串中的所有的空格 请填空 includemain chars 100 Iamastudent inti j for i j 0 s i 0 i if s i s j s i j s j 0 printf s n s 38 举例 1 以下为一维整型数组a的正确说明是 a inta 10 b intn 10 a n c intn d defineSIZE10 scanf d 3 若二维数组a有m列 则计算任一元素a i j 在数组中位置的公式为 假设a 0 0 位于数组的第一个位置上 a i m jb j m ic i m j 1d i m j 14 若二维数组a有m列 则在a i j 前的元素个数为 a j m ib i m jc i m j 1d i m j 1 D C D B 39 5 指出以下程序段的功能inta 4 0 2 3 1 i j t for i 1 i 0 将数组a的元素按逆序排列 40 6 下面程序的功能是从键盘输入一行字符 统计其中有多少个单词 单词之间用空格分隔 请选择填空 includemain chars 80 c1 c2 inti 0 num 0 gets s while s i 0 c1 s i if i 0 c2 elsec2 s i 1 if num i printf Thereare dwords n num a c1 c2 b c1 c2 c c1 c2 d c1 c2 B 41 7 下面程序的运行结果是 includemain charstr SSSWLIA c intk for k 2 c str k 0 k switch c case I k break case L continue default putchar c continue putchar a SSW b SW c SW Ad SW B 42 8 下面程序的运行结果是 includemain chars ABCCDA intk charc for k 1 c s k 0 k switch c case A putchar continue case B k break default putchar case C putchar 43 9 下面程序的功能是在三个字符串中找出最小的 请填空 include includemain chars 20 str 3 20 inti for i 0 i 3 i gets str i strcpy s if strcmp str 2 s 0 strcpy s str 2 printf s n strcmp str 0 str 1 0 str 0 str 1 s 44 第7章用函数实现模块化程序设计 定义函数 函数类型函数名 形参类型说明表 说明部分语句部分 调用 调用形式 函数名 实参表 说明 实参与形参个数相等 类型一致 按顺序一一对应 注意 当函数返回值为void和int型时 函数类型可以省略 45 函数返回 返回语句 return 表达式 功能 使程序控制从被调用函数返回到调用函数中 同时把返值带给调用函数说明 函数中可有多个return语句若无return语句 遇 时 自动返回调用函数若函数类型与return语句中表达式值的类型不一致 按前者为准 自动转换 函数调用转换void型函数 46 函数参数及其传递方式 函数参数分为两类 形参与实参形式参数 定义函数时函数名后面括号中的变量名实际参数 调用函数时函数名后面括号中的表达式传递方式 值传递方式 函数调用时 为形参分配单元 并将实参的值复制到形参中 调用结束 形参单元被释放 实参单元仍保留并维持原值特点 形参与实参占用不同的内存单元 单向传递地址传递方式 函数调用时 将数据的存储地址作为参数传递给形参特点 形参与实参占用同样的存储单元 双向 传递 实参和形参必须是地址常量或变量 48 局部变量和全局变量变量的存储类别 自动 静态 寄存器 外部 变量的作用域和生存期 主要是用static声明的静态局部变量 49 举例 1 以下正确的函数定义形式是 a doublefun intx inty b doublefun intx inty c doublefun intx inty d doublefun intx y 2 C语言规定 简单变量做实参时 它和对应形参之间的数据传递方式为 A 地址传递B 单向值传递C 由实参传给形参 再由形参传回给实参D 由用户指定传递方式3 C语言允许函数值类型缺省定义 此时该函数值隐含的类型是 a floatb intc longd double B B B 50 以下程序的正确运行结果是 includevoidnum externintx y inta 15 b 10 x a b y a b intx y main inta 7 b 5 x a b y a b num printf d d n x y a 12 2b 不确定c 5 25d 1 12 C 51 以下程序的运行结果是 includemain inta 1 b 2 c c max a b printf maxis d n c max intx inty intx z x y x y return z maxis2 52 函数gongyu的作用是求整数num1和num2的最大公约数 并返回该值 请填空 gongyu intnum1 intnum2 inttemp a b if num1 num2 temp num1 num1 num2 num2 temp a num1 b num2 while temp a b a b b temp return a b 0 53 以下程序的运行结果是 inta 5 intb 7 main inta 4 b 5 c c plus a b printf A B d n c plus intx inty intz z x y return x A B 9 54 第8章指针 讲到指针 必然和变量联系在一起 变量是对程序中数据存储空间的抽象指针 一个变量的地址指针变量 专门存放变量地址的变量两个运算符 运算符 含义 取变量的地址运算符 运算符 含义 取指针所指向变量的内容两者关系 互为逆运算理解指针定义 基类型 指针变量名 55 举例说明 inti 10 int i pointer i poinnter i pointer 指针变量 它的内容是地址量 i pointer 指针的目标变量 它的内容是数据 i pointer 指针变量占用内存的地址指针作函数参数 传地址 与普通参数传递的不同 56 数组指针示例 57 举例 1 变量的指针 其含义是指该变量的 a 值b 地址c 名d 一个标志10 若有以下定义 则对a数组元素的不正确引用是 inta 5 p a a a 元素a 5 的地址b 元素a 5 的值c 元素a 6 的地址d 元素a 6 的值 B C A B 58 1 以下程序的功能是 通过指针操作 找出三个整数中的最小值并输出 请填空 include stdlib h main int a b c num x y z a Num b Num c 59 2 下面程序的运行结果是 include includefun char w intn chart s1 s2 s1 w s2 w n 1 while s1 s2 t s1 s1 s2 s2 t main char p p 1234567 fun p strlen p puts p a 7654321b 1714171c 1711717d 7177171 A 60 3 下面程序的功能是将两个字符串s1和s2连接起来 请填空 includemain chars1 80 s2 80 gets s1 gets s2 conj s1 s2 puts s1 conj char p1 char p2 char p p1 while p1 while p2 p1 p1 p2 p1 0 p1 p2 p1 p 61 4 以下程序将数组a中的数据按逆序存放 请填空 defineM8main inta M i j t for i 0 i M i scanf d a i i 0 j M 1 while i j t a i t i j for i 0 i M i printf 3d a i a i a j a j 62 第9章用户自己建立数据类型 结构体struct把不同类型的数据组合成一个整体 struct 结构体名 类型标识符成员名 类型标识符成员名 在声明结构体变量时分配内存 其对score成员的引用为 stu1 score 或者stu2 score 或者pm score或者 pm score结构体数组和结构体指针 structscore intnum charname 20 floatscore charaddr 30 stu1 stu2 pm 63 用指针和结构体构成链表 单向链表的建立 输出 用自定义名字为已有数据类型命名类型定义简单形式 typedeftypename typedef没有创造新数据类型 64 举例 1 下面对typedef的叙述中不正确的是 a 用typedef可以定义各种类型名 但不能用来定义变量b 用typedef可以增加新类型c 用typedef只是将已存在的类型用一个新的标识符来代表d 使用typedef有利于程序的通用和移植2 C语言结构体类型变量在程序执行期间 a 所有成员一直驻留在内存中b 只有一个成员驻留在内存中c 部分成员驻留在内存中d 没有成员驻留在内存中 B A 65 1 以下程序的运行结果是 structn intx charc main structna 10 x func a printf d c a x a c func structnb b x 20 b c y 10 x 66 2 若有定义 structnum inta intb floatf n 1 3 5 0 structnum pn 则表达式pn b n a pn b的值是 表达式 pn a pn f的值是 12 6 00 67 3 以下程序的运行结果是 structks inta int b s 4 p main intn 1 printf n for i 0 ia p a 5 3 68 4 结构数组中存有三人的姓名和年龄 以下程序输出三人中最年长者的姓名和年龄 请在 内填入正确内容 statistructman charname 20 intage person li ming 18 wang hua 19 zhang ping 20 main structman p q intold 0p person for p p if oldage q p printf s d ageq name old 69 5 以下程序段的功能是统计链表中结点的个数 其中first为指向第一个结点的指针 链表不带头结点 请在 内填入正确内容 structlink chardata structlink next structlink p first intc 0 p first while p PNULLC p next 70 第10章对文件的输入输出 文件的打开和关闭FILE fp fp fopen 文件名 使用方式r w a fclose fp 文件的基本读写操作常用函数有 fscanf 从指定文件按格式读出数据 fprintf 按格式向指定文件写入数据 fgetc 从指定文件读出一个字符 fputc 向指定文件写入一个字符 fgets 从指定文件读出一个字符串 fputs 向指定文件写入一个字符串 用二进制方式向文件读写一组数据fread buffer size count fp fwrite buffer size count fp 地址 字节数 多少个数据项 FILE类型指针 71 文件的状态检测feof 文件指针 若文件指针指向文件末尾 函数值为真 非0 includemain FILE fp inti a 100 b 100 fp fopen d1 dat wb for i 0 i 100 i a i i 1 fwrite a sizeof int 100 fp fclose fp fp fopen d1 dat rb fread b sizeof int 100 fp fclose fp for i 0 i 100 i printf d n b i 其功能是 以二进制 写 方式打开文件d1 dat 写入1 100这100个整数后关闭文件 再以二进制 读 方式打开文件d1 dat 将这100个整数读入另一个数组b中 并打印输出 72 举例 1 系统的标准数入文件是指 a 键盘b 显示器c 软盘d 硬盘2 若执行fopen函数时发生错误 则函数的返回值是 a 地址值b 0c 1d EOF3 若要用fopen函数打开一个新的二进制文件 该文件要既能读也能写 则文件方式字符串应是 a ab b wb c rb d ab 4 fscanf函数的正确调用形式是 a fscanf fp 格式字符串 输出表列 b fscanf 格式字符串 输出表列 fp c fscanf 格式字符串 文件指针 输出表列 d fscanf 文件指针 格式字符串 输入表列 A B B D 73 5 fgetc函数的作用是从指定文件读入一个字符 该文件的打开方式必须是 a 只写b 追加c 读或读写d 答案b和c都正确6 函数调用语句 fseek fp 20L 2 的含义是 a 将文件位置指针移到距离文件头20个字节处b 将文件位置指针从当前位置向后移动20个字节c 将文件位置指针从文件末尾处后退20个字节d 将文件位置指针移到离当前位置20个字节处7 利用fseek函数可实现的操作 a fseek 文件类型指针 起始点 位移量 b fseek fp 位移量 起始点 c fseek 位移量 起始点 fp d fseek 起始点 位移量 文件类型指针 8 在执行fopen函数时 ferror函数的初值是 a TUREb 1c 1d 0 C C B D
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!