计算机自考题库安全,计算机安全员考试培训题库专栏

点赞:15323 浏览:61744 近期更新时间:2024-03-05 作者:网友分享原创网站原创

2016年秋江苏省计算机等级考试试题

C++语言程序设计(第二部分)

选择题(用答题卡答题,答案依次填在21~30答题号内)

21.对于for和do等while循环语句,以下描述正确的是(2).B.两个语句中的循环体可能都不执行

C.do等while语句中的循环体至少执行一次D.两个语句中的循环体至少执行一次

22.设有说明语句:inthh[4]等于{2,3,4},*p等于hh,则以下选项中存在语法错误的是(2).23.以下说明语句中,不存在语法错误的是(2).,B.int_s1等于25,-s2等于100,

C.intn,cin>,>,n,intarr[n],D.charstr[]等于{"Iamastudent"},

24.设有语句:inta等于10,b等于20,c等于30,则执行语句:cout<,<,(a,b,c),其输出结果是(2)B.20C.30D.10,20,30

25.以下关于运算符重载(2)C++已有的任何运算符都可以重载D.运算符重载时可改变其实现的功能

26.设有函数原型说明:float*f(int,float),则表示该函数f的返回值为(2)B.指向一个实数的指针C.该函数的地址D.指向一个函数的指针

27.下列有关构造函数的叙述中,不正确的是(2)A.可以定义没有构造函数的类B.任何一个类必定有构造函数

C.类的构造函数可以重载D.构造函数没有返回值

28.下列有关类成员的叙述中,不正确的是(2)A.当不指定类成员的访问权限时则为私有成员B.友元函数可访问类中的任一成员

C.指定为public的成员不允许在类外访问D.成员函数可访问类中的任一成员

29.以下关于类和对象的叙述中,不正确的是(2)A.不同的类可以产生相同类型的对象B.类是一种类型,它定义了数据和操作

C.对象是类的实例D.任一对象必属于某一个类

30.以下关于指针运算的叙述中,不正确的是()A.可以将NULL赋给任一指针变量

B.两个同类型的指针变量可进行相等或不等的运算

C.指针变量的值加上常数n,使该指针指向当前元素其后的第n个元素

D.指向同一数组的两个指针变量,在任何情况下,两指针变量相减是无意义的

填空题(请将答案填写在答题纸的相应答题号内,每个答案只占一行)

●基本概念题,共5分

1.每一个类均有构造函数和析构函数,这两个函数中不可以定义为虚函数的是(1).

2.定义了宏:#defineF(x,y,z)x/y*z

执行语句:b等于F(3+4,2+2,4+4),其变量b的值为(2).

3.函数重载(3)实现的多态性属于静态多态性.定义的函数不返回任何值时,则在定义函数时在函数名前加保留字(关键字)(4).

5.C++关于存储类型的说明符一共有四种,分别是auto,static,extern和(5).

●阅读程序题,共13分

6.[程序](2分)

#include<,iostream.h>,

voidmain(void)

{

intc2,c3,c5,m等于20,

c2等于c3等于c5等于0,

for(inti等于1,i<,等于m,i++){

if(i等于等于15||i等于等于14)continue,

if(i%2等于等于0)c2++,

if(i%3等于等于0)c3++,

if(i%7等于等于0)c5++,

}

cout<,<,c2<,<,endl<,<,c3<,<,endl<,<,c5<,<,endl,

}

程序输出的第一行是(6),第三行是(7).

7.[程序](2分)

#include<,iostream.h>,

intf(inta,int&,b,int*c)

{

a+等于b,b+等于*c,*c+等于a,

return(a+b+*c),

}

voidmain(void)

{

intx等于5,y等于5,z等于6,sum,

for(inti等于0,i<,2,i++){

sum等于f(x,y,&,z),

cout<,<,x<,<,'\t'<,<,y<,<,'\t'<,<,z<,<,'\t'<,<,sum<,<,'\n',

}

}

程序输出的第一行是(8),第二行是(9).

8.[程序](2分)

#include<,iostream.h>,

voidf(ints[],int*y)

{

staticintt等于3,

*y等于s[t],

s[t]*等于2,

t--,

}

voidmain(void)

{

inta[]等于{1,2,3,4},i,

intx等于0,

for(i等于0,i<,4,i++){

f(a,&,x),

cout<,<,x<,<,endl,

}

for(i等于0,i<,4,i++)cout<,<,a[i]<,<,'\t',

cout<,<,'\n',

}

程序输出的第二行为(10),最后一行为(11).

9.[程序](3分)

#include<,iostream.h>,

voidf(intx,inty)

{

charres[10]等于{0},

inti等于0,rem,

do{

rem等于x%y,

x等于x/y,

if(rem<,10)res[i]等于'0'+rem,elseres[i]等于'A'+rem-10,

i++,

}while(x!等于0),

i--,

for(,i>,等于0,i--)cout<,<,res[i],

cout<,<,endl,

}

voidmain(void)

{

f(23,10),

f(45,8),

f(50,16),

}

程序输出的第一行是(12),第二行是(13),第三行是(14).

10.[程序](2分)

#include<,iostream.h>,

charst[]等于"Yourfriend!",

voidf2(int),

voidf1(inti)

{

cout<,<,(st+i)<,<,endl,

if(i<,3){

i+等于2,

f2(i),

}

}

voidf2(inti)

{

cout<,<,st[i]<,<,endl,

if(i<,3){

i+等于2,

f1(i),

}

}

voidmain(void)

{

inti等于0,

f1(i),

}

程序输出的第一行是(15),第二行是(16).

11.[程序](2分)

#include<,iostream.h>,

classA{

public:

A(char*s){cout<,<,s<,<,endl,}

A(){},

},

