C(I)练习题题库及答案 (一)_第1页
C(I)练习题题库及答案 (一)_第2页
C(I)练习题题库及答案 (一)_第3页
C(I)练习题题库及答案 (一)_第4页
C(I)练习题题库及答案 (一)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《高级语言程序设计(C++I)》题库一•单

项选择题(每题2分,共20分)

1.以下字符列中,合法的浮点型常量是:

(A)457(B)6e5.3(0e7(D)123e62.字符串常量”叭x42\\\nx\103y”的长

度是:

(A)7(B)11(015(D)16.以下运算符中,自右向左结合的运算符是:

(A)口(B)<=(0X=(D)«.表达式4/8*100/2.0的值是:

(A)25(B)25.0(C)0(D)0.0.设变量inta=5;以下哪个表达式计算

后,使得变量b的值不为2?

(A)b=a/2(B)b=6-(—a)(C)b=a%2(D)b=水3?3:2.设a是整型变量,不能表达

数学关系式n<a(15的C++表达式是:

(A)a>ll&&a<15(B)a=12||a=13||a=14(C)!(a<=ll)&&!(a>=15)(D)

ll<a<=14

3.以下C++代码中,不能正确对字符串si置串值的代码是:

(A)char*sl;cin>>sl;(B)char*sl,*s2="name";sl=s2;(C)charsi

⑸二〃name“;(D)charsi[5]=『name"};

4.一个具有6个整型指针元素的一维数组的正确定义是:

(A)int**p[6](B)int*(p)[6](C)int*p[6](D)*(*(p)[6])

5.执行语句x=l;while(x++<7)cout〈〈'*';后输出结果是:

(A)**(B)****(C)******(D)*******.假设用一维数组名作为调用函数时的实

参,那么传递给形参的是:

(A)数组首元素的地址(B)数组首元素的值(0数组元素的个数(D)

数组中全部元素的值

二.简答题(每题2分,共20分).设整型变量X为任何一个整数,表达式-

2〈X<2的值是?

1.调用函数时,希望从提供的实参变量中得到函数的结果,那么对应的形

参应该是?

2.设有变量定义char*sD={"Beijing","Shanghai","Guangzhou”};执行语

句cout«*(s+1)+1;输出是?

3.表述“变量x的值等于3”和“变量y的值等于5”其中有且只有一种情

况成立的表达式是?

4.设有变量定义inta[4][3],*p=a[2];表达式p+2指向的元素是?

5.将字符串str2拷贝到字符数组strl口中,应调用函数?

6.说明语句char*w();的含义是?

ttinclude<iostream.h>

voidprintN(intn)(if(n)

{printN(n-l);cout<<n«ends;

})

voidprint(intw){if(w)

{print(w-1);printN(w);cout<<endl;

))

voidmain(){print(5);)

1

12

123

1234

12345四.根据程序功能填空。(每空2分,共20分)

1.本程序按以下公式计算e的值,t

精度为le-6o

111

6=1H1F・・•HF...1!2!〃/

#include<iostrearn.h>void

main()

{doublee,t,n;e=0;

t=n=(l);while((2))

{e+=t;(3);

1.0

n=n+l.0;)

t>=lc-6

t=t./n

2.本程序由主函数输入一字符串,

cout«e=«e«endl;

2.本程序由主函数输入一字符串,调用函数,把该字符串中的数字。〜9

转换成小写字行a〜j;所有小写字母转换成大写字符.然后在主函数输出转换埼的字符申。

#include<iostrearn.h>#include<ctype.h>char*)

(4)voidchange(char*,voidmain()char*)

{charstrl[20],str2[20];cin>>strl;

change(strl,str2);cout«str2<<endl;

)*s2)

voidchange(char*sl,*磁1

char{while((5))

*sl

{if(*sl>=O'&&*sl〈二+,a'」0'

'9')*s2=⑹;,,,,

*sl+a-0

else*s2-toupper(*sl);(7),一

gI4-4-•oV4-4--

3.函数create从键盘输入整数序.

列,以输入0为结束。按输入逆序建立一个以head为表头的单向链表。例

如,输入序列为123450,建立的链表是5432lostructnode{int

data;node*next;};

voidcreate(node*&head){node*p;

(8);p=newncdecin»p->data;

while(p->data!=0){if(head二二NULL)

(head=p;head->next=NULL;}else((9)p->next=head;

(10)head=p;)

p=newnode;cin>>p->data;

五,程序设计(第1小题6分,第2、3小题各7分,共20分)4.编写函数输

出以下形状的图形,其中构成图形的符号和输出的行数通过参数传送。

甘##

##

#期########

答案:

^include<iostream.h>#include<iomanip.h>voidprint_figure(introw,char

tag)〃行参数和符号参数

{inti;

cout<<setw(row1)<<"i<〈tag〈<endl;〃输出第1彳丁

for(i=2;i<row;i++)〃输出第2行到rowT行

cout«setw(row-i)«7'<<tag<<setw(2*(i-l)-l)<<'z«tag«endl;

for(i=l;i<=2*row-l;i++)cout«tag;〃输出最后1行

cout«endl;)

voidmain(){print_figure(5,*');}.编写一个程序,实现如下功能:

⑴输入k(〈100)个整数至I」数组x[100]中;

⑵计算k个数的平均值及大于平均值的元素个数。

8.表达式newint[10]的含义是?

9.设有函数调用语句Count(a,num,max,min,average);功能是由参irax,

min,average返回整型数组a前num个元素中的最大值,最小值和平均值。

对应的函数原型是?

10.有说明structlink{intcode;link*nexr;};link*head,*p;head为

单链表的头结点,在/head之后插入*p结点操作的语句是?

三.分析程序,写输出结果(每题5分,共20分)#include<iostreani.h>

voidmain()

{inta[10]={2,4,0,-5,10,G,-8,9,G,7);inti,s=0,count=0;

for(i=0;i<10;i++)if(a[i]>0)s+=a[i],count++;

elsecontinue;

cout«ffs=11«s<〈〃count--<<count<<endl;)#include<iostream.h>

voidfun():voidmain(){inti;for(i=l;i<5;i++)

fun();cout<<endl;

}voidfun()

{staticinta;intb=2;

cout«(a-=3,a+b)<〈'\t';)#include<iostream.h>intlcm(int

m,intn)(intr,a,b;

a=m;b=n;r=n;do{m=n;n=r;r=m%n;

}while(r);returna*b/n;

voidmain(){cout«lcm(3,7)<<?W<<lcm(4,6)«endl;}

1."include<iostream.h>voidprintNlintn){if(n){printN(n-1):

cout<<n«ends;

})

voidprint(intw){if(w)

{print(w-l);printN(w);cout«endl;}

}voidmain()

{print(5);}四.根据程序功能填空。(每空2分,共20分)

1.本程序按以下公式计算e的值,精度为le-6。

111IC-1F--•HF...

1!2!??/#include<iostream.h>

voidmainO{doublee,t,n;

e=0;t=n二(1);

while((2)){e+=t;

(3);n=n+l.0;

)cout«z,e-'<<e«endl;

2.本程序由主函数输入一字符串,调用函数,把该字符串中的数字9转

换成小写字母a〜j;所有小写字母转换成大写字符。然后在主函数输出转换

后的字符串。

#inc1ude<iostream.h>#include<ctype.h>

(4)voidniciinO

(charstrl[20],str2[20];cin»strl;

change(strl,str2);cout<<str2<<endl;

}voidchange(char*sl,char*s2)

{while((5)){if(*sl>=O'&&*sl<T9')

*s2=(6);else*s2=toupper(*sl);

(7)*s2八O';

)3.函数create从键盘输入整数序列,以输入0为结束。按输入逆序建

立一个以head为表头的单向链表。例如,输入序列为123450,建

立的链表是5432lo

structnode{intdata;node*next;};voidcreate(node*&head)

{node*p;(8);

cin»p->data;while(p->data!=0)

{if(head二二NULL)

{head=p;head->next=NULL;}else{(9)

(10)

p=newnode;cin〉〉p-〉data;五.程序设计(第1小题6分,第2、3小题各7

分,共20分)

1.编写函数输出以下形状的图形,其中构成图形的符号和输出的行数通过

参数传送。

##

##

###########

2.编写一个程序,实现如下功能:

⑴输入k(G00)个整数到数组x[100]中;

⑵计算k个数的平均值及大于平均值的元素个数。

3.编写一个程序,实现如下功能:

⑴从键盘输入aopbo其中a,b为数值;op为字符,限制为+、-、

*、/o

(2)调用函数count(op,a,b),计算表达式aopb的值。由主函数输出

结果。

《高级语言程序设计(C++I)》练习题参考答案一.单项

选择题(每题2分,共2。分)

I.以下字符列中,合法的浮点型常量是:

(A)457(B)6e5.3(C)e7(D)123e62.字符串常量”w\x42\\\nx\103y”的长度

是:

(A)7(B)11(C)15(D)16.以下运算符中,自右向左结合的运算符是:

(A)□(B)<=(C)*=(D)«.表达式4/8*100/2.0的值是:

(A)25(B)25.0(00(D)0.0.设变量inta=5;以下哪个表达式计算后,

使得变量b的值不为2?

(A)b=a/2(B)b=6-(—a)(C)b=a%2(D)b=a<3?3:2

6.设a是整型变量,不能表达数学关系式的C++表达式是:

(A)a>ll&&a<15(B)a==12||a==13||a==14

(C)!(a<=ll)&&!(a>=15)(D)ll<a<=14

对C++表达式n《水15的计算:

①11(a»0或1②(K15»1或K15”1

原因:C++的逻辑判断结果为整型值.以下C++代码中,不能正确对字符

串si置串值的代码是:

(A)char*sl=newchar[20];cin»sl;

(B)charsl="nanie”;〃si是字符变量,不能赋给串值

(C)charsi[5]='name";(D)charsi[]={"name"};.一个具有6个整型指

针元素的一维数组的正确定义是:

(A)int**p[6](B)int(*p)[6]

(C)int*p[6](D)*(*(p)[6])

试比拟以下几种说明形式:

int*p;〃p是指向整型变量的指针(p是关联类型为

整型的指针)int*pa[10]://pa是数组,元素类型是整型指针

int(*pb)[刈;〃pb是指针,指向(关联类型)长度为10的整型数

组int*f();//f是返回整型指针的函数名

int(*f)();〃f是指针,指向(关联类型)是返回整型

值的无参函数例:有声明

int(*f)(intint);intmax(int,int);intmin(int,int);贝

(J:f=max;f(a,b);//等价于(*。(@,b);

max(a,b);f=min;f(a,2;"等价于(*力(a,b);

min(a,b);.执行语句x=l;while(x++<7)cout<<';后输出结果是:

(A)**(B)****(。******(D)*******

(x++<7)①x<7②x=x+l.假设用一维数组名作为调用函数时的实参,那么传递给

形参的是:

(A)数组首元素的地址⑻数组首元素的值

(0数组元素的个数(D)数组中全部元素的值二.简答题(每题2分,共20

分)

1.设整型变量x为任何一个整数,表达式-26<2的值是?1.调用函数时,

希望从提供的实参变量中得到函数的结果,那么对应的形参应该是?

指针或引用类型参数

注意使用方法:

函数定义voidfunl(int调用

xl);intifunl(al);f〃传数

据值参数voidfun2(int*ntun2(&a2):

x2);a2;〃指针

.设冠典也址僦v^sijing",3Shanghai","Guangzhou”};执行

语句(q杂〈E*短)1)+1;输出是?hanghaijnt

fun3(a3);*〃引用

迷封铜鞠聪缪数用于操a4;fun3

(a4);

Beijing\0s+1==&s[l]〃指针是二级指针

*(s+l)=&s[l][0]

Shanghai\0*(s+D+l==&s[l][1]//一级指针输出字符

~f*(s+l)+l

指针是输出所指串值.表述“变量X的值等于3”

Guangzhou\0

和“变量y的值等于5”其中有且只有一种

情况成立的表达式是?x=3&&y!=5||x!=3&&y=5

(x==3)!=(y==5)

5.设有变量定义inta[4][3],*p=a⑵;表达式p+2指向的元素是?

a⑵⑵

将字符串7str2拷贝到字符数组strl口中,应调用函数?

strcpy(strl,str2)说明语句char

*w();的含义是?

函数原型。w是函数名,返回字

8.表达式new符型指针

返回首地址int[10]的含义是?分配长度为10啜跚内%o][i]

a[0][2]

a[l][0]a[l][2]

P—a[2][0]a⑵⑴a⑵⑵<

a[3][0]a[3][l]a[3][2]

分配堆要用指针记录地址

int*p=newint[10],*q;

木P=10;p[l]=20;〃对动态数组的两种访问方式

*q=10;q[0]<2;”错误,指针没有关联对象设有函数调用语句Count(a,

num,max,min,average);功能是由参数max,ITin,average返回整型数组a前

num个元素中的最大值,最小值和平均值。对应的函数原型是?

voidCount(int[],int,int&,int&,doable&);假设调用语句为Count

(a,num,&max,&min,&average);

⑴结点插在表头如何操作?p->next=head:head二p;

⑵结点插在表尾如何操作?

q-head;while(q->next)q=q->next;q->next=p;p-)next-NULL;

⑶遍历链表,输出结点值:

q二head;while(q->next){cout<<q->code;q=q->next;}

(4)删除一个结点*(q->next)如何操作?

t=q->next;q->next=t->next;deletet;

三.分析程序,写输出结果(每造5分,块20分)

1.求>0的元素和;>0的元素个数。

#include<iostream.h>voidmain()

{inta[10]={2,4,0,-5,10,6,-8,9,6,7);

inti,s=0,count=0;

for(i=0;i<10;i++)if(a[i]>0)s+=a[i],count++;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论