知识点(7)

知识点(7)

对象成员的表示方法与结构体变量成员的表示方法相同.这句话是否正确?
正确答案: A
正确
错误

对象成员的表示方法与结构体变量成员的表示方法都是使用运算符 .

下列循环语句中有语法错误的是
正确答案: D 你的答案: D (正确)
int i;for( i=1;i<10;i++)cout<<‘‘;
int i,j;for(i=1,j=0;i<10;i++,j++)cout<<‘
‘;
int i=0;for(;i<10;i++)cout<<‘‘;
for(1)cout<<‘
‘;

首先D是错误的
A的格式非常标准
b只是在条件中加上了j这个变量,但是格式没有问题,所以也是可以编译运行的
c的话是首先将i初始化了所以在for循环的条件里面第一个不写也是可以编译运行的
d不符合for循环的条件语句格式,所以会出错
for语句的格式   (;;)

取顺序表的第i个元素的时间同i的大小有关()
正确答案: B

顺序表是以数组形式存放的线性表,查找第i个元素可以直接使用下标,时间复杂度为O(1)

以下逗号表达式的值为( )。
(x=45, x5), x+25
正确答案: D
25
20
100
45

逗号表达式值为逗号右边的值,先算括号里的x=20,括号内的逗号表达式的值为100,但整个表达式的值是20+25=45

在汇编语言程序中,对END语句的叙述正确的是( )
正确答案: C
END语句是一可执行语句
END语句表示程序执行到此结束
END语句表示源程序到此结束
END语句在汇编后要产生机器码

END是一个伪指令,END语句表示源程序到此结束,而不是程序执行到此结束,伪指令本身除了部分语句可以申请存储空间以外,不产生任何目标代码

为了向二进制文件尾部增加数据,打开文件的方式应采用
正确答案: A
″ab″
″rb+″
″wb″
″wb+″
在这里插入图片描述
65.
已知二维数组A10×10中,元素a20的地址为560,每个元素占4个字节,则元素a10的地址为( )。
正确答案: A
520
522
524
518

元素a20表示a[2][0]为第三行第一列的那个元素的地址为560,每个元素占4个字节,元素a10表示a[1][0]第二行第一列的那个元素的,已知二维数组为A10×10,所以a[2][0]和a[1][0]相距10个元素,所以4*10=40个字节

下列关于异常处理的描述中,理解不正确的是:
正确答案: D
C++语言的异常处理机制通过3个保留字throw、try和catch实现。
任何需要检测的语句必须在try语句块中执行,并由throw语句抛出异常。
throw语句抛出异常后,catch利用数据类型匹配进行异常捕获。
一旦catch捕获异常,不能将异常用throw语句再次抛出。

A,正确,throw是抛出异常关键字,try是尝试执行可能有异常代码的关键字,catch是捕获异常的关键字
B,正确,可能抛出异常的代码块都应该放在try代码块中
C,正确,catch捕获相应的异常,可以有多级catch代码块来捕获不同级别的异常
D,被捕获的异常可以再次抛出

数据流图中带有箭头的线段表示的是( )。
正确答案: D
控制流
事件驱动
模块调用
数据流

数据流图中带箭头的线段表示的是数据流,即沿箭头方向传送数据的通道,一般在旁边标注数据流名。

1,32,81,64,25,(),1
正确答案: B
5
6
10
12

答案是6,因为16次方=1 25次方=32 34次方=81 
43次方=64 52次方=25 61次方=6 70次方=1

将逻辑代码:

int x = ...;
if (x % 2) {
    return x - 1;
} else {
    return x;
}

用表达式:return x & -2; 替代,以下说法中不正确的是( )
正确答案: C
计算机的补码表示使得两段代码等价
用第二段代码执行起来会更快一些
这段代码只适用于x为正数的情况
第一段代码更适合阅读

正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1,
以8位字长为例(64位也一样)
-2 =1000 0010)原 =1111 1101)反=1111 1110)补
源代码表示末位不为1时将会减1,否则返回源码,这与-2的补码相与的结果是相同的。

在C语言源程序的开始处通常加上预处理命令 #include <stdio.h> 的原因是
正确答案: A
stdio.h文件中包含标准输入输出函数的函数声明,通过引用此文件以便能正确使用printf、scanf等函数
将stdio.h中标准输入输出函数的二进制代码插入到引用处,以便进行编译链接
将stdio.h中标准输入输出函数的源程序插入到引用处,以便进行编译链接
将stdio.h中标准输入输出函数链接到编译生成的可执行文件中,以便能正确运行

