软件开发类笔试题
Part I: C语言基础(30分)
1. (4分)用变量a给出下面的定义
a) 一个整型数:__________________
b) 一个指向整型数的指针:__________________
c) 一个指向指针的的指针,它指向的指针是指向一个整型数:__________________
d) 一个有10个整型数的数组:__________________
e) 一个有10个指针的数组,该指针是指向一个整型数的:__________________
f) 一个指向有10个整型数数组的指针:__________________
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数:_____________________
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
___________________________________________________________________________________
2. (2分)请写出以下语句输出的结果:
int i = 43 ;
int j = 5 ;
double f = 25.45181 ;
a) printf("i=%d, j=%d, f=%3.2f" , i , j , f ) :_________________________________________
b) printf("i=%X, j=%06d, i/j=%d" , i , j , i/j ) :_________________________________________
3. (2分)请完成以下宏定义
a) 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
_______________________________________________________________________________
b) 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个
_______________________________________________________________________________
4. (3分)以下为32位Windows下的C++程序,请计算:
char srt[]=“Hello”;
char *p=str;
请计算:
sizeof(str)=
sizeof(p)=
strlen(p)=
void Func (char str[100])
{
void *p=malloc(100);
}
请计算
sizeof(str)=
sizeof(p)=
int a[3]={1,2,3};
int b=sizeof(a)/sizeof(a[0]);
请计算:
b=
5. (2分)设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()
A)p=1; B)*q=2; C)q=p; D)*p=5;
A)p=1; B)*q=2; C)q=p; D)*p=5;
6. (1分)下面是C语言中两种if语句判断方式。请问哪种写法更好?为什么?
int n;
if (n == 10) // 第一种判断方式
if (10 == n) // 第二种判断方式
7. (2分)const关键字的用途?(请至少说明二种)
8. (2分)typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如:
#define dPS struct s *
typedef struct s * tPS;
以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)为什么?
_____________________________________________________________________________________
9. (4分)以下是一组有关内存知识的问题,请仔细看题,回答
void GetMemory(char *p)
{
p=(char *)malloc(100);
}
void Test(void)
{
char *str=Null;
GetMemory(str);
strcpy(str,“hello world”);
printf(str);
}
请问运行Test函数会有什么样的结果?
char *GetMemory(void)
{
char p[]=“hello world”
return p;
}
void Test(void)
{
char *str=NULL;
str=GetMemory();
printf(str);
}
请问运行Test函数会有什么样的结果?
Void GetMemory2(char **p,int num)
{
*p=(char *)malloc(num);
}
void Test(void)
{
char *str=NULL;
GetMemory(&str,100);
strcpy(str,“hello”);
printf(str);
}
请问运行Test函数会有什么样的结果?
void Test(void)
{
char *str=(char *) malloc(100);
strcpy(str,“hello”);
free(str);
if(str !=NULL)
{
strcpy(str,“world”);
printf(str);
}
}
请问运行Test函数会有什么样的结果?
10. (3分)读下面这段代码:
struct S {
int i;
int * p;
sizeof是什么};
void main()
{
S s;
int * p = &s.i;
p[0] = 4;
p[1] = 3;
s.p = p;
s.p[1] = 1;
s.p[0] = 2;
}
问:程序会在哪一行死掉,为什么。
_______________________________________________________________________________________
11. (5分)不使用任何库函数实现由字符串到数值的atoi编程,如输入字符串“-100” 返回值为-100,不考虑输入值为非字符串时的出错处理。
Part II C++部分(15分)
1. (1分)下面有关重载函数的说法中正确的是:__________
A)重载函数必须具有不同的返回值类型; B)重载函数形参个数必须不同;
C)重载函数必须有不同的形参列表 D)重载函数名可以不同;
2. (1分)下列关于构造函数的描述中,错误的是:__________
A)构造函数可以设置默认参数;B)构造函数在定义类对象时自动执行
C)构造函数可以是内联函数; D)构造函数不可以重载
3. (2分)main主函数执行完毕后,是否可能会再执行一段代码:
______________________________________________________________________________________
4. (2分)一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual,是否也能实现多态?
______________________________________________________________________________________
5. (2分)C++中的空类,默认产生哪些类成员函数?
_____________________________________________________________________________________
6. (7分)我们需要编写一个图形相关的应用程序,需要处理大量图形(Shape)信息,图形有矩形(Rectangle),正方形(Square),圆形 (Circle)等种类,应用需要计算这些图形的面积,并且可能需要在某个设备上进行显示(使用在标准输出上打印信息的方式做为示意)。
a) 请用面向对象的方法对以上应用进行设计,编写可能需要的类。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论