新祥旭考研官网欢迎您!


武科大考研辅导班:2019年武汉科技大学855C语言程序设计考研真题

新祥旭考研官方网 / 2020-03-23

 武科大考研辅导班:2019年武汉科技大学855C语言程序设计考研真题

一、选择题(共15小题,每小题2分,共30分)

1. 以下均是合法变量名的是(    )。

A)#name  total    B)node value_max   C)_var long    D)stu-code  a+b

2. 以下选项中不属于C语言类型的是(    )。

A)short int     B)unsigned long int      C)char       D)bool

3. 若有声明语句:int x; char y[20]; double z; 则正确的输入语句是(    )。

A)scanf(“%d%c%le\n”,&x,&y,&z);   B)scanf(“%2d%s%lf”,&x,&y,&z);

C)scanf(“%d%s%lf”,&x,y,&z);      D)scanf(“%x%s%3.2f”,&x,y,&z);

4. 若a、b和t都为int变量,则下面不能交换变量a和b值的是(    )。

A)t=a; a=b; b=t;     B)a=t; t=b; b=a;

C)t=b; b=a; a=t;   D)a=a+b; b=a-b; a=a-b;

5. 若有定义:int a=1,b=2; float x=3,w; 则合法的switch语句是(    )。

A)switch(a) B)switch(b)

{  case 1:  w=a/b;   break;            { case 1:    z=a%b;  

case 2: w=a%b;  break;  }             case 2:    z=a/b; break; }

C)switch (x) D)switch(a+b);

{ case 2:  w=a%b;break;                 { case 3:  

     case 1:  w=a/b; break; }                case 2:  w=a%b;  break; }

6. 对下述程序段的描述正确的是(    )。

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

       if(a>b)  a=b; b=a;  else a++; b++;

       printf("a=%d,b=%d",a,b);

A)若输入4,5则输出a=5,b=6      B)若输入5,4则输出a=4,b=5

C)若输入5,4则输出a=5,b=5      D)有语法错误,不能通过编译

7. 以下正确的描述是(    )。

A)从多层循环嵌套中退出时,只能使用break语句。

B)在循环体内使用continue和break语句,作用相同。

C)只能在循环体内和switch体内使用break语句。

D)continue语句的作用是结束整个循环的执行。

8. 如果有定义:int x=0,s=0; 则下面程序段的执行结果是(    )。

  while(!x != 0)  s+=x++;

      printf(“%d”,s);

A)1 B)0     C)无限循环       D)控制表达式非法,无法编译

9. 下面各语句中,能正确进行字符串操作的语句是(    )。

A)char a[10]={'A','B','C','D','\0'};    B)char a[10];  a="ABCDE";

C)char *p;  *p="ABCDE";                 D)char *s; scanf(“%s”, s);

10. 以下能对数组value进行正确初始化的语句是(    )。

A)int value[2][ ]={{1,1},{2,2}}; B)int value[ ][3]={{1,,3},{4,5,6}};

C)int value[2][3]={1,2,3,4,5,6};   D)int value[ ][3]={{1},{4,6,}};

11. 函数fun和实参数组的声明形式为:void fun(char ch,float x[]); float a[5];

以下对函数的调用语句中,正确的是(    )。

A)fun("a",a[]);   B)t=fun('D',a);  C)fun('65',2.8);  D)fun(32,a[5]);

12. 设有定义int a[3][3];和函数调用语句sort(a,3); 则正确的函数声明是(    )。

A)void sort(int a,n);             B)void sort(int a[][],int n);

C)void sort(int a[][3],int n);    D)void sort(int a[][3],n);

13. 有函数定义:int func(int *p),x和y是int型变量,则(    )是正确的调用。 

A)y=func(x);    B)func(x);    C)func()=x;     D)y=func(&x);

14. 已知书籍结构定义如下,则对结构变量bk的正确赋值是(    )。

struct BOOK{  struct {  int year,month,day; }publish; } bk;

A)bk.year=1998;    bk.month=11;      bk.day=11;

B)publish.year=1998;  publish.month=11; publish.day=11;

C)year=1998;   month=11;    day=11;

D)bk.publish.year=1998;  bk.publish.month=11;  bk.publish.day=11;

15. 对于以下定义,能打印出字母h的语句是(    )。

   struct person{ char title[20];  int code; };

   struct person book[5]={"Physics",17,"Math",18,"English",20,"History",18};

A)printf("%c",book[0].title[1]);    B)printf("%c",book[1].title[4]);

C)printf("%c",book[2].title[7]);    D)printf("%c",book[3].title[6]);

二、判断题(共10小题,每小题2分,共20分)

1. C语言规定,在一个源程序中,main函数的位置必须在最开始。

2. 表达式s1= =s2可以用来判断字符串s1与字符串s2是否相等。

3. C语言中一个变量只能定义一次。

4. C语言本身没有输入输出语句。

5. 函数调用时,函数名必须与所调用的函数名字完全一致。

6. 对结构变量s中成员age的引用可以采用表达式s.age。

7. 在C语言中,形参是虚拟的,不占存储单元。

