C++复习题库+C++试题库.pdf

上传人:文*** 文档编号:88946844 上传时间:2023-05-04 格式:PDF 页数:69 大小:7.57MB
返回 下载 相关 举报
C++复习题库+C++试题库.pdf_第1页
第1页 / 共69页
C++复习题库+C++试题库.pdf_第2页
第2页 / 共69页
点击查看更多>>
资源描述

《C++复习题库+C++试题库.pdf》由会员分享,可在线阅读,更多相关《C++复习题库+C++试题库.pdf(69页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C.1 6 D.1 7I a+=a-=a*a j后,变量a的 值 据()。批注 w 2 :C.-40 D.-601 .下列字符列中,可作为C+语言程序自定义标识符是()。A.s w it ch B.f ile C.br e a k D.do2 .运 算 符+、=、=、%中,优先级最低的运算符是()。A.+B.=C.=D.%3.设变量m,n,a,b,c,d均为0,执行(m=a=b)1 1 (n=c=d)后,m,n的 值 是().批注 w l:短路A.0,0 B.0,1 C.1,0 D.1,14.字符串 v a x 43n p 1 0 2 du”的长度是()。A.8 B.95.设有代码“in t

2、a =6;,则执行1A.0 B.-246.v o id ma in ()in t x=-l;do x=x*x;w hile(!x);下列说法正确的是(A.是死循环C.循环执行一次7.下面有关f o r循环的正确描述是()B.循环执行两次D.有语法错误)oA.f o r循环只能用于循环次数已经确定的情况B.f o r循环是先执行循环体语句,后判断表达式C.在f o r循环中,不能用br e a k语句跳出循环体D.f o r循环的循环体语句中,可以包含多条语句,但必须用大括号括起来8.下面程序段(x=3;批注 w 3:从右到左x=2为真1时do y=x;if(!y)co u t *x”;co n

3、 t in u e;co u t w#;w hile(l=x=2);(l=x)=1,0 bo o l 型A.将输出#B.将输出价*C.是死循环 D,含有不合法的控制表达式9.以下正确的说法是().A.用户若需要调用标准函数,调用前必须重新定义B.用户可以直接调用所有标准库函数C.用户可以定义和标准库函数重名的函数,但是在使用时调用的是系统库函数D.用户可以通过文件包含命令将系统库函数包含到用户源文件中,然后调用系统库函数1 0.在参数传递过程中,对形参和实参的要求是 _1 批注 w 4A.函数定义时,形参一直占用存储空间B.实参可以是常量、变量或表达式C.形参可以是常量、变量或表达式D.形参和

4、实参类型和个数都可以不同1 1 .对数组名作函数的参数,下面描述正确的鼎。批注 W%A.数组名作函数的参数,调用时将实参数组复制给形参数组B.数组名作函数的参数,主调函数和被调函数共用一段存储单元C.数组名作参数时,形参定义的数组长度不能省略D.数组名作参数,不能改变主调函数中的数据1 2 .若有语句 in t a 1 0 =0,1,2,3,4,5,6,7,8,9,*p=a;则()不是对 a 数组元素的正确引用(其中0 W i1 0)。A.p i B.*(a+i)C.a p-a D.*(&a i)1 3.以下程序的输出结果是()in clu de v o id ma in O cha r s

5、=*1 2 1 342 1in t v l=0,v 2=0,v 3=0,v 4=0;v l v 2 v 3 v 4f o r (p=s;*p;p+)2434s w it ch(*p)ca s e r :v l+;ca s e 3 :v 3+;ca s e 2 :v 2+;de f a u lt:v 4+;co u t v l*,*v 2 *,*v 3 *,*v 4 e n d l;)A.4,2,1,1 B.4,7,5,81 4.下列声明结构体变量错误的是(A.s t r u ct s t u de n t in t n o;cha r n a me 1 6;s t l,s t 2;C.s t

6、r u ct s t u de n t in t n o;cha r n a me 1 6;);s t r u ct s t l,s t 2;1 5.对类的构造函数和析构函数描述正确的是()oA.构造函数可以重载,析构函数不能重载B.构造函数不能重载,析构函数可以重载C.7,3,2,1 D.8,8,8,8)oB.stru c t stu d e n t i n t n o;c h a r n a me 1 6 ;;stru c t stu d e n t stl,st2D.stru c t stu d e n t i n t n o;c h a r n a me 1 6 ;;stu d e n

