版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计基础期末复习考试题型和分值。一、单选题(20小题,每题2分)二、填空题(共20题,计20分)三、编程填空题 (给出程序的输出结果,共5题,14分)四、读程序题 (补充程序,共2小题,共26分)程序练习:1. 输出110之间所有的偶数和它们的平方。2. 输出所有的水仙花数。3. 从键盘输入一行字符,统计其中有多少个单词。假设单词之间是以空格分开。4. 编程先由计算机“想”一个1100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。5. 编写程序,要求在main函
2、数接受一个整型变量,将其作为参数传入IsPrime函数中,IsPrime函数根据传入的值确定返回值,如果<2,返回0;如果不是素数,返回1;如果是素数,返回2。主函数根据返回值输出相应的提示信息:输入不合法,不是素数,是素数。6编写程序:给学生出一道加法运算题,然后判断学生输入的答案对错与否。通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Not correct! Try again!”,重复要求输入答案,直到输入结果正确,程序结束。要求:用Add函数来进行两个整数的加法运算;用Print函数判断输入的答案正确与否;用main函数输入
3、两个相加的数和学生的答案,然后调用Add函数和Print函数判进行判断和显示输出。7. 利用指针编写两个整数交换的函数。8. 从10个元素的数组中找出最大值和最小值,并记录最大值和最小值对应的元素的下标位置。9. 给定10个数,按照要求进行排序并输出排序的结果。程序设计ABC1. 程序运行的方式分为哪两种? (编译运行和解释运行)2 .什么叫编译器,其功能是什么?(把程序设计语言转换成目标代码的软件称为编译器)数据类型、运算符与表达式1.C程序的特点? u 函数是C程序的基本单位。一个C程序有且仅有一个main函数(主函数), 总是从main函数开始执行,在main函数中结束,与其位置无关;u
4、 函数由函数头和函数体组成u C程序的书写格式:C语句都以分号结束;允许一行多句,但最好一行一句并按照锯齿形(缩进式)书写,提高可读性和可测试性;适当使用注释(注释中的语句不参与编译,不能发现其中的拼写错误)。 2. C语言标识符的命名规则,会判断哪些是合法的哪些不合法。3. 如何判断表达式的数据类型?(取高精度的)4. 常量:程序运行过程中其值不变的量。u 实型常量的表示。分为十进制小数(123.45、-0.5、.98、18. 均合法)和指数形式(1e-2、4.5e3 、3.e2 、.8e-5 均合法, e3、2e3.5、.e3不合法)。u 字符常量的表示。除了转义字符外单引号中仅有一个字符
5、(X X “X” XY )、转义字符。 (n 表示一个字符) (P23) 5. 字符串常量。双引号。(注意与字符常量的区别)6. 宏常量。如何声明一个宏常量?例如: #define PI 3.14159 #define A(x) 3*x*x -2 printf(“%d”, A(1+3); 结果?7. 变量:程序运行过程中其值可以改变的量。u 变量的声明与初始化。遵循“先定义、后使用”。u 变量名由用户定义的标识符。u 变量的属性:变量名、变量类型、变量的值、变量的存储单元地址u 使用变量注意的问题8. 常用运算符及表达式。u 不能给表达式赋值。例如:x+y=3u 优先级和结合性。算术运算符。(
6、1)两个整数相除结果为整数。6/4=1 u (2)有一个操作数为实数,结果为double型。6./4=1.5 (3)求余运算的两个操作数必须为整数。u 将算术表达式转换为C语言表达式。(常见错误P34)例如:3 < x < 4”或”x < -5 u 关系运算符。>,>=,<,<=,=,!= (关系运算符运算出的结果为0和非0)(常见错误见P35)u 逻辑运算符。逻辑运算符两侧的运算对象可以是任意合法的表达式。&&(同真为真,否则为假。)、 | (有一个为真结果为真,同假为假) ! (a的值不变) 例如:判断是否为字母; 例如: 当 a=
7、1,b=2,c=3,x=4,y=3 时 !b<a && a != c | x+y <=3 的值?语句while(!E)中的条件!E等价条件是:E=0u 会将自然语言翻译成逻辑、关系表达式。例如:收入(income)大于5000并且小于10000u 赋值运算符。左边只能是变量。复合运算符,例如:n *= m + 2 u 三目运算符:w < x ? w : y u 增量()和减量()运算符。注意前置和后置运算:若单独一个增量或减量运算符,则相当于执行加1或减1操作,若用在复合语句中就有区别。m = n+;m = +n ; printf(“d”, n); print
8、f(“d”, n); 9. 类型转换。不会自动进行四舍五入;将取值范围小的类型转为范围大的类型是安全的。反之是不安全的。u 注意表达式赋值后的类型转换 例如:int x1 = 1, x2 = 2, x3 =3; x3 = 1.0/x2*x1; 结果是什么类型?简单的C程序设计1. 表达式和表达式语句的区别。2. 字符输入/输出。字符输出函数putchar(ch):向终端显示屏幕输出一个字符ch。字符输入函数getchar(),使用格式: 变量 getchar() 功能:从键盘输入一个字符,按回车表示输入结束,函数值为从输入设备接收的字符。 3. 格式输入/输出。u scanf:不要忘记&
9、;符号;多个变量输入值之间的符号;特别要注意类型的匹配;忽略修饰符等。(具体见书)u printf:注意类型匹配;域宽、精度等。(具体见书3)4. 要能够判断程序的错误。(如变量、常量的声明、输入输出格式等问题)。程序的控制结构1 什么是算法?什么是程序?算法的五个特性是什么?u 程序:是为解决某一问题而用特定的计算机语言编写的,用以指挥计算机完成预定功能的一系列计算机指令;u 算法是程序处理问题的步骤和方法;u 算法的特性:有穷性、确定性、有效性、没有输入或多个输入、有一个或多个输出。(要清楚各个特性的含义)2 程序的三种基本结构。3 逻辑运算符和关系运算符的使用。4 选择结构。u if形式
10、、 if else形式、 ifelse嵌套形式、switch多路开关(特别注意括号的使用、else与if配对问题、关系判断使用、浮点数不能进行比较。)u 使用条件语句应注意以下问题:§ 是否需要包含相等的情况。§ 表达相当的关系使用的是,不要把 if(ab) 写成 if(a=b)。例如:int x = 2, y=3, z = 4;if( x = y)printf(“%dn”,z);elseprintf(“%dn”,y);§ 对于float变量,由于存在精度问题,所以要避免使用“”或“!”进行数字比较。可以设法转换成“>=”或“<=”形式。§
11、语句嵌套结构中if 与else的配对!§ if和else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对。 § 实现if else 正确配对方法:加 。 u switch多路开关:switch(表达式) case 常量1:§ 表达式需为整型、字符型或枚举型。§ 各常量表达式的值必须互不相同; § 需用break跳出; § case后可包含多个可执行语句,且不必加 ; § switch可嵌套,多个case可共用一组执行语句; § default可以省略,但建议使用。 例如:i=0;while(i
12、< 3) switch(i) case 0: printf(“%d”,i); case 2: printf(“%d”,i); default: printf(“%d”,i); i+;4. 循环结构。u 循环的三种形式以及语法。u 循环的要素:循环入口、重复执行的内容、循环测试、终止条件、循环退出。u 注意:§ 在for和while语句之后一般没有分号,do-while的while后必须有分号。§ 循环体有多条语句必须用 括起来。§ 有分号表示循环体就是分号之前的内容(空循环体)§ while (i < 100);i+; § for
13、(i = 0; i < 100; i+); for(i = 1; i < 5; i += 2) printf("%d", i); printf("%d", i);§ 选择循环的一般原则如果循环次数已知,用for;如果循环次数未知,用while;如果循环体至少要执行一次,用do-while。u 循环的嵌套:外层、内层循环的次数。例如:main() int i, x = 0;for (i = 2; i < 5; i+)doif ( i%3)continue;x+;while( !i); x+;printf(“x=%dn”,x);
14、u 流程的转移控制:u break语句:可以用在switch结构中,终止当前case;可以用在循环结构中,退出当前所在的循环。u continue语句:用于循环结构中,中断此次循环体的执行,也就是停止continue语句后面的内容,开始下一次。 第三章 函数1. 熟悉一些简单的数学库函数。2. 函数的定义。u 函数定义的语法。u “函数名”是函数的唯一标识,其命名规则与命名雷同。u 函数不能嵌套定义,可以嵌套调用。u 函数头和函数体之间不能有分号。3. 函数原型,也叫函数声明。u 函数原型就是不带函数体的函数声明;u 函数原型就是函数头加分号;u 函数原型必须放在调用者之前,通常放在main函
15、数之前;u 函数原型和函数定义中的函数返回类型、函数名和形参数表(形参的个数、类型、位置)必须完全一致,否则,编译器会报告有编译错误。 4. 函数参数。u 形参:子函数(被调函数)内部准备接受数据的参数叫形参。形参必须指定类型。形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放。u 实参:调用者提供的参数叫实参,实参是实际参与运算的数据。实参必须有确定的值。5. 函数调用。u 调用函数将实参的值传给(赋值)被调函数的形参,此时实参和形参就有各自的存储空间,所以形参值的变化不会影响实参。u 函数调用时,调用者提供的参数个数、类型、顺序应与子函数声明、定义时相同。u 有返回值
16、调用。放到一个数值表达式中,如c = max(a, b);作为另一个函数调用的参数,如c = max( max(a,b) ,c); printf("%dn", max(a,b) );例如:int fun(int n) return (n/3);main() int x,y;scanf(“%d”,&x);y = fun(fun(fun(x);printf(“%dn”,y); /结果:45 u 无返回值函数的调用函数调用表达式,单独一行使用,如display(a, b); u 函数的递归调用。例如: int fun(int n) int m; if ( n = 0 |
17、n = 1) return 1; m = n -fun(n -2); return m;main() printf("%dn", fun(5); 6. 函数的返回值。u 函数返回值的类型最终取决于函数定义时函数首部所说明的函数类型u 返回值只有一个,可以是除了数组之外的任何类型,也可以是void类型;u 有返回值函数必须有return语句,无返回值函数不要求有return语句。7.变量的作用域。u 作用域是指在源程序中定义变量的位置及其能被读写访问的范围。u 变量作用域规则:每个变量仅在定义它的语句块(包含下级语句块)内有效,并且拥有自己的内存空间。u 同一个语句块内不能定
18、义同名变量。(不同的函数中可以使用相同名字的变量)8. 局部变量u 在语句块内定义的变量u 形参也是局部变量u 定义时不会自动初始化,除非程序员指定初值。u 进入语句块时获得内存,仅能由语句块内语句访问,退出语句块时释放内存,不再有效。 (函数退出后失效,再次进入函数,变量值重新初始化。)u 并列语句块各自定义的同名变量互不干扰9. 全局变量u 在所有函数之外定义的变量。u 在程序中定义它的位置以后都有效;u 从程序运行起即占据内存,程序运行过程中可随时访问,程序退出时释放内存; u 使函数之间的数据交换更容易,也更高效。 u 因为谁都可以改写全局变量,所以很难确定是谁改写了它 。10. 静态
19、变量u 在变量类型前面用static修饰;u 变量的值可以保存到下次进入函数,使函数具有记忆功能。u 静态变量和全局变量都是静态存储类型若没有被初始化,则自动被初始化为0;u 从静态存储区分配,生存期为整个程序运行期间。数组1. 数组的定义和初始化u 数组的概念:由若干类型相同的相关数据按顺序存储在一起形成的一组同类型有序数据的集合,称为数组。u 什么是数组元素?什么是下标?下标的取值是多少(下界、上界)?什么是维数?u 定义数组的大小必须使用整型常量或者整型常量表达式,不允许使用变量。数组大小最好用宏来定义,以适应未来可能的变化。 u C语言的数组在内存中是按行存放的。二维数组的数组元素的存
20、放顺序是也是按行存放。u 数组占用的内存空间如何计算?u 数组定义后的初值仍是随机数,一般需我们来初始化。 int a5 = 12, 34, 56 ,78 ,9 ; int a5 = 0 ;int a5 = 1,2; 是怎样赋值的?int a = 11, 22, 33, 44, 55 ;int a4 = 0,0;int a34;/ 第5个元素是谁?行下标范围?列下标范围?int a34 = 1,2,0,4,5,8.10/a23的值?2. 向函数传递一维数组。u 用数组名作参数,就是将数组的首地址传递给函数。u 实参数组与形参数组占用同一段内存。u 若在被调函数中改变形参数组元素的值,则实参数组
21、元素的值也会随之发生改变,这是由于形参和实参两数组在内存中因指向统一地址而共享这一段内存造成的。u 对形参数组进行说明时,在方括号内可以给出数组的长度说明,即说明为固定长度数组,也可以不给出数组的长度说明,即说明为可变长度数组,一般此时用另一个整型参数来给定数组长度。 3. 字符串u 一串以0结尾的字符在C语言中被看作字符串。u 用双引号括起的一串字符是字符串常量,C语言自动为其添加0终结符。u C语言并没有为字符串提供任何专门的表示法,完全使用字符数组(一维数组)和字符指针来处理。u 要区分字符和字符串的概念。不要用错了单引号和双引号。4. 字符数组 u 每个元素都是字符类型的数组。u 初始
22、化:可以采用逐个字符进行初始化(若没有0,仅仅是字符数组,不能把它当作字符串来处理);也可以采用字符串常量赋值。u 一个字符型的一维数组并不一定是一个字符串,只有当字符型一维数组中的最后一个元为0,它才构成字符串。u 用字符型数据对数组进行初始化 char str6 = 'C','h','i','n','a','0' 用字符串常量直接对数组初始化 char str6 = "China" char str6 = "China"Char str = “china”
23、;char str5 = “China”;char weekday710=“Sunday”, ”Monday”, ”tuesday”,”Wednesdat”,”Thursday”, ”Friday”,”Saturday”;char weekday 10=“Sunday”,”Monday”, ”tuesday”, ”Wednesdat”, ”Thursday”, ”Friday”, ”Saturday”;u 字符数组的输入和输出:按c格式一个字符一个字符地单独输入/输出 :%c (需要用到循环结构)按s格式符将字符串作为一个整体输入/输出 :%s char str10; scanf(“%s”, str); printf(“%s”, str);字符数组名本身代表该数组存放的字符串的首地址,故用scanf的s格式输入字符串时,字符数组名的前面不能再加取地址运算符,其后也不需要用方括号指明下标。 输入字符串时应确保输入的字符串长度不超过数组所能容纳的空间大小。 空格、回车或跳格符(Tab)作为按s格式输入字符串的分隔符,因而不能被读入,输入遇到这些字符时,系统认为字符串输入结束。 u 用字符串处理函数gets()或puts()输入/输出一个字符串 。u 字符串处理函数。 <string.h> 字符串复制 strcpy(字符数组1,字符串2);例
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论