C++语言程序设计-复习资料

合集下载

C程序设计复习资料含复习资料

C程序设计复习资料含复习资料

C程序设计复习资料含复习资料一、C 语言基础1、数据类型C 语言中有多种数据类型,包括整型(int)、浮点型(float、double)、字符型(char)等。

了解不同数据类型的取值范围和存储方式是编程的基础。

例如,整型可以分为短整型(short int)、整型(int)和长整型(long int),它们的存储空间和取值范围各不相同。

2、变量和常量变量用于存储程序运行过程中可以改变的值,常量则是固定不变的值。

在 C 语言中,变量需要先声明后使用,常量可以用宏定义或者使用关键字 const 来定义。

3、运算符和表达式C 语言中的运算符包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)等。

掌握这些运算符的优先级和结合性,能够正确编写表达式。

例如,表达式 a = 5 + 3 2 的计算结果是 11,因为乘法运算符的优先级高于加法运算符。

4、控制结构(1)顺序结构:程序按照语句的先后顺序依次执行。

(2)选择结构:包括 ifelse 语句和 switch 语句,用于根据不同的条件执行不同的代码块。

(3)循环结构:有 for 循环、while 循环和 dowhile 循环,用于重复执行一段代码。

二、数组和指针1、数组数组是一组相同类型的变量的集合,可以通过下标来访问数组中的元素。

例如,定义一个整型数组 int arr5 ={1, 2, 3, 4, 5},可以通过 arr0来访问第一个元素 1。

2、指针指针是 C 语言中非常重要的概念,它是一个变量,用于存储另一个变量的地址。

通过指针可以间接访问变量的值,并且能够实现动态内存分配。

例如,int p; 定义了一个指向整型的指针 p,通过 p =&a; 可以将指针 p 指向变量 a 的地址,然后通过 p 来访问变量 a 的值。

三、函数1、函数的定义和调用函数是一段独立的代码块,用于完成特定的任务。

函数可以有返回值,也可以没有返回值。

C语言程序设计期末复习

C语言程序设计期末复习

②doudb!le=
float
f &&
int
(i+1)
int
③dou4b.0le
int
*i
char
+ c double
【14】 A) double, double, double (或float)
B) int, double, char
✓C) int, int, double (或float) D) unsigned, unsigned, int
② 其他可打印(可显示)的字符,如汉字等自然语言 符号(作为字符串的内容)
[注意] C/C++语言是区分大小的语言 !
(详见P377 附录B)
8
zxl.xmu.2014
关键字
关键字/保留字 —— C语言程序中有特殊含义 的英文单词,主要用于构成语句、定义存储类 型和数据类型。
✓ C语言中仅有37个关键字
else continue;
printf("%4d",n); }
break; 仅输出: 100 }
输出【:131】00A1)01fo1r0(3n=1100401;0(n6%1037)&…&…n<=200; n++) printf("%4d",n); B) for (n=100; (n%3)||n<=2仅00输; n出++:) p1ri0n0tf1("0%1 4d",n);
非法字符举例:M.D.John,$123,1AB,d e
11
zxl@xmu
运算符(共34种,详见P378《附录D》)
• 目/元——运算时所需运算对象(操 作数)的个数。

国家开放大学《C语言程序设计》复习资料

国家开放大学《C语言程序设计》复习资料

