计算机文化基础习题与答案(第2部分 C++语言习题与答案)_第1页
计算机文化基础习题与答案(第2部分 C++语言习题与答案)_第2页
计算机文化基础习题与答案(第2部分 C++语言习题与答案)_第3页
计算机文化基础习题与答案(第2部分 C++语言习题与答案)_第4页
计算机文化基础习题与答案(第2部分 C++语言习题与答案)_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

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

文档简介

1、第2部分 C+语言习题与答案第3章 C+基础知识习题231 单项选择题232 阅读程序题433 程序填空题634 编程题(根据要求编写程序并上机调试)7第4章 控制结构84.1 单项选择题842阅读程序题943 程序填空题1344 编程题 (根据要求编写程序并上机调试)20第5章 数组与指针2051 单项选择题2052阅读程序2253 程序填空题27第6章 函数3361 单项选择题3362 阅读程序题346.3 程序填空题4364 编程题 (根据要求编写程序并上机调试)54第7章 类和对象5571单项选择题5572 阅读程序题5773 程序填空题737.4 编程题 (根据要求编写程序并上机调试

2、)82第8章 继承和派生838.1 单项选择题838.2 阅读程序题848.3 程序填空题898.4 编程题 (根据要求编写程序并上机调试)91第9章 虚函数与运算符重载929.1单项选择题9292 阅读程序题939.3 程序填空题989.4 编程题 (根据要求编写程序并上机调试)106第10章 I/O流10610.1 单项选择题10610.2 阅读程序题10710.3 程序填空题10910.4 编程题 (根据要求编写程序并上机调试)112第2部分 C+语言习题与答案第3章 C+基础知识习题31 单项选择题1在16位机中,若C+语言int类型的数据占2个字节,则unsigned int类型的数

3、据取值范围是_。A)-32768+32767 B)065536 C)-256+256 D)05122下列不属于C+字符型常量的是_。A)n B)6 C)A D)0153下列运算符号中优先级别最高的是_。A)+ B)?: C)!= D)+=4设有定义int x,y,z; 若x、y、z已赋大于1的值,则能正确表示的表达式是_。A) 1/(double)x*y*z B)1/(x*y*z)C)1/x/y/z D)1/double(x*y*z)5设有定义int a=2,b; 执行b=2+(a+=a+,a+5,+a);后,b的值是_。A) 7 B)10 C)12 D) 86设a为整型变量,不能正确表达数学

4、关系5a5&a10C).5a10 D).!(a=10)7设有定义: int a; float b; double i; 则表达式 18+a+i*b-a/2; 值的数据类型是_。A).int B).float C).char D).double8设有定义: int i=8,a,b; double x=1.34,y=5.3; 符合C+语法的是_。A).a+=a-=(a=3)*(b=4) B).x(-3)C).a=a*3=2 D).y=float(i)+9如果a=1,b=2,c=3,d=4,执行表达式 ab?a:cd?c:d后的结果是_。A).1 B).2 C).3 D).410设有定义: int

5、a=2,b=2; 执行 a+=+a+b; 后,a和b的值是_。A).6 2 B).7 2 C).8 2 D).5 211设有定义: int a=10; 以下说明引用的形式中,正确的是_。A).int &x=a; B).int &y=10; C).int &s=&a D).float &t=a12设有定义: int a,b,c; a=b=c=5; 则表达式a*= -b-c-; 的值是_。A).15 B).-5 C).-10 D).2013设char ch1=A,ch2=a; 表达式ch2= =ch1+32?ch1:ch1+32的值是_。A).0 B).1 C).a D).A14设有定义:int

6、a=0,b=5,c; 执行语句c=(a=b)|+a&b+后,a、b、c的值分别是_。A)5,5,1 B)4,6,1 C)1,6,1 D)1,5,015.以下枚举类型定义中正确的是。A).enum a=sun,mon,tue;B).enum asun=7,mon=-1,tue;C).enum a=sun,mon,tue;D).enum asun=0,mon,tue;16设有定义int n; 执行n=f-a后,n的值是_。A).f B).a C).5 D).617以下字符串初始化中不正确的是_。A).char str =”abcdefg”; B).char str10=”abcdefg”;C).c

