第1 周 程序设计与C语言简介
1.1 程序设计基础随堂测验
1、计算机只能处理由人们编写的、解决某些问题的、事先存储在计算机存储器中的二进制指令序列。
10、关于C语言,下面叙述不正确的是()。
B、既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序
13、计算机只能完成其能力范围内的计算工作,超出计算机能力范围的计算计算机将无法完成。
14、可计算问题的规模造成复杂度加大,理论上计算机可以完成的计算工作,实际计算机都可以完成。
15、程序是计算机为完成某一任务所必须执行的一系列指令的有序集合。
16、高级语言是用接近自然语言的符号,按照一定的语法规则编写程序,需要编译程序翻译成机器指令才能被计算机执行。
17、编译方式下的程序当修改源程序后,需要重新编译才能够正确运行。
18、面向对象程序设计方法具有与人们的习惯与思维方法一致,便于解决复杂问题的特性。
19、C语言属于面向过程的优秀程序设计语言,既可作为系统设计语言,也可作为应用程序设计语言。
20、算法可以分为数值算法和非数值算法两大类。
21、对于同一个问题,只能有唯一的算法去解决。
22、C语言中不区分大小写字母。
23、程序中适当地添加注释,可以增加程序的可读性和清晰性。
24、在VC++6.0环境下,任何一个C程序都必须包含在一个工程项目中,而且只能有一个main函数。
25、经过编译、连接后的可执行程序可以多次运行。
26、C语言开发工具直接输入的程序代码是____文件,经过编译后生成的是目标程序文件, 经过连接后生成的是可执行程序文件。
27、C语言源程序的基本组成单位是_____。
28、结构化程序设计所规定的三种基本控制结构是顺序结构、_____结构和循环结构。
29、算法的效率通常由_____ 复杂度和空间复杂度衡量。
30、描述算法的方法主要有_____、专用工具(传统流程图、N-S流程图)和伪代码等。
31、计算机系统由硬件系统和______系统两部分组成。
32、计算机语言分为:机器语言、汇编语言和_________语言。
33、程序的执行方式分为_________和解释两种方式。
34、衡量算法的时间复杂度是指对于相同规模的问题,算法的执行_______的长短。
3、计算两个整数的乘积。
2.1 变量和常量随堂测验
2.1 变量和常量随堂测验
1、字符串"\\\’\054"占用的存储空间的长度是____。
2.1 变量和常量随堂测验
2.2 运算符和表达式随堂测验
1、“/”运算符,当两个整数相除时结果取整。
2.2 运算符和表达式随堂测验
5、下列关于C语言用户标识符的叙述中正确的是( )。
D、用户标识符中可以出现下划线和数字,它们都可放在用户标识符的开头
17、C语言的关键字是由C语言规定的、具有特定功能的固定字母组合,也称为保留字,共计32个。
18、变量是在程序执行期间其值可以改变的量,必须先定义后使用。
19、变量被定义后没有赋值,其单元内容不可以使用,是内存中的随机数。
20、变量的初始化是指在定义时对其赋值。
21、变量的名字代表内存中的存储单元;变量名和内存中的存储单元相对应,通过变量名来存、取存储单元的内容。
22、定义变量时的变量的类型决定变量占据存储单元的大小和数据的表数范围。
23、变量中只能存放指定类型的数据,程序运行过程中可以改变变量的类型。
24、当存储单元溢出时,数据的值不会受到影响,只会丢掉超过的部分。
25、当有若干运算符同时出现在表达式中时,运算符的优先级规定了运算的先后次序。
26、当若干具有相同优先级的运算符相邻出现在表达式中时,结合性规定了运算的先后次序。
27、在C语言中,对于整型变量采用有符号数和_________数两种存储形式。
28、当赋值语句右边表达式类型与左边变量类型不一致时,以_______类型为准。
33、在C语言中的实型变量分为float型和double型,按浮点数进行存储,分为数符、_______和尾数几部分。
37、C语言中用一个符号代表一个常量的量称为________常量。
第3周 数据的输入与输出
3.1 数据的格式化输出随堂测验
1、在调用printf函数输出数据时,当数据的实际位宽大于printf函数中格式指定宽度时,将按照数据的实际宽度输出数据。
3.2 数据的交互式输入随堂测验
1、输入时可以指定数据的宽度,但不允许指定精度。
3.3 单个字符的输入输出随堂测验
1、单个字符既可以以c格式符也可以以d格式符输出,前者是输出这个字符,后者是输出这个字符的ASCII码值。
10、C语言中本身没有提供专门的输入输出语句,输入输出通过调用函数完成。
11、输入数据时不能指定数据的精度。
12、输入数据时不可以指定数据的宽度。
13、混合输入数值型数据和字符型数据时,数据之间不能加空格。
14、使用getchar()函数可以一次接受多个字符。
15、在使用标准的输入/输出库函数时,应该在程序的开头使用编译预处理命令“#include <stdio.h>”。
16、字符型数据存储其ASCII码值,占一个字节,在ASCII范围内与整数通用。
17、输入数据时可以有多种方法分隔多个输入数据。
18、程序的顺序结构是指按照解决问题的顺序写出相应的语句,程序执行顺序按照自上而下,依次按顺序执行。
19、若在输入格式控制字符串中包含普通字符,则输入时必须照原样输入普通字符,否则将导致输入错误。
27、在格式说明符中,当%后边出现______,表示要跳过相应的数据,是附加说明符。
28、若要将数据以指数形式输出,应该选择______格式符。
3、求一元二次方程的两个实根
第4周 选择结构程序设计
4.1 关系运算与逻辑运算随堂测验
1、算术运算符的优先级高于关系运算符。
4.2 程序分支结构—if-else语句随堂测验
4.3 多重分支结构-switch语句随堂测验
15、所有逻辑运算符的优先级都高于关系运算符。
16、在switch语句中,switch与case后的表达式可以为任意类型。
17、在if语句中,if后面的表达式可以是关系表达式与逻辑表达式,而不能是算术表达式。
18、在逻辑表达式的求解过程中,并非所有的逻辑运算符都被执行。
19、switch语句嵌套使用时,一条break语句可用于跳出所有嵌套switch语句。
21、条件运算符的优先级低于算术运算符、关系运算符及逻辑运算符,高于赋值运算符和逗号运算符。
22、同一个switch语句中各个常量表达式的值必须互不相等,且只能是常量。
23、C语言没有逻辑型数据,关系表达式的真、假是以数值“1”代表“真”,以“0”代表“假”,即非0为真(true),0为假(false)。
24、并非所有的if语句都有等价的switch语句,switch语句只能用来实现以相等关系作为选择条件的多分支结构。
33、为了避免嵌套条件语句的二义性,C语言规定else与其前面最近的_____语句配对。
3、百分制成绩转换为五级分制成绩
第5周 循环结构程序设计
11、while循环语句至少无条件执行一次循环体。
12、for循环语句只能用于循环次数已经确定的情况。
13、do while循环语句中,根据情况可以省略关键字while。
14、do while循环语句至少无条件执行一次循环体。
15、for循环语句先判断循环条件是否成立,然后再决定是否执行循环体。
17、for循环的三个表达式中间用逗号相分隔,并且不能省略。
18、do while循环语句的特点是先执行循环体,然后判断循环条件是否成立。
19、while循环语句和do while循环语句在任何情况下都可以互换。
20、for循环的三个表达式中间用分号相分隔,第一个表达式执行一次。
1、用for语句实现判断并求和。
2、用do while 语句实现从键盘输入一组整数,求平均值。
第6周 循环程序设计实例
8、continue语句用于终止循环体的本次执行。
9、break语句能够终止当前进行的多层循环。
11、对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式3。
12、continue语句在循环体中出现,其作用是结束本次循环,接着进行是否执行下一循环的判定。
13、goto语句和break语句都能够实现使程序执行的流程从循环体内跳至循环体外。
14、break终止包含该语句的最内层循环。
15、在循环体内又包含一个循环语句,称为循环嵌套。
16、for(表达式1;表达式2;表达式3),当执行循环体内的continue语句时,意味着转去执行表达式2。
17、程序中遇到goto语句无条件跳到标号指定的位置继续执行。
1、求两个整数的最大公约数。
第7周 一维数组及其引用
12、在对全部数组元素赋初值时,可以不指定数组长度。
13、数组定义int a[10]; 表示数组名为a,此数组有10个元素,首元素为a[0]。
14、如果对数组不赋初值,则数组元素取随机值。
15、引用数组元素时,其数组下标的数据类型允许的是:整型常量或整型表达式。
17、数组名的规定与变量名不相同。
18、一个数组可以存放许多不同类型的数值。
19、数组的下标通常是float型。
20、数组可以声明为任何数据类型。
2、找出一维整型数组中的次最大值。
3、调整最大值的位置。
第8周 二维数组与字符数组
第1讲 C/C++程序设计入门
7、C和C++语言中不区分大小写字母。
8、C语言最初是为开发UNIX系统而编写设计的。
9、在C和C++语言中,注释语句是可执行语句。
10、C和C++语言(C++11之前的标准)中,用户自定义的标识符中不能包含汉字。
11、C和C++语言源程序中如果存在语法错误,程序仍可以运行,但结果不正确。
12、cin后的提取运算符“>>”之后只能跟变量。
14、在C语言中,无论一个程序中有多少个函数,总是从_______函数开始执行。
15、C和C++语言中,________是语句结束的标志。
2、编写一个计算梯形面积的程序。要求梯形的上底、下底和高在定义变量时直接赋值。
3、编写计算一个学生三门课平均成绩的程序,要求学生成绩从键盘输入。
第2讲 数据类型、运算符和表达式
9、在C语言中,所有算术运算符的优先级都相同。
10、'b'和"b"是不同的两种常量。
11、一般情况下,目数越多,优先级越高。
12、表达式 a*b>0 可以表示“a和b同时为正或同时为负”
16、字符串常量"123"在内存中的字节数是( )。
1、输入直角坐标系中点P的坐标(x,y),若P点落在图中的阴影区域内,输出阴影部分面积,否则输出数据0。
2、任意输入3个整数数据,输出它们中最小的一个数。
3、将"fly"译成密码"iob"。编码规律:将字母a变成字母d,即变成其后的第3个字母,x变成a,y变成b, z变成c。
11、在C程序中,if语句中不能嵌套switch语句。 ( )
12、空语句是合法的C语句。
13、C语言中规定,if语句的嵌套结构中,else总是无条件地和最近的if配对。
14、C语言中规定,if表达式后面的语句可以是复合语句。
2、某商场购物时,若所选商品价值x在下述范围内,则实付金额y按如下折扣支付: 用switch语句实现已知x求y
3、编一模拟袖珍计算器的完整程序,运行结果见图。要求:输入两个操作数和一个操作符,根据操作符决定所做的运算。 提示:根据存放操作符的字符变量,利用switch语句实现。
8、continue语句的作用是结束整个循环的执行
10、do-while的循环体至少无条件执行一次
11、do-while 的循环体不能是复合语句
12、只能在循环体内和switch语句体内使用break语句
2、编写程序将一个十进制整数按倒序形式输出。即若输入156,则输出651。
3、编一程序,显示出所有的水仙花数。所谓水仙花数,是指一个3位数,其各位数字立方和等于该数字本身。
9、使用数值型数组时,不可以一次引用整个数组,只能逐个引用元素。
10、数组的起始下标是从1开始的。
11、可以通过赋值运算符“=”给两个数组间整体赋值。
12、C语言中,数组名是一个常量,是数组首元素的内存地址,可以重新赋值。
13、C语言中,数组元素在内存中是顺序存放的,它们的地址是连续的。
14、在C语言中,引用数组元素时,其数组下标的数据类型是( )
16、数组名是一个地址( ),由系统自动为其分配,不能人为修改,代表了数组在内存中存放的首地址。(提示:填“常量”或“变量”)
1、随机产生10个30~100(包括30,100)的正整数,求它们的最大值、最小值、平均值,并显示整个数组的值和结果。
2、随机产生20个学生的计算机课程的成绩(0~100),按照从大到小的顺序排序,分别显示排序前和排序后的结果。
3、随机产生10个数,输入1~10之间的正整数m,使数组元素右移m位,移出的元素再从左移入。如,假设原来的数组元素依次为:1 2 3 4 5 6 7 8 9 10,假设m为2,则右移2位后的数组元素依次为:9 10 1 2 3 4 5 6 7 8
4、按由大到小的顺序输入10个int类型的数据将其存放在一个一维数组中,再输入一个整数到变量x,用二分法查找x是否是数组中的元素,若是,输出其在数组中的位置,否则输出不在数组中的提示。
第6讲 二维数组、字符数组
9、如对数组的初始化为:int s[2][2]={1};,则数组s每个元素的值均为1
10、二维数组中元素存放顺序是:先存放第一行的元素,再存放第二行的元素,依次类推。
13、若二维数组a有m列,则计算任一元素a[i][j]在数组中的序号为( )。 (假设a[0][0]的序号为0)
1、输入一个小于10的正整数n,显示具有如下形式的n行杨辉三角形。图中n=6。 提示:解该题有两个关键: ① 形成满足杨辉三角形各项值的数组。首先定义二维数组a[10][10],杨辉三角形的形成特点是第1列(下标为0)和主对角线均为1,其余各项有如下关系: a[i][j]= a[i-1][j-1]+
2、编写程序,将某一指定字符从一个已知的字符串中删除。假设已知字符串为“aaaasdfga”,将其中出现的'a'字母删除,删除后的字符串为“sdfg”。
3、编一个程序,输入一个字符串,将其倒序存放后输出。例如,假设原数组a的内容为“VISUAL C++PROGRAM”,倒序后数组a中的内容为“MAGORP++C LASUIV”。 要求:不能借助另外一个数组实现倒序存放。
1、利用字符指针将输入的一个字符串中的大小写字母相互转换,并输出转换后的字符串的内容。如,假设输入的字符串的内容为“How are you”,则转换后的内容为“hOW ARE YOU”
2、利用字符指针将字符串s中从第n个字符开始的内容复制到字符串t中
3、利用指针将一个包含10个整数的数组中的最大最小元素进行交换,并输出交换后的内容。10个整数为随机产生的0~100之间的数。(若最大最小元素不唯一,则交换任意两个都算正确,即可以不用特殊考虑不唯一的情况)
9、C/C++程序中的函数,既可以嵌套定义,也可以嵌套调用。
10、函数调用时,实参将数据传递给形参后,立即释放原先占用的存储单元
11、定义一个void型函数意味着调用该函数时,函数没有返回值
12、数组作为函数的参数时,系统为形参数组和实参数组分配不同的存储单元。
13、C/C++程序中,若函数的定义写在调用函数的语句之后,需要在调用前对函数进行说明。
1、编一判断m是否为素数的函数,并在主函数中利用它输出十对最小的孪生素数。所谓孪生素数是指两个相差为2的素数,如3和5,11和13。程序运行结果见下图。 函数形式为: bool isprime(int m)
2、编一函数,功能为判断一字符串是否为回文,如果是回文则返回1,否则返回0。回文是指顺读和倒读都一样的字符串,如“deed”和“level”是回文。在主函数中对输入的字符串加以调用。 函数形式为:int huiwen(char s[])
要求优秀与不及格的人数通过引用参数返回结果。 分别编二个函数,学生人数从键盘输入。
4、编一函数,功能为统计字符串中各个字母(不区分大、小写)出现的频率,同时找出频率出现最高的字母及次数,假设出现次数最多的字母只有一个。函数形式为: void freq(char s[],int p[],char &chmax,int &max) 程序运行结果如下:
9、C/C++程序中,形参是局部变量,函数调用完成即失去意义。
10、若同一文件中全局变量和局部变量同名,则全局变量在局部变量作用域内不起作用。
11、在一个函数中定义的自动局部变量,在其它函数中不可以访问,在一个函数中定义的静态局部变量,在其它函数中可以访问。
12、在一个C/C++源程序文件中所定义的全局变量,其作用域为所在文件的全部范围。
1、编写递归函数int sum(int a[],int n),其功能是求长度为n的数组的累加和,在主函数中随机产生10个两位数,调用sum函数,求这10个数的和。
2、编写函数get_max,其功能是将字符串s中最大字符的地址返回,再编写一个主函数,调用该函数,将字符串s中从最大字符开始的子串中小写字母转换成大写字母,然后输出新字符串s。例如,假设s的内容为“qwertyou”,则从最大字符’y’开始的子串为“you”,处理后的s为“qwertYOU”。 函数形式为:char *get_max(char s[])
9、结构体不可以嵌套定义
10、结构体是一种构造数据类型,要先定义结构体类型,然后定义结构体变量
11、每个结构体不可以包含多个相同类型的的成员
1、有一组关于学生成绩的信息,编写函数max,该函数返回值为分数最高的学生的信息(包括学号和分数)。再编写主函数对其进行调用并输出最高分者的信息。假设结构类型定义为: struct student { char *num; int score; }; 提示:num定义为指针类型,注意向其复制内容之前要先为其申请空间。
2、编写程序,定义一个日期结构变量,计算某日期是本年度的第几天。提示:为简单起见,可定义一个存放12个月中每个月总天数的数组。
9、顺序存储结构的主要缺点是不利于插入或删除操作。( )
10、链表存储时,各结点的存储空间可以是不连续的。( )
11、在链表中各结点的逻辑顺序和物理存储顺序必须一致。( )
12、链表是一种动态存储结构,表的长度可根据需要动态扩充。
13、带表头结点的单链表比不带表头结点的单链表操作起来更复杂。
15、在单链表L中,指针p所指结点有后继结点的条件是( )。
16、链接存储的特点是利用( )来表示数据元素之间的逻辑关系。
1、编写函数deln,具有删除链表中第n个结点的功能。再编写主函数,按输入顺序建立不带头结点的职工信息单链表,然后调用del函数删除某个职工的信息,并输出删除后的职工信息表中的职工信息。假设链表结构如下: struct staff { char num[6]; //职工工号 char name[20]; //职工姓名 double wage; //职工工资 };
2、从键盘输入一个字符串,要求将该字符串的内容按输入的相反顺序组织到一个不带表头结点的单链表中。假设输入的字符串为"abcdefg",则组织到链表中的内容为"gfedcba"
9、C语言通过文件指针对它所指向的文件进行操作。
10、函数fseek(fp,n,k)中的第二个参数代表的位移量是相对于文件的开始来说的。
11、函数rewind()的作用是位置指针返回移动前的位置。
12、函数fopen()不可以打开二进制文件。
13、若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为( )
14、若使文件的读写指针fp指向文件首,正确的函数调用形式为( )
15、利用fseek函数可实现文件的( )读写。
1、编写程序,从键盘输入一串字符,要求将该串字符的倒序串先写入到文件f1.txt中,然后再将原字符串的内容接到该文件的末尾。例如,假设从键盘输入的字符串为“How do you do?”,则文件f1.txt的内容为: ?od uoy od woHHow do you do?
2、用记事本建立一个文本文件f2.txt,在该文件中任意存放一组整数。编写程序统计该文件中正整数、负整数和零的个数。(提示:用fscanf函数读取文件中的数据)
3、将从键盘输入的N个学生的学号和成绩存入到文件student.dat中。再从文件中读取学生的信息,求出最高分、最低分和总分。N可通过符号常量自行定义大小。
6、下面说法中正确的是( )。
A、一个类只能定义一个构造函数,但可以定义多个析构函数
B、一个类只能定义一个析构函数,但可以定义多个构造函数
D、构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以
7、关于常数据成员的说法不正确的是( )。
A、常数据成员的定义与一般常量的定义形式相同,但需定义在类体中
10、析构函数可以重载
11、对象是类的一个实例。
12、构造函数的功能是用于初始化对象的。
13、只有类的( )和友元函数才可以访问该类的私有成员。
14、当含有类对象的函数结束时,系统会自动调用( )函数来删除对象,以释放其所占用的内存。
15、为该类的所有对象共享的数据被称为是该类的( )数据成员
1、设计一个点类(Point),具有数据成员x,y(点的坐标),以及设置、输出数据成员及求两点之间距离的功能。再编写主函数对该类进行测试。
2、设计一个字符串类(Mystring),除具有一般的输入输出字符串的功能外,还要求具有计算字符串长度、连接两个字符串等功能,其中求字符串长度和连接字符串功能不能直接调用字符串处理函数。再编写主函数对该类进行测试。
3、设计一个分数类Fraction。该类的数据成员包括分子fz和分母fm;类中还包括如下成员函数: (1)构造函数,用于初始化分子和分母。 (2)成员函数print,将分数以 "fz/fm" 的形式输出。 (3)成员函数Reduction,用于对分数的分子和分母进行约分。 再编写主函数对该类进行测试。
9、在程序中不能声明抽象类对象。
10、程序中指向抽象类的指针不能指向其派生类对象
11、派生类继承基类中除构造函数和析构函数以外的所有成员
12、含有纯虚函数的类被称为( )。
13、一个派生类只有一个直接基类的情况称为( )继承
14、面向对象程序设计的( )机制提供了重复利用程序资源的一种途径。
C/C++程序设计期末考试单选题
C/C++程序设计期末考试程序填空题
C/C++程序设计期末考试单选题
C/C++程序设计期末考试程序填空题
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。