7、 t stl,st2;C.构造函数可以重载,析构函数也可以重载D.构造函数不能重载,析构函数也不能重载1 6 .下面对于友元函数描述正确的是()。A.友元函数的实现必须在类的内部定义 B.友元函数是类的成员C.友元函数破坏了类的封装性和隐藏性 D.友元函数不能访问类的私有成员1 7 .派生类的对象对它的基类成员中()是可以访问的。A.公有继承的公有成员 B.公有继承的私有成员C.公有继承的保护成员 D.私有继承的公有成员1 8 .C+类体系中,不能被派生类继承的有(A.构造函数 B,虚函数 C.静态成员函数 D.赋值操作函数1 9 .以 下()成员函数表示虚函数。A.v i rtu a l i

8、 n t v f(i n t);B.v o i d v f(i n t)=O;C.v i rtu a l v o i d v f()=0;D v i rtu a l v o i d v f(i n t);一批注L6:纯虚函数,不用定义2 0 .下面对静态数据成员的描述中,正确的是()oA.静态数据成员可以在类体内进行初始化B.静态数据成员不可以在类体内进行初始化C.静态数据成员不能受pri v a te控制符的作用D.静态数据成员可以宜接用类名调用?2 1 .继承具有(),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。A.规律性 B.传递性 C.重复性 D.多样性2

9、 2.若有以下定义,则释放指针所指内存空间的操作是().f l o a t r=n e w s f l o a t 1 0 ;A.d e l e te r;B.d e l e te *r;C.d e l e te r;D.d e l e te r ;2 3.若有以下定义,则对字符串的操作错误的是(D.c h a r s 1 0 =P ro g ra m”,.strc py (s,t);C.strc a t(th i s,t);2 4.在i f语句中的表达式是(A.只能是表达式C.只能是逻辑表达式批注L8:Copy t to s-批注w7:strcat(sl,s2):add s2 to sis

10、tail.-B.c o u t strl e n (s)jD.c i n t;).B.只能是关系表达式和逻辑表达式D.可以是任意表达式2 5.在用关键字c l a ss定义的类中,以下叙述正确的是().A.在类中,不作特别说明的数据成员均为私有类型B.在类中,不作特别说明的数据成员均为公有类型C.类成员的定义必须是成员变量定义在前,成员函数定义在后D.类的成员定义必须放在类定义体内部参考答案:1234567891 0 1 1 1 2 131 4 1 5BCC BDC DCDBBBBCA1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5CAADBBCCDA公共基础知识

11、一、选择题(1)下列关于栈的叙述正确的是A般是非线性结构 B)栈是一种树状结构C戏具有先进先出的特征 D)栈具有后进先出的特征(2)结构化程序设计所规定的三种基本控制结构是A瀚 入、处理、输出 B阚形、网形、环形C)顺序、选择、循环 D)主程序、子程序、函数(3 )结构化程序设计的一种基本方法制 批注 w 9:A洲选法 B)递 归 法。归纳法 D)逐步求精法(4)如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是:A)选择 B股影 C)连接 D)#一:选择题:Q)D(2)C D(4)BC+语言程序设计一、选择题(1)C+

12、语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是。A)面向过程 B)面向对象 C俄全性 D)复用性(2 )C+语言的跳转语句中,对 于bre a k和c o n ti n u e说法正确的是()A )bre a k语句只应用与循环体中B C o n ti n u e语句只应用与循环体中C)bre a k是无条件跳转语句,c o n ti n u e不是D)b g a k和c o n ti n u e的跳转范围不够明确,容易产生问题(3 )f o r(i n tx=0 ,y=o;!x&y v=5;y+)语句执行循环的次数是。A)0 B)5 C)6 D)无次

