`
ozh06ozh
  • 浏览: 16561 次
社区版块
存档分类
最新评论

C语言期末考试题

阅读更多

C语言期末考试题
2010年06月17日
  
    一、单选题    (共65题,每题1分,说明:选择一项正确的答案)      已经批改
  1、有下列程序:
  struct tt
  { int x;struct tt *y;}*p;
  struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};
  main( )
  { int i;
  p=a;
  for(i=1;ix);p=p->y;}
  }
  程序的运行结果是( )
  A、20,30,
  B、30,17
  C、15,30,
  D、20,15,
  参考答案:D
  考生答案:D
  具体得分:1
  --------------------------------------------------------------------------------
  2、
  若有下列说明和定义。
  union dt
  { int a; char b; double c;}data;
  下列叙述中错误的是( )。
  A、data 的每个成员起始地址都相同
  B、变量data 所占内存字节数与成员c 所占字节数相等
  C、程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000
  D、data 可以作为函数的实参
  参考答案:D
  考生答案:B
  具体得分:0
  --------------------------------------------------------------------------------
  3、有下列结构体说明和变量定义,指针p、q、r 分别有序指向此链表中的三个连续结点。
  struct node
  { int data;
  struct node *next;
  }*p,*q,*r;
  现要将q 所指结点从链表中删除,同时要保持链表的连续,下列不能完成指定操作的
  语句是( )。
  A、p->next=q->next;
  B、p-next=p->next->next;
  C、p->next=r;
  D、p=q->enxt;
  参考答案:D
  考生答案:A
  具体得分:0
  --------------------------------------------------------------------------------
  4、有以下程序
  main()
  {
  FILE *fp; int a[10]={1,2,3},i,n;
  fp=fopen("d1.dat","w");
  for(i=0;i
  void fun(char **p)
  { ++p; printf("%s\n", *p);}
  main( )
  { char *a[ ]=("Morning","Afternoon","Evening","Night");
  fun(a);
  }
  程序的运行结果是(   )。
  A、Afternoon
  B、fternoon
  C、Morning
  D、orning
  参考答案:A
  考生答案:A
  具体得分:1
  --------------------------------------------------------------------------------
  6、有下列程序,其中函数f()的功能是将多个字符串按字典顺序排序(   )。
  #include
  void f(char *p[ ],int n)
  { char *t; int i,j;
  for(i=0;i0){t=p; p=p[j]; p[j]=t;}
  }
  main( )
  { char *p[5]={"abc","aabdfg","abbd","dcdbe","cd"};
  f(p,5);
  printf("%d\n",strlen(p[1]));
  }
  程序运行后的输出结果是(    )
  A、2
  B、3
  C、6
  D、4
  参考答案:D
  考生答案:B
  具体得分:0
  --------------------------------------------------------------------------------
  7、若有语句:char *line[5];下列叙述中正确的是( )。
  A、定义line 是一个数组,每个数组元素是一个基类型为char 的指针变量
  B、定义line 是一个指针变量,该变量可以指向一个长度为5 的字符型数组
  C、定义line 是一个指针数组,语句中的*号称为间址运算符
  D、定义line 是一个指向字符型函数的指针
  参考答案:C
  考生答案:B
  具体得分:0
  --------------------------------------------------------------------------------
  8、下列程序的输出结果是(  )。
  int b=2;
  int func(int *a) 
  { b+=*a; return(b);}
  main()
  { int a=2, res=2;
  res += func(&a);
  printf("%d \n",res);
  }
  A、4
  B、6
  C、8
  D、10
  参考答案:B
  考生答案:A
  具体得分:0
  --------------------------------------------------------------------------------
  9、下列程序执行后的输出结果是(  )。
  void func(int *a,int b[])
  { b[0]=*a+6; }
  main()
  { int a,b[5];
  a=0; b[0]=3;
  func(&a,b) ; printf("%d \n",b[0]);
  }
  A、6
  B、7
  C、8
  D、9
  参考答案:A
  考生答案:A
  具体得分:1
  --------------------------------------------------------------------------------
  10、以下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);
  }
  A、*t
  B、*(++t)
  C、*t++
  D、*++t
  参考答案:C
  考生答案:B
  具体得分:0
  --------------------------------------------------------------------------------
  11、下列程序的运行结果是(  )。
  void fun(int *a, int *b) 
  { int *k;
  k=a; a=b; b=k;
  }
  main()
  { int a=3, b=6, *x=&a, *y=&b;
  fun(x,y);
  printf("%d %d", a,b) ;
  }
  A、6 3
  B、3 6
  C、编译出错
  D、0 0
  参考答案:B
  考生答案:A
  具体得分:0
  --------------------------------------------------------------------------------
  12、下列程序段的输出结果是(  )。
  void fun(int *x, int *y)
  { printf("%d %d", *x, *y); *x=3; *y=4;}
  main()
  { int x=1,y=2;
  fun(&y,&x);
  printf("%d %d",x, y);
  }
  A、2 14 3
  B、1 21 2
  C、1 23 4
  D、2 11 2
  参考答案:A
  考生答案:A
  具体得分:1
  --------------------------------------------------------------------------------
  13、若有定义语句:int a[2][3],*p[3];,则下列语句中正确的是( )。
  A、p=a;
  B、p[0]=a
  C、p[0]=&a[1][2];
  D、p[1]=&a;
  参考答案:C
  考生答案:B
  具体得分:0
  --------------------------------------------------------------------------------
  14、设有定义:char p[ ]={'1', '2', '3'}, *q=p;,下列不能计算出一个char 型数据所占字节数
  的表达式是( )。
  A、sizeof(p)
  B、sizeof(char)
  C、sizeof(*q)
  D、sizeof(p[0])
  参考答案:A
  考生答案:B
  具体得分:0
  --------------------------------------------------------------------------------
  15、有下列程序:
  main( )
  { char ch[ ]="uvwxyz",*pc;
  pc=ch;printf("%c\n",*(pc+5));
  }
  程序运行后的输出结果是( )。
  A、z
  B、0
  C、元素ch[5]的地址
  D、字符y 的地址
  参考答案:A
  考生答案:D
  具体得分:0
  --------------------------------------------------------------------------------
  16、main( )
  { char s[ ]={"aeiou"} ,*ps;
  ps=s; printf("%c\n",*ps+4);
  }
  程序运行后的输出结果是( )。
  A、a
  B、e
  C、u
  D、元素s[4]的地址
  参考答案:B
  考生答案:D
  具体得分:0
  --------------------------------------------------------------------------------
  17、下列程序的输出结果是(  )。
  point(char *p){ p+=3; }
  main( )
  { char b[4]={'a','b','c','d'},*p=b;
  point(p); printf("%c\n",*p);
  }
  A、a
  B、b
  C、c
  D、d
  参考答案:A
  考生答案:B
  具体得分:0
  --------------------------------------------------------------------------------
  18、下列叙述中正确的是( )。
  A、预处理命令行必须位于源程序的起始位置
  B、在语言中,预处理命令行都以"#"开头
  C、每个程序必须在开头包含预处理命令行:#include
  D、语言的预处理不能实现宏定义和条件编译的功能
  参考答案:B
  考生答案:B
  具体得分:1
  --------------------------------------------------------------------------------
  19、有下列程序:
  #define f(x)=(x*x)
  main( )
  { int i1,i2;
  i1=f(8)/f(4); i2=f(4+4)/f(2+2);
  prinft("%d,%d\n",i1,i2);
  }
  程序运行后的输出结果是(   )。
  A、64,28
  B、4,4
  C、4,3
  D、64,64
  参考答案:C
  考生答案:D
  具体得分:0
  --------------------------------------------------------------------------------
  20、程序中若有下列说明和定义语句:
  char fun(char *);
  main( )
  { char *s="one",a[5]={0},(*f1)( )=fun,ch;
  …
  }下列选项中对fun()函数的正确调用语句是(   )。
  A、(*fl);
  B、*fl(*s);
  C、fun(&a);
  D、ch=*fl(s);
  参考答案:A
  考生答案:D
  具体得分:0
  --------------------------------------------------------------------------------
  21、设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是(  )。
  A、scanf(“%d”,pa);
  B、scanf(“%d”,a);
  C、scanf(“%d”,&pa);
  D、scanf(“%d”,*pa);
  参考答案:A
  考生答案:D
  具体得分:0
  --------------------------------------------------------------------------------
  22、 有如下程序段 
  int *p,a=10,b=1;
  p=&a; a=*p+b;
  执行该程序段后a的值是(  )。
  A、10
  B、11
  C、1
  D、0
  参考答案:B
  考生答案:B
  具体得分:1
  --------------------------------------------------------------------------------
  23、main()带参数以下两个空填(   )。
  main(int [   ],char [   ])
  A、argv,argc
  B、argv ,*argc
  C、argv,*argc[]
  D、argv,argc[]
  参考答案:C
  考生答案:D
  具体得分:0
  --------------------------------------------------------------------------------
  24、有下列程序:
  main(int argc,char *argv[ ])
  { int i=1,n=0;
  while (i不能把字符串:Hello!赋给数组b的语句是(   )。
  A、char b[10]={'H','e','l','l','o','!'};
  B、char b[10];b="Hello!";
  C、char b[10];strcpy(b,"Hello!");
  D、char b[10]="Hello!"
  参考答案:B
  考生答案:B
  具体得分:1
  --------------------------------------------------------------------------------
  26、 以下程序的输出结果是(   )。
  main()
  { int i, x[3][3]={1,2,3,4,5,6,7,8,9};
  for(i=0;i内存的存储类说明是(   )。
  A、auto和static
  B、auto和register
  C、register和static
  D、extern和register
  参考答案:B
  考生答案:未填写
  具体得分:0
  --------------------------------------------------------------------------------
  39、当调用函数时,实参是一个数组名,则向函数传送的是(   )。
  A、数组的长度
  B、数组的首地址
  C、数组每一个元素的地址
  D、数组每个元素中的值
  参考答案:B
  考生答案:未填写
  具体得分:0
  --------------------------------------------------------------------------------
  40、调用函数以后,如没有返回结果,则函数返回值类型是(  )。
  A、int
  B、void
  C、double
  D、char
  参考答案:B
  考生答案:未填写
  具体得分:0
  --------------------------------------------------------------------------------
  41、以下对函数的描述不正确的是(  )。
  A、子函数可以调用子函数
  B、主函数可以调用子函数
  C、子函数可以调用主函数
  D、子函数在主函数之前,主函数调用子函数可以不声明
  参考答案:C
  考生答案:未填写
  具体得分:0
  --------------------------------------------------------------------------------
  42、以下程序的功能是(   )。:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
  main()
  { int n,k;
  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics