C++期末复习(选择、判断与填空)
期末C程序考试复习题答案
29、设有程序段
int a=8;
while(a=0) a++;
则下面描述正确的是( C )。
A、while循环执行10次 B、循环是无限循环
C、循环体一次也不执行 D、循环体只执行一次
C、ch=‘7’+‘9’ D、ch=7+9
2、以下4组用户定义标识符中,全部合法的一组是 (A ) 。
A、s_5 B、If C、txt D、int
about -max REAL k_2
24、下列形式的常数中,C程序不允许出现的是( D )。
A、 0.98 B、 6e4 C、 77.6e-2 D、 E8
25、分析以下程序:
void main( )
{ int x=5,a=0,b=0;
if(x=a+b) printf("** **\n");
( A )
A、1 0 B、0 1 C、非0 非0 D、1 1
22、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( C )。
[转] 期末C程序考试复习题答案(选择题和填空题) 转载自 万洪超 转载于2010年06月18日 16:37 阅读(2) 评论(0)
分类: 转转 举报
一、单选题:
1、已知ch是字符型变量,下面不正确的赋值语句是( B )。
A、ch=‘\0’ B、ch=‘a+b’
A、1 B、2 C、-1 D、-2
5、已知:int i=5;执行语句i+=++i;后,i的值是( C )
C语言程序设计期末复习题及答案(1)
5. n为整型,表达式n=1,n+2,n*5 的值是__5_______。
6. 已知:float x=8.53; 整形变量i=(int)x;则i=__8_____。
7. 已知:int x=5;语句y=x++*x++;执行完成后x=___7__,y=_25____。
int i, k, num;
gets(str1); gets(str2);
i=strlen(str1);
k=strlen(str2);
num=______? ____: ____;
printf("%d\n", num);
}
2. 下面程序是计算字符串中实际字符的个数,即实现和字符串处理函数strlen相同的功能,补充空白处的程序。
for (j=0;j<n-1-i;j++)
if (a[j]>a[j+1])
{c=a[j];a[j]=a[j+1];a[j+1]=c;}
}
2. 本题20分.总体程序完整性3分,结构体定义正确3分,结构体数组定义以及初始化正确6分,指针定义正确3分,输出判断正确3分,输出姓名地址2分。以下代码为参考代码,答案不唯一。
(B)在指针操作中,运算符“&”是取指针指向的对象的值。
(C)在指针操作中,运算符“*”的操作对象是一个地址。
(D)语句int *ip;定义了指针变量只能存放整型变量的地址。
14.判断字符串str1是否大于字符串str2,应当使用___d________。
(A)if (str1>str2)
C语言期末复习题
第一单元程序设计和C语言一、选择题1.C语言的基本构成单位是: A 。
A. 函数B. 函数和过程C. 超文本过程D. 子程序2.一个C语言程序总是从 B 开始执行。
A. 主过程B. 主函数C. 子程序D.主程序3.C语言的程序一行写不下时,可以。
A. 用逗号换行B. 用分号换行C. 在任意一空格处换行D. 用回车符换行4.以下叙述不正确的是: C 。
A. 在C程序中,语句之间必须要用分号";"分隔B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数C. 在C程序中,无论是整数还是实数都能正确无误地表示D. 在C程序中,%是只能用于整数运算的运算符5.以下不正确的C语言标识符是 D 。
A. ABCB. abcC. a_bcD. ab.c6.下列字符串是标识符的是: A 。
A. _HJB. 9_studentC. longD. LINE 17.以下说法中正确的是: C 。
A. C语言程序总是从第一个定义的函数开始执行B. 在C语言程序中,要调用的函数必须放在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分8.不合法的常量是: D 。
A. ‘\2’B. ""C. ‘3’D. ‘\483’9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是: A 。
int k,a,b;unsigned long w=5;double x=1.422;A. x%(-3)B. w+=-2C. k=(a=2,b=3,a+b)D. a+=a=+(b=4)*(a=3)10.在C语言中,字符型数据在内存中以 D 形式存放。
A. 原码B. BCD码C. 反码D. ASCII码11.若有定义:int a=7; float x=2.5; y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是: A 。
c语言期末复习试题附答案
c语言期末复习试题附答案一、选择题(每题2分,共20分)1. C语言中,下面哪个选项不是合法的数据类型?A. intB. floatC. doubleD. character答案:D2. 在C语言中,下面哪个选项是合法的变量名?A. 2abcB. abc12C. abc_12D. abc&12答案:B3. 下面哪个选项不是C语言的运算符?A. +C.D. %答案:D4. 在C语言中,下面哪个选项表示取模运算?A. %B. /C.D. ^答案:A5. 下面哪个选项是C语言中的关系运算符?A. ==B. !=C. >D. <答案:A、B、C、D6. 下面哪个选项是C语言中的逻辑运算符?B. ||C. !D. &答案:A、B、C7. 下面哪个选项是C语言中的赋值运算符?A. =B. +=C. -=D. =答案:A、B、C、D8. 下面哪个选项不是C语言中的控制语句?A. ifB. whileC. do-whileD. for答案:D9. 在C语言中,下面哪个选项表示循环不变量?A. 初始化表达式B. 循环条件C. 循环体D. 步进表达式答案:D10. 下面哪个选项是C语言中的递归调用?A. function(function());B. function();function();C. function(function());function();D. function();function(function());答案:A二、填空题(每题2分,共20分)1. C语言中,一个整型数据占____个字节。
答案:42. C语言中,一个浮点型数据占____个字节。
答案:43. 在C语言中,一元运算符“++”和“--”的优先级高于二元运算符“+”、“-”、“”、“/”、“%”。
答案:正确4. 在C语言中,关系运算符“==”和“!=”的优先级高于“<”、“>”、“<=”、“>=”。
普通物理C期末复习题
物理复习题(电磁学部分)一. 选择题:1. 电场强度 这一定义的适用范围是 ( D )(A ) 点电荷产生的电场 ; (B )静电场; (C )匀强电场; (D )任何电场。
不考2. 在SI 中,电场强度的量纲是 ( C ) (A )11--MLT I (B )21--MLT I (C )31--MLT I(D )3-IMLT3. 在带电量为+q 的金属球的电场中,为测量某点的场强E ,在该点放一带电电为的检验电荷,电荷受力大小为F ,则该点电场强度E 的大小满足 ( A )(A ) (B )(D ) (D )E 不确定4. 在场强为E 的匀强电场中,有一个半径为R 的半球面,若电场强度E 的方向与半球面的对称轴平行,则通过这个半球面的电通量的大小为( A )(A )πR 2E ; (B )2πR 2E ;(C );22E R π (D )E R 221π。
5. 边长为a 的正方体中心放置一个电荷Q ,通过一个侧面的电能量为 ( D )(A ) (B )(C) (D )6. 真空中两块互相平行的无限大均匀带电平板,其面电荷密度分别为σ+和σ2+,两板间距离为d ,两板间电势差为 ( C )此题看选项结果,有些同学的题目C 和D 位置不同(A )0 (B )(C) (D)不考7. 两个载有相等电流I 的圆线圈,一个处于水平位置,一个处于竖直位置,如图所示。
在圆心O 处的磁感强度的大小是 ( C )q F E =3q+q F E 3=qFE 3〉qF E 3〈04πεQ 02πεQd 023εσd 02εσd 0εσ0πεQ 06εQ(A ) 0 (B ) (C )(D )8. 如图所示,载流导线在圆 心O 处的磁感强度的大小为 ( D )104(A)R I u 204(B )R I u ⎪⎪⎭⎫ ⎝⎛+210114(C )R R I u ⎪⎪⎭⎫⎝⎛-210114(D )R R I u 9. 四条互相平行的载流长直导线中的电流均为I ,如图示放置。
中国石油大学《C语言程序的设计》期末复习试题与答案
《C语言程序设计》期末复习题一、选择题1.能将高级语言编写的源程序转换成目标程序的是()A.程序 B. 解释程序 C. 编译程序 D.编辑程序2.设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是()。
A. 10<a<15B. a==11||a==12||a==13||a==14C. a>10&&a<15D.!(a<=10)&&!(a>=15)3.当调用函数时,实参是一个数组名,则向函数传送的是( )。
A. 数组的长度B. 数组的首地址C. 数组每一个元素的地址D. 数组每个元素中的值4.执行下面的程序段后,k的值是()int k=1,n=325;do { k*=n%10;n/=10;}while(n);A. 3B. 30C. 523D. 3255.若有以下数组说明,则i=6;a[a[i]]元素数值是()。
int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};A.3B.8C.6D.56.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是()A. for(i=1,p=1;i<=5;i++) p*=i;B. for(i=1;i<=5;i++){ p=1; p*=i;}C. i=1;p=1;while(i<=5){p*=i; i++;}D. i=1;p=1;do{p*=i; i++; }while(i<=5);7.若有:int a[][3]={{1,2,3},{4,5},{6,7},{8}}; 则数组a的第一维的大小为: ( ) A. 12 B. 3 C. 4 D.无确定值8.设有如下程序段,则执行p=s;语句后,以下叙述正确的是( )。
char s[20]= “Bejing”,*p;p=s;A.可以用*p表示s[0]B.s数组中元素的个数和p所指字符串长度相等C.s和p都是指针变量D.数组s中的容和指针变量p中的容相等9.以下正确的函数定义是( )。
[新]C语言期末复习,经典练习题+知识点总结+模拟考题。三位一体,完胜c语言!!!!{考期必备神器}
C语言期末复习(平时练习答案)[特别适用于千千万北航学子]考试重点:(编程题)排序,选择与冒泡排序,,各种进制转换。
]第二次大作业—前驱、后继字符1. 【问题描述】从键盘输入一个字符,求出它的前驱和后继字符(按照ASCII码值排序),并按照从小到大的顺序输出这三个字符和对应的ASCII值。
【输入形式】从键盘输入一个字符【输出形式】按两行输出:第一行按照从小到大的顺序输出这三个字符,并以一个空格隔开;第二行按照从小到大的顺序输出三个字符对应的ASCII 值,并以一个空格隔开。
【输入样例】 b 【输出样例】 a b c 97 98 99 【样例说明】输入字符b,b的前驱字符是a,后继字符是c,第一行按照从小到大的顺序输出a b c;第二行输出对应的ASCII值97 98 99 【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:c0103.c。
//*从键盘输入一个字符,求出它的前驱和后继字符(按照ASCII码值排序),并按照从小到大的顺序输出这三个字符和对应的ASCII值。
*//#include<stdio.h>int main(){char c=" ";printf("Input a number:");scanf("%c",&c); //*从键盘输入一个字符*//printf(" %c %c %c\n",c-1,c,c+1);//*第一行按照从小到大的顺序输出这三个字符,并以一个空格隔开*//printf(" %d %d %d", c-1,c,c+1);//*第二行按照从小到大的顺序输出三个字符对应的ASCII值,并以一个空格隔开。
*//return 0;}当前编程题:第二次大作业---数值变换2. 【问题描述】编写一程序,从键盘输入输入一个三位正整数,然后反向输出对应的数,如果输入的数不是三位正整数,则输出-1。
C语言 期末复习
第一章
1)合法的用户标识符由字母,数字,下划线组成。并且 第一个必须为字母或则是下划线。关键字不可以作为用户 标识符号。main define scanf printf 都是关键字。 If是可以做为用户标识符。因为If中的第一个字母大写了 ,所以不是关键字。 2)实型数据的合法形式:
2.333e-1 就是合法的,且数据是2.333×10-1。 考试口诀:e前e后必有数,e后必为整数。
一个=表赋值,==表判断
• printf输出语句(“ %d%f%ld%lf ”,a,b,c,d);
int float long double
•}
函数调用
• int ss(int a,int b[],int *q) •{
•} • main() •{ • int x,s[10],y; • ss(x,s,&y);
B. 3
C. 4
D. 6
• 69.若已定义 int x=-16,y=-12,z; 语句z=x<=y; 运行后z的值为(
)。
B
A..t.
B. 1
C. .f.
D. 0
• 71. 若定义 int a=2,b=3; 则表达式 !a||b 的值为( )。
A. 0
B. 1
C. 2
D. 3 B
•
73. 下列表达式( 数。
)。 B
A.10
B. 0
C. 34
D. 24
• 46.若已定义 int a=3,b=2,c=1; 则语句 ++a||++b&&++c; 运行后b 的值为( C )。
A. 0
B. 3
C. 1
D. 2
c语言期末复习试卷
复习题(一)1。
用高级语言编写的源程序必须通过___________程序翻译成二进制程序才能执行,这个二进制程序称为____________程序。
【答案】编译目标2。
下列符号串中,属于C语言合法标识符的是()①else ②a-2 ③_00 ④00【答案】③3.下列说法中,正确的是()①主函数名是由程序设计人员按照“标识符”的规则选取的②分号和回车符号都可以作为一个语句的结束符号③在程序清单的任何地方都可以插入一个或多个空格符号④程序的执行,总是从源程序清单的第1行开始【答案】③4.-12345E-3代表的十进制实数是________________________.【答案】—12.3455.设字符型变量ch中存放字符“A”,则执行“ch+++2”后,ch中的字符是________。
【答案】B6.设字符型变量ch1中存放的字符是“A",字符型变量ch2中存放的字符是“B”,则执行“!(ch1=’B')&&(ch2='C')”的运算后,变量ch2中的字符是_____________.【答案】B6-1.设整型变量m,n,a,b,c,d均为1,执行“(m=a〉b)&&(n=a>b)”后m,n 的值是()①0,0 ②0,l ③1,0 ④1 ,l【答案】②。
7.设整型变量x1和x2的值均为10,则表达式“x1/=x2-4”的值是_______________. 【答案】l8.在C语言中,如果某个关系表达式成立(真),则该关系表达式的值是____;如果某个逻辑表达式为假,则该逻辑表达式的值是_________.【答案】1 09.设有整型变量x,如果表达式“!x”值为0,则x的值为_________;如果表达式“!x"值为1,则x的值为___________。
【答案】非010.下列表达式中,不属于逗号表达式的是()①a=b,c ②a,b=c ③a=(b,c) ④a,(b=c)【答案】③11.在三种选择结构中,能用2个条件,控制从3个操作中选择一个操作执行的选择结构是______选择结构【答案】多分支12.在三种循环结构中,先执行循环操作内容(即循环体),后判断控制循环条件的循环结构是______循环结构。
《C程序设计》期末复习练习题及参考答案(3)
《C程序设计》期末复习练习题及参考答案(3)《C程序设计》期末复习练习题及参考答案(3)一、单项选择题1.若有定义int (*p)[4],则标识符p是一个。
A)指向整型变量的指针变量B)指向函数的指针变量√C)指向有四个整型元素的一维数组的指针变量D)指针数组名,有四个元素,每个元素均为一个指向整型变量的指针2.下列对字符串的定义中,错误的是:。
√A) char str[7] = "FORTRAN";B) char str[] = "FORTRAN";C) char *str = "FORTRAN";D) char str[] = {'F','O','R','T','R','A','N',0};3.针对下面程序段,下面哪些说法是正确的?#include <stdio.h>void Swap(int *x, int *y);main()1{ int a, b;a = 5;b = 9;Swap(&a, &b);printf("a=%d,b=%d",a,b);}void Swap(int *x, int *y){ int *pTemp;*pTemp = *x;*x = *y;*y = *pTemp;}A) 程序运行结果为乱码;B) 程序运行后将导致程序崩溃;C) 程序编译时出错导致程序无法运行;√ D) 程序执行了危险的操作;4.已知学生记录描述为:struct student{ int no;char name[20];char sex;struct{ int year;char month[15];2int day;}birth;};struct student s;设变量s中的生日是1984年11月11日,下列对生日的正确赋值方式是_____A) s.birth.year = 1984; s.birth.month = "11"; s.birth.day = 11;B) s.birth.year = 1984; s.birth.month = 11; s.birth.day = 11;√ C) s.birth.year = 1984; strcpy(s.birth.month, "11"); s.birth.day = 11;D) s.birth.year = 1984; strcpy(s.birth.month, 11); s.birth.day = 11;5. 要使下面程序的输出1, 2, 34,则从键盘输入的数据格式应为。
C语言期末复习题(填空选择判断题)
一、单选题:1、已知ch是字符型变量,下面不正确的赋值语句是( B )。
A、ch=‘\0’B、ch=‘a+b’C、ch=‘7’+‘9’D、ch=7+92、以下4组用户定义标识符中,全部合法的一组是(A )。
A、s_5B、IfC、txtD、intabout -max REALk_2E2 turbo 3COM_0013、C语言中的简单数据类型包括( B )A、整型、实型、逻辑型B、整型、实型、字符型、枚举型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型4、已知:int i=1,j;执行语句j=-i++;后,j的值是(C )A、1B、2C、-1D、-25、已知:int i=5;执行语句i+=++i;后,i的值是( C )A、10B、11C、12D、A、B、C答案都不对7、若x为int型变量, x=6;则执行以下语句后,x的值为( C )。
x+=x-=x*x;A、 36B、 60C、- 60D、-248、设d为字符变量,下列表达式不正确的是( D )。
A、d=’g’B、d=’a’C、d=97D、d=”g”9、若a=1,b=2,c=3,d=4;则条件表达式 a>b?a:c<d?c:d结果为( B )A、4B、3C、2D、110、printf函数中用到格式符"%8s",其中数字8表示输出的字符串占用8列。
如果字符串长度大于8,则按原字符长从左向右全部输出;如果字符串长度小于8,则输出方式为( B )。
A、从左起输出该字符串,右补空格B、右对齐输出该字符,左补空格C、按原字符长从左向右全部输出D、输出错误信息11、在嵌套的if-else语句中,else总是与( D )配对。
A、其之前最近的ifB、第一个ifC、缩进位置相同的ifD、其之前最近的且不带else的if12、一个C语言程序总是从( B )开始执行。
A、程序的第一个函数B、主函数C、子函数D、主程序13、设x=2.9,a=8,y=3.7,算术表达式x+a%3*(int)(x+y)%5/2的值是 ( A )A、3.9B、4C、4.2D、3.7514、程序片段执行后输出结果是 ( A )int x=5, y=8;printf ("% d", x<y ? x : (x, y));A、5B、8C、5,8D、编译出错15、下面能正确表示变量a在区间[0,8]或(4,10)内的表达式为:( D )。
C语言期末复习题答案
C语言期末复习题答案基本数据类型一、选择题1.下列数据中,不正确的数值或字符常量是()。
A.0.825e2 B.5LC.0xabcd D. o132.以下字符中,不正确的C语言转义字符是()。
A.'\\\\'B.'\\018' C.'\\xaa' D.'\\t'3.已知大写字母A的A SCII码值是65,小写字母a的A SCII码是97,则用八进制表示的字符常量'\\101'是()。
A.字符A A.10110BB.字符a B.0386C.字符e C.0XffaD.非法的常量 D.x2a2//p184.以下选项中可作为C语言合法整数的是()。
5.以下符合C语言语法的实型常量是()。
A.1.2E0.5 B.3.14.159E C..5E-3 D.E15 A.ch='\\'; B.ch=62+3; C.ch=NULL; D.ch='\\xaa'; 7.已定义c为字符型变量,则下列赋值中正确的是()。
A.c='97'; B.c=\C.c=97; D.c=\8.C语言中最基本的数据类型包括( )。
A.整型、实型、逻辑型 B.整型、实型、字符型 //P14图2.1 C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型 9.在C语言中,合法的字符常量是( )。
A. . '\\084' B. '\\x43' C. 'ab' D. \10.已知在ASCII代码中,字母A的序号为65,以下程序的输出结果是( )。
#include main( ){char c1='A ', c2='Y '; printf(\%d,%d\\n\A.输出格式非法,输出错误信息 B.65, 90 C.A, Y D.65, 89 二、填空题1.C语言中,常量包括_整型常量、_实型常量_、字符型常量__和_字符串常量__。
c语言期末考试题库完整
c语言期末考试题库完整一. 填空题1. C语言中,______是一种具有特殊含义的标识符,比如main、if、for等。
2. 在C语言中,使用______关键字定义函数。
3. 在C语言中,______是一种数据类型用来存储字符。
4. C语言中,______操作符可用于将一个值赋给变量。
5. ______是C语言中用来处理条件判断的控制结构。
6. C语言中,______和______是用来循环执行一段代码的控制结构。
7. 在C语言中,使用______关键字定义结构体类型。
二. 选择题1. 下列哪个是C语言的基本数据类型?a) stringb) floatc) booleand) character2. 在C语言中,下列输出语句的结果是什么?printf("%d", 10/3);a) 3.33b) 3c) 3.0d) 03. 在C语言中,下列循环结构中,哪个适合用于已知循环次数的情况?a) for循环b) while循环c) do-while循环d) switch循环4. 在C语言中,下列常用的逻辑运算符中,哪个用于实现逻辑与操作?a) &&b) ||c) !d) |5. 下列关于指针的描述中,正确的是:a) 指针是一种数据类型,用于存储变量的地址。
b) 指针只能指向整型变量。
c) 指针无法修改所指向变量的值。
d) 指针的声明必须包含地址运算符(*)三. 简答题1. 请简要介绍C语言的基本数据类型,包括其名称和用途。
2. 请解释C语言中的条件语句if-else的使用方法,并提供一个示例代码。
3. 请解释C语言中的循环结构for的使用方法,并提供一个示例代码。
4. 请解释C语言中的数组的概念,并提供一个示例代码。
5. 请解释C语言中的结构体的概念,并提供一个示例代码。
四. 编程题请编写一个C语言程序,实现以下功能:- 定义一个结构体,包含学生的姓名(字符串类型)、年龄(整型)和成绩(浮点型)。
C语言期末复习填空题部分(含答案)
C语言期末复习填空题部分(含答案)work Information Technology Company.2020YEAR期末复习填空题部分一、填空题1 设x为int型变量,写出描述“x是偶数与y是奇数”的表达式是 x%2==0 && y%2==1 。
2 以下程序的输出结果是 -27 。
#include<stdio.h>void main(){ char c;c=0345;printf("%d\n",c);}3 设有语句int a=3;,则执行了语句 a+=a-=a*a后,变量a的值是 -12 。
4 若float x;以下程序段的输出结果是 5.142000x=3.1415926;printf("%f\n",(int)(x*1000+0.5)/(float)1000);5 下面的程序运行时从键盘上输入1234567890<回车>,程序的输出结果是a=123,b=456.0,c=789。
#include<stdio.h>void main(){int a;float b,c;scanf("%3d%3f%3f",&a,&b,&c);printf("a=%d,b=%.1f,c=%.0f",a,b,c);}6 若输入字符串:abcdefg<回车>,则以下while循环体将执行 0 次。
while((ch=getchar())=='g') printf("*");7 下面程序的输出结果是_67,D__。
main(){ char ch1,ch2;ch1='A'+'5'-'3'; ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}8 执行下面的语句:printf("%d\n",(a=3*5,a*4,a+5));,输出是 20 。
C++期末复习(选择、判断与填空)
C++期末复习(选择、判断与填空)一、单项选择1、在C++ 中,函数原型不能标识( D )A、函数的返回类型B、函数参数的个数C、函数参数类型D、函数的功能2、在C++ 程序中,对象之间的相互通信通过( B )A、继承实现B、调用成员函数实现C、封装实现D、函数重载实现3、对于任意一个类,析构函数的个数最多为( B )A、0B、1C、2D、34、下面函数模板定义中不正确的是(A )A、t emplate<class Q>B、t emplate<class Q>Q F(Q x){ Q F(Q x){return Q+x; return x+x;} }C、t emplate<class T>D、t emplate<class T>T F(T x){ T F(T x){return x*x; return x>1;} }5、友元关系不能( A )A、继承B、是类与类的关系C、是一个类的成员函数与另一个类的关系D、提高程序的运行效率6、下面说法正确的是( B )A、内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B、内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C、类的内联函数必须在类体内定义D、类的内联函数必须在类体外通过加关键字inline 定义7、可以用p.a 的形式访问派生类对象p 的基类成员a ,其中a 是( D )A、私有继承的公有成员B、公有继承的私有成员C、公有继承的保护成员D、公有继承的公有成员8、在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( C )A、派生类的对象可以赋给基类的对象B、派生类的对象可以初始化基类的引用C、派生类的对象可以直接访问基类中的成员D、派生类的对象的地址可以赋给指向基类的指针9、对于类定义class A{public:virtual void func1( ){ }void func2( ){ }};class B:public A{public:void func1( ){cout<< ″class B func 1 ″<<end1;}virtual void func2( ){cout<< ″class B func 2 ″<<end1;}};下面正确的叙述是( C )A、A::func2( ) 和B::func1( ) 都是虚函数B、A::func2( ) 和B::func1( ) 都不是虚函数C、B::func1( ) 是虚函数,而A::func2( ) 不是虚函数D、B::func1( ) 不是虚函数,而A::func2( ) 是虚函数10、继承的情况下,基类成员在派生类中的访问权限( A)A、受限制B、保持不变C、受保护D、不受保护11、通过( A )调用虚函数时,采用动态束定。
《VC程序设计》期末复习题集(学生用)
《VC程序设计》期末复习题集(学生用)《程序设计(VC++)》考试试卷一选择题(在A、B、C、D中选择一个正确的,每题1分,共30分。
用答题纸答题,二、填空题(每个空格1分,共30分。
请将答案填写在答题纸的相应答题号内,每个答案只占一行)●基本概念题,共5分1.执行语句cout<2.用new运算符申请动态对象时,系统将自动调用该对象的构造函数。
3.定义内联函数的方法是在函数的返回值类型之前增加关键字inline4.在多重继承时,若欲使公共基类只在派生类中产生一个拷贝,则应在派生类中将该基类用关键字virtual5.在C++的I/O流类库中,预定义了4个流,即cin、cout、cerr和clog,其中cerr和clog不可重定向。
●阅读程序题,共13分6.[程序](2分)#includeintm[3][3]={{1},{2},{3}},n[3][3]={1,2,3};voidmain(void){cout<7.[程序](2分)#includeintf(char某){char某p=;while(某p)p++;returnp-;}voidmain(void){cout<程序的输出是6,函数f的功能是求字符串的长度8.[程序](2分)#includevoidf(int某){taticintj;do{[j]+=[j+1];}while(++j<2);}voidmain(void){intk,a[10]={1,2,3,4,5};for(f(a),k=0;k<5;k++)cout<程序输出的第一行是35345,程序输出的第二行是357459.[程序](3分)#includeintk=1;voidf(intm){m+=k;k+=m;{chark=B;cout<<k-A<voidmain(void){inti=4;f(i);cout<程序的输出第一行是1,第二行是5,6,第三行是4,610.[程序](2分)#includeclaA{protected:int某;public:int&Acce(){return某;}};claB{protected:int某;public:int&Acce(){return某;}};claC:publicA,publicB{inty;public:C(inta,intb,intc){A::某=a;B::某=b;y=c;}int&Accey(){returny;}};claD:publicC{intz;public:D(inta,intb,intc,intd):C(a,b,c){z=d ;}int&Accez(){returnz;}};共7页,第1页。
C语言考点重点复习资料
"%d%d%d"是按十进值格式输入三个整数值。 输入时, 在两个数据之间可以用一个或多个空格、 tab 键、回车键分隔。
8、二维数组定义时下标值缺省的规则。 9、printf 函数输出数据时总长度和小数位数的确定。12d 10、指向数组的指针灵活运用的问题。(例如:已知:char s[10] ,*p=s;下列 错误的表达式是:s=p+5 p=s+5 s[2]=p[3] *p=s[0]) 11、自增自减运算符“先用后增减,先增减后用”的问题。 12、字符串复制函数和字符数组(串)长度的概念和运用。(例如:satic char str[ ]=”bei jing” ;则执行下列语句后的输出结果为? printf(“%d\n”,strlen(strcpy(str,”hello!”))); 另外:char a[]=”abcde”,b[]={a’,’b’,’c’,’d’,’e’};中 a 与 b 的区别和联系。
{t=a;a=b;b=t;}{a+=b;b=a-b;a-=b;}
32、编写求出矩阵 a 的主对角线上的元素之和的程序。 main( ) { int a[3][3]={1,3,5,7,9,11,13,15,17},sum=0,i,j; for (i=0;i<3;i++) for(j=0;j<3;j++) if(i==j) sum=sum+( a[i][j]); printf("sum=%d\n",sum); } 33、以下程序的运行结果是? main( ) { increment( ); increment( ); increment( ); } increment( ) { static int x=0; x+=2; printf("%d",x); } 非常重要,自行分析! 34、以下程序的运行结果是? void main ( ) { static int a[10],i; for (i=0;i<10;i++) a[i]=i+1; for (i=0;i<10;i=i+2) printf(“%d”,*(a+i)); } 非常重要,自行分析! 35、编写程序输出所有大写字母和其对应的 ASCII 码值。 程序填空,有 1 处,非常简单,但也要注意! 36、编写程序将一个字符串 S 的内容颠倒过来。 程序填空,有 2 处,例如:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++期末复习(选择、判断与填空)一、单项选择1、在C++ 中,函数原型不能标识( D )A、函数的返回类型B、函数参数的个数C、函数参数类型D、函数的功能2、在C++ 程序中,对象之间的相互通信通过( B )A、继承实现B、调用成员函数实现C、封装实现D、函数重载实现3、对于任意一个类,析构函数的个数最多为( B )A、0B、1C、2D、34、下面函数模板定义中不正确的是(A )A、t emplate<class Q>B、t emplate<class Q>Q F(Q x){ Q F(Q x){return Q+x; return x+x;} }C、t emplate<class T>D、t emplate<class T>T F(T x){ T F(T x){return x*x; return x>1;} }5、友元关系不能( A )A、继承B、是类与类的关系C、是一个类的成员函数与另一个类的关系D、提高程序的运行效率6、下面说法正确的是( B )A、内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B、内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C、类的内联函数必须在类体内定义D、类的内联函数必须在类体外通过加关键字inline 定义7、可以用p.a 的形式访问派生类对象p 的基类成员a ,其中a 是( D )A、私有继承的公有成员B、公有继承的私有成员C、公有继承的保护成员D、公有继承的公有成员8、在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( C )A、派生类的对象可以赋给基类的对象B、派生类的对象可以初始化基类的引用C、派生类的对象可以直接访问基类中的成员D、派生类的对象的地址可以赋给指向基类的指针9、对于类定义class A{public:virtual void func1( ){ }void func2( ){ }};class B:public A{public:void func1( ){cout<< ″class B func 1 ″<<end1;}virtual void func2( ){cout<< ″class B func 2 ″<<end1;}};下面正确的叙述是( C )A、A::func2( ) 和B::func1( ) 都是虚函数B、A::func2( ) 和B::func1( ) 都不是虚函数C、B::func1( ) 是虚函数,而A::func2( ) 不是虚函数D、B::func1( ) 不是虚函数,而A::func2( ) 是虚函数10、继承的情况下,基类成员在派生类中的访问权限( A)A、受限制B、保持不变C、受保护D、不受保护11、通过( A )调用虚函数时,采用动态束定。
A、对象指针B、对象名C、成员名限定D、派生类名12、.在int a=3,*p=&a;中,*p的值是( D )A、变量a的地址值B、无意义C、变量p的地址值D、313、C++类体系中,不能被派生类继承的有( B )A、转换函数B、构造函数C、虚函数D、静态成员函数14、假定一个类的构造函数为A(int aa,int bb){a=aa--;b=a*bb--;},则执行A x(4,5);语句后,x.a和x.b的值分别为( C )A、4和5B、5和4C、4和20D、20和515、C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( D)A、增加了一些新的运算符B、允许函数重载,并允许设置缺省参数C、规定函数说明符必须用原型D、引进了类和对象的概念16、下列符号不能组成标识符的是( A )A、连接符B、下划线C、大小写字母D、数字字符17、复制构造函数的形参是( C )。
A、某个对象名B、某个对象的成员名C、某个对象的引用名D、某个对象的指针名18、一个函数功能不太复杂,但要求被频繁调用,选用( A )A、内联函数B、重载函数C、递归函数D、嵌套函数19、下列不是描述类的成员函数的是( C)A、构造函数B、析构函数C、友元函数D、拷贝构造函数20、C++语言中所有在函数中定义的变量,连同形式参数,都属于( B )A、全局变量B、局部变量C、静态变量D、函数21、定义新类是通过( C)实现的。
A、信息隐藏B、数据封装C、继承机制D、数据抽象22、下面有关类说法不正确的是( C)A、一个类可以有多个构造函数B、一个类只有一个析构函数C、析构函数需要指定参数D、在一个类中可以说明具有类类型的数据成员23、派生类的对象只能对它的( A )是可访问的。
A、公有继承的公有成员B、公有继承的私有成员C、公有继承的保护成员D、私有继承的保护成员24、下列不能作为类的成员的是( B )A、自身类对象的指针B、自身类对象C、自身类对象的引用D、另一个类的对象25、如果一个类至少有一个纯虚函数,那么就称该类为( A)A 抽象类B 虚基类C 派生类D 以上都不对26、在派生类中重新定义虚函数时必须在( A )方面与基类保持一致。
A、参数类型B、参数名字C、操作内容D、赋值27、下列静态数据成员的特性中,( C)是错误的。
A、说明静态数据成员时前边要加修饰符static;B、静态数据成员要在类体外进行初始化;C、静态数据成员不是所有对象所共用的;D、引用静态数据成员时,要在其名称前加<类名>和作用域运算符;28、关于new运算符的下列描述中,( D)是错误的。
A、它可以用来动态创建对象和对象数组;B、使用它创建的对象或对象数组可以使用运算符delete删除;C、使用它创建对象时要调用构造函数;D、使用它创建对象数组时必须指定初始值;29、( D)是析构函数的特征。
A、析构函数可以有一个或多个参数;B、析构函数名与类名不同;C、析构函数的定义只能在类体内;D、一个类中只能定义一个析构函数;30、假定AB为一个类,则执行AB x;语句时将自动调用该类的(B )A、有参构造函数B、无参构造函数C、拷贝构造函数D、赋值重载函数31、C++语言建立类族是通过( B )A、类的嵌套B、类的继承C、虚函数D、抽象类32、静态成员函数不能说明为(C)A、整型函数B、浮点函数C、虚函数D、字符型函数33、在C++中,数据封装要解决的问题是(D)A、数据规范化排列B、数据高速转换C、避免数据丢失D、切断了不同模块之间的数据的非法使用34、在C++中有下列4条语句:int hot = 100;int &rsd = hot;hot = hot + 100;cout<<rsd<<endl;执行这4条语句后输出为(C)A、0B、100C、200D、30035、如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为(C)A、publicB、protectedC、privateD、static36、设置虚基类的目的是(A)A、消除两义性B、简化程序C、提高运行效率D、减少目标代码37、实现运行时的多态性用(D)A、重载函数B、构造函数C、析构函数D、虚函数38、下列特性中,C 与C++ 共有的是( D )A、继承B、封装C、多态性D、函数定义不能嵌套39、通常情况下,函数模板中的类型参数个数不能是( A )A、0B、2C、4D、340、在下列成对的表达式中,运算符“+ ”的意义不相同的一对是( C )A、5.0+2.0 和5.0+2B、5.0+2.0 和5+2.0C、5.0+2.0 和5+2D、5+2.0 和5.0+241、类的指针成员的初始化是通过函数完成的,这个函数通常是( B )A、析构函数B、构造函数C、其它成员函数D、友元函数42、要禁止修改指针p 本身,又要禁止修改p 所指向的数据,这样的指针应定义为( D )A、const char *p= “ABCD ”;B、char const *p= “ABCD ”;C、char *const p= “ABCD ”;D、const char * const p= “ABCD ”;43、静态成员函数没有( B )A、返回值B、this 指针C、指针参数D、返回类型44、当一个类的某个函数被说明为virtual 时,该函数在该类的所有派生类中( A )A、都是虚函数B、只有被重新说明为virtual 时才是虚函数C、都不是虚函数D、只有被重新说明时才是虚函数45、下面叙述不正确的是( D )A、派生类一般都用公有派生B、对基类成员的访问必须是无二义性的C、赋值兼容规则也适用于多重继承的组合D、基类的公有成员在派生类中仍然是公有的46、在C++ 中实现封装是借助于( B )A、枚举B、类C、数组D、函数47、局部变量可以隐藏全局变量,那么在有同名全局变量和局部变量的情形时,可以用(A)提供对全局变量的访问。
A 域运算符B 类运算符C 重载D 引用48、( C )是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。
A、虚析构函数B、虚构造函数C、纯虚函数D、静态成员函数49、对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行( B ),再执行( A ),后执行( C )。
A 成员对象的构造函数B 基类的构造函数C派生类本身的构造函数50、静态成员函数仅能访问( D)。
A、静态的数据成员B、非静态的成员函数C、非静态的数据成员D、以上都不对51、102、类模板的使用实际上是将类模板实例化成一个具体的( A )A、类B、对象C、函数D、模板类52、下列关于指针的操作中,错误的是( D)A、两个同类型的指针可以进行比较运算B、可以用一个空指针赋给某个指针C、一个指针可以加上两个整数之差D、两个同类型的指针可以相加53、关于虚函数的描述中,(C)是正确的。
A、虚函数是一个static类型的成员函数B、虚函数是一个非成员函数C、基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数D、派生类的虚函数与基类的虚函数具有不同的参数个数和类型54、系统在调用重载函数时,往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是(D)A 、参数个数B、参数的类型C、函数名称D、函数的类型55、友元的作用(A)A、提高程序的运行效率B、加强类的封装性C、实现数据的隐藏性D、增加成员函数的种类56、构造函数不具备的特征的是( D)A、构造函数的函数名与类名相同B、构造函数可以重载C、构造函数可以设置默认参数D、构造函数必须指定类型说明57、已知:print( )函数是一个类的常成员函数,它无返回值,下列表示中,(A)是正确的。