C语言程序设计 自测题

C语言程序设计  试卷一

 

 

[单选题]

 

11假定XYdouble则表达式X=2,Y=X+3/2的值是______

     A3.500000

     B、3

     C、2.000000

     D、3.000000

12、以下各选项企图说明一种新的类型名,其中正确的是______

     Atypedef  v1  int;

     Btypedef  v2=int;

     Ctypedef  int  v3;

     Dtypedef  v4:  int

13、以下定义语句中错误的是______

     Aint a[]={1,2};

     Bchar *a[3];

     Cchar s[10]="test";

     Dint n=5,a[n];

14、假定 wxyzm均为int型变量有如下程序段

w=1;x=2;y=3;z=4;

m=(w<x)?w:x;  m=(m<y)?m:y; m=(m<z)?m:z;

则该程序段执行后,m的值是______

     A、4

     B、3

     C、2

     D、1

15、假定int类型变量占用两个字节,若有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是______

     A、3

     B、6

     C、10

     D、20

16、以下程序的输出结果是______

   main()

   {  int   num=0;

      while(num<=2)

      {  num++;  printf("%d/n",num);  }

    }

A)   B)    C)        D)

1    1     1         1

2    2     2

3    3

4

 

     AA)

     BB)

     CC)

     DD)

17、t为int类型,进入下面的循环之前,t的值为0。

while(t=1)

{  ......}

则以下叙述中正确的是______

     A、循环控制表达式的值为0

     B、循环控制表达式的值为1

     C、循环控制表达式不合法

     D、以上说法都不对

18、在C语言中,合法的长整型常数是______

     A、OL

     B、4962710

     C、324562&

     D、216D

19、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______

     A、地址传递

     B、单向值传递

     C、由实参传给形,再由形参传回实参

     D、传递方式由用户指定

20、以下有4组用户标识符,其中合法的一组是______

AFOR  B4d    Cf2_G3  DWORD

-sub       DO       IF        void

Case       Size     abc       define

     AA

     BB

     CC

     D、D)

21、以下程序的输出结果是______

  #define   M(x,y,z)  x*y+z

  main()

  {  int  a=1,b=2,c=3;

     printf("%d/n",M(a+b,b+c,c+a));

  }

     A、19

     B、17

     C、15

     D、12

22、阅读以下程序:

  main()

  {   int  x;

      scanf("%d",&x);

      if(x--<5)printf("%d/n",x);

      else     printf("%d/n",x++);

    }

 程序运行后如果从键盘上输入5则输出结果是______

     A3

     B、4

     C、5

     D、6

23、以下程序的输出结果是______

 main()

 { int a,b;

   for(a=1,b=1;a<=100;a++)

   { if(b>=10) break;

     if(b%3==1)

     {  b+=3;  continue;  }

   }

   printf("%d/n",a);

  }

     A101

     B6

     C5

     D4

24、若有说明:int i,j=2,*p=&i;则能完成i=j赋值功能的语句是______

     Ai=*p;

     B*p=*&j;

     Ci=&j;

     Di=**p;

25、下面的程序执行后文件test.t中内容是______

#include <stdio.h>

void fun(char *fname,char *st)

{ FILE *myf;  int i;

  myf=fopen(fname,"w");

  for(i=0;i<strlen(st);i++)fputc(st[i],myf);

  fclose(myf);

}

main()

{fun("test.t","new world"); fun("test.t","hello,");}

 

     Ahello,

     Bnew worldhello

     Cnew world

     Dhello,rld

26、整型变量X和Y的值相等,且为非0值,则以下选项中结果为0的表达式是______

     A、X||Y

     B、X|Y

     C、X&Y

     D、X^Y

27、以下数组定义中不正确的是______

 

 

     A、int a[2][3];

     B、int b[][3]={0,1,2};

     C、int c[100][100]={0};

     D、int d[3][]={{1,2},{1,2,3},{1,2,3,4}};

28、以下程序的输出结果是______

 main()

 { int  a[4][4]={{1,3,5},{2,4,6},{3,5,7}}; printf("%d%d%d%d/n",a[0][3],a[1][2],a[2][1],a[3][0]);

 }

     A、0650

     B、1470

     C、5430

     D、输出值不定

29、以下程序的输出结果是______

main()

{ int  i,a[10];

   for(i=9;i>=0;i--) a[i]=10-i;

   printf("%d%d%d",a[2],a[5],a[8]);

}

     A、258

     B、741

     C、852

     D、369

30、以下程序的输出结果是______

struct HAR

{ int  x,y;struct HAR *p;} h[2];

main()

{ h[0].x=1;h[0].y=2;

  h[1].x=3;h[1].y=4;

  h[0].p=&h[1];h[1].p=h;

  printf("%d%d/n",(h[0].p)->x,(h[1].p)->y);

}

     A、12

     B、23

     C、14

     D、32

