上海济强电子笔试题

一、不定项选择题(本大题共20小题,每题3分,共计60分)正确9题进入下一环节
1、下述程序执行后的输出结果是()
#include
int main(void)
{
  int x=’f’;
  printf(“%cn”, ‘b’+(x-‘a’+1));
  return 0;
}                                      A.g  B.h  C.i  D.h
2、根据C,C++标准,关于main函数书写方式错误的是()
A.main()  B.int main(int argc, char *argv[])  C.int main()  D.void main()  E.void main(void)
3、以下函数输出()
int main()
{
  if(0&!1 == 0)printf(“1”);
  else printf(“0”);
  if(1&0!=1   else printf(“0”);
}                                      A.1 0    B.0 0    C.1 1    D.0 1
4、有以下代码最终输出()
int foo(void)
{
  static int m=0;
  m+=++m;
  return m;
}
int main()
{
  foo();
  printf(“%d”, foo());
}                                      A.1  B.2  C.4  D.6
5、继续上一题,描述正确的是()
A m是全局变量  B m是局部变量  C m存储于静态存储区  D m存储于堆中  E m存储于栈中
6、以下关于volatile变量描述正确的是()
A.volatile关键字是一种类型修饰符,不属于C标准规定。
B.当要求使用volatile声明的变量的值的时候,系统总是重新从它的内存读取数据。
C.使用volatile后,编译器将要对访问该变量的代码进行优化。
D.一个中断服务子程序中会访问该变量(Non-automatic variables)应该使用volatile变量
E.多线程应用中被几个任务共享的变量应该为volatile变量
7.定义函数时,如果没有写函数的返回类型,则函数返回类型取缺省类型()  A.void   B.char    C.float  D.int
8.若定义了char ch[]={“abc def”};char *p=ch;则执行printf(“%c”, *p+4);语句的输出结果是()  A.def  B.d  C.e  D.0
9.下列转义字符中错误的是()     A.’ 00′   B.’14’    C.’x100′   D.’2′
10.哪些数据类型能做为swith()参数()   A.int   B.char   C.long   D.double   E.float   F.char *
11.软件测试按测试方法有哪些种类()  A.白盒测试  B.黑盒测试   C.单元测试   D.验收测试   E.ALAC(Act-like-a-customer)测试
12.下列程序段运行后,x的值是()
void foo(void)
{
  int a, b, x;
  a=1;b=2;x=0;
  if(!(–a)) x–;
  if(!b) x=7;else ++x;
}                           A.0      B.3     C.6     D.7
13.以下函数返回值()
#define N 3
#define Y(n)  ((N+1)*n)
int foo(void)
{
  return 2*(N+Y(5+1));
}                           A.42     B.48     C.54    D.答案不是ABC
14.如下代码,输出是()
void foo(char **p)
{
  char* t;
  t=(p+=3)[-1];
  printf(“%s”, t);
}
main()
{
  char * argv[]={“ab”, “cd”, “ef”, “gh”, “ij”, “kl”};
  foo(argv);
}                          A.ab     B.cd      C.ef     D.gh
15.单片机要写入内存地址为0x00001450的值为123,正确的方式有()
A. int *p;p=(int*)0x00001450;*p=123;    B.int **p=0;*p=(int*)0x00001450;**p=123;    C.(int *)0x00001450=123;   D.*(int *const)0x00001450=123;
16.在32位CPU,VC缺省设置情况下,如下代码,sizeof(G)是()
union D
{
  long a;
  char b[5];
  short C;
  int d;
}
struct
{
  long e;
  union D f;
  char g[6];
}G;                         A.15     B.16     C.18    D.20    E.24
17.Win32 API,对函数BOOL PurgeCommon(HANDLE hFile, DWORD dwFlags)描述正确的是()
A.该函数的作用是清空串口缓存区。              B.第一个参数是一个指向串口的句柄,该参数通过CreateFile获得。
C.第二个参数的作用是设置输出缓存区的大小。    D.第二个参数的作用是设置输出缓存区的大小。
18.以下正确的函数原型为()   A.f(int x; int y);  B.void (x,y);  C.void (int x, y);  D.void f(int, int);
19.C++使用重载函数编程序的目的是()
A.使用相同的函数名调用功能相似的函数   B.共享程序代码   C.提高程序的运行速度   D.节省存储空间
20.C++,下列函数中,可以作为虚函数的是()   A.普通函数   B.构造函数   C.成员函数   D.内联函数

二、查错题(本大题共1小题, 共计8分)
要求:请查找错误并修改,有4个错误。
以下程序运行环境为PC x86,VC6.0.
运行结果是要把一个16进制字符串转换成整数。
int HexCharToInt(char hexchar)
{
  static const char *HEXSTR=”0123456789ABCDEF”;
  int index;                                       //
  char *p=(char *)HEXSTR;             //
  while(hexchar!=*p)                        //
  {
    index++;                                      //
    if(index==16)return -1;                //
  }
  return index;                                  //
}

unsigned long HexStrToULONG(char *hexstr)
{
  unsigned long ret=0;                                //
  int len=sizeof(hexstr);                              //
  for(int i=0; i   {
    int r=HexCharToInt(hexstr[len-i-1]);           //
    if(r==-1)return -1;                                       //
    else ret +=r   }
  return ret;                                                     //
}

int BUFFER_LEN 64;                                       //
int main()                                                          //
{
  char buf[BUFFER_LEN];                                //
  char hex[]=”34AB”;                                         //
  sprintf(buf, “%x”, HexStrToULONG(hex));      //
  return 1;                                                          //
}
三、问答题(本大题共5小题,共计32分)
1.题目一(6分)   请用标准C写一个memcpy函数。
2.题目二(4分)   请使用#define UPCASE(c)将一个字母转换为大写。
3.题目三(4分)   队列和堆栈的区别是什么r> 4.题目四(4分)   请描述嵌入式系统中,中断(interrupt,如键盘中断)与异常(exception,如除零异常)有何区别r> 5.题目五(10分)  编程题。请编写一个函数。要求从计算从1*2*3……998*999*1000的积有多少个0.
int Zero(int from, int end)
{
  int ZeroCount=0;       //0的个数
  ……

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年2月16日
下一篇 2019年2月16日

相关推荐