C++测试题

合集下载

c语言测试题目及答案

c语言测试题目及答案

c语言测试题目及答案一、选择题(每题2分,共20分)1. 下列哪个关键字不是C语言的控制语句?A. ifB. switchC. whileD. loop答案:D2. C语言中,一个整型变量int占用的字节数是多少?A. 1B. 2C. 4D. 8答案:C3. 在C语言中,以下哪个运算符用于计算两个数的乘方?A. *B. /C. ^D. %答案:C4. 下列哪个函数用于计算一个数的绝对值?A. abs()B. max()C. min()D. pow()答案:A5. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. {"Hello World"}D. ["Hello World"]答案:A6. 在C语言中,以下哪个是正确的数组声明?A. int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};D. int array[10] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;答案:B7. 在C语言中,以下哪个是正确的函数声明?A. void myFunction(int x, int y);B. int myFunction();C. void myFunction(int x, int y) {}D. int myFunction(int x, int y);答案:A8. 在C语言中,以下哪个是正确的递归函数调用?A. func(5);B. func(func(5));C. func(func(5, 3));D. func(5, 3);答案:B9. 下列哪个是C语言中合法的变量名?A. 2variableB. variable-nameC. variable#nameD. variable_name答案:D10. 在C语言中,以下哪个是正确的结构体声明?A. struct Person { int age; char name[50]; };B. struct { int age; char name[50]; };C. Person { int age; char name[50]; };D. Person struct { int age; char name[50]; };答案:A二、填空题(每空2分,共20分)1. C语言中,用于定义一个函数的关键字是________。

C语言测试题及答案

C语言测试题及答案

C语言测试题及答案一、单选题(每题3分)1、下列语言不属于计算机语言的是()A、机器语言B 、汇编语言C 、高级语言D、低级语言(正确答案)2、下列不属于C 语言的特点的是()A、是一种结构化语言B、表现能力和处理能力较差(正确答案)C 、效率高,移植性强D、可直接访问内存物理地址3、C 语言程序能够在不同的操作系统下运行,这说明其具有良好的()A 、兼容性B、操作性C 、适应性D、移植性(正确答案)4、下列关于C语言的说法,正确的是()A、C语言比其他语言高级B 、C语言源程序可以直接被计算机执行C 、C语言出现最晚,各方面优于其他语言D 、C语言是用接近人们习惯的自然语言和数学语言作为语言的表达形式(正确答案)5、以下不是C 语言中的关键字的是()A 、elseB 、shortC、true(正确答案)D 、void6、C 程序经过编译、链接后生成的可执行文件的扩展名是()A 、.cB 、.objC、.exe(正确答案)D 、.syS7、把高级语言编写的源程序转换为目标程序,需要使用()A、驱动程序B、编辑程序C、诊断程序D、编译程序(正确答案)8、C 语言程序的执行,总是起始于()A、程序中的第一条可执行语句B、程序中的第一个函数C、main()函数(正确答案)D、包含文件中的第一个函数9、以下叙述中,正确的是()A、语句是构成(正确答案)C程序的基本单位B 、一个函数可以没有参数C 、main() 函数必须放在其他函数之前D、所有被调用的函数一定要在调用之前进行定义10、构成C语言程序的基本单位是()A 、语句B、函数(正确答案)C 、过程D 、复合语句11、计算机能直接识别的语言是()A 、机器语言(正确答案)B 、汇编语言C 、C语言D 、高级语言12、下列说法错误的是()A 、C程序中的每条语句都用分号作为结束符B 、C程序中的每条命令都用分号作为结束符(正确答案)C、C 程序中的变量遵循先定义,后使用的原则D 、C程序一般以小写字母书写,并且区分大小写13、下面有关C程序的说法中,正确的是()A 、C程序由符号构成B、C 程序由标识符构成C 、C程序由函数构成(正确答案)D 、C程序由C语句构成14、C语言中所有的关键字必须()A、小写(正确答案)B、大写C 、大小写均可D 、C语言中没有保留字15、在结构化程序中应尽量避免使用的语句是()A 、whileB 、do……whileC 、forD 、goto(正确答案)16、下列是C 语言的关键字是()A 、bacB 、IntC、char(正确答案)D 、Printf17、在每一个C程序中都必须包含的函数是()A 、nameB、main(正确答案)C 、MainD 、function18、以下叙述中,正确的是()A、花括号{}只能作为函数体的定界符B 、分号是C语句之间的分隔符,不是语句的一部分C 、C程序中注释部分可以出现在程序中任意合适的地方(正确答案)D、构成C程序的基本单位是函数,所有函数的命名都可以由用户命名19、以下选项中不属于C语言的数据类型的是()A 、signed short intB 、unsigned long intC 、unsigned intD 、long short(正确答案)20、下列能实现换行功能的格式符为()A 、”\t’B、’\n’(正确答案)C 、’\a'D 、’\k’21、下列不正确的转义字符是()A 、’\W”B、\”C 、’\0'D、’074’(正确答案)22、下列正确的字符串常量是()A、”W”(正确答案)B 、'abc’C 、Olympic GamesD 、’\n'23、在C 语言中,数字029是一个()A、八进制数B、十六进制数C、十进制数D、非法数(正确答案)24、下列的变量说明中,正确的是()A 、int i=j=1;B 、double float f,d;C、double a; (正确答案)D 、char:I;25、下列是合法的用户定义标识符是()A、908B 、putcharC、P_S (正确答案)D 、double26、以下C 语言标识符合法的是()A 、-5XB、name_1 (正确答案)C 、bow-1D 、#2327、假如给变量a和b都定义为浮点型,则下列正确的定义是()A 、int a;b;B 、float a,int b;C 、float a,b; (正确答案)D 、float a;b;28、已知int a=2;,则表达式(a+’E'-’A’)*3的值是 ( )A 、8B 、12C、18(正确答案)D 、2029、下列程序中不正确的语句是()A 、main(B 、int a,b,c:C、a=22:b=33 (正确答案)D 、{c=a+c;}30、下列各项中非法的赋值语句是()A、j++:B 、++(i+3 ); (正确答案)C 、x=j>0;D、n=(i=2,i++):二、判断题(每题1分)1、计算机可以直接识别C 语言程序语句。

C语言测试题

C语言测试题
16. 表达式15>>2的值为2。 ( )答案为×
17. 用语句a=a+b,b=a-b,a=a-b;可以交换a,b两个变量的值。( )答案为√
18. 在C语言中,定义int a=b=c=5;是错0的,而int a,b,c; a=b=c=5;是的.( )答案为√
19. 表达式“5=3”是一个关系表达式,且其值为0。( )答案为×
b=x++;
c=y;
(A)a=9,b=9,c=9 (B)a=9,b=10,c=9 (C)a=1,b=11,c=10 (D)a=8,b=8,c=10
答案为D
5. 执行下面的程序段后,B的值为( )。
int x=35;
char z=''A'';
int B;
B=((x&15)&&(z<''a''));
(A) 0 (B) 1 (C) 2 (D) 3
答案为B
6. 表达式11&10的结果用二进制表示为( )。
A)11 B)3 C)1 D)10
答案为D
7. 设有语句int a=3;则执行语句a+=a-=a*a后,变量a的值是( )。
23. 设int x=3,y=2;表达式(y++==--x)?y++:x++的值是3。( )答案为√
24. 已知int a=5,b=5; 则表达式: ++a>b?a:b-->++a?++b:a的值为6。( )答案为√
25. 表达式~(~1<<3)的值是15。( )答案为√

计算机C语言测试题

计算机C语言测试题

计算机C 语言测试题1.求1!+3!+5!+……+n!的和。

2.用选择法对10个整数按升序排序。

3.以每行5个数来输出200以内能被7或17整除的偶数,并求出其和。

4. 求100-999之间的水仙花数.说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。

5. 用 公式求 的近似值,直到发现某一项的绝对值小于10-5 为止(该项不累计加)。

6. 产生并输出杨辉三角的前五行。

11 11 2 11 3 3 11 4 6 4 17. 输出100到1000之间的各位数字之和能被15整除的所有数,输出时每10个一行。

8. 分别求出一批非零整数中的偶数、奇数的平均值,用零作为终止标记。

9. 将一个数组中的元素按逆序存放。

10. 打印以下图形。

*************************11. 求一个二维数组(三行三列)中每行的最大值和每行的和。

12.13. 统计一个字符串中的字母、数字、空格和其它字符的个数。

14. 用冒泡法对数组a 之中的10个数进行由小到大的排序。

15.16. 编写函数fun 求1!+2!+3!+ …… +n!的和,在main 函数中由键盘输入n 值,并输出运算结果。

请编写fun 函数。

17. 从键盘为一维整型数组输入10个整数,调用fun 函数找出其中最小的数,并在main 函数中输出。

+-+-≈71513114ππ18.从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。

19.对任意输入的 x,用下式计算并输出 y 的值。

5 x<10y= 0 x=10-5 x>1020.用do-while语句求1~100的累计和。

