当前位置:文档之家› 程序设计基础期末复习汇总

程序设计基础期末复习汇总

《程序设计基础》期末复习考试题型和分值。

一、单选题(20小题,每题2分)二、填空题(共20题,计20分)三、编程填空题(给出程序的输出结果,共5题,14分)四、读程序题(补充程序,共2小题,,共26分)程序练习:1. 输出1~10之间所有的偶数和它们的平方。

2. 输出所有的水仙花数。

3. 从键盘输入一行字符,统计其中有多少个单词。

假设单词之间是以空格分开。

4. 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。

5. 编写程序,要求在main函数接受一个整型变量,将其作为参数传入IsPrime 函数中,IsPrime函数根据传入的值确定返回值,如果<2,返回0;如果不是素数,返回1;如果是素数,返回2。

主函数根据返回值输出相应的提示信息:输入不合法,不是素数,是素数。

6.编写程序:给学生出一道加法运算题,然后判断学生输入的答案对错与否。

通过输入两个加数给学生出一道加法运算题,如果输入答案正确,则显示“Right!”,否则提示重做,显示“Not correct! Try again!”,重复要求输入答案,直到输入结果正确,程序结束。

要求:用Add函数来进行两个整数的加法运算;用Print函数判断输入的答案正确与否;用main函数输入两个相加的数和学生的答案,然后调用Add函数和Print函数判进行判断和显示输出。

7. 利用指针编写两个整数交换的函数。

8. 从10个元素的数组中找出最大值和最小值,并记录最大值和最小值对应的元素的下标位置。

9. 给定10个数,按照要求进行排序并输出排序的结果。

程序设计ABC1. 程序运行的方式分为哪两种?(编译运行和解释运行)2 .什么叫编译器,其功能是什么?(把程序设计语言转换成目标代码的软件称为编译器)数据类型、运算符与表达式1.C程序的特点?◆函数是C程序的基本单位。

一个C程序有且仅有一个main函数(主函数),总是从main函数开始执行,在main函数中结束,与其位置无关;◆函数由函数头和函数体组成◆C程序的书写格式:C语句都以分号结束;允许一行多句,但最好一行一句并按照锯齿形(缩进式)书写,提高可读性和可测试性;适当使用注释(注释中的语句不参与编译,不能发现其中的拼写错误)。

2. C语言标识符的命名规则,会判断哪些是合法的哪些不合法。

3. 如何判断表达式的数据类型?(取高精度的)4. 常量:程序运行过程中其值不变的量。

◆实型常量的表示。

分为十进制小数(123.45、-0.5、.98、18. 均合法)和指数形式(1e-2、4.5e3 、3.e2 、.8e-5 均合法,e3、2e3.5、.e3不合法)。

◆字符常量的表示。

除了转义字符外单引号中仅有一个字符(X ’X’“X”‘XY’)、转义字符。

(‘\n’表示一个字符) (P23)5. 字符串常量。

双引号。

(注意与字符常量的区别)6. 宏常量。

如何声明一个宏常量?例如:#define PI 3.14159#define A(x) 3*x*x -2printf(“%d”, A(1+3)); 结果?7. 变量:程序运行过程中其值可以改变的量。

◆变量的声明与初始化。

遵循“先定义、后使用”。

◆变量名由用户定义的标识符。

◆变量的属性:变量名、变量类型、变量的值、变量的存储单元——地址◆使用变量注意的问题8. 常用运算符及表达式。

◆不能给表达式赋值。

例如:x+y=3◆优先级和结合性。

算术运算符。

(1)两个整数相除结果为整数。

6/4=1◆(2)有一个操作数为实数,结果为double型。

6./4=1.5 (3)求余运算的两个操作数必须为整数。

◆将算术表达式转换为C语言表达式。

(常见错误P34)例如:3 < x < 4”或”x < -5◆关系运算符。

>,>=,<,<=,==,!= (关系运算符运算出的结果为0和非0)(常见错误见P35)◆逻辑运算符。

逻辑运算符两侧的运算对象可以是任意合法的表达式。

&&(同真为真,否则为假。

)、|| (有一个为真结果为真,同假为假)! (a 的值不变)例如:判断是否为字母;例如:当a=1,b=2,c=3,x=4,y=3 时!b<a && a != c || x+y <=3 的值?语句while(!E)中的条件!E等价条件是:E==0◆会将自然语言翻译成逻辑、关系表达式。

例如:收入(income)大于5000并且小于10000◆赋值运算符。

左边只能是变量。

复合运算符,例如:n *= m + 2◆三目运算符:w < x ? w : y◆增量(++)和减量(――)运算符。

注意前置和后置运算:若单独一个增量或减量运算符,则相当于执行加1或减1操作,若用在复合语句中就有区别。

m = n++;m = ++n ;printf(“%d”,++n);printf(“%d”,n++);9. 类型转换。

不会自动进行四舍五入;将取值范围小的类型转为范围大的类型是安全的。

反之是不安全的。

◆注意表达式赋值后的类型转换例如:int x1 = 1, x2 = 2, x3 =3;x3 = 1.0/x2*x1; 结果是什么类型?简单的C程序设计1.表达式和表达式语句的区别。

