当前位置:文档之家› c++习题集

c++习题集

c++习题集
c++习题集

一、单选题:

1. 能作为C++程序的基本单位是( )。

A. 字符

B. 语句

C. 函数

D. 源程序文件

2. 程序中主函数的名字为( )。

A. main

B. MAIN

C. Main

D. 任意标识符

3. 关于C++与C 语言的关系的描述中,( )是错误的。

A. C 语言是C++的一个子集;

B. C 语言与C++是兼容的;

C. C++对C 语言进行了一些改进;

D. C++和C 语言都是面向对象的

4. 可用作C++语言用户标识符的一组标识符是( )。

A. void define +WORD

B. a3_b3 _123 YN

C. for -abc Case

D. 2a DO sizeof

5. 存储以下数据,占用存储字节最多的是( )。

A. 0

B. ‘0’

C. “0”

D. 0.0

6. 设int a=12;则执行完语句a+=a*a ;后,a 的值是( )。

A. 12

B. 144

C. 156

D. 288

7. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式

abc

1的表达式是( )。 A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c

8. 以下说法中正确的是( )。

A. C++程序总是从第一个定义的函数开始执行

B. C++程序总是从main 函数开始执行

C. C++函数必须有返回值,否则不能使用函数

D. C++程序中有调用关系的所有函数必须放在同一个程序文件中

9. 下面有关构造函数的描述中,正确的是( )。

A. 构造函数可以带有返回值

B. 构造函数的名字与类名完全相同

C. 构造函数必须带有参数

D. 构造函数必须定义,不能缺省

10.在声明类时,下面的说法正确的是( )。

A. 可以在类的声明中给数据成员赋初值

B. 数据成员的数据类型可以是register

C. private ,public ,protected 可以按任意顺序出现

D. 没有用private ,public ,protected 定义的数据成员是公有成员

11.在下面有关析构函数特征的描述中,正确的是( )。

A. 一个类可以有多个析构函数

B. 析构函数与类名完全相同

C. 析构函数不能指定返回类型

D. 析构函数可以有一个或多个参数

12.构造函数是在( )时被执行的。

A. 程序编译

B. 创建对象

C. 创建类

D. 程序装入内存

13. 下面有关静态成员函数的描述中,正确的是( )

A. 在静态成员函数中可以使用this 指针

B. 在建立对象前,就可以为静态数据成员赋值

C. 静态成员函数在类外定义是,要用static 前缀

D. 静态成员函数只能在类外定义

14.下面有关友员函数的描述中,真确的说法是( )

A. 友员函数是独立于当前类的外部函数

B. 一个友员函数不可以同时定义为两个类的友员函数

C. 友员函数必须在类的外部进行定义

D. 在类的外部定义友员函数时必须加上friend关键字

15.友员的作用之一是()

A. 提高程序的运行效率

B. 加强类的封装

C. 实现数据的隐蔽性

D. 增加成员函数的种类

16.使用派生类的主要原因是()

A. 提高代码的可重用性

B. 提高程序的运行效率

C. 加强类的封装性

D. 实现数据的隐藏

17.在C++中继承方式有几中()

A. 1

B. 2

C. 3

D. 4

18.假设已经定义好了类student,现在要定义类derived,它是从student私有派生的,则定义类derived的正确写法是()

A. class derived ::student private{ //………….}

B. class derived ::student public { //………….}

C. class derived ::public student { //………….}

D. class derived ::private student{ //………….}

19.派生类的对象对它的基类成员中()是可以访问的。

A.公有继承的公有成员;

B.公有继承的私有成员;

C.公有继承的保护成员;

D.私有继承的公有成员。

20. 类中定义的成员默认为()访问属性。

A. public

B. private

C. protected

D. friend

21.下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()合适。

A. 内联函数;

B. 重载函数;

C. 递归调用;

D. 嵌套调用。

22.C++对C语言作了很多改进,下列描述中()使得C语言发生了质变,从面向过程变成了面向对象。

A. 增加了一些新的运算符;

B. 允许函数重载,并允许设置缺省参数;

C. 规定函数说明必须用原型;

D. 引进了类和对象的概念;

23.按照标识符的要求,()符号不能组成标识符。

A. 连接符

B. 下划线

C.大小写字母

D. 数字字符

24.下列变量名中,()是合法的。

A CHINA

B byte-size

C double

D A+a

25.下列各种函数中,()不是类的成员函数。

A 构造函数

B 析构函数

C 友元函数

D 拷贝构造函数

26.下列()是正确的语句。

A ;

B a=17

C x+y

D cout<<"\n"

27.不能作为函数重载判断的依据的是( )

A.返回类型

B. const

C.参数个数

D. 参数类型

28.通常,拷贝构造函数的参数是( )

A.某个对象名

B.某个对象的成员名

C.某个对象的引用名

D.某个对象的指针名

29.下面对静态数据成员的描述中,正确的是( )

A 类的不同对象有不同的静态数据成员值

B 类的每个对象都有自己的静态数据成员

C静态数据成员是类的所有对象共享的数据

D 静态数据成员不能通过类的对象调用

30.假定AB为一个类,则执行AB x;语句时将自动调用该类的( )

A.有参构造函数

B.无参构造函数

C.拷贝构造函数

D.赋值构造函数

31.C++程序从上机到得到结果的几个操作步骤依次是( )。

A. 编译、编辑、连接、运行

B. 编辑、编译、连接、运行

C. 编译、运行、编辑、连接

D. 编辑、运行、编辑、连接

32.假定一条定义语句为“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;

33.关于封装,下列说法中不正确的是()。

A. 通过封装,对象的全部属性和操作结合在一起,形成一个整体

B. 通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)

C. 通过封装,每个对象都成为相对独立的实体

D. 通过封装,对象的属性都是不可见的

34.预处理命令在程序中都是以( )符号开头的。

A. *

B. #

C. &

D. @

35.存储以下数据,占用存储字节最少的是()。

A. 0

B. ‘0’

C. “0”

D. 0.0

36.程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。

A. 空格或逗号

B. 逗号或回车

C. 逗号或分号

D. 空格或回车

37.假定变量m定义为“int m=7;”,则定义变量p的正确语句为()。

A. int p=&m;

B. int *p=&m;

C. int &p=*m;

D. int *p=m;

38.下面的哪个保留字不能作为函数的返回类型?。

A. void

B. int

C. new

D. long

39.采用重载函数的目的是()。

A.实现共享

B.减少空间

C.提高速度

D.使用方便,提高可读性

40.假定AB为一个类,则( )为该类的拷贝构造函数的原型说明。

A. AB(AB x);

B. AB(int x);

C. AB(AB& x);

D. void AB(AB& x);

41、 C++对C语言作了很多改进,下列描述中()使得C语言发生了质变,从面向过程变成了面向对象。

A、增加了一些新的运算符;

B、允许函数重载,并允许设置缺省参数;

C、规定函数说明必须用原型;

D、引进了类和对象的概念;

42、所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( )。

A.类

B.对象

C.函数体

D.数据块

43、关于new运算符的下列描述中,()是错误的。

A、它可以用来动态创建对象和对象数组;

B、使用它创建的对象或对象数组可以使用运算符delete删除;

C、使用它创建对象时要调用构造函数;

D、使用它创建对象数组时必须指定初始值;

44、()不是构造函数的特征。

A、构造函数的函数名与类名相同;

B、构造函数可以重载;

C、构造函数可以设置缺省参数;

D、构造函数必须指定类型说明。

45、假定一个类的构造函数为B(int x,int y){a=x--;b=a*y--;},则执行B x(3,5); 语句后,x.a和x.b的值分别为( )

A、 3和5

B、 5和3

C、 3和15

D、20和5

46、关于成员函数特征的下列描述中,()是错误的。

A、成员函数一定是内联函数;

B、成员函数可以重载;

C、成员函数可以设置缺省参数值;

D、成员函数可以是静态的;

47、在公有继承的情况下,基类成员在派生类中的访问权限()。

A、受限制

B、保持不变

C、受保护

D、不受保护

48、友元的作用是()。

A、提高程序的运用效率;

B、加强类的封装性;

C、实现数据的隐藏性;

D、增加成员函数的种类;

49、在C++中,关于下列设置缺省参数值的描述中,()是正确的。

A、不允许设置缺省参数值;

B、在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;

C、只能在函数的定义性声明中指定参数的缺省值;

D、设置缺省参数值时,必须全部都设置;

50、关于delete运算符的下列描述中,()是错误的。

A、它必须用于new返回的指针;

B、使用它删除对象时要调用析构函数;

C、对一个指针可以使用多次该运算符;

D、指针名前只有一对方括号符号,不管所删除数组的维数。

51、const int *p说明不能修改()。

A、p指针;

B、p指针指向的变量;

C、p指针指向的数据类型;

D、上述A、B、C三者;

52、当需要打开A盘上的以xxk.dat文件用于输入时,则定义文件流对象的语句为 ( )。

A、fstream fin(“A:xxk.dat”,1)

B、ifstream fin(“A:xxk.dat”,ios::nocreate)

C、ofstream fin(“A:xxk.dat”)

D、ifstream fin(“A:xxk.dat”,ios::app)

53、派生类的对象对它的基类成员中()是可以访问的。

A、公有继承的公有成员;

B、公有继承的私有成员;

C、公有继承的保护成员;

D、私有继承的公有成员;

54、假定一个字符串的长度为n,则定义存储该字符串的字符数组的长度至少为()。

A、n-1

B、n

C、 n+1

D、n+2

55、在int a=3; *p=&a;中,*p的值是()。

A、变量a的地址值

B、无意义

C、变量p的地址值

D、 3

56、下列常量中,()不是字符常量。

A、’\005’

B、’\n’

C、’c’

D、“a”

57、在int a=3,*p=&a;中,*p的值是()。

A)变量a的地址值 B)无意义 C)变量p的地址值 D) 3

