桂林理工大学2020年硕士研究生入学考试试题
考试科目代码:877
考试科目名称:C语言程序设计 A卷
               (总分150分,三小时答完)                     
考生注意:1.请将答题写在答卷纸上,写在试卷上视为无效。
2.考试需带  ╳╳╳  用具
一、选择题(每小题2分,共30分)
1.以下(               ) 是错误的整型常量。
A. -0xabcdef        B018          C0x29         D011
2.为了判断两个字符串s1和s2是否相等,应当使用(         
A.  if(s1==s2)                        B.  if(s1=s2)             
C.  if(strcmp (s1,s2) == 1)            D.  if(strcmp(s1,s2) == 0)
3.以下scanf函数调用语句中错误的是 (        )。
      struct student
      {  char name[20];
        int age;
      }pup[5], *p;
      p=pup;
A.  scanf("%d", p->age);        B.  scanf("%s", pup[1].name);
C.  scanf("%d", &(p->age));      D.  scanf("%s", p->name);
4. 以下程序运行结果(              )。
      #include <stdio.h>
int main( )
{
            int sum=0,item=0;
            while (item<5)
            {
                item++;
                sum+=item;
                if(sum>=8)
                    break;
              }
              printf("%d\n",sum) ;
              return 0;
}
A. 15            B. 10          C. 6              D. 9
5.下面程序段的运行结果是(             )。
#include <stdio.h>
int main( )
{
  int i=0, a[]={3,4,5,4,3};
  do{
      a[i]++;
  }while(a[++i]<5);
  for(i=0;i<5;i++)
      printf("%d ",a[i]);
  return 0;
}
A.  4 5 6 5 4      B. 3 4 5 4 3    C. 4 5 5 5 4      D. 4 5 5 4 3
6.以下程序的输出结果是(            )。
#include <stdio.h>
int main( )
{  int a[9]={1,2,3,4,5,4,3,2,1};
int *p,*q,i,x;
p=&a[0];  q=&a[8];
for (i=0;i<=4;i++)
if(*(p+i) == *(q-i) )
              x=*(p+i)*2;
printf("%d\n",x);
return 0;
}
A.      B.  18        C. 10          D.  不确定
7.以下程序段的运行结果是(             )。
#include <stdio.h>
int main( )
{ int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}, *p[4],i;
    for(i=0;i<4;i++)
      p[i]=&a[i*3];
    printf("%d\n",p[3][2]); 
    return 0;
}
A.11      B.  12      C. 8      D.  9
8.要把一个函数计算结果的两个整型数据返回给主调函数,在下面的方法中不正确的是(      )。
A  用两个return语句              B 形参用数组,该数组包含两个整型数据
C  形参用两个整型的指针          D 用两个整型全局变量
9.若已定义int a[ ]={0,1,2,3,4,5,6,7,8,9},*p=a, i=3; 则对a数组元素不正确的引用是  (   
            )
  A.a[p-a]        B.p[i]            C.*(&a[i])          D.a[p+a]
10.下列程序段的输出结果是(          )
#include <stdio.h>
#include <string.h>
int main( )
{
char s[20]="abcd",*p2="ABCD",str[50]="xyz";
    strcpy(str+2, strcat(s+2,p2+1));
    printf("%s\n", str); 
    return 0;
}
A. xyabcAB        B. abcABz      C. ABabcz      D. xycdBCD
11.若有定义:int a=7; double x=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是(       )。
A.   2.500000      B. 2.750000        C. 3.500000      D. 0.000000
12.对于语句  int *p[10]; ,以下说法正确的是(                    )。
A. p是一个指针,指向一个数组,数组的元素是整型数据
B. p是一个指针,指向一个数组,数组中有10个整型数据
C. p是一个数组,它的每一个元素是指向整型数据的指针
D. p是一个数组,它的每一个元素是指向10个整型数据的指针
13.下面程序的输出结果是(          )。
#include <stdio.h>
#include <string.h>
int main (  )
{
    int i;
    char *s= "abcd";
    for ( i=0 ; i<strlen(s); i++)
      printf ("%s\n" ,s+i );
  return 0;
}
A.abcd          B. abcd              C. d            D. d
abc              bcd                  cd              dc
ab                cd                    bcd            dcb
a                d                    abcd            dcba
14.若a,b为整型变量,语句:printf("%d",(a=3)&&(b=-3)); 的输出结果是(        )
  A.  3         B. -3       C.  1          D. 0
15.下列函数欲实现对两个整型变量的值进行交换,下列说法正确的是(              )。
void  swap(int x, int y)
{  int t;
  t=x;  x=y;  y=t;
}
主函数中定义变量int a, b;  调用函数的语句为 swap(&a, &b)
A. 程序有错,调用语句应为swap(a, b);    B.程序有错,函数swap缺少return语句
C. 程序有错,应将swap函数中的形参x,y,局部变量t定义为整型指针类型,执行语句不变
D. 以上说法都不正确
二、填空题(每空2分,共30分)
1. C语言中存储字符串 "abcdef" 至少需要(                       )个字节。
2. 用if语句实现与以下赋值语句 k=a>b?(b>c?1:0):0;一样的功能, 对应的if语句为
                                                )。
3. 在C程序中有自定义函数f,函数首部为:void f(int *x),主函数中有数组定义为 int a[5],以数组a为实参,则调用该函数的语句为(                           )。
4. 使用malloc函数,分配能够存储4个double数据的内存空间,并将起始地址赋值给指针变量p,变量p已经定义:double *p; 相应的赋值语句是(                       )。
5. 以下程序的输出结果是(                   )。
#include <stdio.h>
#define PT 5.5
#define S(x) PT*x*x
int main( )
{    int a=1,b=2;
        printf("%.1f\n" ,S(a+b));
        return 0;
}
  6. 如果指针fpc语言编写递归函数所指向的文件未结束,函数feof(fp)的返回值为(                       )。
  7. 若有以下定义:
struct link{
    int data;
      struct link *next;
}*head, *p;
并已建立如下图所示的链表结构,第1个结点为10所在结点,第2个结点为30所在结点。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。