inlcude 语句的实质是,把相应的头文件copy到当前行。而且是预编译阶段就执行的。

设有定义char str[]=“abcde”,则 cout<<str; 能正确输出字符串
正确答案: A
正确
错误

本题考查了,<<运算符默认对输出字符数组和字符指针进行重载,均输输出字符串直到遇到结束符‘\0(但不输出该结束字符)为止
1.输出由字符数组保存的字符串:char arr[]="12345";cout<<arr;输出结果为:12345
2.输出由字符指针指向的字符串:char* p="12345"(或p=arr;;cout<<p;输出结果为:12345

关于类的成员的可见性,下面说法错误的是
正确答案: B D
一般将类的成员函数说明为公有成员,但不是绝对的
私有private成员只能在本类中访问,而不能被类外代码访问
一般将类的数据成员说明为私有成员,但不是绝对的
公有public成员能被类外代码访问,而不能被同一个类中的代码访问

A. 在类中,不作特别说明的成员函数均为公有类型。因此A项正确。
B.类中说明为私有的成员可以被本类的成员函数和说明为友元类的成员函数访问。在某个类(假设为A类)有一个成员函数,该成员函数想去访问另一个类(假设为B类)中的私有成员变量。这时候则可以在第二个类(B类)中,声明第一个类(A类)的那个成员函数为友元函数,这样第一个类(A类)就可以访问第二个类(B类)的私有成员变量了。因此B项错误。
C.类中默认的类型是私有类型,因此C项正确。
D.公有成员是类的对外表现。类中说明为公有的成员可以被程序中的任何代码访问。因此D项错误。

以下程序运行后的输出结果是()。

void main() 
{ 
FILE *fp;int i=20,j=30,k,n; 
fp=fopen(“d1.dat","w"); 
fprintf (fp,"%d\n",i); fprintf (fp,"%d\n",j); 
fclose (fp);  
fp=fopen ("d1.dat","r"); 
fscanf (fp,"%d%d",&k,&n); printf ("%d,%d\n",k,n); 
fclose (fp)} 

正确答案: A
20,30
20,50
30,50
30,20

【解释】该程序的功能就是将两个整型数i和j的值通过fprintf 函数将它们转换成字
符串的形式(包含\n)写入到文件d1.dat中,然后通过fscanf函数从文件d1.dat中格式化
读出到变量k和n中,所以k的值将是20,n的值将是30。故选择答案是A。

c/c++中,关于类的静态成员的不正确描述是( )。
正确答案: D
静态成员不属于对象,是类的共享成员
c++11之前,非const的静态数据成员要在类外定义和初始化
静态成员函数不拥有this指针,需要通过类参数访问对象成员
只有静态成员函数可以操作静态数据成员

A.静态成员是与类本身直接相关,而不是与类的各个对象保持关联,故类的静态成员不属于对象。但可以用类的对象、引用或指针来访问静态成员。
B.和其他函数一样,静态成员函数可以再类内部和外部定义。初始化一般在外部,在内部可以为静态成员提供一个const整数类型的类内初始化值。
C.静态成员不与任何对象绑定,不包含this指针,故其也不能声明为const的。
D.静态数据成员属于类,非静态成员函数也可访问。

若有定义语句: char a =’\82’; 则变量a
正确答案: B
说明不合法
包含1个字符
包含2个字符
包含3个字符

char a ='\82',定义字符量a,char型变量值为1个字节长度,并从右侧开始运算,所以a的值应为'2',因此B选项正确。
void main (void) 
{
    double x=28;
    int r;
    r= x%5;
    printf (“\n r=%d”, r);
}

程序的输出是什么?
正确答案: C
r = 3
运行错误
编译错误
都不是

%取余运算符只能用于整形

二维数组k[1…7,1…9],每元素大小占2个字节,而且使用列存储,a[5,4]的偏移量为()个字节。
正确答案: D
78
39
25
50

a[5,4]左边有三列,上方有4行。
列存储的话,a[5,4]前方有3*7+4=25个元素,共50个字节。

述赋值语句错误的是()。
正确答案: C
a=(b=(c=2,d=3))
i++
a/b=2
a=a<a+1

A选项为逗号表达式,即先算表达式1,后算表达式2,整个表达式为表达式2的值,所以原式可以分解为:c=2,b=d,d=3,a=b
B选项为单目自加运算,整合为i=i+1
C选项a/b为一个表达式,不可以被赋值为具体的数字。所以C错误。
D选项根据运算符号优先级,先计算a+1,在计算>a为true,转为1,即a=1

下列定义数组的语句中正确的是()。
正确答案: A
#define size 10
char str1[size],str2[size+2];
char str[];
int num[‘10’];
int n=5; int a[n][n+2]

c的错误是单引号里面有2个字符.

在异常处理中,以下描述不正确的有
正确答案: D
try块不可以省略
可以使用多重catch块
finally块可以省略
catch块和finally块可以同时省略

用try-catch 捕获异常;
用try-finally 清除异常;
用try-catch-finally 处理所有的异常. 三者选一种即可

查询优化策略中,正确的策略是( )。
正确答案: D
尽可能早地执行笛卡尔积操作
尽可能早地执行并操作
尽可能早地执行差操作
尽可能早地执行选择操作

1.选择运算尽可能早做,在优化策略中这是最重要,最基本的一条,它常常可以使执行节约几个数量级,因为选择运算一般使计算的中间结果大大变小
2.把投影运算和选择运算同时进行。如果有若干的投影和选择运算,并且他们都对同一个关系进行操纵的话,就可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系。
3.把投影同其前或其后的双目运算结合起来,没有必要为了去掉某些字段而扫描一遍关系
4.把某些选择同在他前面要执行的笛卡儿积结合成一个连接运算,连接特别是等值连接运算要比同样关系上的笛卡儿积省很多时间
5.找出公共子表达式

以下选项中循环结构合法的是:
正确答案: C
while(int i<7){i++;System.out.println("i is "+i);}
int j=3;while(j){ System.out.println("j is "+j);}
int j=0;for(int k=0;j+k!=10;j++,k++){System.out.println("j is "+j+“k is” +k);}
int j=0; do{System.out.println("j is "+j++);if(j==3){continue loop;}}while(j<10);

A、while(int i<7){i++;System.out.println("i is "+i);}int i要放在外面声明;
B、int j=3;while(j){ System.out.println("j is "+j);},java判断处为boolean类型,应该如j==3,j>1之类才行 ;不像C中,0可以表示假,非0可以表示真。java的真假就是true和false以及判别式。
C、int j=0;for(int k=0;j+k!=10;j++,k++){System.out.println("j is "+j+"k is" +k);},当j=5,k=5时循环结束;
D、int j=0; do{System.out.println("j is "+j++);if(j==3){continue loop;}}while(j<10);continue loop前面没有标注出循环名loop,相当于未定义

有关下面程序说法正确的是( )(注:└┘代表空格)

int main()
{ 
char s[6]= "abcd";
printf("\"%s\"\n", s);
return 0;
}

正确答案: A
“abcd”
“abcd”
“abcd└┘”
编译错误

因为像 " 这类的符号自己想想,是不是输不出来,所以要加一个 \ ,这个叫转义符号," \" "这样子就能输出 " 了(第一个双引号和第三个双引号对应,输出第二个双引号)

下列排序算法的常规实现中,哪些空间复杂度是O(1)
正确答案: A B E
冒泡
选择
归并
快排
堆排序

冒泡排序,选择排序,堆排序的空间复杂度为O(1),因为需要一个临时变量来交换元素位置,(另外遍历序列时自然少不了用一个变量来做索引).
快速排序空间复杂度为logn(因为递归调用了) ,归并排序空间复杂是O(n),需要一个大小为n的临时数组.

下列对描述正确的是()
正确答案: A D
含有纯虚函数的类叫抽象类
含有虚函数的类叫抽象类
纯虚函数可以有实现
纯虚函数不可以有实现

纯虚函数:只提供一个接口,具体实现方法需要派生类自己去实现
虚函数:提供接口,并提供默认的实现方法,派生类也可以根据自己需求去重载
非虚函数:提供接口,强制实现方法

经过下列的语句 int j,a[10],*p;定义后,则 :p=p+2;合法。这句话是否正确?
正确答案: B
正确
错误

这是一个野指针

以下关于空值(NULL值)叙述正确的是
正确答案: C
空值等于空字符串
空值等同于数值0
空值表示字段或变量还没有确定的值
Visual FoxPro不支持空值

空值(NULL值)代表表示字段或变量还没有确定的值
切记要区分null和0的区别,0代表是确定了,不过是0.
两者的意思是完全不同的。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值