7.在一维数组的定义语句中,数组名前为元素类型关键字。(√) 8.假定二维数组的定义语句为 “double a[M][NJ;" ,则每个数组元素的列下标取值范围在 0-N-i 之间。 (√) 9.一个二维字符数组 a[10][20 」中存储每个字符串的最大长度为 190(√) 10.假定 a 是一个一维数组,则表达式, (a+i) 所对应的元素为 a[i-1],(×) 11.进行动态存储分配的。alloc() 函数带有两个参数。(√) 12.对于标识为 static 属性的变量,若没有对它进行初始化,则默认的初值为 10(×) 13.在 C 语言中一个结构类型的长度等于所含的所有数据成员类型的长度之和。(√) 14.在结构成员访问运算符中,点运算符和箭头运算符的左边均为结构变量。(×) 15.当向字符文件输出一个换行符时,实际将输出的是回车符或换行符。(×) 16.在 C 语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。( √ ) 17.一个 C 语言程序能够包含多个用户头文件。( √ ) 18.在定义一个变量时,不能够同时给它赋初值。( × ) 19. 表达式 (int)14.6%5 的值为 40 ( √) 20.若 x=5 , y=10 ,则 x>y 逻辑值为真。( × ) 21.当循环次数确定时, while 循环语句能够转换为 for 循环语句。( √ ) 22.在一维数组的定义语句中,数组名后带有一对中括号。( √ ) 23.在二维数组的定义语句中,不能给数组中每个元素赋初值。( × ) 24.对于一个长度为 n 的字符串,存储它的字符数组的长度至少为 no ( × ) 25.假定一个数据对象为 int *类型,则指向该对象的指针类型为 int *祷。( √ ) 26.进行动态存储分配的 malloc( )函数带有两个参数。( × ) 27.函数定义格式中的参数表被称为实参表。( × ) 28.在同一个结构类型的定义中,各数据成员名必须不同。( √ ) 29.在结构成员访问运算符中,点运算符(.)为双目运算符。( √ ) 30. 在一个磁盘数据文件的文件名中,文件主名和扩展名都是必须的,不可省略。( × ) 31.在 C 语言程序中,只有一种使用注释语句的方法。( × ) 32.常数 3. 26 是双精度定点数。( √ ) 33. 表达式(f!oat)25/4 的值为 6 0 ( × ) 34. 已知 x= 一 25 ,则 fabsCx) 的值为一 25.0 0 ( × ) 35.while 循环是先判断循环条件,当条件为真时执行循环体。( √ ) 36.在一维数组的定义语句中,数组名后带有一对中括号。( √ ) 37.字符串允许为空,并且其长度为 0 0 ( √ ) 38. 一个二维字符数组 a[10][20] 中存储每个字符串的最大长度为 20 0 ( × ) 39.假定 a 是一个一维数组,则进行 a++ 运算是不允许的。 ( √ ) 40.在一个函数定义中,函数体是一条简单语句。 ( × ) 41,在 C 语言程序中,对于递归函数和非递归函数,其函数头部有区别标志。 ( × ) 42.在结构类型的定义中,结构类型的作用域范围,与它的定义位置有关。( √ ) 43.在结构成员访问运算符中,点运算符和箭头运算符的左边均为结构指针变量。 ( × ) 44.在一个磁盘数据文件的文件名中,文件主名是必须的,扩展名可任选使用。( √ ) 45. 对二进制文件进行读和写操作将使用不同的系统函数。( √ )

《C语言程序设计》专题复习资料

《C语言程序设计》专题复习资料

7、编写一个程序,将用户输入的十进制整数转换成
十六进制数。

8、编写程序,把一个65---91之间的数据看成是字
符的ASCII码,输出对应的字符。

(用Do循环语句编写,且字符之间用空格分开)
9、输入一个英文句子,它仅包含单词与空格,试把其中的每一个单词的第一个字母设置为大写,其余字母设置为小写,输出结果。

(用数组编程)
10、
11、
12、
13、
14、
15、
16、
17
18、
19、
20、
21、
第二部分参考答案
参考资料:[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》
[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》
[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》
[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》
[1]程朔鹰等人民邮电出版社《C语言程序设计习题集》。

(完整版)C语言程序设计+复习题库

(完整版)C语言程序设计+复习题库

(完整版)C语言程序设计+复习题库一、填空1.break语句通常用于switch // 循环中。

2. C 语言对数组下标的引用一般从0 开始。

3. C 语言中,一个函数一般由两个部分组成,它们是函数首部和函数体。

4.C标准库函数中,字符串的处理函数包含在string.h 头文件中,数学函数包含在math.h头文件中。

5.C程序的运行需要经过编译和链接两步进行。

6.C程序中用/**/ 括起来的内容是程序的注释语句。

7.C语言函数是由函数首部和函数体两部分组成。

其中,函数首部包括函数类型、函数名和函数参数。

8.C语言提供的三种逻辑运算符是&,//,!。

9.C语言源程序经过编译后,生成文件的后缀名是 .c 。

10.C语言源程序经过连接后,生成文件的后缀名是 .exe 。

11.C语言中,关系表达式和逻辑表达式的值是1//0 。

12.C语言中的标识符只能由三种字符组成,他们是字母,数字,下划线。

13.C语言中的每条基本语句以;作为结束符,每条复合语句以}作为结束符。

14.C语言中函数返回值的类型是由函数类型决定的。

15.C源程序的基本单位是函数。

16.int a = 2, b = 3; 表达式a > b ? a ++ : ++ b的值为 4 。

17.int x=1,y=1,z=1; x+=y+=z; 则表达式x18.当a=3,b=2,c=1时,表达式f=a>b>c的值是0 。

19.定义一个指针p,它指向一个有6个整型元素的一维数组,定义语句为int *p=a[6] ; 。

20.定义一个指针数组p,它有4个元素,每个指针指向一个整型数据,定义语句为int*p[4]; 。

21.赋值语句是由= 加上一个分号构成。

22.构成数组的各个元素必须具有相同的类型。

23.关系表达式x+y>5的相反表达式为x+y!>5 。

24.函数strlen("1234\0xy")的值为:9 。

C语言复习提纲(全)

C语言复习提纲(全)

C语言复习提纲:第一章 C语言程序设计概述一、Visual C++6.0开发环境1、了解Visual C++6.0的安装过程;2、了解Visual C++6.0的工作界面,菜单和工具栏的使用;▲二、掌握C语言程序运行的过程1、编辑:是指把按照C语法规则编写的程序代码通过编辑器(Visual C++ 6.0,Turbo C 3.0)输入计算机,并存盘。

在存盘时,C源文件的扩展名为 .c2、编译:将C语言源程序编译成目标程序,即对源程序进行编译,并将源程序转换为扩展名为.obj的二进制目标代码(即把已经编辑好的源程序翻译成二进制目标代码的过程)。

3、连接:将用户程序生成的目标代码文件(.obj)和系统提供的库文件(.lib)中的某些代码连接在一起,生成一个可执行文件(.exe)。

4、执行:执行生成的可执行代码,并输出结果。

5、调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。

▲三、结构化程序设计的基本概念1、概念以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,将原来较为复杂的问题化简为一系列简单模块的设计,任何模块都可以使用一些基本的结构来实现,任何复杂的程序,都可以使用这些基本结构按一定的顺序组合起来,这些基本结构的特点都是只有一个入口、一个出口,这样的程序设计方法称为结构化程序设计。

2、基本思想结构化程序设计的基本思想是采用"自顶向下,逐步细化、模块化设计、结构化编码"的程序设计方法和"单入口单出口"的控制结构。

3、三种基本结构⑴顺序结构⑵选择结构⑶循环结构4、三种基本结构的特点⑴只有一个入口⑵只有一个出口⑶每一个基本结构中的每一部分都有机会执行到⑷结构内不存在“死循环”5、设计原则⑴自顶向下⑶逐步细化⑶模块化设计⑷结构化编码▲四、C程序的基本组成:C程序是由若干个函数构成的,至少有一个主函数main(),main()的位置可以任意,其他各函数在程序中的前后位置也是可以任意的。

c语言程序与设计基础知识试题及答案

c语言程序与设计基础知识试题及答案

c语言程序与设计基础知识试题及答案一、单项选择题(每题2分,共20分)1. C语言中,用于定义结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是C语言中的合法整型常量?A. 0x12B. 0123C. 0.12ED. 12e答案:A3. 在C语言中,用于定义数组的关键字是:A. arrayB. listC. vectorD. none of the above答案:D4. 下列哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B5. C语言中,用于文件操作的库函数是:A. stdio.hB. string.hC. math.hD. stdlib.h答案:A6. 下列关于指针的描述,错误的是:A. 指针可以存储变量的地址B. 指针可以存储一个值C. 指针可以作为函数的参数D. 指针可以作为函数的返回值答案:B7. 在C语言中,用于定义函数的关键字是:A. functionB. defineC. defD. void答案:D8. 下列哪个选项不是C语言中的控制结构?A. if-elseB. switch-caseC. forD. goto答案:D9. 下列哪个选项是C语言中的合法变量名?A. 2variableB. variable2C. variable_2D. all of the above答案:D10. C语言中,用于定义枚举类型的关键字是:A. enumB. typedefC. structD. union答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义一个名为“person”的结构体,包含姓名和年龄两个成员,正确的定义方式是:struct person { char name[50];int age; }。

答案:正确2. 在C语言中,使用________函数可以输出格式化的字符串到控制台。

C程序设计复习资料(含答案)

C程序设计复习资料(含答案)

C程序设计复习要点第一章概述1.C程序的构成与结构特点2.C程序上机调试过程与流程第二章数据类型、运算量与表达式1.数据类型的种类(基本数据类型和构造数据类型)2.常量的数据类型及其表示(表示方法、存储字节数与表数范围)——整、实、字符、字符串和转义字符3.变量的命名、定义方法与赋初值4.各种表达式及其运算规则——优先级、结合性、类型自动转换与强制转换●算术运算符、表达式及其构造(注意“/”和“%”特殊性)●自增、自减运算符及其简单表达式运算●赋值运算符及其表达式(注意复合赋值运算符的运算方法)●逗号运算符及其表达式第三章流程控制1.赋值语句的一般形式、赋值过程及赋值规则(注意左右数据类型的一致或兼容)2.输入和输出函数的格式、功能及用法(只要求常用的格式控制符d, f, c, s),提醒注意:●格式输出中域宽和小数位数的控制●格式输入与输出中普通字符的原样输入和输出问题●熟悉并区别以下函数:putchar()、printf()、puts();getchar()、scanf()、gets()3.关系运算符及其表达式、逻辑运算符及其表达式和条件运算符及其表达式的运算规则(优先级、结合性)4.关系表达式与逻辑表达式的构造(根据已知条件写表达式)5.if语句的三种形式:if …语句、if …else …语句、if 语句的嵌套●if 语句的格式与用法:简单if、嵌套if、并列if●逻辑关系与执行过程●嵌套规则(重点掌握if …else …if …else …if …else)6.switch语句的格式与用法7.*熟练使用if和switch语句阅读和编写较为简单的选择结构程序8.三种循环语句:while() …、do …while()、for()的格式、执行过程及其用法●循环变量初始化、循环条件构造、循环体所要实现的任务和控制变量修改注意循环期间与结束时循环控制变量的取值问题9.结合例题理解和区别break与continue语句的作用及其用法10.本章涉及的主要算法:累加(计数)、累乘、递推、穷举、判素数、求最大公约与最小公倍等11.*熟练使用三种循环语句并结合以上算法阅读和编写较为简单的循环结构及其嵌套程序第四章复杂数据类型1.一维、二维数组的定义、初始化及其引用方法(数据输入、输出、存储与处理)2.字符数组的定义、初始化及其引用(字符串输入、输出、存储与处理)3.常用字符串处理函数:gets()、puts()、strlen()、strcmp()、strcpy()4.数组涉及的主要算法:排序、极值、逆序、回文和字符串的连接、复制、求长度等5.*熟练使用数组并结合以上算法阅读和编写较为简单的程序6.指针的概念:指针、指针变量、指针运算(*、&、++、--、+、-)7.变量、数组和字符串指针的定义、指向与引用(仅限于一维数组)8.了解指针数组与二级指针的概念和定义9.*能够阅读并理解使用指针进行数据处理的相关程序(极值、逆序、回文和字符串的连接、复制、求长度等)10.结构体与共用体的概念、定义与引用(仅限概念)第五章结构化程序设计与应用1.熟悉程序的三种基本结构:顺序、选择和循环2.*通过其中部分例题掌握选择、循环语句的使用以及循环和数组涉及的主要算法第六章函数与编译预处理1.掌握函数的定义、声明和调用方法及参数传递方式2.*结合相关例题掌握一般函数和递归函数的定义与使用3.熟悉局部变量与全局变量的定义及作用范围,了解各种静态与动态变量的定义、作用范围与生存期4.了解内部函数与外部函数的定义及调用规则5.掌握宏定义与宏展开(重点掌握带参数宏的定义与展开)6.了解文件包含的作用及其使用场合第七章文件1.了解文件的概念2.熟悉文件打开、关闭及各种与文件读写有关函数的格式与用法特别提醒:以上带*部分主要涉及程序阅读、程序填空和编写程序,其余部分主要以选择和概念填空题出现3ae bc C语言程序设计参考题型说明:★本题仅反映考试的题型,作为考前复习参考。

c语言程序设计(复习资料)

c语言程序设计(复习资料)

c语言程序设计(复习资料)总共50题共100分一、单选题(共20题,共40分)1. 假定一个二维数组的定义语句为“int a[3][4]={{3,4,{2,8,6;”,则元素a[2][1]的值为()。

(2分)A.0B.4C.6D.8★标准答案:A2. 以下说法中正确的是()。

(2分)A.C++程序总是从第一个定义的函数开始执行B.C++程序总是从main函数开始执行C.C++函数必须有返回值,否则不能使用函数D.C++程序中有调用关系的所有函数必须放在同一个程序文件中★标准答案:B3. 在下面循环语句中循环体执行的次数为()。

int i=0,s=0; while(s<20) {i++; s+=i; (2分)A.4B.5C.6D.7★标准答案:C4. 虚函数的定义是在基类中进行的,定义时需要冠以关键字(2分)A.staticB.frendC.virtualD.public★标准答案:C5. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。

(2分)A.内联函数B.重载函数C.递归函数D.函数模板★标准答案:A6. 设x和y均为bool量,则x || y为假的条件是( )。

(2分)A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假★标准答案:C7. 若数组名作实参而指针变量作形参,函数调用时实参传给形参的是(2分)A.数组的长度B.数组第一个元素的值C.数组所有元素的值D.数组第一个元素的地址★标准答案:D8. 字符串”a+b=12\n”的长度为()。

(2分)A.6B.7C.8D.9★标准答案:C9. 程序中主函数的名字为()。

(2分)A.mainB.MAINC.MainD.任意标识符★标准答案:A10. 假定下列x和y均为int型变量,则不正确的赋值为()。

(2分)A.x+=y++B.x++=y++C.x=++yD.++x=++y★标准答案:B11. do语句能够改写为()语句。

C语言程序设计期末考试复习题及答案

C语言程序设计期末考试复习题及答案

C语言考试期末考试复习题及答案一、选择题(2) 设int x=3,y=4,z=5,则下列表达式中的值为0的是 ( D )A) ‘x’&&’y’B) x||y+z&&y-z C) x<=yD) !((x<y)&&!z||1)(3) 执行以下程序段后,i的值是 ( C )int i=10;switch(i+1){ case 10: i++; break;case 11: ++i;case 12: ++i; break;default : i=i+1;}A) 11 B) 13 C) 12 D) 14(4) 语句while(!e);中的条件!e等价于 ( A )A) e==0 B)e!=1 C) e!=0 D) 运行时出错(5) 用 int a[4]={1,2}; 对数组进行初始化后,数组元素a[3]的值是 ( B )A) 随机值B) 0 C) 1 D) F(6) 在执行char str[10]=“china\0”; strlen(str)的结果是 ( A )A)5 B) 6 D) 7 D 9(7) 若有定义,char *p=”computer”; 则语句printf(“%c”,*(p+2))运行结果是 ( B )A) 随机值B) m C)o D) omputer(8) 在以下函数调用语句中fun1(x,10,(x,10),fun2(y,10,(y,10)));函数fun1参数的个数为 ( B )A) 8 B) 4C) 5 D) 编译出错(9) 在说明一个结构体变量时系统分配给它的存储空间是( D )A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和3. 以下定义语句中正确的是( C )A)char a='A'b='B'; float a=b=10.0;C)int a=10,*b=&a; D)float *a,b=&a;4.下列选项中,不能用作标识符的是( D )A)_1234_ B)_1_2 C) int_2_ D)2_int_5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则( B )A)称为函数的直接递归调用 B)称为函数的间接递归调用C)称为函数的循环调用 D)C语言中不允许这样的递归调用6.以下叙述中正确的是 ( A )A)局部变量说明为static存储类,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B)A)for(i=1,p=1;i<=5;i++) p*=i;B)for(i=1;i<=5;i++){ p=1; p*=i;}C)i=1;p=1;while(i<=5){p*=i; i++;}D)i=1;p=1;do{p*=i; i++; }while(i<=5);8.有以下程序(a)main(){ char a='a',b;printf("%c,",++a);printf("%c\n",b=a++);}程序运行后的输出结果是a)b,b B)b,c C)a,b D)a,c9.有以下函数定义:(c)void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是A) fun(int y,double m); B)k=fun(10,12.5) C)fun(x,n); D)void fun(n,x)10.已定义c为字符型变量,则下列语句中正确的是(c)A)c='97'; B)c="97"; C)c=97; D)c="a";11.以下能正确定义一维数组的选项是(b)A)int num[]; B) #define N 100 C)int num[0..100]; D) int N=100;int num[N]; int num[N];12.以下能正确定义数组并正确赋初值的语句是(d)A)int N=5,b[N][N]; B)int a[1][2]={{1},{3}};C)int c[2][]= {{1,2},{3,4}}; D)int d[3][2]={{1,2},{34}};13.有以下程序(a)main(){ int i;for (i=0; i<3; i++)switch (i){ case 1: printf("%d ", i);case 2: printf("%d ", i);default : printf("%d ", i); }}执行后输出结果是A)011122 B)012 C)012020 D)12014.有以下程序(d)main(){ int p[7]={11,13,14,15,16,17,18}, i=0,k=0;while(i<7 && p[i]%2) { k =k+ p[i]; i++; }printf("%d\n", k);}执行后输出结果是A)58 B)56 C)45 D)2415.以下叙述中正确的是(c)A)C语言比其他语言高级 B)C语言可以不用编译就能被计算机识别执行C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D)C语言出现的最晚,具有其他语言的一切优点16.下列叙述中正确的是(d)A)C语言中既有逻辑类型也有集合类型B)C语言中没有逻辑类型但有集合类型C)C语言中有逻辑类型但没有集合类型D)C语言中既没有逻辑类型也没有集合类型17.以下叙述中正确的是(a)A)C程序中注释部分可以出现在程序中任意合适的地方B)花括号"{"和"}"只能作为函数体的定界符C)构成C程序的基本单位是函数,所有函数名都可以由用户命名D)分号是C语句之间的分隔符,不是语句的一部分二)阅读程序,写出程序运行结果(1) #include<stdio.h>main(){ char ch=’A’;ch=(ch>=’A’&& ch<=’Z’)?(ch+32):ch;printf(“%c”,ch);}程序的运行结果是:(2) #include<stdio.h>main( ){ int sum=0,i=11;while (i<=10){sum=sum+i;i++;}printf(“%d”,sum);}程序的运行结果是:(3) #include<stdio.h>main(){ char str[ ]=”1a2b3c”;int i;for(i=0;str[i]!=’\0’;i++)if (str[i]>=’0’ && str[i]<=’9’) printf(“%c”,str[i]);}程序的运行结果是:(4) main(){ int a,b;a=5;b=8;p(a+b,a);}p(int x,int y){y=x+y;printf(“%d %d”,x,y);}程序的运行结果是:(5) #include<stdio.h>void main(){ int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};int j,s=1;for(j=0;j<=2;j++)s=s*a[j][j];printf("%d",s);}程序的运行结果是:Key: (1) a (2) 0 (3) 123 (4) 5 13 13 18 (5) 45 三)改错题(每个程序只有一个错误,填入错误语句所在的行号以及修改后的语句)(1)下段程序的功能是先输入一个整数,然后将输入的整数输出。

