视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
C面试题精选
2025-09-23 22:07:05 责编:小OO
文档
试卷总分:100

出卷时间:2014-07-11 11:24

答题时间:120分钟

 

一 单选题

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

A.编辑程序

B.驱动程序

C.诊断程序

D.编译程序

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

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

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

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

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

3.若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是 ( D )[2分]

A.a的值是字符B

B.a的值是浮点型

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

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

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

A.a:=b+1

B.a=b=c+2

C.int 18.5%3

D.a=a+7=c+b

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

A.void, define, WORD

B.a3_b3, _123,car

C.For, -abc, IF Case

D.2a, DO, sizeof

6.若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是(   )[2分]

A.scanf("%d",a,b,c);

B.scanf("%d%d%d",a,b,c);

C.scanf("%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.有以下计算公式

  

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

A. if(x>=0) y=sqrt(x); else y=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>=0?x:-x);

10.设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是(   )[2分]

A.(EXP==0)

B.(EXP!=0)

C.(EXP==1)

D.(EXP!=1)

11.有以下程序

#include

int main(void)

{

   int y=9;

   for( ; y>0;y--)

   {

     if(y%3= =0)

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

   }

}

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

A.741

B.963

C.852

D.875421

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

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

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

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

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

13.已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是(   )[2分]

A.A,B 

B.A,68

C.65,66

D.65,68

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

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

B.函数可以返回地址值

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

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

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

A."\\\\\\"  

B.'abc'

C.Olympic Games

D." "

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

A.sizeof(p)

B.sizeof(char)

C.sizeof(*q)

D.sizeof(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.若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是(   )[2分]

A.a[0][4]

B.a[1][3] 

C.a[0][3]

D.a[1][4]

19.有以下程序

#include

void fun(char **p)

{

    ++p;

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

}

int main(void)

{

    char *a[ ]={"Morning

    fun(a);

}

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

A.Afternoon

B.fternoon

C.Morning

D. orning

20.若有定义语句:int a[2][3],*p[3]; ,则以下语句中正确的是(   )[2分]

A.p=a;

B.p[0]=a;

C.p[0]=&a[1][2]; 

D. p[1]=&a;

21.有以下程序

#include

int  fun(char s[ ])

{

    int n=0;

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

    {

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

       s++;

    }

    return(n);

}

int main(void)

{

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

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

}

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

A.9

B.61490

C.61

D.5

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

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

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

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

D.int a[5]="0123";

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

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

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

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

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

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

union dt 

{

   int a;

   char b;

   double c;

}data; 

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

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

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

C.程序段:data.a=5;printf("%f\\n",data.c);输出结果为5.000000

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

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

A.char *sp;*sp="right!";

B.char s[10];s="right!"; 

C.char s[10];*s="right!";

D.char *sp="right!"; 

二 填空题

1.以下程序的功能是:输出a、b、c三个变量中的最小值.请填空。

#include

int  main(void)

{

    int a,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.已有定义如下:

struct node

{

int data;

struct node *next;

} *p;

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

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

4.表达式(int)((double)5/2+2.5)的值是:                       [每空4分]

5.写出以下两段程序的执行结果。如果程序无法编译,请指出出错部分并写明原因;如果程序陷入死循环,请回答“死循环”。 如果执行结果出现内存错误,请指出出错部分并写明原因。

int  main(void)

{

   char s[ ]="man";

   int i;

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

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

   return 0;

}

  

int  main(void)

{

   char *cptr,c;

   void *vptr,v;

   c=10;  v=0;

 

   cptr=&c; 

   vptr=&v;

   return 0;

}

  [每空2分]

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

 typedef void (*lpFunction)(void);

 lpFunction lpReset = (lpFunction)0xF000FFF0;

 lpReset();

 [4分]

7.

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

void GetMemory(T_S8 *p, T_S16 nNum)

{

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

}

void Test(void)

{

   T_S8 *str = NULL;

   GetMemory(str, 100);

   strcpy(str, "hello");

}

                                                                               [每空4分]

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

char *GetMemory(void)

{

   char p[] = "hello world";

   return p;

}

void Test(void)

{

   char *str = NULL;

   str = GetMemory();

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

}

                                                    [每空4分]

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

Void GetMemory2(char **p, int num)

{

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

}

void Test(void)

{

   char *str = NULL;

   GetMemory(&str, 100);

   strcpy(str, "hello");

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

}

                      [每空4分]

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

void Test(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 ============下载本文

显示全文
专题