C语言程序设计A小抄_第1页
C语言程序设计A小抄_第2页
C语言程序设计A小抄_第3页
C语言程序设计A小抄_第4页
C语言程序设计A小抄_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

一、单项选择题1.由C++目标文件连接而成的可执行文件的缺省扩展名为()。B.exe2.x>0&&x<=10的相反表达式为()。A.x<=0||x>103.在下面的一维数组定义中哪一个有语法错误()。C.inta[];4.假定p是具有double类型的指针变量则表达式++p使p的值以字节为单位增加()。B.45.当#include后面的文件名用双引号括起来时寻找被包含文件的方式是()。C.仅仅搜索源程序所在目录6.假定指针变量p定义为“int*p=newint(100);”要释放p所指向的动态内存应使用语句()。A.deletep;7.假定AA为一个类a为该类公有的数据成员px为指向该类对象的一个指针则访问px所指对象中数据成员a的格式为。C.px->a8.栈具有()的操作特性。B.先进后出9.对于任一个类用户所能定义的构造函数的个数至多为()。D.任意个10.下列对派生类的描述中错误的说法是()。D.派生类所继承的基类成员的访问权限保持不变1.编写C++程序一般需经过的几个步骤依次是()。B.编辑、编译、连接、调试2.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”则元素a[2][1]的值为()。A.03.函数重载是指()。A.两个或两个以上的函数取相同的函数名但形参的个数或类型不同4.假定p指向的字符串为”string”若要输出这个字符串的地址值则使用()。D.cout<<(void*)s;5.在类作用域中能够通过直接使用该类的()成员名进行访问。B.公用6.假定AA为一个类a为该类公有的数据成员若要在该类的一个成员函数中访问它则书写格式为()。A.a7.在一个用数组实现的队列类中假定数组长度为MS队首元素位置为first队列长度为length则队尾即最后一个元素的位置为()。C.(first+length-1)%MS8.假定AB为一个类则执行“ABr1=r2;”语句时将自动调用该类的()。D.拷贝构造函数9.双目运算符重载为普通函数时其参数表中应带有()个参数。C.210.当派生类中有和基类一样名字的成员时一般来说()。B.派生类的同名成员将覆盖基类的成员1.C++程序的基本模块为()。D.函数2.设x和y均为bool量则x&&y为真的条件是()。A.它们均为真3.函数调用不可以()。D.作为一个函数的形参4.假定变量m定义为“intm=7;”则定义变量p的正确语句为()。B.int*p=&m;5.假定有“structBOOK{chartitle[40];floatprice;};BOOK*book;”则不正确的语句为()。A.BOOK*x=newbook;6.假定变量x定义为“intx=5;”要使rx成为x的引用别名rx应定义为()。D.int&rx=x;7.面向对象方法的多态性是指()。C.针对一消息不同的对象可以以适合自身的方式加以响应8.面向对象软件开发中使用的OOD表示()。B.面向对象设计9.在关键字private后面定义的成员为类的()成员。A.私有10.假定AA为一个类inta()为该类的一个成员函数若该成员函数在类定义体外定义则函数头为()。A.intAA::a()1.可用作C++语言用户标识符的一组标识符是()。B.a3_b3_123YN2.存储以下数据,占用存储字节最多的是()。D.0.03.以下说法中正确的是()。B.C++程序总是从main函数开始执行4.以下正确的说法是()。B.用户可以重新定义标准库函数若如此该函数将失去原有含义5.变量s的定义为“char*s=”Helloworld!”;”要使变量p指向s所指向的同一个字符串则应选取()。A.char*p=s;6.假定变量a和pa定义为“doublea[10],*pa=a;”要将12.35赋值给a中的下标为5的元素不正确的语句是()。D.*(a[0]+5)=12.35;7.关于消息,下列说法中不正确的是()。B.消息的发送者必须了解消息的接收者如何相应消息8.软件产品准确执行软件需求规格说明书中所规定的任务的能力叫做软件的()。D.正确性9.假定AA是一个类abc是该类的一个成员函数则参数表中隐含的第一个参数为()。C.this10.类的析构函数可以带有()个参数。A.01.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(A)。A.main2.每个C语言程序文件的编译错误分为(B)类。B.23.字符串"a+b=12\n"的长度为(B)。B.74.在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写为(D)语句。D.if5.在下面的do-while循环语句中,其循环体语句被执行的次数为(C)。inti=0;doi++;while(i<10);C.106.将两个字符串连接起来组成一个字符串时,选用的字符串函数为(C)。C.strcat()7.若用数组名作为函数调用的实参,传递给形参的是(A)。A.数组的首地址8.假定a为一个整数类型的数组名,整数类型的长度为4,则元素a[4]的地址比a数组的首地址大(C)个字节。C.169.假定s被定义为指针类型char*的变量,初始指向的字符串为"Helloworld!",若要使变量p指向s所指向的字符串,则p应定义为(A)。A.char*p=s;10.从一个数据文件中读入以换行符结束的一行字符串的函数为(B)。B.fgets()1.程序运行中需要从键盘上输入多于一个数据时,各数据之间默认使用(D)符号作为分隔符。D.空格或回车2.逻辑表达式(x>0&&x<=10)的相反表达式为(A)。A.x<=0||x>103.当处理特定问题时的循环次数已知时,通常采用(A)循环来解决。A.for4.假定i的初值为0,则在循环语句“while(i<n){s+=i*i;i++;}”中循环体被执行的总次数为(B)。B.n5.假定一个二维数组的定义语句为“inta[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为(C)。C.66.在下列选项中,不正确的函数原型格式为(C)。C.intFunction(a);7.假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大(C)个字节。C.48.假定有定义为“intm=7,*p;”,则给p赋值的正确表达式为(B)。B.p=&m9.假定指针变量p定义为“int*p=malloc(sizeof(int));”,要释放p所指向的动态存储空间,应调用的函数为(A)。A.free(p)10.C语言中的系统函数fopen()是(D)一个数据文件的函数。D.打开1.C语言源程序文件的缺省扩展名为(D)。D.C2.设x和y均为逻辑值,则x&&y为真的条件是(A)。A.它们均为真3.在下列的符号常量定义中,正确的定义格式为(C)。C.#defineM3104.for循环语句能够被改写为(D)语句。D.while5.在下面的一维数组定义中,错误的定义格式为(C)。C.inta[]6.下面的函数原型声明中存在语法错误的是(C)。C.AA(inta;intb;)7.假定a为一个数组名,则下面存在错误的表达式为的(B)。B.*a++8.假定有定义为“inta[10],x,*pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的赋值为(D)。D.x=*pa+39.char类型的长度为(A)个字节。A.110.向一个二进制文件中写入信息的函数为(D)。D.fwrite()1.由C语言目标文件连接而成的可执行文件的缺省扩展名为(B)。B.exe2.设有两条语句为“inta=12;a+=a*a;”,则执行结束后,a的值为(C)。C.1563.带有随机函数调用的表达式rand()%20的值在(C)区间内。C.0~194.for循环语句“for(i=0;i<n;i+=2)S;”中循环体S语句被执行的次数为(A)。A.(n+1)/25.在下列的字符数组定义中,存在语法错误的是(D)。D.chara[10]='5';6.若有一个函数原型为“double*function()”,则它的返回值类型为(B)。B.实数指针型7.在C语言中,所有预处理命令都是以(B)符号开头的。(B)B.#8.假定整数指针p所指数据单元的值为30,p+1所指数据单元的值为40,则执行*p++后,p所指数据单元的值为(A)。A.409.若要使p指向二维整型数组a[10][20],则p的类型为(D)。D.int(*)[20]10.表示文件结束符的符号常量为(C)C.EOF二、填空题1.C++语言是在__C__语言的基础上发展起来的。2.当执行cin语句时从键盘上输入每个数据后必须接着输入一个__空白__符然后才能继续输入下一个数据。 3.假定x是一个逻辑量则x&&false的值为__false(或0)__。4.元素类型为char的二维数组a[10][30]共占用__300__字节的存储空间。5.局部变量具有局部生存期存放在内存的__栈__区中。6.已知语句“cout<<p;”的输出是“Hello!”则语句“cout<<*p;”输出的是__H__。7.对类中常量成员的初始化是通过在构造函数中给出的__初始化表__来实现的。8.在重载一个单目运算符时参数表中没有参数说明该运算符函数只能是类的_成员函数_9.假定用户为类AB定义了一个构造函数“AB(intaa):a(aa){}”则定义该类的对象时有__1__种定义格式。10.在每个成员函数中隐含的第一个参数的参数名为__this__。1.行尾使用注释的开始标记符为__//__。2.设enumPrintstatus{ready=2,busy,error};则cout<<busy的输出结果是__3__。3.重载一个函数的条件是该函数必须在参数的个数或参数的__类型__上与其它同名函数有所不同。4.定义一个函数模板要用到的第一个修饰符是__template__。5.与结构成员访问表达式p->name等价的表达式是__(*p).name__。6.如果一个派生类的基类不止一个则这种继承称为__多继承__。7.在一个用数组实现的队列类中假定数组长度为MS队首元素位置为first队列长度为length则插入一个新元素的位置为__(first+length)%MS__。8.向一个队列中插入元素就是把该元素放到__队尾__元素的后一位置上。9.假定用户只为类AB定义了一个构造函数“AB():a(0),b(0){}”则定义该类对象x的定义语句“ABx;”是__正确__(正确/错误)的。10.除了__赋值__运算符外其他重载的运算符都可以被派生类继承。1.C++语言的编译单位是扩展名为_CPP__的__程序__文件。2.C++常数0345对应的十进制值为__229__。3.假定x是一个逻辑量则!x||false的值为_!x_4.若a是一个字符数组则从键盘上向该数组输入一个字符串的表达式为__cin>>a__。5.当定义一个结构体变量时系统分配给该变量的内存大小等于各成员所需内存大小的__总和__。6.若p指向x则__*p__与x的表示是等价的。7.已知语句“cout<<s;”的输出是“apple”则执行语句“cout<<s+2;”的输出为_ple_。8.若采用p->abc(y)表达式调用一个成员函数在成员函数中使用的__this__就代表了类外的p指针。9.重载插入运算符<<或抽取运算符>>时其运算符函数不能被定义为类的__成员__函数10.在一个或若干个类的基础上构造一个新类被称为__继承(派生)__。1.用于从键盘上为变量输入值的标准输入流对象是__cin__。2.程序中的预处理命令是指以__#__字符开头的命令。3.常数100和3.62的数据类型分别为___int__和__double__。4.用于存储一个长度为n的字符串的字符数组的长度至少为__n+1__。5.假定a是一个一维数组则a[i]对应的存储地址以字节为单位为__a+i*sizeof(a[i])__。6.基类和派生类的关系称为__继承__。7.类定义中既包含数据成员也包含__函数__成员。8.在一个用数组实现的队列类中包含有两个数据成员一个指明队列长度另一个指明__队首__元素的位置。9.当一个队列为空时不能对其做__删除__元素的操作。10.派生类的成员函数可以直接访问基类的成员不能直接访问基类的__公有和保护、私有__成员。1.执行“printf("%c",'A'+2);”语句后得到的输出结果为_C_。2.shortint类型的长度为_2_。3.用类型关键字表示十进制常数3.26f的类型为float4.假定y=10,则表达式++y*3的值为_33_。5.逻辑表达式(x==0&&y>5)的相反表达式为(x!=0||y<=5)或:(x||y<=5)。6.若x=5,y=10,则x!=y的逻辑值为_1(真,true)_。7.假定二维数组的定义为“inta[3][5];”,则该数组所占存储空间的字节数为_60_。8.使用“typedefcharBB[10][50];”语句定义_BB_为含有10行50列的二维字符数组类型。9.字符串"a:\\xxk\\file.txt"的长度为_15_。10.假定p所指对象的值为25,p+1所指对象的值为46,则*++p的值为_46_。11.假定一个数据对象为int*类型,则指向该对象的指针类型为_int**_。12.假定一个结构类型的定义为“structA{inta,b;A*c;};”,则该类型的理论长度为_12_。13.假定要访问一个结构对象x中的数据成员a,则表示方式为_x.a_。1.在一个C语言程序文件中,若要包含另外一个头文件或程序文件,则应使用的预处理命令为#include。2.用于从键盘上为变量输入值的标准输入函数的函数名为scanf。3.假定一个枚举类型的定义为“enumRA{ab,ac,ad,ae};”,则ac的值为_1。4.double类型的长度为_8_。假定structIntNode的结点类型定义为:structIntNode{intdata;structIntNode*next;};函数功能:求出并返回由f所指向的单链表中所有结点的最大值。1.#include<stdio.h>voidmain(){intx=5;switch(2*x-1){case4:printf("%d",x);break;case7:printf("%d",2*x);break;case10:printf("%d",3*x);break;default:printf("%s","default");}printf("%s\n","switchend.");}运行结果:defaultswitchend.2.#include<stdio.h>voidmain(){intf1,f2,i;f1=1;printf("%d",f1);for(i=2;i<=5;i++){f2=3*f1+1;printf("%d",f2);f1=f2;}printf("\n");}运行结果:1413401213.#include<stdio.h>voidmain(){inta[10]={12,39,26,41,55,63,72,40,83,95};inti,i1=0,i2=0;for(i=0;i<10;i++)if(a[i]%2==1)i1++;elsei2++;printf("%d%d\n",i1,i2);}运行结果:644.#include<stdio.h>#include<string.h>voidmain(){chars[15]="567891234";inti,n=strlen(s);for(i=0;i<n/2;i++){charc=s[i];s[i]=s[n-1-i];s[n-1-i]=c;}printf("%s\n",s);}运行结果:4321987655.#include<stdio.h>intLB(int*a,intn){inti,s=1;for(i=0;i<n;i++)s*=*a++;returns;}voidmain(){inta[]={1,2,3,4,2,4,5,2};intb=LB(a,4)+LB(a+3,3);printf("b=%d\n",b);}运行结果:b=566.#include<stdio.h>voidmain(){inti,s=0;for(i=1;;i++){if(s>30)break;if(i%2==0)s+=i;}printf("s=%d\n",s);}运行结果:s=427.#include<stdio.h>voidmain(){inta[9]={36,25,48,24,55,40,18,66,20};inti,b1,b2;b1=b2=a[0];for(i=1;i<9;i++){if(a[i]>b1)b1=a[i];if(a[i]<b2)b2=a[i];}printf("%d%d\n",b1,b2);}运行结果:66188.#include<stdio.h>voidSB(charch){switch(ch){case'A':case'a':printf("WW");break;case'B':case'b':printf("GG");break;default:printf("BB");break;}}voidmain(){chara1='a',a2='B',a3='f';SB(a1);SB(a2);SB(a3);printf("\n");}运行结果:WWGGBB9.#include<stdio.h>#defineM6voidmain(){inti,x;inta[M]={10,15,22,37,46,58};for(i=0;i<M/2;i++){x=a[i];a[i]=a[M-1-i];a[M-1-i]=x;}for(i=0;i<6;i++)printf("%d",a[i]);printf("\n");}运行结果:58463722151010.#include<stdio.h>structWorker{charname[15];intage;floatpay;};voidmain(){structWorkerx={"wanghua",52,2350};structWorkery,*p;y=x;p=&x;printf("%d%7.2f\n",y.age+p->age运行结果:1042370.001.#include<stdio.h>voidmain(){inti,s=0;for(i=1;i<6;i++)s+=i*i;printf(“s=%d\n”,s);}运行结果:s=552.#include<stdio.h>#defineN6voidmain(){inti,a[N]={2,5,8,10,15,21};for(i=0;i<N;i++)if(a[i]%5)printf("%d",a[i]);printf("\n");}运行结果:28213.#include<stdio.h>#include<string.h>voidmain(){inti;unsignedintlen;char*a[5]={"student","worker","cadre","soldier","zzeasan123"};len=strlen(a[0]);for(i=1;i<5;i++)if(strlen(a[i])>len)len=strlen(a[i]);printf("%d\n",len);}运行结果:104.#include<stdio.h>voidmain(){inta,b;for(a=2,b=3;b<20;){printf("%d%d",a,b);a=a+b;b=a+b;}printf("%d%d\n",a,b);}运行结果:235813211.#include<stdio.h>intSA(inta,intb){if(a>b)return1;elseif(a==b)return0;elsereturn-1;}函数功能:比较两个整数a和b的大小,若a>b则返回1,若a==b则返回0,若a<b则返回-1。五、编程题1.求出从键盘上输入的10个整数中的最大值要求输入变量用x表示存储最大值的变量用max表示。解:#include<stdio.h>