21.求一个四位数的各位数字的立方和.22.求1到1000之间的偶数之积。

23.找出一批正整数中的最大的偶数。

24.求5行5列矩阵的主、副对角线上元素之和。

25.计算n门课程的平均值,计算结果作为函数值返回。

C语言测试题及答案

C语言测试题及答案

一、选择题1.语句int a=10,*point=&a; D 其值不为地址。

A. pointB. &aC. &pointD. *point2.若p为指针变量,y为变量,则y = *p++;的含义是 A A.y=*p;p++ B.y=(*p)++ C.y=p;p++ D.p++;y=*p 3.语句char str[]=”visual C++”;char *p=str;则p的值为 BA. ”visual C++”B.str的首地址C. \nD.”v”4.设有说明语句char *s[]={“student”,”Teacher”,”Father”,”Month”}, *ps=s[2];执行语句:printf(“%c,%s,%c”,*s[1],ps,*ps);则输出为AA.T,Father,FB.Teaher,F,FatherC. Teacher,Father,FatherD.语法错,无输出5.下列说明或赋值语句,不正确的是 CA. char *p;p=”Visual C++”;B. char p1[12]={‘v’,’i’,’s’,’u’};C. char p2[12];p2=”Visual C++”D. char p3[]=”Visual”;6.现有int b[3][4],*p;p=(int *)b;若要指针p指向b[2][3],以下正确的是 BA.p+=3*4+3B.p+=2*4+3C. p+=(3*4+3)*sizeof(int)D.p+=(2*4+3)*sizeof(int)7.语句int i,*p1,**p2;以下语句语法不正确的是 BA.p1=&i;B. p2=&i;C.p2=&p1;D.i=’\0x23’;8.如下图结构体说明和变量的定义,p指向a,q指向变量b.下面不能..把结点b连接到结点a之后的语句是 BC. p->next=&b;D.(*p).next=q;9.下面正确的语句是 AA. int a[3][4],(*p)[4]; p=a;B. int a[3][4],*p[4]; p=a;C. int a[3][4],*p; p=a;D. int a[3][4],**p;*p=a;10.以“追加”方式打开文本文件a:\aa.dat,下列语句中哪一个是正确的是 BA.fp=fopen("a:\\aa.dat","ab");B. fp=fopen("a:\\aa.dat","a");C. fp=fopen("a:\\aa.dat","r+");D. fp=fopen("a:\\aa.dat","w");11.设有函数定义:int f1(void){return 100,150;}调用函数f1()时, BA.函数返回值100B. 函数返回值150C. 函数返回二个值100和150D. 语句return 100,150;语法错.12.数组作为函数的形参时,把数组名作为实参,传递给函数的是 AA.该数组的首地址B. 该数组的元素个数C. 该数组中的各元素值D. 该数组的大小13.执行以下语句序列:则 Aenum {Sun,Mon,Tue,Wed,Thu,Fri,Sat}c1,c2; //Ac1=Mon; //Bprintf(“%d”,c1);A.输出1B.输出2C.输出0D. B行语法错14.执行以下语句序列:则 Cchar *p1=”Speaking”; //Achar *p2=”English”; //Bchar *p3=”a piece of cake”; //Cchar *str[]={p1,p2,p3}; //Dprintf(“%c”,*(str[0]+1));A.输出EnglishB.输出SpeakingC.输出pD. D行语法错二、填空题1.(2*2分=4分)下面程序的运行结果为16 、 2void main( ){static int a[3][2]={{12},{14,16},{1,2}};int *p=a[1];printf(“%d\n”,*(p+1));printf(“%d\n”,*(p+3));}2.(2*2分=4分)若有以下程序段,则*(*(b+2)+1)的值为11 ,*(*(p+1)+1)的值为7static int b[3][2]={1,3,5,7,9,11};int (*p)[2];p=b;3.(1*4分=4分)下面程序的运行结果为26#include<stdio.h>void sub(int *x,int i,int n){if(n<=i)sub(x,i,3*n);*x+=n++; //相当于*x=*x+(n++)}void main( ){int x=0;sub(&x,12,2);printf(“%d”,x);}4.(2*2分=4分)以下程序运行结果为_ Hello,world _、ello,world void main(){char *p,*q;char str[]="Hello,World\n";q = p = str;p++;printf(“%s\n”,q);printf(“%s\n”,p);}5. (1*4分=4分)以下程序运行结果是__121232343454_________ void main(){short ar[5]={1,2,3,4,5 };short * par=&ar[1];int i;for(i=0; i<4; i++){printf(“%d %d %d”,ar[i],par[i],*(ar+i));}}6.(2*2分=4分) 以下程序运行结果是__200 100_____void swap2(int *x,int *y){int t;t=*x;*x=*y;*y=t;}void main( ){ int a=100,b=200;swap2(&a,&b);printf(“%d\t%d”,a,b);}7.(3*2分=6分)void fun(int n, int *s){ int f1,f2;if(n= =1||n= =2)*s=1;else{fun(n-1,&f1);fun(n-2,&f2);*s=2*f1+f2+1;printf(“%d\t%d\n”,f1,f2);}}void main( ){ int x;fun(4,&x);printf(”x=%d\n”,x);}程序输出的第一行是1 1 第二行是4 1 最后一行是x=108. (3*2分=6分)void f(int *q1,int *q2,int *q3){*q3=*q1+*q2;}void main( ){ int i,j,a[3][3]={1,1},*p1=a[0],*p2=a[0]+1,*p3=a[0]+2;for(i=2;i<9;i++)f(p1++,p2++,p3++);for(i=0;i<3;i++){ for(j=0;j<3;j++)printf(“%d”,a[i][i]);printf(’\n’);}}程序输出的第一行是111 第二行是555 最后一行是343434 9.(2*3分=6分)int f(int x,int y){return x*y;}void main( ){ int i,j,(*fun)(int,int);fun=f;for(i=1;i<4;i++){ switch(i){case 1:case 2: j=(*fun)(i,i+1);break;case 3: j=(*fun)(i-1,i+2);break;}printf(”j=%d”,j);}}程序输出的第一行是j=2 第二行是j=6 最后一行是j=10三、完善程序1.(2*3分=6分)以下min 函数的功能是:在非空单向链表中查找结点数据域为最小的值,并作为函数返回值.链表如下.struct NODE{int data;NODE *next;};int min(NODE *first){NODE *p;int m;p=first;m=p->data;for(p=p->next;p!=NULL;p= p->next)if(m> p->data)m=p->data;return m;}2.(3*2分=6分)以下程序求二维数组的平均值float average(float (*p)[4],int n){float sum=0;for(int i=0; i<n ;i++){for(j=0;j<4;j++)sum+= (*p)[j] 或 *(*p+j) ;p++;}return sum/(n*4);}void main( ){ float score[3][4]={{56,65,70,76},{89,97,52,81},{90,99,91,86}};printf(”平均值=%f ”,average(score, 3 ));}3. (2*3.5分=7分)以下程序实现将以L 为头指针的链表逆置(设结点个数n>2),即将链表头当链表尾,链表尾当链表头。

C语言试题

C语言试题

C测试题一、选择题(20题,共44分)1.常见的Linux发行版本有很多,下面不是Linux发行版本的是(C )。

[A] Red Hat Linux [B] Ubuntu Linux [C] X Window [D] SuSE Linux2.下面不是对Linux操作系统特点描述的是( B )。

[A] 良好的可移植性[B] 单用户[C] 多用户[D] 多任务3.下面( C )命令不能用来显示文件的内容。

[A] more [B] less [C] find [D] cat4.查看创建目录命令mkdir的帮助文档,可以使用命令( D )。

[A] mkdir –h [B] help mkdir [C] mkdir -p [D] man mkdir5.假设目录中存在若干文件file_num.txt(num表示文件编号,1~10),使用以下( C )通配符可以挑选出其中的编号为1、3、5的文件。

[A] file_*.txt [B] flie_?.txt [C] file_[135].txt [D] file_[^135].txt6.文件权限r-x-wxr--对应的八进制表示形式为( D )[A] 0536 [B] 0654 [C] 0656 [D] 05347.在C语言中,要求运算数必须是整型的运算符是( D )。

[A] / [B] ++ [C] != [D] %8.C语言中,逻辑“真”等价于( C )。

[A] 大于零的数[B] 大于零的整数[C] 非零的数[D] 非零的整数9.目前流行的两种软件包管理机制,Debian使用( D )软件包,Redhat使用( B )软件包。

[A] tgz [B] rpm [C] tar [D] deb10.下面函数的功能是( A )。

int fun (char*x){char*y=x;while(*y++);return(y-x-1);}[A] 求字符串的长度[B] 比较两个字符串的大小[C] 将字符串x复制到字符串y[D] 将字符串x连接到字符串y后面11.C语言程序的三种基本程序是( A )。

C语言测试题目

C语言测试题目

