




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成贤学院021063、021064、024061班C++(上)期末复习C++(上)总练习题第一、二、三章习题一、选择题1.下列符号串中不合法的C语言标识符是。AregisterBTurbo_CCauto_D_1232.a是一个整型变量,则执行下列输出语句后a的值是。cout<<(a=3*5,a*4,a+5);A65B0C15D103.若有整型变量a和c,c的当前值是5,则执行下列语句后a的值是。a=2+(c+=c++,c+8,++c);A13B14C15D164.若有整型变量x的当前值是3,则执行下列语句的结果是。docout<<(x-=2);while(!(-x));A输出值0B输出值1和-2C输出值3和0D陷入死循环5.从语法的角度来看,语句if(a<=b<=c)x++;是。A正确的B语法正确,但在编译是会有警告信息C语法上是错误的D编译系统不会进行相关检查6.设有定义enumcolor{red=3,yellow,blue=10,white,black};则black的值是。A7B15C12D14x27.数学式yx.y2在C程序中对应正确的表达式为。A.sqrt(x*x+y*y)/x*yC.sqrt((x*x+y*y)/x/y)B.SQRT(x*x+y*y)/x*yD.SQRT(x*x+y*y)/(x*y)8.设有变量说明:intx;则表达式(x=4*5,x*5),x+25的值为。A.20B.45C.100D.1259.设有说明:intx=1,z=1,y=1,k;执行语句:k=x++||++y&&++z;后,变量y的值为。A.1B.2C.3D.410.在C语言中,下面符号串中,能用作变量名的标识符为。A.autoB.putsC.-1*numD.2-and11.下面四个用户定义的标识符中,只有一个是正确的。AcaseB_53Ca&bDab-c12.在16位系统中,对整型变量inti=32767;++i的值是。第1页共34页成贤学院021063、021064、024061班C++(上)期末复习A-1B0C-32768D3276813.有枚举类型其枚举成员Down的值是B2C5D714.已知整型变量a和b的当前值分别为13和20,a||b的值是B1C4D2915.在32位系统中求表达式s=10!的值时,变量s的类型应当是ClongD以上三种都可以16.下面的常量表示有一个是不正确的,不正确的是.enumdirection{UP,Down,LEFT=6,RIGHT};。A1。A0。AintBunsigned。A-0B0x203C’\55’D’103’17.浮点型变量f当前存储的值是17.8,经(int)f类型强制后f存储的值是C不变D不可确定18.如果有下列变理定义:charc=97;则cout<<c;的输出是。A17B18AaB97C定义非法D赋初值非法exex19.数学式在C程序中对应正确的表达式为。abA.exp(x)+exp(-x)/(a+b)B.(exp(x)+exp(-x))/a+bD.(e^x+e^(-x))/(a+b)等价A.a==0B.a==1C.a!=1D.a!=0C.(exp(x)+exp(-x))/(a+b)20.在while(!a)中,其中!a与表达式21.设有说明:inta,b;执行语句:b=(a=3*5,a*4),a+15;之后,b的值为。A.15B.30C.60D.9022.下列表达式中,错误的是。A.4.0%2.0B.k+++jc.a+b>c+d?a:bD.x*=y+2523.下面的常量表示中不正确的是A、‘0’B.0fdC.’\n’D..5e324.设有枚举类型定义:enumd(up,down=3,left,right);则枚举量right的值为A.5B.4C.3D.225.如果整型量a,b,c的值分别为5、4、3,则语句if(a>=b>=c)c++;执行后c的值是A,语法错误B.4C.2D.3有warnning,但if结果为假26.设标识符ch,a都被定义为字符型变量,以下赋值语句不正确的是__A.ch=a+’3’;B.ch=’ch’+’a’;C.ch=’c’+’h’;D.ch+=ch-a27.设有说明enumcolor{red,blue=100,yellow,black},括号中每个元素的第2页共34页成贤学院021063、021064、024061班C++(上)期末复习实际值依次是__。A.0,100,101,102B.100,101,102,103C.0,1,2,3D.1,2,3,428.将变量a强制转换为具有b类型的数据,应表示为__。A.(b)aB.a(b)C.b(a)D.(a)b29.有整型变量x,y,其中y!=0,下列与x等价Ax/y*yBx%y*yCx/y*y+x%yD以上都不是30.已知整型变量a和b的当前值分别为13和16.a&b的值是A.0B.1C.29D.331.设有定义enumcolor{red,yellow=3,blue=10,white,black};则red的值是。A2B15C1D032.C++将数据分为若干类型,定义数据类型实际给出了两方面的信息:定义该类型数据。A有效数字位数和数值表示范围B占用多大存储空间和允许的运算C数值和字符的不同表示以及适用范围D适用范围和允许的运算33.以下给出的标识符中可用作合法的变量名。AgotoB$priceCsumD9kilo34.设ima=l,b=2;那么执行表达式a++&&++b;后a和b的值分别是。A1和2B2和2C1和3D2和335.在32位系统中,定义变量并赋值shortintx=32767,则执行++X后X的值为。A32767B32768C-lD-3276836.设整型变量X的值是5,则表达式2<X<5的值是。A不确定B1C0D表达式非法37.a≠b且e≤d的c++表达式描述为。Aa
b,c<=dBa!=b&c=<dCa=!b&&c<=dDa!=b&&c<=d38.如果定义了字符变量ch,以下语句可以实现将键入的字符(包括空格、回车及间隔符)赋予ch。Acin>>chBcin.get(ch)Ccin>>get(ch)Dch=get()39.设有变量定义imx=100,y=1,Z,若执行语句Z=y>0?++x;--x,变量z的值为。A99B100C10lD10240.表示程序流程的三种基本结构是A顺序、选择、循环B选择、循环、返回第3页共34页成贤学院021063、021064、024061班C++(上)期末复习C函数、语句、数组D主函数、子函数、变量41.用#include命令包含的文件是A目标文件B可执行文件C源程序文件D二进制文件42.若有a=13,b=5,c=3则a%b*c的值为A6B9C7.8D843.在C++中,能用作变量名的标识符为AbreakBputsC-2*bD3-and44.若有宏定义和变量说明如下:#defineX1#defineYX+1#defineZY*X/2inta;a=Y;则执行以下语句后输出的结果是:cout<<Z<<--a;A75B11C125D7645.设x=2;y=3;表达式x=y==3运算后。x=A1B2C3D046.一个可执行C++程序的开始执行点是A程序的第一条语句B包含文件的第一个函数C名为voidmain的函数D程序中的第一个函数47.浮点型变量f当前存储的值是17.8,经(int)f类型强制后f存储的值是。A17B18C不变48.如果有下列变量定义:charc=97;则cout<<c;的输出是C定义非法D赋初值非法D不可确定AaB9749.若变量已正确定义并赋值,符合c++语言语法的表达式是。A.a=a+7;B.a=7+b+c,a++C.int(12.3%4)D.a=a+7=c+b50.在C++语言中,int、float和longint这3种类型数据所占用的内存是。A.均为4个字节B.由用户自己定义C.由所用机器的机器字长决定的D.任意的51.若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是。A.a=b=c=d=100;B.d++;C.c+b;D.d=(c=22)-(b++);二、填空题1.设a、b、c都是整型,则a=b=c=5时,则表达式a+=b+c++的结果是a=、b=、c=。2.数学表达式sin(30)+xcos(20)的C++语言表达式是。o2o3.设有intx=1,y=1,z=1;则执行++x||++y&&++z后,x=、y=、z=。第4页共34页成贤学院021063、021064、024061班C++(上)期末复习4.[程序]voidmain(){inti=4,j=5,k=6;i++&&++j||++k;cout<<i<<j<<k;}程序的输出是5.[程序]。voidmain(){inta=13,b=16;cout<<!a<<’\t’<<(a&b);}程序输出为。6.[程序]#include<iostream.h>#definePR(x,y,z)cout<<x<<’\t’<<y<<’\t’<<z<<’\n’voidmain(){inti=0,j=0,k=0;i=(9+6)%5>=9%5+6%5;cout<<i<<’\n’;++i||++j&&++k;PR(i,j,k);i+=j++;cout<<i;}程序的第一次输出是。程序的第二次输出是。程序的最后一次输出是。7.设整型变量x,y,z的值分别为10,3,7;则表达式x>10?x+100:x-10的值是8.若整型变量w=1,x=2,y=3,z=4,则条件表达式w>x?w:z>y?z:x的值为9.inta=5,b=6,c=1,x=2,y=3,z=4;c=(a=c>x)&&(b=y>z);问:执行上述程序后,b的值是____,c的值是____。第5页共34页成贤学院021063、021064、024061班C++(上)期末复习10.程序#include<iostream.h>Voidmain(){intx,y,z;x=y=z=0;cout<<(x++&&++y||z++)<<'\n';cout<<x<<'\t'<<y<<'\t'<<z;;}程序第一行输出为程序第二行输出为11.程序#include<iostream.h>#definePR1(num)cout<<num;cout<<’\t’#definePR2(a,b)PR1(a);PR1(b)#definePRINT(c,d)cout<<c<<dvoidmain(){intx=10,y=20,z=100;PR1(x);PR2(x,y);PRINT(hex,z);}输出结果为12、程序#include<iostream.h>voidmain(){inti=4,j=5,k=6;i++&&++j||++k;cout<<i<<j<<k;}程序的输出是。13、程序#include<iostream.h>#definePR(x,y,z)cout<<x<<’\t’<<y<<’\t’<<z<<’\n’voidmain(){inti=0,j=0,k=0;i=(9+6)%5>=9%5+6%5;第6页共34页成贤学院021063、021064、024061班C++(上)期末复习cout<<i<<’\n’;++i||++j&&++k;PR(i,j,k);i+=j++;cout<<i;}程序的第一行输出是程序的第二行输出是程序的最后一行输出是。。。14.#include<iostream.h>voidmain(){enumw{mon,tues,wednes=3};wweek;intk;for(k=mon;k<=wednes;k++){switch(k){case0:week=mon;break;case1:week=tues;break;case2:week=wednes;break;}switch(week){casemon:cout<<(int)mon;break;casetues:cout<<(int)tues;break;casewednes:cout<<(int)wednes;break;}}}问题一:枚举元素mon,tues,wednes的值依次是:_____问题二:运行程序的输出结果是:____问题三:程序运行结束时,变量k的值是:___第7页共34页成贤学院021063、021064、024061班C++(上)期末复习第4章C++的流程控制语句一、选择题1.设整型变量x的当前值为3,执行以下循环语句后,输出的结果是。docout<<(x-=2);while(!(--x))A.0B.1-2C.30D.死循环,输出许多值2.当前整型变量i的值是10,执行下列switch语句后i的值是。switch(i){case9:i+=1;case10:i+=1;case11:i+=1;defaule:i+=1}3.对下面三条语句,正确的论断是。(1)if(a)s;elses2;(2)if(a==0)s2;elses1;(3)if(a!=0)s1;elses2;A.三者相互等价B.三者相互不等价C.只有(2)和(3)等价D.以上三咱说法都不正确4.下列关于break和switch语句的叙述中,正确的是。A.break是switch语句的一个成分B.在语句switch中可以根据需要使用或不使用break语句C.在语句switch中必须使用break语句D.上述结论中两个正确的5.设有程序段intx=10;while(x=0)x=x-1;则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句只执行一次6.退出一个循环语句(不终止函数的执行)的有效措施是:A、用break语句B、用continue语句C、用return语句D、用exit语句7.设整型变量x的当前值为3,执行以下循环语句后,输出的结果为:do第8页共34页成贤学院021063、021064、024061班C++(上)期末复习cout<<’\t’<<x-=2;while(!(--x));A、0B、1-2C、30D、死循环,输出许多值8.对下面三条语句,正确的论断是__。(1)if(a)s1;elses2;(2)if(a==0)s2;else(3)if(a!=0)s1;elses2;s1;A、三者相互等价B、三者相互不等价C、只有(2)和(3)等价D、以上三咱说法都不正确9.以下关于switch语句和break语句的描述中,只有是正确的。A.在switch语句中必须使用break语句B.break语句只能用于switch语句C.在switch语句中,可以根据需要使用或不使用break语句D.break语句是switch语句的一部分10.C++语言中。A.不能使用do-while语句构成的循环B.do-whiIe语句构成C.do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D.do-while语句构成的循环,当while语句中的表达式值为零时结束循环的循环必须使用break语句才能退出11.对于for(表达式1;;表达式3)可理解为。A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)二填空题1.有整型变量a、b,则下列for循环中的输入语句最少可执行次,最多可执行次for(a=0,b=0;b!=30&&a<3;a++)cin>>b;2.设整型变量I初值是1,则语句while(I++<5);执行后I的值是。3.下面程序的执行结果输出,#include<iostream.h>#definePR1(num)cou<<num;cout<<’\t’#definePR2(a,b)PR1(a);PR1(b)voidmain(){intx=10,y=20,z=100;PR1(x);PR2(x,y);}第9页共34页成贤学院021063、021064、024061班C++(上)期末复习4.下面程序的执行中共输出个数,最后一个输出的数是#include<iostream.h>voidmain(){inty=9;for(;y>0;y--)if(y%3==0)cout<<--y<<’\t’;}5.下面程序的执行结果是。#include<iostream.h>voidmain(){intx=1,i=1;for(;x<50;i++){if(x>10)break;if(x%2){x+=3;continue;}x=1;}cout<<x<<i<<’\n’;}6.程序#include<iostream.h>voidmain(){unsignedi;intcount=1;i=~0;while((i>>=1)!=0)count++;cout<<“count=”<<count<<’\n’;}在16位系统中(注:16位系统的整型数据只使用2个字节,32位系统使用4个第10页共34页成贤学院021063、021064、024061班C++(上)期末复习字节)程序的结果是。如果将(i>>=1)改为(i>>1)程序的结果是。不作上述修改,而将unsignedi;改为unsignedchari;程序的输出结果是。7.程序#include<iostream.h>voidmain(){inti=1;while(i++<5);cout<<i;}程序的输出是。8.inta,b;for(b=1,a=1;b<=50;b++){if(a>=10)break;if(a%2==1){a+=5;continue;}a-=3;}问:执行上述程序段后,a的值是,b的值是9.#include<iostream.h>voidmain(){intm,n,x,y;cin>>x>>y;m=1;n=1;if(x>0)m=m+1;if(x>y)n=n+m;elseif(x==y)n=5;elsen=2*m;cout<<m<<n;}问:为了使输出的结果是n=4,x的输入值应满足条件与第11页共34页成贤学院021063、021064、024061班C++(上)期末复习10.#include<iostream.h>voidmain(){inta,b,c;a=2,b=3,c=1;if(a>b)if(a>c)cout<<a;elsecout<<b;cout<<”end”<<endl;}问:执行上述程序后输出____。11.执行下列程序段后,变量n的值是:intn=10;switch(n){case9:n-=1;case10:n+=1;case11:n--;case12:n++;default:++n;}三完善程序题1.求f(X)=-x/2!+x/4!-x/6+x/8!……,要求精度为十万分之一2468#include<iostream.h>#include<math.h>voidmain(){doublex,y,t;intn=0;cout<<“Inputx:”cin>>xt=1;;while(fabs(t)>1e-6){n++;y+=(t=);}cout<<“y(“<<x<<”)=”<<y<<’\n’;}第12页共34页成贤学院021063、021064、024061班C++(上)期末复习2.程序功能:在三个整数a,b和C中选出最大者,将该值输出。#include<iostream.h>voidmain(){ima,b,c,max;cout<<”请输入三个正数:”;cin>>a>>b>>c;cout<<”a=:”<<a<<'\t’<<"b:"<<b<<'\t'<<"c="<<c<<endl;if()max=a;elseif()max=b;else;cout<<”最大数为:max=”<<<<endi;}3.程序功能:用数字0和9之间不同的数字构造所有可能的三位数(个位、十位和百位上的数字各不相同),并统计出共有多少种。#include<iostream.h>voidmain(){inti,j,k,count=0;for(i=1;i<=;i++)for(j=0;j<=;j++)if()continue;elsefor(k=0;k<=9;k++)if(){cout<<100*i+10*j+k<<’,’;count++;}cout<<endl<<”Total=”<<count<<endl;}4.完善一个程序,求满足以下条件的最大的n。12+22+32+…+n2≤1000#include<iostream.h>voidmain(){intn,s;s=n=0;while(){第13页共34页成贤学院021063、021064、024061班C++(上)期末复习s+=n*n;;}cout<<“n=“<<n-1<<endl;}第5章函数习题一、选择题1.以知函数原型structtreef(int,int*,structtree,structtree*);其中tree是经说明的结构类型。且已有下列定义的变量structtreept,*p;inti;则是正确的函数调用语句。1题超范围,不做A&pt=f(10,&(i+2),pt,p)Bpt=f(i++,(int*)p,pt,&pt);Cp=f(i+1,&i,pt,p);D&p=f(10,&i,pt,p);2.判断两个字符串s1和s2是否相等,应当使用。A.if(s1==s2)B.if(s1=s2)C.if(strcmp(s1,s))D.if(!strcmp(s1,s2)3.C++语言中函数返回值的类型是由决定的。A.return语句中的表达式类型C.定义函数时所指定的函数类型B.调用该函数的主调函数类型D.传递给函数的实参类型4.下列论断正确的是:在C++语言的函数中,。A、可以定义和调用其他函数B、可以调用但不能定义其他函数C、不可以调用但能定义其他函数D、不可以调用也不能定义其他函数5.在一个源文件中定义的全局变量的作用域为A、文件的全部范围B、本程序的全部范围C、本函数的全部范围D、从定义该变量的位置开始至本文件的结束6.设函数声明语句中的参数表为(int&a,int&b,intC),函数体中a,b,C三个变量的值都发生变;化主函数中调用此函数的实参表为(x,y,z),调用函数语句执行后,以下叙述正确的是。A)变量x和y的值发生变化B)变量x和y的值不发生变化C)变量x、y、z的值都发生变化D)只有变量z的值发生变化7.变量的有效范围与其定义的位置有关,,其作用域在整个源程序文件中都有效。A、在第一个函数中定义的变量B、在定义第一个函数之前所定义的变量C、在主函数中定义的变量D、在函数中定义的静态变量第14页共34页成贤学院021063、021064、024061班C++(上)期末复习8.C++语言中函数返回值的类型是由决定的。A、return语句中的表达式类型B、调用该函数的主调函数类型C、定义函数时所指定的函数类型D、传递给函数的实参类型9.判断两个字符串s1和s2是否相等,应当使用A、if(s1==s2)B、if(s1=s2)C、if(strcmp(s1,s2))D、if(!strcmp(s1,s2))10.在程序执行过程中,该程序的某一个函数func()中说明的static型变量V有这样的特性:A、V存在于func()被调用期间且仅能被func()所用B、V存在于整个程序执行过程且仅能被func()所用C、V存在于func()被调用期间且可被所有函数所用D、V存在于整个程序执行过程且可被所有函数所用二、填空题1.执行下面程序共产生行输出,第一行输出的分别是及。#include<iostream.h>voidf(int);voidmain(){f(3);}voidf(intn){staticints=5;inta=5;if(n!=0){s++;a++;cout<<s<<’\t’<<a;f(n-1);}}2.[程序]#include<iostream.h>intfac(inta){intb=0;staticintc=3;第15页共34页成贤学院021063、021064、024061班C++(上)期末复习b++;c++;returna+b+c;}voidmain(){inta=3,j;for(j=0;j<3;j++)cout<<fac(j);}招待以上程序后,第一行的输出是,第三行的输出是。3.[程序]#include<iostream.h>voidf(intb,intt){intm;if(b<t){m=(b+t)/2;cout<<m<<’\n’;f(b,m-1);f(m+1,t);//A}}voidmain(){f(1,6);}执行以上程序后,第一行的输出是,第二行的输出是,最后一行的输出是。4.[程序](共2分)#include<iostream.h>#defineA3voidmain(){inta;#defineB(a)((A+1)*a)a=3*(A+B(5));cout<<“x=”<<a<<”\n”;}第16页共34页成贤学院021063、021064、024061班C++(上)期末复习程序是否正确(是或否);若程序错,则原因是(或程序正确,则输出结果是):。5.当一个联合类型的变量作为函数的实参时,它传递给函数的是6.[程序]。#include<iostream.h>5题超出范intf(intx){围,不要求inty=1;staticintz=1;z+=z+y++;return(z+x);}voidmain(){cout<<f(3)<<’\n’;cout<<f(3)<<’\n’;}执行以上程序后,第一和第二行的输出分别是和。7.[程序]#include<iostream.h>intm=10;intf(intx,inty){intm=5;m+=x*y;returnm;}voidmain(){inta=6,b=7;cout<<f(a,b)/m<<'\n';}执行以上程序后,输出结果。8.[程序]voidf(inta){第17页共34页成贤学院021063、021064、024061班C++(上)期末复习if(a<0){cout<<“-”;a=-a;}cout<<char(a%10+’0’);if((a=a/10)!=0)f(a);}voidmain(){inta=-3567;f(a);cout<<’\n’;a=3456;f(a);cout<<“\n”;}执行以上程序后,输出结果的第一行是;第二行是。9.#include<iostream.h>fun1(int,int)voidmain(){intk=4,m=1,p;p=fun1(k,m);cout<<p;p=fun1(k,m);cout<<p<<endl;}fun1(intx,inty){staticintm=0,i=2;i+=m+1;m=i+x+y;returnm;}问:程序执行后输出的结果为,10.#include<iostream.h>f(int);voidmain()第18页共34页成贤学院021063、021064、024061班C++(上)期末复习{intw=2,k;for(k=0;k<3;k++){w=f(w);}cout<<w<<’\n’;}f(intx){inty=0;/*static*/intz=3;y++;z++;return(x+y+z);}问题1:执行程序后,输出的第一个数是____,最后一个数是____。问题2:如果把对static的注解改为static定义,输出的第一个数是____,最火一个数是__。11.#include<iostream.h>intfun(inti);voidmain(){inti=1;switch(i){default:i++;break;case0:i++;fun(i);case1:i++;fun(i);case2:i++;fun(i);}cout<<i<<’\n’;}intfun(inti){statick=10;i++;k++;cout<<k<<’\n’;returnk;}问:执行上述程序后,最后输出的i是____,k是____。第19页共34页成贤学院021063、021064、024061班C++(上)期末复习12.[程序]inti=0;voidmain(){inti=5;{cout<<i;inti=7;cout<<i;cout<<::i;}}程序的输出是13.对下面小程序:(1)写出执行后的输出结果。(2)写出程序求解的原数学公式。intHT(intn,imx){if(n==O)return1;if(n==1)return2*x;elsereturn2*x*HT(n-1,x)-2*(n-1)*HT(n-2,x);}voidmain(){intx,m,n;x=2;for(n=1;n<4;n+=2){m=HT(n,x);cout<<”HT(”<<n<<’,’<<x<<”)=”<<m<<endl;}}14.写出执行下面小程序的输出结果。#include<iostream.h>voidac(floatx);bc();intm=10;voidmain(){inti,s=0;floatx;x=0.5;ac(x);第20页共34页成贤学院021063、021064、024061班C++(上)期末复习for(i=0;i<4;i++){s=s+bc();cout<<”&”<<s<<endl;}}voidac(floatx){inti=0;floats=0;while(i<40){s=s+i*x;i=i+m;}cout<<x<<','<<i<<','<<s<<endl;}bc(){staticints;s=s+2*m;cout<<”S=”<<S;returnS;}15.[程序]#include<iostream.h>intfac(inta){intb=0;staticintc=3;b++;c++;returna+b+c;}voidmain(){inta=3,j;for(j=0;j<3;j++)cout<<fac(j)<<endl;}程序执行后输出的第一行和最后一行为和。第21页共34页成贤学院021063、021064、024061班C++(上)期末复习三、完善程序题1.下面是求前n个自然数和的递归函数,(即求1+2+3+…+n)intsum(intn){if()return1;elsereturn;}2.程序功能:函数prime(intn)负责判断一个整数是否是素数(质数),将判断结果返回给主函数。主函数中输入一个整数,调用prime函数进行判断后,根据返回结果输出相应信息。#include<iostream.h>#include<math.h>enumflag{FALSE,TRUE);intprime(intn);voidmain(){intn;cout<<”请输入一个整数:”;cin>>n;if()cout<<n<<”是素数!”<<endl;elsecout<<n<<”不是素数!”<<endl;}intprime(){flagffor(intm=2;m<=sqrt(n);m++)if(){f=FALSE;returnf;}returnf;}第22页共34页成贤学院021063、021064、024061班C++(上)期末复习第6章数组习题一、选择题1、以下对二维数组a进行不正确初始化的是A.staticcharword[]='Turbo\0';B.staticcharword[]={'T','b','o','\O');。'u','r',C.staticcharword[]={”Turbo\O”);D.staticcharword[]=”Turbo\O”;2、以下对二维数组a进行正确初始化的是。A.inta[2][3]={{1,2},{3,4},{5,6}};B.inta[][3]={1,2,3,4,5,6};C.inta[2][]={1,2,3,4,5,6};D.inta[2][]={{1,a进行不正确初始化的是A.inta[2][3]={0};B.inta[][3]={{1,C.inta[2][3]={{1,2},{3,4},D.inta[][3]={1,2,3,4,5,6);a进行不正确初始化的是A.inta[][3]={3,2,1,1,2,3};B.inta[][3]={{3,2,1},{l,2,3}};2},{3,4}};3、以下对二维数组。2},{0}};{5,6}};4、以下对二维数组。C.inta[2][3]={{3,2,1},{1,2,3}};D.inta[][]={{3,2,1},{1,2,3}};5、在定义inta[2][3];。A.a(1,2)B.a[1,3]C.6、在执行inta[][3]={1,2,3,4,5,6};语句后,A.4B.2D.57、在定义inta[3][6];后,第10个元素是A.a[2][4]B.8、为了判断两个字符串sl和s2是否相等,A.if(s1==s2)B.if(s1=s2)C.if(strcpy(S1,s2))D.if(strcmp(s1,s2)==O)9、当接受用户输入的A.cin()B.gets()C.getchar()10、当输出含空格的A.cout<<B.puts()C.putchar()D.putc()11、定义如下变量和数组:之后,对a的引用正确的是a[1>2][!1]D.a[2][0]a[1][1]的值是。1C.a[1][3]C.a[3][1]D.a[4][2]应当使用。含空格的字符串时,应使用函数。D.cin.getline()字符串时,应使用函数。inti;intx[3][3]={1,2,3,4,5,6,7,8,9);则以下语句的输出结果是。第23页共34页成贤学院021063、021064、024061班C++(上)期末复习for(i=O;i<3;i++)cout<<x[i][2-i];A.159B.147C.357D.36912、以下关于C++语言中数组的描述正确的是A.数组的大小是固定的,但可以有不同的类型的数组元素B.数组的大小是可变的,但所有数组元素的类型必须相同C.数组的大小是固定的,所有数组元素的类型必须相同D.数组的大小是可变的,可以有不同的类型的数组元素13、以下一维数组a的正确定义是。A.inta(10);C.intn;B.intn=10,a[n];D.#definesize10cin>>n;inta[size];inta[n];14、在定义inta[10];之后,对a的引用正确的是。A.a[10]B.a[6.3]C.a(6)D.a[10-10]15.下面关于数组的说法正确的是()。A.它与普通变量没什么区别B.它的元素的数据类型可相同,也可不同c.它用数组名标识其元素D.数组元素的数据类型是相同的16.下列一维数组定义正确的是()。A.x=5;intnum[x];B.constintx=5;floatnum[x];C.constfloatx=5;intnum[x];D.constintx;x=5;intnum[x];17.下面关于“constintn=10;charname[n];”的说法正确的是()。A.这种定义是错误的,因为数组下标不能用变量标识B.它表示定义了一个字符型数组,其长度为10C.数组元素的最大下标为10D.它只能存储9个字符,因为要留出一个存储单元来存储终结符“0”18.下列关于数组初始化的说法正确的是()。A.对于“inta[5];”,它的数组元素初值为0B.“inta[5]={1,3,5,7,8,9);”是可以的,这时数组长度自动变为6C.“staticinta[5];”的数组元素初值为0D.“inta[5]={1,3,5)”是不合法的,因为数组长度为5,而仅有3个数据,不知赋给哪个元素19.下列的说法正确的是()A.定义“inta[4]={1,3};”,则a[0]=1,a[1]=3,a[2],a[3]的值不确定B.定义“staticinta[4];”,则元素值不确定c.“constintx;x=5;”表示给常量x赋初值D.定义“inta[4];”,则其元素的值是不确定的20.若有定义“staticinta[5]={1,3,5};”,则下列说法正确的是()。A.a[5]的值为0B.a[4]的值为0第24页共34页成贤学院021063、021064、024061班C++(上)期末复习C.“cout<<a[3];”其结果为5D.“cin>>&a[4];’’可以用来给a[4]元素赋值21.对于inta[3][5]的说法正确的是()。A.这是一个二维数组,它的数据元素的数据类型为整型,它按列依次存储在连续内存单元中B.它的最大下标值的元素为a[3][5]C.它的最大下标值的元素为a[3][4]D.它的最大下标值的元素为a[2][4]22.有定义“inta[2][5];”,若a[0][1]的地址为x,则a[0][0]、a[1][3]地址分别为(假设一个整型数据占用两个字节的内存空间)():A.X-2,x+14B.x-1,x+7C.x+1,x+7D.X-1,x+1423.若有定义“floata[m][n];”,且a[1][1]的地址为x,每个float元素占用4个字节,则a[i][j]的地址为()。A.x+4*(i-1)*n+4*(j-1)B.x+(i-1)*n+(j-1)C.x+4*(i-1)*j+(j-1)D.x+4*i*j+4*j24.设有“inta[3][5];”,其按列排列,则与a[2][1]位置相同的按行排列的元素是()。A.a[2][1]B.a[1][0]C.a[1][4]D.a[2][3]25.下列选项中等价的是()。A.inta[2][3]={1,2,3,4,5,6}与inta[2][]={1,2,3,4,5,6}B.inta[][3]={1,2,3,4,5,6}与inta[2][3]={1,2,3,4,5,6)C.inta[2][3]={1,2,3}与inta[][3]={1,2,3}D.inta[2][3]={1,2}与inta[2][3]=({1},{2}}26.下列说法正确的是()。A.字符型数组与整型数组可通用B.字符型数组与字符串其实没有什么区别C.当字符串放在字符数组中,这时要求字符数组长度比字符串长1个单元,因为要放字符串终结符‘\0’D.字符串的输出可以用它所存储的数组来输出,也可以字符串的形式整体输出,结果没区别27.下列字符数组的初始化不正确的是()。A.charch[5]={"a”,”b”,”c”,”dt”,”e”);B.charch[]={’a’,'b’};C.charch[15]={"welcometochina”);D.charch[14]={"Iamastudent”};28.若有“Charch[15];cin>>ch;”,且有“welcomehere”输人,则“cout<<ch[1]<<ch;”输出结果是()A.e.welcomehereB.ew第25页共34页成贤学院021063、021064、024061班C++(上)期末复习C.e.welcomeD.ewelcome29.若有“charchl[16]=”welcome",ch2[3]=”tO”,ch3[6]=”china”;cout<<strcat(strcat(chl,ch2),ch3);”,输出结果是()。A.welcometochinaB.welcomeC.welcometochinaD.W30.对于“charchl[20],ch2[20];strcmp(chl,ch2);”的说法正确的是()。A.若chl==ch2则strcmp(chl,ch2)返回1。B.若chl==ch2则strcmp(chl,ch2)返回0。c.若chl>ch2则strcmp(chl,ch2)返回-1。D.若chl<ch2则strcmp(chl,ch2)返回1。二、完善程序题1、函数find用来判断数组a中的数据是升序、降序还是无序。若为升序返回1,若为降序返回2,无序返回3。形参n为数组a中有效整数的个数,数组a从a[1]~a[n]中包含待判断的元素个数。intfind(inta[],intn){ints,i;if(a[1]<a[2])((1));elses=2;if(s==1){i=2;while(i<n){if((2)){s=3;break;}((3));}}if(s==2)for(i=2;((4));i++){if(a[i]<a[i+1]){((5));break;}}returns;}第26页共34页成贤学院021063、021064、024061班C++(上)期末复习2、下列函数用于确定一个给定字符串str的长度,请填空。intstrlen(charstr[]){intnum=0;while((6))++num;return((7));}3、下列count函数用于计算子串substr在母串str中出现的次数,请填空。intcount(char*str,char*substr){intx,y,z;inthum=0;for(x=0;str[x]!=((8));x++)for(y=((9)),z=O;substr[z]==str[y];z++,y++)if(substr[((10))]=='\0')num++;break;return((11));}4、下列函数inverse的功能是使一个字符串按逆序存放,请填空。voidinverse(charstr[]){charm;inti,j;for(i=0,j=strlen(str);i<((12));i++,((13))){m=str[i];str[i]=((14));((15));}}5、下列程序用于判断字符串S是否对称,对称时返回1,否则返回0。如f(”abba”)返回1,而f("abab")返回0。请填空。intf(((16))){inti=0,j=0;while(s[j]);for(j--;i<j&&S[i]==s[j];i++,j--);return(((17)));}第27页共34页成贤学院021063、021064、024061班C++(上)期末复习三、阅读程序并回答问题1、设数组a的初值为102220A=010执行语句:for(i=0;i<3;i++)for(j=0;j<3;j++)a[i][j]=a[a[i][j]][a[j][i]];数组a的结果是什么?2、阅读下列程序,写出运行结果。#include<iostream.h>voidmain(){inti,j;Staticinta[10]={1,1,1,1,l,1,1,1,1,1};for(i=0;i<10;i++)for(j=0;j<i;j++)a[i]=a[i]+a[j];for(i=0;i<10;i++)cout<<a[i];cout<<’\n’;}3.在数组初始化时,若初始化的元素比数组中的元素少,则其余元素自动初始化为(1);“inta[3]={3};”则a[2]=(2);“inta[3]={1,3,5,7};”则会(3);“inta[3];,'则a[2]的值(4)。4.定义“constinta;a=5;”是否正确?(1),如何改正(2)。5.用来声明数组6.定义常量变量n,并初始化为8的语句为:。长度,可使程序灵活性更大。7.声明长度为10的float型数组8.下列语句正确吗?如何改正:。inta[3][8];a,且初始化为0的语句是:。for(inti=1;i<=3;i++)for(intj=0;j<8;j++)a[i][j]=i+j;9.请填空,使该程序输出结果为:123456789101234554321程序代码如下:第28页共34页成贤学院021063、021064、024061班C++(上)期末复习((1))Voidmain(){inta[10];for(i=O;i<10;i++)((2));for(i=0;i<10;i++)cout<<a[i]<<””;cout<<endl;for(i=0;i<5;i++)((3));for(i=O;i<10;i++)cout<<a[i]<<””;}10.下面是字符串拷贝函数,请填空。voidccopy(){charch1[]=”goodmorning!",ch2[20];inti=0,j=O;while(((1))){ch2[i]=((2));((3));}((4));)11.下面函数是寻找二维数组中每一行的最大值,请填空。#defineN5#defincM5voidmax(inta[N][M]){inti,j,p;`for(i=0;i<N;i++){((1));for(j=1;j<M;j++)if(a[i][p]<a[i][j])((2));cout<<i<<”;”<<p<<endl;}}第29页共34页成贤学院021063、021064、024061班C++(上)期末复习12.下面程序是将字符串逆序化,请填空。#include<iostream.h>((1))voidmain(){charch[]=”hello,boy!”;charc;inti=0,j=strlen(ch);for(;((2));i++,j--){c==ch[i];((3));ch[j-1]=c;}cout<<ch;}13.下面的程序是把十进制数转换为某个指定的进制,请填空。#include<iostream.h>Voidmain(){intnum[65],i=O,base;longn;cout<<”inputadecimalnumber:”;cin>>n;cout<<”inputbasenumber:”;cin>>base;do{((1));i++;n=n/base;}while(((2)));for(((3));i>=0;i--)cout<<num[i]<<””;}第30页共34页成贤学院021063、021064、024061班C++(上)期末复习C++(上)总复习题参考答案一、第一、二、三章选择题1、A2、C3、B4、B5、B6、C7、C8、B9、A10、B11、B12、C13、A14、B15、D16、D17、C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冠心病介入治疗及护理
- 苏州高一期末试卷及答案
- 临床正常脊髓表现及脊髓肿瘤常见疾病MR诊断总结
- 2024年长春市绿园区公办幼儿园招聘笔试真题
- 2024-2025学年山东省日照市田家炳中学八年级上学期12月份考试英语试卷
- 2024-2025学年四川省达州铁路中学八年级上学期期中检测英语试卷
- 2024年三明市三明中学招聘专业工作人员笔试真题
- 2024-2025学年四川省广元市剑阁中学校九年级上学期期中考试英语试卷
- 2024年上海中医药大学附属曙光医院淮南医院招聘真题
- 2024年福建漳州漳浦金瑞集团招聘笔试真题
- 洋流课件2024-2025学年高中地理人教版(2019)选择性必修一
- 2024-2025学年中职数学拓展模块一 (下册)高教版(2021·十四五)教学设计合集
- 2024-2030年中国消防行业市场发展分析及发展趋势与投资前景研究报告
- 2024年广东省茂名市小升初数学试卷
- 2024年江苏省常州市中考一模化学试卷(含答案解析)
- 农艺工教学计划及大纲
- 2024年浙江杭州中学中考三模科学试卷试题(含答案详解)
- AQ/T 1119-2023 煤矿井下人员定位系统通 用技术条件(正式版)
- 联邦学习的隐私保护机制分析
- 肌间静脉血栓诊疗指南
- 百利天恒-688506.SH-首创双抗ADC书写全球重磅产品新篇章
评论
0/150
提交评论