C面试题精选.docx

上传人:b****1 文档编号:23108112 上传时间:2023-04-30 格式:DOCX 页数:13 大小:20.46KB
下载 相关 举报
C面试题精选.docx_第1页
第1页 / 共13页
C面试题精选.docx_第2页
第2页 / 共13页
C面试题精选.docx_第3页
第3页 / 共13页
C面试题精选.docx_第4页
第4页 / 共13页
C面试题精选.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C面试题精选.docx

《C面试题精选.docx》由会员分享,可在线阅读,更多相关《C面试题精选.docx(13页珍藏版)》请在冰豆网上搜索。

C面试题精选.docx

C面试题精选

试卷总分:

100

出卷时间:

2014-07-1111:

24

答题时间:

120分钟

 

一单选题

1.要把高级语言编写的源程序转换为目标程序,需要使用(D)[2分]

A.编辑程序

B.驱动程序

C.诊断程序

D.编译程序

2.以下叙述中正确的是( C)[2分]

语言程序将从源程序中第一个函数开始执行

B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

语言规定必须用main作为主函数名,程序将从此开始执行,在此结束

可作为用户标识符,用以命名任意一个函数作为主函数

3.若变量a是int类型,并执行了语句:

a=‘A'+;,则正确的叙述是( D)[2分]

的值是字符B

的值是浮点型

C.不允许字符型和浮点型相加

的值是字符‘A’的ASCII值加上2

4.若变量已正确定义并赋值,以下符合C语言语法的表达式是( B)[2分]

:

=b+1

=b=c+2

%3

=a+7=c+b

5.下列可用于C语言用户标识符的一组是( )[2分]

define,WORD

_123,car

-abc,IFCase

DO,sizeof

6.若在定义语句:

inta,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是(  )[2分]

("%d",a,b,c);

("%d%d%d",a,b,c);

("%d",p);

D. scanf("%d",&p);

7.以下关于long、int和short类型数据占用内存大小的叙述中正确的是(  )[2分]

A.均占4个字节

B.根据数据的大小来决定所占内存的字节数

C.由用户自己定义

D.由C语言编译系统决定

8.若变量已正确定义,有以下程序段

i=0;

do

{

   printf("%d,",i);

}while(i++);

printf("%d\n",i);

其输出结果是(  )[2分]

A. 0,0

B. 0,1

C. 1,1

D. 程序进入无限循环

9.有以下计算公式

  

若程序前面已在命令中包含文件,不能够正确计算上述公式的程序段是(  )[2分]

A. if(x>=0)y=sqrt(x); elsey=sqrt(-x);

B. y=sqrt(x)if(x<0)y=sqrt(-x);

C. if(x>=0)y=sqrt(x); if(x<0)y=sqrt(-x);

D. y=sqrt(x>=0x:

-x);

10.设有条件表达式:

(EXP)i++;j--,则以下表达式中(EXP)完全等价的是(  )[2分]

A.(EXP==0)

B.(EXP!

=0)

C.(EXP==1)

D.(EXP!

=1)

11.有以下程序

#include<>

intmain(void)

{

  inty=9;

  for(;y>0;y--)

  {

    if(y%3==0)

       printf("%d",--y);

  }

}

程序的运行结果是(  )[2分]

 

12.若函数调用时的实参为变量时,以下关于函数形参和实参的叙述中正确的是(  )[2分]

A.函数的实参和其对应的形参共占同一存储单元

B.形参只是形式上的存在,不占用具体存储单元

C.同名的实参和形参占同一存储单元

D.函数的形参和实参分别占用不同的存储单元

13.已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'。

执行语句printf("%d,%d",c1,c2-2);后,输出结果是(  )[2分]

,B

,68

,66

,68

14.以下叙述中错误的是(  )[2分]

A.改变函数形参的值,不会改变对应实参的值

B.函数可以返回地址值

C.可以给指针变量赋一个整数作为地址值

D.当在程序的开头包含文件时,可以给指针变量赋NULL

15.以下正确的字符串常量是(  )[2分]

A."\\\"  

B.'abc'

Games

D.""

16.设有定义:

charp[]={’1’,’2’,’3’},*q=p;,以下不能计算出一个char型数据所占字节数的表达式是(  )[2分]

(p)

(char)

(*q)

(p[0])

17.有以下函数

int func(char*s)

{

   char*t=s;      

   while(*t++);

   t--;

   return(t-s);

}

以下关于func函数的功能叙述正确的是(  )[2分]

A.求字符串s的长度

B.比较两个串的大小

C.将串s复制到串t

D.求字符串s所占字节数

18.若有定义语句:

inta[3][6];,按在内存中的存放顺序,a数组的第10个元素是(  )[2分]

[0][4]

[1][3] 

[0][3]

[1][4]

19.有以下程序

#include<>

voidfun(char**p)

{

   ++p;

   printf("%s\n",*p);

}

intmain(void)

