第三套笔试试题

一、选择题

1软件调试的目的是______

A、发现错误    B、改正错误   C、改善软件的性能   D、挖掘软件的潜能

2、在关系数据库中,用来表示实体之间联系的是______

A、树结构   B、网结构   C、线性表   D、二维表

3、下列叙述中正确的是______

A、线性表是线性结构        B、栈与队列是非线性结构

C、线性链表是非线性结构    D、二叉树是线性结构

4、程序流程图(PFD)中的箭头代表的是______

A、数据流   B、控制流   C、调用关系   D、组成关系

5、下面概念中,不属于面向对象方法的是______

A、对象   B、继承   C、类   D、过程调用

6、在一棵二叉树上第5层的结点数最多是______

A、8   B、16   C、32   D、15

7、E-R图转换到关系模式时,实体与联系都可以表示成______

A、属性  B、关系   C、键   D、域

8、在结构化方法中,软件功能分解属于下列软件开发中的______阶段。

A、详细设计  B、需求分析   C、总体设计   D、编程调试

9、数据处理的最小单位是______

A、数据   B、数据元素   C、数据项   D、数据结构

10、在下列选项中,哪个不是一个算法一般应该具有的基本特征______

A确定性   B可行性   C无穷性   D拥有足够的情报

11有以下定义

#include  <stdio.h>

char a[10],*b=a;

不能给a数组输入字符串的语句是______

Agets(a)   Bgets(a[0]);   Cgets(&a[0]);   Dgets(b);

12有以下程序:

main()

{ int x=0,y=5,z=3;

  while(z-->0&&++x<5) y=y-1;

  printf("%d,%d,%d\n",x,y,z);

}

程序执行后的输出结果是______

A、3,2,0   B、3,2,-1    C、4,3,-1   D、5,-2,-5

13、以下符合C语言语法的实型常量是______

A、1.2E0.5   B、3.14159E  C、.5E-3  D、E15

14、有以下程序

int a=2;

int f(int *a)

{return (*a)++;}

main()

{  int s=0;

   {int a=5;

    s+=f(&a);

   }

    s+=f(&a);

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

}

执行后输出结果是______

A、10   B、9   C、7   D、8

15、若以下选项中的变量已正确定义,则正确的赋值语句是______

Ax1=26.8%3;   B1+2=x2;   Cx3=0x12;   Dx4=1+2=3;

16设有以下定义

int a=0;    double b=1.25;    char c='A';

#define  d  2

则下面语句中错误的是______

Aa++;    Bb++;   Cc++;   Dd++;

17设有定义:float a=2,b=4,h=3;,以下C语言表达式中与代数式1/2(a+b)h计算结果不相符的是______

A(a+b)*h/2  B(1/2)*(a+b)*h  C(a+b)*h*1/2  Dh/2*(a+b)

18有以下程序段

int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;

b=p[5];

b中的值是______

A5   B6   C8  D9

19有以下程序:

struct STU{

   char name[10];

   int num;

};

void f1(struct STU c)

{struct STU b={"LiSiGuo",2042};

 c=b;

}

void f2(struct STU *c)

{struct STU b={"SunDan",2044};

        *c=b;

}

main()

{struct STU a={"YangSan",2041},b={"WangYin",2043};

 f1(a);f2(&b);

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

}

执行后输出结果是______

A、2041 2044  B、2041 2043  C、2042 2044  D、2042 2043

20、以下叙述中正确的是______

A、C语言的源程序不必通过编译就可以直接运行

B、C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C、C语言程序经编译形成的二进制代码可以直接运行

D、C语言中的函数不可以单独进行编译

21、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是______

A、if((a>b)&&(b>c))k=1;

   else  k=0;

B、if((a>b)||(b>c))k=1;

   else k=0;

C、if(a<=b) k=0;

   else if(b<=c) k=1;

Dif(a>b) k=1;

   else if(b>c) k=1;

   else k=0;

22有以下程序

main()

{  char k; int i;

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

   { scanf("%c",&k);

     switch(k)

     { case '0': printf("another\n");

       case '1': printf("number\n");

     }

   }

}

程序运行时,从键盘输入:01,程序执行后的输出结果是______

Aanother

   number

 

Banother

   number

   another

Canother

   number

   number

D、number

   number

23有以下程序

void swap1(int c[])

{ int t;

  t=c[0]; c[0]=c[1]; c[1]=t;

}

void swap2(int c0,int c1)

{ int t;

  t=c0; c0=c1; c1=t;

}

main()

{ int a[2]={3,5},b[2]={3,5};

  swap1(a); swap2(b[0],b[1]);

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

}

