计算机应用专业C++语言程序设计课程考试闭_第1页
计算机应用专业C++语言程序设计课程考试闭_第2页
计算机应用专业C++语言程序设计课程考试闭_第3页
计算机应用专业C++语言程序设计课程考试闭_第4页
计算机应用专业C++语言程序设计课程考试闭_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

PAGE1PAGE105计算机专业《C++语言程序设计》期中考试复习题一、单选题(每小题2分,共20分)1.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()。A.mainB.MAINC.nameD.function2.设x和y均为bool量,则x&&y为真的条件是()。A.其中一个为假B.其中一个为真C.它们均为假D.它们均为真3.逻辑表达式x>0||y==5的相反表达式为()。A.x<=0||y!=5B.x<=0&&y!=5C.x>0||y!=5D.x>0&&y==54.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大()个字节。A.1B.2C.4D.85.枚举类型中的每个枚举常量的值都是一个()。A.整数B.浮点数C.字符D.逻辑值6.循环体至少被执行一次的语句为()语句。A.for循环B.while循环C.do循环D.任一种循环7.在下面的字符数组定义中,()语句有语法错误。A.chara[20]=”abcdefg”;B.chara[]=”x+y=55.”;C.chara[15]={’1’,’2’};D.chara[10]=’5’;8.若用数组名作为函数调用的实参,传递给形参的是()。A.数组的首地址B.数组中第一个元素的值C.数组全部元素的值D.数组元素的个数9.假定AB为一个类,则执行“ABa(4),b[5],*p[2];”语句时,自动调用该类构造函数的次数为()。A.6B.7C.9D.1110.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为()。A.ios::inB.ios::outC.ios::in|ios::outD.没有二、填空题(每小题2分,共20分)1.若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始使用保留字__________。2.算术表达式对应的C++表达式为________________。3.逻辑表达式x>y&&x!=10的相反表达式为________________。4.每个字符指针变量占用内存________个字节。5.执行“typedefintDataType;”语句后,在使用int定义整型变量的地方都可以使用标识符__________来定义整型变量。6.对于在所有函数定义之外定义的变量,若没有被初始化则系统隐含对它赋予的初值为________。7.假定p所指对象的值为25,p+1所指对象的值为46,则执行“*(p++);”语句后,p所指对象的值为________。8.假定一个结构类型的定义为“structA{inta;double*b;A*c;};”,则该类型的大小为________字节。9.假定一维数组的定义为“inta[8];”,则该数组所含元素的个数为________。10.若while循环语句的开始为”while(i++<=10)”,若i的初值为0,同时在循环体中不会修改i的值,则其循环体将被重复执行__________次后正常结束。三、写出下列每个程序运行后的输出结果(每小题6分,共30分)1.#include<iostream.h>voidmain(){ints1=0,s2=1;for(inti=1;i<=6;i++){s1+=i;s2*=i;}cout<<s1<<','<<s2<<endl;}输出结果:2.#include<iostream.h>voidmain(){inta[10]={68,79,86,65,46,94,37,78,60,53};intc=0;for(inti=0;i<10;i++)if(a[i]>=60)c++;cout<<”c=”<<c<<endl;}输出结果:3.#include<iostream.h>voidmain(){inta[3][4]={{1,2,7,8},{5,6,11,15},{9,20,3,4}};intm=a[0][0];for(inti=0;i<3;i++)for(intj=0;j<4;j++)if(a[i][j]>m)m=a[i][j];cout<<m<<endl;}输出结果:4.#include<iostream.h>voidmain(){inta=10,b=15;cout<<a<<''<<b<<'';{a*=3;intb=a+20;cout<<a<<''<<b<<'';}cout<<a<<''<<b<<endl;}输出结果:5.#include<iostream.h>voidmain(){inta[8]={6,19,4,12,20,5,18,25};int*p=a;for(p=a;p<a+8;p++)if(*p<10)cout<<*p<<’‘;cout<<endl;}输出结果:四、写出下列每个函数的功能(每小题8分,共24分)1.boolWB(inta[],intn,intx){for(inti=0;i<n;i++)if(a[i]==x)returntrue;returnfalse;}函数功能:2.intLJ(inta[],intn){intk=0;for(inti=1;i<n;i++)if(a[i]>a[k])k=i;returna[k];}函数功能:3.假定结构类型Dnode中的data域为结点值域,next域为结点指针域。DNode*QB(intn){if(n==0){returnNULL;}DNode*f=newDNode;cin>>f->data;DNode*p=f;while(--n){p=p->next=newDNode;cin>>p->data;}p->next=NULL;returnf;}函数功能:五、按题目要求编写程序(6分)已知6≤a≤30、15≤b≤36,求出满足不定方程2a+5b=126的全部整数组解。如(13,20)就是其中的一组解,并按此格式输出每组解。