一、顺序结构1.从键盘输入一个大于0的实数,编程计算并输出以该数位半径的圆面积、圆周长及球体积(取圆周率为3.14)要求输出时有适当的文字说明测试数据:输入2.5输出圆周长15.700000 圆面积19.625000 球体积为65.4166672.从键盘输入两个大于0的实数,编程计算并输出以其为长和宽的矩形的周长和面积。

要求输出时有适当的文字说明测试数据:输入 1.2 3.5输出矩形周长9.400000 矩形面积4.2000003.从键盘输入一个华氏温度值,计算并输出其摄氏温度的值。

提示:摄氏温度c=(5/9)*(f-32) f为华氏温度测试数据:输入华氏温度值100输出摄氏温度值37.7777784.从键盘输入三个实数,计算并输出它们的和及积。

测试数据:输入 1.1 2.2 3.5输出和6.800000 积8.4700005、从键盘输入三个整数,计算并输出它们的和及平均值测试数据:输入 2 5 7输出和14.000000 平均值4.6666676、输入一个三位数,依次输出该数的符号和百位、十位、个位数字。

测试数据:输入-752输出和符号- 百位7 十位5 个位2二、选择结构1.从键盘输入一个字符,判断它如果是小写字母输出其对应大写字母;如果是大写字母输出其对应小写字母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输出“other”。

2.从键盘输入三个实数a、b、c,输出其中最大的数。

测试数据:输入5.3 6.5 2.1输出最大数6.53.从键盘输入一个正整数,判断它能否被 3或者被 5整除, 如至少能被这两个数中的一个整除则输出“yes”,否则输出“no”。

测试数据:(1)输入12 输出yes(2)输入16 输出no4.从键盘输入1到7之间的某个正整数,输出表示一星期中相应的某一天的英文单词:Monday、 Tuesday等等,用switch语句做。

测试数据:输入7输出Sunday5.从键盘输入一百分制成绩(实数),将其转换为成绩等级并输出:大于等于90分为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。

c语言期末测试题(附答案)

c语言期末测试题(附答案)

** 课程代码:A100002座位号:《计算机技术基础(C语言)》试卷A姓名: 学号: 专业:学院: 班级:20 年月日第一部分选择题(共 30 分)一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分)1、以下关于C语言标识符的描述中,正确的是【】。

A)标识符可以由汉字组成B)标识符只能以字母开头C)关键字可以作为用户标识符D)Area与area是不同的标识符2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。

int i,j,k;scanf(“%d,%3d%d”,&i,&j,&k);printf(“%d,%d,%d\n”,i,j,k);A)12345678 B)123,456,78 C)123,45678 D)123,*456783、判断char类型的变量c1是否为数字字符的正确表达式为【】。

A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’)C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’)4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。

A)’a’&&’b’ B)a<=b C)((a>b)||(b<c) D)(!(a+b)==c&&a)5、已知:int a[2][3]; 则对数组元素的非法引用是【】A. *(a[0]+2)B. a[1][3] C . a[1][0] D. *(*(a+1)+2)6、在循环语句的循环体中执行break语句,其作用是【】。

A)跳出该循环体,提前结束循环B)继续执行break语句之后的循环体各语句C)结束本次循环,进行下次循环D)终止程序运行7、执行语句for(i=10;i>0;i--);后,变量i的值为【】。

C语言基础知识测试题-全面完整

C语言基础知识测试题-全面完整

基础知识测试题一.单项选择题1.以下不正确的C语言标识符是(D )A. ABCB. abcC. a_bcD. ab.c2.以下正确的C语言标识符是( C)A. %xB. a+bC. a123D. test!3.一个C语言程序的执行是从(A )。

A. main( )函数开始,直到main( )函数结束B. 第一个函数开始,直到最后一个函数结束C. 第一个语句开始,直到最后一个语句结束D. main( )函数开始,直到最后一函数结束4.在C语言程序中,main(C )的位置()。

A. 必须作为第一个函数B.必须作为最后一个函数C.任意D.必须放在它所调用的函数之后5.一个C语言程序是由(B )。

A. 一个主程序和若干个子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成6.C语言源程序的基本单位是(B)。

A. 过程B. 函数C. 子程序D. 标识符7.编辑程序的功能是(A)。

A. 建立并修改程序C.将C源程序编译成目标程序D.调试程序E.命令计算机执行指定的操作8.C编译程序是(D)。

A. C语言程序的机器语言版本B. 一组机器语言指.D. 将C源程序编译成目标程序的程序F. 由制造厂家提供的一套应用软件B9.不属于字符型常量的是( D )A.'A'B."B"C.'\n'D.'\x72'10 .设char ch; 以下正确的赋值语句是:(B )A.ch='123';B.ch='\xff';C.ch='\08';D.ch="\";11 .以下使i的运算结果为4的表达式是(D )A.int i=0,j=0;(i=3,(j++)+i);B.int i=1,j=0;j=i=((i=3)*2);C.int i=0,j=1;(j==1)?(i=1):(i=3);D.int i=1,j=1;i+=j+=2;A12 .若t为double类型,表达式t=1,t+5,t++的值是(D)A.1B.6.0 CC13.设整型变量m,n,a,b,c,d均为1,执行“(m=a>b)&&(n=a>b)”后m,n的值是( B)A.0,0B.0,1C.1,0D.1,1B14 .执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为(CA.3,3,2B.3,2,2C.3,2,3D.2,3,2B15 .若a=1,b=2,c=3,d=4,则条件表达式a<b?a:a<d?c:d的值为(A )A.1B.2C.3D.416 .设int n=7;则++n+1= =9的结果是(C )A.trueB.falseC.1D.017 .设a=2,b=2;则++a+b的结果是(d),a的结果是(b),b的结果是(a)A.2B.3C.4D.518 .设a=2,则执行b=a==!a;语句后,b的结果是( A)A.0B.1C.2D.319 .设有以下语句,则c的二进制值是()char a=3,b=6,c;c=a^b<<2;A.00011011B.00010100C.00011100D.0001100020 .在C语言类型说明中,int、char、short等类型的长度是( A )A.固定的B.由用户自己定义的C.任意的D.与机器字的长度有关的二.填空题1.C语言中的标识符只能由三种字符组成,它们是、、。

C语言综合测试题(题目)

C语言综合测试题(题目)

选择题(每题2分,共计100分)1.分析下面的C程序, 输出结果是()#include<stdio.h>void main(){int num=0;while(num<=2){printf("%d ",num);num++;}}A. 1 2 3B.0 1 2C. 2 3D. 1 22.以下对二维数组a的正确说明是()。

A、 int a[3][];B、 floatf a(3,4);C、 double a[1][4];D、 float a(3)(4);3.要将20赋值到数组Num的第三个元素,正确的方法是()A.Num[3]=20B.Num[2]=20C.Num[4]=20D.[3] Num=204.在C语言中,已知字母A的ASCII码是65,则执行语句:char ch='A'+3; 后ch的值为()A.不能确定B.68C. CD. D5.以下描述中正确的是()。

A、由于do-while循环中循环体语句只能是-条可执行语句,所以循环体内不能使用复合语句B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C、在do-while循环体中,-定要有能使while后表达式值变为零("假")的操作D、do-while循环中,根据情况可以省略while6.在C语言中,要求运算数必须是整型的运算符是()A、 /B、 ++C、 !=D、%7.以下程序段()x= -1;do{x=x*x;}while(!x);A、是死循环B、循环执行二次C、循环执行-次D、有语法错误8.在C语言中,下列正确的字符型常量是()A."f"B.'9'C.#D.3659.在C语言中,下面()是逻辑运算符中优先级最高的。

A.!B.&&C.||D.|E.&10.以下述叙不正确的是()A.一个C源程序可以由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中注释说明只能位于一条语句的后面11.为了避免在嵌套的条件语句If-else中产生二义性,C语言规定else子句,总是与()配对。

C语言编程测试题

C语言编程测试题

3.设计一个函数测试字符串的长度
4.编写一个判断素数的函数。在主函数打印出100~1000之间的所有素数
C语言编程测试题(五)
1.编写程序输出“九九乘法口诀表”
2.编写函数实现字符串的复制
3.将10个整数输入到一个数组中,然后在数组中查找给定的整数(要求使用指针实现)
4.设计结构体类型,用来组织学生的信息(学号、姓名、性别、出生日期、成绩)
3.从键盘上输入10个整数并输出这10个数中的最大数、最小数
4.请编写函数统计输入的一行中小写字母的个数(要求使用指针实现)
C语言编程测试题(三)
1.试判断从键盘输入的正整数是否能被5和7同时整除。能则输出“yes”,否则输出“no”
2.打印出所有的水仙花数。水仙花数是一个三位数且各位上的数字立方和等于该数本身。如153是一个水仙花数
C语言编数a、b、c,要求按大小顺序打印出来
2.打印出100~1000之间的所有完数。所谓完数是指一个数恰好等于它的所有因子之和。如6=1+2+3
3.输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数
4.设计一个函数完成对10个整数进行排序(要求使用指针实现)
3.输出一个3行4列的矩阵中最大元素的值及其行下标和列下标
4.编写一个函数,对传送过来的三个数选出最大和最小数,并通过形参传回调用函数
C语言编程测试题(四)
1.计算e=1+1/1!+1/2!+?+1/n!,要求计算误差小于0.0001
2.将10个整数输入到一个数组中,然后再将其按输入顺序的逆序进行排列并输出(要求使用指针实现)
C语言编程测试题(二)

