【计算机类职业资格】国家计算机二级(C++)82及答案解析.doc

上传人:diecharacter305 文档编号:1335183 上传时间:2019-10-17 格式:DOC 页数:14 大小:87.50KB
下载 相关 举报
【计算机类职业资格】国家计算机二级(C++)82及答案解析.doc_第1页
第1页 / 共14页
【计算机类职业资格】国家计算机二级(C++)82及答案解析.doc_第2页
第2页 / 共14页
【计算机类职业资格】国家计算机二级(C++)82及答案解析.doc_第3页
第3页 / 共14页
【计算机类职业资格】国家计算机二级(C++)82及答案解析.doc_第4页
第4页 / 共14页
【计算机类职业资格】国家计算机二级(C++)82及答案解析.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、国家计算机二级(C+)82 及答案解析(总分:460.00,做题时间:120 分钟)一、选择题(每小题 2 分,共 70 分) 下列各(总题数:35,分数:70.00)1.有如下 4 个语句: countAsetfill(x)leftsetw(7)Bendl; countsetfill(x)leftsetw(7)ABendl; countAsetfill(*)rightsetw(7)Bendl; countsetfill(x)rightsetw(7)ABendl; 其中能显示 A * * * * * * B 的是 (分数:2.00)A.和B.和C.和D.和2.有以下程序 void fun1(c

2、har *p) char *q; q=p; while(*q!= /0) (*q)+;q+; main() char a=“Program “,*p; p=fun1(p); printf(“%s/n“,a); 程序执行后的输出结果是_。 (分数:2.00)A.ProhsbnB.PrphsbnC.ProgsbnD.Program3.有以下程序 main() int y=10; while(y-);printf(“y=%d/n“,y); 程序执行后的输出结果是_。(分数:2.00)A.y=0B.y=-1C.y=1D.while4.关于函数重载,下列叙述中错误的是(分数:2.00)A.重载函数的函数

