接下来,星空考试网将带你认识并了解计算机二级试题,希望可以给你带来一些启示。

计算机二级考试C++试题

计算机二级考试C++试题

计算机二级考试C++试题

C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。以下是我整理的关于计算机二级考试C++试题,希望大家认真阅读!

1[单选题] 已知函数FA调用函数FB,若要把这两个函数定义在同一个文件中,则( )。

A.FA必须定义在FB之前

B.FB必须定义在FA之前

C.若FA定义在FB之后,则FA的原型必须出现在FB的定义之前

D.若FB定义在FA之后,则FB的原型必须出现在FA的定义之前

参考答案:D

参考解析:如果使用用户自己定义的函数,而该函数与调用它的函数(即主调用函数)在同一程序单元中,且位置在主调用函数之后,则必须在调用此函数之前对被凋用的函数作声明。

2[单选题]单个用户使用的数据视图的描述称为

A.外模式 B.概念模式 C.内模式 D.存储模式

参考答案:A

3[单选题] 生成派生类对象时,派生类构造函数调用基类构造函数的条件是()。

A.无需任何条件

B.基类中显式定义了构造函数

C.派生类中显式定义了构造函数

D.派生类构造函数明确调用了基类构造函数

参考答案:D

参考解析:派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。

4[单选题] 下列叙述中正确的是()。

A.在面向对象的.程序设计中,各个对象之间具有密切的关系

B.在面向对象的程序设计中,各个对象都是公用的

C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小

D.上述三种说法都不对

参考答案:C

参考解析:面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。

5[简答题] 有以下两个程序,分析它们的执行结果有什么不同。

程序1:

#include

class Point

