C复习题2
面向对象程序设计 C 复习题

一选择题(共 45题)1.对类的构造函数和析构函数描述正确的是()。
A.构造函数可以重载,析构函数不能重载√B.构造函数不能重载,析构函数可以重载C.构造函数可以重载,析构函数也可以重载D.构造函数不能重载,析构函数也不能重载2.继承具有(),即当基类本身也是某一个类派生类时,底层的派生类也会自动继承间接基类的成员。
A)规律性 B.传递性√ C.重复性 D.多样性3.假设OneClass为一个类,则该类的复制初始化构造函数的声明语句为()。
(OneClass p); B. OneClass& (OneClass p );C. OneClass(OneClass & p);√D. OneClass (OneClass * p);4.对于结构中定义的成员,其默认的访问权限为()。
B. protected D. static5.下面对静态数据成员的描述中,不正确的是()。
A.静态数据成员可以在类体内进行初始化√B.静态数据成员不可以在类体内进行初始化C.静态数据成员能受private控制符的作用D.静态数据成员调用前必须初始6. C++中的类有两种用法:一种是类的实例化,即生成类对象,并参与系统的运行;另一种是通过()派生了新的类。
A.复用B.继承√C.封装D.引用7. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a 的格式为()。
A. x(a)B. x[a]C. x->aD. √9. 对于一个类的构造函数,其函数名与类名( )。
A. 完全相同√B. 基本相同C. 不相同D. 无关系10. 一个类的构造函数通常被定义为该类的( )成员。
A. 公有√B. 保护C. 私有D. 友元11. 一个类的析构函数通常被定义为该类的( )成员。
A. 私有B. 保护C. 公有√D. 友元12. 一个类的静态数据成员所表示属性 ( )。
A. 是类的或对象的属性B. 只是对象的属性C. 只是类的属性√D. 类和友元的属性13.类的析构函数的作用是()。
浙江大学C语言总复习题--综合

综合练习一、判断题1.在Trubo_C中运行一个C程序时,实际上是运行后缀为.EXE的可执行文件。
2.在C语言中整数可用十进制数、八进制数和二进制数三种数制表示。
3.在程序的运行过程中,整型常量的值是可以改变的。
4. C程序中,用/* 和 */界定的部分称之为注释,注释部分对程序的运行不起作用。
5.大括弧 { } 只能用来括复合语句。
6. do_while语句构成的循环不能用其它循环语句来代替。
7.不能用scanf 函数输入字符。
8.在 C 程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。
9. 一个变量的作用域取决于变量定义语句在程序中出现的位置。
10.C 语言的一个编译预处理命令用 # 开始,最后加分号。
11. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。
12. C语言中以 %o开头的数是八进制整数。
13.在程序的运行过程中,符号常量的值是可以改变的。
14.在 C 程序中,APH 和 aph 代表不同的变量。
15.一个复合语句在语法上被认为是一条语句。
16. 只能用while语句构成循环。
17.不能用printf函数输出字符。
18. C程序中各函数之间既允许直接递归调用也允许间接递归调用。
19. 在函数外部定义的变量称为全局变量。
20.宏定义的命令行可以看作是一条C 语句。
21. C语言源程序是可以用来直接运行的程序。
22. C语言中以 %x 开头的数是十六进制整数。
23. C程序中定义的变量,代表内存中的一个存储单元。
24.在 C 程序中,9ab是非法的用户标识符。
25. C语句必须用一个分号作为结束。
26. do_while语句构成的循环不能用break语句退出。
27. scanf 函数是 c 语言的标准输入函数。
28. C程序的main函数不能有参数。
29. 在函数内部定义的变量称为局部变量。
30.用#include包含的头文件的后缀必须是.h。
31. C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。
C语言试题 (无答案)

