C语言程序设计电大考试必备.docx

上传人:b****9 文档编号:24961791 上传时间:2023-06-03 格式:DOCX 页数:27 大小:29.12KB
下载 相关 举报
C语言程序设计电大考试必备.docx_第1页
第1页 / 共27页
C语言程序设计电大考试必备.docx_第2页
第2页 / 共27页
C语言程序设计电大考试必备.docx_第3页
第3页 / 共27页
C语言程序设计电大考试必备.docx_第4页
第4页 / 共27页
C语言程序设计电大考试必备.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

C语言程序设计电大考试必备.docx

《C语言程序设计电大考试必备.docx》由会员分享,可在线阅读,更多相关《C语言程序设计电大考试必备.docx(27页珍藏版)》请在冰豆网上搜索。

C语言程序设计电大考试必备.docx

C语言程序设计电大考试必备

其中一个为真

它们均为真

y==5的相反表达式为

B.x<=0&&y!

=5

D.x>0&&y==5

(A)q

A.整数B.

浮点数

C

字符D.

C)语句。

C.do循环

C++吾言程序设计课程期末针对性训练

一、单选题(每小题2分,共20分)

1•在每个C++程序中都必须包含有这样一个函数,该

函数的函数名为(A)。

D.function

2.设x和y均为bool量,贝Ux&&y为真的条件是

(D)。

A.其中一个为假B.

C.它们均为假D.

3.逻辑表达式x>0||(B)。

A.x<=0||y!

=5

C.x>0||y!

=5

4.假定p是一个指向float型数据的指针,则p+1所

指数据的地址比p所指数据的地址大(C)个字节。

A.1B.2C.4D.8

5.枚举类型中的每个枚举常量的值都是一个

逻辑值

6.循环体至少被执行一次的语句为(

A.for循环B.while循环

D.任一种循环

7.在下面的字符数组定义中,(D)语句有语法

错误。

A.chara[20]=”abcdefg”。

B.char

a[]=”x+y=55.”。

C.chara[15]={'1','2'}。

D.

chara[10]='5'。

8.若用数组名作为函数调用的实参,传递给形参的是

(A)。

A.数组的首地址B.数组中第一个元素的值

C.数组全部元素的值D.数组元素的个数

9.假定AB为一个类,则执行“ABa(4),b[5],

*p[2]。

”语句时,自动调用该类构造函数的次数为(A)。

A.6B.7C.9D.1110.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为(D)。

A.ios:

:

inB.ios:

:

outC.ios:

:

in|

ios:

:

outD.没有

二、填空题(每小题2分,共20分)

1.若需要定义一个标识符常量,并且使C++能够

进行类型检查,则应在定义语句的开始使用保留字

const

2

2.算术表达式xy讦‘4b-1对应的C++表达式为

3a

_(x*y*y)/(3*a)+4*b-1_。

3.逻辑表达式x>y&&x!

=10的相反表达式为x<=y||x==10_。

=—个字符指针变量占用内存4_个字节。

5.执行“typedefintDataType。

”语句后,在

使用int定义整型变量的地方都可以使用标识符___

DataType来定义整型变量。

—6—于在所有函数定义之外定义的变量,若没有被初始化则系统隐含对它赋予的初值为0__。

7.假定p所指对象的值为25,p+1所指对象的值为46,则执行“*(p++)。

”语句后,p所指对象的值为_46__q

8.假定一个结构类型的定义为“structA{int

aqdouble*b。

A*c。

}。

”,则该类型的大小为12_字节。

9.假定一维数组的定义为“inta[8]。

”,则该数组

所含元素的个数为_8。

10.若while循环语句的开始为”while(i++<=10)”,若i的初值为0,同时在循环体中不会修改i的值,则其循环体将被重复执行

_11次后正常结束。

三、写出下列每个程序运行后的输出结果(每小题6

分,共30分)

1.#include

voidmain(){

ints1=0,s2=1q

for(inti=1。

i<=6。

i++){s1+=i。

s2*=i。

}

cout<

}

输出结果:

21,720

2.#include

voidmain(){

inta[10]={68,79,86,65,46,94,37,78,60,53}。

intc=0q

for(inti=0。

i<10。

i++)

if(a[i]>=60)c++qcout<<"c="<

}

输出结果:

c=7

3.#include

voidmain(){

int

a[3][4]={{1,2,7,8},{5,6,11,15},{9,20,3,4}}。

intm=a[0][0]。

for(inti=0。

i<3。

i++)

for(intj=0。

j<4。

j++)

if(a[i][j]>m)m=a[i][j]。

cout<

}

输出结果:

20

4.#include

voidmain(){

inta=10,b=15。

cout<

{a*=3。

intb=a+20。

cout<

}

cout<

}

输出结果:

101530503015

5.#include

voidmain(){

inta[8]={6,19,4,12,20,5,18,25}。

int*p=a。

for(p=a。

p

p++)

if(*p<10)cout<<*p<<'‘

cout<

}

输出结果:

645

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

分)