2.字符输入/输出。

字符输出函数putchar(ch):向终端显示屏幕输出一个字符ch。

字符输入函数getchar(),使用格式:变量=getchar()功能:从键盘输入一个字符,按回车表示输入结束,函数值为从输入设备接收的字符。

3.格式输入/输出。

◆scanf:不要忘记&符号;多个变量输入值之间的符号;特别要注意类型的匹配;忽略修饰符等。

(具体见书)◆printf:注意类型匹配;域宽、精度等。

(具体见书-3)4.要能够判断程序的错误。

(如变量、常量的声明、输入输出格式等问题)。

程序的控制结构1.什么是算法?什么是程序?算法的五个特性是什么?◆程序:是为解决某一问题而用特定的计算机语言编写的,用以指挥计算机完成预定功能的一系列计算机指令;◆算法是程序处理问题的步骤和方法;◆算法的特性:有穷性、确定性、有效性、没有输入或多个输入、有一个或多个输出。

(要清楚各个特性的含义)2.程序的三种基本结构。

3.逻辑运算符和关系运算符的使用。

4.选择结构。

◆if形式、if …else…形式、if…else…嵌套形式、switch多路开关(特别注意括号的使用、else与if配对问题、关系判断使用==、浮点数不能进行==比较。

)◆使用条件语句应注意以下问题:▪是否需要包含相等的情况。

▪表达相当的关系使用的是==,不要把if(a==b) 写成if(a=b)。

例如:int x = 2, y=3, z = 4;if( x = y)printf(“%d\n”,z);elseprintf(“%d\n”,y);▪对于float变量,由于存在精度问题,所以要避免使用“==”或“!=”进行数字比较。

可以设法转换成“>=”或“<=”形式。

▪语句嵌套结构中if 与else的配对!▪if和else 配对原则:缺省{ }时,else总是和它上面离它最近的未配对的if配对。

▪实现if ~ else 正确配对方法:加{ }。

◆switch多路开关:switch(表达式){case 常量1:}▪表达式需为整型、字符型或枚举型。

▪各常量表达式的值必须互不相同;▪需用break跳出;▪case后可包含多个可执行语句,且不必加{ };▪switch可嵌套,多个case可共用一组执行语句;▪default可以省略,但建议使用。

例如:i=0;while(i < 3){switch(i){case 0: printf(“%d”,i);case 2: printf(“%d”,i);default: printf(“%d”,i);}i++;}4. 循环结构。

◆循环的三种形式以及语法。

◆循环的要素:循环入口、重复执行的内容、循环测试、终止条件、循环退出。

◆注意:▪在for和while语句之后一般没有分号,do-while的while后必须有分号。

▪循环体有多条语句必须用{ }括起来。

▪有分号表示循环体就是分号之前的内容(空循环体)▪while (i < 100);i++;▪for (i = 0; i < 100; i++); for(i = 1; i < 5; i += 2)printf("%d", i); printf("%d", i);▪选择循环的一般原则如果循环次数已知,用for;如果循环次数未知,用while;如果循环体至少要执行一次,用do-while。

◆循环的嵌套:外层、内层循环的次数。

例如:main(){int i, x = 0;for (i = 2; i < 5; i++){do{if ( i%3)continue;x++;}while( !i);x++;}printf(“x=%d\n”,x);}◆流程的转移控制:◆break语句:可以用在switch结构中,终止当前case;可以用在循环结构中,退出当前所在的循环。

◆continue语句:用于循环结构中,中断此次循环体的执行,也就是停止continue语句后面的内容,开始下一次。

第三章函数1. 熟悉一些简单的数学库函数。

2. 函数的定义。

◆函数定义的语法。

◆“函数名”是函数的唯一标识,其命名规则与命名雷同。

◆函数不能嵌套定义,可以嵌套调用。

◆函数头和函数体之间不能有分号。

3. 函数原型,也叫函数声明。

◆函数原型就是不带函数体的函数声明;◆函数原型就是函数头加分号;◆函数原型必须放在调用者之前,通常放在main函数之前;◆函数原型和函数定义中的函数返回类型、函数名和形参数表(形参的个数、类型、位置)必须完全一致,否则,编译器会报告有编译错误。

4. 函数参数。

◆形参:子函数(被调函数)内部准备接受数据的参数叫形参。

形参必须指定类型。

形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放。

◆实参:调用者提供的参数叫实参,实参是实际参与运算的数据。

实参必须有确定的值。

5. 函数调用。

◆调用函数将实参的值传给(赋值)被调函数的形参,此时实参和形参就有各自的存储空间,所以形参值的变化不会影响实参。

◆函数调用时,调用者提供的参数个数、类型、顺序应与子函数声明、定义时相同。

◆有返回值调用。

放到一个数值表达式中,如c = max(a, b);作为另一个函数调用的参数,如c = max( max(a,b) ,c);printf("%d\n", max(a,b) );例如:int fun(int n){return (n/3);}main(){int x,y;scanf(“%d”,&x);y = fun(fun(fun(x)));printf(“%d\n”,y); //结果:45}◆无返回值函数的调用函数调用表达式,单独一行使用,如display(a, b);◆函数的递归调用。

相关主题