《C语言程序设计》复习题库(1)

《C语言程序设计》复习题库(1)

复习题库
当n=5时
93.有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它
插入到数组中。

94.将一个数组中的值按逆序重新存放。

例如,原来顺序为8,6,5,4,1。

要求
改为1,4,5,6,8
95.编程先输入某班10个学生某门课的成绩(成绩均为float型数据),
对全班10个学生成绩进行由高到低排序,并打印输出排序结果。

96.从键盘任意输入某班10个学生的成绩,输出最高分并统计出不及格
人数。

97.写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的
信息
98.编写函数实现两个整型变量值的交换。

99.用递归调用的方法求n!,要求n由用户输入。

100.从键盘任意输入10个整数并放入一个数组,用函数编程实现将其中最大数与最小数的位置对换后,再输出调整后的数组。

101.写一个函数,使给定的一个3X3的二维整形数组转置,即行列互换102.写一个函数,将两个字符串连接
103.写一个函数,使输入的一个字符串按反序存放。

104.输入两个实数,用一个函数求出它们之和。

105.有一个一维数组score,内放10个学生成绩,写一个函数求平均成绩。

106.输出所得水仙花数,所谓水仙花数是指一个数3位数,其各各位数字立方和等于其本身, 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5。

C语言程序设计复习资料