(答案供参考)一、单选题(每小题2分,共20分)1.A2.D3.B4.C5.A6.C7.D8.A9.A10.D二、填空题(每小题2分,共20分)1.const2.(x*y*y)/(3*a)+4*b-1(分子中括号可以省略)3.x<=y||x==104.45.DataType6.07.468.129.810.11三、写出下列每个程序运行后的输出结果(每小题6分,共30分)1.21,720//每个数据3分2.c=73.204.101530503015//每个数据占1分,全对6分5.645//每个数据占2分,全对6分四、写出下列每个函数的功能(每小题8分,共24分)评分标准:每题与参考答案的叙述含义相同者得8分,否则酌情给分。1.从数组a中顺序查找值为x的元素,若查找成功则返回真,否则返回假。2.求出数组a中n个元素的最大值并返回。3.建立一个具有n个结点的链表,每个结点的值依次由键盘输入,该函数返回其表头指针。五、按题目要求编写程序(6分)评分标准:根据编程的完整程度酌情给分。#include<iostream.h>voidmain(){inta,b;//1分for(a=6;a<=30;a++)//2分for(b=15;b<=36;b++)//3分if(2*a+5*b==126)cout<<'('<<a<<','<<b<<')'<<endl;}//6分

训练第二套一、单选题(每小题2分,共20分)1.枚举类型中的每个枚举常量的值都是一个()值。A.整数B.浮点数C.字符D.逻辑2.设x和y均为bool量,则逻辑表达式x||y为假的条件是()。A.它们均为真B.其中一个为真C.它们均为假D.其中一个为假3.声明或定义一个内联函数时,必须在函数开始使用保留字()。A.staticB.constC.externD.inline4.在下面的函数声明中,存在着语法错误的是()。A.BC(inta,int);B.C.5.假定a为一个整型数组名,则元素a[4]与()的表示等价。A.a+4B.*a+4C.*(a+4)D.6.下面循环语句执行结束后输出的i值为()的值。for(inti=0;i<n;i++)if(i>n/2){cout<<i<<endl;break;}A.n/2B.n/2+1C.n-1D.n7.将两个字符串连接起来组成一个字符串时,选用()函数。A.strlen()B.strcpy()C.strcat()D.strcmp()8.预处理命令在程序中都是以()字符开头的。A.*B.#C.&D.@9.假定有定义“structBOOK{chartitle[40];floatprice;};”,则不正确的变量定义语句为()。A.BOOKx;;B.BOOKx={"C++Programming",27.0};C.BOOK*x=newBOOK;D.BOOKx=newBOOK;10.假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行“delete[]px;”语句时,自动调用该类析构函数的次数为()。A.1B.nC.n-1D.n+1二、填空题(每小题2分,共20分)1.已知'A''Z'的ASCII码为6590,当执行“charch=14*4+12;cout<<ch;”语句序列后,得到的输出结果为________。2.double类型的长度为________。3.表达式x=x+1表示成增量表达式为__________。4.逻辑表达式a<=b||b==15的相反表达式为________________。5.假定一个二维数组的定义为“char*a[5][4];”,则该数组所含元素的个数为________,所占存储空间的字节数为________。6.当函数中的________变量没有被赋初值时,它的值是不确定的。7.假定一个结构类型的定义为“structA{doublea,b;A*c;};”,则该类型的大小为________字节。8.假定要访问一个结构指针p所指对象中的数据成员data,则表示方法为____________。9.假定用户没有给一个名为AB的类定义构造函数,则系统为其隐含定义的构造函数为____________。10.当在程序中执行到________语句时,就立即结束本层循环类语句或switch语句的执行。三、写出下列每个程序运行后的输出结果(每小题6分,共30分)1.#include<iostream.h>voidmain(){ints=0;for(inti=1;i<=8;i=+2)s+=i*i;cout<<"s="<<s<<endl;}输出结果:2.#include<iostream.h>voidmain(){inti=1,s=0;while(s<20){if(i%2!=0)s+=i;i++;}cout<<i<<’,’<<s<<endl;}输出结果:3.#include<iostream.h>voidmain(){inta[8]={36,25,48,14,55,20,47,82};intb1,b2;b1=b2=a[0];for(inti=1;i<8;i++){if(a[i]<b1)b1=a[i];if(a[i]>b2)b2=a[i];}cout<<b1<<','<<b2<<endl;}输出结果:4.#include<iomanip.h>intLB(int*a,intn){ints=1;for(inti=0;i<n;i++){s*=*a;a++;}returns;}voidmain(){inta[5]={1,2,3,4,5};cout<<LB(a,5)<<endl;}输出结果:5.#include<iostream.h>structWorker{charname[15];//姓名intage;//年龄floatpay;//工资};voidmain(){Workerx={"wangfong",46,1640};Workery,*p;y=x;p=&x;cout<<<<''<<y.age<<''<<y.pay<<endl;cout<<p->name<<''<<p->age+5<<''<<p->pay-300<<endl;}输出结果:四、写出下列每个函数的功能(每小题8分,共24分)1.intWC(inta[],intn,intk){intc=0;for(inti=0;i<n;i++)if(a[i]>=k)c++;returnc;}函数功能:2.boolSG(intx){//x为大于等于2的整数inta=int(sqrt(x));//sqrt(x)为求x的平方根inti=2;while(i<=a){if(x%i==0)break;i++;}if(i>a)returntrue;elsereturnfalse;}函数功能:3.假定结构类型Worker中的name域表示姓名,age域表示年龄,pay域表示工资。voidQA(Workera[],intn){for(inti=0;i<n;i++)cin>>a[i].name>>a[i].age>>a[i].pay;}函数功能:五、按题目要求编写函数(6分)假定函数声明为“voidPrint(inta[],intn);”,在函数体中按下标从大到小的次序输出数组a中的n个元素的值,并要求每行输出6个元素,当然最后一行可以不足6个。

