哈理工C++题库.doc_第1页
哈理工C++题库.doc_第2页
哈理工C++题库.doc_第3页
哈理工C++题库.doc_第4页
哈理工C++题库.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

一、填空 共20题 (共计20分)第1题 (1分) 题号:6385c+语言中,二维数组在内存中的存放方式为按【1】优先存放.答案: 1). 行第2题 (1分) 题号:6482设x=2.5,a=7,y=4.7,算术表达式x+a%3*(int)(x+y)%2/4的值为【1】.答案: 1). 2.5第3题 (1分) 题号:6451若所用变量均已正确定义,则执行下面程序段后的 值是【1】.for(i=0 ; i2 ; i+ ) coutyes;coutendl;答案: 1). yesyes第4题 (1分) 题号:6435函数调用语句func(e1,e2),(e3,e4,e5)中含有【1】个实参.答案: 1). 2第5题 (1分) 题号:6483设x=4y?+x:+y的值是【1】.答案: 1). 6第10题 (1分) 题号:6475设a=3,b=4,c=5,则表达式!(a+b)+c-1&b+c/2的值为【1】.答案: 1). 1第11题 (1分) 题号:6569在c+中,类及由类所定义的对象二者中,【1】占内存空间.答案: 1). 对象第12题 (1分) 题号:6547关键字【1】用于进行动态内存分配,关键字delete用于释放所分配的内存.答案: 1). new第13题 (1分) 题号:6459若有以下数组a,数组元素:a0a9,其值为 9 4 12 8 2 10 7 5 1 3该数组的元素中,数值最小的元素的下标值是【1】.答案: 1). 8第14题 (1分) 题号:6466设 x 的值为15,n 的值为2,则表达式 x*=n+3 运算后 x 的值是【1】.答案: 1). 75第15题 (1分) 题号:6389cin.get()函数只能接收一个【1】.答案: 1). 字符第16题 (1分) 题号:6470设a,b,t 为整型变量,初值为a=7,b=9,执行完语句t=(ab)?a:b 后,t 的值是【1】.答案: 1). 9第17题 (1分) 题号:6494写出表达式 1.234&5.982 的值是【1】.答案: 1). 1第18题 (1分) 题号:6524语句:x+; +x; x=x+1; x=l+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句【1】.答案: 1). x+=1第19题 (1分) 题号:6481设x=2,表达式x=60=1的值为【1】.答案: 1). 0第20题 (1分) 题号:6400int x=2,y=3,z=4; 则表达式x|y+z的值为【1】.答案: 1). 1二、判断 共20题 (共计20分)第1题 (1分) 题号:1485函数的返回值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值.答案:y第2题 (1分) 题号:1488函数调用时,出现在函数名后括号中的参数是实参.答案:y第3题 (1分) 题号:1479函数是组成c+程序的基本单位.答案:y第4题 (1分) 题号:1505类型标识符 数组名常量表达式;常量表达式可以是常量和符号常量,不能包含变量.答案:y第5题 (1分) 题号:1612用于字符串复制的函数是strcat()答案:n第6题 (1分) 题号:1643静态存储变量具有全局的生存期.答案:y第7题 (1分) 题号:1434任何对象都可以使用delete运算符来释放.答案:n第8题 (1分) 题号:1576通过return语句,函数可以带回一个或一个以上的返回值.答案:n第9题 (1分) 题号:1636do是c+语言中的关键字.答案:n第10题 (1分) 题号:1631在c+环境下,可以使用ctrl+f5键运行程序.答案:y第11题 (1分) 题号:1464sizeof(double) 为8.答案:y第12题 (1分) 题号:1482从用户的使用角度,函数可以分为以下两种:即系统库函数和用户自定义函数.答案:y第13题 (1分) 题号:1497c+语言允许嵌套定义函数,也允许嵌套调用函数.答案:n第14题 (1分) 题号:1455定义符号常量pi.const float pi= 3.1415926f;答案:y第15题 (1分) 题号:1573在c+中,整型数据在内存中占2个字节.答案:n第16题 (1分) 题号:1645对二维数组正确定义的形式是:int a(2)(3);答案:n第17题 (1分) 题号:1607break语句只能出现在switch中.答案:n第18题 (1分) 题号:1536字符串比较函数是strcmp( )答案:y第19题 (1分) 题号:1449使用预定义操纵算子,首先必须在源程序的开头包含iomanip.h文件.答案:y第20题 (1分) 题号:1461a=(b=6)/(c=2); 赋值表达式的值为3,a的值为3,b的值为6,c的值为2.答案:y三、单项选择 共30题 (共计30分)第1题 (1分) 题号:3571下列表达式中,可作为c+合法表达式的是().a:3,2,1,0b:(3,2,1,0)c:3=2=1=0d:3/2/1/0答案:b第2题 (1分) 题号:3434以下不符合c+语言语法的赋值语句是().a:a=1,b=2b:+j;c:a=b=5;d:y=(a=3,6*5);答案:a第3题 (1分) 题号:3463下列字符序列中,不可用作c+语言标识符的是().a:b70b:#abc:symbold:a_1答案:b第4题 (1分) 题号:3543若以下变量均是整型,且num=sum=7;则计算表达式sum=num+,sum+,+num后sum的值为().a:7b:8c:9d:10答案:b第5题 (1分) 题号:3523对于基本类型相同的两个指针变量之间,不能进行的运算是().a:b:=c:+d:-答案:c第6题 (1分) 题号:3421设c+语言中,int类型数据占4个字节,则short类型数据占().a:1个字节b:2个字节c:4个字节d:8个字节答案:b第7题 (1分) 题号:3502char *s1=hello,*s2;s2=s1;则().a:s2指向不确定的内存单元b:不能访问helloc:couts1;与couts2;结果相同d:s1不能再指向其它单元答案:c第8题 (1分) 题号:3648执行下列语句后的输出结果为().#include void main() char a=a; a-; couta+2-0,a+3-0n;a:b,cb:a-运算不合法,故有语法错c:98,99d:格式描述和输出项不匹配,输出无定值答案:c第9题 (1分) 题号:3649以下程序的输出结果是().#include void main() char s=123,*p; p=s; cout*p+x;不可以赋值给x变量的常量是().a:123b:100000c:3.14d:abc答案:d第11题 (1分) 题号:3556若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是().a:p=q;b:*p=*q;c:n=*q;d:p=n;答案:d第12题 (1分) 题号:3627以下正确的说法是().a:定义函数时,形参的类型说明可以放在函数体内b:return后边的值不能为表达式c:如果函数值的类型与返回值类型不一致,以函数值类型为准d:如果形参与实参类型不一致,以实参类型为准答案:c第13题 (1分) 题号:3489c+程序中的宏展开是在().a:连接时进行的b:程序执行时进行的c:编译前预处理时进行的d:编辑时进行的答案:c第14题 (1分) 题号:3603以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是().a:char s10=abcdefg;b:char t=abcdefg,*s=t;c:char s10;s=abcdefg;d:char s10;strcpy(s,abcdefg);答案:c第15题 (1分) 题号:3482以下运算符中,优先级最高的运算符是().a:=b:!=c:*(乘号)d:()答案:d第16题 (1分) 题号:3622以下选项中合法的实型常数是().a:5e2.0b:e-3c:1.2e1d:1.3e答案:c第17题 (1分) 题号:3423数组名作为实参数传递给函数时,数组名被处理为().a:该数组的长度b:该数组的元素个数c:该数组的首地址d:该数组中各元素的值答案:c第18题 (1分) 题号:3576下列选项中正确的语句组是().a:char s8; s=beijing;b:char *s; s=beijing;c:char s8; s=beijing;d:char *s; s=beijing;答案:d第19题 (1分) 题号:3425下列定义数组的语句中不正确的是().a:int a23=1,2,3,4,5,6;b:int a23=1,4,5;c:int a3=1,4;d:int a=1,2,3,4,5,6;答案:d第20题 (1分) 题号:3492c+语言规定,函数返回值的类型是由().a:return语句中的表达式类型所决定b:调用该函数时的主调函数类型所决定c:调用该函数时系统临时决定d:在定义该函数时所指定的函数类型所决定答案:d第21题 (1分) 题号:3456设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是().a:552b:144c:264d:-264答案:d第22题 (1分) 题号:3564设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为().a:intb:floatc:doubled:不确定答案:c第23题 (1分) 题号:3466已知p,p1为指针变量,a为数组名,j为整型变量,下列赋值语句中不正确的是().a:p=&j,p=p1;b:p=a;c:p=&aj;d:p=10;答案:d第24题 (1分) 题号:3599以下能对一维数组a进行正确初始化的语句是().a:int a10=(0,0,0,0,0)b:int a10=;c:int a=0;d:int a10=10*1;答案:c第25题 (1分) 题号:3505char h,*s=&h;可将字符h通过指针存入变量h中的语句是().a:*s=h;b:*s=h;c:s=h;d:s=h答案:b第26题 (1分) 题号:3567设有定义:int n=0,*p=&n,*q=&p;则以下选项中,正确的赋值语句是().a:p=1;b:*q=2;c:q=p;d:*p=5;答案:d第27题 (1分) 题号:3602以下程序段的输出结果为().#include void main() int i,j; for(i=4;i1;i-) for(j=1;ji;j+) cout#;a:无b:#c:#d:#答案:b第28题 (1分) 题号:3580下面不正确的字符串常量是().a:abcb:1212c:0d: 答案:a第29题 (1分) 题号:3646执行以下程序段后,输出结果是().#include void main() int a=10; couta+;a:11b:10c:9d:12答案:b第30题 (1分) 题号:3439以下程序的运行结果是().#include void main() int n; for(n=1;n=10;n+) if(n%3=0) continue; coutn;a:12457810b:369c:12d:1234567890答案:a四、程序填空 共2题 (共计16分)第1题 (8分) 题号:302【程序填空】题目:以下程序通过调用自定义函数scopy( )将字符串s1复制到 字符串s2,并输出显示。#include /*space*/void scopy(【?】,char *q) while(*p!= 0) /*space*/ 【?】 p+;/*space*/ 【?】 *q=0;void main() char *s1=nanjing, china; char s220; coutnthe s1 is:s1;/*space*/ 【?】 coutnthe s2 is:s2;答案: 1). char *p 2). *q=*p; 3). q=q+1; 或 q+; 或 q+=1; 4). scopy(s1,s2);第2题 (8分) 题号:87【程序填空】题目:计算个人与各科平均成绩及全班平均成绩,并在屏幕上显 示出来。#include#define m 5 /*定义符号常量 人数为5*/#define n 4 /*定义符号常量 课程为4*/void main()int i,j;void aver(float scom+1n+1);static float scorem+1n+1=78,85,83,65, 88,91,89,93, 72,65,54,75,86,88,75,60,69,60,50,72;aver(score);cout学生编号t课程1t课程2t课程3t课程4t个人平均n;for(i=0;im;i+)cout学生i+1t;/*space*/for(j=0;j【?】;j+)couttscoreij;coutendl;for(j=0;j8*(n+3);j+) cout-;coutn课程平均;for(j=0;jn+1;j+) couttscoreij;coutendl;void aver(float scon+1) int i,j;/*space*/ for(i=0;i【?】;i+) for(j=0;jn;j+) scoin += scoij; scomj += scoij; scomn += scoij; /*space*/ scoin 【?】 n; for(j=0;jn;j+) /*space*/ scom【?】 /= m; scomn=scomn/m/n; 答案: 1). n+1 或 1+n 或 5 2). m 或 5 3). /= 4). j五、程序改错 共1题 (共计8分)第1题 (8分) 题号:94【程序改错】题目:编写函数fun其功能是:根据整型形参m,计算如下 公式的值:y=11/31/51/7.1/(2m-3)-注意:不可以增加或删除程序行,也不可以更改程序的结构。#includedouble fun(int m) /*found*/double y=1int i;/*found*/for(i=1; im; i+)/*found*/y+=1.0/(2*i-3);return(y);void main() int n; coutn;coutnthe result is fun(n)endl; 答案: 1). double y=1; 2). for(i=1; i=m; i+) 3). y+=1.0/(2*i-3);六、程序设计 共1题 (共计6分)第1题 (6分) 题号:159【程序设计】题目:在一维数组中分类统计正数和负数的个数。 正数的个数存入变量c1中,负数个数存入变量c2中.注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。#include #include void wwjt(int ,int );void main() int a10=1,-2,0,4,-5,0,7,8,-9,10; int c1=0,c2=0; int i;/*program*/* end */ wwjt(c1,c2);void wwjt(int o,int p) int k; fstream myfile; myfile.open(out.txt,ios:out); myfileoendlp; myfile.close();答案:- for (i=0; i0) c1+; else if (aie的值为【1】.答案: 1). 0第4题 (1分) 题号:6527在c+语言中的实型变量分为两种类型,它们是float型和【1】型.答案: 1). double第5题 (1分) 题号:6465设 x 的值为15,n 的值为2,则表达式 x%=(n+3) 运算后 x 的值是【1】.答案: 1). 0第6题 (1分) 题号:6438假设有条件 int x=1,y=2,z=3;则表达式z+=xy?+x:+y的值是【1】.答案: 1). 6第7题 (1分) 题号:6467设(k=a=5,b=3,a*b),则k值为【1】.答案: 1). 5第8题 (1分) 题号:6382c+语言程序的三种基本结构是:顺序结构,选择结构,【1】结构.答案: 1). 循环第9题 (1分) 题号:6488设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为【1】.答案: 1). 1.0 或 1第10题 (1分) 题号:6429当a=3,b=2,c=1;时,执行以下程序段后 b=【1】.if(ab) a=b; if(bc) b=c;else c=b;c=a;答案: 1). 1第11题 (1分) 题号:6495写出语句 b=(a=6,a*3); 执行后整型变量b的值是【1】.答案: 1). 18第12题 (1分) 题号:6510已知 i=5,写出语句 i-=18; 执行后整型变量 i 的值是【1】.答案: 1). -13第13题 (1分) 题号:6522已知a=13,b=6, a|b的十进制数值为【1】.答案: 1). 1第14题 (1分) 题号:6485设x=62,表达式x=60&x=6)&(30)y+;else y+=y答案: 1). 20二、判断 共20题 (共计20分)第1题 (1分) 题号:1646指针指示的是变量的内容.答案:n第2题 (1分) 题号:1600cout20或x20|xb) if(cd) x=1; else x=2; 等价的是().a:if(ab)if(cd) x=1; else x=2;b:if(ab) if(cd) x=1; else x=2;c:if(ab)&(cd) x=1; else x=2;d:if(ad) x=1;答案:a第3题 (1分) 题号:3653若定义:int a=511,*b=&a;, 则cout*b;的输出结果为().a:无确定值b:a的地址c:512d:511答案:d第4题 (1分) 题号:3485在c+语言中,为了结束由while语句构成的循环,while后一对圆括号中表达式的值应该为().a:0b:1c:trued:非0答案:a第5题 (1分) 题号:3611以下所列的c+语言常量中,错误的是().a:0xffb:1.2e0.5c:2ld:72答案:b第6题 (1分) 题号:3453若给定条件表达式(m)?(a+):(a-),则其中表达式m().a:和(m=0)等价b:和(m=1)等价c:和(m!=0)等价d:和(m!=1)等价答案:c第7题 (1分) 题号:3488执行下列语句后的输出为(). int j=-1; if(j=1) cout*endl; else cout%endl;a:*b:%c:%cd:有错,执行不正确答案:a第8题 (1分) 题号:3465下面选择中正确的赋值语句是(设char a5,*p=a;)().a:p=abcd;b:a=abcd;c:*p=abcd;d:*a=abcd;答案:a第9题 (1分) 题号:3533判断char型变量cl是否为小写字母的正确表达式是().a:a=cl=a)&(cl=cl)|(z=a)&(cl=z)答案:d第10题 (1分) 题号:3552若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是().a:p1=&m;p2=&p1b:p1=&m;p2=&n;*p1=p2;c:p1=&m;p2=p1;d:p1=&m;*p2=*p1;答案:c第11题 (1分) 题号:3636在c+语言中,形参的缺省存储类型是().a:autob:registerc:staticd:extern答案:a第12题 (1分) 题号:3459设j和k都是int类型,则for循环语句for(j=0,k=0;jk;a:最多执行10次b:最多执行9次c:是无限循环d:循环体一次也不执行答案:a第13题 (1分) 题号:3469以下标识符中,不能作为合法的c用户定义标识符的是().a:answerb:toc:signedd:_if答案:c第14题 (1分) 题号:3524凡是函数中未指定存储类别的局部变量,其隐含的存储类别为().a:自动(auto)b:静态(static)c:外部(extern)d:寄存器(register)答案:a第15题 (1分) 题号:3581下面判断正确的是().a:char *a=china;等价于 char *a;*a=china;b:char str10=china;等价于char str10;str=china;c:char *s=china;等价于 char *s;s=china;d:char c4=abc,d4=abc;等价于 char c4=d4=abc;答案:c第16题 (1分) 题号:3550若有说明 int a34;则对a数组元素的正确引用是().a:a24b:a1,3c:a1+10d:a(2)(1)答案:c第17题 (1分) 题号:3417若有下列定义,则对a数组元素地址的正确引用是(). int a5,*p=a;a:&a5b:p+2c:a+d:&a答案:b第18题 (1分) 题号:3511int a=3,b=2,c=1;if(abc)a=b;else a=c;则a的值为().a:3b:2c:1d:0答案:c第19题 (1分) 题号:3620以下叙述中正确的是().a:在程序的一行上可以出现多个有效的预处理命令行b:使用带参的宏时,参数的类型应与宏定义时的一致c:宏替换不占用运行时间,只占编译时间d:在以下定义中 c r 是称为宏名的标识符 #define c r 045答案:c第20题 (1分) 题号:3432下列运算符中,不属于关系运算符的是().a:c:=d:!答案:d第21题 (1分) 题号:3547若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是().a:2.5b:2.75c:3.5d:0答案:a第22题 (1分) 题号:3514char str10=china;数组元素个数为().a:5b:6c:9d:10答案:d第23题 (1分) 题号:3450变量p为指针变量,若p=&a,下列说法不正确的是().a:&*p=&ab:*&a=ac:(*p)+=a+d:*(p+)=a+答案:d第24题 (1分) 题号:3637在c+语言中,一维数组的定义方式为:类型说明符数组名().a:常量表达式b:整型表达式c:整型常量或整型表达式d:整型常量答案:d第25题 (1分) 题号:3687下列说法中错误的是().a:构造函数没有类型b:创建对象时构造函数自动被调用c:在一个类中,只能定义一个构造函数d:构造函数的函数名与类同名答案:c第26题 (1分) 题号:3690在面向对象的程序设计中,作用域符(:)的功能是().a:标识作用域的级别b:指出作用域的大小c:定义作用域的大小d:标识某个成员函数是属于哪个类的答案:d第27题 (1分) 题号:3679设有定义char str=abcde,则下列语句中能正确输出字符串的是().a:coutstr;b:coutstr;c:cout&str;d:coutstr0;答案:b第28题 (1分) 题号:3406c+语言中要求对变量作强制定义的主要理由是().a:便于移植b:便于写文件c:便于编辑预处理程序的处理d:便于确定类型和分配空间答案:d第29题 (1分) 题号:3622以下选项中合法的实型常数是().a:5e2.0b:e-3c:1.2e1d:1.3e答案:c第30题 (1分) 题号:3583下面四个选项中,均是不合法的用户标识符的选项是().a:a p_0 dob:float la0 _ac:b-a 3to intd:_123 temp int答案:c四、程序填空 共2题 (共计16分)第1题 (8分) 题号:353【程序填空】题目: 以字符串从键盘输入一个自然数,求该数的各位数字之和。#include void main()char n20;int s,i,k;cin.getline(n,20);/*space*/【?】;for(i=0;ni!=0;i+)/*space*/k=【?】;/*space*/s=【?】;/*space*/【?】;答案: 1). s=0 2). ni-0 3). s+k 或 k+s 4). couts第2题 (8分) 题号:70【程序填空】题目:以下程序的功能是将一个字符串中的前n个字符复制到 一个字符数组中去,不许使用strcpy函数。#includevoid main ( ) char str180,str280; int i,n; cin.getline(str1,sizeof str1); cin n;/*space*/ for (i=0; 【?】 ;i+)/*space*/ 【?】 ;/*space*/ 【?】 ; cout str2 endl;答案: 1). ii 或 i=i 2). str2i=str1i 或 *(str2+i)=*(str1+i) 或 *(str2+i)=str1i 或 str2i=*(str1+i) 3). str2n=0 或 str2i=0 或 str2n=0 或 str2i=0 或 *(str2+n)=0 或 *(str2+i)=0 或 *(str+n)=0五、程序改错 共1题 (共计8分)第1题 (8分) 题号:272【程序改错】题目:计算t=1-1/2+2/3-3/4+-29/30注意:不可以增加或删除程序行,也不可以更改程序的结构。#include void main()/*found*/ int t1,f,k; float t=1;/*found*/f=1;/*found*/for(k=1;k=30;k+)/*found*/t1=(k-1)/k;t+=t1*f;f=-f;coutt;答案: 1). int f,k; float t1, t=1; 2). f=-1; 3). for(k=2;k=30;k+) 4). t1=(float)(k-1)/k; 或 t1=(k-1)/(float)k;六、程序设计 共1题 (共计6分)第1题 (6分) 题号:256【程序设计】题目: 利用冒泡法将10个数按降序排列注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句,只能用for循环。#include #include #include void writeinfile(int n)int t;fstream myfile;myfile.open(f.txt,ios:out);for(t=0;t10;t+)myfilentendl;myfile.close();void main()int n=5,6,4,2,3,7,8,5,6,7,i,j,k;/*program*/* en

温馨提示

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

评论

0/150

提交评论