{

   char*a[]={"Morning","Afternoon","Evening","Night"};

   fun(a);

}

程序的运行结果是( )[2分]

 

D. orning

20.若有定义语句:

inta[2][3],*p[3];,则以下语句中正确的是(  )[2分]

=a;

[0]=a;

[0]=&a[1][2]; 

D. p[1]=&a;

21.有以下程序

#include<>

int fun(chars[])

{

   intn=0;

   while(*s<=’9’&&*s>=’0’)

   {

      n=10*n+*s-’0’;

      s++;

   }

   return(n);

}

intmain(void)

{

   chars[10]={’6’,’1’,’*’,’4’,’*’,’9’,’*’,’0’,’*’};

   printf("%d\n",fun(s));

}

程序运行的结果是(  )[2分]

 

22.以下能正确定义一维数组的选项是(  )[2分]

a[5]={0,1,2,3,4,5};

a[]={0,1,2,3,4,5};

a={’A’,’B’,’C’};

a[5]="0123";

23.以下叙述中正确的是(  ) [2分]

A.预处理命令行必须位于源文件的开头

B.在源文件的一行上可以有多条预处理命令

C.宏名必须用大写字母表示

D.宏替换不占用程序的运行时间

24.若有以下说明和定义(  ) 

uniondt 

{

  inta;

  charb;

  doublec;

}data; 

以下叙述中错误的是[[2分]

的每个成员起始地址都相同

B.变量data所占的内存字节数与成员c所占字节数相等

C.程序段:

=5;printf("%f\n",;输出结果为

D. data可以作为函数的实参

25.以下语句或语句组中,能正确进行字符串赋值的是( ) [2分]

*sp;*sp="right!

";

s[10];s="right!

"; 

s[10];*s="right!

";

*sp="right!

"; 

二填空题

1.以下程序的功能是:

输出a、b、c三个变量中的最小值.请填空。

#include<>

int main(void)

{

   inta,b,c,t1,t2;

   scanf("%d%d%d",&a,&b,&c);

   t1=a

   t2=c

   printf("%d\n",t2);

}[每空2分]

2.以下程序的输出结果是                      .                       

#include <>

int main(void)

{

  int n=12345,d;  

  while(n!

=0)

  {

     d=n%10;

     printf("%d",d);

     n/=10;

   }

}[每空4分]

3.已有定义如下:

structnode

{

intdata;

structnode*next;

}*p;

以下语句调用malloc函数,使指针p指向一个具有structnode类型的动态存储空间。

p=(structnode*)malloc(                      );[每空4分]

4.表达式(int)((double)5/2+的值是:

                       [每空4分]

5.写出以下两段程序的执行结果。

如果程序无法编译,请指出出错部分并写明原因;如果程序陷入死循环,请回答“死循环”。

如果执行结果出现内存错误,请指出出错部分并写明原因。

int main(void)

{

  chars[]="man";

  inti;

  for(i=0;s[i];i++)

    printf("\n%c%c%c%c",s[i],*(s+i),*(i+s),i[s]);

  return0;

}

 

 

int main(void)

{

  char*cptr,c;

  void*vptr,v;

  c=10; v=0;

 

  cptr=&c;

  vptr=&v;

   return0;

}

 

 [每空2分]

6.对下面的代码进行解释:

 typedef void (*lpFunction)(void);

 lpFunction lpReset = (lpFunction)0xF000FFF0;

 lpReset();

 [4分]

7.

指出下面代码的不妥之处(不需要修改):

voidGetMemory(T_S8*p,T_S16nNum)

{

  p=(T_S8*)malloc(sizeof(T_S8)*nNum);

}

voidTest(void)

{

  T_S8*str=NULL;

  GetMemory(str,100);

  strcpy(str,"hello");

}

                                                                               [每空4分]

函数的运行结果如何原因?

char*GetMemory(void)

{

  charp[]="helloworld";

  returnp;

}

voidTest(void)

{

  char*str=NULL;

  str=GetMemory();

  printf("%s\n",str);

}

                                                    [每空4分]

函数的运行结果如何原因?

VoidGetMemory2(char**p,intnum)

{

  *p=(char*)malloc(num);

}

voidTest(void)

{

  char*str=NULL;

  GetMemory(&str,100);

  strcpy(str,"hello");

  printf("%s\n",str);

}

                      [每空4分]

10. Test函数的运行结果如何原因?

voidTest(void)

{

  char*str=(char*)malloc(100);

  strcpy(str,“hello”);

  free(str);

  if(str!

=NULL)

  {

     strcpy(str,“world”);

     printf("%s\n",str);

  }

}

                                         [每空4分]

三编程题

1.请编写一个函数func,用来删除字符串中的所有空格。

例如,传入字符串“asd af aa z67”,则返回为字符串“asdafaaz67”。

[10分]

============本试卷共计36题,此处为结束标志。

考试酷examcoo============

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1