C语言程序设计复习资料

C语言程序设计复习资料C语言程序设计复习资料一、选择题(常识概念)1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer 代表的是( B )。

A 存放读入数据项的存储区B 存放读入数据的地址或指向此地址的指针C 一个指向所读文件的文件指针D 一个整形变量,代表要读入的数据项总数2.以下程序的输出结果为( C )。

void main( ){int i=010, j=10;printf("%d, %d\n", i++, j--);}A 11, 9B 9, 10C 8, 10D 9, 93、下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是( D )A、*pxB、aC、&aD、px4.设i和k都是int类型,则for循环语句( D )。

for(i=0, k=-1; k=1; i++, k++)printf("****\n");A 循环结束的条件不合法B 循环体一次也不执行C 循环体只执行一次D 是无限循环5.以下程序的输出结果为( D )。

main( ){char c;int i;for(i=65; i<68; i++){c=i+32;switch(c){case 'a':case 'b':case 'c': printf("%c,",c); break;default: printf("end");}}}A a, b, c, endB a, a, a, endC a, a, a,D a, b, c,6、若用数组名作为函数调用的实参,传递给形参的是( C )A、数组第一个元素的值B、数组中全部元素的值C、数组的首地址D、数组元素个数7、下面定义语句中,错误的是( B )A、int a[ ]={1, 2};B、char *a[ ];C、char s[10]=“BASI”;D、int n=5,a[n];8、下面程序main(){int x, y, z;x = 2;y = x++;z = ++x;printf(“%d \t %d \t %d\n”, x, y, z); }运行后输出的数据是( A )A、4 2 4B、4 2 2C、2 4 4D、4 4 49、下列程序main(){ int x;int *p1, *p2;x = 10;p1 = &xp2 = p1;printf(“%d \t %d\n”,*p1,*p2);}运行后输出的数据是( A )A、10 10B、10 0D、0 1010、下列程序:#include”stdio.h”struct entry{ int datd;int *ip;};main(){ int i;struct entry v;v.ip = &iv.data = 100;*v.ip = 50;printf(“%d %d %d\n”, v.data, *v.ip, i));}运行后输出的数据是( A )A、100 50 50B、100 50 0C、50 50 50D、50 50 011、下列数据中,为字符串常量的是( C )A、‘M’B、‘$you’C、”hello”D、basic12、若y为int 型变量,则执行以下语句后,y的值是( C )y=8;y+=y-=y*y;A、64B、-56D、-4813.设a为int型变量,执行下列赋值语句后,a的取值分别是( B )。

C程序设计复习资料知识点总结C语言

C程序设计复习资料知识点总结C语言

