分享

200-285

 千杯不醉004 2011-03-21

201下面的代码有什么问题?并请给出正确的写法。

void DoSomeThing(char* p)

{

char str[16];

int n;

assert(NULL != p);

sscanf(p, "%s%d", str, n);

if (0 == strcmp(str, "something"))

{

}

}

A:

sscanf(p, "%s%d", str, n);   这句该写成: sscanf(p, "%s%d", str, &n); --------------------------------------------------------------------------

202.下面代码有什么错误?

 

Void test1()

{

 

char string[10];

char *str1="0123456789";

strcpy(string, str1);

 

}

数组越界

 

203.下面代码有什么问题?

 

Void test2()

 

{

 

char string[10], str1[10];

 

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

{

     str1[i] ='a';

} 

strcpy(string, str1);

} 

}

数组越界

 

204下面代码有什么问题?LUPA开源社区+j H2B F,c U

 

Void test3(char* str1)

{

char string[10];

if(strlen(str1)<=10)

{

    strcpy(string, str1);

}

}

==数组越界

==strcpy拷贝的结束标志是查找字符串中的\0 因此如果字符串中没有遇到\0的话 会一直复制,直到遇到\0,上面的123都因此产生越界的情况

建议使用 strncpy memcpy

 

205.写出运行结果:

{

    char str[] = "world"; cout << sizeof(str) << ": ";

    char *p    = str;     cout << sizeof(p) << ": ";

    char i     = 10;      cout << sizeof(i) << ": ";

    void *pp   = malloc(10); cout << sizeof(p) << endl;

}

6414

 

--------------------------------------------------------------------------

206.CC++有什么不同?

从机制上:c是面向过程的(但c也可以编写面向对象的程序);c++是面向对象的,提供了类。但是,c++编写面向对象的程序比c容易

从适用的方向:c适合要求代码体积小的,效率高的场合,如嵌入式;c++适合更上层的,复杂的; llinux核心大部分是c写的,因为它是系统软件,效率要求极高。

从名称上也可以看出,c++c多了+,说明c++c的超集;那为什么不叫c+而叫c++呢,是因为c++

c来说扩充的东西太多了,所以就在c后面放上两个+;于是就成了c++

 C语言是结构化编程语言,C++是面向对象编程语言。LUPA开源社区 } n*r2C/M8f

C++侧重于对象而不是过程,侧重于类的设计而不是逻辑的设计。

 

207在不用第三方参数的情况下,交换两个参数的值

#include <stdio.h>

void main()

{

       int i=60;

        int j=50;

        i=i+j;

        j=i-j;

)

        i=i-j;

        printf("i=%d\n",i);

        printf("j=%d\n",j);

}

方法二:

i^=j;

j^=i;

i^=j;

方法三:

// 用加减实现,而且不会溢出

a = a+b-(b=a)

 

208.下面的函数实现在一个固定的数上加上一个数,有什么错误,改正

 

int add_n(int n)

{

static int i=100;

i+=n;

return i;

}

:

因为static使得i的值会保留上次的值。

去掉static就可了

 

209union a {

int a_int1;

double a_double;

int a_int2;

};

typedef struct

{ a a1;

char y;

} b;

 

class c

{

double c_double;

b b1;

a a2;

};

输出cout<<sizeof(c)<<endl;的结果?

:

VC6环境下得出的结果是32

(sun)VC6.0+win2k下做过试验:

int-4

float-4

double-8

指针-4

 

 

210. unsigned short array[]={1,2,3,4,5,6,7};

int i = 3;

*(array + i) = ?

:4

 

211. class A

{

virtual void func1()

void func2();

}

Class B: class A

{

void func1(){cout << "fun1 in class B" << endl;}

virtual void func2(){cout << "fun2 in class B" << endl;}

}

A, A中的func1B中的func2都是虚函数.

B, A中的func1B中的func2都不是虚函数.

C, A中的func2是虚函数.B中的func1不是虚函数.

D, A中的func2不是虚函数,B中的func1是虚函数.

:

A

 

212输出下面程序结果。

#include <iostream.h>

class A

{

public:

virtual void print(void)

{

    cout<<"A::print()"<<endl;

}

};

 

class B:public A

{

public:

 virtual void print(void)

{

   cout<<"B::print()"<<endl;

 

};

};

class C:public

{

public:

virtual void print(void)

{

   cout<<"C::print()"<<endl;

}

};

void print(A a)

{

   a.print();

}

 

void main(void)

{

   A a, *pa,*pb,*pc;

   pa=&a;

   pb=&b;

   pc=&c;

 

   a.print();

   b.print();

   c.print();

 

   a->print();

   pb->print();

   pc->print();

 

   print(a);

   print(b);

   print(c);

}

A::print()

A::print()

 

B::print()

C::print()

 

A::print()

 

B::print()

 

C::print()

 

A::print()

 

 

A::print()

 

A::print()

 

 

213 C++语言是在___ C ______语言的基础上发展起来的。

214 C++语言的编译单位是扩展名为____ .cpp__________程序______文件。

215. 行尾使用注释的开始标记符为____ //_____

216 多行注释的开始标记符和结束标记符分别为_____ /*________ */_______

217. 用于输出表达式值的标准输出流对象是____ cout_____

