专升本考试C语言模拟试题.docx

上传人:b****6 文档编号:4955977 上传时间:2022-12-12 格式:DOCX 页数:13 大小:20.04KB
下载 相关 举报
专升本考试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语言模拟试题

2008年专升本考试C语言模拟试题

(2009-07-0422:

35:

50)

转载

标签:

c语言

分类:

考试

一.单项选择题

1. 以下定义语句中正确的是(C)

  A)chara='A'b='B';B)floata=b=10.0;

  C)inta=10,*b=&a;D)float*a,b=&a;

2.下列运算符中,优先级最高的是(A)。

A.->   B. ++    C.&&    D.=

3.表达式!

(x>0&&y>0)等价于(A)。

A.!

(x>0)||!

(y>0) B.!

x>0||!

y>0  C. !

x>0&&!

y>0 D.!

(x>0)&&!

(y>0)

4.有以下程序

  main()

  {inta=666,b=888;

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

  }

  程序运行后的输出结果是(B)

  A)错误信息B)666C)888D)666,888

5.有以下程序

  main()

  {inti;

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

  switch(i)

  {

  case0:

printf("%d",i);

  case2:

printf("%d",i);

  default:

printf("%d",i);

  }

  }

  程序运行后的输出结果是(C)

  A)022111B)021021C)000122D)012

6.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是(C)

 A)abs(x-y)<10

B)x-y>-10&&x-y<10

 C)!

(x-y)<-10||!

(y-x)>10

D)(x-y)*(x-y)<100

7.数组定义为,inta[11][11];则数组a的元素个数为:

(D)

A.12   B. 144   C.100    D. 121

8.对于以下的变量定义,不正确的表达式是:

(D)。

  structnode{

    int j,k;

  }x,*p=&x;

 A.   p->k=2;   B. (*p).k=2; 

C.  x.k=2    D.  x->k=2

9.不正确的赋值或赋初值的方式是(B)。

 A.  charstr[]=”string”; 

B. charstr[10]; str=”string”;

 C.  char*p=”string”; 

D. char*p;p=”string”;

10.设程序中不再定义新的变量,写出在函数main中可以使用的所有变量为:

(B)

  #include

  intz;

  intp(intx)

  {  staticinty;

       return(x+y);

  }

  voidmain()

  {  inta,b;

 printf(“%dn”,p(a));

 ………

  }  

 A.a,b        B.a,b,z 

C. a,b,y,z   D. a,b,x,y,z

11.有以下程序

  main()

  {inti=0,x=0;

  for(;;)

  {

  if(i==3||i==5)continue;

  if(i==6)break;

  i++;

  s+=i;

  };

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

  }

  程序运行后的输出结果是(D)

  A)10B)13C)21D)程序进入死循环

12.有以下程序

  main()

  {chara,b,c,d;

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

  printf("c,%c,%c,%c\n",a,b,c,d);

  }

  若运行时从键盘上输入:

6,5,65,66<回车>。

则输出结果是(A)

  A)6,5,A,B

  B)6,5,65,66

  C)6,5,6,5

  D)6,5,6,6

13.s12和s2已正确定义并分别指向两个字符串。

若要求:

当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是(D)

 A)if(s1>s2)S;

B)if(strcmp(s1,s2))S;

 C)if(strcmp(s2,s1)>0)S;

D)if(strcmp(s1,s2)>0)S;

14.有以下定义和语句

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

  p[0]=a[1];

  则*p[0]+1)所代表的数组元素是(C)

  A)a[0][1]  B)a[1][0]

  C)a[1][1]  D)a[1][2]

15.程序中对fun函数有如下说明

  void*fun();

  此说明的含义是:

(C)

  A)fun了数无返回值

  B)fun函数的返回值可以是任意的数据类型

  C)fun函数的返回值是无值型的指针类型

  D)指针fun指向一个函数,该函数无返回值