1.boolWB(inta[],intn,intx){

for(inti=0。

i

i++)

if(a[i]==x)returntrue。

returnfalse。

}

函数功能:

从数组a中顺序查找值为x的元素,若查找成功则返回真,否则返回假。

2.intLJ(inta[],intn){

intk=0。

for(inti=1。

i

i++)

if(a[i]>a[k])k=i。

returna[k]。

}

函数功能:

求出数组a中n个元素的最大值

并返回。

3.假定结构类型Dnode中的data域为结点值域,

next域为结点指针域。

DNode*QB(intn)

{

if(n==0){returnNULL。

}

DNode*f=newDNode。

cin>>f->data。

DNode*p=f。

while(--n){

p=p->next=newDNode。

cin>>p->data。

}

p->next=NULL。

returnf。

函数功能:

建立一个具有n个结点的链表,每个

结点的值依次由键盘输入,该函数返回其表头指针。

五、按题目要求编写程序(6分)

已知6waw30、15

如(13,20)就是其中的一

组解,并按此格式输出每组解。

答:

#include

voidmain()

{

inta,b。

for(a=6。

a<=30。

a++)

for(b=15。

b<=36。

b++)

if(2*a+5*b==126)cout<<'('<

}

训练第二套

一、单选题(每小题2分,共20分)

1.枚举类型中的每个枚举常量的值都是一个(A)值。

A.整数B.浮点数C.字符

D.逻辑

2.设x和y均为bool量,则逻辑表达式x||y为假的条件是(C)。

A.它们均为真B.其中一个为真

C.它们均为假D.其中一个为假

3.声明或定义一个内联函数时,必须在函数开始使

用保留字(D)。

A.staticB.constC.extern

D.inline

4.在下面的函数声明中,存在着语法错误的是(D)。

A.BC(inta,int)。

B.BC(int,int)。

C.BC(int,int=5)。

D.BC(intx。

int

y)。

5.假定a为一个整型数组名,则元素a[4]与(C)的表示等价。

A.a+4B.*a+4C.*(a+4)D.

ints=0。

for(inti=1。

i<=8。

i=+2)

s+=i*i。

cout<<"s="<

}

输出结果:

s=84

2.#include

voidmain(){

inti=1,s=0。

while(s<20){

if(i%2!

=0)s+=i。

i++。

}

cout<

}

输出结果:

10,25

3.#include