218 用于从键盘上为变量输入值的标准输入流对象是__ cin______

219. 一个完整程序中必须有一个名为____ main____的函数。

220一个函数的函数体就是一条____复合_____语句。

221. 当执行cin语句时,从键盘上输入每个数据后必须接着输入一个___空白_____符,然后才能继续输入下一个数据。

222C++程序中包含一个头文件或程序文件的预编译命令为____#include ______

223. 程序中的预处理命令是指以___#___字符开头的命令。

224. 一条表达式语句必须以___分号___作为结束符。

225. #include命令中所包含的头文件,可以是系统定义的头文件,也可以是___用户(或编程者_____定义的头文件。

226. 使用#include命令可以包含一个头文件,也可以包含一个__程序____文件。

227.一个函数定义由__函数头________函数体_____两部分组成。

228.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的__原型(或声明)____语句。

229C++头文件和源程序文件的扩展名分别为__.h ______.cpp ___

230.程序文件的编译错误分为____警告(warning________致命(error) ____两类。

231.当使用___ void ____保留字作为函数类型时,该函数不返回任何值。

232.当函数参数表用___ void __保留字表示时,则表示该参数表为空。

233.从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______个参数。

234. 当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到___下一行_____的开始位置。

235. 假定x=5y=6,则表达式x++*++y的值为___35_______

236. 假定x=5y=6,则表达式x--*--y的值为___25_______

237. 假定x=5y=6,则执行表达式y*=x++计算后,xy的值分别为___6______30 _____

238. 假定x=5y=6,则执行表达式y+=x--计算后,xy的值分别为____4_____11___

239. C++常数0x145对应的十进制值为___325 ___

240. C++常数0345对应的十进制值为____ 229__

241. 十进制常数245对应的十六进制的C++表示为____0xF5___

242. 十进制常数245对应的八进制的C++表示为___0365 ___

243. signed char类型的值域范围是__-128_____+127 __之间的整数。

244. intfloat类型的数据分别占用___ 4_______ 4___个字节。

245. floatdouble类型的数据分别占用____ 4________8___个字节。

246. boolchar类型的数据分别占用_____1________1___个字节。

247. unsigned short intint类型的长度分别为____ 2_______4___

248. 字符串”This\’s a book.\n”的长度为_____ 15____

249. 字符串”\nThis\’s a pen\n\n”的长度为_____ 15_____

250. C++中存储字符串”abcdef”至少需要___7 _____个字节。

251. C++中存储字符串”a+b=c”至少需要_____6 ___个字节。

252. 假定xy为整型,其值分别为165,则x%yx/y的值分别为___1___________3____

253. 假定xy为整型,其值分别为165,则x/ydouble(x)/y的值分别为____3_______3.2____

254. 假定x是一个逻辑量,则x && true的值为___ x ____

255. 假定x是一个逻辑量,则x || true的值为_____ true(1)_____

256. 假定x是一个逻辑量,则x && false的值为____ false(0) ___

257. 假定x是一个逻辑量,则x || false的值为x

258. 假定x是一个逻辑量,则!x || false的值为____!x ____

259. 假定x是一个逻辑量,则x && !x的值为____ false(0)____

260. 假定x是一个逻辑量,则x || !x的值为____ true(1)___

261. enum Printstatus{ready,busy,error}; cout<<busy的输出结果是_____1___

262. enum Printstatus{ready=2,busy,error}; cout<<busy的输出结果是____3____

263. 常数-4.2056.7E-9分别具有___4_________2___位有效数字。

264. 枚举类型中的每个枚举值都是一个____枚举常量_____,它的值为一个___整数____

265. 常数1003.62的数据类型分别为____ int ________ double ___

266. x=5, y=10, 则计算y*=++x表达式后,xy的值分别为___6_____60 ___

267. 假定xch分别为int型和char型,则sizeof(x)sizeof(ch)的值分别为__4____1__

268. 假定x=10,则表达式x<=10?20:30的值为__ 20 __

269. 表达式sqrt(81)pow(6,3)的值分别为___9 ______216___

270. 含随机函数的表达式rand()%20的值在___0_____ 19 __区间内。

271. switch语句中,每个语句标号所含关键字case后面的表达式必须是___常量___

272. if语句中,每个else关键字与它前面同层次并且最接近的____ if ____关键字相配套。

273. 作为语句标号使用的C++保留字casedefaule只能用于___ switch ___语句的定义体中。

274. 执行switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)___不停止__执行。

275. while循环的“while(i++<=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行__11___次后正常结束。

276. do循环的“while(++i<10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行___10 ___次后正常结束。

277. 当在程序中执行到break语句时,将结束本层循环类语句或switch语句的执行。

278. 当在程序中执行到___ continue___语句时,将结束所在循环语句中循环体的一次执行。

279. 在程序中执行到__ return ___语句时,将结束所在函数的执行过程,返回到调用该函数的位置。

280.在程序执行完____(main)__函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口。

281. 元素类型为int的数组a[10]共占用___ 40___字节的存储空间。

282. 元素类型为double的二维数组a[4][6]共占用____192__字节的存储空间。

283. 元素类型为char的二维数组a[10][30]共占用___300__字节的存储空间。

284. 存储字符’a’和字符串”a”分别需要占用_____1_______2 ___个字节。

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多