C语言复习题一、选择题1. C语言中,if语句后的表达式()A.只能是关系表达式B. 只能是逻辑表达式C.只能是关系或逻辑表达式D. 可以是任何合法的表达式2 关于与switch语句配套的case语句中所使用的表达式,说法正确的是()。
A.可以是变量B. 可以是常量或变量C.只能是常量或常量表达式D.无论是何种表达式,只要在执行时有确定的值就行3.下列数组定义语句中,正确的是()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.int a[][]={{1,2,3},{4,5,6}};4. 已定义int a[][3]={1,2,3,4,5,6,7,8,9};则a[1][2]的初值为()A. 2B. 4C. 6D. 85.以下正确的函数首部是()。
A. void fun(int x,int y)B. void fun(int x;int y)C. void fun(int x,y)D. void fun(x,y)6.下面语句中,:int *px = &a;其中指针变量的名字应该()A. *pzB. aC. pxD. &a7. 当调用函数时,实参时一个数组名,则向函数传递的是()A. 数组的长度B.数组的首地址C. 数组的每一个元素的地址D. 数组的每一个元素的值8.以下叙述正确的是()A. 全局变量的作用域一定比局部变量的作用域作用范围的B. 静态static类型变量的生存期贯穿于整个程序的运行期间C. 函数的形参都属于全局变量D. 未在定义语句中赋初值的auto变量和static变量的初值都是随机值9.假设已有#define M(r)r*r,则语句printf(“%d”,M(2+3));的执行结果是()A.11B.5C.25D.410. 已知int a=12;a的地址是2200,若想使整型指针变量p指向a,赋值正确的是()A &a=2200;B *p=12;C *p=2200D p=&a;11. 以下可用作C语言用户自定义标识符的一组是()A. Void, return, ifB. printf, include, fabsC. Max, _abs, MainD. 2abc, pay$, sum-1012. 下面定义字符型变量ch的语句不正确的是()A. char ch=‟\X2A‟;B. char ch=”c”;C. char ch=65;D. char ch=NULL;13. 以下选项中,与k=n++;完全等价的语句是()A. k=n;n=n+1;B. n=n+1;k=n;C. k=++n;D. k+=n+1;14. 已定义inta[][3]={1,2,3,4,5,6,7,8,9};,则a[1][2]的初值为()A. 2B. 4C. 6D. 815. 当调用函数时,实参是一个数组名,则向函数传递的是()A. 数组的长度B. 数组的首地址C. 数组的每一个元素的地址D. 数组的每一个元素的值16. 对for(表达式1;;表达式3),可理解为()A. for(表达式1;0;表达式3)B. for(表达式1;1;表达式3)C. 语法错误D. 仅执行循环一次17. 转换说明符%x的输出形式是()。
c语言习题集及答案

计算机系统概述一、简答题1.什么是计算机系统?包括哪几部分?答:计算机系统是一种动态实体,用于解决问题以及与它所处的环境进行交互;计算机系统包括硬件、软件和它们管理的数据。
3.简述计算机软件各个时代的主要特征。
答:第一代机器语言编写,第二代高级语言编写,第三代出现操作系统,第四代出现结构程序设计,第五代出现面向对象的程序设计语言。
4.计算机是如何分类的?答:按工作原理和运算方式分为数字电子计算机(Digital Computer)、模拟电子计算机(Analog Computer)和数字模拟混合计算机(Hybrid Computer);按设计目的分为通用计算机和专用计算机;按用途科学计算、工程计算机用的计算机、工业控制用的计算机和数据处理用的计算机;按规模和性能分为巨型机、大型机、小型机、微型机、工作站、服务器、网络计算机和嵌入式计算机等。
5.计算机具有哪些特点?答:运算速度快、精度高;具有逻辑判断功能;具有记忆功能;自动化程度高、通用性强。
6.衡量计算机性能的指标有哪些?答:从几个方面衡量,衡量cpu的指标有字长、时钟周期和主频,衡量内存的指标有内存容量、存取周期,衡量外设的指标有输入输出最高频率。
7.简述计算机主要应用在哪些方面。
答:科学计算、信息传输和信息处理、实时控制、辅助功能(设计/制造/教学)、艺术和娱乐。
8.简述计算机系统抽象分层,及每一层的功能。
答:主要分为七层,信息表示层反映了在计算机上表示信息的方式,它是一个纯概念层;硬件层探讨计算机系统的物理硬件组成;程序设计层负责解决人们的一些问题、用于实现计算的指令以及管理数据;操作系统层用来管理计算机的各种资源,提供人与计算机交互的接口;网络通信层是计算机系统运行的基础,计算机连接到网络上共享信息和资源;应用软件层的重点则是将计算机与一个实际应用领域相结合。
计算机中的信息表示一. 判断题1.二进制数在计算中很重要,因为二进制数可以被转换成以任何数为基数的数。
C语言基础练习题(含答案)(2)