3、名必须相同B.重栽函数必须在参数个数或类型上有所不同C.重栽函数的返回值类型必须相同D.重栽函数的函数体可以有所不同5.有以下程序 main() int c=35;printf(“%d/n“,c 程序运行后的输出结果是_。 (分数:2.00)A.0B.70C.35D.16.以下哪个特征不是面向对象思想中的主要特征?(分数:2.00)A.只能读B.只能用来编辑C.可以读也可以编辑D.对编辑框设置无效7.下列程序是用来判断数组中特定元素的位置所在,则输出结果为( )。 #includeconioh #includeiostreamh int fun(in *s,int t,int *k) int

4、i; * k=0; for(i=0;i t;i+) if(s *k si) *k=i; return S *k; void main( ) int a10= 876,675,896,101,301,401,980,431,451,777 ,k; fun(a,10, float f=7;,则以下选项中错误的表达式是_。 (分数:2.00)A.k=k=kB.-k+C.k%int(f)D.k=f=m9.函数模板:template T add(T x,T y) return x+y; 下列对 add 函数的调用不正确的是( )。 (分数:2.00)A.Person(n,a);B.this(Person

5、(n,a) );C.this(n,a);D.this(name,age);10.关于虚函数下面说的正确的是(分数:2.00)A.若在重定义虚函数时使用了 virtual,则该重定义函数还是虚函数B.虚函数不能声明为友元C.子类必须重定义父类的虚函数D.虚函数不能是 static 的11.在一个派生类对象结束其生命周期时【 】(分数:2.00)A.先调用派生类的析构函数后调用基类的析构函数B.先调用基类的析构函数后调用派生类的析构函数C.如果基类没有定义析构函数,则只调用派生类的析构函数D.如果派生类没有定义析构函数,则只调用基类的析构函数12.C+语言中用于定义类的关键字是( )。(分数:2.

6、00)A.友元函数没有 this 指针B.调用友元函数时必须在它的实参中给出要访问的对象C.一个类的成员函数也可以作为另一个类的友元函数D.只能在类的公有段声明友元13.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。 (分数:2.00)A.DB 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMSD.没有任何关系14.有如下程序: #includeiostreamh long fib(int n) if(n 2) return(fib(n-1)+fib(n-2) ); else return(2); void main

7、( ) cout fib(3); 该程序的输出结果是( )。 (分数:2.00)A.数组是最简单的复合数据类型,是有限元素的有序集合B.数组的元素可以是值(基本数据类型)、对象或其他数组C.定义数组时,必须分配内存D.一个数组中的元素都必须是相同的类型15.若各选项中所有变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选 项中错误的程序是_。(分数:2.00)A.B.C.D.16.继承机制的作用是( )。(分数:2.00)A.a+1 表示的是字符 t 的地址B.p 指向另外的字符串时,字符串的长度不受限制C.p 变量中存放的地址值可以改变D.a 中只能存放 10 个

8、字符17.下列描述中错误的是( )。(分数:2.00)A.派生类可以作为基类派生其他的子类B.派生类继承基类的所有数据成员C.派生类可以有多个基类D.派生类不能继承一些函数成员18.下面的哪个选项不能作为函数的返回类型?(分数:2.00)A.voidB.intC.newD.long19.表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是( )。(分数:2.00)A.showbase( )和 eof( )B.showpoint( )和 eof( )C.showpoint( )和 bad( )D.showpoint( )和 good( )20.设有定义 int n1=0,n2,*p=,以

9、下赋值语句中与 n2=n1;语句等价的是_。 (分数:2.00)A.*p=*q;B.p=q;C.*p=D.p=*q;21.在结构化方法中,用数据流程图(DFD) 作为描述工具的软件开发阶段是【 】(分数:2.00)A.可行性分析B.需求分析C.详细设计D.程序编码22.决定 C+语言中函数的返回值类型的是( )。(分数:2.00)A.Call ff(5,7,z)B.Call ff(x,y,z)C.Call ff(3+x,5+y,z)D.Call ff(x+y,x-y,z)23.如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机

10、制。 #include using namespace std; class Base int a,b; public: Base(int xint y)a=x;b=y; void show()coutD.926.有如下程序: #include using namespace std; class A public: static int a; void init()a=1;) A(int a=2)init();a+;) ); int A:a=0; A obj; int main() toutfunc1(); P-func2(); return 0; 运行此程序,屏幕上将显示输出【 】 (分数

11、:2.00)A.B1 B2B.A1 A2C.B1 A2D.A1 B232.在软件开发中,下面任务不属于设计阶段的是【 】(分数:2.00)A.数据结构设计B.给出系统模块结构C.定义模块算法D.定义需求并建立系统模型33.下面程序的输出结果是( )。 #includeiostream.h #includestring.h voidmain( ) charp110,p210; strcpy(p1,“abc“); strcpy(p2,“ABC“); charstr50=“xyz“; strcpy(str+2,strcat(p1,p2); coutstr; (分数:2.00)A.start( )B.

12、init( )C.paint( )D.draw( )34.执行语句序列 intn: cinn: switch(n) casel: case2:cout1: case 3: case4:cout2: break: delhult:cout3: 时,若键盘输入 1,则屏幕显示【 】(分数:2.00)A.1B.2C.3D.1235.有如下程序 #includeiostreamh void main( ) float x=20,y; if(x00)y=00; else if(x100)y=10/x; else y=10; cout y; 该程序的输出结果是( )。 (分数:2.00)A.8KB.16K

13、C.32KD.64K二、填空题(每空 2 分,共 30 分)(总题数:13,分数:390.00)36.以下程序运行后的输出结果是 1。 main2 int x=0210; printf(“%X/n“,x); (分数:30.00)填空项 1:_37.C+语言程序的注释可以出现在程序中的任何地方,一个注释以 1 作为开始和结束的标记。(分数:30.00)填空项 1:_38.内联函数是通过 1 来实现的,因此内联函数是真正的函数。(分数:30.00)填空项 1:_39.下列 for 语句的循环次数为 1。 for(int a=0,b=1;b main1 int x,y; scanf(“%d“, y=

14、sub(sub(sub(x); printf(“%d/n“,y); 若运行时输入 1234,程序的输出结果是 2。 (分数:30.00)填空项 1:_48.下面程序的运行结果是 1 和 2。 #includeiostreamh #define N 10 #define s(x)x * x #define f(x)(x * x) void main3 int i1,i2; i1=1000/s(N);i2=1000/f(N); cout i1 “ “ i2; (分数:30.00)填空项 1:_国家计算机二级(C+)82 答案解析(总分:460.00,做题时间:120 分钟)一、选择题(每小题 2

15、分,共 70 分) 下列各(总题数:35,分数:70.00)1.有如下 4 个语句: countAsetfill(x)leftsetw(7)Bendl; countsetfill(x)leftsetw(7)ABendl; countAsetfill(*)rightsetw(7)Bendl; countsetfill(x)rightsetw(7)ABendl; 其中能显示 A * * * * * * B 的是 (分数:2.00)A.和B.和C.和 D.和解析:setfill 设置填充字符为*;默认输出有效位是 6;setw(n)设置域宽,cout字符 endl。2.有以下程序 void fun1

16、(char *p) char *q; q=p; while(*q!= /0) (*q)+;q+; main() char a=“Program “,*p; p=fun1(p); printf(“%s/n“,a); 程序执行后的输出结果是_。 (分数:2.00)A.Prohsbn B.PrphsbnC.ProgsbnD.Program解析:此题考核的知识点是指向数组的指针作为函数的参数及指针的运算,如果形参数组中的元素发生变 化,实参也将发生相应变化。指针 p 指向数组的第三位地址(即字符“g”的地址),q=p 也就相当于指针 q 指向数组的第三位地址。表达式(*q)+,首先根据()的优先级得到

17、 a3的值“g”,再进行加 1 运算,所以 g 也就变成了 h;表达式 q+是将地址加 1,也就是指向下一个地址 a4。然后再执行 while()语句,直到遇 到/0结束循环,返回形参。3.有以下程序 main() int y=10; while(y-);printf(“y=%d/n“,y); 程序执行后的输出结果是_。(分数:2.00)A.y=0B.y=-1 C.y=1D.while解析:此题考核的是 while 条件语句及自减运算。当 while 的条件表达式成立时(非零),重复执行循环体, 但此题的 while 循环无循环体,则只要 while 的条件表达式成立,就不断执行 while

18、条件表达式,直到其条 件表达式不成立,程序就自动跳出 while 循环,直接执行 printf 语句。“y”表示先运用 y 的值,再进行 y 自减。本题一开始先判断 y 为 10 的值是否满足条件(同时 y 的值自减 1),显然 y=10 条件满足,则再次 执行 while 语句,判断 y 为 9 的值是否满足条件(同时 y 的值自减 1)直到判断 y 为 0 的值是否满足 条件(同时 y 的值自减 1,即 y=-1),此时条件为假,退出循环,执行 printf 语句,输出 y=-1。4.关于函数重载,下列叙述中错误的是(分数:2.00)A.重载函数的函数名必须相同B.重栽函数必须在参数个数或

19、类型上有所不同C.重栽函数的返回值类型必须相同 D.重栽函数的函数体可以有所不同解析:所谓函数重载是指同一个函数名可以对应着多个函数的实现。这些函数的函数名相同,返回值类型不一定相同,函数体可以有所不同。但一定要注意,重载函数的参数类型和参数个数一定要不同,即要么参数的类型不同,要么参数的个数不同,要么参数的类型和个数都不同。5.有以下程序 main() int c=35;printf(“%d/n“,c 程序运行后的输出结果是_。 (分数:2.00)A.0B.70C.35 D.1解析: 按位“与”时,1 float f=7;,则以下选项中错误的表达式是_。 (分数:2.00)A.k=k=kB.

20、-k+C.k%int(f) D.k=f=m解析:强制类型转换的一般形式为:(类型名)(表达式),而选项 C 中只给表达式加了括号,并没有给类型名也加上括号,所以选项 C 的表达式错误。9.函数模板:template T add(T x,T y) return x+y; 下列对 add 函数的调用不正确的是( )。 (分数:2.00)A.Person(n,a);B.this(Person(n,a) );C.this(n,a); D.this(name,age);解析:如果程序在运行的过程中抛出异常,而这个异常又不是 Runtime- Exception 或者 Error,那么程序必须捕获这个异常

21、进行处理或者声明抛出(throWs)该异 常,捕获异常可以使用 trycatch( ).语句,而抛出异常在方法声明前是声明,在方 法的声明后面加上 throws XxxxException,抛弃多个异常时,在各异常间使用逗号“,”分 隔,题目中的程序在运行时抛出的不是一个 RuntimeExeeption,所有必须捕获或者抛弃, 而程序又没有捕获,所有应该在方法声明中声明抛弃。由于 Exception 是所有异常的父 类,所有当然也可以代表 RuntimeExccption 了。10.关于虚函数下面说的正确的是(分数:2.00)A.若在重定义虚函数时使用了 virtual,则该重定义函数还是虚

22、函数B.虚函数不能声明为友元C.子类必须重定义父类的虚函数D.虚函数不能是 static 的 解析:虚函数一定不能定义为静态的。虚函数可以声明为友元,子类也不是必须重定义父类的虚函数,若在重定义虚函数时使用了 virtual,则该重定义函数不一定还是虚函数。11.在一个派生类对象结束其生命周期时【 】(分数:2.00)A.先调用派生类的析构函数后调用基类的析构函数 B.先调用基类的析构函数后调用派生类的析构函数C.如果基类没有定义析构函数,则只调用派生类的析构函数D.如果派生类没有定义析构函数,则只调用基类的析构函数解析:派生类的析构函数执行顺序为: 对派生类薪增普通成员进行清理。 调用成员对

23、象析构函数,对派生类新增的成员对象进行清理。 调用基类析构函数,对基类进行清理。12.C+语言中用于定义类的关键字是( )。(分数:2.00)A.友元函数没有 this 指针B.调用友元函数时必须在它的实参中给出要访问的对象C.一个类的成员函数也可以作为另一个类的友元函数D.只能在类的公有段声明友元 解析:虚函数一定不能定义为静态的。虚函数可以声明为友元,子类也不是必须重定义父类的虚函数,若在重定义虚函数时使用了 virtual,则该重定义函数不一定还是虚函数。13.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。 (分数:2.00)A.DB 包含 DBS 和 DB

24、MSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMS D.没有任何关系解析:数据库系统由如下几部分组成:数据库、数据库管理系统、数据库管理员、系统平台(硬件平台和 软件平台)。14.有如下程序: #includeiostreamh long fib(int n) if(n 2) return(fib(n-1)+fib(n-2) ); else return(2); void main( ) cout fib(3); 该程序的输出结果是( )。 (分数:2.00)A.数组是最简单的复合数据类型,是有限元素的有序集合B.数组的元素可以是值(基本数据类型)、对象或其他数组C.

25、定义数组时,必须分配内存 D.一个数组中的元素都必须是相同的类型解析:公共变量可以被整个程序调用;私有变量只能被本层模块和下层模块程序调用;而局部变量只能被本层模块调用,其他模块都不能调用局部变量。15.若各选项中所有变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选 项中错误的程序是_。(分数:2.00)A. B.C.D.解析:C 语言程序是由一个主函数和若干个其他函数组成的,主函数的函数名为:main(),main()函数在程 序中的位置是任意的。C 语言程序是从 main()函数开始执行,当程序中定义了多个函数时,通常情况下是 先定义后调用,若被调函数定义在主

26、调函数之后,则必须先声明后调用。在选项 A 中,先执行 main()函数, 此时对 fun()函数进行调用,由于 fun 函数在此调用之前无定义也无声明,故无法正常识别调用,所以选项 A 的程序错误。16.继承机制的作用是( )。(分数:2.00)A.a+1 表示的是字符 t 的地址B.p 指向另外的字符串时,字符串的长度不受限制C.p 变量中存放的地址值可以改变D.a 中只能存放 10 个字符 解析:本题考查数组的定义范围。本题定义 a 为 3 行4 列的数组,它可用的行下标最大为 2,列下标最大为 3。注意:a04超过了数组的范围。17.下列描述中错误的是( )。(分数:2.00)A.派生

27、类可以作为基类派生其他的子类B.派生类继承基类的所有数据成员 C.派生类可以有多个基类D.派生类不能继承一些函数成员解析:本题考查关于 C+语言继承问题。C+语言中通常有 3 种继承修饰符 public,protected 和private,限制依次严格,另外对类中的数据和函数也有这 3 种修饰符进行限制。一个派生类能不能继承基类的所有数据成员受它们的限制。18.下面的哪个选项不能作为函数的返回类型?(分数:2.00)A.voidB.intC.new D.long解析:new 是动态申请内存空间时使用的关键字,不能作为函数的返回 类型,选项 A)为无返回值,选项B)为返回整型,选项 D)为返回

28、长整型。NULL19.表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是( )。(分数:2.00)A.showbase( )和 eof( )B.showpoint( )和 eof( ) C.showpoint( )和 bad( )D.showpoint( )和 good( )解析:表示在输出时显示小数位,和在文件输入时判断文件尾的函数分别是 showpoint( )和 eof( )。 20.设有定义 int n1=0,n2,*p=,以下赋值语句中与 n2=n1;语句等价的是_。 (分数:2.00)A.*p=*q; B.p=q;C.*p=D.p=*q;解析:题面中各变量定义后,指针变量

29、 p 指向了变量 n2 所在的存储单元,指针变量 q 指向了变量 n1 所在 的存储单元,要使得 n1 的值赋给 n2,可用指针变量 q 所指向的存储单元的值赋给指针变量 p 所指向的存 储单元,即*p=*q。21.在结构化方法中,用数据流程图(DFD) 作为描述工具的软件开发阶段是【 】(分数:2.00)A.可行性分析B.需求分析 C.详细设计D.程序编码解析:结构化分析方法是结构化程序设计理论在软件需求分析阶段的运用。而结构化分析就是使用数据流图(DFD) 、数据字典(DD) 、结构化英语、判定表和判定树等工具,来建立一种新的、称为结构化规格说明的目标文档。所以数据流程图是在需求分析阶段使

30、用的。22.决定 C+语言中函数的返回值类型的是( )。(分数:2.00)A.Call ff(5,7,z)B.Call ff(x,y,z) C.Call ff(3+x,5+y,z)D.Call ff(x+y,x-y,z)解析:该程序首先定义一个二维数组 a(2,3),然后利用 DO WHILE-ENDDO 嵌套循环将每个数组元素赋值,即将该数组元素的行下标和列下标之和赋值给对应元素。23.如果不使用多态机制,那么通过基类的指针虽然可以指向派生类对象,但是只能访问从基类继承的成员。有如下程序,没有使用多态机制。 #include using namespace std; class Base i

31、nt a,b; public: Base(int xint y)a=x;b=y; void show()coutshow()实际上也就是执行基类的 show()函数,而这里的构造函数却只能由派生类 D1(10,20,30,40)向基类传递过来,即 Base(10,20),所以 a=0 b=20。24.类 A 是类 B 的友元,类 B 是类 C 的友元,则下列说法正确的是( )。(分数:2.00)A.类 B 是类 A 的友元B.类 C 是类 A 的友元C.类 A 是类 C 的友元D.以上都不对 解析:选项 A)、选项 B)和选项 C)都不正确,因为友元关系是单项的,并且没有交换性、传递性。25.