58、以下4个选项中,不能看作一条语句的是()。

A) if(b==0) m=1;n=2; B) a=0,b=0,c=0; C) if(a>0); D) {;}

59、()不是构造函数的特征。

A)构造函数的函数名与类名相同 B)构造函数可以重载

C)构造函数可以设置缺省参数 D)构造函数必须指定类型说明

60、以下程序段中与语句k=a>b? 1:0;功能等价的是()。

A) if(a>b) k=1; B) if(a>b) k=0

C)if(a>b) k=1; D)if(a

61、下列常量中,()不是字符常量。

A)’\005’ B)’\n’ C) ’c’ D)"a"

62、表示“x大于1而小于10”的逻辑表达式是()。

A)11&&x<10 C) !(x<=1||x>=10) D)x>1||x<10 63、关于成员函数特征的下列描述中,()是错误的。

A)成员函数一定是内联函数 B)成员函数可以重载

C)成员函数可以设置缺省参数值D)成员函数可以是静态的

64、有以下程序

#include

void main( )

{ int i,s=0;

for(i=1;i<10;i+=2) s+=i;

cout<

程序执行后的输出结果是()。

A)自然数1~9的累加和 B)自然数1~10的累加和

C)自然数1~9中的奇数之和 D)自然数1~10中的偶数之和

65、设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()。

A) p=1; B) *q=2; C) q=p; D) *p=5;

66、()能正确输出结果:C++。

A) char s[]="C++";cout<

B)char s[3]="C++";cout<

C)char s[3]={'C','+','+','\0'};cout<

D)char s[3]={'C','+','+'};cout<

67、有以下程序段

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a,b;

b=p[5];

b中的值是()。

A)5 B)6 C) 8 D) 9

68、有以下程序

#include

void main( )

{ char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"};

cout<

}

执行后输出结果是

A)dcdbe B) abbd C) abc D) abb

69、下列静态数据成员的特性中,()是错误的。

A)说明静态数据成员时前边要加修饰符static

B)静态数据成员要在类体外进行初始化

C)静态数据成员不是所有对象所共用的

D)引用静态数据成员时,要在其名称前加<类名>和作用域运算符

70、有以下语句

struct S

{ int g;

char h;} T;

则下面叙述中不正确的是()。

A)S是结构体名 B)该结构体包含2个成员

C)S是struct类型的变量 D)T是struct S类型的变量

71、派生类的对象对它的基类成员中()是可以访问的。

A)公有继承的公有成员

B)公有继承的私有成员

C)公有继承的保护成员

D)私有继承的公有成员

72、实现运行时的多态性用。

A、重载函数

B、构造函数

C、析构函数

D、虚函数

73.下列变量名中,()是合法的。

A. CHINA

B. byte-size

C. double

D. A+a

74. 在int b[][3]={{1},{3,2},{4,5,6},{0}};b[2][2]的值是()。

A. 0

B. 2

C. 5

D. 6

75. 下列各运算符中,()优先级最高。

A. +(双目)

B. *(单目)

C. <=

D. *=

76. 下列for循环的次数为()。

for(int i(0),x=0;!x&&i<=5;i++)

A. 5

B. 6 C . 1 D. 无限

77. 下述关于break语句的描述中,()是正确的。

A. break语句可用于循环体内,它将退出该重循环。

B. break语句可用于开关语句中,它将退出开关语句。

C. break语句可用于if体内,它将退出if语句。

D. break语句在一个循环体内可以出现多次。

78. 在一个被调用函数中,关于return语句使用的描述,()是错误的。

A. 被调用函数中可以不用 return语句。

B. 被调用函数中可以使用多个return语句。

C. 被调用函数中,如果有返回值,就一定要有return语句。

D. 被调用函数中,一个return语句可返回多个值给调用函数。

79. 在C++中,关于下列设置参数默认的描述中,()是正确的。

A. 不允许设置参数的默认值。

B. 设置参数默认值只能在定义函数时设置。

C. 设置参数默认值时,应该是先设置右边的再设置左边的。

D. 设置参数默认值时,应该全部参数都设置。

80. 下列存储类标识符中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()合适。

A. 内联函数

B. 重载函数

C. 递归调用

D. 嵌套调用

81. 下列的各类函数中,()不是类的成员函数。

A. 构造函数

B. 析构函数 C . 友元函数 D. 拷贝初始化构造函数

82. ()不是构造函数的特征

A. 构造函数的函数名与类名相同

B. 构造函数可以重载

C. 构造函数可以设置缺省参数

D. 构造函数必须指定类型说明

83. f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用()是正确的。

A. p=f1

B. p=A::f1

C. p=A::f1()

D. p=f1()

84. 下列定义中,()是定义指向数组的指针p。

A. int *p[5]

B. int (*p)[5]

C. (int *)p[5]

D. int *p[ ] 85.循环while(int i=0) i--;执行次数是()。

A. 0

B. 1 C . 5 D . 无限

86. 设int x;,则经过()后,语句*px=0;可将x值置为0。

A. int * px; B . int const * px=&x;

C. int * const px=&x;

D. const int * px=&x;

87. 设void f1(int * m,long & n);int a;long b;则以下调用合法的是()。

A. f1(a,b);

B. f1(&a,b);

C. f1(a,&b);

D. f1(&a,&b)

88. 关于对象概念的描述中,()是错误的。

A. 对象就是C语言中的结构变量;

B. 对象代表着正在创建的系统中的一个实体;

C. 对象是一个状态和操作(或方法)的封装体;

D. 对象之间的信息传递是通过消息进行的;

89. 在下列double型常量表示中,()是错误的。

A. E15;

B. .35;

C. 3E5;

D. 3E-5

90. 下列给字符数组进行初始化中,()是正确的。

A. char s1[ ]="12345abcd";

B. char s2[3]="xyz";

C. char s3[][3]={‘a’,’x’,’y’};

