C语言程序设计自检自测题及解答一Word下载.docx

上传人:b****3 文档编号:17096918 上传时间:2022-11-28 格式:DOCX 页数:11 大小:22.88KB
下载 相关 举报
C语言程序设计自检自测题及解答一Word下载.docx_第1页
第1页 / 共11页
C语言程序设计自检自测题及解答一Word下载.docx_第2页
第2页 / 共11页
C语言程序设计自检自测题及解答一Word下载.docx_第3页
第3页 / 共11页
C语言程序设计自检自测题及解答一Word下载.docx_第4页
第4页 / 共11页
C语言程序设计自检自测题及解答一Word下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C语言程序设计自检自测题及解答一Word下载.docx

《C语言程序设计自检自测题及解答一Word下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计自检自测题及解答一Word下载.docx(11页珍藏版)》请在冰豆网上搜索。

C语言程序设计自检自测题及解答一Word下载.docx

18<

='

43-18<

endl;

"

语句后得到的输出结果为________。

2.2. 

已知'

A'

~'

Z'

的ASCII码为65~90,当执行"

charch=14*5+2;

ch<

语句序列后,得到的输出结果为________。

3.3. 

使用const语句定义一个标识符常量时,则必须对它同时进行__________。

4.4. 

表达式x=x+1表示成增1表达式为__________。

5.5. 

若x=5,y=10,则x>

y和x<

=y的逻辑值分别为________和________。

6.6. 

typedefintABC[10];

语句把ABC定义为具有10个整型元素的________。

7.7. 

假定p所指对象的值为25,p+1所指对象的值为46,则执行"

(*p)++;

语句后,p所指对象的值为________。

8.8. 

假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为____________________。

9.9. 

假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为____________。

10.10.设px是指向一个类动态对象的指针变量,则执行"

deletepx;

语句时,将自动调用该类的____________。

11.11.若需要把一个函数"

voidF();

定义为一个类AB的友元函数,则应在类AB的定义中加入一条语句:

________________。

12.12.若要在程序文件中进行标准输入输出操作,则必须在开始的#include命令中使用____________头文件。

三、给出下列程序运行后的输出结果(每小题6分,共36分)

1、#include<

iostream.h>

voidmain(){

ints=0;

for(inti=1;

;

i++)

{

if(s>

50)break;

if(i%2==0)s+=i;

}

i,s="

i<

"

s<

2、#include<

chara[]="

abcdabcabfgacd"

inti1=0,i2=0,i=0;

while(a[i])

if(a[i]=='

a'

)i1++;

b'

)i2++;

i++;

i1<

'

i2<

3.#include<

iomanip.h>