voidmain(){

inta[8]={36,25,48,14,55,20,47,82}

intb1,b2。

b仁b2=a[0]。

for(inti=1。

i<8。

i++){

if(a[i]

if(a[i]>b2)b2=a[i]。

}cout<

}

输出结果:

14,82

4.#include

intLB(int*a,intn){

ints=1。

for(inti=0。

i

i++){

s*=*a。

a++。

}

returns。

}

voidmain(){

inta[5]={1,2,3,4,5}。

cout<

}

输出结果:

120

5.#include

structWorker{

charname[15]。

//姓名

intage。

//年龄

floatpay。

//工资

}。

*(a+16)

6.下面循环语句执行结束后输出的i值为(B)的值。

for(inti=0。

i

i++)if(i>n/2)

{cout<

break。

}

A.n/2B.n/2+1C.n-1D.n

7.将两个字符串连接起来组成一个字符串时,选用

(C)函数。

A.strlen()B.strcpy()C.strcat()D.

strcmp()

8.预处理命令在程序中都是以(B)字符开头的。

A.*B.#C.&D.@

9.假定有定义“structBOOK{chartitle[4O]。

floatprice。

}。

”,则不正确的变量定义语句为

(D)。

A.BOOKx。

B.BOOKx={"C++

Programming",27.0}。

C.BOOK*x=newBOOKD.BOOKx=new

BOOK

10.假定AB为一个类,px为指向该类动态对象数组

的指针,该数组长度为n,则执行"delete[]px。

语句时,自动调用该类析构函数的次数为(B)。

A.1B.nC.n-1D.n+1

二、填空题(每小题2分,共20分)

1.已知’A'JZ'的ASCII码为65.90,当执行

“charch=14*4+12。

cout<

”语句序列后,得到

的输出结果为—D。

2.double类型的长度为8__。

3.表达式x=x+1表示成增量表达式为++x

4.逻辑表达式a<=b||b==15的相反表达式为a>b

&&b!

=15。

5.假定一个二维数组的定义为“char*

a[5][4]。

”,则该数组所含元素的个数为

20,所占存储空间的字节数为80。

6•当函数中的_局部_变量没有被赋初值时,它

的值是不确定的。

7.假定一个结构类型的定义为“struct

A{doublea,b。

A*c。

}。

”,则该类型的大小为如字节。

8.假定要访问一个结构指针p所指对象中的数据成

员data,则表示方法为p->data。

9•假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为AB(){}。

10.当在程序中执行到break语句时,就立即结束本层

循环类语句或switch语句的执行。

三、写出下列每个程序运行后的输出结果(每小题6

分,共30分)

1.#includevoidmain(){

 

'<

'<age+5<<'

8分,共24

voidmain(){

Workerx={"wangfong",46,1640}

Workery,*p。

y=x。

p=&x。

cout<

'<

cout<name<<'

'<pay-300<

}

输出结果:

wangfong461640wangfong511340

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

1.intWC(inta[],intn,intk){intc=0。

for(inti=0。

i

i++)

if(a[i]>=k)c++。

returnc。

}

函数功能:

统计出数组a的n个元素中大于等于

参数k的值的元素个数并返回。

2.boolSG(intx){//x为大于等于2

的整数

inta=int(sqrt(x))。

//sqrt(x)为求x的平方根

inti=2。

while(i<=a){if(x%i==0)break。

i++。

}

if(i>a)returntrue。

elsereturnfalse。

}

函数功能:

判断x是否为一个素数(或质数),若是则返回真,否则返回假。

3.假定结构类型Worker中的name域表示姓名,age域表示年龄,pay域表示工资。

voidQA(Workera[],intn){

for(inti=0。

i

i++)

cin>>a[i].name»a[i].age»a[i].pay。

}

函数功能:

从键盘上输入n个Worker结构类型的

记录依次保存至U—维数组a的对应元素中。

五、按题目要求编写函数(6分)

假定函数声明为“voidPrint(inta[],int

n)。

”,在函数体中按下标从大到小的次序输出数组a

中的n个元素的值,并要求每行输出6个元素,当然

最后一行可以不足6个。

答:

voidPrint(inta[],intn)

{

inti,j=0。

for(i=n-1。

i>=0。

i--){

cout<

if(++j%6==0)cout<

}

cout<

}

训练第三套

一、单选题(每小题2分,共20分)

1.由C++源程序文件编译而成的目标文件的缺省扩展

名为(A)。

C.exeD.

A.objB.lik

cpp

2.

程序运行中需要从键盘卜输入多于

•个数据

程序运行」中需要从键盘上输入多于

时,

各数据之间应使用

(D)符号作为分隔符。

A.

空格或逗号B.

逗号或回车C.

逗号或分号

D.

空格或回车

3

.设x是一个

bool型的逻辑量,

y的值为10,

则表达式x&&y的值为(C)。

A.1B.0C.与x值相同

D.与x值相反

4.for语句能够被改写为(D)语句。

A.复合B.ifC.switchD.while

5.在下面的do循环语句中,其循环体被执行的次数为(A)。

inti=0。

doi++。

while(i*i<10)。

A.4B.3C.5D.2

6.在下面的一维数组定义中,(C)语句有语法

错误。

A.inta[]={1,2,3}。

B.inta[10]={0}。

C.inta[]

D.inta[5]

7.下面的(C)

保留字不能作为函数的返回类

型。

A.voidB.int

C.newD.

long

8.下面的函数声明中,

(B)是“voidBC(inta,

intb)。

的重载函数。

A.intBC(intx,inty)

B.voidBC(inta,

charb)。

C.floatBC(inta,

intb,intc=0)。

D.int

BC(inta,intb=0)。

9.当类中一个字符指针成员指向具有n个字节的存储

空间时,它所能存储字符串的最大长度为(C)。

A.nB.n+1C.n-1D.n-2

10.假定AB为一个类,则该类的拷贝构造函数的声明语句为(D)。

A.AB&(ABx)。

B.AB(ABx)。

C.

AB(AB*x)。

D.AB(AB&)。

二、填空题(每小题2分,共20分)

1.执行"cout<

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

2.在C++每个程序行的后面或单独一行的开始使

用注释的标记符为〃一。

3.表达式float(25)/4的值为

6.25__。

4.关系表达式x+y>5的相反表达式为x+y<=5

5.假定一个二维数组的定义为“inta[3][6]。

”,则该数组含有18个元素。

6.执行“typedefintABC[20]。

”语句把ABC定义

为具有20个整型元素的_数组类型_。

7.假定p所指对象的值为36,p+1所指对象的值为49,则*++p的值为__49。

8.假定a是一个一维数组,则a[i]的指针访问方式

为_*(a+i)_

9.对一个类中的数据成员的初始化可以通过构造

函数中的初始化表实现,也可以通过构造函数中的—

函数体_实现。

10.当一个类对象离开它的作用域时,系统将自动调用该类的—析构函数_。

三、写出下列每个程序运行后的输出结果(每小题

6分,共30分)

1.#include

#include

intSD(inta,intb,charop){

switch(op){

case'+':

returna+b。

case'-':

returna-b。

default:

{cout<<"操作符op出错,

退出运行!

"。

exit

(1)。

}

}

}

voidmain(){

intx=20,y=6。

cout<

')<

}

运行结果:

2614

2.#include

#include

voidmain(){

char*

a[5]={"student","worker","cadre","soldier","apen"}。

char*p1。

p1=a[0]。

for(inti=1。

i<5。

i++){

if(strcmp(a[i],p1)>0)p1=a[i]。

}

cout<

}

运行结果:

worker

3.#include

intWF(intx,inty){

x=x+y。

y=x+y。

returnx+y。

}

voidmain(){

cout<

}

运行结果:

31

4.#include

constintn=9。

voidmain(){

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

ints=0。

for(inti=0。

i

i++){

if(i%3==0)s+=a[i]。

}

cout<<"s="<

}

运行结果:

24

5.#include

voidmain(){

int*d=newint[5]。

inti。

for(i=0。

i<5。

i++){

d[i]=2*i+1。

cout<

}

cout<

delete[]d。

}

运行结果:

13579

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

24分)

1.floatFI(intn){〃n为大于等于1的整

floatx,y=0。

do{

cin»x。

y+=x*x。

}while(--n>0)。

returny。

}

函数功能:

求出从键盘上输入的n个整数的平方和

并返回。

(C)。

A.inta[]={1,2,3}。

B.inta[10]={0}。

C.inta[]。

D.inta[5]。

4.在下面的语句或语句组中,(B)不正

确。

A.inta[5]。

B.intM=10。

int

return

2.boolWE(inta[],intb[],intn){

for(inti=0。

i

i++)

if(a[i]!

=b[i])break。

if(i==n)returntrue

false。

}

函数功能:

判断具有n个元素的两个数组a和b中对

应元素值是否全部相等,若是则返回真,否则返回假。

3.voidLK(inta[],intn,int&m){

floats=0。

inti。

for(i=0。

i

i++)s+=a[i]。

s/=n。

m=0。

for(i=0。

i

i++)if(a[i]>=s)m++。

}

函数功能:

统计出数组a的前n个元素中大于等于其

平均值的元素个数并由引用参数m带回。

五、按题目要求编写函数(6分)

假定一个函数声明为“voidAD(inta[],intn)。

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

当前位置:首页 > 农林牧渔 > 林学

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

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