32、函数 int test(int a,int b=1,int c:0),下列调用不合法的个数是( )。 test(0); test(0,0); test( ); test(0,0,0); (分数:2.00)A.0B.D.9 解析:结构复合索引文件是 Visual FoxPro 数据库中最普通的,也是最重要的一种索引文件,它会随着表的打开而自动打开。26.有如下程序: #include using namespace std; class A public: static int a; void init()a=1;) A(int a=2)init();a+;) ); int A:a=0; A o

33、bj; int main() toutfunc1(); P-func2(); return 0; 运行此程序,屏幕上将显示输出【 】 (分数:2.00)A.B1 B2B.A1 A2C.B1 A2 D.A1 B2解析:在 C+中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。基类中的实函数也可以在派生类中重定义,但重定义的函数仍然是实函数。在实函数的情况下,通过基类指针(或引用)所调用的只能是基类的那个函数版本,无法调用到派生类中的重定义函数。32.在软件开发中,下面任务不属于设计阶段的是

34、【 】(分数:2.00)A.数据结构设计B.给出系统模块结构C.定义模块算法D.定义需求并建立系统模型 解析:数据结构设计、给出系统模块结构以及定义模块算法都属于设计阶段,而定义需求并建立系统模型属于分析阶段。33.下面程序的输出结果是( )。 #includeiostream.h #includestring.h voidmain( ) charp110,p210; strcpy(p1,“abc“); strcpy(p2,“ABC“); charstr50=“xyz“; strcpy(str+2,strcat(p1,p2); coutstr; (分数:2.00)A.start( )B.ini

