您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 薪酬管理 > c++复习资料及答案
《C++》复习资料及答案一、判断题1、在变量定义intsum,SUM;中sum和SUM是两个相同的变量名。(N)2、字符串”china”在内存中占据的存储空间是5个字节。(N)3、在C++语言中,”A”和’A’是等价的。(N)4、C++表达式4/7和4.0/7的值是相等的,且都为double型。(N)5、关系表达式a=bc等价于a=(bc),同时也等价于a==bc。(N)6、continue语句和break语句的区别是:break语句提前跳出switch结构或结束循环的执行;continue语句只结束本次循环,而不是终止整个循环的执行。(Y)7、数组是一种构造型数据,即是若干相同类型的数据的集合。(Y)8、C++语言中,二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。(Y)9、#include“iostream.h”的作用是将说明标准输入输出流对象的头文件包含到当前源文件中来。(Y)10、C++语言中允许函数“嵌套调用”和“递归调用”,所谓“递归调用”就是指:在调用一个函数的过程中又出现直接或间接地调用该函数本身。(Y)二、选择题1、由C++源程序文件编译而成的目标代码文件的缺省扩展名为(C)A).cppB).exeC).objD).lik2、设x和y均为bool类型,则x&&y为真的条件是(A)A).它们均为真B).其中一个为真C).它们均为假D).其中一个为假3、设有inti;则表达式i=1,++i,++i||++i,i的值为(C)A).1B).2C).3D).44、设有inti;则表达式(i=1,i=10)?i++||++i:++i的值为(A)A).1B).2C).3D).105、设有inta[]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是(C)A).10,11,12B).11,12,12C).10,12,12D).11,11,126、设a、b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是(D)A).'A'&&'B'B).a=bC).c=b||b+c&&b-cD).a=b+c&&c=a+b7、若x和y都是int型变量,x=100,y=200,则下面程序片段cout(x,y)endl;的输出结果是(A)A).200B).100C).100200D).输出格式符不够,输出不确定的值8、下面各语句中,能正确进行字符串赋值操作的语句行是(C)A).chars[4][5]={ABCDE};B).chars[5]={'A','B','C','D','E'}C).Char*s;s=ABCDE;D).char*s;cins;9、若有:inta[6]={4,5,6,9,5,7},*p=a,*q=p;则对数组元素的错误引用是(C)A).a[4]B).*(p+4)C).*a++D).*q++10、下列不正确的转义字符是(C)A).'\\'B).'\C).'074'D).'\0'11、假定a和b为int型变量,则执行以下语句后b的值为(D)a=1;b=10;do{b-=a;a++;}while(b--0);A).9B).–2C).-1D).812、对于结构中定义的成员,其隐含访问权限为(A)A).publicB).protectedC).privateD).static13、设P1和P2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是(B)A).k=*P1+*P2;B).p2=k;C).P1=P2;D).K=*P1*(*P2);14、设有如下定义:intarr[]={6,7,8,9,10};int*ptr;则下列程序段的输出结果为(D)ptr=arr;*(ptr+2)+=2;cout*ptr*(ptr+2)endl;A).8,10B).6,8C).7,9D).6,1015、执行以下程序段后,m的值为(A)inta[2][3]={{1,2,3},{4,5,6}};intm,*p;p=&a[0][0];m=(*p)*(*(p+2))*(*(p+4));A).15B).14C).13D).12三、填空题1、描述命题“A小于B或小于C”的表达式为AB||AC。2、在C++中有二种参数传递方式:值传递和地址传递。3、定义重载函数时,应在参数个数、参数类型或参数次序上不相同。4、拷贝初始化构造函数使用已存在同类型对象的引用来初始化创建中的对象。5、一个C++函数由两部分组成,即:函数的说明部分和函数体部分。6、一个C++程序总是从main函数的入口地址处开始执行。7、C++语言程序中出现的/*……*/部分或//……部分所起的作用是:注释说明,以增加程序的可读性。8、C++语言中数组元素的访问方式有两种,即:下标方式和指针方式。9、C++规定:在每一个字符串的结尾加上一个字符串结束标志’\0’,以便系统据此判断字符串是否结束。10、C++语言中数据类型的转换有两种,即:自动类型转换和强制类型转换。11、C++语言规定了运算符的优先级和结合性,其结合性分为:左结合性和右结合性。12、若有intx=4,y=7;则表达式x+=y,x*=x+y的值为198。13、x1&&y!=0的相反条件为x=1||y==0。14、过程化程序设计方法中,程序由三种基本结构,即:顺序结构、选择结构、循环结构。15、在C++中,若需要在程序文件中进行标准输入输出操作,则必须在开始加入预处理命令#includeiostream.h,若使用到数学库中的函数时,要在源程序的开始加入预处理命令#include“math.h”。16、C++语言中用来存放变量地址的变量称作指针变量。17、int*p[10];的含义是定义指针数组p,它有10个指向整型数据的指针元素组成。18、int**p;的含义是定义一个指针变量p,它指向一个指向整型数据的指针变量。四、简答题1、请用C++语言的表达式表示下列代数式。(1)dx55sin3(2)bae31(e=2.71828)(3)thabhba42(4)50sinbae(e=2.71828)(5))5(2lnxaxa(1)x*x*x*sin(55*3.14/180)/(3.14*d)(2)1.0/3*exp(a-b)(3)(a+b*b*h-b/4)/(a+h/t)(4)exp(a+b)*sin(50*3.14/180)(5)log(a+x/5.0*sqrt(a+x*x))2、根据要求完成下列各题。(1)用两种方法实现一个字符串str,并赋以初值”welcometoNanjing!”。(1)staticcharstr[]=”welcometoNanjing!”;char*str=”welcometoNanjing!”;(2)定义结构体类型date,该结构体包含的成员为year(整型)、month(整型)、day(整型),再使用typedef将结构体类型date等价成DATE,最后使用DATE定义一个变量pdate。(2)structdate{intyear;intmonth;intday;};typedefstructdateDATE;DATEpdate;五、程序分析题1、写出下列程序运行结果:(1)#includeiostream.h(4分)voidmain(){intx=5,y=8,*px,*py;px=&x,py=&y;coutnum1=”*px’,’”num2=*py’;’;if(xy)swap1(x,y);coutnum1=”*px’,’”num2=*py’;’;if(xy)swap2(px,py);coutnum1=”*px’,’”num2=*py’;’;if(xy)swap3(px,py);coutnum1=”*px’,’”num2=*py’;’;}swap1(inta,intb){intt;t=a;a=b;b=t;coutnum1=”a’,’”num2=b’;’;}swap2(int*p,int*q){int*t;t=p;p=q;q=t;coutnum1=”*p’,’”num2=*q’;’;}swap3(int*p,int*q){intt;t=*p;*p=*q;*q=t;coutnum1=”*p’,’”num2=*q’;’;}各cout按执行次序输出的结果为5,8;8,5;5,8;8,5;5,8;8,5;8,5(2)#include“iostream.h”(3分)main(intargc,char*argv[]){inti;cout”argc=”argc’;’;for(i=0;i=argc-1;i++)coutargv[i]’;’;}若上面的程序编译`连接后生成可执行文件ABC.EXE,若输入以下命令行abcfilelfile2enter(表示回车)注:文件的路径可以不考虑程序执行后的输出结果是:argc=3;abc.exe;file1;file2;(3)#includeiostream.h(4分)classA{inta,b;public:A(){a=b=0;}A(intaa,intbb):a(aa),b(bb){cout”a=”a”,””b=”bendl;}~A(){cout”Destructor!”endl;}};voidmain(){Ax,y(2,3);}//对象x,y消亡后分别自动调用析构函数~A()程序的输出结果是:a=2,b=3Destructor!Destructor!2、试分析下列程序或函数的功能。(4分)(1)#includeiostream.hvoidmain(){charstr[81],*sptr;inti;for(i=0;i80;i++){str[i]=cin.get();if(str[i]=='\n')break;}str[i]=’\0’;sptr=str;while(*sptr)cout(*sptr++);}从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。3、程序改错题:(4分)从键盘输入一个分数(0~100),判断它属于哪个分数段,并输出分数段字母代号。#includeiostream.hmain(){intnum;chargrade;cout“pleaseinputnum:”;cinnum;if((grade=90)&&(grade==100)grade=”A”;cout“Thegradeis:”grade;if(grade=80)grade=”B”;cout“Thegradeis:”grade;if(grade=70)grade=”C”;cout“Thegradeis:”grade;if(grade=60)grade=”D”;cout“Thegradeis:”grade;elsegrade=”E”;cout“Thegradeis:”grade;}#includeiostream.hmain(){intnum;chargrade;cout“pleaseinputnum:”;cinnum;if((grade=90)&&(grade=100)grade=”A”;cout“Thegradeis:”grade;elseif(grade=80)grade=”B”;cout“Thegradeis:”grade;elseif(grade=70)grade=”C”;cout“Thegradeis:”grade;elseif(grade=60)grade=”D”;cout“Thegradeis:”g
本文标题:c++复习资料及答案
链接地址:https://www.777doc.com/doc-2904212 .html