C程序设计知识点都懂了;一定过第1章 C语言概述1.1.C语言属高级语言;区分字母的大小写;以函数为基本单位采用模块化程序设计;可直接访问内存;进而对硬件进行操作..1.2.用C语言编写和程序称作C源程序;简称C程序;C程序可由若干个文本文件组成;文件扩展名为C使用C++编译器时默认扩展名为CPP..C源程序经编译、连接后得到扩展名为EXE的可执行文件目标程序..预处理编译、连接执行若干个C程序文件----→C程序------→目标程序文件--→1.3.C程序从主函数开始执行;每个C程序有且仅有一个主函数;因此;每个C程序文件中至多有一个主函数..1.4.C语句以分号结尾;用{}括起来的一组语句称作复合语句;复合语句可省略花括号之后的分号..1.5.允许一行内写多个C语句;也允许一个C语句占用多行;但保留字和标识符不可拆行..1.6.在C集成环境VC++ 6.0中;新建工程、保存当前程序文件、编译当前程序、执行当前程序的快捷键依次为:Ctrl+N、Ctrl+S、F7、Ctrl+F5..第2章 程序设计的灵魂——算法2.1. 解决问题的方法和步骤称作算法..算法和数据结构是程序的两个主要要素.. 2.2. 算法具有确定性、有穷性、有效性等特点..2.3. 算法可用自然语言、流程图、N-S 图、计算机语言、伪代码等描述..伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法..2.4. 算法的基本结构分为:顺序结构、选择结构、循环结构..↓↓↓↓←- --Y ┌ 条件 ┐N 条件 ┐N││││条件┘Y--- ← ┘ ↓N图2.2 顺序结构 图2.3 选择结构 图2.4 当循环 图2.5 直到循环图直到循环2.5.由三种基本结构组成的程序称作结构化程序;结构化程序中的每个模块只有一个入口和一个出口..结构化程序设计通常采用“自顶向下、逐步细化”的设计方法..第3章数据类型、运算符与表达式3.1.C的数据类型如下所示:表3.1 C语言的数据类型3.2.字母或下划线开头;由字母、数字、下划线组成;超出32个字符部分被忽略最好不超过8个字符..3.3.以0开头的整数为八进制整数;以0X或0x开头的整数为十六进制无符号整数..3.4.-32768~32767为int型;0U~65535U为unsignedunsigned long型;-~-32769、32768~和-L~L为long型..后缀U和L不区分大小写和次序..3.5.数据的存储字节数可用运算符sizeof查询;括号内可是数据、表达式或类型名..3.6.有符号整数int和long3.7.定点数含小数点数和浮点数统称C实型常量;浮点数的一般形式为:尾数e除码或尾数E除码其含义为:尾数×10除码其中;尾数为定点数或整数;除码为整数..标准浮点数的小数点在第1位非0数字之后..后缀L或l的实型常量为长双精度;无后缀实型常量为双精度..3.8.用一对单引号括起来的单个字符称作C字符常量;其值为该字符的ASCII码1字节无符号整数..3.9.转义字符'\n'、'\t'、'\\'、'\''、'\"'分别表示回车符、制表符、反斜杠、单引号、双引号..3.10.转义字符'\整数'、'\x整数'或'\X整数'中的整数分别为八进制、十六进制;表示以此整数为ASCII码的字符..3.11.用双引号括起来的一串字符称作C字符串型常量;串中字符数称作串长;可以为0..字符串的存储形式为:依次存储字符串中字符的ASCII码;并追加一个空字符'\0'1字节无符号整数0..3.12.字符型、整型、实型数据统称数值型数据;不同类型的数值型数据可以混合运算;低精度数据被自动强制转换为高精度数据后方参与运算..另外;字符常量为有符号短整数;两个字符型数据间的运算按有符号短整数处理..3.13.如果将数值型数据赋给不同类型的数值型变量;则数值型数据将被自动强制转换为变量的数据类型..3.14.C允许定义变量的同时赋初值..3.15.C运算符及其优先级、结合性如附录C教材第365页所示..3.16.强制数据类型转换的一般形式为:类型名数据3.17.自增++、自减--运算只能作用于变量;作用于右侧时;返回变量自增、自减前的值..3.18.赋值表达式的格式为:变量=表达式或变量op=表达式其中;op为运算符 +、-、、/、%、>>、<<、&、^、| 中某一个..前者将右边表达式的值赋给左边的变量;后者将左边变量的当前值与右边表达式的值作相应运算后仍赋给左边的变量..整个赋值表达式取左边变量所赋的新值..3.19.用逗号分隔的一组表达式称作逗号表达式;其一般形式为:表达式; 表达式; …; 表达式其功能为:从左至右依次计算各表达式的值;并以最后一个表达式的值为整个逗号表达式的值..3.20.将数学式改为C表达式时应注意:(1)乘号不可省略;(2)正确改写脚码、运算符、括号等;(3)正确书写函数名;(4)把握好运算优先级;分数线改为/时;分子、分母相应加括号;(5)正确拆分不等式组;(6)区分整数除法和实数除法..第4章顺序结构程序设计4.1.表达式后缀分号称作表达式语句;即;表达式;4.2.putchar、getchar、printf、scanf等输入输出函数的原型在头文件stdio.h中..4.3.函数putchar和getchar的格式和功能如下:(1)putchar格式:putchar表达式功能:向标准输出设备输出以指定表达式的值为ASCII码的字符;并以该值为函数值自动强制转换为int型..(2)getchar格式:getchar功能:从标准输入设备输入一个字符;并以该字符为函数值..注意:getchar可提取空格及回车、Tab等部分控制字符;而且只提取输入中相应位置上的一个字符;因此;输入字符间无须分隔;否则也被视为输入字符..4.4.printf函数的格式和功能如下:格式:printf格式控制串; 输出表列功能:(1)从右至左依次计算输出表列中各表达式的值;(2)从左至右依次输出格式控制串中的字符;其中;%引导的格式控制符由输出表列中相应表达式的值所取代..输出表列是一组用逗号分隔的表达式又称输出项;可以为0项..格式控制串为字符串型数据可以是表达式..其中;格式符用于控制输出表列中相应表达式的输出格式..格式符及其功能如下表所示:表4.1 printf格式字符4.5.格式:scanf格式控制串; 地址表列其中;格式控制串为字符串型数据可以是表达式;地址表列是一组用逗号分隔的地址..功能:(1)右至左依次计算地址表列中各表达式的值;(2)从标准输入设备提取数据;并从左至右依次存储到所指定的存储单元..(3)地址表列中的地址可用表达式表示;通常形式为:&变量其中&是地址运算符;它表示取其后变量的存储起始地址..说明:(1)scanf函数格式符与printf函数的格式符的功能相似..scanf的合法格式符不区分大小写、实型格式符均等效;另外;表4.2 scanf的附加格式符说明(2)符;且被跳过;这为指定数据间分隔符提供了方便..(3)printf和scanf格式控制串中的每对%%从左至右结合按一个普通字符%对待..第5章选择结构程序设计5.1.C逻辑值为短整数int;真、假分别为1、0..另外;字符、数、指针作为逻辑量时;非0、非空为真即1;0、空为假即0..逻辑运算如下表所示:表5.1 逻辑运算真值表5.2.□||□||…的逻辑式;从左至右计算□的逻辑值;遇到真则提前终止..5.3.对于形如□&&□&&…的逻辑式;从左至右计算□的逻辑值;遇到假则提前终止..5.4.算术、关系、逻辑运算的优先级参见附录C教材第365页..5.5.if语句的格式和功能如下:(1)格式一:if条件语句功能:如果条件成立;方执行语句..(2)格式二:if条件语句1 else 语句2功能如果条件成立;执行语句1;否则执行语句2..注意:else不可独立使用;它与其前最近一个尚未配对的if配对;为避免歧义;通常只在else中嵌套if语句..5.6.条件表达式的格式和功能如下:格式:条件表达式1:表达式2功能:如果条件成立;取表达式1的值;否则取表达式2的值..说明:条件表达式可以嵌套;与其前最近一个尚未配对的if配对..5.7.switch语句的格式和功能如下:格式:switch表达式{…case 常量i: 语句组i…default: 语句组n+1}功能:如果表达式的值等于常量i;则从语句组i开始执行;否则执行语句组n+1..说明:(1)“表达式”的值和“常量”为整型包括字符型..(2)switch中的每个语句组称作一个分支;为使各分支独立;通常以break、return、exit等语句结尾..另外;“default: 语句组n+1”可以缺省..5.8.break语句的格式和功能如下:格式:break;功能:结束本层switch语句或本层循环语句..说明:break语句只能用于switch语句和循环..第6章循环结构程序设计6.1.while语句的格式和功能如下:格式:while表达式循环体功能:当表达式的值为真时;重复执行其后循环体..说明:循环体是循环语句的内嵌语句;可以是空或复合语句下同..6.2.do-while语句的格式和功能如下:格式:do 循环体 while表达式功能:重复执行循环体;直到表达式的值为假..说明:do-while循环至少执行一次循环体..6.3.for语句的格式和功能如下:格式:for表达式1; 表达式2; 表达式3 循环体功能:(1)计算表达式1;(2)当表达式2的值为真时;重复执行循环体和计算表达式3..说明:表达式1、表达式2、表达式3均可缺省;但保留分号..6.4.continue语句的格式和功能如下:格式:continue;功能:跳过循环体中其后程序段结束本次循环..说明:continue语句只能用于循环..6.5.掌握以下算法:累加、阶乘、判断素数、分解整数数字、递推数列、打印字符图形..第7章数组7.1.同一类型数据的序列称作数组;数组中数据用相应下标变量访问;因此;数组亦可视为由下标变量组成的序列..7.2.定义数组语句的一般格式和功能为:格式:数据类型名数组名第1维长度…第n维长度功能:为数组分配连续内存单元;用于存储数组中的下标变量低维优先;并将起始地址又称基址赋给数组名..说明:数组长度只能为整型常量或整型常量表达式..7.3.数组的要素有:数据类型、数组名、维数及各维的长度..各维的长度必须是常量;可用常量表达式表示;其值的整数位有效——截断取整..7.4.下标变量的格式为:数组名第1维下标…第n维下标7.5.下标从0开始;可用表达式表示;其值的整数位有效..下标最大值比长度小1..7.6.下标变量的使用与普通变量相同..7.7.定义数组的同时可对数组中的下标变量赋初值..格式:数据类型名数组名第1维长度…第n维长度={数据表}功能:定义数组的同时将数据表中数据依次赋给数组中下标变量;未赋值下标变量的初值为相应数据类型的0..说明:数据表中的数据必须是常量;可用表达式表示..第1维长度可省略;如果省略;其长度由数据表和其它维长度确定——存储所需的最小长度..7.8.以字符为数据元素的数组称作字符数组;它由一组字符型下标变量组成..除赋值外;字符数组名的使用与字符串变量相似..字符数组也可用字符串初始化..7.9.标准函数库提供许多用于处理字符串的函数..表7.1 常用字符串处理函数后的字符..7.10.掌握冒泡排序..第8章函数8.1.自定义函数的格式为:函数值类型函数名带类型声明的形参表列{函数体}8.2.函数值的默认数据类型为int..8.3.如果函数有返回值;则用return语句返回;其格式为:return 表达式; 或 return表达式;8.4.如果函数无返回值;即函数值类型为void;亦可用格式:return;结束本函数并返回调用者..8.5.函数一般调用格式为:函数名实参表列其中;实参表列为一组逗号分隔的表达式..实参按从右至左的次序计算并传递给相应形参..8.6.如果函数调用在其定义之前;调用前应作相应声明;声明格式为:函数值类型名函数名形参及其类型声明表列;其中;形参可省略..8.7.函数不可嵌套定义;但允许嵌套调用;亦可直接或间接调用自身称作递归函数..8.8.递归函数的函数体的一般格式为:B班同学不作要求if递归条件语句1 /递归时;如何递归/else 语句2 /非递归时;如何处理/或if递归条件语句1 /非递归时;如何处理/else 语句2 /递归时;如何递归/8.9.形参及函数内定义的变量称作局部变量;它从定义处生效;且只在该函数内有效..因此;不同函数中的局部变量可以同名;但同名不同义..8.10.在所有函数之外定义的变量称作全局变量;它从定义处生效..8.11.如果局部变量与全局变量同名;则同名全局变量被屏蔽..8.12.局部变量的存储方式分为:自动auto;默认、静态static、寄存器register..8.13.存储方式和数据类型是变量的两个重要属性;必须在定义变量时一并声明;关键字的排列顺序没有限制..变量的默认数据类型为int;默认存储方式为auto;但关键字auto和int不可同时缺省..8.14.auto型局部变量占用动态数据区;当函数调用结束时释放所占内存..register占用CPU中的寄存器;但寄存器不够用时;占用动态数据区..8.15.全局变量和static型局部变量占用静态数据区;默认初值为相应数据类型的0..8.16.static型局部变量的声明和初始化只执行一次..8.17.如果全局变量被声明为static型;则其它程序文件不能使用该全局变量..否则;其它程序文件也可使用该全局变量;但使用前应作extern声明..8.18.被声明为static型的函数;只在本程序文件中有效;不能被其它程序文件调用..否则;其它程序文件也可调用此函数;但调用前应作extern声明..8.19.常用数学函数在头文件math.h中..掌握基本初等函数..第9章预处理命令9.1.预处理命令在程序编译前执行;其主要功能是“文本置换”..9.2.不带参数宏定义的格式和功能如下:格式:define 宏名文本功能:在预处理时;将程序中宏名用相应的文本置换..9.3.带参数宏定义的格式和功能如下:格式:define 宏名形参表列文本功能:在预处理时;将程序中带参数的宏用相应的文本置换;且文本中的形参被相应的实参所置换..注意:形参无须且做类型声明..9.4.终止宏定义的格式如下:格式 undef 宏名9.5.宏定义可以引用已有的宏;亦可重新定义所代表的文本..9.6.预处理命令无须以分号结尾;否则分号也参与置换..9.7.include命令的格式和功能如下:格式一:include "文件名"格式二:include <文件名>功能:在预处理时;用指定文件置换本命令——加载文件..置换后;被包含文件成为本文件的一部分;其函数、全局变量等均可在本文件中直接使用;无须作extern声明..前一种格式先在当前目录中找指定文件;如果未找到;方到存放C头文件的目录中查找..后一种格式直接到存放C头文件的目录中查找指定文件..9.8.条件编译命令的格式和功能如下:格式一:ifdef 宏名程序段1 else 程序段2 endif功能:在预处理时;如果指定的宏名已定义;则用程序段1置换本命令;否则用程序段2置换本命令..当程序段2为空时;else可省略下同..格式二:ifndef 宏名程序段1 else 程序段2 endif功能:在预处理时;如果指定的宏名未定义;则用程序段1置换本命令;否则用程序段2置换本命令..格式三:if 常量表达式程序段1 else 程序段2 endif功能:在预处理时;如果指定常量表达式的值为真非0;则用程序段1置换本命令;否则用程序段2置换本命令..9.9.注释命令在预处理时被删除;不影响源程序和目标程序..注释命令的格式如下:/注释内容/第10章指针10.1.内存的基本单位是字节;每个字节都有相应的编号;称作地址或指针..借助于指针;C语言可以直接访问内存;从而对硬件进行操作..10.2.变量所占用内存的大小由其数据类型决定;变量所占用内存的第1个字节的地址称作该变量的地址或指针;表为:&变量名10.3.指针所指向数据的类型称作该指针的基类型;它所指向数据用指针访问;可作为普通变量使用..10.4.指针本身也是一种数据类型;占用2字节内存;可作为无符号整数输出和参与关系运算、逻辑运算;但指针的其它运算不同于整数运算..10.5.指针运算可简单地分为以下五类:(1)单目运算有六个:、&、、++、--、sizeof..(2)双目运算有四种:-、关系运算、逻辑运算、赋值运算..(3)指针与整数间的运算有三个:+、-、 ..(4)强制类型转换运算: ..(5)结构体成员运算:->..其中;+、-、++、--、+=、-=均以基类型数据为基本单位..10.6.一维数组的数组名可作为指针调用;它指向数组中的第一个元素;以数组中元素的类型为基类型..数组名的值不可修改;且sizeof数组名的值为整个数组所占内存的字节数..10.7.对于一维数组来说;基址+i 和 &基址i均指向数组中的第i+1个元素i>=0;基址+i 和基址i均表示数组中的第i+1个元素i>=0..10.8.n维数组可看作是以n-1维数组为元素的一维数组;数组名可看作是指向数组中的第一个n-1维数组的指针..10.9.下标变量可作为实参;但不可作为形参;实际上;它被误认为指针..10.10.※ C源程序经编译后;系统为源程序中的每个函数均分配一个入口地址;称作函数指针..在C源程序中;函数指针用函数名表示;其值不可修改..以函数指针为值的变量称作函数指针变量;其定义格式为:函数类型名函数指针变量名 ;可用下述格式代替函数名:函数指针10.11.※1函数返回值可以是指针;定义函数的一般格式为:基类型函数名形参列表{函数体}10.12.不允许将非0数直接赋给指针变量;须做强制转换..当指针变量的值为0时;称之为空指针..10.13.※以指针为元素的数组称作指针数组..10.14.※以指针为基类型的指针称作指向指针的指针;以指向指针的指针为值的变量称作指向指针的指针变量;其定义格式为:存储方式关键字基类型名指向指针的指针变量名10.15.※ C源程序经编译、连接所得目标程序exe文件可作为DOS外部命令使用;命令行的一般式为:路径\目标程序文件名参数1 参数2 …参数n10.16.※ C主函数main可带两个形参;前者为int型;用于接收命令行中字符串个数;后者为字符串指针数组;用于接收命令行中各字符串..带参主函数的格式为:void mainint 形参1;char 形参2 {函数体}其中;形参1=参数个数+1形参20="路径\目标程序文件名"形参2i="参数i";i=1;2;…;n1标注※表示此部分为非考试内容。