voidmain(){

inti,x,max;

scanf("%d",&x);

max=x;

for(i=1;i<10;i++){

scanf("%d",&x);

max=max>x?max:x;}

printf("%d\n",max);}2.根据下面类中Reverse函数成员的原型和注释写出它的类外定义。classAA{int*a;intn;intMS;public:voidInitAA(intaa[],intnn,intms){if(nn>ms){cout<<"Error!"<<endl;exit(1);}MS=ms;n=nn;a=newint[MS];for(inti=0;i<MS;i++)a[i]=aa[i];}AA*Reverse();};解:AA*AA::Reverse(){inti,x;for(i=0;i<n/2;i++){x=a[i];a[i]=a[n-1-i];a[n-1-i]=x;}returnthis;}1.按照下面函数原型语句编写一个函数返回二维数组a[m][n]中所有元素的平均值假定采用变量v存放平均值。解:doubleMean(doublea[M][N],intm,intn);doubleMean(doublea[M][N],intm,intn){inti,j;doublev=0.0;for(i=0;i<m;i++)for(j=0;j<n;j++)v+=a[i][j];v/=m*n;returnv;}2.根据下面类中MaxMin函数成员的原型和注释写出它的类外定义。classAA{int*a;intn;intMS;public:oidInitAA(intaa[],intnn,intms){if(nn>ms){cout<<"Error!"<<endl;exit(1);}MS=ms;n=nn;a=newint[MS];for(inti=0;i<MS;i++)a[i]=aa[i];}intMaxMin(int&x,int&y);解:intAA::MaxMin(int&x,int&y){intmx,my;mx=my=a[0];for(inti=1;i<n;i++){if(a[i]>mx)mx=a[i];if(a[i]<my)my=a[i];}x=mx;y=my;if(n>0)return1;elsereturn0;}1.计算的值并输出,假定分别用i,p,s作为循环变量、累乘变量和累加变量的标识符。解:#include<stdio.h>voidmain(){inti;intp=1;ints=1;for(i=1;i<=10;i++){p*=3;s+=p;}printf("%d\n",s);}2.根据下面类中Reverse1函数成员的原型和注释写出它的类外定义。classAA{int*a;intn;intMS;public:voidInitAA(intaa[],intnn,intms){if(nn>ms){cout<<"Error!"<<endl;exit(1);}MS=ms;n=nn;a=newint[MS];for(inti=0;i<MS;i++)a[i]=aa[i];}AA*Reverse1();};解:AA*AA::Reverse1(){AA*px=new

温馨提示

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

评论

0/150

提交评论