7、har str5=2,4,6,8,10; D) char str5=1,3,5,7,9;18设有说明语句:int x=1,y=3,z=5;则下面表达式中值为0的是_。A)x&z B)(!y!=1)&(!z=0) C)(x3且x3 & x3 & x3 | x=10 D) 3xb)&(n=cd)后,n的值是_。A)0 B)1 C)2 D)322设x、y、z和k都是int型变量,则执行表达式x=(y=4,z=15/y,k=32%z)后,x的值是 。A)0 B)2 C)4 D)823若定义int x =4,y =10;则表达式 的值为假(0)。A) (x3)&(y=4)|(y2)&(x15)& (y=

8、A & c=A | c=”A” & c=A & Z=c34设有定义:char ch;在函数体内出现,在为ch 赋值之前,ch的值是 。A) 0 B) 0 C) 不确定 D)n 35表达式 !3 + 2 3 & 15 % 5 + 2 的值是 。A) 0 B)1 C)2 D)3答案:1)B 2)C 3)A 4)D 5)D 6)C 7)D8)D 9)C 10)C 11)A 12)B 13)D 14)A15)B 16)C 17)C 18)C 19)C 20)B 21)A22)B 23)C 24)D 25)C 26)B 27)A 28)D29)A 30)B 31)C 32)C 33)D 34)C 35)

9、A32 阅读程序题1已知A的ASCII代码值为65,写出以下程序运行结果。#includeint main() char h1;int h2;h1=A+6-4;h2=A+9-5;couth1 h2endl;return 0;答案:C 692写出以下程序运行结果。#include void main() int a=-1,b=3,k1,k2;k1=(a+=0)&(!(b-=0);k2=(-a0)&(!(-b=0);coutabk1k2endl;答案:-11113写出以下程序运行结果。#include int main() double x=12.35;int y;y=(int)x+0.8;cou

10、tx” “yendl;return 0;答案:12.35 124写出以下程序运行结果。#include void main() float a=4.0, b=8.0, c=1.5;int d1=5, d2=7.5, d3=20.0;float p,q;int t1,t2;t1=d1+d2/c*a;t2=b/a*b*d1+0.5;p=c*d1+c*d3;q=d1%d2-d3/d1;coutp” “q” “t1” “t2endl;答案:37.5 1 23 805写出以下程序运行结果。#include void main() int a,b,x(5),y(6),z(0);a=!z;b=x!=y;co

11、ut”a=”an”b=”bendl;答案:a=1b=16写出以下程序运行结果。#include void main() int a,b,c;a=1,b=2,c=3;c+=a+b+4;couta” “b” “cendl;c=(a+,a+=b,a+b);couta” “b” “cendl;答案:1 2 104 2 67写出以下程序运行结果。#include void main() int a(3);double x(12.25);char d(m);x=1.2e3-3.5/7+100;d+;a=(int)x/3+3%5-4/3;couta” “x” “dendl;答案:435 1299.5 n8写

12、出以下程序运行结果。#include void main() int a,b,c,k;a=1,b=2,c=3;k=-a|+b&c+;coutabckendl;k=+a&b|-c;coutabckendl;答案:0341134133 程序填空题 1 以下程序当输入一个整数英寸值时,能换算成英尺和英寸(1英尺=12英寸)。#include int main() int inches,in,it;coutinches;it=_(1)_;in= (2) ;coutinches”=”it”英尺”in”英寸”endl;return 1;答案:(1) inches/12(2) inches%122 以下程序

13、将输入的一个三位的正整数逆序输出,例如输入345,输出543。#include void main() int i,j,k,number;coutnumber;i= number/100;number= (1) ;j=number/10;number= (2) ;k=number;cout (3) j (4) endl;答案:(1) number-i*100(2) number-j*10(3) k(4) i3 以下将输入的一个正的实数整数部分4舍5入后输出。#include void main() float a,b;couta;b=_(1)_;cout (2) endl;答案:(1) a+0