13、数(4 )考虑函数原型(v o i d te st(i n t a,i n t b=7,c h a r=*)|,下面的函数调用中,属于不合法一 批注 L 1 0 :默认参数格式调用的是()A )te st6);B)te st,8);C)te st(6,#n)D)te st(0,0.*H);(5)下面有关重载函数的说法中正确的是。A通载函数必须具有不同的返回值类型;B)重载函数形参个数必须不同;C)重载函数必须有不同的形参列表 D)重载函数名可以不同;(6 )下列关于构造函数的描述中,错误的是()A潮造函数可以设置默认参数;B)构造函数在定义类对象时自动执行C购造函数可以是内联函数;D)构造函数

14、不可以重载(7)下面描述中,表达错误的是。A松有继承时基类中的pu bl i c成员在派生类中仍是pu bl i c的B)公有继承是基类中的pri v a te成员在派生类中仍是pri v a te的C念有继承时基类中的pro te c te d成员在派生类中仍是pro te c te d的D淞有继承时基类中的pu bl i c成员在派生类中是pri v a te的(8 )应在下列程序划线处填入的正确语句是()#i n c i i d ec l a ss B a se pu bl i c:v o i d f u n()c o u t,B a se:f u n,;c l a ss D e ri

15、v e d:pu b l i e B a se v o i d f u n()f i l e:/显示调用基类的函数f u n()c o u t ,D e ri v e d:f u n*,f u n();(9)有如下程序:#i n c l u d ec l a s s B A S E c h a rc;p u b l i c:BAS E(c h a r n):c(n)v i rt u a I-BAS E()c o u t c ;c l a s s D ER IV ED :p u b l k BAS E c h a r c;p u b l i c:D ER IV ED(c h a r n):BAS

16、 E(n+l),c(n)D ER IV ED()c o u t 0的值 A)为 true B)为 false C)与 x 的值相同 D)与 x 的值相反(3)执行语句序列int n;cinn;switch(n)case 1:case 2:cout*X*;case 3:case 4:cout*Y*;break;default:coutZ,;时,不可能出现的情况是oA)显示:X B)显示:Y C)显示:Z D)显示:XY(4)执行语句序列int x;cinx;if(x250)coutX*;if(xival=rc.ival+l;rc.ra-cval=rc.ra-ival+l;coutrc.ival,

17、rc.ra-ival,rc.rb.ra.ival;后,显示在屏幕上的是oA)67,69,70 B)66,67,70 C)67,68,69 D)66,67,68批注lwl4:(1 9)类的默认的拷贝构造函数JoA)在任何情况下都存在B)仅当未定义拷贝构造函数时存在C)仅当未定义有参构造函数时存在D)仅当未定义任何构造函数时存在(20)语句 ofstream f(SALARY.DAT,ios:nocreate I ios:trunc):的功能是建立流对象 f,并试图打开文件SALARY.DAT并与之连接,而且.A)若文件存在,将文件指针定位于文件尾;若文件不存在,建立一个新文件。B)若文件存在,将

18、其截为空文件;若文件不存在,打开失败。C)若文件存在,将文件指针定位于文件首;若文件不存在,建立一个新文件。D)若文件存在,打开失败;若文件不存在,建立一个新文件。答案:15:DDACA 610:CADBC11 15:ADADC 1620:DDBBBC+试题21.下列变量名中,()是合法的。A.56A B._abc C.d-Ptr D.while2.下列各种运算符中,()优先级最高。A.+B.&C.=D.*=3.设变量 m,n,a,b,c,d 均为 0,执行(m =a=b)&(n=c=d)后,m,n 的 值 是()。A.0,0 B,0,1 C.1,0 D.b 14.字符串 tv0w hichn

19、”的长度是()oA.4 B.10 C.9 D.字符串有非法字符,输出值不确定5.设 a=2,b=3,c=2;计算 a+=b*=(+b-c+)中 a、b、c 的 值()。A.8、6、2 B.2、4、2 C.10、8、3 D.5、3、36.已知:int i=5,下 列 do-while循环语句的循环次数为()。do couti e n d l;i一;while(i!=0);A.0 B.1 C.5 D.无限批注W15:7.下面关于循环语句的描述中,()是错误的。A.循环体内可以包含有循环语句B.循环体内必须同时出现break语句和continue语句C.循环体内可以出现选择语句D.循环体内可以是空语