31、以下函数值的类型是______

fun(float x)

{  float y;

   y=3*x-4;

   return y;

   }

    

     Aint

     B、不确定

     Cvoid

     Dfloat

32、以下程序的输出结果是______

 main()

 { char st[20]="hello/0/t//";

   printf("%d%d/n",strlen(st),sizeof(st));

 } 

     A、99

     B、520

     C、1320

     D、2020

33、以下选项中合法的字符常量是______

     A、"B"

     B、'/010'

     C、68

     D、D

34、设有以下函数;

f(int  a)

{  int  b=0;

   static int c=3;

   b++;c++;

   return(a+b+c);

 }

 如果在下面的程序中调用该函数,则输出结果是______

 main()

 {  int  a=2, i;

    for(i=0;i<3;i++) printf("%d/n",f(a));

 }

 A)    B)      C)      D)

 7     7       7       7

 8     9       10      7

 9     11      13      7

     AA)

     BB)

     C、C)

     D、D)

35、以下选项中,不能正确赋值的是______

     Achar s1[10];s1="chest";

     Bchar s2[]={'C','t','e','s','t'};

     Cchar s3[20]="Chest";

     Dchar *s4="Chest/n";

36、以下程序输出正确的是______

amovep(int  *p,int (*a)[3],int n)

{ int i,j;

  for(i=0;i<n;i++)

    for(j=0;j<n;j++){  *p=a[i][j];p++; }

 }

 main()

 { int  *p,a[3][3]={{1,3,5},{2,4,6}};

   p=(int*)malloc(100);

   amovep(p,a,3);

   printf("%d%d/n",p[2],p[5]);free(p);

  }

     A、56

     B、25

     C、34

     D、程序错误

37、以下程序的输出结果是______

main()

{  char  c='z';

    printf("%c",c-25);

 }

     A、a

     B、z

     C、z-25

     D、y

38、以下程序的结果是______

   int  a,b;

   void fun()

   {     a=100; b=200;  }

   main()

   {  int  a=5,b=7;

      fun();

      printf("%d%d/n",a,b);

   }

     A、100200

     B、57

     C、200100

     D、75

39、以下程序的输出结果是______

 union myun

 { struct

    { int x,y,z;}u;

    int  k;

 }a;

 main()

 { a.u.x=4;a.u.y=5;a.u.z=6;

   a.k=0;

   printf("%d/n",a.u.x);

 }

     A、4

     B、5

     C、6

     D、0

40、以下合法的赋值语句是______

     AX=Y=100

     BD--;

     CX+Y;

     D、C=INT(A+B)

 

 

[填空题]

6以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

file *myf;  long f1;

myf=__  __("test.t","rb");

fseek(myf,(),SEEK_END);f1+ftell(myf);

fclose(myf);

printf("%1d/n",f1);

7、语句;X++;、++X;、X=X+1;、X=1+X;,执行后都使变量X中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)__  ___。

 

8、以上程序运行后的输出结果是______

main()

{ int i=10,j=0;

  do

  {  j=j+i;  i--;}

  while(i>2);

  printf("%d/n",j);

}

9、以下函数的功能是:求x的y次方,请填空。

double fun(double x,int y)

{ int i;

  double  z;

  for(i=1,z=x;i<y;i++) z=z*__  __;

  return z;

}

10、若有定义语句:char s[100],d[100];int j=0,i=0;s中已赋字符串请填空以实现拷贝。(注:不使用逗号表达式)

while(s[i]){d[j]=______;j++;}

d[j]=0;

11、设有以下程序:

main()

{ int  a,b,k=4,m=6,*p1=&k,*p2=&m;

  a=p1==&m;

  b=(*p1)/(*p2)+7;

  printf("a=%d/n",a);

  printf("b=%d/n",b);

}

执行该程序后,a的值为__  __,b的值为__  ___。

12、设有如下程序:

main()

{  int  n1,n2;

   scanf("%d",&n2);

   while(n2!=0)

   { n1=n2%10;

     n2=n2/10;

     printf("%d",n1);

    }

  }

  程序运行后,如果从键盘上输入1298,则输出结果为__  __。

13、若有如下结构体说明:

struct STRU

{ int a,b;char c: double d;

  struct STRU *p1,*p2;

};

请填空,以完成对t数组的定义,t数组的每个元素为该结构体类型。

______t[20]

14、以下程序段用于构成一个简单的单向链表,填空。

struct STRU

{ int x,y;

  float rate;

  ______ p;

}a,b;

a.x=0;a.y=0;a.rate=0;a.p=&b;

b.x=0;b.y=0;b.rate=0;b.p=NULL;

posted @ 2009-12-14 16:46  涛涌四海  阅读(1111)  评论(1编辑  收藏  举报