其输出结果是______

A、5 3 5 3  B、5 3 3 5  C、3 5 3 5  D、3 5 5 3

24、设有以下语句

typedef   struct  S

{  int g; char  h;} T;

则下面叙述中正确的是______

A、可用S定义结构体变量   B、可以用T定义结构体变量

C、S是struct类型的变量   D、T是struct S类型的变量

25、有以下程序

main()

{ int i,n=0;

  for( i=2;i<5;i++)

  {do

     { if(i%3) continue;

       n++;

     }while(!i);

     n++;

  }

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

}

程序执行后输出结果是______

An=5  Bn=2   Cn=3  Dn=4

26若程序中定义了以下函数,

double myadd(double a,double b)

{return(a+b);}

并将其放在调用语句之后,则在调用之前应该对函数进行说明,以下选项中错误的说明是______

Adouble myadd(double a, b);             Bdouble myadd(double,double);

Cdouble myadd(double b, double a);   Ddouble myadd(double x, double y);

27有以下程序

struct STU

{ char   name[10];

  int    num;

  int    Score;

};

main()

{ struct STU   s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580},

      {"WangYin",20043,680},{"SunDan",20044,550},

      {"Penghua",20045,537}}, *p[5],*t;

  int i,j;

  for(i=0;i<5;i++) p[i]=&s[i];

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

   for(j=i+1;j<5;j++)

      if(p[i]->Score>p[j]->Score)

      {t=p[i];p[i]=p[j];p[j]=t;}

  printf("%d %d\n",s[1].Score,p[1]->Score);

}

执行后输出结果是______

A、550  550   B、680  680   C、580  550  D、580  680

28、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是______

Achar s[10]="abcdefg";               Bchar t[]="abcdefg",*s=t;

Cchar s[10];s="abcdefg";             Dchar s[10];strcpy(s,"abcdefg");

29有以下程序

void f(int v, int w)

{ int t;

  t=v; v=w; w=t;

}

main()

{ int x=1,y=3,z=2;

  if(x>y)            f(x,y);

  else if(y>z)       f(y,z); 

  else               f(x,z);

  printf("%d,%d,%d\n",x,y,z);

}

执行后输出结果______

A、1,2,3   B、3,1,2   C、1,3,2   D、2,3,1

30、以下4个选项,不能看作一条语句的是______

A{;}    Ba=0,b=0,c=0;   Cif(a>0);  Dif(b==0)m=1;n=2;

31有以下程序

main()

{  int  x=102,y=012;

   printf("%2d,%2d\n",x,y);

}

执行后输出结果是______

A10,01       B02,12   C102,10   D02,10

32有以下程序:

#define  f(x)    x*x

main()

{  int  i;

   i=f(4+4)/f(2+2);

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

}

执行后输出的结果是______

A28   B22  C16  D4

33有以下程序:

void sum(int *a)

{  a[0]=a[1];}

main()

{ int  aa[10]={1,2,3,4,5,6,7,8,9,10},i;

  for(i=2;i>=0;i--) sum(&aa[i]);

  printf("%d\n",aa[0]);

}

执行后的输出结果是______

A、4    B、3   C、2   D、1

34有以下程序

int f(int b[][4])

{  int i,j,s=0;

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

   { i=j;

     if(i>2) i=3-j;

     s+=b[i][j];

    }

    return s;

}

main()

{ int a[4][4]={{1,2,3,4},{0,2,4,6},{3,6,9,12},{3,2,1,0}};

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

}

执行后输出的结果是______

A、12       B、11    C、18        D、16

35、一个算法应该具有"确定性"5个特性,下面对另外4个特性的描述中错误的是______

A、有零个或多个输入   B、有零个或多个输出

C、有穷性             D、可行性

36有以下程序:

main()

{ unsigned char a,b;

   a=4|3;

   b=4&3;

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

}

执行后输出结果是______

A7  0   B0  7   C1  1  D43  0

37有以下程序

char fun(char x,char y)

{ if(x<y) return x;

  return y;

}

main()

{ int a='9',b='8',c='7';

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

}_

程序的执行结果是______

A、函数调用出错    B、8    C、9   D、7

38、设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是______

Ap=1;    B*q=2;   Cq=p;   D*p=5;

39有以下程序

main()

{  char  a[]="abcdefg",b[10]="abcdefg";

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

}

执行后输出结果是______

A7  7   B8  8  C8  10   D10  10

40设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是______

Ascanf("%d",pa);   Bscanf("%d",a);  

Cscanf("%d",&pa);  Dscanf("%d",*pa);