C语言在线测试题目及答案

C语言在线测试题目及答案

C语言在线测试题目及答案SANY GROUP system office room 【SANYUA16H-SANYHUASANYUA8Q8-第一章、第二章、第三章第一题、单项选择题(每题1分,5道题共5分)1、在以下关于C语言的叙述中,正确的说法是: BA、C语言比汇编语言快B、C语言比BASIC语言快C、C语言比BASIC语言和汇编语言都快D、C语言比BASIC语言慢2、在C语言中,不正确的常量是: BA、0xf6B、0876C、.5e-6D、 3e 23、属于低级语言的计算机语言是( )。

BA、机器语言B、汇编语言C、Java语言D、Pascal语言4、对于链接,正确的说法为()。

DA、链接是将源程序和库函数链接到一起,生成可执行程序。

B、链接是将源程序、目标程序和其他源程序链接到一起,生成可执行程序。

C、链接是将源程序、库函数和其他源程序链接到一起,生成可执行程序。

D、链接是将目标程序、库函数和其他目标程序链接到一起,生成可执行程序。

5、下列不能表示常量大写英文字母A的是()。

BA、常量:‘A’B、常量:“A”C、常量:‘\x41’D、常量:‘\101’第二题、多项选择题(每题2分,5道题共10分)1、对于16位系统中,C语言中整数 -8在内存中的错误存储形式是: BCDA、1111 1111 1111 1000B、1000 0000 0000 0000C、1000 0000 0000 1000D、1111 1111 1111 01112、下列关于C语言用户标识符的叙述中,不正确的叙述是: ACDA、用户标识符中可以出现下划线和中划线(减号)B、用户标识符中不可以出现中划线,但可以出现下划线C、用户标识符中可以出现下划线,但不可以放在用户标识符的开头D、用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头3、关于C语言程序的语句,正确的说法是( )。

BDA、一条语句只能占一行B、一行可以书写多条语句C、语句的结束标识符是句号D、建议每条语句占一行4、与汇编程序相比,C语言程序的优点包括( )。

C语言测试题

C语言测试题

测试题1. 以下正确的叙述是:A)在C程序中,每行中只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,%是只能用于整数运算的运算符2. 以下叙述不正确的是。

A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面3.在C语言中,要求运算数必须是整型的运算符是。

A) / B) ++ c) != D)%4.下面正确的字符常量是:A)"a" B)'\\'' C)'W' D)’’5.根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为:main(){char ch1 ,ch2 ,ch3;输入语句printf("%c%c%c",ch1,ch2,ch3);}输入形式: A B C输出形式: A B CA) scanf("%c%c%c",&ch1,&ch2,&ch3);B) scanf("%c,%c,%c", &ch1,&ch2, &ch3);C) scanf("%c %c %c",&ch1,&ch2,&ch3);D) scanf("%c%c",&ch1,&ch2,&ch3);6.C语言规定:在一个源程序中,main函数的位置。

A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后7.一个C语言程序是由A)一个主程序和若干子程序组成 B)函数组成C)若干过程组成 D)若干子程序组成8.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为A)D B)68 C)不确定的值 D)C9.以下符合C语言语法的赋值表达式是A)d=9+e+f=d+9B) d=9+e,f=d+9C)d=9十e,e++,d十9 D)d=9十e++=d十7 10.在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为A)char<int <1ong int<=float<doubleB)char=int<1ong int<=float<doubleC)char< int <1ong int=float=doubleD)char=int =1ong int<=float<double11.若x,i,j和k都是int型变量,则执行下面表达式后x的值为x=(i=4,j=16,k=32)A)4 B)16 C)32 D)5212.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符A)必须为字母 B)必须为下划线C)必须为字母或下划线 D)可以是字母,数字和下划线中任一种字符13.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:A)7 B)8 C)6 D)214.以下说法正确的是:A)输入项可以为一实型常量,如scanf("%f",3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);1. 在do-while循环中,任何情况下都不能省略while.2.在C程序中,无论是整数还是实数,都能被准确无误地表示3.定义 int x[5],n;则x=x+n;或x++;都是正确的.4.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。

c语言基础测试题

c语言基础测试题

c语言基础测试题一、C语言的源程序文件扩展名通常是什么?A. .txtB. .exeC. .cD. .java(答案)C二、以下哪个是C语言中的标准输入输出库?A. math.hB. string.hC. stdio.hD. stdlib.h(答案)C三、在C语言中,int类型数据通常占用多少个字节?A. 1B. 2C. 4D. 8(答案)C(注:这取决于具体系统和编译器,但在大多数现代系统上,int通常是4个字节)四、以下哪个是C语言中的逻辑与运算符?A. &B. &&C. |D. ||(答案)B五、在C语言中,如何表示一个常量字符串?A. 使用单引号括起来,如'hello'B. 使用双引号括起来,如"hello"C. 使用花括号括起来,如{hello}D. 使用方括号括起来,如[hello](答案)B六、以下哪个是C语言中的循环结构?A. if-elseB. switch-caseC. forD. while-do-while(注:此选项表述不严谨,但为保持原意,选择最接近的答案)(答案)C(注:实际上D也是循环结构的一种,但C是更直接且无误的答案)七、在C语言中,数组名表示什么?A. 数组的首地址B. 数组的第一个元素C. 数组的长度D. 数组的类型(答案)A八、以下哪个是C语言中的条件运算符?A. ?:B. ||C. &&D. !(答案)A九、在C语言中,如何定义一个指向整型变量的指针?A. int p;B. int p;C. *int p;D. int * p;(答案)A(注:D也是正确的,但在C语言中,通常更推荐使用A这种紧凑的格式)十、以下哪个是C语言中的标准输出函数?A. scanf()B. printf()C. getchar()D. putchar()(答案)B。

春考c语言技能测试题及答案

春考c语言技能测试题及答案

春考c语言技能测试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述,错误的是:A. C语言是一种高级编程语言B. C语言可以直接被计算机执行C. C语言支持结构化编程D. C语言具有丰富的数据类型答案:B2. 在C语言中,用于定义一个整型数组的语句是:A. int a[10];B. int a=10;C. int a[];D. int [10]a;答案:A3. 下列哪个关键字用于定义一个函数?A. ifB. forC. whileD. void答案:D4. 在C语言中,用于输入数据的函数是:A. printf()B. scanf()C. fprintf()D. sprintf()5. 下列哪个运算符用于计算两个数的和?A. +B. -C. *D. /答案:A6. 在C语言中,用于定义一个字符型变量的关键字是:A. intB. charC. floatD. double答案:B7. 下列哪个选项是正确的注释方式?A. // 这是一个注释B. /* 这是一个注释 */C. //* 这是一个注释D. /* 这是一个注释答案:B8. 在C语言中,用于输出数据的函数是:A. scanf()B. printf()C. fprintf()D. sprintf()答案:B9. 下列哪个选项是C语言中的逻辑与运算符?B. ||C. =D. +=答案:A10. 在C语言中,用于定义一个浮点型变量的关键字是:A. intB. floatC. charD. double答案:B二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型变量的正确语句是:int _______ ; 答案:变量名2. 用于定义一个字符串常量的符号是:_______ ;答案:"字符串"3. 在C语言中,表示逻辑或的运算符是:_______ ;答案:||4. 用于定义一个浮点型数组的语句是:float _______ [10];答案:数组名5. 在C语言中,表示逻辑非的运算符是:_______ ;答案:!6. 用于定义一个字符型数组的语句是:char _______ [10];答案:数组名7. 在C语言中,用于计算两个数的差的运算符是:_______ ; 答案:-8. 用于定义一个整型指针的语句是:int *_______ ;答案:指针名9. 在C语言中,用于计算两个数的乘积的运算符是:_______ ; 答案:*10. 用于定义一个浮点型指针的语句是:float *_______ ;答案:指针名三、编程题(每题10分,共20分)1. 编写一个C语言程序,计算并输出两个整数的和。

C语言模拟测试题一及答案

C语言模拟测试题一及答案

模拟题一一、选择题1.下列说法正确的是()。

A)main函数必须放在C程序的开头B)main函数必须放在C程序的最后C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的2.C语言中不能用来表示整常数的进制是()。

A)十进制B)十六进制C)八进制D)二进制3.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组:()。

A)整型实型字符型B)整型数组指针C)数组结构体共用体D)指针逻辑型空类型4.C语言规定标识符由()等字符组成。

A)字母数字下划线B)中划线字母数字C)字母数字逗号D)字母下划线中划线5.若有说明语句:char c= ‘\64’ ; 则变量C包含()。