20、句8.下面程序段(x=3;批注lwl6:doy=x;if(!y)cout=l&x=2);A.将输出琳 B.将输出#相C.是死循环 D.含有不合法的控制表达式9.在函数的定义格式中,下面各组成部分中,()是可以省略的 批注W 17:A.函数名 B.函数体 C.函数数据类型说明 D.函数参数10.在函数的引用调用时,实参和形参应该是使用().A.变量值和变量 B.地址值和指针C.变量值和 引 用D.地址值和引用11.以下关于文件操作的叙述中,不正确的是().A.打开文件的目的是使文件对象与磁盘文件建立联系B.文件读写过程中,程序将直接与磁盘文件进行数据交换C.关闭文件的目的之一是保证将输出的数据写

21、入硬盘文件D.关闭文件的目的之一是释放内存中的文件对象12.若有语句 int a10=0,1,2,3,4,5,6,7,8,9,*p=a;则()不是对 a 数组元素的正确引用(其中owiio|)。批注 w)8 :A.pi B.(*(a+i)C.ap-a D.*(&ai)13.以下程序的输出结果是()o#include void mainOchar s=*abcdefbcde*,*p=s;int vl=0,v2=0,v3=0,v4=0;for(p;*p;p+)switch(*p)(case a :vl+;break;case b:v3+;break;case e :v2+;break;defaul

22、t:v4+;)coutvl*v2*,*v3*,*v4endl;)A.1,2,2,5 B.4,7,5,8 C.1,5,3,10 D.8,8,8,814.下列结构体定义,正确的是.批注W 19J:A.record B.struct record int no;int no;char num16;char num16;float score;float score;;C.struct record D.struct record int no;int noc h a r n u m 16;f l o a t s c o re ;;c h a r n u m 16f l o a t s c o re1

23、5.下列是构造函数的特点,()是错误|的:A.构造函数是一种成员函数,它具有一般成员函数的痔点B.构造函数的名称与其类名相同C.构造函数必须指明其类型D.一个类中可定义一个或多个构造函数批注w20:16.关于友元函数的描述中,()是镯的A.友元函数是成员函数,它被说明在类体内B.友元函数可直接访问类中的私有成员C.友元函数破坏封装性,使用时尽量少用D.友元类中的所有成员函数都是友元函数 批注 lw21J:17.下列对派生类的描述中,()是错误的。A.一个派生类可以作为另一个派生类的基类B.派生类至少应有一个基类C.基类中成员访问权限继承到派生类中都保持不变D.派生类的成员除了自已定义的成员外,

24、还包含了它的基类成员18.C+类体系中,能被派生类继承的有().A.构造函数 B.虚函数 C.友元函数 D.析构函数19.关于下列虚函数的描述中,()是正确的。A.虚函数是一个s t a t i c存储类的成员函数B.虚函数是一个非成员函数C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数D.派生类的虚函数与基类的虚函数应具有不同的类型或个数2 0.以下有关静态数据成员函数的叙述不正确的是().批注M22J:A.静态成员函数属于整个类B.对静态成员函数的引用不允许使用对象名C.在静态成员函数中不能直接引用类的非静态成员D.使用类名可以直接调用其静态成员函数21.下列有关运算符重

25、载的描述中,(A.运算符重载可改变其优先级C.运算符重载可改变其结合性)是 正 确 的;_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 批 注 w23:B.运算符重载福变箕语法结而D.运算符重载可改变其操作数的个数22.对n e w运算符的下列描述中,()是错误的。A.它可以动态创建对象和对象数组B.用它创建对象数组时必须指定初始值C.用它创建对象时要调用构造函数D.用它创建的对象可以使用运算符d e l e t e来释放23.下列是为字符数组赋字符串的语句组,其中错误是().A.c h a