D. char s4[2[3]={"xyz","mnp"};

91. 对于int *pa[5];的描述,()是正确的。

A. pa是一个指向数组的指针,所指向的数组是5个int型元素;

B. pa是一个指向某个数组中第5个元素的指针,该元素是int型变量;

C. pa[5]表示某个数组的第5个元素的值;

D. pa是一个具有5个元素的指针数组,每个元素是一个int型指针;

92. 下列各运算符中,()优先级最低。

A.?: B. | C. || D. !=

93. 下列for循环的循环体执行次数为()。

for(int i(0),j(10);i=j=4;i++,j- -)

A. 0;

B. 1;

C. 4;

D. 无限;

94. 下述关于开关语句的描述中,()是正确的。

A. 开关语句中default子句可以没有,也可以有一个;

B. 开关语句中每个语句序列中必须有break语句;

C. 开关语句中default子句只能放在最后;

D. 开关语句中case子句后面的表达式可以是整形表达式。

95. 下列存储类标识符中,()的可见性与存在性不一值。

A. 外部类;

B. 自动类;

C. 内部静态类;

D. 寄存器类。

96. 下述静态数据成员的特征中,()是错误的。

A. 说明静态数据成员时前边要加修饰符static;

B. 静态数据成员要在类体外进行初始化;

C. 引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符;

D. 静态数据成员不是所有对象所共用的。

97. ()是析构函数的特征。

A. 一个类中只能定义一个析构函数;

B. 析构函数与类名不同;

C. 析构函数的定义只能在类体内;

D. 析构函数可以有各个或多个参数。;

98. 已知:p是一个指向类A数据成员m的指针,A1是类A的一个对象。如果要给m赋值为5,()是正确的。

A. A1.p=5;

B. A1->p=5;

C. A.*p=5;

D. *A1.p=5;

99. 关于new运算符的下列描述中,( )是错的。

A. 它可以用来动态创建对象和对象数组;

B. 使用它创建的对象或对象数组可以使用运算符delete删除;

C. 使用它创建对象时要调用构造函数;

D. 使用它创建对象数组时必须指定初始值。

100. 派生类的构造函数的成员初始化列中,不能包含()。

A. 基类的构造函数;

B. 派生类中子对象的初始化;

C. 基类的子对象初始化;

D. 派生类中一般数据成员的初始化

101. 派生类的对象对它的基类成员中()是可以访问的。

A. 公有继承的公有成员;

B. 公有继承的私有成员;

C. 公有继承的保护成员;

D. 私有继承的公有成员。

102.C++类体系中,不能被派生类继承的有()。

A.构造函数

B.虚函数

C.静态成员函数

D.赋值操作函数

103.下面标识符中正确的是()。

A._abc B.3ab C. int D.+ab

104.下列哪项()不是面向对象程序设计的主要特征?

a.封装

b.继承

c.多态

d.结构

105.已知i=5,j=0,下列各式中运算结果为j=6的表达式是()。

A.j=i+(++j) B.j=j+i++ C.j=++i+j D.j=j+++i

106.若整型变量a、b、c、d中的值依次为:1、4、3、2。则条件表达式a

A.1 B.2 C.3 D.4

107.以下不正确的是()。

A.语句for(i=0;;i++)表示无限循环 B.for(;;)表示无限循环

C.for()也表示无限循环 D.while(1)表示无限循环

108.有如下程序:

int x=3;

do{

X-=2;

cout<

}while(!(--x));

执行这个程序的输出结果是()。

A. 1 B.30 C.1-2 D.死循环

109.若有以下定义,则说法错误的是( )。

int a=100,*p=&a ;

A.声明变量p,其中*表示p是一个指针变量

B.变量p经初始化,获得变量a的地址

C.变量p只可以指向一个整形变量

D.变量p的值为100

110.下面关于数组的初始化正确的是()。

A.char str[]={‘a\',’b\',\'c‘}

B.char str[2]={\'a\',\'b\',\'c’}

C.char str[2][3]={{\'a‘,\'b’},{’e’,\'d’},{’e’,‘f\'}}

D.char str[]={\'a\',\'b\',\'c’}

111.若已定义:

int a[]={0,1,2,3,4,5,6,7,8,9},*P=a,i;

其中0≤i≤9,则对a数组元素不正确的引用是()。

A.a[p-a] B.*(&a[i]) C.p[i] D.a[10] 112.存在定义int a[10],x,*pa;,若pa=&a[0],下列的哪个选项和其他3个选项不是等价的? ()。

A. x=*pa; B.x=*(a+l); C.x=*(pa+1); D.x=a[1]; 113.对数组名作函数的参数,下面描述正确的是(B)。

A.数组名作函数的参数,调用时将实参数组复制给形参数组。

B.数组名作函数的参数,主调函数和被调函数共用一段存储单元。

C.数组名作参数时,形参定义的数组长度不能省略。

D.数组名作参数,不能改变主调函数中的数据。

114.关于静态成员的描述中,()是错误的。

A.静态成员可分为静态数据成员和静态成员函数。

B.静态数据成员定义后必须在类体内进行初始化。

C.静态数据成员初始化不使用其构造函数。

D.静态数据成员函数中不能直接引用非静态成员。

115.下列关于构造函数的描述中,错误的是()。

A.构造函数可以设置默认的参数 B.构造函数在定义类对象的自动执行

C.构造函数可以是内联函数 D.构造函数不可以重载

116.假设OneClass为一个类,则该类的拷贝初始化构造函数的声明语句为()。

A. OneClass(OneClass p);

B. OneClass& (OneClass p);

C. OneClass(OneClass & p);

D. OneClass (OneClass *p);

117.如果类A被说明成类B的友元,则()。

A.类A的成员即类B的成员。

B.类B的成员即类A的成员。

C.类A的成员函数不得访问类B的成员。

D.类B不一定是类A的友元。

118、关于对象和类的关系,说法正确的是()。

A) 同属于一类的对象,具有相同的数据成员和成员函数。

B) 对象是具体,是类的对象,同其他变量一样,先定义后使用。

C) 同一类的不同对象,其具有的操作可不同,具体的操作也不同。

D) 不同类的对象,可有相同的操作。

119、双精度浮点型的字节数是()。

A)4 B)1 C)0 D)8

120、下列关于C++函数的说明中正确的是()。

A) 内联函数就是定义在另一函数体内部的函数。

B) 函数体的最后一条语句必须是RETURN语句。

C) 标准C++要求在调用一个函数之前,必须先声明其原型。

D) 编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式。121、下列关于虚函数的说明中,正确的是()。

A) 从虚基类继承的函数都是虚函数。

B) 虚函数不得是静态成员函数。

C) 只能通过指针和引用调用虚函数。

D) 抽象类中的成员函数都是虚函数。

122、下列符号中可以用作C++标识符的是()。

A) _radius B) foo~bar C) else D) 3room

123、结构化程序设计所规定的三种基本控制结构是()。

A)输入、处理、输出B)树形、网形、环形

C)顺序、选择、循环D)主程序、子程序、函数

124、下列语句中错误的是()。

A) const int buffer=256; B) const int int temp;

C) const double *point; D) const double *rt=new double(5.5) 125、下列关于实参和形参说法错误的是()。

A)实参可以是变量、常量、或表达式。

B)实参与形参的类型必须一致,否则会发生“类型不匹配”的错误。

C)实参对形参的数据传递是单向传递,调用结束后,实参单元被释放。

D)形参必须是变量。

126、关于内联函数说法错误的是()。

A)不是任何一个函数都可定义成内联函数。

B)内联函数的函数体内不能含有复杂的结构控制语句。

C)递归函数可以被用来作为内联函数。

D)内联函数一般适合于只有1~5行语句的小函数。

127、关于保护继承的说法正确的是()。

A)基类的公有成员、私有成员可被子类继承下来,而且性质不变。

B)基类的公有成员、私有成员可被子类继承下来,而且性质改变为保护成员。

C)基类的公有成员、私有成员可被子类继承下来,而且性质均改变为私有成员。D)基类的公有成员、私有成员可被子类继承下来,性质不变,私有成员不被继承。128、关于函数的返回值说法正确的是()。

A)由return语句返回时,只带回一值,其类型在函数定义时确定。

B)其类型由调用表达式决定。

C)函数可以没有返回值,这时在函数定义,函数的类型说明就没必要了。

D)函数调用就要有返回值,否则调用就没意义了。

129、下列合法的标识符是()。

A)abde+ B)#KSJF C)67KDJ D)DK3-

130、关于结构化程序设计方法说法错误的是()。

A)在数据处理过程中,采用的是自顶向下、分而治之的方法。

B)将整个程序按功能划分为几个可独立编程的子过程模块。

C)以“对象”或“数据”为中心。

D)数据和处理数据的过程代码是分离的、相互独立的实体。

131、运算符重载是对已有的运算符赋予多重含义,因此()。

A)可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义。

B)可以改变一个已有运算符的优先级和操作数个数。

C)只能重载C++中已经有的运算符,不能定义新运算符。

D)C++中已经有的所有运算符都可以重载。

132、关于C++程序说法不正确的是()。

A) C++程序由函数构成,但只有一个main()函数。

B) C++程序中main()函数可以在程序的任何位置。

C) C++程序由main()函数开始执行,由main()结束执行。

D) main()都是没有参数的。

133、已知a=4,b=6,c=8,d=9,则“(a++,b>a++&&c>d)?++d:a

A) 9 B)6 C)8 D) 0

134、下面有关重载函数的说法中正确的是()。

A)重载函数必须具有不同的返回值类型。

B)重载函数形参个数必须不同。

C)重载函数必须有不同的形参列表。

D)重载函数名可以不同。

135、C++语言的跳转语句中,对于break和continue说法正确的是()。

A)break语句只应用于循环体中。

B)continue语句只应用于循环体中。

C)break是无条件跳转语句,continue不是。

D)break和continue的跳转范围不够明确,容易产生问题。

136、long[int]的字节数是()。

A)4 B)1 C)0 D)8

137、下列非法的字符常量是()。

A)‘#’ B)‘\’ C)a’ D)‘A’

二、填空:

1. C++语言的头文件与源程序文件扩展名分别是()和()。

2. 在C++程序中使用基本输入与输出流时需要包含的头文件名是()。

3. 在C++语言中,惟一的一个三目运算运算符是()。

4. C++中当一个函数无返回值时,则函数的类型是()。

5. 一个类中可以有()个构造函数,只能有()个析构函数。

6.一般情况下,按照面向对象的要求,把类中的数据成员(属性)定义为()权限,

而把成员函数(方法)定义为()权限.

7.在定义类的对象时,C++程序将自动调用该对象的()函数初始化对象自身.在撤销类的对象时,C++程序将自动调用该对象的()函数.

8.类继承中,缺省的继承方式是().

9.在C++语言中,用转义字符序列()或操纵符()表示输出一个换行符。

10.表达式a=a+l表示成增量表达式为()。

11.当不需要函数返回任何值时,则应把该函数类型定义为()。

12.用于输出表达式值的标准输出流对象是()。,用于从键盘上为变量输人值的标准输人流对象是()。

13、变量分为全局和局部两种,()。变量没有赋初值时,其值是不确定的。

14、假定类AB中有一个公用属性的静态数据成员bb,在类外不通过对象名访问该成员bb的写法为()。

15、类的成员分为____和____。

16、一个____和____的关系,正如基本数据类型与该类型的变量一样,如int x;。

17、对一个类中的数据成员的初始化可以通过构造函数中的____实现,也可以通过构造函数中的____实现。

18、类有两种用法:一种是____,即生成类的对象;另一种是通过____,派生出新的类。

19、C++语言提供的____机制允许一个派生类继承多个基类,即使这些基类是相互无关的。

20、声明虚函数的方法是在基类中的成员函数原型前加上关键字____。

21、如果一个类中有一个或多个纯虚函数,则这个类称为____。

22、静态数据成员在定义或说明时,前面要加上关键字____。

23、如果成员函数不需要访问类的____成员,则可以把它声明为静态成员函数。

24、友元可以是____,也可以是____。

25、若需要把一个函数“void fun();”定义为一个类A的友元函数,则应在类A的定义中加入一条语句:____。

26、运算符函数中的关键字是____,它和____一起组成该运算符函数的函数名。