A)1个字符B)2个字符C)3个字符D)说明不合法,C值不确定6.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式:(float)(a+b)/2+(int)x%(int)y的值是()。

A)2.500000 B)3.500000 C)4.500000 D)5.0000007.设有如下定义和执行语句,其输出结果为()。

int a=3,b=3;a = --b + 1; printf(“%d %d”,a,b);A)3 2 B)4 2 C)2 2 D)2 38.以下表达式: 2+’a’+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为()。

A)int B)float C)char D)double9.C语言中,运算对象必须是整型数的运算符是()。

A)%B)\C)% 和\D)**10.有如下语句:printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”);执行语句后的最终结果为()。

A)COMPUTER ,CMP . B)COMPUTER, CMP.C)COMPU, CMP. D)COMPU, CMP .11.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是()。

《C语言程序》测试题及答案

《C语言程序》测试题及答案

c++程序设计本科一、判断题错误的在后面写“F”,正确的写“T”,每题1分1. 程序是描述算法的编程工具;T2. 将函数模板与某个具体数据类型连用,就产生了模板函数,称这个过程为函数模板实例化 ; T3. C++语言中,用来为对象初始化的特殊成员函数称为构造函数;用于在对象撤销时执行一些清理任务的特殊成员函数称为析构函数; T4. 逐条翻译并执行的翻译程序称为编译程序; F5. 把所有类组织在一个树形结构中,这时所有类,不管它们之间的差别有多大,都有一个共同的相关类,这种结构被称为类树;类群是由一些彼此密切相关的类和类族组成的;F6. 如果在定义一个类时,该类继承了多个基类的特征,那么这个继承关系称为多重继承;T7. 不同对象可以调用相同名称的函数,并可导致完全相同的行为的现象称为多态性;F8.形式参数表是用括号分隔的变量说明列表,变量称为函数的形式参数,有时也简称为形参; F9..在C++语言中,只要在声明函数原型时形式参数的个数或者对应的类型不同,两个或更多的函数就可以共用同一个名字;这种在同一作用域中允许多个函数使用同一函数名的措施被称为重载; T8.C++的作用域分辨:可以迫使编译器“看到”当前作用域的外层部分,存取那些被隐藏的名字;这是由作用域分辨操作符实现的,这一过程叫做作用域分辨;T11.说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了;T12.所有的表达式都有值;F13.程序的编译是以文件为单位的,因此将程序分到多个文件中可以减少每次对程序修改所带来的编译工作量;T14.类的静态数据成员需要在定义每个类的对象时进行初始化;F15.基类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问;F16.当将一个类S定义为另一个类A的友元类时,类S的所有成员函数都可以直接访问类A的所有成员;T17.当函数的返回值是数组类型的,传递的是数组第一个元素的地址;F18.如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性;T19.字符串’hello,world”在内存中存放时,占用11个字节的空间;F20. 用new动态申请的内存空间,必须用delete来释放 ;T21、变量必须先定义或说明,后使用;T23、常量不能作为左值使用;T23、头文件中一般存放着变量和常量的定义、函数的原型以及类的定义;F24、类的友元函数可以直接访问该类的所有成员;T25、派生类的成员函数可以直接访问基类的所有成员;F26、一个类可以作为另一个类的友元类;T27、函数的参数和返回值类型可以是简单数据类型,也可以是指什、引用、数组和类;F28、在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才能具有多态的特征;F29、下面两个语句是等价的: Fchar str ="hello,world";char str11="hello,world";30、用new动态申请的内存是在堆中分配的,而不是在栈中分配的; T31.静态联编所支持的多态性称为编译时的多态性; T32.如果一个类中至少有一个实函数,则称这个类为抽象类 ; F33.用于在对象消失时执行一些清理任务的函数叫虚函数; F34. C++源程序文件的缺省扩展名为cpp T35. 由C++源程序文件编译而成的目标文件的缺省扩展名为lik F36. 由C++目标文件连接而成的可执行文件的缺省扩展名为obj F37. 编写C++程序一般需经过的几个步骤依次是编辑、编译、连接、调试 T38. 标识符default then while全是保留字 F39. 能作为C++程序的基本单位是语句 T40. 程序中主函数的名字为任意标识符 F二、填空题每题3分1. 假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为_____4_____和___11_______;2. C++常数0x145对应的十进制值为____325______;3. C++常数0345对应的十进制值为____229______;4. 十进制常数245对应的十六进制的C++表示为____0xF5 F大小写均可_____5. 十进制常数245对应的八进制的C++表示为___0365 F大小写均可_______;6. signed char类型的值域范围是_-128_______至_____+127_____之间的整数;7. int和float类型的数据分别占用___4______和______4____个字节;8. float和double类型的数据分别占用_____4____和__ 8______个字节;9. bool和char类型的数据分别占用____1_____和_____1___个字节;10. unsigned short int和int类型的长度分别为___2______和____4____;11. 字符串“This\’s a book.\n”的长度为___15_______;12. 字符串“\nThis\’s a pen\n\n”的长度为_____15_____;13. 在C++中存储字符串“abcdef”至少需要___7_____个字节;14. 在C++中存储字符串“a+b=c”至少需要__6______个字节;14.假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为_____1_____和______3____;15.若while循环的“头”为”whilei++<=10”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行__11____次后正常结束;17. 若do循环的“尾”为”while++i<10”,并且i的初值为0,同时在循环体中不会修改i 的值,则循环体将被重复执行____10__次后正常结束;18. 当在程序中执行到__break______语句时,将结束本层循环类语句或switch语句的执行;19. 当在程序中执行到____continue____语句时,将结束所在循环语句中循环体的一次执行;20. 在程序中执行到____ return ____语句时,将结束所在函数的执行过程,返回到调用该函数的位置;21.在程序执行完__ 主或main_____函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口;22. 元素类型为int的数组a10共占用___40_____字节的存储空间;23. 元素类型为double的二维数组a46共占用___192_____字节的存储空间;24. 元素类型为char的二维数组a1030共占用___300_____字节的存储空间;25. 存储字符’a’和字符串”a”分别需要占用____1____和_____2___个字节;26. 空串的长度为___0_____,存储它需要占用___1_____个字节;27. 字符串”\’a\’xy=4\n”的长度为__7______;28. 字符串”a:\\xxk\\数据”的长度为__11__;29. 用于存储一个长度为n的字符串的字符数组的长度至少为___ n+1_____;30. 若a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式为_ cin>>a___;31. C++是将源程序_一次翻译成目标程序_____,然后再执行,这种翻译程序称为编译程序;32. 联合的若干数据成员使用地址___同一___,占据的内存是联合中占内存最大的数据成员所占用的内存;33. 作用域分辨操作符的一般形式为类名::类标识符 ,作用域分辨不仅可用于类中,而且可以用在____函数调用__ 时;34. 将关键词const写在 ___函数头___ 之后, __函数体____, 之前,说明该函数是一个const成员函数;35. C++是在 ___标准C语言___ 的基础上,引入面向对象概念而扩充形成的混合型面向对象语言;36. 在动态联编中,直到 _程序运行_____ 时才能确定调用哪个函数;静态联编是在程序编译时进行的;37. 类型转换函数 ___不能___ 带有参数,当被派生类继承并被说明为 ___虚函数___ 时,可以定义多个转换函数;38. 继承是 ___对象___ 的一个特点,继承支持 ___层次___ 类概念39. C++的 __作用域____ 规则能保证编译器调用正确的成员函数;40. 在C++中,声明构造函数和析构函数时, _不能_____使用const或volatile关键词;41. 只能用类运算符来重载的运算符是:_=_____,______,______,___->___;42. 应该养成将所有extern说明放到__头文件____ 中去的习惯,对于自己编写的函数,必须自己给出 __函数类型____ 说明;43. 结构是 ___类___, 的一种特例,其中成员在缺省情况下是_公有的_____ ;44. 当使用delete删除一个对象时,delete隐含着对 __析构函数____ 函数的一次调用,如果这个函数为虚函数,则这个调用采用___动态___联编;45. const放在函数前面使常量成员返回 __常量对象____ ;如果定义一个const对象,则只能访问该对象的const 成员函数;46.在面向对象的程序设计中,一切都是围绕着___类___ 展开的;47.析构造函数是和___类___同名的函数;48.指向基类的对象的指针变量也可以指向___派生类______的对象;49.若多继承时,多个基类中拥有一个同名的成员,则__不能_______用调整访问权限确定对该成员的访问50.多继承情况下,派生类的构造函数的执行顺序取决于__继承_______派生类时所指定的各基类的顺序;51.构造函数___不能__被继承,析构函数______不能______被继承;52.___多___继承情况下,派生类中对基类成员的访问会出现二义性;解决二义性的方法是______成员名限定法______、___支配规则__和__虚基类___53.垂直访问时,保护成员的访问控制权限与______公有___成员相同;54.派生类可以调用其____基类_____中不具备的数据和操作;55.利用继承能够实现___软件复用______;这种实现缩短了程序的开发时间,促使开发人员复用已经测试和调试好的高质量软件;56.当撤消一个含有基类和子对象成员的派生类对象时,将首先完成___派生类___的析构函数定义体的执行,接着完成______子对象成员______的析构函数定义体的执行,最后完成___基类___的析构函数定义体的执行;57.如果类Alpha继承了类Beta,则类Alpha称为___派生___类,类Beta称为__基___类58.对基类数据成员的初始化必须在派生类构造函数中的____成员初始化列表_____处执行;59.在派生类中使用基类的成员,可以显示地使用__成员名限定符_______来使用基类成员60.当将基类指针转换为派生类指针时,由于编译器认为这种操作是危险的,所以必须要使用____强制类型转换_____;61.多继承可以视为是___单继承___的扩展,派生类及其基类可用一个___有向无环图DAG___表示;62. 继承是___对象___的一个特点,继承支持___层次___类概念;63.若需要定义一个标识符常量,并且使C++能够进行类型检查,则应在定义语句的开始使用保留字const .64.逻辑表达式x>3&&x<10 的相反表达式为x<=3||x>=10 .65.逻辑表达式a>b ||b = =5的相反表达式为a<=b&&b=5 .66.假定一个二维数组的定义为”char a56;”,则该数组所含元素的个数为30 ,所占存储空间的字节数为30 .67.变量分为全局和局部两种, 全局变量没有赋初值时,将由系统自动置为0.68.假定a是一个一维数组,则ai对应的存储地址以字节为单位为a+isizeof ai69.假定一个结构类型的定义为”struct A{int a,b;Ac;};”, 则该类型的大小为12字节.70.假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为p->b .三、单选题每题2分,在下列各题的备选答案中,选出一个正确答案,并将其号码填写在题目后面的括号内;A 1. C++源程序文件的缺省扩展名为 ;A. cppB. exeC. objD. likC 2. 由C++源程序文件编译而成的目标文件的缺省扩展名为 ;A. cppB. exeC. objD. likB 3. 由C++目标文件连接而成的可执行文件的缺省扩展名为 ;A. cppB. exeC. objD. likB 4. 编写C++程序一般需经过的几个步骤依次是 ;A. 编译、编辑、连接、调试B. 编辑、编译、连接、调试C. 编译、调试、编辑、连接D. 编辑、调试、编辑、连接B 5. 以下标识符中不全是保留字的是 ;A. case for intB. default then whileC. bool class longD. goto return charC 6. 能作为C++程序的基本单位是 ;A. 字符B. 语句C. 函数D. 源程序文件A 7. 程序中主函数的名字为 ;A. mainB. MAINC. MainD. 任意标识符D 8. C++程序的基本模块为 ;A. 表达式B. 标识符C. 语句D. 函数B 9. 可用作C++语言用户标识符的一组标识符是 ;A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeofD 10. 存储以下数据,占用存储字节最多的是 ;A. 0B. ‘0’C. “0”D.D 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用 符号作为分隔符;A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车C 12. 设”int a=12;”,则执行完语句”a+=aa;”后,a 的值是 ;A. 12B. 144C. 156D. 288D 13. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc1的表达式是 ; A. abc B. 1/abc C. 1/a/b/floatc D. a/b/cD 14. 设”int a=15,b=26;”,则”cout<<a,b;”的输出结果是 ;A. 15B. 26,15C. 15,26D. 26C 15. 设x 是一个bool 型的逻辑量,y 的值为10,则表达式 x && y 的值为 ;A. 1B. 0C. 与x 值相同D. 与x 值相反A 16. x>0 && x<=10的相反表达式为 ;A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>10B 17. x>0 || y==5的相反表达式为 ;A. x<=0 || y=5B. x<=0 && y=5C. x>0 || y=5D. x>0 && y==5 A 18.设x和y均为bool量,则x && y为真的条件是 ;A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假C 19.设x和y均为bool量,则x || y为假的条件是 ;A. 它们均为真B. 其中一个为真C. 它们均为假D. 其中一个为假B 20. 字符串”a+b=12\n”的长度为 ;A. 6B. 7C. 8D. 9B 21. 假定下列x和y均为int型变量,则不正确的赋值为 ;A. x+=y++B. x++=y++C. x=++yD. ++x=++yC 22. 下列的符号常量定义中,错误的定义是 ;A. const M=10;B. const int M=20;C. const char ch;D. const bool mark=true;C23. 循环语句“forint i=0; i<n; i++ cout<<ii<<’ ’;”中循环体执行的次数为 ;A. 1B. n-1C. nD. n+1B 24. 在下面循环语句中循环体执行的次数为 ;forint i=0; i<n; i++ifi>n/2 break;A. n/2B. n/2+1C. n/2-1D. n-1D 25. 在下面循环语句中内层循环体S语句的执行总次数为 ;forint i=0; i<n; i++forint j=i; j<n; j++ S;A. n2B. n+1/2C. nn-1/2D. nn+1/2C 26. 在下面循环语句中循环体执行的次数为 ;int i=0,s=0; whiles<20 {i++; s+=i;}A. 4B. 5C. 6D. 7A 27. 在下面循环语句中循环体执行的次数为 ;int i=0; do i++; whileii<10;A. 4B. 3C. 5D. 2A 28. 当处理特定问题时的循环次数已知时,通常采用来解决;A. for循环B. while循环C. do循环D. switch语句C 29. 循环体至少被执行一次的语句为 ;A. for循环B. while循环C. do循环D. 任一种循环B 30. switch语句能够改写为语句;A. forB. ifC. doD. whileD 31. do语句能够改写为语句;A. 复合B. ifC. switchD. whileC 32. 在下面的一维数组定义中,哪一个有语法错误;A. int a={1,2,3};B. int a10={0};C. int a;D. int a5;D 33. 在下面的字符数组定义中,哪一个有语法错误; ;A. char a20=”abcdefg”;B. char a=”x+y=55.”;C. char a15;D. char a10=’5’;C 34. 在下面的二维数组定义中,正确的是 ;A. int a5;B. int a5;C. int a3={{1,3,5},{2}};D. int a10;C 35. 假定一个二维数组的定义语句为“int a34={{3,4},{2,8,6}};”,则元素a12的值为 ;A. 2B. 4C. 6D. 8A 36. 假定一个二维数组的定义语句为“int a34={{3,4},{2,8,6}};”,则元素a21的值为 ;A. 0B. 4C. 8D. 6B 37. 若定义了函数 double function, 则函数function的返回值为 ;A. 实数型B.实数的地址C.指向函数的指针D.函数的地址B 38. 以下说法中正确的是 ;A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中C 39. 以下叙述中不正确的是 ;A. 在一个函数中,可以有多条return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量A 40. 函数重载是指 ;A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同C 41. 以下关于函数模板叙述正确的是 ;A. 函数模板也是一个具体类型的函数B. 函数模板的类型参数与函数的参数是同一个概念C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数D. 用函数模板定义的函数没有类型C 42. 下列的调用方式是引用调用;A. 形参和实参都是变量B.形参是指针,实参是地址值C. 形参是引用,实参是变量D.形参是变量,实参是地址值A 43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择 ;A. 内联函数B.重载函数C.递归函数D.函数模板B 44. 函数原型语句正确的是 ;A. int Functionvoid a; Function int;C. int Functiona; intdouble a;B 45. C++中函数返回值的类型是由决定的;A. return语句中表达式的类型B.该函数定义时的类型C.调用函数时的调用语句D.系统根据结果A 46. 以下函数的返回结果是 ;int functionchar x {char p=x; whilep++; returnp-x-1;}A. 求字符串的长度B.将字符串x连接到字符串p后面C. 将字符串x复制到字符串p中D.将字符串x反向存放B 47. 函数调用funcexp1,exp2,exp3,exp4,exp5中所含实参的个数为个;C. 4D. 5B 48. 设有如下函数定义int fchar s {char p=s;whilep=’\0’ p++;returnp-s;}在主函数中用cout<<f“good”调用上述函数, 则输出结果为 ;A. 3B. 4C. 5D. 6C 49. 以下正确的函数原型语句是 ;A. double funint x,int yB. double funint x;int yC. double funint,int;D. double funint x,y;B 50. 以下正确的说法是 ;A. 用户调用标准库函数前,必须重新定义B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义C. 系统不允许用户重新定义标准库函数D. 用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中D 51. 函数调用不可以 ;A. 出现在一个表达式中B. 出现在执行语句中C. 作为一个函数的实参D. 作为一个函数的形参B 52. 以下正确的描述是 ;A. 函数的定义可以嵌套,函数的调用不可以嵌套B. 函数的定义不可以嵌套,函数的调用可以嵌套C. 函数的定义和函数的调用均可以嵌套D. 函数的定义和函数的调用均不可以嵌套A 53. 若用数组名作为函数调用的实参,传递给形参的是 ;A. 数组的首地址B. 数组中第一个元素的值C. 数组全部元素的值D. 数组元素的个数D 54. 以下错误的描述是 ;A. 被调用函数中可以不用return语句B. 被调用函数中可以用多个return语句C. 被调用函数中,如果有返回值,就一定要有return语句D. 被调用函数中,一个return语句可返回多个值给调用函数C 55. 以下正确的描述是 ;A. 不允许设置参数的默认值B. 设置参数的默认值只能在定义函数时设置C. 设置参数的默认值时,应该设置右边的参数D. 设置参数的默认值时,应该全部参数都设置D 56. 采用重载函数的目的是 ;A. 实现共享B. 减少空间C. 提高速度D. 使用方便,提高可读性C 57. 将两个字符串连接起来组成一个字符串时,选用函数;A. strlenB. strcapC. strcatD. strcmpB 58. 以下叙述中正确的是 ;A. 使用define可以为常量定义一个名字,该名字在程序中可以再赋另外的值B. 使用const定义的常量名有类型之分,其值在程序运行时是不可改变的C. 在程序中使用内联函数使程序的可读性变差D. 在定义函数时可以在形参表的任何位置给出缺省形参值C 59. 下面的标识符中, 是文件级作用域;A. 函数形参B.语句标号C.外部静态类标识符D.自动类标识符D 60. 以下叙述不正确的是 ;A. 宏替换不占用运行时间B. 宏名无类型C. 宏替换只是字符替D. 宏名必须用大写字母表示D 61. C++语言的编译系统对宏命令的处理是 ;A. 在程序运行时进行B. 在程序连接时进行C. 和C++程序的其它语句同时进行编译D. 在对源程序中其它成分正式编译之前进行B 62. 当include后面的文件名用双引号括起来时,寻找被包含文件的方式是 ;A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录A 63. 当include后面的文件名用尖括号括起来时,寻找被包含文件的方式是 ;A. 直接按系统设定的标准方式搜索目录B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录C. 仅仅搜索源程序所在目录D. 搜索当前逻辑盘上的所有目录C 64. 在下面存储类中, 对象的可见性与生存期不一致;A. 外部类B. 自动类C. 内部静态类D. 寄存器类A 65. 在下面存储类中, 的对象不是局部变量;A. 外部静态类B. 自动类C. 函数形参D. 寄存器类C 66. 关于局部变量,下面说法正确的是 ;A. 定义该变量的程序文件中的函数都可以访问B. 定义该变量的函数中的定义处以下的任何语句都可以访问C. 定义该变量的复合语句中的定义处以下的任何语句都可以访问D. 定义该变量的函数中的定义处以上的任何语句都可以访问C 67. 文件包含命令中被包含的文件的扩展名 ;A. 必须是.hB. 不能是.hC. 可以是.h或.cppD. 必须是.cppB 68. 预处理命令在程序中都是以符号开头的;A. B. C. & D.B 69. 设array为一个数组,则表达式sizeofarray/sizeofarray0的结果为 ;A. array数组首地址B. array数组中元素个数C. array数组中每个元素所占的字节D. array数组占的总字节数C 70. 用new运算符创建一个含10个元素的一维整型数组的正确语句是 ;A. int p=new a10;B. int p=new float10;C. int p=new int10;D. int p=new int10={1,2,3,4,5}A 71. 下列给字符数组赋初值时,正确的是 ;A. char s1=”abcdef”;B. char s24=”abcd”;C. char s323={“abc”,”xyz”};D. char s44={‘a’,’x’,’s’,’t’};D 72. 设有定义“static int data56;”,设该数组在静态存储区中的起始地址为十进制的100,若每个int型数占4个字节,则数组元素data23的地址为 ;A. 115B 73. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为 ;A. int p=&m;B. int p=&m;C. int &p=m;D. int p=m;D 74. 假定k是一个double类型的变量,则关于变量p的正确定义语句为 ;A. double p=&k;B. int p=&k;C. double &p=k;D. char p=”Thank you”;A 75. 变量s的定义为“char s=”Hello world”;”,要使变量p指向s所指向的同一个字符串,则应选取 ;A. char p=s;B. char p=&s;C. char p;p=s;D. char p; p=&s;C 76. 关于void 指针,下列说法正确的是 ;A. void 指针就是未指向任何数据的指针B. void 指针就是已定义而未初始化的指针C. 指向任何类型数据的指针可直接赋值给一个void 指针D. void 指针值可直接赋给一个非void 指针D 77. 假定一条定义语句为“int a10, x, pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为 ;A. x=pa3;B. x=a+3;C. x=a3;D. x=pa+3;D 78. 假定有定义“int b10; int pb;”,则不正确的赋值语句为 ;A. pb=b;B. pb=&b0;C. pb=new int;D. pb=b5;C79. 假定p是具有double类型的指针变量,则表达式++p使p的值以字节为单位增加 ;A. 1B. 4C. sizeofdoubleD. sizeofpC 80. 假定p指向的字符串为”string”,则cout<<p+3的输出结果为 ;A. stringB. ringC. ingD. i四、问答题每题10分1.为什么称C++语言是混合型面向对象的语言答:一般真正的向对象语言具有抽象、封装、继承和多态性等特征,完全由一组抽象的对象组成,因此没有全局函数;而C++是在标准C语言的基础上引入“面向对象”概念而扩充形成的,严格地讲,它不是完全由一组抽象的对象类组成;因为C++程序中还有像main这样的全局函数,因此称它为混合型面向对象语言;2. 下面是一个联合的定义:Class CU {union {int ivalue;float fvalue;}下面是类C的定义:class C : public A, private B{private:int c;public:void setCint x, int y {c=x; setBy;}void showC {showB ; cout << c << endl;}};讨论类C属于何种方式的继承及其派生方法对访问基类成员的影响;答:类C是多重继承,它从类A 公有派生,因此,类A的公有保护的成员在类C中仍是公有的保护的;类C从类B私有派生,类B的所有成员在类C中是私有的;6. C++ 的流库预定义了哪几个流与这几个流所联结的具体设备是什么答:它们是cin、cout、cerr和clog,与C++的流类库预定义的四个流所联结的具体设备为:cin 与标准输入设备相关联cout 与标准输出设备相关联cerr 与标准错误输出设备相关联非缓冲方式clog 与标准错误输出设备相关联缓冲方式7. 在使用C++时,是否应仍然保持C语言的习惯及思维方式为什么答:不行;做为C语言的超集,C++在技术上是和C完全兼容的, 但它在概念上是和C语言完全不同的,因此,使用者应该学会按C++自己的方式来使用它,掌握C++的思维方式、设计方法和习惯;8.C++中有哪些机制可以实现命名常量答:第一个方法是定义const数据类型,它不但说明了数据,而且声明它是常量,即它的值不能改变;另外一个办法就是利用枚举;9. 简述模板类的动态特征;答:从类系的动态性能角度来看,模板类具有更多的动态特征;一旦完成一个继承类系的设计,它能处理的数据和处理数据的方法就确定了,除非新继承一个类来完成新的功能;模板类在设计完成之后,可以处理的数据类型却可以不断增加,并且模板类的实例可在编译时刻初始化,从而具有更好的灵活性;10 .简述静态成员的特性,然后就作用域与全局变量进行比较答:作为类的静态成员,它的特征是不管类创建了多少个对象,其静态成员都只有一个副本,这个副本为类的所有对象共享;类的静态成员不同于全局变量,全局变量的作用于为整个程序,静态成员只能在类的对象中有效;11.用指针或引用调用虚函数与通过对象访问虚函数的区别是答:使用一个基类型的指针或引用调用一个虚函数时候,c++使用动态联编,而通过对象访问时候,则使用静态联编;12. 多重继承的构造顺序一般可分为4步,下面给出这4个步骤:答:1: 任何虚拟基类的构造函数按照它们被继承的顺序构造;2: 任何非虚拟基类的构造函数按照它们被继承的顺序构造;3: 任何成员对象的构造函数按照它们声明的顺序构造;4: 类自己的构造函数;13. 在C++中,应该使用什么语句来动态分配和释放内存答:. new,delete14. 下面的程序的正确的输出结果是什么include <>include <>class base{。

高中c语言测试题及答案

高中c语言测试题及答案

高中c语言测试题及答案高中C语言测试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义函数?A. structB. intC. returnD. void答案:D2. 在C语言中,以下哪个选项不是合法的变量名?A. _123B. $nameC. name123D. name答案:B3. 下列哪个选项是C语言中正确的注释?A. // 这是一个注释B. /* 这是一个注释 */C. /* 这是一个注释D. // 这是一个注释答案:A4. C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. !D. ==答案:A5. 以下哪个选项是C语言中正确的字符串定义?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str[] = {"Hello"};D. char str[] = "Hello", "World";答案:A6. C语言中,以下哪个选项是正确的数组定义?A. int arr[5] = {1, 2, 3};B. int arr[] = {1, 2, 3};C. int arr[5] = {1, 2};D. int arr[] = {1, 2, 3, 4, 5, 6};答案:B7. 在C语言中,以下哪个选项是正确的文件包含指令?A. #include "stdio.h"B. #include <stdio.h>C. #include "stdio.h"D. #include <stdio.h>答案:B8. C语言中,以下哪个选项是正确的条件语句?A. if (x > y)B. if (x > y) {C. if (x > y)D. if (x > y) {答案:D9. C语言中,以下哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++)B. for (int i = 0; i < 10; i++)C. for (int i = 0; i < 10; i++)D. for (int i = 0; i < 10; i++)答案:A10. C语言中,以下哪个选项是正确的函数定义?A. int add(int a, int b) { return a + b; }B. int add(int a, int b) { return a, b; }C. int add(int a, int b) { return a; }D. int add(int a, int b) { return a + b; }答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义一个字符常量的数据类型是________。

c语言 测试题

c语言 测试题

第3章一、单项选择题1. 在一个C程序中(B )。

A.)main函数必须出现在所有函数之前B)main函数可以在程序任何位置出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置2.在PC机中,’\n’在内存占用的字节数是( A )。