35、t( )C.paint( ) D.draw( )解析: 在被调用过程中,有这样的语句“StaticSum”,因为变量 Sum 是局部变量,局部变量除了可以用Dim 语句声明外,还可用 Static 语句将变量声明为静态变量,它在程序运行过程中可保留变量的值。具体过程分析如下: 调用 Sat(1),在被调过程中 N=1,执行 For Next 循环,Sat(1)=Sum=1; 调用 sat(2),在被调过程中 N=2,执行 For Next 循环,Sat(2)=Sum=4; 调用 Sat(3),在被调过程中N=3,执行 For Next 循环,Sat(3)=Sum=10; 调用 Sat(4),在

36、被调过程中 N=4,执行 For Next 循环,Sat(4)=Sum=20; 不难看出,最后输出的结果 S 值应为 1+4+10+20=35,所以选项 C)是正确的。 34.执行语句序列 intn: cinn: switch(n) casel: case2:cout1: case 3: case4:cout2: break: delhult:cout3: 时,若键盘输入 1,则屏幕显示【 】(分数:2.00)A.1B.2C.3D.12 解析:本题考核 C语句中的 switch 语句。switch 语句也称为开关语句,用于有多重选择的场合,测试某一个变量具有多个值时所执行的动作。switch

37、语句中每个 case 语句只是一个入口标号,并不能确定执行的终点,因此,每个 case 分支的最后应该加 break 语句,用来结束这个 switch 结构,否则,会从入口点开始,一直执行到 switch 结构的结束点。若键盘输入 1,n 的值被赋为 1,进入第一个分支,没有break 跳出,然后进入第二个分支,执行“cout1“输出 1,然后进入第 3、4 个分支,执行“cout2;“,然后执行 break,跳出 switch 语句。所以最后输出为 12。35.有如下程序 #includeiostreamh void main( ) float x=20,y; if(x00)y=00; el