(参考答案)一、单选题(每小题2分,共20分)1.A2.C3.D4.D5.C6.B7.C8.B9.D10.B二、填空题(每小题2分,共20分)1.D2.83.++x4.a>b&&b!=155.20806.局部7.208.p->data9.AB(){}10.break三、写出下列每个程序运行后的输出结果(每小题6分,共30分)1.s=84//6分2.10,25//每个数据3分3.14,82//每个数据3分4.120//6分5.wangfong461640//3分,每个数据1分wangfong511340//3分,每个数据1分四、写出下列每个函数的功能(每小题8分,共24分)评分标准:每题与参考答案的叙述含义相同者得8分,否则酌情给分。1.统计出数组a的n个元素中大于等于参数k的值的元素个数并返回。2.判断x是否为一个素数(或质数),若是则返回真,否则返回假。3.从键盘上输入n个Worker结构类型的记录依次保存到一维数组a的对应元素中。五、按题目要求编写函数(6分)评分标准:按函数编写的完整程度酌情。voidPrint(inta[],intn){inti,j=0;//1分for(i=n-1;i>=0;i--){//2分cout<<a[i]<<’’;//3分if(++j%6==0)cout<<endl;//5分}cout<<endl;}//6分

训练第三套一、单选题(每小题2分,共20分)1.由C++源程序文件编译而成的目标文件的缺省扩展名为()。A.objB.likC.exeD.cpp2.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车3.设x是一个bool型的逻辑量,y的值为10,则表达式x&&y的值为()。A.1B.0C.与x值相同D.与x值相反4.for语句能够被改写为()语句。A.复合B.ifC.switchD.while5.在下面的do循环语句中,其循环体被执行的次数为()。inti=0;doi++;while(i*i<10);A.4B.3C.5D.26.在下面的一维数组定义中,()语句有语法错误。A.inta[]={1,2,3};B.inta[10]={0};C.inta[];D.inta[5];7.下面的()保留字不能作为函数的返回类型。A.voidB.intC.newD.long8.下面的函数声明中,()是“voidBC(inta,intb);”的重载函数。A.intBC(intx,inty);B.voidBC(inta,charb);C.floatBC(inta,intb,intc=0);D.intBC(inta,intb=0);9.当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为()。A.nB.n+1C.n-1D.n-210.假定AB为一个类,则该类的拷贝构造函数的声明语句为()。A.AB&(ABx);B.AB(ABx);C.AB(AB*x);D.AB(AB&);二、填空题(每小题2分,共20分)1.执行“cout<<char('A'+3);”语句后得到的输出结果为________。2.在C++每个程序行的后面或单独一行的开始使用注释的标记符为__________。3.表达式float(25)/4的值为___________。4.关系表达式x+y>5的相反表达式为____________。5.假定一个二维数组的定义为“inta[3][6];”,则该数组含有__________个元素。6.执行“typedefintABC[20];”语句把ABC定义为具有20个整型元素的________。7.假定p所指对象的值为36,p+1所指对象的值为49,则*++p的值为________。8.假定a是一个一维数组,则a[i]的指针访问方式为____________。9.对一个类中的数据成员的初始化可以通过构造函数中的初始化表实现,也可以通过构造函数中的____________实现。10.当一个类对象离开它的作用域时,系统将自动调用该类的____________。三、写出下列每个程序运行后的输出结果(每小题6分,共30分)1.#include<iostream.h>#include<stdlib.h>intSD(inta,intb,charop){switch(op){case'+':returna+b;case'-':returna-b;default:{cout<<"操作符op出错,退出运行!";exit(1);}}}voidmain(){intx=20,y=6;cout<<SD(x,y,'+')<<''<<SD(x,y,'-')<<endl;}运行结果:2.#include<iostream.h>#include<string.h>voidmain(){char*a[5]={"student","worker","cadre","soldier","apen"};char*p1;p1=a[0];for(inti=1;i<5;i++){if(strcmp(a[i],p1)>0)p1=a[i];}cout<<p1<<endl;}运行结果:3.#include<iostream.h>intWF(intx,inty){x=x+y;y=x+y;returnx+y;}voidmain(){cout<<WF(8,5)<<endl;}运行结果:4.#include<iomanip.h>constintn=9;voidmain(){inta[n]={2,4,6,8,10,12,14,16,18};ints=0;for(inti=0;i<n;i++){if(i%3==0)s+=a[i];}cout<<”s=”<<s<<endl;}运行结果:5.#include<iomanip.h>voidmain(){int*d=newint[5];inti;for(i=0;i<5;i++){d[i]=2*i+1;cout<<d[i]<<'';}cout<<endl;delete[]d;}运行结果:四、写出下列每个函数的功能(每小题8分,共24分)1.floatFI(intn){//n为大于等于1的整数floatx,y=0;do{cin>>x;y+=x*x;}while(--n>0);returny;}函数功能:2.boolWE(inta[],intb[],intn){for(inti=0;i<n;i++)if(a[i]!=b[i])break;if(i==n)returntrue;returnfalse;}函数功能:3.voidLK(inta[],intn,int&m){floats=0;inti;for(i=0;i<n;i++)s+=a[i];s/=n;m=0;for(i=0;i<n;i++)if(a[i]>=s)m++;}函数功能:五、按题目要求编写函数(6分)假定一个函数声明为“voidAD(inta[],intn);”,要求把数组a中的n个元素值按相反的次序仍保存在数组a中。

