0098《高级程序设计(c语言)》 2018年6月期末考试指导
发布时间:2023-11-17 11:11:26浏览次数:30098《高级程序设计(C 语言)》2018 年 6 月期末考试指导一、考试说明(一)说明考试为闭卷,试卷满分为 分,考试时间 分钟。(二)题型及各题型所占分数和相应的答题技巧.单选题答题技巧:选择与题干相匹配的答案。可以考虑排除法等选择技巧。.填空题答题技巧:模拟计算机程序,按照题目要求填写结果或代码。编程题答题技巧:按照题目要求,编写对应的程序代码。二、重点内容第一章 C 语言程序设计基础1.C 语言标识符数据类型名、变量名、函数名都必须是合法标识符。标识符就是一个名字, 语言规定标识符只能由字母、数字和下划线 种字符组成,并且第一个字符必须是字母或下划线。2.二进制转换为八进制、十六进制数将二进制数从右向左每 位分一组,然后将每一组的二进制数转换为八进制数的一个数位的值,就可以得到相应的八进制数。将二进制数从右向左每 位分一组,然后将每一组的二进制数转换为十六进制数的一个数位的值,就可以得到相应的十六进制数。3. 八进制、十六进制数转换为二进制数将每一位八进制数或十六进制数转换为二进制数即可。这个过程是将二进制数转换为八进制数或十六进制数的逆过程。第二章 基本数据类型、运算符和表达式1.C 语言规定,符号常量和变量必须“先定义,后使用”。2.C 语言的基本数据类型及各自的定义方式 语言中存在着两种表征数据的形式:常量和变量。常量用来表示数据的值,变量不但可以用来表示数据的值,也可以用来存放数据。()整型数据:十进制、八进制、十六进制。整型变量的定义格式:“数据类型名标识符 变量名”即“变量名;”,整型类型名 与变量名之间要用空格分开,最后还要以分号结尾。()实型数据实型常量有两种表示方法:十进制小数形式和指数形式。()字符型数据 语言中,用单引号括起来的是字符常量,用双引号括起来的被称为字符串常量。,有符号字符,取值范围是−,最高位(第 位)是符号位。()空类型:3.Printf 函数输出各种类型数据的方法()格式:(参数列表)() 函数可以带多个参数,例如:(“,)4.C 语言的各种运算符和表达式
F5'=...66665'#6/5:'5:'%6/%65TDT.'6>执行下面程序段后,- 值是 。-6,6=-$6 6>@5'6下面程序的功能是给一维数组 任意输入 , 个整数,假设为 %,然后建立一个具有以下内容的方阵并打印。请分析程序填空。%%%%%%F5'=B,C..V.-.F656*,6""'/5TT.&BC'65%6+6##'=-B%C656V+6V##'BV"CBVC6BC-65F6F*,6F""'5TT.BFC'65TDT'6>>下面 函数的功能是求两个参数的和,并将和值返回调用函数。5R.R'=R6"636>某服装店经营套服,也单件出售。若买的不少于 % 套每套 元;不足 % 套的每套 元;只买上衣每件 , 元;只买裤子每条 % 元。以下程序的功能是读入所买上衣 和裤子 的件数,计算应付款 F。请分析程序填空。F5'
=..F65T33F3//G3@3G1DT'6/5TT.&.&'65'5+%'F$6/F$6/5+'5+%'F$"5#'$,6/F$"5#'$,6/5+%'F$"5#'$%6/F$"5#'$%65T/DT.F'6>(三)编程题将以下程序段改用非嵌套的 语句实现。/..F65'5/ '6/@5'=/1F%6-6/1F6-6/1F6-6/1F6-6/,1F6-631F6>已有变量定义和函数调用语句:2%6/F52'6函数 /F5'用来判断一个整型数 是否为素数,若是素数,函数返回 ,否则返回 。请编写 /F 函数。四、重点习题答案(答案仅供参考)(一)单选题1. D 2. B 3. A 4. D 5. C6. D 7. B 8. A 9. C 10. A(二)填空题 1. 答案: —14 2. 答案: #& 3. 答案: 0 4. 答案: x>12 为假,取 x-12。i 5. 答案: 8 6. 答案:20 7. 答案: 36 8. 答案: j=4 9、答案: c 10. 答案:t= =c(三)编程题1.F65/+&&/*'F%6
5/+&&/*'F65/+&&/*'F65/+&&/*'F65/+,&&/*'F62.int isprime(int a){int k; if(a==1) return 0; for(k=2;k<=a/2;k++) if(a%k==0) return 0; return 1;} if(i%3==0) printf("\n"); }}说明:本考试指导只适用于 201803 学期 6 月期末考试使用,包括正考和重修。指导中的章节知识点涵盖考试所有内容,给出的习题为考试类型题,习题答案要点只作为参考,详见课程讲义或课程 ppt。在复习中有任何问题请到课程答疑区咨询。祝大家考试顺利!
()赋值运算符和赋值表达式:“ !; 语言中,“被称为赋值运算符,它的作用是设置变量的值。()强制类型转换符当等号左右两边的数据类型不一致时, 语言将首先将右边的表达式的值转化为左边的数据类型,然后再赋值给左边的变量。()算术运算符和算术表达式:"、#、$、 和()自增自减运算符和符号运算符:""、##和##既是一个算术运算符,又是一个负号运算符,它是一个单目运算符。""的作用是使变量自己增 ,##的作用是使变量自己减 。与负号运算符优先级相同。""和##位于变量左边和右边的结果是不同的。(在变量左边,先增减后计算;在变量右边,先计算,后增减)(%)位运算符:按位与(&'、按位或(()、按位异或()'、按位取反()、左移(**'和右移(++'(,)逗号运算符和逗号表达式用逗号连接起来的表达式称为逗号表达式。一般形式:表达式 ,表达式 ,……,表达式 -.例如:"%,,,""逗号表达式的求值顺序是从左向右依次计算用逗号分隔的各表达式的值,最后一个表达式的值就是整个逗号表达式的值。()/0 运算符1计算字符个数,因此牢记各类型数据的长度作用:能获取变量和数据类型所占内存大小的运算符。第三章 基本输入输出和顺序程序设计1.数据输出函数Printf 函数()各种格式转换符:,2,,3,,/,,,4()调用 函数的基本格式是(“格式控制字符串”,表达式 ,表达式 ,…,表达式 );() 函数的功能就是按照“格式控制字符串”的要求,将表达式 ,表达式 ,…,表达式 的值显示在屏幕上。字符和字符串的输出,除了可以利用 函数以外,还可以利用 3 和 3/ 函数。2.各种数据类型的输出:整型、实数、字符和字符串、格式化输出等。比如下边列出格式化输出时 ,通过格式控制字符控制的格式要素主要有:()数据类型及其长度,比如用 输出 型数据,用 输出 4 型数据,用 输出 3型数据,用 输出 43 型数据。()输出数据所占的宽度(域宽),比如, 表示输出至少占 格。()输出数据的精度,比如 表示输出 位小数,/ 表示要输出字符串的前 个字符,,3 表示至少要输出 位数。()对齐特征,比如#, 表示输出的数据左对齐。缺省情况下,输出将右对齐。(%)数制形式,比如,2 要求以十六进制形式输出数据。(,)数值符号,比如," 要求输出整数的正负号。3.数据输入函数Scanf 函数()调用 / 函数的基本格式是/(“格式控制字符串”,变量 的地址,变量 的地址,…,变量 的地址);()与上面 函数同样的格式控制符()/ 函数的功能是在第一个参数格式控制字符串的控制下,接受用户的键盘输入,并将用户输入的数据依次存放在变量 、变量 ,……和变量 中。()&是取地址符。功能是取地址。要获得变量的地址,需要在变量名前加&。因此&又被称为取地址运算符。
4. 字符数据的非格式化输入()4 函数函数原型:45'64 函数没有参数,有一个 型的返回值。4 函数的功能是读取用户按键信息,它的返回值是用户所按字符的 7899 码。当程序调用 4 时,程序就进入等待状态,等待用户按键。用户输入的字符将被存放到内部的缓冲区内中,直到用户按回车键为止。其返回值是用户输入的第一个字符。()4 函数函数原型:45'64 函数的功能与 4 相同。唯一的差别是:4 直接从键盘获取键值,不等待用户按回车键。只要用户按下一个键,4 就立刻返回,返回值就是用户所按键的 7899 码。()4 函数函数原型:45'64 函数的功能与 4 函数基本相同。唯一的差别是:4 回显所输入的字符,4 不回显所输入的字符。第四章 程序控制1. 关系运算符、逻辑运算符和条件运算符()关系运算符和关系表达式关系运算符又称比较运算符, 语言提供了 , 种关系运算符,它们的含义及优先级关系见下表:关系运算符 含义 优先级*小于 这些关系运算符等优先级,但比下面高*(注意,*和之间没有空格)小于等于+大于+(注意,+和之间没有空格)大于等于(注意,两个之间没有空格)等于 这些关系运算符等优先级,但比上面低: (注 意 , : 和之 间 没 有空格)不等于关系运算符的优先级要比与、或以及赋值运算符高,但比算术运算符和移位运算符低。()逻辑运算符和逻辑表达式 语言提供了 个逻辑运算符,其中一个是单目运算符,其他两个是双目运算符。逻辑运算符 含义 优先级关系(((两个(之间没有空格) 双目运算符,逻辑或,表示或者 低;高&& (两个& 之 间 没 有 空格)双目运算符,逻辑与,表示并且:单目运算符,逻辑非,表示相反用逻辑运算符连接起来的式子称为逻辑表达式。逻辑表达式的值也是“真”或“假”。()条件运算符和条件表达式条件运算符(?:)是 语言提供的唯一一个三目运算符。用条件运算符连接的式子称为条件表达式。条件表达式的格式是:表达式 ?表达式 :表达式 条件表达式求值的规则如下:如果表达式 的值是真,那么整个条件表达式的值就是表达式 的值,否则整个条件表达式的值是表达式 的值。比如,如果 的值是 %,表达式 +<1 的值就是 。优先级的记忆规则:
总体上讲,单目运算符都是同优先级的,具有右结合性,并且优先级比双目运算符和三目运算符都高。 三目运算符的优先级比双目运算符要低,但比赋值运算符和逗号运算符高。 逗号运算符的优先级最低,其次是赋值运算符。 只有单目运算符、赋值运算符和条件运算符具有右结合性,其他运算符是左结合的。双目运算符中,算术运算符的优先级最高,逻辑运算符最低。算术运算符>移位运算符>关系运算符>位运算符>逻辑运算符2.选择结构的程序设计()简单的 语句(表达式)=程序段>?/ 语句:(表达式 )=程序段 />/=程序段 />()8@ 语句/@(变量或表达式 )=/ 常量表达式 :程序段 /-;/ 常量表达式 :程序段 /-;??/ 常量表达式 :程序段 /-;3:程序段 /(")-;>2.循环结构的程序设计()A 和 @ 语句@(表达式 )=程序段 />=程序段 />@(表达式 );功能:首先执行程序段 /,然后再判断表达式 的值是否为真,如果为真,则循环执行程序段 /,直到 为假为止。(2)For 语句(表达式 ;表达式 ;表达式 )=程序段 />3.Break 和 continue 语句
- 语句和 3 语句大大增强了 语言实现选择控制和循环控制的灵活性。第五章 数组1.一维数组的定义与引用()定义形式:数据类型符 数组变量名B变量表达式C;在定义时可以直接赋初值:未指定的值被赋值为 。2.二维数组当构成一维数组的元素也是一维数组时,就构成了二维数组。二维数组是一维数组的数组。以此类推 ,三维数组是二维数组的数组,四维数组是三维数组的数组…… 语言中,二维数组的定义格式是在一维数组的定义格式基础上增加了一维:数据类型符 数组变量名B整型常量表达式 CB整型常量表达式 C;3.字符串与数组()字符串的输入:/ 函数和 4/ 函数。能输入完整句子的函数是 4/ 函数。4/ 的调用格式是:4/5数组变量名';4/ 的主要功能是接受键盘输入,将输入的字符串存放在参数数组中,当遇到回车时返回。 4/ 函数会自动在字符串后面添加结尾字符‘DE。()字符串的输出: 函数, 函数或 3/ 函数。()字符串的比较:/F 函数。格式为:/F(字符串 ,字符串 );()字符串的复制:/G 函数格式为:/G(字符数组 ,字符串 );(%)字符串的连接:/ 函数格式为:/(字符数组 ,字符串 );(,)求字符串的长度:/ 函数格式为:/(字符串);第六章 函数1.函数的定义和调用()不带参数没有返回值的函数)定义格式: 函数名()=变量声明部分执行部分>()不带参数有返回值的函数)定义格式返回值类型 函数名()=变量声明部分执行部分>)原型声明格式和调用格式返回值类型符 函数名();函数名();或者变量函数名();()带参数没有返回值的函数
)定义格式 函数名(形式参数列表)=变量声明部分执行部分>)声明和调用格式 函数名(形参列表);函数名(表达式列表); $这些表达式称作函数的实际参数,即实参列表$ ()带参数有返回值的函数)定义格式返回值类型符 函数名(形式参数列表)=变量声明部分执行部分>第七章 指针1.指针的定义和使用()定义数据类型符 $变量名($号表明后面的变量是指针变量)例如:$;代表 是指针变量,并且 所指向的单元式 型数据2.指针的指针:数据类型符 $$变量名3.指针与字符串我们可以用字符串为 型的指针变量赋初值。但是将字符串常量作为初值赋值给字符数组与将字符串常量作为初值赋值给指针变量的含义是不同的。例如:/BC!;$/!;上面,字符串数组 / 被赋初值为“,因此 / 的前三个单元分别是“、“、“,其他单元都是“D字符串指针 / 被赋初值为“,意味着 / 的值是字符串常量“的首字符“在内存中的地址。4.指针与数组作为函数的参数指针的本质是地址,指针可以做参数,而数组名也就可以做参数。一维数组名作参数时,数组名后面要跟着BC,BC中间可以有整型常量,也可以没有。5. 函数指针的定义与引用当一个指针指向了函数的第一条指令时,这个指针被称为函数指针。函数指针变量的定义格式是:数据类型符 ($变量名)(参数列表)6第八章 预处理命令1. 文件包含文件包含是指一个 源程序通过H3 命令将另一个文件(通常是 或 文件)的全部内容包含进来。文件包含命令的一般格式是:H3!文件名”或者
H3*文件名+第九章 复杂数据类型1. 结构体类型的定义格式/3结构体类型名=数据类型名 成员名 ;数据类型名 成员名 ;数据类型名 成员名 ;??数据类型名 成员名 ;>; 必须以分号结尾结构体类型变量的定义格式是:/3结构体类型名 变量名;其中,关键字 /3 必不可少,结构体类型名必须在定义变量之前定义。第十章 文件操作1. 文件指针在操作文件过程中,程序员只能获取 I9JK 型的指针,这个指针所指向的 I9JK 型变量存放着所操作文件的基本信息。这个 I9JK 指针又称为文件类型指针。每个文件类型指针代表唯一一个文件。2. 文件的打开、读写和关闭()文件的打开与关闭打开文件需要调用 函数,关闭文件需要调用 / 函数。这两个函数的原型如下:I9JK$5$LF.$F'6/5I9JK$/F'()文件的读写文件的读写需要调用 /、、4/、3/、4、3、、@ 等标准库函数。 fscanf 和 fprintf 函数 fgetc 和 fputc 函数这两个函数的原型是:45I9JK$/F'635.I9JK$/F'64 函数的功能是从 /F 所代表的文件中读取一个字节,返回值是读取的字节值,如果遇到文件尾或出错,它返回 KMI。3 函数的功能是将一字符 输出到 /F 所代表的文件中,返回值是 的值,如果出错,则返回 KMI。 fgets 和 fputs 函数4/ 和 3/ 函数的原型是:$4/5$/..I9JK$/F'63/5$/.I9JK$/F'6 4/ 函数的功能是从 /F 所代表的文件中读取长度最大为 # 的字符串,并将字符串存放到 / 中。三、重点习题(一)单选题以下叙述不正确的是 。 7'一个 源程序可由一个或多个函数组成 N'一个 源程序必须包含一个 F 函数
' 程序的基本组成单位是函数 O'在 程序中.注释说明只能位于一条语句的后面假设所有变量均为整型.则表达式5.%."""."'的值是 。7'N''%O'在位运算中.操作数每左移一位.其结果相当于 。7'操作数乘以 N'操作数除以 '操作数除以 O'操作数乘以 以下不正确的叙述是 。 7'在 程序中.逗号运算符的优先级最低N'在 程序中.7P 和 是两个不同的变量'若 和 类型相同.在计算表达式 后. 的值将放入 中.而 中的值不变O'当从键盘输入数据时.对于整型变量只能输入整型数值.对于实型变量只能输入实型数值%设变量 是整型. 是实型. 是双精度型.则表达式 "QQ"$ 值的数据类型为 。 7'N'R'3O'不确定,阅读以下程序,当输入数据的形式为:%,,*S+.正确的输出结果为 。F5'=2.G.06/5TT.&2.&G.&0'65T2"G"0DT.2"G"0'6>7'2"G"0N'2"G"0%'2"0%O'不确定的值能正确表示“当 2 的取值在B.C和B.C范围内为真”的 语言表达式为 。7'52+'&&52*'&&52+'&&52*'N'52+'&&52*'((52+'&&52*''52+'((52*'((52+'((52*'O'52+'((52*'&&52+'((52*'如果 =,=,=,=,则条件表达式 <<:<<: 的值为 。7'N''O'执行以下程序后的输出结果是 。@.0.265TT.2+<2"12#'65TT.@""((0""'65TT.:@+0'65TT.@&&0'67'N''O'下面程序段的运行结果是 。666@5**'=666##6>5T..T...'67'..N'..'..O'..(二)填空题若 2 为 型变量,则执行以下语句后 2 的值为 。262"2#2"26以下程序的运行结果是 。F5'=..%6
/@5+'=/1/@5*'=/15TUT'6-6/15T:T'6-6>/1/@5%'=/15T$T'6-6/15THT'6-6315THT'6-6>315T&T'6>5TDT'6>若运行时给变量输入 ,则以下程序的运行结果是 。F5'=2.G6/5TT.&2'6G2+<2"12#65TDT.G'6>以下程序的运行结果是 。H3*/+F5'=...6%.V.-6:-6:V65TDDT..'6-&&V6-((V65TDDT..'6>%下面程序的运行结果是 。H3*/+F5'=.65.6*6""'=5+'-65'="636>#%6>5TDT.'6>,以下程序的运行结果是 。