38、se if(x100)y=10/x; else y=10; cout y; 该程序的输出结果是( )。 (分数:2.00)A.8KB.16KC.32K D.64K解析:在子类覆盖父类的方法时,如果父类的方法的修饰符是 Public,子类一定要用 public。如果父类的方法的修饰符是 private,子类就不能直接访问或重载这个方法。 二、填空题(每空 2 分,共 30 分)(总题数:13,分数:390.00)36.以下程序运行后的输出结果是 1。 main2 int x=0210; printf(“%X/n“,x); (分数:30.00)填空项 1:_ (正确答案:88)解析: 由于八进制数

39、以 0 开头,所以 0210 表示八进制数;“%X”的格式指以十六进制形式输出,输出十 六进制的“af”时以大写字母输出。所以本题可以先将 0210 化为十进制,然后再化为十六进制。37.C+语言程序的注释可以出现在程序中的任何地方,一个注释以 1 作为开始和结束的标记。(分数:30.00)填空项 1:_ (正确答案:/ * * /)解析:C+语言程序的注释可以出现在程序中的任何地方,一个注释以“/ *,”开始, 以“* /”为结束。38.内联函数是通过 1 来实现的,因此内联函数是真正的函数。(分数:30.00)填空项 1:_ (正确答案:编译器)解析:本题考查内联函数的基本概念内联函数是通