A)1 B)2 C)3 D)43. 下列关于C语言用户标识符的叙述中正确的是(B )A)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线(减号),但可以出现下划线C)用户识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头4. 以下叙述中正确的(D )。

A.)输入项可以是一个实型常量,例如:scanf("%f",3.5);B.)只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d");C.)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f ",&f);D.)当输入数据时,必须指明变量地址,例如:scanf("%f ",&f);5.设整型变量i的值为3,则计算表达式i---i后i的值为( A )。

A)0 B)1 C)2 D)表达式出错6.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是( A )。

A)6 B)9 C)8 D)表达式出错7. 以下选项中合法的用户标识符是( B )。

A)long B)_2test C)3Dmax D )A.dat8.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是( D )。

A)3 B)0 C) 9 D)-129.在以下一组运算符中,优先级最高的运算符是( C )。

A)<= B)= C)% D)||10.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是( D )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

试卷1一、(本题满分30分,每题1分)单项选择题说明:将答案填入下表中。

( )A. cppB. exeC. objD. lik2、可用作C++语言用户标识符的一组标识符是( )A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof3、设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( )A. 12B. 144C. 156D. 2884、设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( )A. 15B. 26,15C. 15,26D. 265、设x是一个bool型的逻辑量,y的值为10,则表达式 x && y值为( )A. 1B. 0C. 与x值相同D. 与x值相反6、与表达式x>0 && x<=10相反的表达式为( )A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>107、循环语句“for(int i=0; i<n; i++) cout<<i*i<<’ ’;”中循环体执行的次数为( )A. 1B. n-1C. nD. n+18、循环体至少被执行一次的语句为( )A. for循环B. while循环C. do…while循环D. 任一种循环9、在下面的一维数组定义中,哪一个有语法错误( )A. int a[]={1,2,3};B. int a[10]={0};C. int a[];D. int a[5];10、在下面的字符数组定义中,哪一个有语法错误( )A. char a[20]=”abcdefg”;B. char a[]=”x+y=55.”;C. char a[15];D. char a[10]=’5’;11、以下说法中正确的是( )A. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中12、以下叙述中不正确的是( )A. 在一个函数中,可以有多条return语句B. 函数的定义不能嵌套,但函数的调用可以嵌套C. 函数必须有返回值D. 不同的函数中可以使用相同名字的变量13、函数重载是指( )A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同14、以下关于函数模板叙述正确的是( )A. 函数模板也是一个具体类型的函数B. 函数模板的类型参数与函数的参数是同一个概念C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数D. 用函数模板定义的函数没有类型15、函数原型声明语句正确的是( )A. int Function(void a);B.void Function (int);C. int Function(a);D.void int(double a);16、设有如下函数定义int f(char *s){char *p=s;while(*p!=’\0’) p++;return(p-s);}在主函数中用cout<<f(“good”)调用上述函数, 则输出结果为( )A. 3B. 4C. 5D. 617、若用数组名作为函数调用的实参,传递给形参的是( )A. 数组的首地址B. 数组中第一个元素的值C. 数组全部元素的值D. 数组元素的个数18、以下正确的描述是( )A. 不允许设置参数的默认值B. 设置参数的默认值只能在定义函数时设置C. 设置部分参数的默认值时,指定默认值的参数应放在形参列表的最右端D. 设置参数的默认值时,应该全部参数都设置19、将两个字符串连接起来组成一个字符串时,选用( )函数A. strlen()B. strcap()C. strcat()D. strcmp()20、C++语言的编译系统对宏命令的处理是( )A. 在程序运行时进行B. 在程序连接时进行C. 和C++程序的其它语句同时进行编译D. 在对源程序进行正式编译之前进行21、假定变量m定义为“int m=7;”,则定义变量p的正确语句为( )A. int p=&m;B. int *p=&m;C. int &p=*m;D. int *p=m;22、假定一条定义语句为“int a[10], x, *p=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为( )A. x=p[3];B. x=*(a+3);C. x=a[3];D. x=*p+3;23、假定p指向的字符串为”string”,则cout<<p+3的输出结果为( )A. stringB. ringC. ingD. i24、面向对象方法的多态性是指( )A. 一个类可以派生出多个特殊类B. 一个对象在不同的运行环境中可以有不同的变体C. 针对同一消息,不同的对象可以以适合自身的方式加以响应D. 一个对象可以是由多个其他对象组合而成的25、面向对象软件开发中使用的OOD表示( )A. 面向对象分析B. 面向对象设计C. 面向对象语言D. 面向对象方法26、在一个类的定义中,包含有( )成员的定义A. 数据B. 函数C. 数据和函数D. 数据或函数27、在关键字protected后面定义的成员为类的( )成员A. 私有B. 公用C. 保护D. 任何28、假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为( )A. x(a)B. x[a]C. x->aD. x.a29、假定AA为一个类,int a()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为( )A. int AA::a()B. int AA:a()C. AA::a()D. AA::int a()30、假定AB为一个类,则执行“AB x(a,5);”语句时将自动调用该类的( )A. 带参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数二、(本题满分30分,每空1分)填空题说明:将答案写入空格处。