《C语言程序设计》复习题

《C语言程序设计》复习题

《C语言程序设计》复习题一、判断题(本大题共60个小题)1.C程序执行的入口是main()函数,所以main函数必须放在程序的开头。

(B)2.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。

(B)3.注释内容太多会影响程序的执行效率。

(B)4.变量要“先定义,后使用”。

(A)5.字符常量'a'与字符串常量"a"没有区别。

(B)6.数学公式y=-6xz+5[2(a-5)+3]写成C语言表达式是y=-6*x*z+5*[2*(a-5)+3]。

(B)7.数学公式y=|x|+ab-c写成C语言表达式是y=fabs(x)+a*b-c。

(A)8.表达式5/2+5.0/2+7%6 的值为5.5。

(A)9.设int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/2*(int)(a+c)/2)%4 的值为:4.5。

(B)10.设int a=12; 则表达式a/=a+a的值是0.5。

(B)11.在C语言中,运算符!比&&的优先级高。

(A)12.在C语言中,运算符的优先级最小的是逗号运算符。

(A)13.scanf("%d,%d",&x,&y);的输入格式:3,4<回车>。

(A)14.以下程序运行结果是:1,7,0 (A)void main(){int x=1,y=1,z=10;if(z< 0)if(y> 0) x=3;else x=5;printf(" %d," ,x);if(z=y< 0) x=3;else if(y==0) x=5;else x=7;printf(" %d,%d" ,x,z);}15.该程序运行结果是:BCother (A)void main(){ char x=‘B’;switch(x){case ‘A’: printf(“A”);case ‘B’: printf(“B”);case ‘C’: printf(“C”);default: printf(“other”);}}16.下面程序段运行时输出结果是a=2,b=8 (B)void main(){int x=1,y=1,a=2,b=7;switch(x){case 1: switch(y){ case 0: a++;break;case 1: b++;break;}case 2: a++;b++;break;case 3: a++;b++;}printf("a=%d,b=%d\n",a,b);}17.下面程序,当输入为:"abc?" 时,执行结果是:abc (A)void main(){ char c;c=getchar();while (c!='?' ) { putchar(c); c=getchar();}}18.该程序运行结果是:< > < > < > # (A)void main(){ int i;for(i=1;i<=5;i++){if(i%2) putchar(‘<’);else continue;putchar(‘>’);}putchar(‘#’);}19.break语句可用于循环语句和if语句中。