27、类中运算符重载一般采用两种形式:____和____。

28、面向对象程序设计的3大机制为:____、____和___。2、类的访问权限有____、____和____三种。

29、构造函数是____被创建时自动执行,对象消失时自动执行的成员函数称为____。

30、如果类A继承了类B,则类A称为____,类B称为____。

31、如果一个特定的类型S当且仅当它提供了类型T的行为时,则称类型S是类型T的____。

32、在类定义中,将____置于虚函数的函数原型的末尾可以声明该函数为纯虚函数。

33、类的静态成员分为____和____。

34、友元函数的声明可以放在类的____部分,也可以放在类的____部分,它们是没有区别的。

35、如果说类B是类A的友元类,则类B的所有成员函数都是类A的____。

36、设a和b是两个整型变量,我们用a+b的形式求这两个变量的和;设c和d为浮点型变量,我们用c+d的形式求这两个变量的和。显然运算符“+”具有不同的用途,这是____的例子。

37、对于双目运算符,若重载为类的成员函数,有_个参数;若重载为友元函数,则有_个参数。

38、当建立__________,程序自动调用该类的构造函数。

39、在C++中有二种参数传递方式:_________ 和_________ 。

40、模板对处理数据的类型的要求不同可以分为两种类型:_________ 和 _________。

41、异常是通过_________ 、_________和_________ 来实现的。

42、虚函数实现了C++的_________ 机制,类实现了C++的_________ 机制。

43、面向对象程序设计的_________机制提供了重复利用程序资源的一种途径。

44、C++语言程序设计的三种基本结构是:______ 、 ______ 、 ______ 。

45、为了避免嵌套的条件语句if-else的二义性,C++语言规定else与______配对使用。

46、定义函数时,在函数的类型前加上修饰词 ______,指明将该函数定义为内联函数。

47、有说明语句:*p;则*p++运算首先访问 ______,然后使______ 的值加1。

48、执行int *p=new int 操作,可以得到一个动态分配整型对象的______。

49、有说明语句:int *p;则(*p)++运算首先访问 ______,然后使 ______的值加1。50. C++目标程序经___________后生成扩展名为exe的可执行程序文件。

51. 16位计算机中整型占__________个字节存储空间。

52.要在屏幕上显示"Hello,world!"应执行语句cout<<____________________________________。

53.表达式8&3的结果是__________。

54.作为语句的函数调用是通过__________________________来体现的。

55.执行if (x>=0||x<=0) cout<<"abcd";else cout<<"wxyz";屏幕上显示的是_______________。

56.设一维整型数组data已进行了初始化,则其元素个数可由操作符sizeof通过表达式__________________________计算出来。

57.若一全局变量只允许本程序文件中的函数使用,则定义它时应加上修饰符_______________。

58.设有int w[3][4];,pw是与数组名w等价的数组指针,则pw应初始化为__________________________。

59.要使引用pr代表变量char * p;,则pr应初始化为______________________________。60.在C++中封装性、继承性和____________ 是面向对象思想的主要特征。

61.假设int a=1,b=2;则表达式a+++--b的值为 __________。

62.下面的程序实现输出x,y,z三个数中的最大值,请填入正确的内容。

#include

void main()

{ int x=5,y=8,z=9, u, v;

if_________ u=x;

else u=y;

if_________ v=u;

else v=z;

cout<<”v=”<

}

63.C++语言的参数传递机制包括传值和传地址两种,如果调用函数时,需要改变实参或者返回多个值,应该采取 _________ 方式。

64.在C++语言中,访问一个对象的成员所用的运算符是 _________,访问一个指针所指向的对象的成员所用的运算符是 _________。

65.C++语言支持的两种多态性分别是编译时的多态性和 _________的多态性。

66.设有如下程序结构:

class Box

void main()

{Box A,B,C; }

该程序运行时调用_________次构造函数;调用 _________次析构函数。

67.目前,有两种重要的程序设计方法,分别是:____________和____________。

68. C++语言提供的基本控制结构可以分为3种类型:顺序结构、__________ 和循环结构。69.函数的调用主要分为传值调用和___________调用。前者的特点是___________。70.函数重载时要求同名函数的___________或___________不同,否则无法确定是哪个函数。71.静态数据成员是类的所有对象中的___________成员,而非静态数据成员是属于___________对象的。

72.设A为test类的对象且赋有初值,则语句test B(A); 表示___________。

73.面向对象程序设计方法中的每个对象都具有___________和__________两方面的特征。

74.“类”指的是____________________________________________。

75.构造数据类型,包括数组、__________、_________、________和类等。

76.C++中数据类型标识符Signed Char,其字节数为________,范围是____________。

77.在函数体内部定义的变量称为______________。在所有函数体外部定义的变量称为_______________。

78.有一数学表达式为2/3(f-32),要写成对应的C++的表达式时,正确地写法应写_________________。

79.类的静态成员是________________的成员,不是________________的成员,静态成员在________________进行引用性说明,在_________________进行定义性说明。

80.使用传统的结构化程序设计方法设计程序的步骤是______________、____________、_____________。

81.“封装”指的是_______________________________________________。

82.可以让新类继承已定义的类的______________和______________,这个新类称为______________,原来的类称为______________。新类可以从一个类中派生,这叫______________,也可以从多个类中派生,称为______________。

83.指针类型变量用于存储______________,在内存中它占有______________存储单元。

84.类有三种继承方式,分别是:______________、______________、______________。

三、判断下列描述的正确性:

1、C++中标识符内的大小写字母是没有区别的。()

2、C++是一种以编译方式实现的高级语言。()

3、在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。()

4、在私有继承中,基类中所有成员对派生类都是不可见的。()

5、返回值类型、参数个数和类型都相同的函数也可以重载。()

6、使用关键字class定义的类中缺省的访问权限是私有(private)的。()

7、类的私有成员只能被类中的成员函数访问,任何类以外的函数对它们的访问都是非法的。