int k;
scanf(”%d”, &k);
switch(k)
{ case 1: printf(”%d\n”, k++);
case 2: printf(”%d\n”, k++);
case 3: printf(”%d\n”, k++);
case 4: printf(”%d\n”, k++);
D.switch (grade)
{ case ’C’ :printf(”<60\n”);
break;
case ’B’ :printf(”60——84\n”);
break;
default: printf(”grade is error!\n”);
C.!(x%2) D.x%2
12.已知 x=45, y=’a’, z=0; 则表达式(x>=z && y<’z’ || !y)的值是()。
A.0 B.语法错
C.1 D.“假”
第二章 选择结构
2.1 选择题
1. 已有定义:int x=3, y=4, z=5; 则表达式!(x+y)+z-1 && y+z/2的值是()。
A.6 B.0 C.2 D.1
2. 设a=5,b=6,c=7,d=8,m=2,n=2, 则执行(m=a>b) && (n=c>d)后n的值为()。
#include ”stdio.h”
main()
{ int a=1;
if (a++>1) printf(”%d\n”, a);
C语言程序设计复习题(选择题)新 2

第二部分选择题1.假设整型变量a为2,使b的值为0的表达式是( )。
A)b=a/2 B)b=6-(--a) C)b=a%2 D)b=a>3?0:1提示正确答案为C2. 假设x=2.5,a=7,y=4.7,则表达式:x+a%3*(int)(x+y)%2/4的值为()。
A)2.5 B)2.75 C)3 D)9.5 提示正确答案为A3. 假设a=3,b=4,c=5,则逻辑表达式: !(a+b)+c-1&&b+c/2的值是( )。
A)true B)false C)0 D) 1 提示正确答案为D4. 假设所有变量均为整型,则表达式:(a=2,b=5,b++,a+b)的值为()。
A)7 B)8 C)6 D)2 提示正确答案为B5. 设整型变量x的值为5,y的值为2,则值为1的表达式是( )。
A)!(y==x/2) B)y!=x%3 C)x>0&&y<0 D)x!=y||x>=y6.已知a=12,表达式a+=a-=a*=a的值为()。
A)144 B)-12 C)0 D)24 提示正确答案为C6. 在下面C语言的函数说明语句中,正确的是()。
A) int fun(int x, int y);B) int fun(int x,y);C) int fun(x,y);D) int fun(int x; int y); 提示正确答案为A7. 设有整型变量a, 实型变量f,双精度型变量x,则表达式10+'b'+x*f值的类型为( )。
A) int B) float C) double D) 不能确定提示正确答案为C8. 若有int k=5; float x=1.2;则表达式(int)(x+k)的值是()。
A)5 B)6.2 C)7 D)6 提示正确答案为D9. 表达式k=(12<10)?4:1?2:3的值为()。
A) 1 B) 2 C) 3 D) 4 提示正确答案为B10. 下列哪组运算符的优先级相同且运算次序从左到右()。
C语言理论复习题

序号
题目
正 确 A B 答 案
51 52 53 54 55 56 57 58 59 60 61
使用strlen函数可以求出一个字符串的实际长度 对错 B (包含‘\0’字符)。 如有定义char a[]="student";则数组a的长度为7 对错 B 如有定义char a[20];则可以通过a=“I am a 对错 B boy”;给a赋值。 如有定义int a[2][3];则数组a的最后一个元素为 对错 A a[1][2]。 如有定义int a[3][4]={0}; 则数组a的所有元 对错 A 素初值均为0 C语言中数组名实质上是数组的首地址,是一个变 对错 B 量地址,可对其进行赋值 对错 B 构成数组的各个元素可以有不同的数据类型。 若有说明:int a[10];,则可以用a[10]引用数组a 对错 B 的第10个元素。 函数的形参为一个数组,则调用此函数时将数组名 对错 A 作为对应的实参。 do...while的循环体可能一次也不会执行。 对错 B
char *p[10];定义了一个指向字符数组的指针 对错 B 变量。 数组名实际上是此数组的首地址,所以数组名相当 62 对错 B 于一个指针变量。 do...while语句与while语句的区别仅仅是关键字 63 对错 B while的位置不同。 64 使用文件前必须先打开文件 对错 A
判断题 第 4 页
判断题
第 8 页
判断题
第 9 页
判断题
第 10 页
判断题
第 11 页
判断题
第 12 页
判断题
第 13 页
判断题
第 14 页
判断题
第 15 页
判断题
第 16 页
C语言习题选2

