首页 技术 正文
技术 2022年11月14日
0 收藏 890 点赞 2,499 浏览 7521 个字

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<<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 inclass B” << endl;}

virtual void func2(){cout << “fun2 inclass 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()”<<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语句时,从键盘上输入每个数据后必须接着输入一个___空白_____符,然后才能继续输入下一个数据。

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++常数0×145对应的十进制值为___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<<busy的输出结果是_____1___。

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

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 ___个字节。

285

#include “stdafx.h”

#define SQR(X) X*X

int main(int argc, char* argv[])

int a = 10;

int k = 2;

int m = 1;

a /= SQR(k+m)/SQR(k+m);

printf(“%d\n”,a);

return 0;

}

这道题目的结果是什么啊?

define 只是定义而已,在编择时只是简单代换X*X而已,并不经过算术法则的

a /= (k+m)*(k+m)/(k+m)*(k+m);

=>a /= (k+m)*1*(k+m);

=>a = a/9;

=>a = 1;

286. 以面向对象方法构造的系统,其基本单位是_____对象___。

287. 每个对象都是所属类的一个__实例__。

288. C++支持两种多态性:___编译____时的多态性和____运行__时的多态性。

289. 在C++中,编译时的多态性是通过___重载___实现的,而运行时的多态性则是通过___虚函数____实现的。

290. 对于类中定义的任何成员,其隐含访问权限为___ private(或私有)__。

291. 对于结构中定义的任何成员,其隐含访问权限为__ public(或公有)_。

292. 若在类的定义体中给出了一个成员函数的完整定义,则该函数属于__内联__函数。

293. 为了避免在调用成员函数时修改对象中的任何数据成员,则应在定义该成员函数时,在函数头的后面加上__ const __关键字。

294. 若只需要通过一个成员函数读取数据成员的值,而不需要修改它,则应在函数头的后面加上__ const __关键字。

295.判断一个字符串是不是回文

int IsReverseStr(char *aStr)

{

int i,j;

int found=1;

if(aStr==NULL)

return -1;

j=strlen(aStr);

for(i=0;i<j/2;i++)

if(*(aStr+i)!=*(aStr+j-i-1))

{

found=0;

break;

}

return found;

}

296..写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值(3分)

int a = 4;

(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);

a = ?

答:C错误,左侧不是一个有效变量,不能赋值,可改为(++a) += a;

改后答案依次为9,10,10,11

298.动态连接库的两种方式?

答:调用一个DLL中的函数有两种方法:

1.载入时动态链接(load-time dynamic linking),模块非常明确调用某个导出函数,使得他们就像本地函数一样。这需要链接时链接那些函数所在DLL的导入库,导入库向系统提供了载入DLL时所需的信息及DLL函数定位。

2.运行时动态链接(run-time dynamic linking),运行时可以通过LoadLibrary或Loa

dLibraryEx函数载入DLL。DLL载入后,模块可以通过调用GetProcAddress获取DLL函数的出口地址,然后就可以通过返回的函数指针调用DLL函数了。如此即可避免导入库文件了。

299.请写出下列代码的输出内容

#i nclude

main()

{

int a,b,c,d;

a=10;

b=a++;

c=++a;

d=10*a++;

printf(“b,c,d:%d,%d,%d”,b,c,d);

return 0;

}

答 、10,12,120

300.设有以下说明和定义:

typedef union {long i; int k[5]; char c;} DATE;

struct data { int cat; DATE cow; double dog;} too;

DATE max;

则语句 printf(“%d”,sizeof(struct date)+sizeof(max));的执行结果是?

答 、结果是:___52____。DATE是一个union, 变量公用空间. 里面最大的变量类型是int[5], 占用20个字节. 所以它的大小是20

data是一个struct, 每个变量分开占用空间. 依次为int4 + DATE20 + double8 = 32.

所以结果是 20 + 32 = 52.

当然…在某些16位编辑器下, int可能是2字节,那么结果是 int2 + DATE10 + double8 = 20

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,076
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,552
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,400
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,812
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,894