首页 C++复习题(全部答案)

C++复习题(全部答案)

举报
开通vip

C++复习题(全部答案)一、C++基础、变量、常量部分试题:(一)单选题8.由C++语言编写的代码程序()A。可直接执行(。exe才可以直接执行)B。是一个源程序C。经过编译即可执行(经过编译链接才可以执行)D。经过编译解释才能执行9。按照C++语言规定的用户标识符命名规则,不能出现在标识符中的是()A。大写字母B。中划线C。数字字符D。下划线10。下列选项中,不能用作标识符的是()A。_1234_B。_1_2C。int_2_D。2_int11.以下选项中合法的用户标识符是()A。long(关键字)B._2TestC。3DmaxD.A.d...

C++复习题(全部答案)
一、C++基础、变量、常量部分试题:(一)单选题8.由C++语言编写的代码程序()A。可直接执行(。exe才可以直接执行)B。是一个源程序C。经过编译即可执行(经过编译链接才可以执行)D。经过编译解释才能执行9。按照C++语言规定的用户标识符命名 规则 编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf ,不能出现在标识符中的是()A。大写字母B。中划线C。数字字符D。下划线10。下列选项中,不能用作标识符的是()A。_1234_B。_1_2C。int_2_D。2_int11.以下选项中合法的用户标识符是()A。long(关键字)B._2TestC。3DmaxD.A.dat12。以下不能定义为用户标识符的是()A.MainB。_0C。_intD。sizeof(运算符)13。列定义变量的语句错误的是()A。int_int;B。doubleint_;C。charFor;D。floatUSA;14.在C++语言中,非法的字符常量是()A。‘\t’B。‘\017’C。"\n”D.‘\xaa’29。以下程序的输出结果是()voidmain(){intk=11;cout<〈dec〈<"k=”〈〈k<〈“,”;cout〈〈oct〈〈”k=”〈〈k〈〈“,”;cout〈〈hex〈〈"k="<〈k<〈endl;}A。k=11,k=12,k=11B.k=11,k=13,k=13C.k=11,k=013,k=0xbD。k=11,k=13,k=b41.不属于C++语言关键字的是().A.intB.breakC.whileD.character42。是C++语言提供的合法关键字的是().A.FloatB.signedC.integerD.Char43。下列说法中,错误的是()。A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数(二)填空题1.一个C++源程序至少有并且只能有一个main(主)函数。2。以下程序运行后的输出结果是1012a。#include〈iostream。h〉#includeintmain(){inta=10;cout<〈dec〈〈a〈〈oct〈 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式是()A。x++B。i=j==0C.(char)(65+3)D。x+1=x+118.在C++语言中,以下非法的赋值语句是()A.j++;B。++(i+1);C。x=j〉0;D。k=i==j;19.表达式3。6—5/2+1。2+5%2的值是()A。4。3B.4.8C。3.3D.3。820.设有语句:inta=3;则执行了语句a+=a-=a*a;变量a的值是()A。3B。0C。9D.—1221.设有语句:intx=10;则执行了语句x+=x-=x—x;变量x的值是()A.10B。20C。40D。3022.以下程序的输出结果是()voidmain(){inti=10,j=1;cout〈=s)49.若希望当x的值为奇数时,表达式的值为“真”,x的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是().A.x%2==1B.!(x%2==0)C.!(x%2)D.x%250。已知x=45,y=’a',z=0;则表达式(x>=z&&y〈'z’||!y)的值是()。A.0B.语法错C.1D.“假”51。执行以下语句后,y的值为()。intx,y,z;x=y=z=0;++x||++y&&++z;A.0B.1C.2D.不确定值55.则执行下面语句后的w值是().voidmain(){inta=1,b=2,c=3,d=4,w;w=(a〈b)?a:b;w=(wintmain(){floatx=123。4567f;cout<〈(int)(x*100+0。5)/100.0〈voidmain(){inta=10;a=(3*5,a+4);cout〈voidmain(){inta=5,b=4,c=3,x;x=a〉b〉c;cout<voidmain(){intx,a=1,b=2,c=3,d=4;x=(a〈b)?a:b;x=(x〈c)?x:c;cout〈〈x〈5)cout<b)c++;52.已知inta=1,b=2,c=3;以下语句执行后a,b,c的值是()。if(a>b)c=a;a=b;b=c;A.a=1,b=2,c=3B.a=2,b=3,c=3C.a=2,b=3,c=1D.a=2,b=3,c=253.请阅读以下程序:该程序()。voidmain(){intx=—10,y=5,z=0;if(x=y+z)cout〈<"***\n";elsecout<<”$$$\n”;}A.有语法错不能通过编译B.可以通过编译但不能通过连接C.输出***D.输出$$$54。执行完下面一段程序后x的值是()。voidmain(){inta=1,b=2,c=4,d=3,x;if(a〈b)if(cgrade;switch(grade){case’A':cout〈〈”85——100\n”;case’B’:cout<<”60—-84\n”;case'C':cout〈〈”〈60\n”;default:cout〈<"gradeiserror!\n”;}}B。voidmain(){chargrade;cin>〉grade;switch(grade){case’A’:cout<〈"85—-100\n";break;case’B’:cout〈〈”60-—84\n”;case'C’:cout〈<”〈60\n”;default:cout<<"gradeiserror!\n”;}}C.voidmain(){chargrade;cin〉〉grade;switch(grade){case’A':cout〈〈"85—-100\n”;break;case’B':cout<<”60--84\n”;break;case'C':cout〈〈”〈60\n";default:cout<<”gradeiserror!\n";}}D.voidmain(){chargrade;cin〉〉grade;switch(grade){case'A’:cout〈〈"85—-100\n”;break;case’B’:cout〈<”60——84\n”;break;default:cout〈〈”gradeiserror!\n”;break;case'C’:cout〈<"<60\n";}}58。当执行以下程序段时,程序将()。voidmain(){intx=-1;do{x=x*x;}while(!x);}A.循环体将执行一次B。循环体将执行两次C。循环体将执行无数多次D。系统将提示有语法错误59.若i,j已定义为int类型,则以下程序段中内循环的总的执行次数是().for(i=5;i;i——)for(j=0;j<4;j++){…}A。20B.24C。25D。3060。有以下语句:i=1;for(;i<=100;i++)sum+=i;与以上语句序列不等价的有().A。for(i=1;;i++){sum+=i;if(i==100)break;}B.for(i=1;i〈=100;){sum+=i;i++;}C。i=1;for(;i<=100;)sum+=i;D.i=1;for(;;){sum+=i;if(i==100)break;i++;}61。标有/**/的语句的执行次数是()。inty,i;for(i=0;i〈20;i++){if(i%2==0)continue;y+=i;/**/}A。20B.19C。10D.9(二)填空题:2。#include>n;switch(n){case’a’:case’A’:cout〈〈"verygood\n";break;case’b':case’B’:cout〈<”good\n”;break;case'c':case'C':case'd’:case'D’:cout〈〈”pass\n”;break;case’e’:case'E':cout〈〈”warning\n”;break;default:cout〈<”error\n";}}5。以下程序的功能是计算:1—2+3—4……+99-100voidmain(){inti=1,j=1,s=0;while(i〈=100){s+=i*j;i++;j=-j;}cout〈〈s<〉a;if(a〉50)cout<〈a;if(a〉40)cout〈30)cout〈〈a;}}7。下面程序根据以下函数关系,对输入的每个x值,计算出y值。请在【】内填空。Xy2>x;if(【1】(x〉2)&&(x〈=10))y=x*(x+2);elseif(【2】((x>-1)&&(x<=2)))y=1/x;elseif(x〈=-1)y=x—1;else【3】y=—1;if(y!=-1)cout〈〈y〈〈endl;elsecout<”error”<〉ch;if(【1】(ch〉=’A')&&(ch〈=’Z’))ch=ch+32;elseif(ch>=’a’&&ch〈=’z’)【2】ch=ch—32;cout〈〈”theconvertedletteris〈〈ch〈〈endl;}9.以下程序运行后的输出结果是______200_______。voidmain(){intx=10,y=20,t=0;if(x==y)t=x;x=y;y=t;cout〈voidmain(){inti;for(i=1;i+1;i++){if(i〉4){cout<〈i++;break;}cout<〈i++;}}(三)编程题1。百钱百鸡:100元钱买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只?2.输出九九乘法表.四、数组与指针部分试题:(一)单选题3。以下数组定义中错误的是()A.intx[][3]={0};B。intx[2][3]={{1,2},{3,4},{5,6}};C.intx[][3]={{1,2,3},{4,5,6}};D。intx[2][3]={1,2,3,4,5,6};4.以下能正确定义二维数组的是()A。inta[][3];B。inta[][3]={2*3};C。inta[][3]={};D。inta[2][3]={{1},{2},{3,4}};5.设有chararray[]="China”;则数组array所占的空间字节数为()A。4B。5C。6D。76.对于以下定义正确的叙述为()charx[]="abcdefg”;chary[]={’a’,'b’,’c','d’,’e’,'f’,’g'};A。数组x和数组y等价B.数组x和数组y的长度相同C.数组x的长度大于数组y的长度D。数组x的长度大于数组y的长度33.以下叙述中正确的是()A.可以在一个函数中调用另一个函数B.可以在一个函数中定义另一个函数C.main()函数必须放在其它函数之前D。所有被调用函数一定要在调用之前进行定义34。以下说法中正确的是()A.C++语言程序总是从第一个函数开始执行B。在C++语言程序中,要调用的函数必须在main()函数中定义C。C++语言程序总是从main()函数开始执行D.C++语言程序中的main()函数必须放在程序的开始部分35.以下程序的输出结果是()voidmain(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;cout〈〈*(p+2)<〈endl;}A.3B。4C。1D。236。以下程序的输出结果是()voidmain(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;cout〈〈(*p+9)〈〈endl;}A。0B。1C.10D。937.以下程序的输出结果是()voidmain(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;cout〈〈(*p+*q)<〈endl;}A。16B.10C。8D.638。以下不能正确进行字符串赋初值的语句是()A.charstr[5]="good!”;B.charstr[]=”good!”;C。char*str="good!”;D。charstr[5]={’g',’o',’o’,’d’,’!’};39。以下程序的输出结果是()voidmain(){charstr[]=”ABCD”,*p=str;cout〈〈int(*(p+4))〈〈endl;}A.68B.’D’C。0D。’0’40。以下程序的输出结果是()voidmain(){charstr[]=”aeiou",*p=str;cout<<*(p+4)<〈endl;}A.oB。uC.eD。f62。以下关于数组的描述正确的是()。A.数组的大小是固定的,但可以有不同的类型的数组元素B.数组的大小是可变的,但所有数组元素的类型必须相同C。数组的大小是固定的,所有数组元素的类型必须相同D。数组的大小是可变的,可以有不同的类型的数组元素63.以下对一维整型数组a的正确说明是()。A。inta(10);B。intn=10,a[n];C。intn;D。constintSIZE=10;cin>〉n;inta[SIZE];inta[n];64.在C++语言中,引用数组元素时,其数组下标的数据类型允许是().A。整型常量B.整型表达式C。整型常量或整型表达式D。任何类型的表达式65。以下对一维数组m进行正确初始化的是().A。intm[10]=(0,0,0,0);B.intm[10]={};C.intm[]={0};D。intm[10]=10*2;66。若有定义:intbb[8];.则以下表达式中不能代表数组元bb[1]的地址的是()。A。&bb[0]+1B。&bb[1]C.&bb[0]++D。bb+167。假定int类型变量占用两个字节,其有定义:intx[10]={0,2,4};,则数组x在内存中所占字节数是()。A。3B。6C。10D.2068。执行下面的程序段后,变量k中的值为().intk=3,s[2];s[0]=k;k=s[1]*10;A。不定值B.33C.30D.1069。以下程序的输出结果是()voidmain(){inti,a[10];for(i=9;i>=0;i——)a[i]=10-i;cout〈〈a[2]〈〈a[5]〈〈a[8]<〈endl;}A。258B。741C。852D。36970.若说明:inta[2][3];则对a数组元素的正确引用是().A.a(1,2)B。a[1,3]C。a[1〉2][!1]D。a[2][0]71.若有定义:intb[3][4]={0};则下述正确的是().A。此定义语句不正确B.没有元素可得初值0C。数组b中各元素均为0D。数组b中各元素可得初值但值不一定为072。若有以下数组定义,其中不正确的是().A。inta[2][3];Bintb[][3]={0,1,2,3};C.intc[100][100]={0};D。intd[3][]={{1,2},{1,2,3},{1,2,3,4}};73。若有以下的定义:intt[5][4];能正确引用t数组的表达式是()。A。t[2][4]B。t[5][0]C。t[0][0]D。t[0,0]74。在定义intm[][3]={1,2,3,4,5,6};后,m[1][0]的值是().A。4B.1C。2D.575。在定义intn[5][6]后第10个元素是()。A.n[2][5]B.n[2][4]C。n[1][3]D。n[1][4]76。下述对C语言字符数组的描述中错误的是()。A.字符数组可以存放字符串B。字符数组中的字符串可以整体输入、输出C。可以在赋值语句中通过赋值运算符"=”对字符数组整体赋值(strcpy())D。字符数组可以像普通数组那样初始化77。下述对C++语言字符数组的描述中正确的是().A。任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占存储空间B。一维数组的元素在引用时其下标大小没有限制C。任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间D。一维数组的第一个元素是其下标为1的元素78.不能把字符串:Hello!赋给数组b的语句是()。A.charstr[10]={’H',’e’,’l’,’l','o’,’!’};B.charstr[10];str="Hello!”;C。charstr[10];strcpy(str,"Hello!”);D.charstr[10]=”Hello!”;79.合法的数组定义是()。A.inta[]=”string”;B.inta[5]={0,1,2,3,4,5};C.ints="string”;D.chara[]={0,1,2,3,4,5};80。以下程序运行后,输出结果是().main(){chararr[2][4];strcpy(arr[0],"you”);strcpy(arr[1],”me”);arr[0][3]='&';cout<〈arr[0]〈〈endl;}A。you&meB。youC.meD。err99.若有说明:inta=2,*p=&a,*q=p;,则以下非法的赋值语句是()。A.p=q;B.*p=*q;C.a=*q;D.q=a;100。若定义:inta=511,*b=&a;,则cout<<*b;的输出结果为:()A.无确定值B.a的地址C.512D.511101.已有定义inta=2,*p1=&a,*p2=&a;下面不能正确执行的赋值语句是()。A.a=*p1+*p2;B.p1=a;C.p1=p2;D.a=*p1*(*p2);102。变量的指针,其含义是指该变量的()。A.值B.地址C.名D.一个标志103.若已定义inta=5;下面对(1)、(2)两个语句的正确解释是().(1)int*p=&a;(2)*p=a;A.语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值.B.(1)和(2)语句的执行结果,都是把变量a的地址值赋给指针变量p。C.(1)在对p进行说明的同时进行初始化,使p指向a;(2)变量a的值赋给指针变量p.D.(1)在对p进行说明的同时进行初始化,使p指向a;(2)将变量a的值赋予*p。104。若有语句int*p,a=10;p=&a;下面均代表地址的一组选项是()。A.a,p,*&aB.&*a,&a,*pC.*&p,*p,&aD.&a,&*p,p105。若需要建立如图所示的存储结构,且已有说明double*p,x=0.2345;则正确的赋值语句是()。0.2345pxA.p=x;B.p=&x;C.*p=x;D.*p=&x;106。有如下语句:intm=6,n=9,*p,*q;p=&m;q=&n;如图1所示,若要实现下图所示的存储结构,可选用的赋值语句是()。pqpqmnmnA.*p=*q;B.p=*q;C.p=q;D.*p=q;107。下面判断正确的是()。A.char*s=”girl”;等价于char*s;*s=”girl”;B.chars[10]={”girl”};等价于chars[10];s[10]={"girl”};C.char*s="girl”;等价于char*s;s=”girl”;D.chars[4]="boy”,t[4]="boy";等价于chars[4]=t[4]=”boy"108。以下不能正确进行字符串赋初值的语句是().A.charstr[5]="good!”;B.char*str="good!";C.charstr[]=”good!”;D.charstr[5]={'g','o’,’o’,’d’};109。下面程序段的运行结果是().char*s=”abcde";s+=2;cout〈voidmain(){chars[]=”abcdef";s[3]=’\0’;cout<〈s〈voidmain(){chars[]=”ABCD",*p=s;cout〈〈*(p+3)<〈endl;}8。以下程序运行后的输出结果是4.charstr[]="stop\0\n\"”;cout<〈strlen(str)<〈endl;9.以下程序运行后的输出结果是5。#include#include#include〈string。h>voidmain(){chara[]={’\1','\2’,’\3','\4’,'\0’};cout〈〈sizeof(a)<〈”"〈〈strlen(a)〈〈endl;}8.输入20个整数到一维数组,统计正整数的个数及其和voidmain(){inta[20],i,sum,count;sum=count=0;for(i=0;i<20;i++)cin〉〉a[i];for(i=0;i<20;i++)if(a[i]〉0){count++;sum+=a[i];}cout〈〈count<<""〈max)max=a[i];elseif(a[i]〉str1[i];flag=0;for(i=0;i〈5;i++)if【3】(str[i]!=str1[i]){flag=1;break;}if(flag)cout〈〈”thiswordisnothello”〈〈endl;elsecout〈〈"thiswordishello”〈〈endl;}15.请填空:Wpc建立如图所示存储结构所需的说明语句是【1】charc,*p.建立如图所示给c输入数据的输入语句是【2】cin〉>c.建立如图所示存储结构所需的赋值语句是【3】p=&c。16.若有定义和语句:inta[4]={1,2,3,4},*p;p=&a[2];,则*-—p的值是___2_____。(三)编程题:1。输入字符串,将其中的非数字字符删除后,输出整个字符串五、函数部分的试题:(一)单选题81.C++语言程序中,当函数调用时()。A。实参和形参各占一个独立的存储单元B。实参和形参共用一个存储单元C.可以由用户指定是否共用存储单元D.计算机系统自动确定是否共用存储单元82。关于return语句,下列正确的说法是().A.在主函数和其他函数中均要出现B.必须在每个函数中出现C。可以在同一个函数中出现多次D。只能在除主函数之外的函数中出现一次83.一个函数返回值的类型是由()决定的。A。return语句中表达式的类型B。在调用函数时临时指定C。定义函数时指定的函数类型D.调用该函数的主调函数的类型84.在C++语言的函数中,下列正确的说法是()。A.必须有形参B.形参必须是变量名C。可以有也可以没有形参D。数组名不能作形参85。以下描述正确的是()。A。函数调用可以出现在执行语句或表达式中B.函数调用不能作为一个函数的实参C。函数调用可以作为一个函数的形参D.以上都不正确86。在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是().A。地址传递B。单向值传递C。由实参传给形参,再由形参传回实参D。传递方式由用户指定87。当调用函数时,实参是一个数组名,则向函数传送的是()。A。数组的长度B.数组的首地址C。数组每一个元素的地址D。数组每个元素中的值88.如果在一个函数的复合语句中定义了一个变量,则该变量()。A。只在该复合语句中有效,在该复合语句外无效B.在该函数中任何位置都有效C。在本程序的源文件范围内均有效D。此定义方法错误,其变量为非法变量89。下列说法不正确的是()。A。主函数main中定义的变量在整个文件或程序中有效B。不同函数中,可以使用相同名字的变量C.形式参数是局部变量D.在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效90。在一个源程序文件中定义的全局变量的有效范围是().A.本源程序文件的全部范围B.一个C程序的所有源程序文件C。函数内全部范围D.从定义变量的位置开始到源程序文件结束91.以下叙述中不正确的是().A。在不同的函数中可以使用相同名字的变量B。函数中的形式参数是局部变量C。在一个函数内定义的变量只在本函数范围内有效D。在一个函数内的复合语句中定义的变量在本函数范围内有效93。若有以下函数调用语句:fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函数调用语句中实参的个数是().A.3B。4C。5D.695.有如下程序intfunc(inta,intb){return(a+b);}voidmain(){intx=2,y=5,z=8,r;r=func(func(x,y),z);cout〈〈r〈〈endl;}该程序的输出的结果是()。A。12B.13C.14D.1596。有以下程序floatfun(intx,inty){return(x+y);}voidmain(){inta=2,b=5,c=8;cout〈〈(fun((int)fun(a+c,b),a—c)))〈〈endl;}程序运行后的输出结果是()。A.编译出错B。9C。21D。9。097.以下程序的输出结果是()。intf(intb[],intm,intn){inti,s=0;for(i=m;i〈n;i=i+2)s=s+b[i];returns;}voidmain(){intx,a[]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf(”%d\n”,x);}A.10B.18C。8D。1598。以下程序的输出结果是()。inta,b;voidfun(){a=100;b=200;}voidmain(){inta=5,b=7;fun();cout<〈a〈〈b〈〈endl;}A。100200B。57C。200100D。75六、文件部分的试题1、C++中输入流类是(cin)类,该类实例的“>〉”运算符作用是将数据从(输入流)读出来,写入(变量)中。2。C++中输出流类是(cout)类,该类实例的“<<"运算符作用是将数据从(变量)读出来,写入(显示器)中。3。要使用输入输出流类,在include语句中应该包含(iostream。h)头文件。
本文档为【C++复习题(全部答案)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
白学芝
热爱爱问
格式:pdf
大小:1MB
软件:PDF阅读器
页数:33
分类:
上传时间:2023-04-04
浏览量:23