8、C++中使用了新的注释符(//),C语言中注释符(/*…*/)不能在C++中使用。()

9、While循环语句的循环体至少执行一次。()

10、引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。()

11、类封装了数据和操作。()

12、在类的定义中,必须包含private、public、protected三种存取方式对应的部分。

()

13、类中的数据成员不能为指针类型。()

14、析构函数可以有形参。()

15、派生类至少有一个基类。()

16、在公有和保护继承方式下,派生类的对象可以对基类的保护成员进行访问。()

17、全局函数和静态成员函数也能声明为虚函数。()

18、在一个类的对象空间里不包含静态成员的空间。()

19、友元本身就是类的成员。()

20、运算符重载后,原运算符的优先级和结合特性会改变。()

21、一个类只能有一个对象。()

22、在类中不能对所定义的数据成员进行初始化。()

23、类的公有成员函数是类与外界的接口。()

24、构造函数没有函数类型。()

25、在派生类的构造函数的初始化表中不能对包含基类的子对象初始化。

()

26、在公有和保护继承方式下,派生类的成员可以对基类的保护成员进行访问。

()

27、只有类的成员函数才能声明为虚函数。()

28、在一个类的对象空间里已经包含了静态成员的空间。()

29、C++不允许将构造函数、析构函数和虚函数声明为友元函数。()

30、运算符重载后,原运算符的优先级和结合特性不会改变。()

31. C++中使用了新的注释符(//),C语言中注释符(/*…*/)不能在C++中使用。()

32. 数组赋初值时,初始值表中的数据项的数目可以大于或等于数组元素的个数。()

33. 隐含的类型转换都是保值映射,显式的类型转换都是非保值映射。()

34. 宏定义命令是以分号结束的。()

35. While循环语句的循环体至少执行一次。()

36. 返回值类型、参数个数和类型都相同的函数也可以重载。()

37. 函数形参的作用域是该函数的函数体。()

38. 静态类标识符在它的作用域之外是不存在的。()

39. 对象成员的表示与结构变量成员表示相同,使用运算符.或->。()

40. 某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。()

41. 对象数组的元素可以是不同类的对象。()

42. const char *p说明了p是指向字符串的常量指针。()

43、引用就是某个变量的别名,对引用的操作,实质上就是对被引用的变量的操作。()

44、无论是私有继承还是保护继承中,基类中所有成员对派生类对象都是不可见的。

45、当break语句用在双重循环的内循环中时,它只能退出内循环到外循环中去,而不能直接退出整个双重循环。()

46、For循环是只有可以确定的循环次数时才可使用,否则不能用for循环。()

47、返回值类型、参数个数和参数类型都相同的函数也可以重载。()

48、通常的拷贝初始化函数的参数是某个对象的成员名或对象的引用名。()

49、友元函数是类的成员函数,所以可以存取或修改该类中的私有成员。()

50、已知:类A中一个成员函数说明如下:void Set(A&a);其中A &a的含意是将a 的地址值赋给变量Set。()

51、在语句const char *ptr中, ptr是指向字符串的常量指针。()

52、多继承情况下,派生类的构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序,而与派生类构造函数中所定义的成员初始化列表的各项顺序无关。()

53、在说明语句 int a(15),&b=a,*p=&a;中,b的值的*P的是不相等的。()

54、已知:int a(5),b(10); 表达式++a+b++有二义性。()

55、在不同类型操作数组成的表达式中,其表达式的类型一定是最高类型double型。()

56、break语句也可以用于if体内,它可退出if语句。()

57、在一个被调用函数中,一个return语句可返回多个值给调用函数。()

58、在传值调用中,要求实参和形参的类型完全一致并且个数相等。()

59、for循环中,循环变量的作用域是该循环的循环体内。()

60、所谓私有成员是指只有类中所提供的成员函数才能直接访问它们,任何类以外的函数对它们的访问都是非法的。()

61、const char *p说明了p是指向字符串的常量指针。()

62、私有继承中,基类中所有成员对派生类的对象都是不可见的。()

四、指出函数或程序的功能。

1、 template

void AC(Type &x , Type &y )

{

Type a=x;

x=y ;

y=a ;

}

2、int AB(int *a , int n)

{

int x=a[0];

for (int i=1; i

if (a[i]

return x;

}

3. int AB(int *a , int n){

int x=a[0];

for (int i=1; i

if (a[i]

return x;

}

4. float fact(int n)

{float t=1;

for(int i=1;i<=n;i++)

t*=i;

return t;

}

#include

void main( )

{ float t;

int n=10;

cout<

}

五、写出程序运行结果(每小题3分,共15分)

1、#include

int a[]={2,4,6,8,10};

int &index(int i)

{ return a[i];

}

void main()

{

int i;

index(3)=12;

for (i=0;i<=4;i++)

cout<

}

2、#include

void f(int *m,int n)

{

int temp;

temp=*m;

*m=n;

n=temp;

}

void main()

{

int a=5,b=10;

f(&a,b);

cout<

}

3、#include

int i=15;

void main()

{

int i;

i=100;

∷i=i+1;

cout<<∷i<

}

4、#include

class toy

{

public:

toy(int q, int p)

{

quan = q;

price = p;

}

int get_quan()

{

return quan;

}

int get_price()

{

return price;

}

private:

int quan, price;

};

main()

{

toy op[3][2]={

toy(10,20),toy(30,48),

toy(50,68),toy(70,80),

toy(90,16),toy(11,120),

};

int i;

for (i=0;i<3;i++)

{

cout<

cout<

cout<

cout<

}

cout<<"\n";

return 0;

}

5、#include

class example

{

public:

example(int n)

{

i=n;

cout<<"Constructing\n ";

}

~example()

{

cout <<"Destructing\n";

}

int get_i()

{

return i;

}

private:

int i;

};

int sqr_it(example o)

{

return o.get_i()* o.get_i();

}

main()

{

example x(10);

cout<

cout<

return 0;

}

6、#include

class Test

{

private:

int x;

public:

Test()

{

cout<<“构造函数被执行”<

x=0;

}

~Test() {cout<<“析构函数被执行”<

void p rint() {cout<<“x=”<

void main()

{

Test obj1,obj2;

obj1.print();

obj2.print();

}

7、#include

class A

{

public:

A(int *s) {cout<

};

class B:public A

{

public:

B(char *s1,char *s2):A(s1)

{

cout<

}

};

class C:public A

{

public:

C(char *s1,char *s2):A(s1)

{

cout<

}

};

class D:public B,C

{

public:

D(char *s1,char *s2,char *s3,char *s4):B(s1,s2),C(s3,s4) {

cout<

}

};

void main()

{

D d (“class A”,”class B”,”class C”,”class D”);

}

8、#include

class Base

{

public:

virtual void disp() {cout<<”base class”<

};

class Derivel:public Base

{

public:

void disp() {cout<<”derivel class”<

};

class Derive2:public Base

{

public:

void disp() {cout<<”derive2 class”<

};

void main()

{

Base *p;

Base b;

Derive1 d1;

Derive2 d2;

p=&b;

p->disp();

c语言试题及答案

1、以下正确的说法是( B ) (A) 用户若需要调用标准库函数,调用前必须重新定义 (B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 (C) 系统根本不允许用户重新定义标准库函数 (D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 2、以下正确的函数声明形式是( A ) (A) double fun(int x, int y) (B) double fun(int x; int y) (C) double fun(int x, int y); (D) double fun(int x,y); 3、以下正确的函数形式是( D ) (A) double fun(int x, int y) { z=x+y; return z;} (B) fun(int x,y) { int z; return z;} (C) fun(x,y) { int x,y; double z; z=x+y; return z;} (D) double fun(int x, int y) { double z; z=x+y; return z;} 4、以下正确的说法是( A ) 在C语言中 (A) 实参和与其对应的形参各占用独立的存储单元 (B) 实参和与其对应的形参共占用一个存储单元 (C) 只有当实参和与其对应的形参同名时才共占用存储单元 (D) 形参是虚拟的,不占用存储单元 5、若调用一个函数,且此函数中没有return语句,则正确的说法是( A ) 该函数 (A) 没有返回值 (B) 返回若干个系统默认值 (C) 能返回一个用户所希望的函数值 (D) 返回一个不确定的值 6、以下不正确的说法是( B ) C语言规定 (A) 实参可以是常量、变量和表达式 (B) 形参可以是常量、变量和表达式 (C) 实参可以为任意类型 (D) 形参应与其对应的实参类型一致 7、以下正确的说法是( C ) (A) 定义函数时,形参的类型说明可以放在函数体内 (B) return后边的值不能为表达式 (C) 如果函数值的类型与返回值类型不一致,以函数值类型为准 (D) 如果形参与实参的类型不一致,以实参类型为准 8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是( B ) (A) 地址传递 (B) 单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式

C语言试题及答案

一、单项选择题 1. 软件危机具有下列表现( d )。 I. 对软件开发成本估计不准确II. 软件产品的质量往往靠不住 III. 软件常常不可维护IV. 软件成本逐年上升 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 2. 软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是( A )。 A. 运行和维护阶段 B. 设计阶段 C. 代码实现阶段 D. 测试阶段 3. 下列属于软件的特点的是( D )。 A. 软件是一种逻辑实体,具有抽象性 B. 软件在使用过程中没有磨损、老化的问题 C. 软件不同于一般程序,它的一个显着特点是规模庞大,复杂程度高 D. 以上都正确 4. 软件工程的出现是由于( D )。 A. 软件危机的出现 B. 计算机硬件技术的发展 C. 软件社会化的需要 D. 计算机软件技术的发展 5. 软件开发技术不包含( d )。 A. 软件开发方法学 B. 软件工程环境 C. 软件工具 D. 软件质量度度量 6. 软件工程的课程特点( D )。 I. 学科理论及其知识应用的多维性 II. 工程化 III. 浓厚的方法学色彩 IV. 实践性、指导性强 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 7. 下列属于应用软件的是( b )。 I. 计算机辅助教学软件II. 软件测试工具 III. 办公自动化软件IV. 工程与科学计算软件 A. I、II和III B. I、III和IV C. II、III和IV D. 以上都正确 8. 需求分析阶段最重要的技术文档是( b )。

KeilC的运算符

Keil C的运算符 一、算术运算符:执行算术运算功能的操作符号。 表1:算术运算符 符号功能范例说明 + 加A=x+y 将x与y的变量的值相加,其和存入A变量 - 减B=x-y 将x变量的值减去y变量的值,其差存入B变量 * 乘C=x*y 将x与y的变量的值相乘,其积存入C变量 / 除D=x/y 将x变量的值除以y变量的值,其商数存入D变量 % 取余数E=x%y 将x变量的值除以y变量的值,其余数存入E变量 二、关系运算符:处理两个变量的大小关系 表2:关系运算符 符号功能范例说明 == 相等X==y 比较x与y变量的值是否相等,相等则其结果为1,否则为0 != 不相等X!=y 比较x与y变量的值是否相等,不相等则其结果为1,否则为0 > 大于X>y 若x变量的值大于y变量的值,其结果为1,否则为0 < 小于X= 大于等于X>=y 若x变量的值大于或等于y变量的值,其结果为1,否则为0 <= 小于等于X<=y 若x变量的值小于或等于y变量的值,其结果为1,否则为0 三、逻辑运算符 表3:逻辑运算符 符号功能范例说明 & 与运算(x>y)&&(y>z)若x变量的值大于y变量的值,且y变量的值大于z变量的 值,其结果为1,否则为0 || 或运算(x>y)||(y>z)若x变量的值大于y变量的值,或y变量的值大于z变量的 值,其结果为1,否则为0 ! 非(反向)运算!(x>y)若x变量的值大于y变量的值,其结果为0,否则为 1 四、布尔运算符 表4:布尔运算符 符号功能范例说明 & 按位与运算A=x&y 将x与y变量的每个位进行AND运算,其结果存入A变量 | 按位或运算B=x|y 将x与y变量的每个位进行OR运算,其结果存入B变量 ^ 异或运算C=x^y 将x与y变量的每个位进行XOR运算,其结果存入C变量 ~ 取反运算D=x~y 将x变量的值进行NOT运算,其结果存入D变量 << 左移E=x<> 右移F=x>>n 将x变量的值右移n位,其结果存入F变量 五、赋值运算符 表5:赋值运算符 符号功能范例说明 = 赋值A=x 将x变量的值存入 A += 加法赋值B+=x 将B变量的值与x变量的值相加运算,其和存入B,等同于B=B+x -= 减法赋值C-=x 将C变量的值减去x变量的值运算,差值存入C,等同于C=C-x *= 乘法赋值D*=x 将D变量的值与x变量的值相乘运算,积存入D,等同于D=D*x

C语言习题集(基础篇)

《C语言程序设计》习题篇 第一章C语言基础知识 1.1 选择题 1. 以下不是C语言的特点的是()。 A、语言简洁紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件操作 D、C语言移植性好 2.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.no.1 C._123_ D._ok 3.正确的C语言标识符是()。 A._buy_2 B.2_buy C.?_buy D.buy? 4. 请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 5.下列符号中,不属于转义字符的是()。 A.\\ B.\0xAA C.\t D.\0 6.不属于C语言关键字的是()。 A.int B.break C.while D.character 7.是C语言提供的合法关键字的是()。 A.Float B.signed C.integer D.Char 8.以下不能定义为用户标示符的是()。 A.scanf B.V oid C._3com_ D.int 9.一个C程序是由()。 A.一个主程序和若干子程序组成 B.一个或多个函数组成 C.若干过程组成 D.若干子程序组成 10. C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 11.下列说法中,错误的是()。 A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外 C.主函数只能调用用户函数或系统函数,用户函数可以相互调用

C语言程序设计试卷含答案

说明:请将单项选择题(1~50空)的正确答案涂写考试答题卡,将填空(51~75空)等文字题按【】中的序号写入下面文字答题卡,否则不得分。 二、阅读程序题文字答题卡:(每空2分,共24分) 三、完善程序填空题文字答题卡:(每空2分,共26分) 一、单项选择题(每空1分,共50分) 请将正确答案按【】中的序号写入答题卡,否则不得分。 1.在C语言中,一条语句以【】字符作为结束符。

A),B);C).D)无符号2.以下4组标识符中,能作为变量名使用的是【】。 A)age,struct,s1 B)2A,b_3,main C)ELSE,a[2],m123 D)_abc,INT,abcd 3.判断char型变量ch是否为数字字符的正确表达式为【】。 A)0<=ch<=9 B)'0'<=ch<='9' C)(0<=ch)&&(ch<=9)D)('0'<=ch)&&(ch<='9') 4.已知小写字母a的ASCII码值是97,大写字母A的ASCII码值是65,下列语句中不能输出大写字母B的是【】。 A)putchar('A'+1);B)putchar('b'-32); C)putchar(98-32);D)putchar(B); 5.空字符串的长度是【】。 A)0B)1 C)2 D)3 6.整型变量a定义后赋初值的结果是【】。 int a=2.8*6; A)12 B)16C)17 D)18 7.若有以下说明语句,则该语句【】。 char a='\077'; A)使a的值包含1个字符B)使a 的值包含4个字符 C)使a的值包含3个字符D)说明不合法 8.下面的程序结果为:【】。 main() { int x=023; printf("%d\n",--x); } A)17 B)18C)23 D)24 9.源程序执行后,屏幕上显示【】。 main() { int a; float b; a=4; b=9.5; printf("a=%d,b=%4.2f\n",a,b); } A)a=%d,b=%f\n B)a=%d,b=%f C)a=4,b=9.50 D)a=4,b=9.5 10.设int x=10;x+=x%=(-6)+4;则x= 【】。 A)0B)16 C)18 D)10 11.C语言的下列运算符中,运算对象必须是整型数据的是【】。

