第一章 习题
一、运算符优先级按从高到低排列选择填空
1.下列各种高级语言中,( )是面向对象的程序设计语言。
A.BASIC; B.PASCAL; C.C++ D。Ada
2.下列各种高级语言中,( )是最早提出了对象的概念。
A.Algol 60; B。Simula 67; C.Smalltalk; D.C++
3.下述面向对象抽象的原理中,( )是不对的。
A. 数据抽象; B. 行为共享; C.进化; D。 兼容;
4.( )不是面向对象系统所包含的要数。
A。 重载; B。 对象; C. 类; D. 继承;
5.关于C++与C语言的关系的描述中,( )是错误的。
A. C语言是C++的一个子集; B. C语言与C++是兼容的;
C. C++对C语言进行了一些改进; D. C++和C语言都是面向对象的;
6.下面关于对象概念的描述中,( )是错误的。
A。对象就是C语言中的结构变量; B。对象代表着正在创建的系统中的一个实体;
C。 对象是一个状态和操作(或方法)的封装体; D。对象之间的信息传递是通过消息进行的;
7.下面关于类概念的描述中,( )是错误的.
A.类是抽象数据类型的实现; B。类是具有共同行为的若干对象的统一描述体;
C。类是创建对象的样板; D。类就是C语言中的结构类型;
8.C++对C语言作了很多改进,下列描述中( )使得C语言发生了质变,即从面向过程变成为面向对象。
A.增加了一些新的运算符; B.允许函数重载,并允许设置缺省参数;
C。规定函数说明必须用原型; D。引进了类和对象的概念;
9.按照标识符的要求,( )符号不能组成标识符。
A。连接符; B. 下划线; C。大小写字母; D。数字字符;
10.下列符号中,( )不可作为分隔符。
A。,; B.:;C。?; D。;
二、判断下列描述的正确性,对者划√,错者划×。
1.C++引进了引用的概念,对编程带来了很多方便。√
2.C++允许使用友元,但是友元会破坏封装性。√
3.C++中使用了新的注释符(//),C语言中注释符(/*…*/)不能在C++中使用.×
4.C++中为了减轻使用者的负担,与C语言相比较C++中减少了一些运算符。×
5.C++程序中,每条语句结束时都加一个分号(;)。√
6.C++中标识符内的大小写字母是没有区别的。×
7.C++中不允许使用宏定义的方法定义符号常量,只能用关键字const来定义符号常量。×
8.在编写C++程序时,一定要注意采用人们习惯使用的书写格式,否则将会降低其可读性。√
9.C++是一种以编译方式实现的高级语言。√
10.在C++编译过程中,包含预处理过程、编译过程和连接过程,并且这三个过程的顺序是不能改变的。√
11.预处理过程是一般编译过程之后连接过程之前进行的。×
12.源程序在编译过程中可能会出现一些错误信息,但在连接过程中将不会出现错误信息。×
三、分析下列程序的输出结果
1.#include<iostream.h〉
void main()
{
cout<〈"BeiJing”<〈" ";
cout〈<"ShangHai"〈〈”\n ";
cout〈〈”TianJing”〈〈endl;
}
1. BeiJjing ShangHai
TianJing
2. #include〈iostream。h〉
void main()
{
int a,b;
cout〈〈”input a,b:";
cin>〉a>>b;
cout〈<"a="<<a〈〈","〈<”b="<<b<<endl;
cout<〈"a-b=”<<a-b〈〈”\n”;
}
假定,输入如下两个数据:8 5
2.Input a,b:8 5
A=8,b=5
A—b=3
3.#include 〈iostream。h>
void main()
{
char c=’m’;
int d=5;
cout〈〈”d="〈<d〈<”:”;
cout<〈”c=”<<c〈<”\n”;
}
D=5,c=m
四、编译下列程序,改正所出现的各种错误信息,并分析输出结果:
1、main ( )
{
cout<〈"This is a string!”;
}
1.#include〈iostream.h>
void main()
{
cout<<”This is a string!”;
}
输出结果:This is a string!
2、#include〈iostream。h>
void main( )
{
cin〉〉x;
int p=x*x;
cout〈<"p=<〈p〈<\n";
}
#include<iostream.h>
void main( )
{
int x;
cin>〉x;
int p=x*x;
cout<<"p=”<〈p〈<”\n”;
}
输出结果:3
p=9
3、#include 〈iostream.h>
void main ( )
{ int i,j;
i=5;
int k=i+j;
cout<<"i+j="<<k<<"\n”;
}
#include 〈iostream.h>
void main ( )
{int i,j;
i=5;
j=3;
int k=i+j;
cout<<”i+j=”<<k<<”\n”;
}
输出结果:I+j=8
五、通过对第四题中三个程序的所出现问题的修改,回答下列问题:
1.从对第四题1题的修改中,总结出编程时应注意哪三个问题?
2.C++程序中所出现的变量是否都必须先说明才能引用?
3.使用cout和运算符〈<输出字符串时应注意什么问题?
4.有些变量虽然说明了但是没有赋值,这时能否使用?
5.一个程序编译通过了并且运行后得到了输出结果,这个结果是否一定是正确的?
第二章 习题
一、选择填空
1、在16位机中,int型字宽为( )字节。
A.2; B。 4;C。 6; D 8
2、类型修饰符unsigned修饰( )类型是错误的。
A. char; B。 int; C。long int ; D float
3、下列十六进制的整型数常数表示中,( )是错误的。
A.0xaf; B. 0X1b; C. 2fx; D。 0xAE
4 、下列double型常量表示中,( )是错误的。
A.E15; B。 .35; C. 3E5; D. 3E—5
5、下列字符常量表示中,( )是错误的。
A。 ‘\105' ; B. ‘*’; C.‘\4f’; D. ‘\a’
6、下列字符串常量表示中, ( )是错误的。
A。”\"yes\”or\”No\""; B。”\’OK!\’”; C. "abcd\n"; D。 ”ABC\0”
7、下列变量名中,( )是合法的。
A。CHINA; B. byte—size; C。 double; D。 A+a
8、在int a[5]={1,3,5};中,数组元素a[1]的值是( )。
A。 1; B。 0; C。3; D。2
9、在int b[][3]={{1},{3,2},{4,5,6},{0}};中a[2][2]的值是( )。
A.0; B。 5; C.6; D.2
10、下列给字符数组进行初始化中,( )是正确的。
A.char s1[ ]=”abcd; B. char s2[3]=”xyz";
C。 char s3[][3]={‘a’,’x’,'y'}; D. char s4[2[3]={"xyz","mnp"};
11、在int a=3,*p=&a; 中,*p的值是( )。
A. 变量a的地址值; B.无意义; C. 变量p的地址值;D.3
12、对于int *pa[5];的描述,()是正确的。
A.pa是一个指向数组的指针,所指向的数组是5个int型元素;
B.pa是一个指向某个数组中第5个元素的指针,该元素是int型变量;
C.pa[5]表示某个数组的第5个元素的值;
D.pa是一个具有5个元素的指针数组,每个元素是一个int型指针;
13、下列关于指针的运算中,()是非法的。
A.两个指针在一定条件下,可以进行相等或不等的运算;
B.可以用一个空指针赋值给某个指针;
C.一个指针可以加上两个整数之差;
D.两个指针在一定条件下,可以相加.
14、指针可以用来表示数组元素,下列表示中()是错误的.
已知:int a[3][7];
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论