第一章、 数组一.选择题 1.若有语句int a[8];则下述对 a 的描述正确的是( A )。
(A )定义了一个名称为a 的一维整型数组,共有8个元素 (B )定义了一个数组a ,数组a 共有9个元素 (C )说明数组a 的第8个元素为整型变量 (D )以上可选答案都不对 2.在C 语言中,引用数组元素时,其数组下标的数据类型允许是( C )。
(A )整型常量 (B )整型表达式 (C )整型常量或整型表达式 (D )任何类型的表达式 3.下述对C 语言字符数组的描述正确的是( A )。
(A )任何一维数组的名称都是该数组存储单元的开始地址,且其每个元素按照顺序连续占用存储空间 (B )一维数组的元素在引用时其下标大小没有限制 (C )任何一个一维数组的元素,可以根据内存的情况按照其先后顺序以连续或非连续的方式占用存储空间 (D )一维数组的第一个元素是其下标为1的元素 4.下述对C 语言字符数组的描述中正确的是(B )。
(A )任何一个一维数组的元素在引用时,其下标可以是整型、实型或字符型常量 (B )一维数组的元素实质上就是一个变量,代表内存中的一个存储单元 (C )如果要引用数组中的每一个元素,则直接使用该数组名称即可? (D )以上都不对 5.以下对一维整型数组a 的正确说明是(D )。
(A )int a(10); (B)int n=10,a[n]; (C) int n; scanf(“%d ”,&n);int a[n]; (D) #define SIZE 10 int a[SIZE]; 6.以下能对一维数组a 进行正确初始化的语句是( C )B? (A )int a[10]=(0,0,0,0,0);(B )int a[10]={};(C )int a[]={0};(D )int a[10]=(10*1); 7.若有说明:int a[3][4];则对a 数组元素的正确引用是( C ) (A )a[2][4] (B )a[1,3] (C )a[1+1][0] (D )a(2)(1) 8.以下能对二维数组a 进行正确初始化的语句是(B ) (A )int a[2][]={{1,0,1},{5,2,3}};(B )int a[][3]={{1,2,3},{4,5,6}}; (C )int a[2][4]={{1,2,3},{4,5},{6}};(D )int a[][3]={{1,0,1}{},{1,1}}; 9.若有说明:int a[3][4]={0};则下面正确的叙述是( D ) (A )只有元素a[0][0]可得到初值0(B )此说明语句不正确 (C )数组a 中各元素都可得到初值,但其值不一定为0 (D )数组a 中每个元素均可得到初值0 10.以下各组选项中,均能正确定义二维实型数组a 的选项是( C ) (A )float a[3][4]; float a[][4]; float a[3][]={{1},{0}}; (B )float a(3,4); float a[3][4]; float a[][]={{0};{0}}; (C )float a[3][4]; static float a[][4]={{0},{0}}; (D )float a[3][4]; float a[3][]; 11.若二维数组a 有m 列,则计算任一元素a[i][j]在数组中位置的公式为( D ) (假设a[0][0]位于数组的第一个位置上。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.C语言中最基本的数据类型是()
A.整型、实型、字符型
B.整型、实型、逻辑型
C.整型、实型、逻辑型、字符型
D.整型、字符型、逻辑型
2.以下叙述正确的是()
A.可以在一个函数中定义另一个函数
B.构成c程序的基本单位是函数
C.所有被调用的函数一定要在调用前进行定义
D.主函数必须放在其它函数之前
3.假如有如下语句,则通过指针变量c得到a的数值的方式是()
int a,*b,**c; b=&a; c=&b;
A.指向运算
B.直接存取
C.间接存取
D.取地址运算
4.有如下定义类型语句,若从键盘输入数据,正确输入语句是()
int x; char y; char z[20];
A.scanf(“%d%c%c”,&x,&y,&z);
B.scanf(“%d%c%s”,&x,&y,&z);
C.scanf(“%d%c%s”,&x,&y,z);
D.scanf(“%d%c%c”,&x,&y,z);
5.若已定义int a[9],*p=a;不能表示a[1]地址的表达式是()
A.a+1
B.p+1
C.++p
D.a++
6.已有定义int x=3,y=4,z=5;则表达式!(x+y)+z-1&&y+z/2的值为()
A.0
B.6
C.1
D.2
7.关系式3≤x≤10所对应的C语言表达式为()
A.(x>=3)and (x<=10)
B.(x>=3)&&(x<=10)
C.(10>=x>=3)
D.(x<=10)&(x>=3)
8.下列语句中符合语法的赋值语句是()
A.a=7+b++=a+7;
B.a=7+b+c=a+7;
C.a=7+b,c=a+7;
D.a=7+b,b++,a+7
10.以下给字符数组str定义和赋值正确的是()
A.char str[ ]={“china”};
B.char str[10]
C.char str[10];
Str={“china”}; strcpy(str,”hello,world!”);
D.char str[10]={“hello ,world!”};
11.有以下函数定义 void fun(int n,double x) {…}
若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用的语句是()
A.fun(int y,double m);
B.fun (x,n )
C.k=fun(10,12.5)
D.void fun(n,x);
12.使i的值运算结果为4的表达式是()
A.int i=1,j=0;
B. int i=0,j=0;
j=i=((i=3)*2); (i=3,(j++)+i);
C.int i=1,j=1;
D.int i=0,j=1;
i+=j+=2; (j==1)?(i=1):(i=3)
13.以下for循环是()
for(x=0,y=0;(y!=123)&&(x<4);x++);
A.循环次数不定
B.无限循环
C.执行3次
D. 执行4次
14.执行语句“x=(a=3,b=a--)”后x,a,b的值依次为()
A.3,2,2
B.3,3,2
C.2,3,2
D.3,2,3
15.设a为存放短整型的一维数组,如果a的首地址为p,那么a中第i个元素的地址
为()
A.p+(i-1)
B.p+i*2
C.p+(i-1)*2
D.p+i
16.下面程序的输出结果是()
main( ){
int n=9;
while(n>6)
{n--;printf(“%d”,n);}
}
A.876
B.987
C.9876
D.8765
15.以下对二维数组a进行不正确初始化的是()
A.int a[ ][3]={{3,2,1},{1,2,3}}
B.int a[ ][3]={3,2,1,1,2,3}
C.int a[ ][ ]={{3,2,1},{1,2,3}}
D.int a[2][3]={{3,2,1},{1,2,3}}
1.若在程序中用到strlen()函数时,应在程序开头写上包含命令
2.若在程序中用到putchar,应在程序开头写上包含命令
3.表达式(-8)%(-3)的值为,8%(-3)的值为
4.若变量x,y已定义为int类型并赋值25和36,要求用printf函数以a=25,b=36的形式输出,则完整
的输出语句为
5.以下程序的执行结果为
main( )
{ float f=3.1415927 ; printf(“%8.4f”, f );
6.C程序设计中语句后的符号/*……*/所起作用是
7.执行下列语句int a=6; a+=a-=a*a; 后,a的值为
下面程序的功能是计算n!,请指出错误并改正。
main( )
{ int i,n,s=0;
scanf(“%d”,n);
for(i=1;i<=n;i--)
s=s*i;
printf(“%d!=%f”,n,s);
};
1. 输出200以内能被4整除且个位数为6的所有数
2. 求y的近似值(10分)
y=1/(12+1)+1/(22+1)+1/(32+1)+…1/(n2+1) (精度为10-6)。