41有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件末尾向前移2*sizeof(int)字节):

#include <stdio.h>

main()

{ FILE  *fp; int i, a[4]={1,2,3,4},b;

fp=fopen("data.dat","wb");

for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);

fclose(fp);

fp=fopen("data.dat","rb");

fseek(fp,-2L*sizeof(int),SEEK_END);

fread(&b,sizeof(int),1,fp);    /*从文件中读取sizeof(int)字节的数据到变量b*/

fclose(fp);

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

}

执行后输出的结果______

A、2  B、1  C、4  D、3

42、下面程序的功能是输出以下形式的金字塔图案:

              *

             ***

       *****

           *******

main()

{ int i,j;

  for(i=1;i<=4;i++)

  { for(j=1;j<=4-i;j++)printf(" ");

    for(j=1;j<=______;j++)printf("*");

    printf("\n");

  }

}

在下划线处应填入的是______

Ai   B2*i-1  C2*i+1  Di+2

43有以下程序:

void sort(int  a[],int n)

{  int i,j,t;

   for(i=0;i<n-1;i+=2)

      for(j=i+2;j<n;j+=2)

      if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}

}

main()

{  int aa[10]={1,2,3,4,5,6,7,8,9,10},i;

   sort(aa,10);

   for(i=0;i<10;i++) printf("%d,",aa[i]);

   printf("\n");

}

其输出结果是______

A1,2,3,4,5,6,7,8,9,10,        B10,9,8,7,6,5,4,3,2,1,

C9,2,7,4,5,6,3,8,1,10,        D1,10,3,8,5,6,7,4,9,2,

44有以下程序:

main()

{  int i,s=0;

   for(i=1;i<10;i+=2) s+=i+1;

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

}

程序执行后的输出结果是______

A、自然数1~9的累加和        B、自然数1~10的累加和

C、自然数1~9中奇数之和      D、自然数1~10中偶数之和

45有以下程序:

#include <string.h>

main(int argc,char *argv[])

{ int i,len=0;

  for(i=1;i<argc;i+=2) len+=strlen(argv[i]);

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

}

经编译连接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行ex abcd efg h3 k44

执行后输出结果是______

A14     B12   C8   D6

46有以下程序

void f(int a[],int i, int j)

{  int t;

   if(i<j)

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

     f(a,i+1,j-1);

    }

}

main()

{ int i,aa[5]={1,2,3,4,5};

  f(aa,0,4);

for(i=0;i<5;i++)printf("%d,",aa[i]);printf("\n");

}

执行后输出结果是______

A5,4,3,2,1,       B5,2,3,4,1,   C1,2,3,4,5,   D1,5,4,3,2,

47有以下程序:

#include   <stdio.h>

main()

{  FILE *fp;int i,k=0,n=0;

   fp=fopen("d1.dat","w");

   for(i=1;i<4;i++) fprintf(fp,"%d",i);

   fclose(fp);

   fp=fopen("d1.dat","r");

   fscanf(fp,"%d%d",&k,&n);printf("%d %d\n",k,n);

   fclose(fp);

}

执行后输出结果是______

A1 2   B123 0  C1 23   D0 0

48有以下程序

#include <stdlib.h>

struct NODE{

  int num;

  struct NODE *next;

};

main()

{ struct NODE *p,*q,*r;

  int sum=0;

  p=(struct NODE *)malloc(sizeof(struct NODE));

  q=(struct NODE *)malloc(sizeof(struct NODE));

  r=(struct NODE *)malloc(sizeof(struct NODE));

  p->num=1;q->num=2;r->num=3;

  p->next=q;q->next=r;r->next=NULL;

  sum+=q->next->num;sum+=p->num;

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

}

执行后输出结果是______

A3       B4     C5     D6

49有以下程序

main()

{ char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"};

  printf("%d\n",strlen(p[4]));

}

执行后的结果是______

A、2      B、3     C、4   D、5

50、以下4组用户定义标识符中,全部合法的一组是______

                           

_main       If         txt        int

enclude     -max       REAL       k_2

sin         turbo      3COM       _001

A    B    C   D

二、填空题

1与结构化需求分析方法相对应的是______方法。

2软件维护活动包括以下几类:改正性维护、适应性维护______维护和预防性维护。

3、面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个______。

4一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属______的联系。

5顺序存储方法是把逻辑上相邻的结点存储在物理位______的存储单元中。

6有以下语句段

int n1=10,n2=20;

printf("______",n1,n2);

要求按以下格式输出n1n2的值,每个输出行从第一列开始,请填空。

n1=10

n2=20