16.有以下程序

  voidfun(int*a,inti,intj)

  {intt;

  if(i

  {t=a;a=a[j];a[j]=t;

  i++;j--;

  fun(a,i,j);

  }

  }

  main()

  {intx[]={2,6,18},i;

  fun(x,0,3);

  for(i=0;i<4;i++)printf("%2d",x);

  printf("\n");

  }

  程序运行后的输出结果是(C)

  A)1268    B)8621 

  C)8162   D)8612

 17.有以下说明和定义语句

  structstudent

  {intage;charnum[8];};

  structstudentstu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};

  structstudent*p=stu;

    以下选项中引用结构体变量成员的表达式错误的是(D)

  A)(p++)->num  B)p->num

  C)(*p).num      D)stu[3].age

18.已定义ch为字符型变量,以下赋值语句中错误的是(A)

  A)ch='\';  B)ch=62+3;

 C)ch=NULL;  D)ch='\xaa';

19.以下选项中不能正确把cl定义成结构体变量的是(B)

 A)typedefstruct

B)structcolorcl

  {intred;{intred;

  intgreen;intgreen;

  intblue;intblue;

  }COLOR;};

  COLORcl;

 C)structcolor

D)struct

  {intred;{intred;

  intgreen;intgreen;

  intblue;intblue;

  }cl;}cl;

20.有以下程序

  fun(inta,intb)

  {if(a>b)return(a);

  elsereturn(b);

  }

  main()

  {intx=3,y=8,z=6,r;

  r=fun(fun(x,y),2*z);

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

  }

  程序运行后的输出结果是(D)

  A)3B)6C)8D)12

21.有以下程序段

  main()

  {inta=5,*b,**c;

  c=&b;b=&a;

  ……

  }

  程序在执行了c=&b;b=&a;语句后,表达式:

**c的值是(C)

  A)变量a的地址B)变量b中的值

  C)变量a中的值D)变量b的地址

22.设有intx=11;则表达式(x++*1/3)的值是(A)

  A)3B)4C)11D)12

23.下列程序的输出结果是(C)

  A)3B)3.2C)0D)3.07

  main()

  {doubled=3.2;intx,y;

  x=1.2;y=(x+3.8)/5.0;

  printf("%d\n",d*y);

  }

24.下列变量定义中合法的是(A)

  A)short_a=1-.le-1;

  B)doubleb=1+5e2.5;

  C)longdo=0xfdaL;

   D)float2_and=1-e-3;

25.以下循环体的执行次数是(C)

  A)3B)2C)1D)0

  main()

  {inti,j;

  for(i=0,j=1;i<=j+1;i+=2,j--)printf("%d\n",i);

  }

26.以下叙述正确的是(D)

  A)do-while语句构成的循环不能用其它语句构成的循环来代替。

  B)do-while语句构成的循环只能用break语句退出。

  C)用do-while语句构成的循环,在while后的表达式为非零时结束循环。

  D)用do-while语句构成的循环,在while后的表达式为零时结束循环。

27.下列程序执行后的输出结果是(A)

  A)GB)HC)ID)J

  main()

  {intx='f';printf("%c\n",'A'+(x-'a'+1));}

28.下列程序执行后的输出结果是(A)

  A)6B)7C)8D)9

  voidfunc(int*a,intb[])

  {b[0]=*a+6;}

  main()

  {inta,b[5];

  a=0;b[0]=3;

  func(&a,b);printf("%d\n,b[0]);

  }

29.下列程序的运行结果是(B)

  A)a=%2,b=%5B)a=2,b=5

  C)a=d,b=d D)a=%d,b=%d

  #include

  main()

  {inta=2,c=5;

  printf("a=%d,b=%d\n",a,c);}

30.设有数组定义:

chararray[]="China";则数组array所占的空间为(C)

  A)4个字节 B)5个字节

  C)6个字节  D)7个字节

31.下列程序的输出结果是(B)

  A)5B)6C)7D)8

  structabc

  {inta,b,c;};

  main()

  {structabcs[2]={{1,2,3},{4,5,6}};intt;

  t=s[0],a+s[1],b;

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

  }

32.若有以下调用语句,则不正确的fun函数的首部是(C)

  A)voidfun(intm,intx[])

  B)voidfun(ints,inth[41])

  C)voidfun(intp,int*s)

  D)voidfun(intn,inta)

  main()

  {…

  inta[50],n;

  …

  fun(n,&a[9]);

  …

  }

33.设已有定义:

char*st="howareyou";下列程序段中正确的是(A)

  A)chara[11],*p;strcpy(p=a+1,&st[4]);

  B)chara[11];strcpy(++a,st);

  C)chara[11];strcpy(a,st);

  D)chara[],*p;strcpy(p=&a[1],st+2);

34.下列程序执行后的输出结果是(A)

  A)you&neB)youC)meD)err

  mai()

  {chararr[2][4];

  strcpy(arr,"you");strcpy(arr[1],"me");

  arr[0][3]='&';

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

  }

35.下列程序执行后的输出结果是(B)

  A)6B)8C)10D)12

  #defineMA(x)x*(x-1)

  main()

  {inta=1,b=2;printf("%d\n",MA(1+a+b));}

36.变量a所占内存字节数是(C)

  A)4B)5C)6D)8

  unionU

  {charst[4];

  inti;

  longl;

  };

  structA

  {intc;

  unionUu;

  }a;

二、填空题

1.表达式1<0<5的值是       1       。

  3.表达式~(10>>1^~5)的值是        0            。

2.设变量已正确定义,在程序段B中填入正确的内容,使程序段A和程序段B等价。

      程序段A

 for(k=s=0;k<=10;s+=a[k++])

     if(a[k]<0)break;

      程序段B

      for(k=0,s=0;;s+=a[k++])

     if(  a[k]<0||k>10        )break;

3.下列程序的输出结果是     100         。

      #defineT10

      #define MD3*T

      printf(“%d”,30/MD);

4.下列程序的输出结果是   k=5,s=15           。

     intk,s;

         for(k=s=0;k<10&&s<=10;s+=k)

 k++;

         printf(“k=%d,s=%d”,k,s);

5.下列程序的输出结果是     5,9         。

      #include

intf(intm)

{   staticintk=2;

    k++;

    returnk+m;

}

voidmain()

{   ints;

    s=f

(2);

    printf(“%d,%dn”,s,f(s));

}

 6. 对于以下递归函数f,条用f(3)的返回值是    -2          。

 f(intn)

 { 

    return((n<=0)?

n:

f(n-1)+f(n-2));

 }

 7.下列程序的输出结果是      -10        。

            intc[]={10,0,-10};

 int*k=c+2;

 printf(“%d”,*k--);

 8.下列程序的输出结果是   2 1           。

 intk=1,j=2,*p=&k,*q=p;

 p=&j;

 printf(“%d%d”,*p,*q);

 9.下列程序的输出结果是     un,g         。

 #include

 char*f(char*str)

 {  returnstr=”fun”;

 }

voidmain()

{   char*str=”one”;

     printf(“%s,%cn”,f(str)+1,*f(str)+1);

}

 10.下列程序的输出结果是    1,3          。

 #include

 voidp(int*x,inty)

 {  ++*x;    y--; }

 voidmain()

 {  intx=0,y=3;

     p(&x,y);

     printf(“%d,%d”x,y);

 }

 11.下列程序的输出结果是   1001           。

 #include

 {  intj,k,a[2][2];

     for(k=1;k<3;k++)

        for(j=1;j<3;j++)

 a[k-1][j-1]=(k/j)*(j/k);

     for(k=0;k<2;k++)

        for(j=0;j<2;j++)

 printf(”%d”,a[k][j]);

 }

12.下面程序的功能是:

计算1到10之间奇数之和及偶数之和,请填空。

  #include

  main()

  {inta,b,c,i;

  a=c=0;

  for(i=0;i<10;i+=2)

  {a+=i;

    b=i+1   ;

  c+=b;

  }

  printf("偶数之和=%d\n",a);

  printf("奇数之和=%d\n",c-11);

  }

 13.下面程序的功能是:

输出100以内能被3整除且个位数为6的所有整数,请填空。

  #include

  main()

  {inti,j;

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

  {j=i*10+6;

  if(   i%3!

=0  )continue;

  printf("%d",j);

  }

  }

 

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

当前位置:首页 > 高等教育 > 军事

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

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