14、.5(2) (int)b34 编程题(根据要求编写程序并上机调试) 八边形的面积是: 其中a是边长。编程序输入八边形的边长,计算并输出面积。编写程序,根据输入的x和y的值,求f1和f2的值并输出:编写程序,求int、long int、char、 float、double型在机器中各自所占的字节数,并按以下格式输出:int的长度.long int的长度.char的长度.float的长度.doubl的长度.4 随机输入一个位的正整数,计算并输出该位数的各位数字之和,例如:输入318,则各位数字之和3+1+8=12。第4章 控制结构 4.1 单项选择题1以下叙述中正确的是_。A).while循环语句

15、的循环体至少执行一次。B).switch语句中每个语句序列中必须有break语句。C). switch语句中的default子句不一定放在该语句的最后。D).在多重循环中,continue语句只能出现最内层循环体内。2while(!x)中的条件(!x)与下面条件_等价。A)x=1 B).x!=1 C).x!=0 D).x=03以下循环的执行次数是_。int a=5;do couta; a-=2;while(a!=0);A).0 B).2 C).5 D)无限次4下列for循环的循环次数是_。int a=1;for(int n(0),m(5); a=5; n+, m-);A).0 B).5 C).

16、3 D)无限次5下列循环结构中,_不是无限循环。A) for ( t =1 ; ; t + + ) cout t ;B) t = 1; while ( t - - ) cout t + + ; C) t = 1 ; do cout t ; t + + ; while ( - - t ) ;D) for ( t = 0 ; t ; t + ) cout t ;6循环for(int i=0,x=0;!x&i=5;i+);的循环体执行次数是 。A)5 B)6 C)1 D)无限7对于下列for循环语句,正确的说法是 。int i,k;for(i=0,k=-1;k=1;i+,k+) coutb) if

17、(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;9程序控制一般分为 、分支、循环三种基本结构。A)分块 B)无条件转移 C)顺序 D)跳转10语句while( )后一对圆括号中的表达式_。A)只能是逻辑表达式 B)只能是关系表达式C)只能是关系或逻辑表达式 D)可以是任意表达式答案:1)C 2)B 3)D 4)D 5)D6)C

18、 7)B 8)A 9)C 10)D42阅读程序题1写出以下程序的运行结果。#includevoid main() int x=1,y=0,z=0;if(x=y+z) coutAAAAAn;else coutBBBBBn;答案:BBBBB2以下程序分别输入1、0、5时,输出结果。#include void main() int a,b=5;couta;switch(a0) case 1: switch(b10) case 0:cout*endl;case 1:cout#endl;default:cout0) case 0:coutok1n;case 1:coutok2n;答案:第一次运行: 输入

19、一个整数:1#!ok2第二次运行: 输入一个整数:0ok2第三次运行: 输入一个整数:5#!ok24写出以下程序的运行结果。#include void main()int s=0, k;for(k=7; k=0; k-)switch(k)case 1:case 4:case 7: s+=k; break;case 2:case 3:case 6: break;case 0:case 5: s+; break;cout”S=”sendl;答案:S=145写出以下程序的运行结果。#include void main() int a,b;for(a=1,b=1;b=10) break;if(a=1)

20、a+=3;continue;a-=3;couta=ab=bendl;答案: a=1 b=1016执行以下程序,当输入14,63时输出结果是什么,并说明该程序的功能。#include void main() int m,n;coutmn;while(m!=n) while(mn)m=m-n;while(nm)n=n-m;coutmendl;答案:输入2个正整数: 14 637求2个数的最大公约数7写出以下程序运行结果。#include void main() int i,j;for(i=1; i=5;i+) for(j=1; j=5-i; j+) cout ;for(j=1; j=i; j+)

21、cout”*”;coutendl;for(i=1; i=4;i+) for(j=1; j=i; j+) cout ;for(j=1; j=5-i; j+) cout”*”;coutendl;答案: * * * * * * * *8写出以下程序运行结果。#include void main() int x(3),y(6),z(0);while(x+!=(y=y-1) z+;if(yx) break;coutxyzendl;答案:5 4 19写出以下程序运行结果。#include void main() int x=0;for(int I=0;I2;I+) x+;for(int j=0;j=3;j

