c++复习题
- 格式:docx
- 大小:20.42 KB
- 文档页数:10
c语言复习题一、单项选择题1.以下叙述中错误的是? A.用户所定义的标识符允许使用关键字B.用户所定义的标识符应尽量做到“见名知意”C.用户所定义的标识符必须以字母或下划线开头D.用户定义的标识符中,大、小写字母代表不同标识2、c语言数据的基本类型包括()A、整型、字符型、实型B、整型、字符型、实型、枚举类型C、整型、实型、枚举类型、指针类型 D、整型、字符型、实型、数组类型3.以下不合法的字符常量是A.’\019’B.’\’’’C.’\\’D.’\xcc’4、c语言允许使用的变量标识符是()A、x#yB、12shC、j_c_tD、char5.设有以下语句。
int a=1,b=2,c;c=a^(b<<2);执行后,c的值为 A.6 B.7 C.8 D.96、c语言中合法的字符常量是()A、‘\084’B、‘\X43’C、‘ab’D、“\0”7.下列标识符中,合法的变量名有? A.a.b B.$888 C.A1 D.3x568、若定义x和y为double型,则表达式:x=1,y=x*3/2的值是()A、1B、2C、 2.0D、1.59、若有以下类型说明语句:char w;int x;float y;double z;则表达式 w*x+z-y的结果为()类型A、floatB、char C 、int D、double10、下列表达式中,()可以正确表示x<=0或x>=1的关系A、(x>1)or (x<=0)B、x>1 || x<=0C、x>1 or x<=0D、x>=1 || x<=011.下列不正确的表达式是A.10%3+5%3B.10/3+5/3C.10%3/2D.(10.0/3.0%3)/212.以下四个选项中,不能看作一条语句的是A.{;}B.a=0,b=0,c=0;C.a>0;D.m=1;n=2;13.设x为int 型变量,则执行以下语句后,x的值为x=10;x+=x-=x-x;A.10B.20C.40D.3014、若定义a为整型数据变量则a=-2 L;printf(“%d\n”,a);以上语句结果为()A、赋值语句不合法B、输出值为-2C、输出值为不确定值D、输出值为215、现已定义整型变量int i=1;执行循环语句“while(i++<5)后i的值变为()A、1B、5C、6D、以上三个答案均不正确16、若执行下述程序时,从键盘输入数据3和4,则程序的输出结果是()main(){ int a ,b ,s;scanf(“%d%d”,&a,&b);s=a;if(a<b)< p="">s=b;s=s*s ;printf(“%d”,s);}A、14 B、16 C、18 D、2017、若数组名作为函数参数传递给函数,作为实参的数组名被处理为()A、该数组的长度 B、该数组的元素个数C、该数组中各元素的值 D、该数组的首地址18、c语言允许函数值类型缺省定义,此时该函数值隐含的类型是()A、float型B、int型C、long型D、double型19、在c语言中,存储类型为()的变量只在使用它们的时候才占用存储空间A、static和autoB、register和autoC、static和registerD、register和extern20、下面程序片段的输出结果是()char str[]=“abcd”,*p=str;printf(“%d\n”,*(p+4));A、68 B、0 C、字符‘d’的地址D、不确定的值21、设有以下说明,已知int类型占2个字节,则下列叙述正确的是()struct st{int a;int b[2];} a;A、结构变量名a和结构成员a同名,不合法B、程序运行时将为结构体st分配6个字节的内存单元C、程序运行时不为结构体st分配内存单元D、程序运行时将为结构体变量a分配6个字节的内存单元22、求字符串长度的函数是()A、strcat B、strcpy C、strcmpD、strlen 23.现已定义整型变量 int i=1;执行循环语句“while(i++<5);”后,i的值为A.1B.5C.6D.以上三个答案均不正确24.以下叙述中错误的是A.C语句必须以分号结束B.复合语句在语法上被看作一条语句C.空语句出现在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句25.设有定义:int a=2,b=3,c=4;时,以下选项中值为0的表达式是A.(!a= =1)&& (!b= =0)B.aC. a&&bD.a||(b+b)&&(c-a)26.C语言中,定义PI为一个符号常量,正确的是A.#define PI 3.14B.define PI 3.14C.#include PI 3.14D.include PI 3.1427.下面关于switch语句和break语句的结论中,只有是正确的A.break语句是switch语句中的一部分B.在swtich语句中可以根据需要使用或不使用break语句C.在swtich语句中必须使用break语句D.以上三个结论中有两个是正确的28.有以下程序:main(){int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf(“%d\n”,s);}程序执行后的输出结果是 A.自然数1~9的累加和 B.自然数1~10的累加和C.自然数1~9中的奇数之和D.自然数1~10的偶数之和29.在C语言函数的定义和引用中,以下描述正确的是A.必须有形式参数B.也可以没有形式参数 C.数组名不能作为形式参数 D.形式参数必须是变量名30.下列关于return语句的说法,正确的是A.必须在每个函数中都出现B.只能在除主函数之外的函数中出现一次C.可以在同一个函数中多次出现D.在主函数和其他函数中都可以出现31.下列说法不正确的是A.形式参数是局部变量B.主函数main 中定义的变量在整个文件或程序中都又效C.在一个函数的内部,可以在复合语句中定义变量D.不同的函数中,可以使用相同名字的变量32.以下叙述正确的是A.do-while语句构成的循环不能用其它语句构成的循环来代替B.do-while语句构成的循环只能用break语句退出C.用do-while语句构成的循环,在while后的表达式为非零时结束循环D.用do-while语句构成的循环,在while后的表达式为零时结束循环33.下列数组定义语句正确的是A.int a[][]={1,2,3,4,5,6};B.char a[2][3]=’a’,’b’C.int a[][3]={1,2,3,4,5,6};D.static int a[][]={{1,2,3},{4,5,6}}; 34.若定义int a[3][4];则下列选项不能表示数组元素a[1][1]地址的是A.a[1]+1B.&a[1][1]C.*(a+1)[1]D.*(a+5)35.已知int 和double类型分别占2个和8个字节,若有如下定义:Struct data{ int i;char ch;double f;}b;则结构变量b占用内存的字节数是 A.7 B.2 C.8 D.1136.对于以下递归函数f,调用f(4),其返回值为int f(int n){ return f(n-1)+n;}A.10 B.11 C.0 D.以上均不是37.有以下程序:main(){int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf(“%d\n”,*p+*q);}程序运行后的输出结果是 A.16 B.10 C.8 D.638.C语言中操作文件的正确顺序是A.读写,关闭,打开B.打开,读写,关闭C.打开,关闭,读写D.读写,打开,关闭39.定义union s{int w,x,y,z;char c[6];};,请问执行sizeof(union s)=A.2B.6C.8D.1440.说明语句int *f();中的标识符f代表A.一个用于指向整型数据的指针变量B.一个用于指向一维数组的行指针C.一个用于指向函数的指针变量D.一个返回值为指针型的函数名二、填空题1.设有程序段:int k=10;while(k=0) k=k-1;则循环体语句执行次。
C期末考试复习题(答案)C语言复习题一、单项选择题1、C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( C )的文件。
A).c B).obj C).exe D).bas2、)完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( B )A)连接、编译B)编译、连接 C)连接、运行D)运行3、关于C语言的叙述中,不正确的是(D)A)C程序可由一个或多个函数组成B)C程序必须包含一个main ()函数C)C程序的基本组成单位是函数D)注释说明只能位于一条语句的后面4、一个C程序的执行是从(A )。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束5、以下正确的叙述是(C )A) 在C语言中,main函数必须位于文件的开头B) C语言每行中只能写一条语句C) C语言本身没有输入、输出语句D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误6、下列选项中,不能用作标识符的是( D)。
A) _1234_ B) _1_2 C) int_2_ D) 2_int_7、常数的书写格式决定了常数的类型和值,0x1011是( C )A)8进制整型常量B)字符常量 C)16进制整型常数D)2进制整型常数8、以下4组用户定义标识符中,全部合法的一组是( A )A)_total clu_1 sum B)if -max turbC)txt REAL 3COM D)int k_2 _0019、_( D )是合法的用户自定义标识符。
A) b-b B)float C)123a D) _isw10、以下选项中不正确的整型常量是( C )。
A) 12L B) -10 C) 1,900 D) 123U11、表达式( C )的值是0。
C语言复习题一、单项选择题(每小题2分)1. 对于一个正常运行的C程序,以下叙述正确的是_______。
A. 程序的执行总是从main()开始,在main()中结束。
B. 程序的执行总是从第一个函数开始,在main()中结束。
C. 程序的执行总是从main()开始,在最后一个函数中结束。
D. 程序的执行总是从main()开始,在最后一个函数中结束。
2. 下列数据中,为字符型常量的是_______。
A. "ab"B. "a"C.‘a’D. a3. int u=010,v=0x10,w=10; printf("%d,%d,%d\n",u,v,w);则输出结果是_______。
A. 8,16,10B.10,10,10C. 8,8,10D. 8,10,104. (a=3)&&(b=-3)的运算结果是_______。
A. -3B. 1C. 0D. 35. 在C语言中,字符串"\xaf\thello\65"的长度是_______。
A. 5 B.7 C. 8 D. 126. 设float x,由键盘输入:12.45, 能正确读入数据的输入语句是_________。
A.scanf("%5f",&x);B.scanf("%5d",&x);C.scanf("%f",x);D.scanf("%s",&x);7.int a=65,则printf("%d,%o,%x",a,a,a)的结果是_________。
A. 65,65,65B. 65,101,41C. A,101,41D. 65,41,1018. char c1=’a’,c2=’b’; c1=getchar(); c2=getchar();运行程序时,从键盘输入a<Enter键>,以下说法正确的是_________。
复习A:一、单项选择题1、如果要把常量327存入变量a中,a不能定义的类型是哪一个? ( )A)int B)char C)long D)float2、若x 为unsigned int 型变量,则执行下列语句后x值为()x = 65535;printf(“%d\n”,x);A)65535 B)1 C)无定值D)-13、有以下程序main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf(″%d,%d\n″,k,m);}程序运行后的输出结果是()A)0,0 B)0,1 C)1,0 D)1,14、在C语言中,如果下面的变量都是int类型,则输出的结果是()。
sum=pad=5; pAd=sum + + ,pAd + +, + + pAd;printf("%d\n",pad);A) 7 B) 6 C) 5 D) 45、以下程序的输出结果是()。
main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A)1 B)0 C)非0的数D)-16、当执行以下程序段时()。
x=-1;do{x=x*x;}while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误7、全局变量的存储类型可以定义为()。
A)auto或static B)extern或registerC)auto或extern D)extern或static8、定义全局变量时,若变量的的存储类别缺省,则默认的存储类型是()。
A)auto B)registerC)extern D)static9、已知:int a, x; 则正确的赋值语句是()。
A)a=(a[1]+a{2})/2; B)a*=*a+1; C)a=(x=1, x++, x+2); D)a="good";10、已知:int a, *p=&a; 则下列函数调用中错误的是()。
以下作业编程练习,每个主题至少选择4道题作为作业题(各主题中所列题目不足4题的按实际数量选做)。
每次作业计2分,作为平时成绩。
另外,此练习题作为C 语言上机考试的考题来源之一(共49题)。
一、 顺序结构程序设计========================================1 已知三角形的三边长为a ,b ,c ,计算三角形面积的公式为: area = ))()((c s b s a s s ---,s =)(21c b a ++ 要求编写程序,从键盘输入a ,b ,c 的值,计算并输出三角形的面积。
2 编程从键盘输入圆的半径r ,计算并输出圆的周长和面积。
二、 选择结构程序设计==========================================1 从键盘任意输入一个年号,判断它是否是闰年。
若是闰年,输出“Yes ”,否则输出“No ”。
已知符合下列条件之一者是闰年:能被4整除,但不能被100整除。
能被400整除。
2 通过键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。
3 华氏和摄氏温度的转换公式为C =5/9×(F -32)。
其中,C 表示摄氏温度,F 表示华氏温度。
要求:华氏0℉~300℉,每隔20℉输出一个华氏温度对应的摄氏温度值。
4 编程判断输入整数的正负性和奇偶性。
5 编程计算分段函数e 1exx y -⎧⎪=⎨⎪-⎩ 000x x x >=< 输入x ,打印出y 值。
流程图如图1-2所示。
6 输入三角形的三条边a ,b ,c ,判断它们能否构成三角形。
若能构成三角形,指出是何种三角形(等腰三角形、直角三角形、一般三角形)。
7 在屏幕上显示一张如下所示的时间表:*****Time*****1 morning2 afternoon3 nightPlease enter your choice:操作人员根据提示进行选择,程序根据输入的时间序号显示相应的问候信息,选择1时显示"Good morning", 选择2时显示"Good afternoon", 选择3时显示"Good night",对于其他选择显示"Selection error!",用switch 语句编程实现。
一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
所有单选题1、C语言中下列叙述正确的是__d____。
A:不能使用do-while语句构成的循环B:do-while语句构成的循环,必须用break语句才能退出C:do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 1真0假,1 进入循环 D:do-while语句构成的循环,当while语句中的表达式值为零时结束循环答案:D2、以下选项中属于C语言的数据类型是__C____。
A:复数型B:逻辑型C:双精度型D:集合型答案:C3、下列描述中不正确的是__C____。
A:字符型数组中可以存放字符串B:可以对字符型数组进行整体输入、输出C:可以对整型数组进行整体输入、输出D:不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值答案:C4、以下程序的输出结果是______。
main(){ int x=10,y=10,i;for(i=0;x>8 ;y=++i)printf("%d %d ",x--,y);}A:10 1 9 2B:9 8 7 6C:10 9 9 0D:10 10 9 1答案:D5、以下程序的输出结果是______。
main(){ char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i ;i=8;p=a+i;printf("%s\n",p-3);}A:6B:6789C:'6'D:789答案:B6、能正确表示a和b同时为正或同时为负的逻辑表达式是__D____。
A:(a>=0||b>=0)&&(a<0|| b<0)B:(a>=0&&b>=0)&&(a<0&&b<0)C:(a+b>0)&&(a+b<=0)D:a*b>0答案:D7、以下程序的输出结果是__A____。
C程序设计综合复习题目录一、单项选择题 (1)二、填空题 (8)三、程序分析题 (9)四、程序填充题 (16)五、编程题 (21)1.分支结构 (21)2.循环结构 (22)3.数组、函数、指针 (22)4.结构体 (22)一、单项选择题1.可以作为自定义标识符的是()A. 2x B • breakC. m-n D • m_n2.C语言的保留字(关键字)是()A. defineB. enumC. mainD. includc3 •错误的实型(浮点型)常数是()• •A. 0B. 0.E0C. 0.0D. 0E4-0.04.无条件转移语句的一般形式是:goto语句标号;,其中的语句标号可以是()A.整型数B.标识符C.保留字D.实型数5.正确的变量定义是()A. unsigned long d=1000;B. float ml=m2=10.0;C. char cl=,A,,c2=A; D・ double x=0.618,x=3.14;6.表达式的值为0的是()A. 5/5%5B. 5>2C・!4 D・ 0x7&77•设int a;侧表达式a=2,4,a+l的值是()A.lB.2C.3D.4&设int i; Hoat f; double d; long int c;,则表达式10+' a' +i*f-d/c 结果的类型是()A.doubleB.longC. intD. float9.设int a;,则语句for(a=0;a==0;a++);和语句for(a=0;a=0;a++);执行循环的次数分别是()A.0, 0B.0, 1C.l, 0D.l, 110.if(表达式)和while(表达式)中的“表达式”()A.只能是逻辑的B.只能是关系的C.只能是算术的D.以上三种都可以11.设int a=0,b=0,m=0,n=0;,则执行(m=a==b) II (n=b==a)后m 和n 的值分别是()A.0, 0B.0, 112. 设int a ?b;为使变量a 和b 分别获得数据10和20,则下列正确的是()A. scanf (”%d,%d”,&a,&b );输入数据:10, 20<回车〉B. scanf (”%d,%d”,&a,&b );输入数据:10 20<回车〉C. scanf (”%d,%d”,&a,&b );输入数据:D. scanf ("%d,%d", a,b );输入数据:13. 对于函数,正确的说法是()C •必须有返回语句 14•设 int a [3] [4];,则与元素 aD •必须有形式参数[0] [0]不等价的表达形式是()■D. 2设char s[10]=n abcde H ,t[ ]=M 12345°;,则s 和t 在内存中分配的字节数分别是() 6和5 B. 6和6设 int a=10,*p=&a;,则执行 printf(n %d\n M ,*p+a);的结果是( )A.可以嵌套定义 B •定义时有些函数名前可以带星号A.*aB.* *aD.*(*(a+O)+O)C.*a[0] 15.设 char si [ ] ={,a ,;b';c ,},s2 [ ] ="abc";,则数组 si 和 s2 的长度分别是()A.2, 3B.3, 3C.3, 4D.4, 416. A. 设int a=l,b=2;,则执行a=b+2,a++,a+b ;后a 和b 的值分别是()1和2 B. 3和2C. D. 5 和 217. 设 int a=2,b=3,c=4;,则表达式 a>b&&b<c||b 的值是A. -1B. 0a=10, b=20<冋车〉10, 20<回车〉C. 18. A. C. 设int a=2,b=3,x,y;,则能正确执行的语句是( )scanf(z , %d,%d" ,x ・y,x+y); B. printf(,/ printf(" ,a+b); D. scanf(" %d\n" ,a%b);%d,%d" ,x,y);19. A. C. 10和5 D. 10 和 6 20. A. 10 B. 20C. 30D. 4021. 自定义函数中形式参数的作用域是()A. 本文件B.本函数C. main 函数D.整个程序设 int b[ ][5]={1,2,3,4,567} — 则元素b[l][2]的值是()A. B.C. D.23. 对函数而言,叙述正确的是(A. 函数中只能有一个return 语句B.当函数的形参是数组时形实结合为值传递方式C.程序中只能有一个main函数D.无参函数的函数体内不能出现return语句24.执行下列程序段后输出的结果是()int x,y,z=l;for(x= 1 ,y=・ 1 ;x<y;x++,y・・)z++;printf(M%d\n M,z);A. 1B. 2C. 5D. 625.设static int a[3]={l,2,3};int*p[ ]={&a[0],&a[l],&a[2]};则与数组元素a[l]等价的是()A. *p[l] B・ p[l]C. *p+lD. p+126.设struct{char name[10];int age;}stu[2]={{ ” Tom" ,25},{〃Mary" ,26}}?p=stu;则执行语句printf(" %s%d\rT ,p->name,stu[ 1 ].age);后输出结果是( ) A. Tom25 B・ Tom26C. Mary25D. Mary2627.设typedef double DB;,则与DB u[5];的等价形式是()A. double db[5]; B・double DB[5];C. double u;D. double u[5];2&设char ch,str [4], *strp;,则正确的赋值语句是()A. ch=”MBA”;B. str=n MBA n;C. stip=”MBA“;D. *strp=”MBA”;29.设typedef char *POINT;POINT p,q [3] ,*r;,则p、q和1•分别是字符型的()A.变量、一维数组和指针变量B.变量、二维数组和指针变量C.指针变量、一维数组指针和二级指针变量D.指针变量、一维指针数组和二级指针变量30.若变量定义时未初始化,则其值不确定的是()■A.静态全局变量B.局部变量C.静态局部变量D.全局变量31.设struct{int a; char b;}Q,*p=&Q;,则够谡的表达式是()B. (*p).b D. p->a32.在某文件中,若全局变量与局部变量同名,贝!)()A.视为同一个变量 B.变量作用域不确定 C.不允许 D.允许 33•设宏定义#define P (x ) x/x则执行语句printf (u %d\n n ,P (4+6));后的输出结果是()A.lB.8.5D.11.534•屈于C 语言基本数据类型的是(B ) A.指针型 C.数组型 B.无符号整型D.结构型35.C 语言的长整型数值在计算机中占用的字节个数是() A.1 C.3 36.C 语言屮, A.1 C.4 B.2D.4”\x3d”在内存屮占用的字节数是(B )B.2D.537•设 int x;则执行 printf(n %x\n H ^x A x);的结果是()A.OB.1C. ffD.ffff38. 对于while 语句,错误的说法是()• • • A. 用条件控制循环体的执行次数B. 循环体至少要执行一次C. 循坏体有可能一次也不执行D. 循环体中可以包含若干条语句39. 设 int a=9,b=20;则 printf (,'%d,%d,%d\n ,,,a+b,a —的输出结果是() A 、2&9,19 B 、29,9,20 40.执行下列语句int a=8,b=7,c=6;if(a<b)if(b>c){a=c;c=b;} printf("%d,%d,%d\n",a,b,c);后输出的结果是()A.6, 7, 7B.6, 7, 8C.8, 7, 6D.8, 7, 841. 设 static char x[ ]=,,12345,,;char y[ ;那么()A 、 x 数组的长度等于y 数组的长度B 、 x 数组的长度大于y 数组的氏度C 、 x 数组的长度少于y 数组的长度D 、 x 数组与y 数组的存储区域相同42. 设 int i,x[3][3]={l,2,3,4,5,6,7,8,9};则下面语句 A. *p.bC ・ Q.a C.11 C 、28,10,19D 、30,10,20for(i=0;i<3;i++)printfC %d" ,x[i][2-i]); 的输出结果是()A.l 4 7B.l 5 9C.3 5 7D.3 6 943.设 intb[]={l,2,3,4}, y,*p=b;则执行语句y=*p++;之后,变量y 的值为()A.lB.2C.3D.444. 设inta,*p ;则语句p=&a;中的运算符“&”的含义是()A.位与运算B.逻辑与运算C.取指针内容D.取变量地址45. 若函数能被其它编译单位引用,那么函数定义时的存储类型应选用()A.autoB.staticC.externD.register46.下面函数定义有错误的是()• • • A ・fl(xl,x2) int xl,x2; int xl;int x2;{函数体} {函数体}47.C 语言屮计算a?正确的表达是( ){函数体} {函数体}C.fl(int x 1 ,x2)D.fl(int x 1 Jnt x2) A.a A 3 C.a**3 4&下列定义正确的是( A.anum t={a,b}x; C.anum {'+T —'}x; B.pow(a,3)D.power(a,3))B.enum t{l,2}x;um t{a ,b}x;49•设有定义:union u{int a[4];float b[3]};char c[16];}aa;则 printf(/, %d\n" ,sizeof(aa));的输出是()A.32B.16C.12D.850.在下列有关宏替换的叙述中,正确的说法是()A. 宏替换占用运行时间B. 宏名有类型C. 带参数的宏替换和函数等价D. 宏替换只是字符替换51•下列程序的运行结果是()# define A 5# define B A+lmain(){int a; a=B;printf(" %d\n,f a—);}A.6B.5C.4 D•出错52.设有如下定义:struct sk{ int a;float b;{data; int *p;若要使p指向data中的a成员,正确的赋值语句是()A. p=&a; B・ p=data.a; C・ p=&data.a; D. *p=data.a;53.下列四组选项中,均是合法转义字符的选项是()A. 'n‘\\’B. •Mil1‘\017‘C.‘\01& '\f '\x4b, C.'\\0' '\ior '\xaf54.设int x=0,*px;,则经过()后,*px的值为0。
一、判断题1. C++程序中,不得使用没有定义或说明的变量。
()2.C和C++都是面向对象的。
()3.对象实际上是功能相对独立的一段程序。
()4.包含有纯虚函数的类称为抽象类。
()5.函数定义 void swap(A &x)中的形式参数是一个变量的地址。
()6.C++提供了string类型。
()7.析构函数不能设置默认参数。
()8.静态成员函数只能直接访问该类的静态数据成员。
()9.用成员函数重载运算符所需的参数个数总比它的操作数少一个。
()10.在C++的输入输出系统中,最核心的对象是流。
()11.在面向对象程序设计中,类通过消息与外界发生关系。
()12.引用是某个变量或对象的别名,建立引用时要对它初始化。
()13.当用类的一个对象去初始化该类的另一个对象时,该类的拷贝构造函数会被自动调用。
()14.拷贝构造函数可以被显示调用。
()15.一个类的析构函数只能有一个。
()16.私有派生时,基类的public成员仍被继承为派生类的public成员。
()17.设类Counter有私有变量x,它的构造函数Counter(int a){x=a;},则对象声明“Counter c1(3);”定义了三个Counter类的对象。
()18.静态成员函数不能访问静态数据成员。
()19.类中有函数声明:“friend void f(A &x);”,则函数f只能访问该类的公有成员。
()20.重载“[]”运算符函数可以带多个参数。
()二、填空题1.面向对象程序设计方法具有抽象性、封闭性、继承性和等特点。
2.声明内联函数的关键字是。
3.C++有值传递和传递两种参数传递机制。
4.运算符用于动态内存分配,运算符用于释放动态分配的内存。
5.如果类A继承了类B,则类A称为类,类B称为类。
6.在C++中,要实现动态联编,必须使用基类指针调用。
7.具有纯虚函数的类称为。
8.定义模板的关键字是。
9.虚基类的作用是解决问题。
10.假定ABC是一个类,由“ABC a[5],b(3)”创建对象时该类的构造函数被调用了次。
11.面向对象程序设计方法,程序可表示为程序=_______________。
12.面向对象程序设计着重于 _________的设计。
13.在创建对象时,使用类作为样板,故称对象为类的 ____________。
14.声明内联函数的关键字是__________15.要求一个变量在程序运行期间其值不能改变,在声明时要用的修饰符是___________。
16.________是一种参数化的多态性工具,可以为逻辑功能相同而类型不同的程序提供代码共享机制。
17.动态联编所支持的多态性称为 ___________的多态性。
18.使用C++风格的输入输出,在程序中必须包含头文件____________。
19.默认的继承方式为_________继承方式。
20.C++有值传递和 ________传递两种参数传递机制。
21.控制格式输出的操纵符中,()是设置数据精度的,()是设置十六进制的。
22.如果s是int型变量,且s=6,则下面s%2+(s+1)%2表达式的值为___ _。
23.已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=’a’+4’的值为__ __。
24.数组与函数参数联系密切,当用数组元素作函数参数时,这是属于值传递;当数组名作为参数时,这是属于传递,对形参的改变可影响到实参。
25.利用“对象名.成员变量”形式访问的对象成员仅限于被声明为的成员;若要访问其他成员变量,需要通过函数或友元函数函数。
26.一个______和_______的关系,正如基本数据类型与该类型的变量一个。
27.类成员的默认访问方式是______.28.一个类有_____个构造函数,有_____析构函数。
29.类的_______成员函数不能对类中的非静态成员进行默认访问。
30.如果说明类B是类A的友元类,则类B的所有成员函数都是类A的______。
31.利用成员函数对二元运算符重载,其左操作数为,右操作数为。
32.类有两种用法:一种是类的实例化,即生成类的______ ;另一种是通过_______派生出新的类。
33.运算函数中的关键字是______,它和运算符一起组成该运算符函数的函数名。
34.如果一个类中有一个或多个纯虚函数,则这个类称为______。
35.文件的打开是通过通过使用类________的成员函数________来实现的。
36.设所有变量均为整型,则表达式(e=2,f=5,e++,f++,e+f)的值为____。
37.已知c的ASCII码为十进制数99,设k为字符型变量,则表达式k=‘c’+1的值为________。
38.函数的形参在未被调用之前分配空间,函数的形参的要和实参的相同。
39.类的成员分为数据成员和_______。
40.类完成了面向对象程序设计的_____特性。
三、单项选择题1.下面说法法中错误的是()A、C语言是C++的一个子集B、C语言和C++是兼容的C、C和C++都是面向对象的D、C++对C语言进行了一些改进2.函数没有返回值时,应该选择的函数类型是()A、 intB、 floatC、 voidD、任意类型3.在类定义的外部,可以被任意函数访问的成员是()A、所在类成员B、 private类成员C、 public类成员D、 protected类成员4.有关类的说法不正确的是()A、类是一种用户自定义的数据类型B、在类中,不做权限说明的数据变量是私有的C、在类中,不做权限说明的数据变量是公有的D、类的友元函数可以访问类的私有数据成员5.类的析构函数被调用的时刻是()A、释放对象B、引用对象C、创建类D、创建对象6.引入虚基类的目的是为了解决()A、静态联编问题B、二义性问题C、浅拷贝问题D、封装性问题7.关于this指针正确的说法是()A、 this指针必须显示说明B、友元函数拥有this指针C、当创建一个对象后,this指针就指向该对象D、静态成员函数拥有this指针8.下列中不能重载的运算符是()A、 [ ]B、 +C、 =D、 :9.派生类的的对象可以访问它的基类成员中的()A、公有继承的公有成员B、私有继承的公有成员C、公有继承的私有成员D、公有继承的保护成员10.定义模板的关键字是()A、 templateB、 classC、 staticD、 public11.面向对象程序设计着重于()的设计A、对象B、类C、算法D、代码12.如果一个函数的功能不太复杂,但要被频繁调用应选用()A、重载函数B、内联函数C、递归函数D、友元函数13.以下不属于类访问权限的是()A、privateB、 staticC、 publicD、 protected 14.有关类的说法不正确的是()A、类是一种用户自定义的数据类型B、在类中,不做权限说明的数据变量是公有的C、在类中,不做权限说明的数据变量是私有的D、可以不定义类的拷贝构造函数15.下面关于成员函数的说法中不正确的是()A、成员函数一定是内联函数B、成员函数可以重载C、成员函数可以无返回值D、成员函数可以设定参数的默认值16.下面关于构造函数的说法中不正确的是()A、构造函数可以有参数,所以也可以有返回值B、系统可以提供默认的构造函数C、一个类可以有多个构造函数D、构造函数可以设置默认参数17.关于this指针正确的说法是()A、 this指针必须显示说明B、友元函数拥有this指针C、当创建一个对象后,this指针就指向该对象D、静态成员函数拥有this指针18.对delete运算符的下列描述中,错误的是()A、用它可以释放用new运算符创建的对象和数组B、用它释放一个对象时,它作用于一个new所返回的指针C、用它可以一次释放多次用new运算符创建的多个对象D、用它释放一个对象数组时,它用的指针名前须加下标运算符19.可以访问类对象的私有数据成员的是()A、公有派生类的成员函数B、该类的友元类派生的成员函数C、其它类的公有函数D、该类的友元函数20.一个类的析构函数有()A、任意多个B、 4个C、 2个D、 1个21.C++源文件的扩展名为()。
A.cpp B.c C.txt D.exe22.在C++语言中,()的陈述是正确的。
A.能使用关键字并区分大小写 B.能使用关键字并不区分大小写C.不能使用关键字并区分大小写 D.不能使用关键字并不区分大小写23.运算符+、=、*、>=中,优先级最高的运算符是()。
A.+ B.= C.* D.>=24.下列不合法的变量名为()。
A.int B.int1 C.name_1 D.name025.已知x=43,ch=‘A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是()。
A.0 B.语法错 C.1 D.“假”26.以下不正确的是()。
A.语句for(i=0;;i++)表示无限循环 B.for(;;)表示无限循环C.for()也表示无限循环 D.while(1)表示无限循环27.在函数的返回值类型与返回值表达式的类型的描述中,错误的是()。
A.函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的B.函数返回值的类型就是返回值表达式的类型C.函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成返回值类型D.函数返回值类型决定了返回值表达式的类型28.如果一个函数无返回值,定义时它的函数类型应是()。
A.任意 B.int C.void D.无29.在C++语言中,关于参数默认值的描述正确的是()。
A.只能在函数定义时设置参数默认值B.设置参数默认值时,应当从右向左设置C.设置参数默认值时,应当全部设置D.设置参数默认值后,调用函数不能再对参数赋值30.若有以下定义,则说法错误的是( )。
int a=100,*p=&a ;A.声明变量p,其中*表示p是一个指针变量B.变量p经初始化,获得变量a的地址C.变量p只可以指向一个整形变量D.变量p的值为10031.列关于结构体的说法错误的是()。
A.结构体是由用户自定义的一种数据类型B.结构体中可设定若干个不同数据类型的成员C.结构体中成员的数据类型可以是另一个已定义的结构体D.在定义结构体时,可以为成员设置默认值32.下列有关类的说法不正确的是()。
A.? 对象是类的一个实例B.? 任何一个对象只能属于一个具体的类C.? 一个类只能有一个对象D.类与对象的关系和数据类型与变量的关系相似33.()的功能是对象进行初始化。
A.析构函数 B. 数据成员 C.构造函数 D.静态成员函数34.关于友元的描述中,()是错误的。