admin 管理员组

文章数量: 1086019


2024年4月28日发(作者:c语言课程设计ppt模板)

C++笔试题库之编程、问答题200~300道

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=”″;

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=%dn”,i);

printf(“j=%dn”,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 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()”<

}

};

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)

{

();

}

void main(void)

{

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

pa=&a;

pb=&b;

pc=&c;

();

();

();

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 __保留字表示时,则表示该参数表


本文标签: 函数 程序 语言 输入