c语言程序设计复习题

c语言程序设计复习题

《C语言程序设计》复习题一、单项选择题1.C语言中用于结构化程序设计的三种基本结构是()(A)顺序结构、选择结构和循环结构(B)if、switch 、break(C)for、while、do-while(D)if 、for、continue2.下列说法正确的是()(A)程序的运行可以从任何函数开始(B)符号常量的值,在程序运行中,可随程序的运行而不断发生变化(C)数组中各元素的值可以由互不相同(D)字符串与字符数组是有区别的3.下列各组中不全是字符常量的是()(A)…A‟, “b” , …2‟ (B) …+‟, …\101‟ , …f‟(C ) ...6‟ , ...\n‟, ...x‟ (D) ...3‟ , ...$‟ , (x41)4.下列各组中不全是合法的变量名的是()(A)day , lotus_1 _2_3 ,x1 (B) Abc, _above , basic(C ) M.John , year , sum (D) YEAR, MONTH, DAY5.下列选项中,不能用作标识符的是()。

(A)_1234 (B) _1_2 (C) int_2_ (D) 2_int_6.以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是()(A)a=a+b=b++ (B) w%(int)a+b) (C) (C+W)%(int)a (D) w=a= = b;7.以下选项中属于C语言的数据类型的是()(A)复数型(B)逻辑型(C)双精度型(D)集合型8.下列常量中不能作为C的常量的是()(A)0xa5 (B) 2.5e-2 (C) 3e2 (D) 05829.C语言中,数字029是一个()(A)八进制数(B)十六进制数(C)十进制数(D)非法数10.下列可以正确表示字符型常数的是()(A)“a” (B) …\t‟ (C) “\n” (D) 29711.字符串“\\22a,0\n” 的长度是()(A)8 (B)7 (C)6 (D)512.要判断char型变量m是否是数字字符,下面正确的表达式是()(A)0<=m && m<=9 (B) …0‟<=m && m<=‟9‟(C) “0”<=m && m<= “9” (D) 以上答案均不正确13.下列关于函数说法正确的是()(A)标准库函数在使用时需要声明(B)用户自定义函数在任何情况下都需要声明(C)用户自定义函数如果出现在调用函数之前需要声明(D)用户自定义函数如果出现在调用函数之后需要声明14.在C语言中,函数返回值的数据类型取决于()(A)函数的名字(B)return语句中表达式的数据类型(C)在定义该函数时所指定的数据类型(D)主调函数的数据类型15.设x,y分别为单精度和双精度类型变量,则下列选项()可将表达式x+y的运算结果强制转换为整型数据。

C语言程序设计重点知识

C语言程序设计重点知识

C语⾔程序设计重点知识第⼀章 C语⾔概述1、C程序的组成和形式的基本特点(P6-7)(1)C程序是由函数构成的,⼀个C源程序⾄少且仅包含⼀个main函数,也可以包含⼀个main函数和若⼲个其他函数。

(2)⼀个函数由两部分组成①函数的⾸部:即函数的第⼀⾏,包括函数名、函数类型、函数属性、函数参数名、参数类型例:int max (int x, int y)⼀个函数名后⾯必须跟⼀对圆括号,括号内写函数的参数名及其类型。

函数可以没有参数,如main()。

②函数体:即函数⾸部下⾯的花括号内的部分。

如果⼀个函数内有多个花括号,则最外层的⼀对花括号为函数体的范围。

函数体⼀般包括:声明部分、执⾏部分2、运⾏C程序的步骤及每个步骤⽣成⽂件的类型及特点(P7)3、第⼆章算法1、算法的定义⼀个程序应包括①数据结构即对数据的描述;②算法也就是操作步骤。

计算机算法可分为两⼤类:数值运算算法和⾮数值运算算法。

2、算法的特性(P19)1.有穷性;2.确定性;3.有零个或多个输⼊;4.有⼀个或多个输出;5.有效性。

3、描述算法的常⽤⽅法(P20-33)1.⾃然语⾔;2.⽤流程图表⽰算法。

3.N—S图4.计算机语⾔5.伪代码4、C程序算法的3种基本结构及其共同特点(P24-25)三种基本结构:1.顺序结构:最基本;2.选择结构:⼜称选取结构或分⽀结构;3.循环结构:⼜称重复结构;①当(while)型循环;②直到(until)型循环。

共同特点:1. 只有⼀个⼊⼝;2. 只有⼀个出⼝;3. 结构内的每⼀部分都有机会被执⾏到;4. 结构内不存在?死循环?。

5、结构化程序设计的设计原则(P34)1.⾃顶向下;2. 逐步细化;3. 模块化设计;4. 结构化编码。

第三章数据类型、运算符与表达式1、C 语⾔的基本数据类型和构造数据类型(P37)在程序中对⽤到所有数据都必须制定其数据类型。

数据有常量和变量之分,它们分别属于以上这些类型。

2、字⾯常量和符号常量(P37-38)在程序运⾏过程中,其值不能被改变的量称为常量,常量区分为整型常量和实型常量,常量⼀般从其字⾯形式即可判别,这种常量称为字⾯常量或者直接常量。

c语言程序设计期末复习题库

c语言程序设计期末复习题库

第二章基本数据类型及运算一、选择题1. 若以下选项中的变量已正确定义,则正确的赋值语句是。

A) x1=26.8%3; B) 1+2=x2; C) x3=0x12; D) x4=1+2=3;答案:C2. 设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是。

A) x=x*100+0.5/100.0 B) x=(x*100+0.5)/100.0C) x=(int)(x*100+0.5)/100.0 D) x=(x/100+0.5)*100.0答案:C3. 下列C语言中运算对象必须是整型的运算符是。

A) %= B) / C) = D) *=答案:A4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是。

A) 0 B) 0.5 C) 1 D) 2答案:A5. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是。

A) 把x和y按从大到小排列 B) 把x和y按从小到大排列C) 无确定结果 D) 交换x和y中的值答案:D6. 下列变量定义中合法的是。

A)short_a=1-.le-1; B)double b=1+5e2.5;C)long do=0xfdaL; D)float 2_and=1-e-3;答案:A7. 以下4个选项中,不能被看作是一条语句的是。

A) {;} B) a=0,b=0,c=0;C) if (a>0); D) if (b==0)m=1;n=2;答案:D8. 设x=1,y=-1,下列表达式中解为8的是。

A)x&y B)~x│x C)x^x D)x<<=3答案:D9. 在C语言中不合法的整数是。

A)20 B)0x4001 C)08 D)0x12ed答案: C10. 以下选项中不正确的实型常量是A)2.607E-1 B)0.8103e0.2 C)-77.77 D)456e –2答案:B)11.若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7 B)a=7+b+c,a++C)int(12.3%4) D)a=a+7=c+b答案:B)12.以下十六进制数中不合法的是A)oxff B)0Xabc C)0x11 D)0x19答案:A)13. 设int i=2,j=3,k=4,a=4,b=5,c=3;,则执行表达式(a=i<j)&&(b=j>k)&&(c=i,j,k)后,c值是。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科《C++语言程序设计》期末复习模拟训练题一、单选题1.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为(A)。

