美国好莱坞经纪公司:200-285

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 13:07:36

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;

}

6:4:1:4

 

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

206.C和C++有什么不同?

从机制上: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

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就可了

 

209.union 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<

答:

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中的func1和B中的func2都是虚函数.

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

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

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

答:

A

 

212输出下面程序结果。

#include

class A

{

public:

virtual void print(void)

{

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

}

};

 

class B:public A

{

public:

 virtual void print(void)

{

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

 

};

};

class C:public

{

public:

virtual void print(void)

{

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

}

};

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语句时,从键盘上输入每个数据后必须接着输入一个___空白_____符,然后才能继续输入下一个数据。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

244. int和float类型的数据分别占用___ 4___和____ 4___个字节。

245. float和double类型的数据分别占用____ 4___和_____8___个字节。

246. bool和char类型的数据分别占用_____1____和____1___个字节。

247. unsigned short int和int类型的长度分别为____ 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. 假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为___1_______和____3____。

253. 假定x和y为整型,其值分别为16和5,则x/y和double(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<

262. 设enum Printstatus{ready=2,busy,error}; 则cout<

263. 常数-4.205和6.7E-9分别具有___4_____和____2___位有效数字。

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

265. 常数100和3.62的数据类型分别为____ int ___和_____ double ___。

266. 若x=5, y=10, 则计算y*=++x表达式后,x和y的值分别为___6___和__60 ___。

267. 假定x和ch分别为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++保留字case和defaule只能用于___ 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 ___个字节。