22、+) if(j%2) continue;x+;x+;cout”x=”xendl;答案:x=810#include void main( )int i,j,k;for(i=1;i=4;i+)for(j=1; j=4-i; j+) cout#;for(k=0; k=2*i+1; k+)if(k=3) cout#;else cout*;coutendl;答案:#*#*#*43 程序填空题1从由键盘输入的若干整数中找出其中最大的数并输出。当输入为负数时结束输入。#include void main( )int a, smax;cina;smax=a;while( _ (1) _ )smax= (2)

23、;_ _(3)_ ;cout”smax=”smax=0(2)asmax?a:smax(3)cina2输出200以内被7整除且个位数为8的所有整数。#include void main( )int i,k;for(i=0; i_(1)_ ;i+) k= (2) +8; if( (3) ) continue; coutkendl;答案:(1) 20(2) i*10(3) k%73下面程序用于判断一个整数的各位数字是否都相同,若相同,则显示“是“,否则显示”否”。#include void main()int a,r1,r2;cina;dor1=a%10; _(1)_ ;r2=a%10;while(

24、 (2) );if( (3) )cout”否”endl;else cout”是”endl;答案:(1) a/=10(2) a!=0&r1=r2(3) a!=04这是一个简单的计算器程序。该程序能根据从键盘输入的运算符(+,-,*,/)和两个操作数(整数),做加、减、乘、除运算并显示运算结果。说明:首先程序每次从键盘输入操作命令,然后根据提示输入两个整数做操作数。程序根据输入的命令和数据做相应的运算并输出结果。每做完一道题,如果回答Y,则继续做下一道题,直到回答N表示运算结束,退出程序。#include void main() long result,firstNum,secondNum;cha

25、r operation,response;do cout operation;if(operation=+operation=-operation=*operation=/)coutfirstNum;coutsecondNum;switch( _ (1)_ ) case+: result=firstNum+secondNum; break;case-: result=firstNum-secondNum; break;case*: result=firstNum*secondNum; break;case/: result=firstNum/secondNum; break;cout运算结果:

26、resultendl;else cout错误的操作符号!n;coutresponse(3) response =Y| response =y5用下列公式计算的值,请填空完成该程序。 精度要求10-6 #include #include #include void main( ) double pi=0.0, n=1.0, t;int sign=1;do t=sign/n;pi+=t; (1) ;n+=2;while(fabs(t)=1e-6);cout”pi=” _(2)_endl;答案: (1) sign*=-1(2) 4*pi6该程序输出下面的图形。* * * * * * * * * *

27、* * * * * * * * *说明:输出的图形各行间无空行,每行的“*”之间无空格。#include void main() int i,j;for(i=1;i=4;i+) for(j=1; _(1)_ ;j+)cout” “; /空一位for(j=1; _ _(2) _ ; j+)cout”*”;coutendl;for(i=1;i=3;i+) for(j=1;j=i;j+) cout” “; /空一位for(j=1; _ (3)_ ; j+) cout”*”;coutendl;答案:(1) j=4-I(2) j=2*i-1(3) j=7-i*27以下程序输出下列图形,每数之间空3个格。

28、11 2 11 2 3 2 11 2 3 4 3 2 11 2 3 4 5 4 3 2 11 2 3 4 5 6 5 4 3 2 1程序如下:#include #include void main() int i,j,k;for(i=1;i=6;i+) /控制输出行 for(j=1; _ (1)_ _ ; j+) /每行前的空格cout“ ”; /空一格for(k=1;k=i;k+)coutsetw(3)k;for(k=i-1; _ (2)_ ;k-)coutsetw(3)k;_(3)_;答案:(1) j=6-i(2) k(3) coutendl8以下程序的功能是输出1100之间的自然数中各位

29、数字乘积大于各位数字之和的那些数。例如35,各位乘积是35=15,各位之和3+5=8。#include void main() int k,s,m;for(int n=11;n=100;n+) k=1; s=0;m=n;while( _ _(1) _ ) k*=m%10;s+=m%10;m=m/10;if( _ (2)_ ) coutn” “;couts9以下程序能够输出所有和为1000的连续整数序列。#include void main()for(int i=1; (1) ; i+) int j=i, sum=i;while( (2) ) (3) ; sum+=j;if(sum= =1000