{

int x,y;

public:

Point(){x=y=0;}

Point(int i,int j){x=i;y=j;}

Point operator+(Point);

void disp() ( cout<<”(”<

}

Point Point::operator+(Point P)

{

this->x+=P.x; this->y+=p.y;

return *this;

}

void main()

{

Point pl(2,3),p2(3,4),p3;

cout<<”p1:”;p1.disp();

cout<<”p2:”;p2.disp();

p3=pl+p2;

cout<<”执行p3=p1+p2后”<

cout<<”p1:”,p1.disp();

cout<<”p2:”;p2.disp();

cout<<”p3:”;p3.disp();

}

程序2:

#include

class Point{

int x,Y;

public:

Point(){x=y=O;}

Point(int i,int j){x=i,y=j;}

Point operator+(Point);

void disp f){cout<< ”(”<

}

Point Point::operator+(Point P)

{

Point s;

s.x=x+p.x; s.y=y+p.y;

return s;

}

void main()

{

Point pl(2,3),p2(3,4),p3;

cout<<”p1:”;p1.disp();

cout<<”p2:”;p2.disp();

p3=pl+p2;

cout<<”执行p3=p1+p2后”<

cout<<”p1:”;p1.disp();

cout<<”p2:”;p2.disp();

cout<<”p3:”;p3.disp();

}

参考解析:这两个程序中的main函数完全相同,类Point中的运算符重载均采用成员函数方式实现,只是程序1的运算符重载函数使用this指针,而程序2的运算符重载函数使用局部对象。

p3=p1+p2 等价于p3=p1.operator+(p2)。对于程序1,this指针指向p1对象,执行this->x+=p.x;this->y十一 p.y;语句,修改p l对象的x和y成员值,执行return*this;语句,将pl对象赋给p3。所以p1和p3两个对象的x、Y值相同,即p3=pl+p2等价于 p1=p1+p2,p3:p1,其运行结果如下:

p1:(2,3)

p2:(3,4)

执行p3=pl+p2后

P1:(5,7)

p2:(3,4)

P3:(5,7)

对于程序2,执行运算符重载函数,Point s;语句定义一个对象,s.x=x+p.x;s.y=y+p.y;语句用于修改s对象的x、Y值,ret%il~l s;语句返回该对象,赋给p3,而p1和p2对象不改变。其运行结果如下:

p1:(2,3)

p2:(3,4)

执行p3=pl+p2后

p1:(2,3)

p2:(3,4)

p3:(5,7)第

;

计算机二级考试C++试题

计算机二级考试C++试题

C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。以下是我整理的关于计算机二级考试C++试题,希望大家认真阅读!

1[单选题] 已知函数FA调用函数FB,若要把这两个函数定义在同一个文件中,则( )。

A.FA必须定义在FB之前

B.FB必须定义在FA之前

C.若FA定义在FB之后,则FA的原型必须出现在FB的定义之前

D.若FB定义在FA之后,则FB的原型必须出现在FA的定义之前

参考答案:D

参考解析:如果使用用户自己定义的函数,而该函数与调用它的函数(即主调用函数)在同一程序单元中,且位置在主调用函数之后,则必须在调用此函数之前对被凋用的函数作声明。

2[单选题]单个用户使用的数据视图的描述称为

A.外模式 B.概念模式 C.内模式 D.存储模式

参考答案:A

3[单选题] 生成派生类对象时,派生类构造函数调用基类构造函数的条件是()。

A.无需任何条件

B.基类中显式定义了构造函数

C.派生类中显式定义了构造函数

D.派生类构造函数明确调用了基类构造函数

参考答案:D

参考解析:派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。

4[单选题] 下列叙述中正确的是()。

A.在面向对象的.程序设计中,各个对象之间具有密切的关系

B.在面向对象的程序设计中,各个对象都是公用的

C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小

D.上述三种说法都不对

参考答案:C

参考解析:面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。

5[简答题] 有以下两个程序,分析它们的执行结果有什么不同。

程序1:

#include

class Point

{

int x,y;

public:

Point(){x=y=0;}

Point(int i,int j){x=i;y=j;}

Point operator+(Point);

void disp() ( cout<<”(”<

}

Point Point::operator+(Point P)

{

this->x+=P.x; this->y+=p.y;

return *this;

}

void main()

{

Point pl(2,3),p2(3,4),p3;

cout<<”p1:”;p1.disp();

cout<<”p2:”;p2.disp();

p3=pl+p2;

cout<<”执行p3=p1+p2后”<

cout<<”p1:”,p1.disp();

cout<<”p2:”;p2.disp();

cout<<”p3:”;p3.disp();

}

程序2:

#include

class Point{

int x,Y;

public:

Point(){x=y=O;}

Point(int i,int j){x=i,y=j;}

Point operator+(Point);

void disp f){cout<< ”(”<

}

Point Point::operator+(Point P)

{

Point s;

s.x=x+p.x; s.y=y+p.y;

return s;

}

void main()

{

Point pl(2,3),p2(3,4),p3;

cout<<”p1:”;p1.disp();

cout<<”p2:”;p2.disp();

p3=pl+p2;

cout<<”执行p3=p1+p2后”<

cout<<”p1:”;p1.disp();

cout<<”p2:”;p2.disp();

cout<<”p3:”;p3.disp();

}

参考解析:这两个程序中的main函数完全相同,类Point中的运算符重载均采用成员函数方式实现,只是程序1的运算符重载函数使用this指针,而程序2的运算符重载函数使用局部对象。

p3=p1+p2 等价于p3=p1.operator+(p2)。对于程序1,this指针指向p1对象,执行this->x+=p.x;this->y十一 p.y;语句,修改p l对象的x和y成员值,执行return*this;语句,将pl对象赋给p3。所以p1和p3两个对象的x、Y值相同,即p3=pl+p2等价于 p1=p1+p2,p3:p1,其运行结果如下:

p1:(2,3)

p2:(3,4)

执行p3=pl+p2后

P1:(5,7)

p2:(3,4)

P3:(5,7)

对于程序2,执行运算符重载函数,Point s;语句定义一个对象,s.x=x+p.x;s.y=y+p.y;语句用于修改s对象的x、Y值,ret%il~l s;语句返回该对象,赋给p3,而p1和p2对象不改变。其运行结果如下:

p1:(2,3)

p2:(3,4)

执行p3=pl+p2后

p1:(2,3)

p2:(3,4)

p3:(5,7)第

;

计算机二级MS OFFICE高级应用考试试题

计算机网络是这样定义的:存在着一个能为用户自动管理的网络操作系统。由它调用完成用户所调用的资源,而整个网络像一个大的计算机系统一样,对用户是透明的。下面是关于计算机二级MS OFFICE高级应用考试试题,欢迎大家参考!

一、选择题

1、下列数据结构中,属于非线性结构的是().

A.循环队列

B.带链队列

C.二叉树

D.带链栈

2、下列数据结构中,能够按照“先进后出”原则存取数据的是().

A.循环队列

B.栈

C.队列

D.二叉树

3、对于循环队列,下列叙述中正确的是().

A.队头指针是固定不变的

B.队头指针一定大于队尾指针

C.队头指针一定小于队尾指针

D.队头指针可以大于队尾指针,也可以小于队尾指针

4、算法的空间复杂度是指().

A.算法在执行过程中所需要的计算机存储空间

B.算法所处理的数据量

C.算法程序中的语句或指令条数

D.算法在执行过程中所需要的临时工作单元数

5、软件设计中划分模块的一个准则是().

A.低内聚低耦合

B.高内聚低耦合

C.低内聚高耦合

D.高内聚高耦合

6、下列选项中不属于结构化程序设计原则的是().

A.可封装

B.自顶向下

C.模块化

D.逐步求精

7、数据库管理系统是().

A.操作系统的一部分

B.在操作系统支持下的系统软件

C.一种编译系统

D.一种操作系统

8、在E-R图中,用来表示实体联系的图形是().

A.椭圆形

B.矩形

C.菱形

D.三角形

9、 20GB的硬盘表示容量约为().

A.20亿个字节

B.20亿个二进制位

C.200亿个字节

D.200亿个二进制位

10、 计算机安全是指计算机资产安全,即().

A.计算机信息系统资源不受自然有害因素的威胁和危害

B.信息资源不受自然和人为有害因素的威胁和危害

C.计算机硬件系统不受人为有害因素的威胁和危害

D.计算机信息系统资源和信息资源不受自然和人为有害因素的威胁和危害

二,操作题

1、请在【答题】菜单下选择【进入考生文件夹】命令,并按照题目要求完成下面的操作.

注意:以下的文件必须都保存在考生文件夹下.

文档“北京政府统计工作年报.docx”是一篇从互联网上获取的文字资料,请打开该文档并按下列要求进行排版及保存操作:

(1)将文档中的西文空格全部删除.

(2)将纸张大小设为16开,上边距设为3.2cm、下边距设为3cm,左右页边距均设为2.5cm.

(3)利用素材前三行内容为文档制作一个封面页,令其独占一页(参考样例见文件“封面样例.png”).

(4)将标题“(三)咨询情况”下用蓝色标出的段落部分转换为表格,为表格套用一种表格样式使其更加

美观.基于该表格数据,在表格下方插入一个饼图,用于反映各种咨询形式所占比例,要求在饼图中仅显示百分比.

(5)将文档中以“一、”、“二、”……开头的段落设为“标题l”样式;以“(一)”、“(二)”……开头的段落设为“标题2”样式;以“l、”、“2、”……开头的段落设为“标题3”样式.

(6)为正文第2段中用红色标出的文字“统计局队政府网站”添加超链接,链接地址为“http://;.同时在“统计局队政府网站”后添加脚注,内容为“http://;.

(7)将除封面页外的所有内容分为两栏显示,但是前述表格及相关图表仍需跨栏居中显示,无需分栏.

(8)在封面页与正文之间插入目录,目录要求包含标题第1-3级及对应页号.目录单独占用一页,且无须分栏.

(9)除封面页和目录页外,在正文页上添加页眉,内容为文档标题“北京市政府信息公开工作年度报告”和页码,要求正文页码从第l页开始,其中奇数页眉居右显示,页码在标题右侧,偶数页眉居左显示,页码在标题左侧.

(10)将完成排版的分档先以原word格式及文件名“北京政府统计工作年报.docx”进行保存,再另行生成一份同名的PDF文档进行保存.

22、请在【答题】菜单下选择【进入考生文件夹】命令,并按照题目要求完成下面的操作.

注意:以下的文件必须都保存在考生文件夹下.

中国的人口发展形势非常严峻,为此国家统计局每l0年进行一次全国人口普查,以掌握全国人口的增长及规模.按照下列要求完成对第五次、第六次人口普查数据的统计分析:

(1)新建一个空白Excel文档,将工作表sheet1更名为“第五次普查数据”,将sheet2更名为“第六次普查数据”,将该文档以“全国人口普查数据分析.xlsx”为文件名进行保存.

(2)浏览网页“第五次全国人口普查公报.htm”,将其中的“2000年第五次全国人口普查主要数据”表格导入到工作表“第五次普查数据”中;浏览网页“第六次全国人口普查公报.htm”,将其中的“2010年第六次全国人口普查主要数据”表格导入到工作表“第六次普查数据”中(要求均从Al单元格开始导入,不得对两个工作表中的数据进行排序).

(3)对两个工作表中的数据区域套用合适的表格样式,要求至少四周有边框、且偶数行有底纹,并将所有人口数列的`数字格式设为带千分位分隔符的整数.

(4)将两个工作表内容合并,合并后的工作表放置在新工作表“比较数据”中(自A1单元格开始),且保持最左列仍为地区名称、Al单元格中的列标题为“地区”,对合并后的工作表适当的调整行高列宽、字体字号、边框底纹等,使其便于阅读.以“地区”为关键字对工作表“比较数据”进行升序排列.

(5)在合并后的工作表“比较数据”中的数据区域最右边依次增加“人口增长数”和“比重变化”两列,计算这两列的值,并设置合适的格式.其中:人口增长数=2010年人口数-2000年人口数;比重变化=2010年比重-2000年比重.

(6)打开工作簿“统计指标.xlsx”,将工作表“统计数据”插入到正在编辑的文档“全国人口普查数据分析.xlsx”中工作表“比较数据”的右侧.

(7)在工作簿“全国人口普查数据分析.xlsx”的工作表“比较数据”中的相应单元格内填人统计结果.

(8)基于工作表“比较数据”创建一个数据透视表,将其单独存放在一个名为“透视分析”的工作表中.透视表中要求筛选出2010年人口数超过5000万的地区及其人口数、2010年所占比重、人口增长数,并按人口数从多到少排序.最后适当调整透视表中的数字格式.(提示:行标签为“地区”,数值项依次为2010年人口数、2010年比重、人口增长数).

下半年计算机二级c语言基础试题

下半年计算机二级c语言基础试题

任何设计活动都是在各种约束条件和相互矛盾的需求之间寻求一种平衡,程序设计也不例外。下面是我收集的关于计算机二级c语言基础试题,希望大家认真阅读!

下半年计算机二级c语言基础试题1

一、选择:

1.给出以下定义:

char acX[ ]= "abcdefg";

char acY[ ]= {'a','b','c','d','e','f','g'};

则正确的叙述为( )

A) 数组acX和数组acY等价 B) 数组acX和数组acY的长度相同

C) 数组acX的长度大于数组acY的长度 D) 数组acX的长度小于数组acY的长度

答案:C

2.

void example(char acHello[])

{

printf("%d", sizeof(acHello));

return;

}

void main()

{

char acHello[] = "hello";

example(acHello);//数组名称作参数,传的是地址,一个地址占四个字节

return;

}

的输出是

A 4 B 5 C 6 D不确定

答案:A

3. 有以下程序段

char acArr[]= "ABCDE";

char *pcPtr;

for(pcPtr = acArr; pcPtr < acArr + 5; pcPtr++)

{

printf("%s/n", pcPtr);

}

return;

输出结果是( )

A) ABCD B) A C) E D) ABCDE

B D BCDE

C C CDE

D B DE

E A E

答案:D

4.在中断中,不能同步获取信号量,但是可以释放信号量。

A.正确 B.错误

答案:A

5.以下叙述中不正确的是( )

A) 在不同的函数中可以使用相同名字的变量

B) 函数中的形式参数是局部变量

C) 在一个函数内定义的变量只在本函数范围内有效

D) 在一个函数内的复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码)

答案:D

6.设有如下定义:

unsigned long pulArray[] = {6, 7, 8, 9, 10};

unsigned long *pulPtr;

则下列程序段的输出结果为( )

pulPtr = pulArray;

*(pulPtr + 2) += 2;

printf ("%d,%d/n", *pulPtr, *(pulPtr + 2));

A)8,10 B)6,8 C)7,9 D)6,10

答案:D

7. 定义结构体时有下面几种说法,请指出正确的(多选):

A、结构体中的每个部分,最好进行四字节对齐;

B、结构体的总长度最好是四字节对齐;

C、结构中成员的存放不用考虑字节对齐情况;

答案:A、B

8.void example()

{

int i;

char acNew[20];

for(i = 0; i < 10; i++)

{

acNew[i] = '0';

}

printf("%d/n", strlen(acNew));

return;

}

的输出为( )

A 0 B 10 C 11 D不确定

答案:D

9.switch(c)中的c的数据类型可以是char、long、float、unsigned、bool. ( )

A. 正确 B. 错误

答案:B

10. 网络上传输的字节序默认是大字节的,如果主机是小字节序,在网络通信时则须进行字节序转换;如果主机是

大字节序,为了程序的一致性及可移植性,最好也在程序中加上字节序转换的操作(空操作)。

A. 正确 B.错误

答案:A

二、 填空题

1、 C语言函数返回类型的默认定义类型是

2、 函数的实参传递到形参有两种方式: 和

3、在一个函数内部调用另一个函数的调用方式称为 。在一个函数内部直接或间接调用该函数成为函数 的调用方式

4、C语言变量按其作用域分为 和

5、凡在函数中未指定存储类别的局部变量,其默认的存储类别为

三、 看程序写结果

1、#include

Int abc(int u,int v);

Void main()

{int a=24,b=16,c;

c=abc(a,b);

printf(“value=%d”,c);

}

Int abc(int u, int v)

{int w;

While(v)

{w=u%v;

u=v;

v=w;

}

Return u;

}

2、#include

int x1=30,x2=40;

main()

{int x3=10,x4=20;

sub(x3,x4);

sub(x2,x1);

printf(“%d,%d,%d,%d ”,x3,x4,x1,x2);

}

sub(int x,int y)

{x1=x;x=y;y=x1;}

3、#include

Main()

{int i=5;

Printf(“%d ”,sub(i));

}

sub(int n)

{int a;

If(n==1) return 1;

a=n+sub(n-1);

return (a);

}

4、#include

Void fun()

{static int m;

m+=2;

printf(“%d ”,m);

}

Main()

{int a;

For(a=1;a<=4;a++) fun();

Printf(“ ”);

}

四、 编程题

1、 编写一个函数,判断任一整数是否为素数,用main()函数调用并测试之。

2、 用递归方法求n!

3、 有一个一维数组,内放10个学生成绩,写一个函数,求出平均分,最高分和最低分

下半年计算机二级c语言基础试题2

1.下列叙述中正确的是( )。

A. 所有数据结构必须有根结点

B. 所有数据结构必须有终端结点(即叶子结点)

C. 只有一个根结点,且只有一个叶子结点的数据结构一定是线性结构

D. 没有根结点或没有叶子结点的数据结构一定是非线性结构

【答案】D

【解析】D项正确,线性结构的特点是:

①集合中必存在“第一个元素"且惟一;

②集合中必存在“最后一个元素”且惟一;

③除最后一个元素外,其他数据元素均有惟一的“后继;

④除第一个元素外,其他数据元素均有惟一的“前驱”。所以没有根结点或没有叶子结点的数据结构一定是非线性结构。AB两项错误,不是所有数据结构都必须有根结点和叶子结点;C项错误,数据结构中若有中间结点不满足只有一个前件或者后件的条件,就不是线性结构。答案选择D选项。

2. 以下叙述中错误的是( )。

A. C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

B. C程序经过编译、链接步骤之后才能形成一个真正可执行的二进制机器指令文件

C. 用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中

D. C语言源程序经编译后生成后缀为.obj的目标程序

【答案】A

【解析】A项错误,注释语句不会被翻译成二进制的'机器指令。C源程序经过C编译程序编译之后生成后缀为.obj的二进制文件(称为目标文件),然后由“链接程序”(Link)的软件把.obj文件与各种库函数连接起来生成一个后缀为.exe的可执行文件。答案选择A选项。

3. C语言主要是借助以下( )功能来实现程序模块化的。

A. 定义函数

B. 定义常量和外部变量

C. 三种基本结构语句

D. 丰富的数据类型

【答案】A

【解析】C程序的模块化主要通过函数来实现。C语言允许对函数单独进行编译,从而可以实现模块化。答案选择A选项。

4. 有以下程序段:

char ch;

int k;

ch='a';

k=12;

print("%c,%d,",h,ch,k);

printf("k=%d ",k);

已知字符a的ASCII码十进制值为97,则执行上述程序段后输出的结果是( )。

A. 因变量类型与格式描述符的类型不匹配输出无定值

B. 输出项与格式描述符个数不符,输出为零值或不定值

C.a,97,12k=12

D. a,97,k=12

【答案】D

【解析】字符变量的值是该字符的ASCII码值,可以参与整型变量所允许的任何运算。"ch='a",%c表示以字符格式输出ch的值,所以输出为a;%d表示以十进制代码的形式输出ch的值,为97;k没有对应的输出格式,不输出。在第二个语句中,首先输出"k=",然后以十进制代码输出k的值,为12。答案选择D选项。

5. 下列叙述中正确的是( )。

A. 栈是“先进先出”的线性表

B. 队列是“先进后出"的线性表

C. 循环队列是非线性结构

D. 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构

【答案】D

【解析】有序的线性表既可采用顺序存储结构,也可以采用链式存储结构。A项错误,栈是“先进后出"的线性表B项错误,队列是“先进先出"的线性表;C项错误,循环队列是线性结构的,有序的线性表既可采用顺序存储结构,也可采用链式存储结构。

答案选择D选项。

6. 某二叉树的中序序列为DCBAEFG,后序序列为DCBGFEA,则该二叉树的深度(根结点在第1层)为( )。

A. 5

B. 40

C.3

D. 2

【答案】B

【解析】二叉树的后序序列为DCBGFEA,则A为根结点。中序序列为DCBAEFG,则DCB为左子树结点,EFG为右子树结点。同理B为C父结点,C为D父结点。根据分析,可画出左子树,同理E为F父结点,F为G父结点。根据分析,可画出右子树,故二叉树深度为4层。答案选择B选项。

7. 设有定义:struct{intn;floatx;}s[2],m[2]={{10,2.8},{0,0.0}};,则以下赋值语句中正确的是( )。

A. s[0]=m[1];

B. s=m;

C.s.n=m.n;

D. s[2].x=m[2].x;

【答案】A

【解析】定义了结构体类型数组s,长度为2,结构体类型数组m,长度为2,并对数组m进行了初始化。同类型的结构体可以直接用变量名实现赋值,A项正确;数组名为数组首地址,地址常量之间不可以相互赋值,B项错误;数组名为地址常量不是结构体变量,不能引用成员,C项错误;s[2]与m[2]数组越界,D项错误。答案选择A选项。

8. 关于C语言标识符,以下叙述错误的是( )。

A. 标识符可全部由数字组成

B. 标识符可全部由下划线组成

C. 标识符可全部由小写字母组成

D. 标识符可全部由大写字母组成

【答案】A

【解析】C语言标识符只能由字母、数字、下划线构成,且只能以字母、下划线开头,故答案选择A选项。

9. 以下程序段中的变量已定义为int类型,则

sum=pAd=5;

pAd=sum++,++pAd,pAd++;

printf("%d ",pAd);

程序段的输出结果是( )。

A. 6

B. 4

C. 5

D. 7

【答案】D

【解析】自增和自减运算符的两种用法:前置运算,运算符放在变量之前,规则是先使变量的值增(或减)1,然后以变化后表达式的值参与其他运算;后置运算,运算符放在变量之后,规则是变量先参与其他运算,然后再使变量的值增(或减)1。执行pAd=sum++,sum++是后置自增,执行完后,pAd=5,sum=6。++pAd和pAd++语句中没有其他运算,即效果相同,pAd分别加1,两句执行完后,pAd7。答案选择D选项。

;