1、一个函数定义由________和________两部分组成2、当使用_______保留字作为函数类型时,该函数不返回任何值3、假定x=5,y=6,则执行表达式y*=x++计算后,x和y的值分别为__________和_________4、C++常数0345对应的十进制值为__________;C++常数0x145对应的十进制值为__________5、char、int和double类型的数据分别占用______、______和______个字节6、字符串”student\’s.\n”的长度为__________7、假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为__________和__________8、假定x是一个逻辑量,则x || !x的值为__________9、假定x=10,则表达式x<=10?20:30的值为______10、存储字符’a’和字符串”a”分别需要占用________和________个字节11、strlen(”apple”)的返回结果为________,strcmp(”a”,”A”)的返回结果为________12、若需要把一个字符串”aaa”赋值到字符数组a中,则需要执行________函数来实现13、若“double x;”是文件F1.CPP中的一个全局变量定义语句,若文件F2.CPP中的某个函数需要访问此x , 则应在文件F2.CPP中添加对x的声明语句为_________________14、C++提供的预处理命令有宏定义命令,条件编译命令和_________15、若有定义“struct AA {int a; char b; double c;}x;”,则x占用空间大小为________字节16、假定指向一维数组b中元素b[4]的指针为p,则p+3所指向的元素为_______,p-2所指向的元素为________17、若要把y定义为整型变量x的引用,则所使用的定义语句为________18、已知语句“cout<<p;”的输出是“Hello!”,则语句“cout<<*p;”输出的是__________19、假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为__________20、已知有定义“int x, a[]={15,17,19}, *pa=a;”,在执行“x=*pa++;”后,*pa的值是________21、数组a定义为“int a[100];”,要使p[j] 与a[j] 等效,则指针p应定义为__________三、(本题满分18分,每空2分)补充程序题1、统计字符串中英文字母个数的程序#include “iostream”int count (char str[]);int main(){char s1[80];cout <<”Enter a line:”;cin >>s1;cout <<”count=”<<count(s1)<<endl;return 0;}int count(char str[]){int num=0;for(int i=0;str[i];i++)if (str[i]>=’a’ && str[i]<=’z’ ||___(1)___ ) ___(2)___;___(3)___;}答案为:(1)(2)(3)2、对数组a[n]按升序进行的起泡排序算法void SelectSort(int a[], ___(1)___){int i,j,tfor(i=0;i<n-1;i++)for(j=0;j<n-1-i;j++)if( (2) ){ t=a[j];___(3)__;a[j+1]=t;}}答案为:(1)(2)(3)3、已知一个类的定义如下:#include “iostream”class AA{int a[10];int n;public:void SetA(int aa[], int nn); //用数组aa初始化数据成员a, //用nn初始化数据成员nint MaxA( ); //从数组a中前n个元素中查找最大值void PrintA(); //输出数组a中的前n个元素的最大值};该类中MaxA()函数的实现如下,请在标号位置补充适当的内容。

相关文档
最新文档