大学C语言考试试题及答案

精选考试类文档,如果您需要使用本文档,请点击下载! 祝同学们考得一个好成绩,心想事成,万事如意! 大学C语言考试试题及答案 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在C语言中,以 D 作为字符串结束标志 A)’\n’ B)’ ’ C) ’0’ D)’\0’ 2.下列数据中属于“字符串常量”的是( A )。 A.“a” B.{ABC} C.‘abc\0’ D.‘a’ 若干个字符构成字符串 在C语言中,用单引号标识字符;用双引号标识字符串

选项B,C,分别用{}和’’标识字符串 选项D,标识字符。 3、以下说法中正确的是( C )。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是( B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C )。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是( B )。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D )。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

C语言习题全集+答案

第一单元程序设计和C语言 一、选择题 1.C语言的基本构成单位是:。 A. 函数 B. 函数和过程 C. 超文本过程 D. 子程序 2.一个C语言程序总是从开始执行。 A. 主过程 B. 主函数 C. 子程序 D.主程序 3.C语言的程序一行写不下时,可以。 A. 用逗号换行 B. 用分号换行 C. 在任意一空格处换行 D. 用回车符换行 4.以下叙述不正确的是:。 A. 在C程序中,语句之间必须要用分号";"分隔 B. 若a是实型变量,C程序中a=10是正确的,因为实型变量中允许存放整型数 C. 在C程序中,无论是整数还是实数都能正确无误地表示 D. 在C程序中,%是只能用于整数运算的运算符 5.以下不正确的C语言标识符是。 A. ABC B. abc C. a_bc D. 6.下列字符串是标识符的是:。 A. _HJ B. 9_student C. long D. LINE 1 7.以下说法中正确的是:。 A. C语言程序总是从第一个定义的函数开始执行 B. 在C语言程序中,要调用的函数必须放在main()函数中定义 C. C语言程序总是从main()函数开始执行 D. C语言程序中的main()函数必须放在程序的开始部分 8.不合法的常量是:。 A. ‘\2’ B. " " C. ‘3’ D. ‘\483’ 9.已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:。 int k,a,b; unsigned long w=5; double x=; A. x%(-3) B. w+=-2 C. k=(a=2,b=3,a+b) D. a+=a=+(b=4)*(a=3) 10.在C语言中,字符型数据在内存中以形式存放。 A. 原码 B. BCD码 C. 反码 D. ASCII码 11.若有定义:int a=7; float x=; y=;

(完整版)C语言试题及答案解析

C语言 一、选择题(第题2分,共20分) 1.一个C程序的执行是从 A 。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序文件的第一个函数开始,到本程序main函数结束 D) 本程序的main函数开始,到本程序文件的最后一个函数结束 2.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为 C 。 x=(i=4,j=16,k=32) A) 4 B) 16 C) 32 D) 52 3.设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为 C 。 A) 0~255 B) 0~32767 C) 0~65535 D) 0~2147483647 4.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 D 。 A) float B) char C) int D) double 5. putchar函数可以向终端输出一个 D 。 A) 整型变量表达式 B) 实型变量值 C) 字符串 D) 字符或字符型变量值 6. printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 B ;如果字符串长度小于5,则输出按方式 C 。 A) 从左起输出该字符串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字符串,左补空格 D) 输出错误信息 7.判断char型变量ch是否为大写字母的正确表达式是 C 。 A) ‘A’<=ch<=‘Z’ B) (ch>=‘A’)&(ch<=‘Z’) C) (ch>=‘A’)&&(ch<=‘Z’) D) (‘A’<= ch)AND(‘Z’>= ch) 8.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是 B 。 if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 9.以下程序段______C__. x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 10.以下正确的描述是___B____. A)continue语句的作用是结束整个循环的执行

C语言试卷及答案

一、选择题(每题 1 分,共 20 分) 1. C 语言程序的三种基本结构是顺序结构、选择结构和结构。 A、循环 B、递归 C、转移 D、嵌套 2. 下列标识符中,合法的是_______ 。 A) unsigned B) 5ab C) INT# D)_num2 3. 若float x ;x = 10/4 ;x的值是。 A、2.5 B、2.0 C、3 D、 2 4. 表达式!x 等价于。 A、x==0 B、x==1 C、x != 0 D、x != 1 5. 算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为。 A、算术运算、赋值运算、关系运算 B、关系运算、赋值运算、算术运算 C、算术运算、关系运算、赋值运算 D、关系运算、算术运算、赋值运算 6. 能将高级语言编写的源程序转换为目标程序的是。 A、链接程序 B、解释程序 C、编译程序 D、编辑程序 7. 下列语句定义pf为指向float类型变量f的指针,是正确的。 A、float f, *pf = f; B、float f, *pf = &f; C、float *pf = &f, f; D、float f, pf = f; 8. 一个C程序的执行是从。 A、本程序的main函数开始,到main函数结束 B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序main函数结束 9. 能正确表示“当x的取值在[1,10]或[[200,210]范围内为真,否则为假”的表达式是________。 A、(x>=1)&&(x<=10)&&(x>=200)&&(x<=210) B、(x>=1)||(x<=10)||(x>=200)||(x<=210) C、(x>=1)&&(x<=10)||(x>=200)&&(x<=210) D、(x>=1)||(x<=10)&&(x>=200)||(x<=210) 10. 对两个数组a和b进行如下初始化 char a[]=“ABCDEF”;char b[]={ …A?,?B?,?C?,?D?,?E?,?F?}; 则以下叙述正确的是。 A、a和b数组完全相同 B、a和b长度相同 C、a和b中都存放字符串 D、a数组比b数组长度长 11. 是不正确的字符常量。 A、'\n' B、'1' C、"a" D、'\101' 12. 若变量已正确定义,语句“if(a>b) k=0; else k=1;”和等价。 A、k=(a>b)?1:0; B、k=a>b; C、k=a<=b; D、a<=b ? 0 : 1; 13. 设变量定义为“int x, *p=&x;”,则&*p相当于。 A、p B、*p C、x D、*&x 14. 有两个字符数组a、b,则以下正确的输入语句是。 A)gets(a,b); B) scanf(“%s%s”,a,b); C) scanf(“%s%s”,&a,&b); D) gets(“a”),gets(“b”); 15. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是。 A、地址传递 B、单向值传递