40、过编译器,只是在调用的时候,像宏一样展开。39.下列 for 语句的循环次数为 1。 for(int a=0,b=1;b main1 int x,y; scanf(“%d“, y=sub(sub(sub(x); printf(“%d/n“,y); 若运行时输入 1234,程序的输出结果是 2。 (分数:30.00)填空项 1:_ (正确答案:10)解析:本题考查的是函数的调用,函数 sub 调用后的返回值仍被作为实参传递给函数 sub 的形参,此种调 用连续进行 3 次,第一次调用:sub(1234)的返回值为 1234/10+1234%10,即 127;第二次调用:sub(127)的 返回值

41、为 127/10+127%10;即 19;第三次调用:sub(19)的返回值为 19/10+19%10,即 10。所以程序输出的 结果是 10。48.下面程序的运行结果是 1 和 2。 #includeiostreamh #define N 10 #define s(x)x * x #define f(x)(x * x) void main3 int i1,i2; i1=1000/s(N);i2=1000/f(N); cout i1 “ “ i2; (分数:30.00)填空项 1:_ (正确答案:1000)解析:对于 define 宏定义语句,系统会在编译前进行替换。本题替换过程如下: i1=1000/s(N) i1=1000/s(10) i1=1000/10*10 i1=1000 i2=1000/f(N) i2=1000/f(10) i2=1000/(10*10) i2=10

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1