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 __保留字表示时,则表示该参数表
版权声明:本文标题:C++笔试题库之编程、问答题200~300道 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1714238107a671186.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论