26、 r 10;s=n p ro g ra m,;_ B.c h a r s =p ro g ra m”;/批注IL24:数组名字是指针常量,不/可改变C.char s10=n Hello!n;D.char s10;strcpy(s,n hello!*);24.当调用函数时,实参是一个一维数组名a,则向函数传送的是().A.数组的长度 B.数组所有元素的值C.数组元素a0的值 D.数组元素a0的地址25.下列有关类的说法不正确的是().A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象D.类与对象的关系和数据类型与变量的关系相似答案:1 5:BADBC 6-10:D

27、BBDC11 15:BBACC 1620:ACBCB21 25:BBADC1:指出下列对定义重载函数的要求中,哪些是错误的提法。A.要 求 参 数 的 个 数 相 同.B.要求参数中至少有一个类型不同.C.求函数的返回值不同。D.要求参数的个数相同时,参数类型不同.答案:C2:T 列运算符中,()运算符在C+中不能重载。A.?:B,C.new D.&答案:A3:下面关于友元的描述中,错误的是().A.友元函数可以访问该类的私有数据成员B.一个类的友元类中的成员函数都是这个类的友元函数C.友元可以提高程序的运行效率D.类与类之间的友元关系可以继承答案:D4:下述静态成员的特性中,()是错误的。A

28、.静态成员函数不能利用this指针B.静态数据成员要在类体外进行初始化C.引用静态数据成员时,要在静态数据成员名前加 类名 和作用域运算符D.静态数据成员不是所有对象所共有的答案:D5:关于虚函数的描述中,()是正确的.A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型答案:D6:下列关于动态联编的描述中,错误的是O。A.动态联编是以虚函数为基础B.动态联编是运行时确定所调用的函数代码的C.动态联编调用函数操作是指向对象的指针或对象引用D.动态联编是在编译时确定操作函数的答

29、案:D8:下面4个选项中,()是用来声明虚函数的。A.v i rt u a l B.p u b l i c C.u s i n g D.f a l s e答案:A9:编译时的多态性可以通过使用()获得。A.虚函数和指针 B.重载函数和析构函数C.虚函数和对象 D.虚函数和引用答案:A10:关于纯虚函数和抽象类的描述中,错误的是()。A.纯虚函数是一种特殊的虚函数,它没有具体的实现B.抽象类是指具体纯虚函数的类C.一个基类中说明有纯虚函数,该基类派生类一定不再是抽象类D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出答案:B11:下列描述中,()是抽象类的特征。A.可以说明虚函数 B.可

30、以进行构造函数重载C.可以定义友元函数 D.不能说明其对象答案:D12:以 下()成员函数表示虚函数。A.v i rt u a l i n t v f (i n t);B.v o i d v f(i n t)=0;C.v i rt u a l v o i d v f()=0;D.v i rt u a l v o i d v f(i n t);答案:D13:如果一个类至少有一个纯虚函数,那么就称该类为(A).A.抽象类 B.虚函数 C.派生类 D.以上都不对答案:A14:要实现动态联编,必须通过()调用虚函数。A.对象指针 B.成员名限定 C.对象名 D.派生类名答案:A15:下面描述中,正确的

31、是()oA.v i rt u a l可以用来声明虚函数B.含有纯虚函数的类是不可以用来创建对象的,因为它是|虚基会C.即使基类的构造函数没有参数,派生类也必须建立构造函数D.静态数据成员可以通过成员初始化列表来初始化答案:A16:已知i n t a,*p a=&a;输出指针p a十进制的地址值的方法是()批注rw 26:A.c o u t p a;B.c o u t *p a;C.c o u t&p a;D.c o u t l o n g(&p a);答案:D17:关 于re a d。函数的下列描述中,()是对的。A.函数只能从键盘输入中获取字符串B.函数所获取的字符多少是不受限制的批注IL2

