首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 考试试题 >

09年4月全国计算机等级二级C语言笔试练习(9)

2008-11-18 
C语言笔试练习题

    特意为大家整理的09年4月全国计算机等级二级C语言考前练习,希望对大家的备考有好的帮助! 

    1.分析以下程序,执行后的输出结果是()
  int f1(int x,int y)
  {return x >y? x:y;
  }
  int f2(int x,int y)
  {return x >y? y:x;
  }
  main()
  {int a=4,b=3,c=5,d,e,f;
  d=f1(a,b);d=f1(d,c);
  e=f2(a,b);e=f2(e,c);
  f=a+b+c-d-e;printf( "%d,%d,%d",d,f,e);
  }
  A)3,4,5
  B)5,3,4
  C)5,4,3
  D)3,5,4

  2.分析下面函数
  swap(int *p1,*p2)
  { int *p;
  *p=*p1;*p1=*p2;*p2=*p;
  }
  则该程序功能为()
  A)交换*p1和*p2的值
  B)正确,考试大提示:但无法改变*p1和*p2的值
  C)交换*p1和*p2的地址
  D)可能造成系统故障,因为使用了空指针

  3.有以下程序
  main()
  {
  int n[3],i,j;
  for(i=0;i <3;i++)n[i]=0;
  for(i=0;i <2;i++)
  for(j=0;j <2;j++)n[j]=n[i]+1;
  printf( "%d\n",n[1]);
  }
  程序运行后的输出结果是()
  A)2
  B)1
  C)0
  D)3

  4.有如下程序段:
  int a=14,b=15,x;
  char c=′A′;
  x=(a &&b)&&(c<′B′);
  执行该程序段后,x的值为()
  A)1
  B)0
  C)false
  D)true

  5.有以下程序
  # include
  struct NODE
  {int num;struct NODE*next;}
  main()
  {struct NODE*p,*q,*r;
  p=(struct NODE*)malloc(sizeof(struct NODE));
  q=(struct NODE*)malloc(sizeof(struct NODE));
  r=(struct NODE*)malloc(sizeof(struct NODE));
  p- >num=10;q->num=20;r->num=30;
  p- >next=q;q->next=r;
  printf( "%d\n",p->num+q->next->num);
  }
  程序运行后的输出结果是()
  A)10
  B)20
  C)30
  D)40

  6.设有如下定义:
  structsk
  { inta;
  float b;
  } data;
  int *p;
  若要使p指向data中的a域,正确的赋值语句是()
  A)p= &a;
  B)p=data.a;
  C)p= &data.a;
  D)*p=data.a;

  7.若有如下说明:
  unions
  {char a[9];
  intb;float c;
  } t;
  则下列叙述正确的是()
  A)共用体变量t不能作为函数的参数
  B)通过引用共用体变量名t可以得到成员的值
  C)共用体变量t的地址和它的各成员的地址不同
  D)共用体变量t所占的内存长度等于它的各成员所占的内存长度之和

  8.若定义了以下函数:
  void sub(......)
  {......
  *t=(int*)malloc(10*sizeof(int));
  ......}
  其中t是该函数的形参,要求通过t把动态分配存储单元的地址传回主调函数,则形参t的正确定义应该是()
  A)int *t
  B)int **t
  C)long **t
  D)long *t

  9.以下对枚举类型名的定义中正确的是()
  A)enum a={one,two,three};
  B)enum a {one=9,two=-1,three=200};
  C)enum a={ "one","two","four"};
  D)enum a { "nine","two","three"};

  10.C语言规定如果调用fputc函数输出成功,则返回值是()
  A)1
  B)输出的字符
  C)0
  D)true

  答案:1.C 2.D 3.D 4.A 5.D 6.C 7.A 8.B 9.B 10.B
        11.有以下结构体说明和变量的定义,且如下图所示指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是()
  struct node
  {char data;
  struct noe*next;
  }a,b,*p= &a,*q=&b;
  A)a.next=q;
  B)p.next= &b;
  C)p- >next=&b;
  D)(*p).next=q;

  12.若有如下定义:
  int(*p)(),*q();
  则下列说法正确的是()
  A)p是一个函数名,q是一个指针变量
  B)p是一个指向整型变量的指针变量,q是一个指向一维数组的指针变量
  C)p和q是等价的,都是指针变量
  D)p是指向函数的指针变量,函数的返回值是整型数据;q是带回指针值的函数

  13.有以下程序
  # include <stdio.h>
  main()
  { float x,y;
  scanf( "%f",&x);
  if(x <0.0)y=0.0;
  else if((x <5.0)&&(x!=2.0))
  y=1.0/(x+2.0);
  else if(x <10.0)y=1.0/x;
  else y=10.0
  printf( "%f\n",y);
  }
  若运行时从键盘上输入2.0 <CR>(<CR>表示回车),则上面程序的输出结果是()
  A)0.000000
  B)0.250000
  C)0.500000
  D)1.000000

  14.以下程序段中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是()
  A)main ()
  {int*p;
  fun (p);
  …
  }
  intfun (int*p)
  { int s;p= &s;}
  B)main
  {int*p;
  fun ( &p);
  …
  }
  intfun (int**p)
  {ints;*p= &s;}
  C)#include <stdlib.h>
  main ()
  {int*p;
  fun ( &p);
  …
  }
  intfun (int**p)
  {*p=(int*)malloc (2); }
  D)#include <stdlib.h>
  main ()
  { int*p;
  fun (p);
  …
  }
  int fun (int*p)
  {p=(int*)malloc(sizeof (int)); }

  15.执行下列程序时输入:23 <空格>456<空格>789<回车>,输出结果是()
  main()
  { char s[100]
  int c,i;
  scanf( "%c",&c);
  scanf( "%d",&i);
  scanf( "%s",s);
  printf( "%c,%d,%s\n",c,i,s);
  }
  A)1,456,789
  B)1,23,456
  C)1,23,456,789
  D)23,456,789

  16.有以下程序
  #include <stdio.h>
  #include <string.h>
  main()
  { char b1[8]= "abcdefg",b2[8],*pb=b1+3;
  while(--pb >b1)strcpy(b2,pb);
  printf( "%d\n",strlen(b2));
  }
  程序运行后的输出结果是()
  A)8
  B)3
  C)1
  D)6

  17.设有如下定义和声明:
  structs
  { inta;
  structs*next};
  structsx[4]={1, &x[1],3,&x[2],5,&x[3],7,’\0’},*t;
  t= &x[0];
  则下列表达式值为2的是()
  A)++t- >a
  B)(*t).a++
  C)t- >a++
  D)t++- >a

  18.若有如下程序:
  main()
  {int a=6; char ch=c;
  printf( "%d\n",(a&2)&&(ch<′m′));}
  则程序运行后的输出结果是()
  A)0
  B)1
  C)2
  D)3

  19.下列说法不正确的是()
  A)下列结构体定义时,占据了5个字节的空间
  struct s {int num;
  int age;
  char sex;
  }
  B)结构体的成员名可以与程序中的变量名相同
  C)对结构体中的成员可以单独使用,它的作用相当于普通变量
  D)结构体的成员可以是一个结构体变量

  20.若要打开A盘中user子目录下名为aaa.txt的文本文件进行读、写操作,下面符合此要求的函数调用是()
  A)fopen( "A:\user\aaa.txt","r")
  B)fopen( "A:\\user\\aaa.txt","r+")
  C)fopen( "A:\user\aaa.txt","rb")
  D)fopen( "A:\\user\\aaa.txt","w")

  答案:1.B 2.D 3.C 4.C 5.B 6.D 7.A 8.A 9.A 10.B

3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/

热点排行