A. mainB. MAINC. nameD. function 2.设x和y均为bool量,则x && y为真的条件是(D)。

A. 其中一个为假B. 其中一个为真C. 它们均为假D. 它们均为真3. 逻辑表达式x>0 || y==5的相反表达式为(B)。

A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==54. 假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大(C)个字节。

A. 1B. 2C. 4D. 85. 枚举类型中的每个枚举常量的值都是一个(A)。

A. 整数B. 浮点数C. 字符D. 逻辑值6. 循环体至少被执行一次的语句为(C)语句。

A. for循环B. while循环C. do循环D. 任一种循环7. 在下面的字符数组定义中,(D)语句有语法错误。

A. char a[20]=”abcdefg”;B. char a[]=”x+y=55.”;C. char a[15]={’1’,’2’};D. char a[10]=’5’;8. 若用数组名作为函数调用的实参,传递给形参的是(A)。

A. 数组的首地址B. 数组中第一个元素的值C. 数组全部元素的值D. 数组元素的个数9.假定AB为一个类,则执行“AB a(4), b[5], *p[2];”语句时,自动调用该类构造函数的次数为(A)。

A. 6B. 7C. 9D. 1110.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为(D)。

A. ios::inB. ios::outC. ios::in | ios::outD. 没有11. 枚举类型中的每个枚举常量的值都是一个(A)值。

A. 整数B. 浮点数C. 字符D. 逻辑12.设x和y均为bool量,则逻辑表达式x || y为假的条件是(C)。

A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假13. 声明或定义一个内联函数时,必须在函数开始使用保留字(D)。

A. staticB. constC. externD. inline14. 在下面的函数声明中,存在着语法错误的是(D)。

A. BC(int a, int);B. BC(int, int);C. BC(int, int=5);D. BC(int x; int y);15. 假定a为一个整型数组名,则元素a[4]与(C)的表示等价。

A. a+4B. *a+4C. *(a+4)D. *(a+16)16. 下面循环语句执行结束后输出的i值为(B)的值。

for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;}A. n/2B. n/2+1C. n-1D. n17. 将两个字符串连接起来组成一个字符串时,选用(C)函数。

A. strlen()B. strcpy()C. strcat()D. strcmp()18. 预处理命令在程序中都是以(B)字符开头的。

A. *B. #C. &D. @19. 假定有定义“struct BOOK{char title[40]; float price;};”,则不正确的变量定义语句为(D)。

A. BOOK x;B. BOOK x={"C++ Programming",27.0};C. BOOK *x=new BOOK;D. BOOK x=new BOOK;20. 假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“delete []px;”语句时,自动调用该类析构函数的次数为(B)。

A. 1B. nC. n-1D. n+121. 由C++源程序文件编译而成的目标文件的缺省扩展名为(A)。

A. objB. likC. exeD. cpp22. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用(D)符号作为分隔符。

A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车23. 设x是一个bool型的逻辑量,y的值为10,则表达式 x && y 的值为(C)。

A. 1B. 0C. 与x值相同D. 与x值相反24. for语句能够被改写为(D)语句。

A. 复合B. ifC. switchD. while25. 在下面的do循环语句中,其循环体被执行的次数为(A)。

int i=0; do i++; while(i*i<10);A. 4B. 3C. 5D. 226. 在下面的一维数组定义中,(C)语句有语法错误。

A. int a[]={1,2,3};B. int a[10]={0};C. int a[];D. int a[5];27. 下面的(C)保留字不能作为函数的返回类型。

A. voidB. intC. newD. long28. 下面的函数声明中,(B)是“void BC(int a, int b);”的重载函数。

A. int BC(int x, int y);B. void BC(int a, char b);C. float BC(int a, int b, int c=0);D. int BC(int a, int b=0);29. 当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为(C)。

A. nB. n+1C. n-1D. n-230. 假定AB为一个类,则该类的拷贝构造函数的声明语句为(D)。

A. AB&(AB x);B. AB(AB x);C. AB(AB* x);D. AB(AB&);31. C++程序的基本功能模块为(D)。

A. 表达式B. 标识符C. 语句D. 函数32. 存储以下数据,占用存储字节最多的是(A)。

A. 0B. ’0’C. ”0”D. ’\n’33. 在下面的一维数组定义中,有语法错误的是(C)。

A. int a[]={1,2,3};B. int a[10]={0};C. int a[];D. int a[5];34. 在下面的语句或语句组中,(B)不正确。

A. int a[5];B. int M=10; int a[M];C. int a[]={1,5,10,45};D. const int N=12; int a[N]; 35.C++语言中的每条简单语句以(B)作为结束符。

A. 逗号B. 分号C. 空格D. 换行符36. 含随机函数的表达式rand()%20的值在(C)区间内。

A. 1~19B. 1~20C. 0~19D. 0~2037. 当处理一个特定的问题时,若循环次数已知,则通常采用(A)来解决。

A. for循环B. while循环C. do循环D. switch语句38. 在下面循环语句中内层循环体S语句的执行总次数为(D)。

for(int i=0; i<n; i++)for(int j=i; j<n; j++) S;A. n2B.(n+1)/2C. n(n-1)/2D. n(n+1)/239. 若函数声明为double* function(), 则该函数的返回值为(B)。

A. 实数型B. 实数指针型C. 函数指针型D. 数组型40. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为(B)。

A. int p=&m;B. int *p=&m;C. int &p=*m;D. int *p=m;二、填空题1.C++语言中的每条基本语句以 ; 作为结束符,每条复合语句以 } 作为结束符。

2.用于输出表达式值的标准输出流对象是cout ,用于从键盘上为变量输入值的标准入流对象是 cin 。

3.当不需要函数返回任何值时,则应把该函数类型定义为 void 。

4.执行“cout<<143<<’+’<<18<<’=’<<143+18<<endl;”语句后得到的输出结果为 143+18=161 。

5.执行“cout<<“ning”<<“chen”<<38<<endl;”语句后得到的输出结果为ningchen 38。

6.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为 main 。

7.C++源程序文件的缺省扩展名为 .cpp ,由C++源程序文件编译而成的目标文件的缺省扩展名为 .obj ,由C++目标文件连接而成的可执行文件的缺省扩展名为 .exe 。

8.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用空格或 , 符号作为分隔符。

9.十进制数25表示成符号C++语言规则的八进制和十六进制数分别为031和0x19符号。

10.在C++语言中,用转义字符序列’\n’ 或’\12’ 或’\x0a’ 或操纵符endl 表示输出一个换行符。

11.执行“cout<<char(’b’+2)<<endl;”语句后得到的输出结果为 d 。

12.执行“cout<<char(’K’-3)<<endl;”语句后得到的输出结果为 H 。

13.已知’A’~’Z’的ASCII码为65~90,当执行“int x=’H’+5;”语句后x的值为 77 。

14.已知’A’~’Z’的ASCII码为65~90,当执行“char ch=16*5+2;cout<<ch<<endl;语句序列后,得到的输出结果为 R 。

15.假定一个枚举类型的定义为“enum RA{xa,xb,xc,xd};”,则执行“cout<<”xc=”<<xc<<endl;”语句得到的输出结果为 xc=2 。

16.假定一个枚举类型的定义为“enum RB{ab,ac=3,ad,ae}x=ad;”则x的值为 4 。

17.Char、short和int类型的大小分别为 1B 、2B 和 4B 。

18.float和double类型的大小分别为 4B 和 8B 。

19.十进制数128和-3.26的类型分别为 int 和 double 。

20.若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始用保留字 const 。

21.使用const语句定义一个标识符常量时,则必须对它同时进行初始化。

相关文档
最新文档