32、SJ:抽象类不能创建对象,只能使用该类作为其他类的基类C.该函数只能用于文本文件的操作中D.该函数只能按规定读取所指定的字符数答案:D18:下列一维数组定义正确的是(A.x=6;i n t n u m x ;B.c o n s t f l o a t x=6;i n t b x ;答案:B,B.c o n s t i n t x=6;f l o a t a x ;D.c o n s t i n t x=6;i n t c x ;YY 批注w27:数组维数只能包含整形字面值常量、枚举常量或者常量表达式19:下面选项中等价的是()oA.i n t 323=1,0,2,2,4,5与1册 2口=1,0

33、,2,2,4,5;B.i n t a 3=1,0,2,2,4,5与 i n t a 2 3=1,0,2,2,4,5;C.i n t a 2 3=3,4,5与 i n t a 3=3,4,5);D.i n t a 23=0,1与 i n t a 2 3=0,1);答案:B,20:下面程序的输出结果是(#i n c l ud e vo i d m a i n()i n t a 3 3=1,2,3,4,5);i n t sum=0;f o r(i n t I=1;K3;I+)f o r(i n t j=O;j=I;j+)sum+=a I j;c o ut sum e n d l;A.12 B.14

34、C.15 D.13答案:A21:下列数组的定义中,()是错误的。A.c h a r c a l=c,m,n ;C.c h a r c a 34=/y o ur,z;答案:CB.c h a r c a 2=n a m e;D.i n t a rra y =1,2,3,4;22:下面程序的输出结果是()o#i n c l ud e#i n c l ud ez,stri n g.h vo i d m a i n()c h a r a=ww e l c o m e b=z fw e l l,z;strc p y(a,b);c o ut a e n d l;)A.w e l l o m e B.w e

35、l l o m C.w e l l答 案:CD.w e l l w e2 3:下面关于数组的说法正确的是(A.它与普通变量没什么区别 B.C.它用数组名标识其元素 D.D)o它的元素的数据类型可以相同,也可以不同数组的元素的数据类型是相同的2 4:下列说法正确的是()A.字符型数组与整型数组可通用B.字符型数组与字符串其实没什么区别C.当字符串放在字符数组中,这时要求字符数组长度比字符串长1个单元,因为要放字符串终结符D.字符串的输出可以用它所存储的数组来输出,也可以字符串的形式整体输出,结果没区别C25:给出下面定义,c h a r a=a b c d;c h a r b=az,b,c,d

36、,则下列说法正确的是().A.数组a与数组b等价C.数 组a的长度大于数组b的长度B.数组a和数组b的长度相同D.数 组a的长度小于数组b的长度26:下面程序的输出结果为(X _#i n c l ud e#i n c l ud e vo i d m a i n()c h a r st20=h e l l o 0 t ;c o ut strl e n(st);c o ut si z e o f (st)e n d l;c o ut st;)A.520 B.1220H e l l o h e l l o 0 t C.520h e l l o tD.1120h e l l o 批注lw28:27:下

37、面程序的输出结果是()o i n c l ud e“i o stre a m.h vo i d m a i n()i n t n 2,I,j,k=2;f o r(I=0;I k;I+)f o r(j=0;j k;j+)n j=n I+l;c o ut n j-2;)A.不确定的值 B.3 C.2 D.1A(1)下面概念中,不 属 于 面 向 对 象 方 法 的 是。A)对象、消 息B)继承、多 态C)类、封 装D)过程调用答案:D知识点:面向对象的程序设计方法、对象、方法、属性及继承与多态性评析:面向对象方法是一种运用对象、类、封装、继承、多态和消息等概念来构造、测试、重构软件的方法。面向对象

38、方法从对象出发,发展出对象、类、消息、继承等概念。(2)下列描述中不正确的胤批注w29:A)字符型数组中可以存放字符串B)可以对字符型数组进行整体输入、输出C)可以对整型数组进行整体输入、输出D)不能在赋值语句中通过赋值运算符对字符型数组进行整体赋值答案:C知识点:对数组的理解评析:C 语言规定只能逐个引用数组元素而不能一次引用整个数组。字符数组的输入、输出可以将整个字符串一次输入或输出。所以,选 项 C 的说法是不正确的.(3)以 下 程 序 的 输 出 结 果 是。main()int i,X33=9,8,7,6,5,4,3,2,l,*p=&Xll;for(i=0;i4;i+=2)print