voidmain(){

inta[9]={2,4,6,8,10,12,14,16,18};

for(inti=0;

9;

i++)

setw(5)<

*(a+i);

if((i+1)%3==0)cout<

4.#include<

voidLE(int*a,int*b){

intx=*a;

*a=*b;

*b=x;

*a<

*b<

voidmain()

intx=10,y=25;

LE(&

x,&

y);

cout<

x<

y<

5.#include<

classA{

inta,b;

public:

A(){a=b=0;

A(intaa,intbb)

a=aa;

b=bb;

a<

b<

};

Ax,y(2,3),z(4,5);

6.#include<

template<

classTT>

classFF{

TTa1,a2,a3;

FF(TTb1,TTb2,TTb3)

a1=b1;

a2=b2;

a3=b3;

TTSum(){returna1+a2+a3;

FF<

int>

x(2,3,4),y(5,7,9);

x.Sum()<

y.Sum()<

四、写出下列每个函数的功能(每小题6分,共24分)

1、doubleSF(doublex,intn)//n为大于等于0的整数

doublep=1,s=1;

=n;

p*=x;

s+=p/(i+1);

returns;

2.floatFH(){

floatx,y=0,n=0;

cin>

>

x;

while(x!

=-1)

n++;

y+=x;

if(n==0)returny;

elsereturny/n;

voidWA(inta[],intn){

n-1;

intk=i;

for(intj=i+1;

j<

n;

j++)

if(a[j]<

a[k])k=j;

intx=a[i];

a[i]=a[k];

a[k]=x;

4.#include<

#include<

fstream.h>

voidJB(char*fname)

//可把以fname所指字符串作为文件标识符的文件称为fname文件,

//假定该文件中保存着一批字符串,每个字符串的长度均小于20。

ifstreamfin(fname);

chara[20];

inti=0;

while(fin>

a)

fin.close();

i="

五、编写一个函数,统计出具有n个元素的一维数组中大于等于所有元素平均值的元素个数并返回它。

(10分)

intCount(doublea[],intn);

//此为该函数的声明

参考解答:

评分标准:

选对者得1分,否则不得分。

1.B2.C3.D4.C5.A6.D

每题与参考答案相同者得2分,否则酌情给分。

1.43-18=25

2.H

3.初始化

4.++x

5.false或0true或1

6.数组类型

7.26

8.a+(i*N)*sizeof(a[0][0])或a+i*sizeof(a[i])

9.*(p->

b)或*((*p).b)

10.析构函数

11.friendvoidF();

12.iostream.h或iomanip.h

每题与参考答案的数据和显示格式完全相同者得6分,否则酌情给分。

1.i,s=15,562.433.246

81012

141618

4.25105.236.921

251045

每题与参考答案的叙述含义相同者得6分,否则酌情给分。

1.计算的值并返回。

2.求出从键盘上输入的一批常数的平均值,以-1作为结束输入的标志。

3.采用选择排序的方法对数组a中的n个整数按照从小到大的次序重新排列。

4.从文件fname中依次读取每个字符串并输出到屏幕上显示出来,

同时统计并显示出文件中的字符串个数。

评分标准见参考程序中的注释。

intCount(doublea[],intn){

doublem=0;

inti;

for(i=0;

i++)m+=a[i];

//计算出所有元素之和得3分

m=m/n;

//计算出平均值得1分

intc=0;

if(a[i]>

=m)c++;

//按条件统计出元素个数得4分

returnc;

//返回统计结果得2分

《C++语言程序设计》自检自测题及解答

(二)

一、填空(每空2分,共20分)

1.C++目标程序经___________后生成扩展名为exe的可执行程序文件。

2.16位计算机中整型占__________个字节存储空间。

3.要在屏幕上显示"

Hello,world!

应执行语句cout<

_______________________________。

4.表达式8&

3的结果是__________。

5.作为语句的函数调用是通过__________________________来体现的。

6.执行if(x>

=0||x<

=0)cout<

abcd"

elsecout<

wxyz"

屏幕上显示的是_______________。

7.设一维整型数组data已进行了初始化,则其元素个数可由操作符sizeof通过表达式__________________________计算出来。

8.若一全局变量只允许本程序文件中的函数使用,则定义它时应加上修饰符_______________。

9.设有intw[3][4];

,pw是与数组名w等价的数组指针,则pw应初始化为__________________________。

10.要使引用pr代表变量char*p;

,则pr应初始化为__________________。

二、单项选择题(每空2分,共20分)

1.下列变量名中,()是合法的。

ACHINABbyte-sizeCdoubleDA+a

2.下列各种函数中,()不是类的成员函数。

A构造函数B析构函数C友元函数D拷贝构造函数

3.下列()是正确的语句。

A;

Ba=17Cx+yDcout<

\n"

4.循环while(inti=0)i--;

执行次数是()。

A0B1C5D无限

5.设intf(int);

和intg(int);

是函数f和g的原形,以下将f作为语句调用的是()。

Ag(f(3));

Bf(g(3));

Cg(f(3)+2);

Dp=f(g(3)+1);

6.设int*p2=&

x,*p1=a;

p2=*b;

则a和b的类型分别是()。

Aint*和intBint*和int**

Cint和int*Dint*和int*

7.设intx;

,则经过()后,语句*px=0;

可将x值置为0。

Aint*px;

Bintconst*px=&

x;

Cint*constpx=&

Dconstint*px=&

8.设voidf1(int*m,long&

n);

inta;

longb;

则以下调用合法的是()。

Af1(a,b);

Bf1(&

a,b);

Cf1(a,&

b);

Df1(&

a,&

9.以下结构类型可用来构造链表的是()。

Astructaa{inta;

int*b;

};

Bstructbb{inta;

bb*b;

Cstructcc{int*a;

ccb;

Dstructdd{int*a;

aab;

10.使用操作符setw对数据进行格式输出时,需要包含()文件。

Aiostream.hBfstream.hCiomanip.hDstdlib.h

三、回答问题(每题4分,共20分)

1.设int*p;

,判断下列表达式的正确性(用T表正确,用F表错误)。

--++p()++(p--)()p----()(++p)--()

2.请初始化一维指针数组color,其初值表初值为"

red"

,"

blue"

white"

和"

black"

3.设intx[]={99,98,97},&

y=x[1];

写出语句cout<

y--<

'

y*2<

endl;

执行结果。

4.设intfp(chara,intb=0,doublec=100.0);

,判断下列重载函数的正确性。

(用T表正确,用F表错误)。

intfp();

()voidfp(char);

()

intfp(char,int);

()voidfp(char,int,int);

5.要使语句p1=newlong*;

p2=newfloat*[15];

能正常执行,写出p1和p2的定义。

四、(每题10分,共20分)

1.写出下列程序的执行结果。

#include<

voidfun(int,int,int*);

voidmain(){

intx,y,z;

fun(2,3,&

x);

fun(4,x,&

y);

fun(x,y,&

z);

z<

}

voidfun(inta,intb,int*c){b*=a;

*c=b-a;

2.下列程序向a盘上的文本文件aaa.dat输出0至100间的整数,请将程序补充完全。

stdlib.h>

#include________________

voidmain(void){

ofstreamf1(_________________);

if(___________){

cerr<

a:

aaa.datopen!

exit

(1);

for(inti=0;

=100;

i++)___________<

f1._______________;

五、(每题10分,共20分)

1.编程求数列1,

,……的所有大于等于0.000001的数据项之和并输出结果。

2.用递归方法设计函数intArrayMin(intd[],intsize);

,其中d为数组,size为数组元素个数;

ArrayMin返回d中的最小元素。

1.连接

2.2

3."

\"

4.0

5.函数的副作用

6.abcd

7.sizeof(data/data[0])

8.static

9.int(*pw)[4]=w;

10.char*&

pr=p;

1.A2.C3.A4.A5.B

6.B7.C8.B9.B10.C

1.--++p(T)++(p--)(F)p----(F)(++p)--(T)

2.char*color[]={"

3.98,194

4.intfp();

(T)voidfp(char);

(F)

intfp(char,int);

(F)voidfp(char,int,int);

(T)

5.long**p1;

float**p2;

1.4,12,44

2.<

"

aaa.dat"

!

f1(或f1.fail())f1close()

1、#include<

voidmain(){

intn=1,d=1;

doubles=0.0,s0;

while((s0=double(n)/d)>

=0.000001)

{

s+=s0;

d++;

2.intArrayMin(intd[],intsize){

intk=d[size-1];

if(size==1)returnk;

if(k<

=ArrayMin(d,size-1))returnk;

elsereturnArrayMin(d,size-1);

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

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1