C语言习题集

C语言习题集 1.编写程序,在屏幕上输出以下两行文本(用一个printf()产生) Uppercase i is ‘I’ Lowercase I is ‘i’ 2.编写程序,给2个整型变量a和b分别赋值8进制的225和16进制的12e,并用printf() 输出变量a所对应的10进制、8进制、16进制数值。 (输出8进制整数的格式符为%o输出16进制整数的格式符为%x) 3.定义2个长整型变量a和b,并分别赋值1345678和1,编写程序求a与b的和、差、积、商并 输出。 (输出长整型数据的格式符为%ld) 4.定义圆半径为一个双精度型变量r,并赋值 5.25, 编写程序求该圆的周长和面积(∏取3.14)并输 出。 (输出实数的格式符为%f) 5.假定一个字符变量C1的值为小写的‘c’,编写程序,将其转换成大写的’C’,并输出大写的’C’的 ASCⅡ码值。 6.编写程序,将一个三位数387的个位、十位、百位分离后输出,输出结果为: a=3,b=8,c=7 7.编程计算出-48%9、48%-9及-48%-9的结果 页脚内容1

8.假设每次运算时i的初值均为16,求i+++i和--i-i的值 9.编写程序,将”China”译成密码,密码规律:用原来的字母后面第4个字母代替原来的字母,例如:字母“A”后面第4个字母是”E”,用”E”代替“A”,因此,“China”应译为“Glmre”并输出。 10.编写程序,输出双引号”和反斜杠\,并以3位8进制数和2位16进制的转义字符形式输出大写的字母A。 11.已知x=3.6,y=4.2.编写程序,求表达式x+y及(int)x%(int)y的值 12.设b=35.425,c=52.954,编写程序,求b*c并将其值整数化后赋给a1;再将c除以b的值赋给a2 13.已知a=7, b=3, x=2.5, y=4.7, 编写程序,求表达式(float)(a+b)/2+a%3*(int)(x+y)%2的值 14.用getchar()和putchar()编写从键盘接收一个字符并输出的程序。 15.已知a=123,b=12345678,编写程序,输出a和b所对应的十进制数、十六进制数。 16.已知a=654.12345,编写程序输出以下结果 :654.123450: : 654.12: :654.12 : :6.54e+02: 17.已知字符数组s[]=”welcome to hengyang”, 编写程序输出以下结果: : welcome to hengyang: : welcome to hengyang : 页脚内容2

c语言试题及答案

《C语言》课程综合复习资料 一、单选题 1. 在C语言中,字符型数据在存中的存储形式是 A)原码 B)补码 C)反码 D)ASCII码 2. 在C语言中,十进制数47可等价地表示为 A) 2f B) 02f C) 57 D) 057 3. 设有定义:int x=12,n=5; 则表达式 x%=(n%2) 的值为 A) 0 B) 1 C) 2 D) 3 4. 设有定义语句:char str[][20]={,"Beijing","中国石油大学"},*p=str; 则printf("%d\n",strlen(p+20)); 输出结果是 A)10 B) 6 C) 0 D) 20 5. 已定义以下函数: fun(int *p) { return *p; } 该函数的返回值是 A)不确定的值 B)形参p所指存储单元中的值 C)形参p中存放的值 D)形参p的地址值 6. C语言中,函数返回值的类型是由 A)return语句中的表达式类型决定 B)调用函数的主调函数类型决定 C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定 7. 有以下函数定义: void fun( int n , double x ) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun( int y , double m ); B) k=fun( 10 , 12.5 ); C) fun( 10 , 12.5 ); D) void fun( 10 , 12.5 ); 8. 以下选项中不能正确赋值的是 A) char b[]={′H′,′e′,′l′,′l′,′o′,′!′}; B) char b[10];b="Hello!";

怎么样在KEIL_C软件中调试程序

首先建立工程。选[Project\New Project],选择工程保存的路径,及为工程命名。例如将其存放在D:\新建文件夹(2),命名为123。输入完工程名后会打开一个如下图所示的对话框,在这里我们选择CPU的型号,根据我们选用的CPU芯片的不同,这里的设置不同。在这里我们选用 Atmel\AT89C51。 接下来弹出一个如下图的对话框。该对话框提示你是否要把标准8051的启动代码添加到工程中去。如用C语言写程序,一般选“否”,但是,如果用到了某些增强功能需要初始化配置时,则可选“是”。在这里,我们选“否”,即不添加启动代码。 新建文件。在[File\New]建一个文件,将程序写入。这里以一个00-99秒计时器程序为例。程序如下 #include unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90}; //共阳数码管段0-9 unsigned char Second; delay10ms() //延时10毫秒 { unsigned int i,j; for(i=0;i<10;i++) for(j=0;j<120;j++); } leds() //显示子函数 { P0_0=0; //选通P0_0数码管 P2=table[Second/10]; //送段值 delay10ms(); //延时 P2=0xff; //消影 P0_0=1; //消除P0_0选通状态 P0_1=0; //选通P0_0数码管 P2=table[Second%10]; //送段值 delay10ms(); //延时 P2=0xff; //消影 P0_1=1; //消除P0_0选通状态 } void delay1s(void) //延时1秒 { unsigned char j; for(j=50;j>0;j--) leds(); } void main(void) { Second=0; //显示置0 while(1) //主循环 { delay1s();// 延时 Second++; //自加 if(Second==60) //判断是否到60

c习题集与答案

目录 一、单选题 (1) 二、判断题 (12) 三、填空题 (13) 四、程序填充 (18) 五、读程序写出运行结果 (31) 六、指出以下程序或函数的功能 (43) 七、程序改错 (45) 八、程序设计 (51) 《面向对象程序设计》答案 (60) 一、单选题 1. C++源程序文件的缺省扩展名为( A )。 A. cpp B. exe C. obj D. lik 2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( C )。 A. cpp B. exe C. obj D. lik 3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( B )。 A. cpp B. exe C. obj D. lik 4. 编写C++程序一般需经过的几个步骤依次是( B )。 A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试 C. 编译、调试、编辑、连接 D. 编辑、调试、编辑、连接 6. 能作为C++程序的基本单位是( C )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 8. C++程序的基本模块为( D )。 A. 表达式 B. 标识符 C. 语句 D. 函数 10. 存储以下数据,占用存储字节最多的是( D )。 A. 0 B. ‘0’ C. “0” D. 0.0 38. 以下说法中正确的是( B )。 A. C++程序总是从第一个定义的函数开始执行 B. C++程序总是从main函数开始执行 C. C++函数必须有返回值,否则不能使用函数 D. C++程序中有调用关系的所有函数必须放在同一个程序文件中

40. 函数重载是指( A )。 A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C. 两个以上的函数名字不同,但形参的个数或类型相同 D. 两个以上的函数取相同的函数名,并且函数的返回类型相同 41. 以下关于函数模板叙述正确的是( C )。 A. 函数模板也是一个具体类型的函数 B. 函数模板的类型参数与函数的参数是同一个概念 C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数 D. 用函数模板定义的函数没有类型 42. 下列( C )的调用方式是引用调用。 A. 形参和实参都是变量 B.形参是指针,实参是地址值 C. 形参是引用,实参是变量 D.形参是变量,实参是地址值 43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择 ( A )。 A. 联函数 B.重载函数 C.递归函数 D.函数模板 55. 以下正确的描述是( C )。 A. 不允许设置参数的默认值 B. 设置参数的默认值只能在定义函数时设置 C. 设置参数的默认值时,应该设置右边的参数 D. 设置参数的默认值时,应该全部参数都设置 56. 采用重载函数的目的是( D )。 A. 实现共享 B. 减少空间 C. 提高速度 D. 使用方便,提高可读性 59. 下面的标识符中,( C )是文件级作用域。 A. 函数形参 B.语句标号 C.外部静态类标识符 D.自动类标识符 60. 以下叙述不正确的是( D )。 A. 宏替换不占用运行时间 B. 宏名无类型 C. 宏替换只是字符替换 D. 宏名必须用大写字母表示 61. C++语言的编译系统对宏命令的处理是( D )。 A. 在程序运行时进行 B. 在程序连接时进行 C. 和C++程序的其它语句同时进行编译 D. 在对源程序中其它成分正式编译之前进行 62. 当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是( B )。 A. 直接按系统设定的标准方式搜索目录 B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录 C. 仅仅搜索源程序所在目录 D. 搜索当前逻辑盘上的所有目录 63. 当#include后面的文件名用尖括号括起来时,寻找被包含文件的方式是( A )。 A. 直接按系统设定的标准方式搜索目录 B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录 C. 仅仅搜索源程序所在目录 D. 搜索当前逻辑盘上的所有目录 67. 文件包含命令中被包含的文件的扩展名( C )。 A. 必须是.h B. 不能是.h C. 可以是.h或.cpp D. 必须是.cpp

C语言程序设计试卷及答案

