CC语言期末复习含完整答案Word版.docx
- 文档编号:10492434
- 上传时间:2023-02-14
- 格式:DOCX
- 页数:39
- 大小:38.77KB
CC语言期末复习含完整答案Word版.docx
《CC语言期末复习含完整答案Word版.docx》由会员分享,可在线阅读,更多相关《CC语言期末复习含完整答案Word版.docx(39页珍藏版)》请在冰豆网上搜索。
CC语言期末复习含完整答案Word版
题型:
一、选择题:
1’×20
二、基础知识填空题:
1’×15
三、阅读程序题:
3’×6
四、完善程序题:
2’×10
五、程序改错题:
3’×4
六、编程题:
2题,共15分
注意:
(1)选择题答案:
每行5个,写清楚题号;
(2)完善程序题答题时请注明横线处的编号;
(3)改错题:
写出错误所在行号,并改正;
(4)用黑色水笔答题;
(5)带上有效证件。
一、选择题
1.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是C
A)C语言程序仅可以编译执行
B)C语言程序仅可以解释执行
C)C语言程序既可以编译执行又可以解释执行
D)以上说法都不对
2.以下叙述中错误的是D
A)C语言的可执行程序是由一系列机器指令构成的
B)用C语言编写的源程序不能直接在计算机上运行
C)通过编译得到的二进制目标程序需要连接才可以运行
D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件
3.以下叙述中错误的是。
C
A.C语言编写的函数源程序,其文件名后缀可以是.C
B.C语言编写的函数都可以作为一个独立的源程序文件
C.C语言编写的每个函数都可以进行独立的编译并执行
D.一个C语言程序只能有一个主函数
4.一个C语言程序是由()A
A.一个主程序和若干子程序组成B.函数组成
C.若干过程组成D.若干子程序组成
5.以下说法正确的是()C
C语言程序总是从第一个定义的函数开始执行
在C语言程序中,要调用的函数必须在main()函数中定义
C语言程序总是从main()函数开始执行
C语言程序中的main()函数必须放在程序的开始部分
6.以下关于C源程序的叙述中正确的是。
C
A.注释只能出现在程序的开始位置或语句后面
B.一行中不能写多条语句
C.一条语句可以分写在多行中
D.一个源程序只能保存在一个文件中
7.在一个C程序中,。
B
A.main函数必须出现在所有函数之前B.main函数可以在任何地方出现
C.main函数必须出现在所有函数之后D.main函数必须出现在固定位置
8.下列选项中可用作变量名的是__________A
A.CaseB.a-bC.$cdD.2ab
9.下列可用于C语言用户标识符的一组是B
A)void,define,WORDB)a3_3,_123,CarC)For,-abc,IFCaseD)2a,DO,sizeof
10.以下选项中关于C语言常量的叙述错误的是:
D
A.所谓常量,是指在程序运行过程中,其值不能被改变的量
B.常量分为整型常量、实型常量、字符常量和字符串常量
C.常量可分为数值型常量和非数值型常量
D.经常被使用的变量可定义成常量
11.以下4个选项中,不能看作一条语句的是 。
D
A.{;}B.a=0,b=0,c=0;
C.if(a>0);D.if(b==0)m=l;n=2;
12.以下选项中属于C语言的数据类型是()C
A.复数型B.逻辑型C.双精度型D.集合型
13.以下只有在使用时才为该类型变量分配内存的存储类说明是()B
A.auto和staticB.auto和register
C.register和staticD.extern和register
14.若有定义语句:
inta=10;doubleb=3.14;,则表达式‘A’+a+b值得类型是C
A.charB.intC.doubleD.float
15.以下选项中非法的表达式是 。
D
A.0<=x<100B.i=j==0C.(char)(65+3)D.x+1=x+1
16.已有声明“intx,a=3,b=2;”,则执行赋值语句“x=a>b++?
a++:
b++;”后,变量x、a、b的值分别为_____。
A
A.343B.334C.333D.434
17.已定义c为字符型变量,则下列语句中正确是 。
C
A.c='97';B.c="97";C.c=97;D.c="a";
18.设有如下定义:
inta=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:
(m=a>b)&&(n=c>d)后,n的值为。
B
A.1B.2C.3D.0
19.能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是。
D
A.a>=10ora<=0B.a>=0|a<=10
C.a>=10&&a<=0D.a>=10‖a<=0
20.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是。
C
A.num%2==1B.!
(num%2==0)C.!
(num%2)D.num%2
21.能正确表示a和b同时为正或同时为负的逻辑表达式是。
D
A.(a>=0‖b>=0)&&(a<0‖b<0)B.(a>=0&&b>=0)&&(a<0&&b<0)
C.(a+b>0)&&(a+b<=0)D.a*b>0
22.要判断char型变量m是否是数字,可以使用下列表达式()B
A.0<=m&&m<=9B.‘0’<=m&&m<=’9’
C.“0”<=m&&m<=”9”D.前面三个答案均是错误的
23.若有定义语句:
intk1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为B
A.0和1B.0和20C.10和1D.10和20
24.若有定义:
inta,b;通过语句scanf(“%d;%d”,&a,&b);能把整数3赋给变量a,5付给变量b的输入数据是C
A.35B.3,5C.3;5D.35
25.if语句的基本形式是:
if(表达式)语句,以下关于“表达式”值的叙述中正确的是D
A)必须是逻辑值B)必须是整数值
C)必须是正数D)可以是任意合法的数值
26.下列条件语句中输出结果与其他语句不同的是D
A.if(a)printf(“%d\n”,x);elseprintf(“%d\n”,y);
B.if(a==0)printf(“%d\n”,y);elseprintf(“%d\n”,x);
C.if(a!
=0)printf(“%d\n”,x);elseprintf(“%d\n”,y);
D.if(a==0)printf(“%d\n”,x);elseprintf(“%d\n”,y);
27.以下关于break和continue语句的叙述中正确的是_________。
B
A.break和continue语句都可以出现在switch语句中
B.break和continue语句都可以出现在循环语句的循环体中
C.在循环语句和switch语句之外允许出现break和continue语句
D.执行循环语句中的break或continue语句都将立即终止循环
28.下列的语句中()定义了一个能存储20个字符的数组C
A.inta[21];B.charb[20];C.charc[21];D.intd[20];
29.以下定义数组的语句中错误的是C
A.intnum[]={1,2,3,4,5,6};
B.intnum[][3]={{1,2},3,4,5,6};
C.intnum[2][4]={{1,2},{3,4},{5,6}};
D.intnum[][4]={1,2,3,4,5,6};
30.以下错误的定义语句是C
A)intx[][3]={{0},{1},{1,2,3}};B)intx[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};
C)intx[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};D)intx[][3]={1,2,3,4};
31.以下能正确定义一维数组的选项是B
A)inta[5]={0,1,2,3,4,5};B)chara[]={′0′,′1′,′2′,′3′,′4′,′5′,′\0′};
C)chara={′A′,′B′,′C′};D)inta[5]="0123";
32.C语言规定,函数返回值的类型是由()决定的。
D
A.return语句中的表达式类型B.调用该函数时的主调函数类型
C.调用该函数时由系统临时D.在定义函数时所指定的函数类型
33.若已经定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 26 。
D
A.函数调用可以作为独立的语句存在B.函数调用可以作为一个函数的实参
C.函数调用可以出现在表达式中D.函数调用可以作为一个函数的形参
34.若调用一个函数,且此函数中没有return语句,则正确的说法是 21 。
D
A.该函数没有返回值B.返回若干个系统默认值
C.能返回一个用户所希望的函数值D.返回一个不确定的值
35.以下关于C语言函数的叙述中,正确的是_____(29)_____。
B
A.在一个函数体中可以定义另一个函数,也可以调用其他函数
B.在一个函数体中可以调用另一个函数,但不能定义其他函数
C.在一个函数体中不可以调用另一个函数,也不能定义其他函数
D.在一个函数体中可以定义另一个函数,但不能调用其他函数
36.以下错误的描述是()D
A.不同函数中可以使用相同的变量名
B.形式参数是局部变量
C.一个函数内部定义的变量只能在本函数范围内有效
D.在一个函数内部的复合语句中定义的变量可以在本函数范围内有效
37.若有以下定义和语句:
doubler=99,*p=&r;*p=r;则以下正确的叙述是 。
D
A.以上两处的*p含义相同,都是给指针变量p赋值
B.在“doubler=99,*p=&r;”中,把r的地址赋值给了p所指的存储单元
C.语句“*p=r;”把变量r的值赋给指针变量p
D.语句“*p=r;”将变量r的值赋给p所指向的存储单元
38.若有定义语句:
doublea,*p=&a;以下叙述中错误的是A
A.定义语句中的*号是一个地址运算符
B.定义语句中的*号只是一个说明符
C.定义语句中的p只能存放double类型变量的地址
D.定义语句中,*p=&a把变量a的地址作为初值赋给指针变量p
39.变量的指针,其含义是指该变量的()A
A.地址B.值C.名D.一个标志
40.若定义语句:
intyear=2009,*p=&year;,以下不能使变量year中的值增至2010的语句是D
A.*p+=1;B.(*p)++;C.++(*p);D.*p++;
41.若有定义:
int*p[3];则以下叙述中正确的是 24 。
B
A.定义了一个基类型为int的指针变量p,该变量具有三个指针
B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int型的指针
C.定义了一个名为*p的整型数组,该数组含有三个int类型元素
D.定义了一个可指向一维数组的指针变量p,所指一维数组具有三个int类型元素
42.若有定义:
int(*p)[4];则标识符p()C
A.是一个指向整型变量的指针
B.是一个指针数组名
C.是一个指针,它指向一个含有四个整型元素的一维数组
D.定义不合法
43.说明语句”int(*p)();”的含义是()C
A.p是一个指向一维数组的指针变量
B.p是指针变量,指向一个整型数据
C.p是一个指向函数的指针,该函数的返回值是一个整型
D.以上都不对
44.当定义一个结构体变量时,系统分配给它的内存是()A
A.各成员所需内存量的总和B.结构体中第一个成员所需内存量
C.成员中占内存量最大的容量D.结构体中最后一个成员所需内存量
45.设有定义:
struct{charmark[12];intnum1;doublenum2;}t1,t2;,若变量均已正确赋初值,则以下语句中错误的是C
A)t1=t2;B)t2.num1=t1.num1;
C)t2.mark=t1.mark;D)t2.num2=t1.num2;
46.下面对typedef的叙述中不正确的是()B
A.用typedef可以定义多种类型名,但不能用来定义变量
B.用typedef可以增加新类型
C.用typedef只是将已存在的类型用一个新的标识符来代表
D.使用typedef有利于程序的通用和移植
47.设有以下说明语句
typedefstruct
{intn;
charch[8];
}PER;
则下面叙述中正确的是B
A)PER是结构体变量名B)PER是结构体类型名C)typedefstruct是结构体类型D)struct是结构体类型名
48.设有如下说明
typedefstruct{intn;charc;doublex;}STD;
则以下选项中,能正确定义结构体数组并赋初值的语句是 29 。
A
A.STDtt[2]={{1,'A',62},{2,'B',75}};
B.STDtt[2]={1,"A",62,2,"B",75};
C.structtt[2]={{1,'A'},{2,'B'}};
D.structtt[2]={{1,"A",62.5},{2,"B",75.0}};
49.若要说明一个类型名STP,使得定义语句STPs;等价于char*s;,以下选项中正确的是 28 。
D
A.typedefSTPchar*s;B.typedef*charSTP;
C.typedefSTP*char;D.typedefchar*STP;
50.C源程序中的命令#include与#define是在______阶段被处理的。
A
A.预处理B.编译C.连接D.执行
51.以下叙述中错误的是D
A)在程序中凡是以"#"开始的语句行都是预处理命令行
B)预处理命令行的最后不能以分号表示结束
C)#defineMAX是合法的宏定义命令行
D)C程序对预处理命令行的处理是在程序执行的过程中进行的
52.设有以下宏定义:
#defineW5
#defineLW+2
则执行赋值语句p=L*2;(p为int型变量)后,p的值为 22 。
D
A.6B.7C.8D.9
53.以下叙述中错误的是B
A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符
C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件
54.C语言中标准输入文件stdin是指()A
A.键盘B.显示器C.鼠标D.硬盘
55.下列函数中,可把整数以二进制形式存放到文件中的函数是 30 。
C
A.fprintf函数B.fread函数C.fwrite函数D.fputc函数
56.标准库函数fgets(buf,n,fp)的功能是 28 。
D
A.从fp所指向的文件中读取长度为n的字符串存入缓冲区buf
B.从fp所指向的文件中读取长度不超过n-1的字符串存入缓冲区buf
C.从fp所指向的文件中读取n个字符串存入缓冲区buf
D.从fp所指向的文件中读取长度为n-1的字符串存入缓冲区buf
57.面向对象程序设计将数据与放在一起,做为一个相互依存、不可分割的整体来处理。
A
A)对数据的操作B)信息C)数据隐藏D)数据抽象
58.不是面向对象程序设计的主要特点。
D
A)封装B)继承
C)多态D)结构
59.在C++中,关于下列设置参数默认值的描述中,正确的是。
C
A)不允许设置参数的默认值
B)设置参数默认值只能在定义函数时设置
C)设置参数默认值时,应该是先设置右边的再设置左边的
D)设置参数默认值时,应该设置全部参数
60.下列各类函数中,不是类的成员函数。
C
A)构造函数B)析构函数C)友元函数D)拷贝构造函数
61.下列有关C++类的构造函数的说法正确的是[10]。
A
A、可以重载,可有缺省参数,函数名与类名相同,不能有返回类型
B、函数体的定义必须位于类定义体中
C、不能重载,不能有返回类型
D、不可带参数
62.对于C++的类,C
A、只能有一个构造函数和一个析构函数B、可能有一个构造函数和多个析构函数
C、可能有多个构造函数和一个析构函数D、可能有多个构造函数和多个析构函数
63.有关析构函数的说法不正确的是。
A
A)析构函数有且只有一个
B)析构函数无任何函数类型
C)析构函数和构造函数一样可以有形参
D)析构函数的作用是在对象被撤销时收回先前分配的内存空间
64.一个类的析构函数。
A
A)唯一的B)允许重载C)至多可有两个D)只能是缺省的
65.通常拷贝构造函数的参数是。
C
A)某个对象名
B)某个对象的成员名
C)某个对象的引用名
D)某个对象的指针名
66.假定AB为一个类,则该类的拷贝构造函数的声明语句为________。
C
AAB&(ABx);BAB(ABx)CAB(AB&);DAB(AB*x)
67.对于友元函数描述正确的是。
D
A)友元函数的实现必须在类的内部定义中
B)友元函数是类的成员
C)友元函数不破坏类的封装性和隐藏性
D)友元函数能访问类的私有成员
68.下面对友元函数的描述正确的是(17)。
C
A友元函数的实现,必须在类的内部定义
B友元函数是类的成员函数
C友元函数破坏了类的封装性和隐藏性
D友元函数不能访问类的私有成员
69.可以用p.a的形式访问派生类对象p的基类成员,其中a是。
D
A)私有继承的公有成员B)公有继承的私有成员
C)公有继承的保护成员D)公有继承的公有成员
70.捆绑在程序运行前完成时称为。
A
A)静态捆绑B)动态捆绑
C)运行后捆绑D)运行时捆绑
71.如果一个类至少有一个纯虚函数,那么就称为。
A
A)抽象类B)虚基类
C)派生类D)以上都不对
72.一个基类以私有方式派生时,其基类中的公有成员和保护成员在派生类中A
73.
A、均成为私有成员B、均为公有成员
C、均成为保护成员D、仍为公有成员和保护成员
74.如果基类的所有公有成员和保护成员都成为派生类的私有成员,并且都不能被其派生类的子类访问,则继承的方式为[9]。
B
A、publicB、privateC、protectedD、以上三种都可以
二、基础知识填空题
1.C语言规定,标识符可以以字母或开头。
下划线
2.能将高级语言编写的源程序转换成目标程序的是。
编译程序
3.C源程序的基本单位是。
函数
4.C语言编写的程序必须有且只有一个函数。
main
5.若x=3,y=2,z=1,表达式z-=x x++: ++y的值为。 -2 6.现有定义inta,b;则“a,b中只有一个大于零”的表达式是。 a*b<=0 7.数学表达式 等价的C语言表达式是。 2*a*(a-b) 8.数学表达式 等价的C语言表达式是。 (a-b)*(a-b) 9.设有以下变量定义,并已赋确定的值: charw;intx;floaty;doublez; 则表达式w*x+z-y所求得的数据类型为。 double 10.表达式7/2的结果是____________。 表达式7%2的结果是____________。 31 11.若已知a=1.5,b=15,c=1,则表达式a*b&&c的运算结果是____________。 1 12.执行语句序列“inta,b;a=b=4;a+=b%3;”后,变量a、b的值分别是。 5,4 13.若有声明“inta=0,b=1,c=2;”,执行语句“if(a>0&&++b>0)c++;elsec--;”后,变量a、b、c的值分别。 011 14.若a,b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a,b,c的值分别是为。 642 15.已知有声明“charch;inta;”,执行语句“scanf("%c%d",&ch,&a);”时,如果从键盘输入的数据是“123”,则变量a得到的值是。 23 16.静态变量如果没有指定初值,则其初值为。 0 17.除goto语句外,在循环结构中执行______语句可提前结束本次循环直接进入下一次循环。 continue 18.C语言中,数组名是一个不可改变的,不能对它进行赋值运算。 地址常量 19.若有定义: doublex[3][5],则x数组中行下标的上限为_________,列下标的上限为__________。 2;4 20.若有inta[10];则a数组的最后一个元素表示为。 a[9] 21.设有说明语句“inta[3][4]={{1,2},{3,4,5},{6,7,8}};”,则a[0][2]的初始化值为_____________,a[2][2]的初始化值为______________。 0;8 22.若有说明: intx[][3]={1,3,5,7,9,11,13};则x数组的行数为。 3 23.在程序中需要调用库函数abs时必须包含头文件。 math.h 24.在C语言中,形参的缺省存储类型是。 auto 25.函数的返回值是通过函数体中的语句返回的。 return 26.若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是。 3 27.若有程序段“inta[10],*p=a,*q;q=&a[5];”,则表达式q-p的值是____。 5 28.若有定义语句: inta[4]={0,1,2,3},*p;p=&a[1];则(*p)的值是。 1 29.若有定义语句: inta[4]={0,1,2,3},*p;p=&a[1];则++(*p)的值是。 2 30.若有以下定义和语句: inta[4]={0,1,2,3},*p;p=&a[2];则*--p的值是。 1 31.若有以下宏定义: #defineM(a,b)-a/b 则执行语句"printf("%d",M(4+3,2+1));"后输出结果为。 -2 32.设有以下定义: #defineN10 #defineM(x)x*N
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CC 语言 期末 复习 完整 答案 Word