30、)for(int k=i; (4) ; k+) coutk”,”;coutendl;答案:(1) i=1000(2) sum1000(3) j+(4) k=j10以下程序从整数1001000中找出这样的数,即它除以11的整数商等于它各位数字的平方之和。如:550除以11的商是50,而52520250。#includevoid main( )int i,j,n,s;for(i=100;i=999;i+)n=i;j=_ (1)_;s=0;while(n)s+=_ (2)_;n/=10;if(j=s) cout_ (3)_ ;答案:(1) n/11 (2) (n%10)*(n%10)(3) i11以

31、下的程序实现求分数序列2/1,3/2,5/3,8/5,13/8,21/13,前15项的和。#include#define N 15void main( )int i, m, n, k; (1) ;m=2, n=1;for( i=1; i=N; i+)s=s+1.0*m/n;k=m;m= _ (2) _ ;n= (3) _ ;cout”s=”sendl;答案:(1) double s=0(2) m+n(3) k12以下程序输出用09之间不同的三个数构成多少种互不相同的三位数。#includevoid main()int i,j,k,count=0;for(i=1;i=9;i+)for(j=0;j

32、=9;j+)if( _ _(1)_) continue;else for(k=0;k=9;k+)if( (2) ) count+;coutcountendl;答案:(1) i=j(2) k!=i&k!=j13以下程序输出三角图形,组成该三角图形的字符和行数由用户提供。例如:组成三角的图形用“+”,行数是5,程序输出:+ + + + + + + + + + + 程序如下,填空完成程序。#include void main() int numRows,i,j;char ch;cout numRows;coutch;for( i=1;_(1)_; +i ) for(j=1;_(2)_; j+)cou

33、tch;_(3)_;cout”-完成-“;coutendl;答案:(1) i=numRows(2) j=i(3) coutendl44 编程题 (根据要求编写程序并上机调试) 一个数,被除余,被除余,被除余,求该数至少是多大。2求数列12,22,32,42,前n项之和刚好大于1000时的项数n以及累加和。3编写程序,随机给出直角坐标系中的一点(x,y),判断该点是在第几象限,或在x轴、y轴上。4已知,编写程序求sin x的近似值(x、n的值在程序运行时由用户指定)。5求 (即求1!2!3!10!)第5章 数组与指针51 单项选择题1若有定义int a10,*P=a,*q=P,x; 则对数组中元

34、素a4的不正确引用是_。A)*(a+4) B)*(q+4) C)*(&a0+4) D)a+=4,x=*a;2设有以下定义:char s20=”programming”, *ps=s; 则值不为a的是_。A).ps+5 B).ps5 C).s5 D)ps+=5,*ps3设p1和p2是指向同一个一维int型数组的指针,k为int类型的变量,以下不能正确执行的语句是_。A).p1=k B).p2=p1 C).k=*p1*(*p2) D).k=*p1+*p24设有定义char str =abcdefg; 执行str3=0后,strlen(str)的值是_。A).3 B).4 C).7 D).85以下字

35、符串赋值中不正确的是_。A).char str =”abcdefg”; B).char str80; str=”abcdefg”;C).char *pstr=”abcdefg” D) char *pstr=NULL; pstr=”abcdefg”;6.若有定义int i=2,j=3,a34=1,2,3,4,5,6,7,8,10,11,12,*p=a0;则对元素aij值的正确引用是_。A) *(p+i)+j) B) *(a+i)+j) C)*(ai+j) D)*pij7若有定义 int i=3,j=2,a54,*p5=a0,a1,a2,a3,a4;对数组元素aij值的正确引用是。A.) pij

36、B) *(pi+j) C)*(p+i)+j D)*(*pi+j)8以下指针用法中错误的是_。A) int i; int *ptr=&i; B) int i=0,j=1; int *ptr=&i; *ptr=j;C).int *ptr=0; D).int i, *ptr=&i; *ptr=5;9设有说明:float *px,执行px=new float后的作用是_。A).给指针px一个新的地址,以存放一个实型数B).将一个float型的数放px中C).动态申请一块float类型的存储空间,将分配的空间首地址给pxD).使px指向一个存放实型数的链表10以下语句正确的是_。A).const char *m1=book; m1=pen

温馨提示

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

最新文档

评论

0/150

提交评论