(答案供参考)一、单选题(每小题2分,共20分)1.A2.D3.C4.D5.A6.C7.C8.B9.C10.D二、填空题(每小题2分,共20分)评分标准:每题与参考答案相同者得2分,否则不得分。1.D2.//3.6.255.186.数组类型7.498.*(a+i)9.函数体10.析构函数三、写出下列每个程序运行后的输出结果(每小题6分,共30分)1.2614//每个数据3分2.worker3.314.245.13579//每个数据1分,全对给6分四、写出下列每个函数的功能(每小题8分,共24分)评分标准:每题与参考答案的叙述含义相同者得8分,否则酌情给分。1.求出从键盘上输入的n个整数的平方和并返回。2.判断具有n个元素的两个数组a和b中对应元素值是否全部相等,若是则返回真,否则返回假。3.统计出数组a的前n个元素中大于等于其平均值的元素个数并由引用参数m带回。五、按题目要求编写函数(6分)评分标准:按照编程的完整程度酌情给分。voidAD(inta[],intn){for(i=0;i<n/2;i++){intx=a[i];a[i]=a[n-1-i];a[n-1-i]=x;}}

训练第四套一、单选题(每小题2分,共20分)1.C++程序的基本功能模块为()。A.表达式B.标识符C.语句D.函数2.存储以下数据,占用存储字节最多的是()。A.0B.’0’C.”0”3.在下面的一维数组定义中,有语法错误的是()。A.inta[]={1,2,3};B.inta[10]={0};C.inta[];D.inta[5];4.在下面的语句或语句组中,()不正确。A.inta[5];B.intM=10;inta[M];C.inta[]={1,5,10,45};D.constintN=12;inta[N];5.C++语言中的每条简单语句以________作为结束符。A.逗号B.分号C.空格D.换行符6.含随机函数的表达式rand()%20的值在()区间内。A.1~19B.1~20C.0~19D.0~207.当处理一个特定的问题时,若循环次数已知,则通常采用()来解决。A.for循环B.while循环C.do循环D.switch语句8.在下面循环语句中内层循环体S语句的执行总次数为()。for(inti=0;i<n;i++)for(intj=i;j<n;j++)S;A.n2B.(n+1)/2C.n(n-1)/2D.n(n+1)/29.若函数声明为double*function(),则该函数的返回值为()。A.实数型B.实数指针型C.函数指针型D.数组型10.假定变量m定义为“intm=7;”,则定义变量p的正确语句为()。A.intp=&m;B.int*p=&m;C.int&p=*m;D.int*p=m;二、填空题(每小题2分,共20分)1.C++语言中每条复合语句以________作为结束符。2.假定一个枚举类型的定义为“enumRA{ab,ac,ad,ae};”,则ac的值为_______。3.十进制数25表示成符合C++语言规则的八进制数为________。4.表达式x=x+y表示成复合赋值表达式为__________。5.若x=5,y=15,则x>y的逻辑值为_________。6.假定一个一维数组的定义为“char*a[8];”,则该数组所占用存储空间的字节数为________。7.假定x=10,则表达式2+x++的值为________。8.假定p所指对象的值为25,p+1所指对象的值为46,则*p++的值为________。9.假定要动态分配一个类型为Worker的具有n个元素的数组,并由r指向这个动态数组,则使用的语句为Worker*r=_________________。10.设px指向一个类的动态分配的对象,则执行“deletepx;”语句时,将自动调用该类的____________。三、写出下列每个程序运行后的输出结果(每小题6分,共30分)1.#include<iostream.h>voidSB(charch){switch(ch){case'A':case'a':cout<<"well!"<<’’;break;case'B':case'b':cout<<"good!"<<’’;break;case'C':case'c':cout<<"pass!"<<’’;break;default:cout<<"bad!";break;}}voidmain(){SB(’A’);SB(’c’);SB(’b’);cout<<endl;}运行结果:2.#include<iostream.h>voidmain(){inta[6]={36,25,48,14,55,40};intb1=a[0];for(inti=1;i<6;i++)if(a[i]>b1)b1=a[i];cout<<”b1=”<<b1<<endl;}运行结果:3.#include<iomanip.h>voidmain(){inta[9]={3,5,7,9,11,13,15,17,25};int*p=a;for(inti=0;i<9;i++)if((i+1)%3==0)cout<<*(p+i)<<’’;cout<<endl;}运行结果:4.#include<iomanip.h>int*LG(intm){int*a=newint[m];for(inti=0;i<m;i++)a[i]=3*i+1;returna;

温馨提示

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

评论

0/150

提交评论