8. 全局变量和静态变量的初值是在编译时指定的。

9. 语句fp=fopen("a:\aa.dat","ab");中变量fp的正确定义为:FILE *fp;

10. 若有定义:int a[4][5]; 则表达式a+3表示a数组第3行的首地址。

三、读程序写出程序运行结果(共4小题,每小题5分,共20分)

1.

void main( )   //输入:abcAxyz回车

{ char ch=0;

    while((ch=getchar())!='\n')

{ if(ch>='a'&&ch<='z'){ ch-=30;  if(ch>'Z') ch-=26;  }

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

}

}

2.

void main( )

{  char *name[4] ={"Tom","Mike","John","Wang"}, *p=name[0];

   int i;

   for(i=0;i<4;p=name[++i]) printf("%c",*p);

}

3.

int fun(int arr[],int m,int n)

{ int i,j,s=0;

for(i=0;i<m;i=i+m-1)

for(j=0;j<n;j++)  s+=arr[i*n+j];

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

for(i=1;i<m-1;i++)  s+=arr[i*n+j];

return s;

}

void main(void )

{ int t,a[3][4]={5,3,6,8,-2,-4,-7,9,1,0,7,2};

t=fun(a[0],3,4);

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

}

4.

void move(int *arr,int n,int m)

{   int *p,array_end=*(arr+n-1);;

if(m<=0) return ;

    for(p=arr+n-1;p>arr;p--)  *p=*(p-1);

    *arr=array_end;  m--;   move(arr,n,m);

}

void main()

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

    move(number,10,8);

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

}

四、程序填空题(共15个空,每空2分,共30分)

1.以下程序为输出所有的水仙花数(3位数中各位上数字的立方和等于三位数自身)。

     void main(void)

{  int i,s,n,t ;

   for ( i=100 ; i<1000 ; i++ )

    {  s =     ①    ;   n = i ;

       while (    ②     ){ t=n%10; s=s-   ③   ;       ➃   ;   }

       if (    ➄    )  printf(″%d″, i );

    }

}

2. 下面排序算法的思想是:第一趟比较将最小的元素放在r[0]中,最大的元素放在r[n-1]中,第二趟比较将次小的放在r[1]中,将次大的放在r[n-2]中,…,依次下去,直到待排序列为递增序。

void  sort(int r[],int n)  

{   int i=0,j,t,min,max;

while(    ①    )   

{ min=max=i;

    for (j=i+1;    ②    ;++j)

    {  if(    ③    ) min=j; else if(r[j]>r[max])  max=j; }

    if(    ➃    ) { t=r[min]; r[min]=r[i]; r[i]=t; }

    if(max!=n-i-1)

    { if(    ➄    ) { t=r[min];r[min]=r[n-i-1]; r[n-i-1]=t; }

 else { t=r[max]; r[max]=r[n-i-1]; r[n-i-1]=t; }

}

    i++;

}

}//sort

3. 下面函数用来删除结点类型为intnode的链表中结点数据域值为x的一个结点。

struct intnode  {   int  data;   struct intnode  *next; };

int  deletenode(     ①    , int  x)

{  struct  intnode  *p=*headp, *last;

   while(   ②     )  {    last=p;       ③     ;  }

if(    ➃     )

{   if(p==*headp)    *headp=p->next;   else       ➄     ;

       free(p)  ;      return(1);

}

else  return(0);

}

五、程序设计题(共4小题,前2小题各10分,后2小题各15分,共50分)

1. 设计程序:从键盘输入一个三位整数,然后将该三位整数的各位数字重新排列,输出重新排列后的最大的三位整数。

2. 在数组a中含有n个整数,函数fun的功能是找出数组a中没有出现的最小正整数。例如,数组a为{-8,5,1,3},则未出现的最小正整数是2;又如数组a为{1,3,2},则未出现的最小正整数是4。

请采用尽量高效的算法完成函数fun,其返回值就是未出现的最小正整数。

int fun(int a[], int n)

3.设计程序完成:在主函数中首先输入平面上N(由键盘输入)个点的坐标(x,y),接着调用Distance函数计算各点与原点的距离,然后调用Sort函数对所有点按与原点的距离从大到小排序,最后调用函数Output输出排序后各点的坐标及距原点的距离。平面上的点用结构体Point实现。各函数的声明如下:

      void  Distance(struct Point p[], int n); // 计算n个点与原点的距离

      void  Sort(struct Point p[], int n);    //排序

      void  Output(struct Point p[], int n);  //输出

4. 二叉排序树采用二叉链表存储,结点包含左孩子指针left,右孩子指针right和整数data,其定义为:struct Node{  int data;  struct node *left, *right; };

请设计如下非递归算法SortTree按照从大到小输出非空二叉排序树所有结点的数据。

        void SortTree(struct Node  *root)

添加微信咨询保研问题
北清考研定制 985考研定制 211考研定制 学硕考研定制 专硕考研定制 北京考研私塾
x
点击咨询 课程咨询 学员服务 应聘教师 投诉建议 预约报名