39、f(M%dn,pi);A)5 2B)5 1 C)5 3D)97答 案 C知识点:通过指针引用数组元素评析:题中*p=&xln;是指将数组x 的 数 组 元 素 的 地 址 赋 值 给 指 针 变 量 p,使 p指 向 xHMl这个数组元素,那 么 p0即为指针变量p 当 前 所 指 向 的 数 组 元 素 的值。具体执行时如下所示:i=0 时,输 出 p 0,也就是输出是5;i=2 时,输 出 p 2,即 p2+0,也 就 是 x20,输 出 是 3.(4)以下程序的运行结果是 一 批注w30:#include stdio.hmain()(int a=1,23,4,5,6,7,8,9,10,1

40、1,12);int*p=a+5,*q=NULL;*q=*(p+5);printf(n%d%dnn,*p,*q);)A)运行后报错B)6 6 C)612D)5 5答案:A知识点:通过指针引用数组评析:题目中没有给q 分配存储单元,只是简单地给它赋了一个值,所以程序的运行结果是 6 11 NULL pointer assignment.也就是运行后报错。(5)若已定义:inta9,*p=a;并在以后的语句中未改变p 的值,不能表示al地址的表达式楣。-批 注 lw31:A)p+1 B)a+1 C)a+D)+p答 案 C知识点:数组地址的表示评析:数组名是指针常量,是个固定的指针,不能对数组名赋予一

41、个新的地址值,也不能使这个指针常量“移动”,指向数组的其他元素。(6)以下程序的输出结果是_ _ _ _ _.main()int a=-l,b=l,k;if(+aO)&!(b-=0)printf(n%d%dnn,a,b);elseprintf(n%d%dnn,b,a);)A)-1 1 B)0 1C)1 0D)00答 案 C知识点:i f 条件的判断评析:逻辑运算符的优先次序如下:!(非)-&(与)-11(或),但本题需特别注意的是短路的概念:对于&运算符,其两边表达式的值只要有一边为假,则整个与运算表达式的值即为假,系统在执行时,先运算&左边的表达式,若为假,则系统不会再判断&运算符右边的表达

42、式了,直接运用短路原理得整个与运算表达式的值为0.由于+a是先运算后使用,b-是先使用后运算。所以本题在执行+a后,a 值 为 0,不满足条件,所 以 a 为 0,根据短路原理,b 仍 为 1,接下去执行else语句,输 出 1 0.(7)以下选项中,能定 义s为 合 法 的 结 构 体 变 量 的 是 .批注,32):A)typedef struct abc double a;char b10;s;B)struct double a;char b10;s;C)struct ABC double a;char b10;)ABCs;D)typedef ABC double a;char b10J

43、;ABCs;答 案 B知识点:结构体变量的定义评析:定义一个结构体类型的变量,可采用三种方法:先定义结构体类型,再定义变量名;在定义类型的同时定义变量;直接定义结构类型变量,即不出现结构体名。选 项B符合第三种定义方法。(8)请读程序:#i n c l ud e#i n c l ud e main()c h a r *s l=A bCdE 9,*s 2=”aB”;sl+;s2+;p ri n tf(M%dnn,s t r c m p(s l 2);上面程序的输出结果是_ _ _ _ _。A)正 数B)负 数C)零D)不确定的值答 案A知识点:字符串比较函数s t r c m p()的应用评析:

44、s t r c m p(X l,X 2)是串比较函数,当X1 X2时返回值为正数,当X1 s 2,返回值为|正数批注w 33:strc m p(sl,s2):(9)请读程序:#i n c l ud e f un c(i n t a,i n t b)i n t c;c=a+b;re turn c;sl=s2,re turn 0;sl s2,re turn p o si ti ve;sl s2,re turn n e g a ti ve.main()i n t x=6,y=7,z=8,r;r=f un c(x-,y+,x+y),z-);p ri n tf(H%dnn,r);上面程序的输出结果是_

