北京和兴宏图科技软件笔试题目

1:设floata=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:定义函数时,缺省函数的类型声明,则函数类型取缺省类型 A
A.void
B.char
C.float
D.int


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

9:若有宏定义:#defineMOD(x,y) x%y B
则执行以下语句后的输出结果是
int a=13,b=94;
printf(″%d\n″,MOD(b,a+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:若定义了charch[]={″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:设#defineN 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 ” ) 的值是一个 C
A.非零整数
B.浮点数
C.0
D.字符

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

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

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

 

简答题

21:
打印一个N*N的方阵,N为每边字符的个数( 3〈N〈20 ),要求最外层为“X”,第二层为“Y”,从第三层起每层依次打印数字0,1,2,3,...
例子:当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

 

 

For(i= 0;i++;i< N)

{

For(j= 0;j++;j < N)
{if(I == 0 ||I == N || j == 0 || j == N)

{

       Printf(‘X’);

}

ElseIf(I == 1 ||I == N-1 || j== 1|| j== N-1)

{

       Printf(‘Y’);

}

Elseif(I )

 

}

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

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

 

 

24:#include

  voidmain()

  { intc;

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

  switch(c- ′ 2 ′ )

  {case 0:

  case1:putchar(c+4);break;

  case2:putchar(c+4);break;

  case3:putchar(c+3);break;

  default:putchar(c+2);break;

  }

  printf(″\ n ″ );

  }

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

 

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

栈的特点是:先进后出 队列特点是:先进先出,后进后出

假设有两个栈A,B

A输入字符0123

把A中元素取出,放入B中,从B中取出的元素就是0123即先进先出

总结:在A中存储数据后,取出A中数据存入B中,B即队列输出结果

 


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

If(x% 2 == 0 && x != 0)


27:如何判别一个数是unsigned。



 

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

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

#defineNUM(a)  while(*a != ‘\0’) count++;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值