classB:publicA{//L1

public:

B(char*s1,char*s2):A(s1)

{cout<,<,s2<,<,endl,}

},

classC:publicA{//L2

public:

C(char*s1,char*s2):A(s1)

{cout<,<,s2<,<,endl,}

},

classD:publicB,publicC{

public:

D(char*s1,char*s2,char*s3,char*s4):B(s1,s2),C(s1,s3)

{cout<,<,s4<,<,endl,}

},

voidmain(void)

{

D*ptr等于newD("students","study","C++","hard"),

deleteptr,

}

程序共输出(17)行,将L1行改为:classB:virtualpublicA{//L1

将L2行改为:classC:virtualpublicA{//L2

程序共输出(18)行.

●完善程序题,共12分

12.以下程序的功能是:把从键盘上输入的一个大于等于3的整数分解为质因子的乘积.例如,输入50时,则输出:50等于2*5*5,输入45时,则输出:45等于3*3*5,输入37时,则输出:37等于37.

[程序](4分)

计算机自考题库安全,计算机安全员考试培训题库专栏参考属性评定
有关论文范文主题研究: 关于函数的文章 大学生适用: 学年论文、学位论文
相关参考文献下载数量: 18 写作解决问题: 如何怎么撰写
毕业论文开题报告: 论文模板、论文目录 职称论文适用: 核心期刊、高级职称
所属大学生专业类别: 如何怎么撰写 论文题目推荐度: 优质选题

#include<,iostream.h>,

intprime(intx)//求大于x的最小质数(素数)

{

intflag等于1,

x++,

while((19)){

inti等于2,

while(i<,x){

if((20))break,

i++,

}

if(i<,x)x++,elseflag等于0,

}

returnx,

}

voidf(intn)//将n分解为若干个质数之积

{

intflag等于1,

inti等于2,//保证i为质数

do{

while((21)){

if(flag等于等于1){

cout<,<,i,

flag等于0,

}

elsecout<,<,'*'<,<,i,

n等于n/i,

}

(22),

}while(i<,n),

if(n!等于1)

if(flag等于等于1)cout<,<,n,elsecout<,<,'*'<,<,n,

}

voidmain(void)

{

intx,

do{

cout<,<,"请输入一个整数,若小于3则重输:",

cin>,>,x,

}while(x<,3),

cout<,<,x<,<,'等于',

f(x),

cout<,<,endl,

}

13.以下程序的功能是:实现两个字符串拼接,函数strcat(char*s1,char*s2)先将s1所指向的字符串拷贝到s所指向的动态申请的存储空间,接着将s2所指向的字符串拼接s所指向的字符后面,并返回拼接后的字符串.

[程序](4分)

#include<,iostream.h>,

char*strcat(char*s1,char*s2)

{

char*s,*p,*q,

intlen1等于0,len2等于0,

p等于s1,

while(*p!等于'\0'){

len1++,

p++,

}

p等于s2,

while(*p!等于'\0'){

len2++,

p++,

}

s等于q等于(23),

p等于s1,

for(inti等于0,i<,len1,i++)*q++等于*p++,

p等于s2,

while((24)),

(25),

}

voidmain(void)

{

chars1[]等于"visual",

chars2[]等于"isesay",

char*s,

s等于(26),

cout<,<,s<,<,endl,

delete[]s,

}

14.下面程序的功能是:将两个有序链表合并为一个有序链表.函数merge(node*h1,node*h2)将由h1和h2合并一个依然有序链表大小相同15,9,8,7,3

h2:15,12,10,7,3,2

合并后得到的新链表为:15,15,12,10,9,8,7,7,3,3,2

[程序](4分) #include<,iostream.h>,

structnode{

intdata,

node*next,

},

node*merge(node*h1,node*h2)

{

if(h1等于等于NULL)returnh2,

if(h2等于等于NULL)returnh1,

node*h等于NULL,

if((27)){

h等于h1,

h1等于h1->,next,

}

else{

h等于h2,

h2等于h2->,next,

}

node*p等于h,

while((28)){

if(h1->,data>,等于h2->,data){

p->,next等于h1,

p等于h1,

h1等于h1->,next,

}

else{

p->,next等于h2,

p等于h2,

h2等于h2->,next,

}

}

if(h1!等于NULL)(29),

else

if(h2!等于NULL)p->,next等于h2,

returnh,

}

voidmain(void)

{

nodea[5]等于{{15},{9},{8},{7},{3}},

nodeb[6]等于{{15},{12},{10},{7},{3},{2}},

node*h,*h1,*h2,*p,


inti,

h1等于a,

h2等于b,

for(i等于0,i<,4,i++)a[i].next等于&,a[i+1],//形成a链表

a[4].next等于NULL,

for(i等于0,i<,5,i++)b[i].next等于&,b[i+1],//形成b链表

b[5].next等于NULL,

(30),

p等于h,

while(p){

cout<,<,p->,data<,<,'\t',

p等于p->,next,

}

cout<,<,endl,

}

VC++2016年秋笔试卷的参:

21.C22.B23.D24.C25.D26.B27.A28.C29.A30.D

构造函数

17

运算符重载4.void

5.register

9

7.1

8.5111637

9.5273275

3

2468

12.23

13.55

14.32

15.Yourfriend!

16.u

17.5

18.3

19.flag

20.x%i等于等于0

21.n%i等于等于0

22.i等于prime(i)

newchar[len1+len2+1]

*q++等于*p++

returns

strcat(s1,s2)

27.h1->,data>,h2->,data

28.h1!等于NULL&,&,h2!等于NULL

29.p->,next等于h1

30.h等于merge(h1,h2)

1

第4页VC++