C 语言程序设计 笔试试题 题号 一 二 三 四 五 六 笔试(70%) 综 合 (30%) 总分 分数 试卷说明: 1. 笔试卷面总分100分,取卷面成绩的70%计入总分; 2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%; 3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸; 4. 答题时间120分钟。 一、单项选择题。将正确答案填入下面框中。 (本题16分,每小题1分) 题号 1 2 3 4 5 6 7 8 答案 题号 9 10 11 12 13 14 15 16 答案 1. 有以下程序 main() {int a=1,b=0; if(!a) b++; else if(a==0) if(a) b+=2; else b+=3; printf(“%d\n ”,b); }则程序输出( A )。 A) 0 B) 1 C) 2 D) 3 2. 有以下定义:int a; long b; double x,y;则下列正确的是( A )。 A) a%(int)(x-y) B) a=x!=y C) (a*y)%b D) y=x+y=x 3. 若有定义 int (*p)[3];则下列说法正确的是( C )。 A) 定义了基类型为int 的三个指针变量 B) 定义了一个名为 *pt 、具有三个元素的整型数值 号 学 名 姓 注意行为规范 遵守考试纪律

C) 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组D) 定义了基类型为int的具 有三个元素的整型数组 4. 有以下程序段 main() { int x=10; while(x--); printf("x=%d\n",x);} 则最后的输出结果是:( B)。 A) x=0 B) x= -1 C) x=1 D)while构成无限循环 5. 有以下程序: int fun() {static int x=1; x *= 2; return x;} main( ) { int i,s=1 ; for(i=1 ;i<=2 ;i++) s=fun() ; printf(“%d\n ”,s) ;} 执行后的输出结果为( D)。 A) 0 B) 1 C) 8 D) 4 6. void main( ){ int k=011; printf("%d\n",k++); } }程序输出结果是( D ) A)12 B) 11 C) 10 D) 9 7. 以下C语言标识符中,不合法的是( C)。 A) _2 B) a_b C) a--b D) AaBc 8. C语言允许函数类型默认定义,此时该函数值隐含的类型是( B)。 A) float B) int C) long D) double 9. 以下程序段运行结果是( B)。 enum weekday{aa,bb=2,cc,dd,ee}week=ee; printf(“%d\n“,week); A) 4 B) 5 C) ee D) 0 10. 以下对C语言函数的描述中,不正确的是( B )。 A) 不同函数中可以使用相同名字变量B) 函数可以嵌套定义 C) 函数可以没有返回值D) 程序由函数组成 11. 若有定义语句:double x[5]={1.0,2.0,3.0,4.0,5.0},*p=x;则错误引用x数组元素的是( D )。 A) *p B) *x C) *(p+1) D) x[5]

C语言练习题集(带答案解析)

精品文档 1. ( A )是构成C 语言程序的基本单位。 A 、函数 B 、过程 C 、子程序 D 、子例程 2. C 语言程序从 ____ C ________ 开始执行。 A ) 程序中第一条可执行语句 B )程序中第一个函数 C )程序中的main 函数 D )包含文件中的第一个函数 3、以下说法中正确的是( C )。 A 、 C 语言程序总是从第一个定义的函数开始执行 B 、 在 C 语言程序中,要调用的函数必须在 main ()函数中定义 C 、 C 语言程序总是从 main ()函数开始执行 D 、 C 语言程序中的 main ()函数必须放在程序的开始部分 4. 下列关于C 语言 的说法错误的是( B ) 。 A ) C 程序的工作过程是编辑、编译、连接、运行 B ) C 语言不区分大小写。 C ) C 程序的三种基本结构是顺序、选择、循环 D ) C 程序从main 函数开始执行 5. 下列正确的标识符是(C )。 A. -a1 B.a[i] C.a2_i 6. 下列C 语言用户标识符中合法的是( B )。 A) 3ax B)x C)case D)-e2 E)u nion 7. 下列四组选项中,正确的 C 语言标识符是 (C )。 A ) %x B ) a+b C ) a123 D ) 8、 下列四组字符串中都可以用作 A 、print _3d db8 aBc B C 、str_1 Cpp pow while D 9. C 语言中的简单数据类型包括( A 、整型、实型、逻辑型 C 、整型、字符型、逻辑型 C 语言程序中的标识符的是( A ) 、I\am one_half start$it 3pai 、Pxq My->book line# His.age D )。 B 、整型、实型、逻辑型、字符型 D 、整型、实型、字符型 10. 在C 语言程序中,表达式 5%2的结果是—C_ A)2.5 B)2 C)1 D)3 11. 如果int a=3,b=4 ;则条件表达式"a

c语言试题及答案 ()

第1章 C语言概述习题 1. 单项选择题 (1) C 语言是在 B 语言的基础上产生的。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (2) 在 C 语言中,每个语句必须以 D 结束。 A. 回车符 B. 冒号 C. 逗号 D. 分号 (3) 标识符和关键字间,要用 C 隔开。 A. 回车符 B. 冒号 C. 空格 D. 分号 (4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。 A. 生成可执行目标文件 B. 生成目标文件 C. 输出运行结果 D.自动保存源文件 (5) 下列说法中正确的是( B )。 A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入 B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入 C. 由于C 程序是高级语言程序,因此输入后即可执行 D. 由于 C 程序是高级语言程序,因此它由命令组成 (6) 下列说法中正确的是( A )。 A. C 语言程序由主函数和 0 个或多个函数组成 B. C 语言程序由

主程序和子程序组成 C. C 语言程序由子程序组成 D. C 语言程序由过程组成 (7) 下列说法中错误的是( D )。 A. 主函数可以分为两个部分:主函数说明部分和主函数体 B. 主函数可以调用任何非主函数的其他函数 C. 任何非主函数可以调用其他任何非主函数 D. 程序可以从任何非主函数开始执行 2. 填空题 (1) C 语言只有 37 个关键字和 9 种控制语句。 (2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。 (3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。 (4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。 (5) C 语言的程序中有特殊含义的英语单词称为保留字。 (6) C 语言标识符的长度是前 8 位有效。 (7) C 语言中,标识符的定义规则是以字母或下划线为开头。 (8) C 语言程序的注释可以出现在程序中的任何地方,它总是以 /* 符号作为开始标记,以 */ 符号作为结束标记。

c语言试卷及答案1

c语言试卷及答案1

浙江理工大学 C程序设计试题(一) 试题二、语言基础题(本题共30分) (一)判断题(本题共10分,每小题1分) 说明:在以下提供的若干陈述中,逐一判断其正确与否,选A表示正确,选B表示错误。 (16) C语言程序的三种基本结构是顺 序、选择和嵌套。 (17) 在C语言程序中,在函数内部定 义的变量称为全局变量。 (18) 运算符“=”和“&=”的优先级相 同。 (19) ‘%f’是不正确的字符常量。 (20) 运算符“+”不能作为单目运算符。 (21) 如果运算符“*”和“/”都是右 结合的,则表达式10*6/5的值是10。 (22) s(s-a)(s-b)(s-c)是合法的C语 言表达式。 (23) 表达式!!6的值是6。 (24) 表达式~(~2<<1)的值是5。 (25) 对于变量定:int a[10],*p=a+8; 数组a的最后一个元素是p[1]。

(二)单选题(本题共20分,每小题2分) (26) 执行语句printf("(26) ", "A");将得到出错信息。 A、%u B、%s C、%e D、%d (27) 设c是一个字符变量,求解表达 (27) 后,c的值不是1就是0。 A、c=getchar()!=’\n’ B、(c=getchar()!)=’\n’ C、c=’1’ D、c=EOF (28) 下列定义中,(28) 定义的变 量可以存放-123.4。 A、long a; B、 unsigned b; C、int d; D、float c; (29) 对于变量定义;char *pp[100], pp是一个(29) 。 A、函数 B、数组元素 C、指针变 量D、数组 (30) 下列程序段的输出结果是 (30) 。 char *st[ ]={ "SUM","MOON","STAR","X"}; printf("(%s,%c) ",*(st+1)+1,*(*(st+2)+2)+2)

keilC编程用法

51单片机C语言学习 学习单片机实在不是件易事,一来要购买高价格的编程器,仿真器,二来要学习编程语言,还有的单片机选择真是件让人头脑的事。在众多单片机中51架构的芯片风行很久,学习资料也相对很学的较好的选择之一。51的编程语言常用的有二种,一种是汇编语言,一种是C语言。汇编语言码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而C语言在大多数情况下其机成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且C语言还可以嵌入汇编来效性的代码编写问题。对于开发周期来说,中大型的软件编写用C语言的开发周期通常要小于汇编综合以上C语言的优点,我在学习时选择了C语言。以后的教程也只是我在学习过程中的一些学习笔,在这里加以整理和修改,希望和大家一起分享,一起交流,一起学习,一起进步。 *注:可以肯定的说这个教程只是为初学或入门者准备的,笔者本人也只是菜鸟一只,有望各手指点错误提出建议。 第一课建立您的第一个C项目 使用C语言肯定要使用到C编译器,以便把写好的C程序编译为机器码,这样单片机才能执行程序。KEIL uVISION2是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS 芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C语言的程序设计,它的界面微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。因发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。 以上简单介绍了KEIL51软件,要使用KEIL51软件,必需先要安装它。KEIL51是一个商业的于我们这些普通爱好者可以到KEIL中国代理周立功公司的网站上下载一份能编译2K的DEMO版软可以满足一般的个人学习和小型应用的开发。(安装的方法和普通软件相当这里就不做介绍了)安装好后,你是不是迫不及待的想建立自己的第一个C程序项目呢?下面就让我们一起来建立序项目吧。或许你手中还没有一块实验板,甚至没有一块单片机,不过没有关系我们可以通过KE

相关主题
文本预览
相关文档 最新文档