现在的位置: 首页 > 综合 > 正文

大华面试题

2014年09月05日 ⁄ 综合 ⁄ 共 2944字 ⁄ 字号 评论关闭

一、 判断题(4分每题,共20分)

1、 在同一个.c文件中,局部变量可以和全局变量重名。(对)

2、 在数组定义int a[2][2]={{3},{2,3}};则a[0][1]的值为0。(对)

3 int (*ptr)(),则ptr是一维数组的名字。(错)

4、 指针在任何情况下都可进行>,<,>=,<=,==运算。(错)

5 Switch(c)语句中c可以是int,long,char,float,unsigned int类型。(错)


二、 填空/找错题目(30)

1、 在windows下,写出运行结果,每空2.5,共10分。

char str[]=Hello
;

char *p = str;

int n = 10;

sizeof(str)=();

sizeof(p)=();

sizeof(n)=();

void func(char str[100])

{

}

sizeof(str)=();


2、 请找出下面代码中的所有错误(10分)

说明:以下代码是把一个字符串倒序,如“abcd”倒序后变成“dcba

main()

{

char *src=hello,world;

char *dest=NULL;

int len=strlen(src);

dest = (char *)malloc(len);

char *d=dest ;

char *s=src[len] ;

while(len != 0 )

d++ = s;

printf(%s,dest);

return 0;

}


3、 填空,10

int arr[] = {6,7,8,9,10};

int *prtr = arr;

*(ptr++) += 123;

printf( %d,%d
,*ptr,*(++ptr));

输出结果为( 88


三、 编程题(第一小题15,第二小题20分、第三小题15分)

1、 不使用库函数,编写函数int strcmp(char *source,char *dest)相等返回0,不等返回-1;


2、 写一函数void fun(char *s)实现如下单词倒序功能:如s为字符串“ast FVs ULLY”,经过此函数后,s的内容将变为:tsa
sVFYLLU


3、 写一函数int count(char c)返回字符c的二进制数所含1的个数,例如c=3,其二进制数为00000011,那么此函数返回2

 

选择题

1:float a=2, b=4, c=3;,以下C语言表达式与代数式
(a+b)c
计算结果不一致的是B
A.(a+b)*c/2
B.(1/2)*(a+b)*c
C.(a+b)*c*1/2
D.c/2*(a+b)


2:为了向二进制文件尾部增加数据,打开文件的方式应采用D
A.ab
B.
rb+
C.
wb
D.
wb+


3:下述程序执行后的输出结果是A
include
main()
{
int x=
f';
printf(
%c\n,a'+(x-a'+1));
}
A.G
B.H
C.I
D.J


4:C语言中,下列运算符优先级最高的是A
A.
B.

C.>>
D.


5:数组定义为 int a [ 4 ] ;
,表达式 ( D)
是错误的。
A.*a
B.a [ 0 ]
C.a
D.a++


6:执行语句 k=7>>1;
后,变量 k
的当前值是C
A.15
B.31
C.3
D.1


7:定义函数时,缺省函数的类型声明,则函数类型取缺省类型D
A.void
B.char
C.float
D.int


8:main()函数带参数,参数个数最多是C
A.0
B.1
C.2
D.3


9:若有宏定义:#define MOD(xy) xy
则执行以下语句后的输出结果是B
int a=13
b=94
printf(
d\nMOD(ba+4))
A.5
B.7
C.9
D.11


10:下列各个错误中,哪一个不属于编译错误A
A.改变 x
原值 3
5 ,写作 x==5 ;
B.
花括号不配对
C.
复合语句中的最后一条语句后未加分号
D
.变量有引用、无定义


11:下列程序段运行后, x
的值是(A )

a=1;b=2;x=0;
if(!(
a))x
;
if(!b)x=7;else ++x;
A.0
B.3
C.6
D.7


12:#define N 3
#define Y(n) ((N+1)*n)
则表达式2*(N+Y(5+1))的值是B
A.42
B.48
C.54
D.
出错


13:若定义了char ch[]={abc\0def},*p=ch;则执行printf(%c,*p+4);语句的输出结果是C
A.def
B.d
C.e
D.0


14:下列转义字符中错误的是C
A.
\000
B.\14
C.
\x111
D.
\2


15:算术运算符,赋值运算符和关系运算符的运算优先级按从高到低依次为B
A.
算术运算、赋值运算、关系运算
B.算术运算、关系运算、赋值运算
C.
关系运算、赋值运算、算术运算
D.
关系运算、算术运算、赋值运算


16:#define N 3
#define Y(n) ((N+1)*n)
则表达式2*(N+Y(5+1))的值是B
A.42
B.48
C.54
D.
出错


17:表达式 strcmp(
3.14
3.278
)
的值是一个A
A.非零整数
B.
浮点数
C.0
D.
字符


18:struct
{ short a;
char b;
float c;
}cs;
sizeof(cs)的值是D
A.4
B.5
C.6
D.8


19:若变量已正确定义,表达式( j=3
j++ )的值是A
A.3
B.4
C.5
D.0


20:C 语言中运算对象必须是整型的运算符是A
A.%
B./
C.!
D.**


简答题

21:打印一个N*N的方阵,N为每边字符的个数(
3
N20
),要求最外层为X,第二层为Y,从第三层起每层依次打印数字0123
例子:当N =5,打印出下面的图形:
X X X X X
X Y Y Y X
X Y 0 Y X
X Y Y Y X
X X X X X


22:谈谈COM的线程模型。然后讨论进程内/外组件的差别。


23:多态类中的虚函数表是Compile-Time,还是Run-Time时建立的?

Compile-Time


24:#include

void main()

{ int c;

while ((c=getchar())!=
\ n
)

switch(c 2
)

{ case 0:

case 1:putchar(c+4);break;

case 2:putchar(c+4);break;

case 3:putchar(c+3);break;

default:putchar(c+2);break;

}

printf( \ n
);

}

运行时输入: 2473
,输出结果:6897


25:用两个栈实现一个队列的功能?


26:写一语句实现x是否为2的若干次幂的判断。


27:解二次方程:a*x*x+b*x+c
int Quadratic( double a,double b,double c,double& x1,double& x2);
返回值:解的个数


28:如何判别一个数是unsigned

return(a>=0&&~a> =0)


29:执行下述程序的输出结果是__ABCDEFCDEFEF______________
#include
char b[]=
ABCDEF;
main()
{
char *bp;
for (bp=b;*bp;bp+=2)
printf(
%s,bp);
printf(
\n);
}


30:已知一个数组table,用一个宏定义,求出数据的元素个数。

#define NUM  sizeof(table)/sizeof(table[0])

 

抱歉!评论已关闭.