7以下sum函数的功能是计算下列级数之和。

S=1+x+x^2/2!+x^3/3!++x^n/n!

请给函数中的各变量正确赋初值。

double sum(double x,int n)

{ int i;

  double a,b,s;

  ______

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

  {a=a*x;b=b*i;s=s+a/b;}

  return s;

}

8下面rotate函数的功能是:将nn列的矩阵A转置为A',例如:

    |1  2  3  4 | 

    |5  6  7  8 |   

A=|9  10 11 12| 

    |13 14 15 16|  

     |1  5  9  13|

     |2  6  10 14|

A'=|3  7  11 15|

     |4  8  12 16|

请填空。

#define N 4

void rotate(int a[][])

{ int i,j,t;

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

  for(j=0;______;j++)

  {t=a[i][j];

   ______;

   a[j][i]=t;

   }

}

   

9函数fun的功能是计算x^n

double fun(double x,int n)

{int i; double y=1;

 for(i=1;i<=n;i++) y=y*x;

 return y;

}

主函数中已经正确定义mab变量并赋值,并调用fun函数计算:m=a^4+b^4-(a+b)^3。实现这一计算的函数调用语句为______

10有以下程序

#include <stdio.h>

main()

{ char  ch1,ch2; int n1,n2;

  ch1=getchar(); ch2=getchar();

  n1=ch1-'0';n2=n1*10+(ch2-'0');

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

}

程序运行时输入:12,执行后输出结果是______。

11有以下程序

main()

{ int n=0,m=1,x=2;

  if(!n) x-=1;

  if(m)  x-=2;

  if(x) x-=3;

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

}

执行后输出的结果是______

12有以下程序

main()

{ int t=1,i=5;

  for(;i>=0;i--)t*=i;

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

}

执行后输出结果是______

13已知字符AASCII码值为65,以下语句的输出结果是______

char  ch='B';

printf("%c %d\n",ch,ch);

14以下程序的运行结果是:______

#include    <string.h>

char *ss(char *s)

{  return  s+strlen(s)/2;}

main()

{ char  *p,*str="abcdefgh";

  p=ss(str);  printf("%s\n",p);

}

15下面程序的运行结果是:______

int f(int a[],int n)

{ if(n>1) return a[0]+f(&a[1],n-1);

  else return a[0];

}

main()

{ int  aa[3]={1,2,3},s;

  s=f(&aa[0],3); printf("%d\n",s);

}

16以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。请填空。

void sstrcpy(char *s,char *t)

{ while(*s++=______);}

main()

{ char str1[100],str2[]="abcdefgh";

  sstrcpy(str1,str2);

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

}

17以下程序运行结果是______

#include  <string.h>

typedef struct student{

  char name[10];

  long sno;

  float score;

}STU;

main()

{  STU

a={"Zhangsan",2001,95},b={"Shangxian",2002,90},

c={"Anhua",2003,95},d,*p=&d;

d=a;

if(strcmp(a.name,b.name)>0) d=b;

if(strcmp(c.name,d.name)>0) d=c;

printf("%ld %s\n",d.sno,p->name);

}

18以下程序给指针p分配三个double型动态内存单元,请填空。

#include <stdlib.h>

main()

{ double *p;

  p=(double*)malloc(______);

  p[0]=1.5; p[1]=2.5;p[2]=3.5;

  printf("%f%f%f\n",p[0],p[1],p[2]);

}

19有以下程序

void f(int y,int *x)

{  y=y+*x; *x=*x+y;}

main()

{  int x=2,y=4;

   f(y,&x);

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

}

执行后输出的结果______

第三套笔试试题答案

题号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

答案

B

D

A

B

D

B

B

C

C

C

B

B

C

C

题号

15

16

17

18

19

20

21

22

23

24

25

26

27

28

答案

C

D

B

D

A

B

A

C

B

B

D

A

C

C

题号

29

30

31

32

33

34

35

36

37

38

39

40

41

42

答案

C

D

C

A

A

D

B

A

D

D

C

A

D

B

题号

43

44

45

46

47

48

49

50

 

 

 

 

 

 

答案

C

D

D

A

B

B

A

A

 

 

 

 

 

 

二、填空题答案 1结构化设计  2、完善性 3、实体  4、一对多 5、相邻  6、n1=%d\nn2=%d

7a=1.0;b=1.0;s=1.0;  8j<=i i>=j  9a[i][j]=a[j][i]  10fun(a,4)+fun(b,4)-fun((a+b),3) 1112  12-4   130  14B 66 15efgh  166

 17*t++   182002 Shangxian  193*sizeof(double)   208 4