45、_ _ _ _oA)11 B)20 C)21 D)31答 案C知识点:自增、自减运算评析:函 数f u n c()的作用是返回两个形参的和,第一个形参是x、y分别自减和自增后的和,其中(x-,y+,x+y)是一个逗号表达式,它 的 值 应 该 等 于x+y,所以整个表达式(x-,y+,x+y)的 值 为 1 3,而第二个形参的值为8(根据语法规则,应当先使用,后自增),所 以 func()的返回值为13+8=21。(1 0)请读程序:#include main()(int a,b;for(a=1,b=1;a=20)break;if(b%3=1)b+=3;continue;b-=5;)print

46、f(H%dnM,a);上面程序的输出结果是_ _ _ _ _.A)7B)8 0 9D)10答 案 B知识点:break语 句 和 continue语句评析:break语句的作用是用于跳出循环体,继续执行循环体下面的语句;而 continue语句的作用是用于跳出本次循环,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。是求余运算符,执行第一次循环时,条件(b%3=1)为真,b=4,继续下一次循环,如此反复,当 b=22时,条件(b=20)为假,跳出循环,此时共循环8次,即 a=8.(1 1)请读程序片段(字符串内没有空格字符):printf(%dn,strlen(ATSnO12l

47、);上面程序片段的输出结果是_ _ _ _ _.A)11 B)10 C)9 D)8答 案 C知识点:字符串的长度评析:这个语句的目的是输出“ATSnO12l”这个串的长度,在 串中“”代表一个为 了 和 printf()函数中的转义字符区分开来,在语法上使用了两个反斜杠代替了一个反斜杠,所以它仅仅为一个字符,而“1”代 表 数 字 1,也占一个字符,“n”是回车换行符,也占一个字符,加 上A、T,S、0,1,2,一 共 是 9 个字符.(1 2)请选出可用作C 语言用户标识符的一组标识符_ _ _ _ _.A)void B)a3_b3C)ForD)2adefine _123 _abc DOWO

48、RD IF case sizeof答 案 B知识点:C 语言的标识符评析:C 语言规定标识符只能由字母、数字和下划线三种符号组成,而且第一个字符必须是字母或下划线.选 项 A 中 的 void和 define都 和 C 语言的关键字重名,不合法;选 项 C 中 的 case和 C 语言的关键字重名,不合法:选 项 D 中 的 2 a 是数字打头而且sizeof和 C 语言的关键字重名,不合法。(1 3)请选出以下程序的输出I 结果 批注W 34:#include sub(int*s,int y)static int t=3;y=st;t-)main()int a=U3,4,i,x=0;for(

49、i=0;i4;i+)sub(a,x);printf(%dH,x);printf(Mn);)A)1234 B)4321 C)0000 D)4444答 案 c知识点:函数的形参和实参的关系评析:X 作为函数sub()的实参时,函 数 对 X 值的改变没有返回主函数,并不能使得X 的值变化,所以在打印时,X 的值是始终不变的,即 为 0.(1 4)若有以下说明和语句,请选出哪个是对c 数组元素的正确引用I 批注M351:int c45,(*cp)5;cp=c;A)cp+1 B)*(cp+3)C)*(cp+l)+3D)*(*cp+2)答 案 D知识点:数组元素的引用评析:cp=c这个语句是将数组第0

50、行的地址赋给了 cp.cp+1使指针指向二维数组c 的第一行:*(cp+3)是 数 组 c 的第三行的第0 列的地址值;*(cp+l)+3是 数 组 c 的第一行第三列的地址值。(1 5)设有以下语句 批注|w36:char a=3,b=6,c;c=aAb2;则 c 的 二 进 制 值 是。A)00011011 B)00010100 C)00011100 D)00011000答 案A知识点:位运算评 析“”是 C 语言中规定的左移运算符,例如,a=a2,这个语句即是将a 的二进制数左移两位,左移一位相当于该数乘以2,左移两位相当于该数乘以2 的 2 次方:是异或运算符,所以,c 的二进制值应为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com