预赛试题 复赛试题 决赛试题
第五届全国ITAT教育工程就业技能大赛预赛试题
C语言程序设计

一、单选题(共计60题)

  1. (1)在下述程序中,if (i>j) 语句共执行的次数是( )。C

        main()
        { int i=0,j=14,k=2,s=0;
          for(;;)
           { i+= k ;
            if(i>j)
             { printf(“%d”,s);
              break ;
            }
           s+=i ;
          }
        }
     A、6
     B、9
     C、7
     D、12

 

  1. (2)若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式应是( )。C

     A、"ab+"
     B、"rb+"
     C、"wb+"
     D、"ab"

 

  1. (3)下列程序的输出结果是( )。C

        struct student
        { int a, b, c; };
        main()
                { struct student stu[2]={{2,3,4},{5,6,7}}; int t;
           t=stu[0].a+stu[1].b%stu[0].c;
           printf("%d \n",t); }
     A、0
     B、1
     C、4
     D、5

 

  1. (4)对于浮点型变量f,能实现对f中的值在小数点后第四位进行四舍五入的表达式是( )。C

     A、f=(f*1000+0.5)/1000.0
     B、f=(f*1000+0.5)/1000
     C、f=(int)(f*1000+0.5)/1000.0
     D、f=(f/1000+0.5)*1000

  1. (5)现已定义整型变量int i=1; 执行循环语句“while(i++<5);”后,i的值为( )。C

     A、1
     B、5
     C、6
     D、以上三个答案均不正确

 

  1. (6)下列程序的输出结果是( )。C

        struct LH
        { int n;struct LH *m;}p[4];
        main()
        { int i;
        for(i=0;i<2;i++)
         {p[i].n=i;p[i].m=&p[i+1];}
        p[i].m=p;
        printf(“%d,%d\n”,(p[1].m)->n,p[2].m->n);
        }
     A、0,1
     B、0,2
     C、0,0
     D、程序出错

 

  1. (7)下列程序的运行结果是( )。B

        #include "stdio.h"
        int f(int a)
        { switch (a)
           { case 0:return 0;
           case 1:case 2:return 1;
        }
         return(f(a-2)+f(a-3));
        }
        main()
        { int b;
        b=f(9);
        printf(“%d\n”,b);
        }
     A、10
     B、7
     C、8
     D、9

 

  1. (8)以下程序的输出结果是( )。A

        int f(int b[],int m,int n)
        {int i,s=1;
         for(i=m;i<n;i++)
         {b[i]=b[i-1]+b[i+1];
          s+=b[i]; }
          return s; }
        main()
        {int x,a[]={1,2,3,4,5,6,7,8,9,10};
         x=f(a,3,5);
         printf("%d\n",x); }
     A、23
     B、26
     C、42
     D、35

 

  1. (9)以下程序运行后,输出结果是( )。C

        main()
                { char ch[3][4]={"123","456","78"},*p[3];int i;
           for(i=0;i<3;i++)  p[i]=ch[i];
           for(i=0;i<3;i++)  printf("%s",p[i]);
        }
     A、123456780
     B、123 456 780
     C、12345678
     D、147

 

  1. (10)桌上有白球和黑球共5个,a、b、c、d、e分别表示这5个球的颜色,取值为0、1分别代表白球、黑球。则以下能表示a是黑球,其余至少有两个白球的表达式是( )。C

     A、!a&&(b+c+d+e)==2
     B、a&&(b+c+d+e)>2
     C、a&&(b+c+d+e)<=2
     D、!a&&(b+c+d+e)==3

 

  1. (11)下列程序的输出结果是( )。B

           #include "stdio.h"
           int f(int n)
           {  static int k, s;
              n--;
              for(k=n; k>0; k--)
                  s += k; 
              return s;
           }
           void main( )
           {  int k;
              k=f(2);
              printf("(%d, %d)", k, f(k));
           }
     A、(3, 3)
     B、(1, 1)
     C、(3, 6)
     D、(6, 12)

 

  1. (12)若有定义:int a,b;char x,y;并有以下输入数据: 12  13 AaBb(回车)

则能给a赋整数12,给b赋整数13,给x赋字符a,给y赋字符b的正确程序段是( )。D
             A、scanf(“%d”,&a);
           scanf(“%d”,&b);
           x=getchar();y=getchar();
     B、scanf(“%d%d  %c  %c”, &a, &b,&x,&y);
     C、scanf(“%d %d  %c  %c”, &a,&b,&x,&x,&y,&y);
     D、scanf(“%d %d %c%c%c%c”,&a,&b,&x,&x,&y,&y);

 

  1. (13)以下对结构体成员的运算结果是( )。D

        #include <stdio.h>
        main(){
        struct st
             {int x;
              int y;
             }cnum[2]={1,3,2,7};
             printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);
        }
     A、0
     B、1
     C、3
     D、6

 

  1. (14)函数f定义如下,执行语句“m=f(5);”后,m的值应为( )。B

            int f(int k)                        
           {  if(k==0||k==1) return 1;           
              else return f(k-1)+f(k-2);
            }
     A、3
     B、8
     C、5
     D、13

 

  1. (15)若有以下定义:char s[10]={’a’,’b’,’c’,’0’, ’2’,’\x32’ ,’\0’,’\123’};执行语句printf(“%d”,strlen(s));的结果是( )。B

     A、3
     B、6
     C、8
     D、9

  1. (16)若i为整型变量,则以下循环执行的次数是( )。C

        for(i=0;i<=5;i++) 
        printf("%d",i++);
     A、5次
     B、2次
     C、3次
     D、6次

 

  1. (17)执行以下程序段后的输出结果是( )。C

           int x = 3;
           int m, n;
           n = (++x) + (++x);
           m = (x--) + (x--);
           printf("%d  %d\n", m, n);
     A、10 6
     B、9 9
     C、10 10
     D、10 8

 

  1. (18)设有定义:int a[2][2]={1,2,3,4},(*p)[2];,则在语句p=a;p++;后,**p的值为( )。B

     A、2
     B、3
     C、4
     D、以上都不对

 

  1. (19)以下关于循环的程序的输出结果是( )。C

        #include "stdio.h"
        void main()
        {
           int k=4,n=0;
           for(;n<k;)
           {
                 n++;
                 if(n%3!=0) continue;
                k--;
            }
            printf("%d %d",k,n);
        }
     A、1 1
     B、2 2
     C、3 3
     D、4 4

 

  1. (20)下列关于字符串操作的输出结果是( )。D

        #include "stdio.h"
        #include "string.h"
        void main()
        {
            char p1[20]="abcd",p2[20]="ABCD";
            char str[50]="xyz";
            strcpy(str+2,strcat(p1+2,p2+1));
           printf("%s\n",str);
        }
     A、xyabcAB
     B、abcABz
     C、Ababcz
     D、xycdBCD

 

  1. (21)下列选项中属于正确的switch语句的是( )。C

     A、swicth(’a’)                              
    { case  ‘a’:printf(“A\n”);                  
      case  ‘b’:printf(“B\n”);  }                
     B、switch(1.0)
    { case 1.0 :printf(“A\n”);
      case 2.0 :printf(“B\n”);}
     C、switch((int)(x+2.5))                     
    { case 1 :printf(“A\n”);                   
      case 1+2 :printf(“B\n”);}
     D、switch(“a”);
     { case “a” :printf(“A\n”);
       case “b” :printf(“B\n”);}

 

  1. (22)以下程序的运行结果为( )。A

        #include "stdio.h"
        void main(){
        int y=2,a=1;
        while(y--!=-1){
        do{
        a*=y;a++;
        }while(y--);}
        printf("%d,%d\n",a,y);}
     A、1,-2
     B、2,1
     C、1,0
     D、2,-1

 

  1. (23)C语言的输入与输出操作是由( )完成的。C

     A、输入语句
     B、输出语句
     C、输入与输出函数
     D、输入与输出语句

 

  1. (24)若有以下程序段

        … …
        int a[ ]={4,0,2,3,1},i,j,t;
        for(i=1;i<5;i++)
        {t=a[i];j=i-1;
         while(j>=0&&t>a[j])
         {a[j+1]=a[j];j--;}
          a[j+1]=t;}
        … …
则该程序段的功能是( )。B
     A、对数组a进行插入排序(升序)
     B、对数组a进行插入排序(降序)
     C、对数组a进行选择排序(升序)
     D、对数组a进行选择排序(降序)

 

  1. (25)执行下列程序中的输出语句后,x的值是( )。A

        main()
        {int x ;
         printf(“%d\n”,(x=4*5,x*2,x+20));}
     A、20
     B、40
     C、60
     D、80

 

  1. (26)下列程序段的输出结果是( )。B

        int c[ ]={1, 7, 12};
        int *k=c+1;
        printf("%d",*k++);
     A、2
     B、7
     C、8
     D、12

 

  1. (27)下列程序的运行结果是( )。D

        main()
        {int a=4,y;
         y=fn(a,++a);
         printf(“%d”,y);}
         int fn(x,c)
         {int b;
          if(x<c)b=1;
          else if(x==c)b=0;
          else b=-1 ;
          return(b);
         }
     A、4
     B、-1
     C、1
     D、0

 

  1. (28)有如下程序:int x=-20; printf("%d\n",~x);,其输出结果将是( )。A

     A、19
     B、20
     C、21
     D、-1

 

  1. (29)对于类型相同的指针变量,不能进行的运算是( )。A

     A、+
     B、-
     C、=
     D、==

 

  1. (30)已知:

        union u_type
        { int i;
         char ch;
         float a;
        }temp;
        现在windows环境下,执行"temp.i=266;printf("%d",temp.ch)"的结果是( )。C
     A、266
     B、256
     C、10
     D、1

 

  1. (31)以下程序的运行结果是( )。B

        #include "stdio.h"
        main()
        {
          int a[]={1,2,3,4,5,6,7,8,9,10,11,12};
          int *p=a+5,*q=NULL;
          q=p+5;
          printf("%d %d\n",*p,*q);
        }
     A、运行后报错
     B、6 11
     C、6 12
     D、5 5

 

  1. (32)以下程序的输出结果是(  )。C

         main()
         {int a=0,b=1,c=0,d=20;
         if (a) d=d-10;
         else if (!b)
         if (!c) d=15;
         else d=25;
         printf("d=%d\n",d);
         }
     A、d=10
     B、d=15
     C、d=20
     D、d=25

 

  1. (33)下面四组字符串中,都可以用作C语言程序标识符的是( )。A

     A、  print
       _maf
       mx_2d
       aMb6
     B、  I\am
       scanf
       mx_
       MB
     C、  sign
       3mf
       a.f
       A&B
     D、  if
       ty_pe
       x1#
       5XY

 

  1. (34)下列程序的输出结果是( )。A

         int f()
         { static int i=0;
          int s=1;
           s+=i;i++;
           return s;}
         main()
         { int i , a=0;
          for(i=0;i<6;i++)a+=f();
          printf(“%d\n”,a);}
     A、21
     B、24
     C、25
     D、15

 

  1. (35)设有定义:#define STR "12345";,则以下叙述正确的是( )。C

     A、宏名STR代替的是数值常量12345
     B、宏定义以分号结束,编译时会产生错误信息
     C、宏名STR代替的是字符串"12345"
     D、宏名STR代替的是字符串常量"12345"

 

  1. (36)以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为( )。D

    #include "stdio.h"
    #include "string.h"
    func (char str [ ])
      { int num =0;
         while (*(str +num )!=’\0’)num ++;
         return(num );
      }
    main()
    { char str [10],*p=str ;
       gets(p); printf("%d\n",func(p));
     }
     A、8
     B、7
     C、6
     D、5

 

  1. (37)下列程序的输出结果是( )。C

        struct st
        { int x;int *y;}*p;
         int dt[4]={10,20,30,40};
         struct  st  aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
        main()
        { p=aa;
         printf(“%d ”,++(*p->y));
         printf(“%d ”,(++p)->x);
         printf(“%d ”,++p->x);}
     A、20 20 10
     B、21 60 50
     C、11 60 61
     D、31 70 60

 

  1. (38)以下函数的功能是( )。C

        char *fun(char *str1,char*str2)
        {
         while((*str1)&&(*str2++=*str1++));
          return str2;
        }
     A、求字符串的长度
     B、比较两个字符串的大小
     C、将字符串str1复制到字符串str2中
     D、将字符串str1接续到字符串str2中

  1. (39)以下程序的输出结果是( )。B

        #include <stdio.h>
        void func(char **m)
        {
          ++*m;
          printf("%s\n",*m);
        }
        void main()
        {
           static char *a[]={"first","second","three"};
           char **n;
           n=a;
           func(n);
        }
     A、first
     B、irst
     C、second
     D、其他

 

  1. (40)以下语句的输出结果为( )。 B

        for(k=0;k<5;++k)
        { if(k==3) continue;
        printf("%d",k);
        }
     A、012
     B、0124
     C、01234
     D、没有输出结果

 

  1. (41)下面的程序对输入的每一个数字出现的次数进行计数,下划线处应填入的正确语句为( )。A

        #include "stdio.h"
        main()
        {int i,ch, n[10];
         for(i=0;i<10;++i) n[i]=0;
          while((ch=getchar())!=‘\n’)
           if(ch>=‘0’ && ch<=‘9’)
          ________;
           for(i=0;i<10;++i)
          printf("数字%d出现的次数是:%d\n",i,n[i]);
        }
     A、n[ch-‘0’]++
     B、n[ch]++
     C、i++
     D、n[i]++

 

  1. (42)以下程序的输出结果是( )。D

        #include "stdio.h"
        int *fun()
        {
         int a[4],k;
         for(k=0;k<4;k++)a[k]=k;
                return(a);
        }
        void main()
        {
         int *p,j;
         p=NULL;
         p=fun();
         for(j=0;j<4;j++){printf("%d\n",*p);p++;}
        }
     A、0000
     B、0123
     C、1111
     D、输出不确定值

 

  1. (43)若有如下结构体定义,下列scanf用法不正确的是( )。D

        struct  pupil
        {       
           char name[20];
            int age;
            int sex;
        }pup[5],*p;
        p=pup;
     A、scanf("%s",pup[0].name);
     B、scanf("%d",&pup[0].age);
     C、scanf("%d",&(p->sex));
     D、scanf("%d",p->age);

 

  1. (44)与 y=(x>0?1:x<0?-1:0);的功能相同的if语句是( )。A

      A、if (x>0)y=1;
     else if(x<0)y=-1;
     else y=0;
     B、if(x)
     if(x>0)y=1;
     else if(x<0)y=-1;
     C、y=-1
     if(x)
     if(x>0)y=1;
     else if(x==0)y=0;
     else y=-1;
     D、y=0;
     if(x>=0)
     if(x>0)y=1;
     else y=-1;

 

  1. (45)下列描述中不正确的是( )。D

     A、字符型数组中可能存放字符串
     B、可以对字符型数组进行整体输入、输出
     C、可以对整型数组进行整体输入、输出
     D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值

 

  1. (46)下面程序运行后,关于a、b、c的值应输出为( )。A
       

#include "stdio.h"
        main()
        {
           int a=1, b=2, c=2,t;
           while (a<b<c){t=a;a=b;b=t;c--;}
           printf("%d,%d,%d",a,b,c);
        }
     A、1,2,0
     B、2,1,0
     C、1,2,1
     D、2,1,1

 

  1. (47)在16位 PC机环境下,下列程序的输出结果是( )。C

        struct tt
        { int n1;char n2;float n3;
         union uu{int u1[3];char u2[3];}su;
        };
        main()
        {printf(“%d\n”,sizeof(struct tt));}
     A、11
     B、12
     C、13
     D、9

 

  1. (48)若有如下程序:

        void s(char *m,int n)
        {
           *m=*m+3;n=n+3;
        printf("%c,%c,",*m,n);
        }
        void main()
        {
            char p=’b’,q=’B’;
        s(&q,p);
        printf("%c,%c\n",p,q);
        }
        则程序运行后的输出结果是( )。A
     A、E,e,b,E
     B、e,E,b,F
     C、E,e,e,E
     D、e,E,b,E

 

  1. (49)以下程序的输出结果是( )。A

        #include <stdio.h>
        int main()
        {
           char str[100]="ABCDEFG", *p=str;
            int i;
            for(i = 0; *p != ’\0’; p++,i++);
            printf("%d\n",i);
            return 0;
        }
     A、7
     B、8
     C、99
     D、100

 

  1. (50)某C编译系统规定,int型数组占2个字节,则定义以下语句后,sizeof(aa)=( )。D

        struct {long num;
        char name[20];
        union {float x;
        short y;
        }xy;
        }aa;
     A、32
     B、26
     C、30
     D、28

 

  1. (51)语句:printf(“%d”,!0);的输出结果是( )。A

     A、1
     B、0
     C、有语法错误 ,不能执行
     D、!0

 

  1. (52)函数f定义如下,执行语句“sum=f(4)+f(2);”后,sum的值应为( )。C

       int f(int m)                     
      {  static int i=0; int s=0;           
         for(;i<=m;i++) s+=i; return s;
       }
     A、13
     B、16
     C、10
     D、8

 

  1. (53)fwrite函数的一般调用格式是( )。D

     A、fwrite(buffer,count,size,fp);
     B、fwrite(fp,count,size,buffer);
     C、fwrite(fp,size,count,buffer);
     D、fwrite(buffer,size,count,fp);

 

  1. (54)有以下程序段

        main()
        { int i=1,sum=0,n;
          scanf("%d",&n);
        do
        {  i+=2; 
        sum+=i ;
        }while(i!=n);
        printf("%d",sum);
        }
若使程序的输出值为15,则应该从键盘输入的n的值是( )。D
     A、1
     B、3
     C、5
     D、7

 

  1. (55)下列选项可作为C语言赋值语句的是( )。A

     A、a=1;b=2;
     B、a=b=6
     C、i--
     D、y=int(x);

 

  1. (56)已知有以下的说明,

        int a[]={8,1,2,5,0,4,7,6,3,9}; 那么a[*(a+a[3])]的值为( )。B
     A、5
     B、0
     C、4
     D、7

 

  1. (57)已知 enum name{zhao=1,qian,sun,li}man;执行下述程序段后的输出结果是( )。A

        man=0;
        switch(man)
        { case 0: printf("People\n");break;
          case 1: printf("Man\n");break;
          case 2: printf("Woman\n");break;
          default: printf("Error\n");break;
        }
     A、People
     B、Man
     C、Woman
     D、Error

 

  1. (58)以下能正确计算1×2×3×……×10的程序段是( )。C

     A、do  {i = 1;s = 1;             
           s = s * i;                        
           i + +;                            
           } while (i <= 10); 
     B、do  {i = 1;s = 0;
           s = s * i;
           i + +;
           } while (i <= 10);
     C、i = 1;s = 1;                    
     do  {s = s * i;                     
          i + +;                               
          } while (i <= 10);
     D、i = 1;s = 0;
     do  {s = s * i;
          i + +;
          } while (i <= 10);

 

  1. (59)以下程序的运行结果是( )。A

        void main()
        {
         int a=4; char ch=’a’;
         printf( "%d\n",(a&2)&&(ch>’A’));
        }
     A、0
     B、1
     C、2
     D、3

 

  1. (60)若指针p已正确定义,要使p指向两个连续的整型动态存储单元,下列语句正确的是( )。B

     A、p=2*(int*)malloc(sizeof(int));
     B、p=(int*)malloc(2*sizeof(int));
     C、p=(int*)malloc(2*2);
     D、p=(int*)malloc(2,sizeof(int));

 

二、多选题(共计20题)

 

  1. (1)以下叙述中正确的有( )。BC

     A、在程序的一行上可以出现多个有效的预处理命令行
     B、宏定义不是C语句,不必在行末加分号
     C、宏替换不占用运行时间,只占用编译时间
     D、在以下定义中C R是称为“宏名”的标识符 #define   C   R   045

 

  1. (2)要求函数的功能是在一维数组a中查找x值。若找到,则返回所在的下标值;否则,返回0。设数据放在数组元素的a[1]到a[n]中。在以下给出的函数中,不能正确执行此功能的有( )。ABD

     A、funa(int *a, int n, int x)
    {
      *a = x;
      while(a[n] != x) n--;
      return n;
    }
     B、funb(int *a, int n, int x)
    { 
      int k;
      for(k = 1; k <= n; k++)
      if(a[k] == x) return k;
       return 0;
    }
     C、func(int a[], int n, int x)
    {
      int *k;
      a[0] = x; k = a+n;
      while(*k != x) k--;
      return k - n;
    }
     D、fund(int a[], int n, int x)
    {
      int k = 0;
      do
      {k++;
      }while((k < n+1)&&(a[k]!=x));
      if((k < n+1)&&a[k] == x)) return k;
      else return 0;
    }

 

  1. (3)下面说法正确的有( )。ABCD

     A、共用体变量的地址和它各成员的地址都是同一地址
     B、共用体内的成员可以是结构变量,反之亦然
     C、在任一时刻,共用体变量的各成员只有一个有效
     D、函数不可以返回一个共用体变量

 

  1. (4)如有两个字符数组a、b,则以下输入语句正确的有( )。BCD

     A、gets(a,b);
     B、scanf("%s%s",a,b);
     C、for(i=0;(a[i]=getchar())!=’\n’;i++);
     for(i=0;(b[i]=getchar())!=’\n’;i++);
     D、gets(a);gets(b);

 

  1. (5)当把下列四个表达式用作if语句的控制表达式时,含义相同的选项有( )。(假设k>0)ACD

     A、k%2
     B、k%2==0
     C、(k%2)!=0
     D、k%2==1

 

  1. (6)设有以下语句

        struct st{
            int n;
           struct st *next;
           };
static struct st a[3]={5,&a[1],6,&a[2],7,},*p=&a[0];
若要使printf("%d\n",____)输出值为6,则下划线处表达式可以为( )。BCD
     A、p->n++
     B、++p->n
     C、(++p)->n
     D、p->next->n

 

  1. (7)下列说法不正确的有( )。BCD

     A、带参数的宏定义中的参数是没有类型的
     B、宏展开将占用程序的运行时间
     C、宏定义命令是C语言中的一种特殊语句
     D、使用#include命令包含的头文件必须以".h"为后缀

 

  1. (8)下列有关函数调用的说法正确的有( )。BCD

     A、若用值传递方式,则形式参数不予分配内存
     B、实际参数和形式参数不可以同名
     C、主调函数和被调用函数可以不在同一个文件中
     D、函数间传送数据可以使用外部全局变量

 

  1. (9)若变量已正确定义,以下能正确计算1*2*3*4*5的程序段有( )。CD

     A、
     i=1;s=1;                         
     do                                   
     { s=s*i;i++;}                            
     while(i<5);
     B、
     i=0;s=0;
     do
      { i++; s=s*i;}
     while(i<5);
     C、
     i=1;s=1;                        
     do                                   
     { s=s*i;i++;}                            
     while(i<6);
     D、
     i=0;s=1;
     do
     { i++; s=s*i;}
     while(i<5);

 

  1. (10)设有定义语句: int x[6]={2,4,6,8,5,7},*p=x,i;

要求依次输出x数组中6个元素中的值,下列选项中能完成此操作的语句有( )。ABC
     A、for(i=0;i<6;i++)printf(“%2d”,*(p++));
     B、for(i=0;i<6;i++)printf(“%2d”,*(p+i));
     C、for(i=0;i<6;i++)printf(“%2d”,*p++);
     D、for(i=0;i<6;i++)printf(“%2d”,(*p)++);

 

  1. (11)整型变量x=1,y=3,经下列( )计算后,x的值等于6。ABD

     A、x=(x=1+2,x*2)
     B、x=y>2?6:5
     C、x=9-(y--)-(y--)
     D、x=y*4.8/2-1

 

  1. (12)下列关于指针定义的描述正确的有( )。ABCD

     A、指针变量是一种变量,该变量是用来存放某个变量的地址值的
     B、指针变量的类型与它所指向的变量类型一致
     C、指针变量的命名规则与标识符相同
     D、在定义指针时,”*”号表示指针变量的指向

 

  1. (13)以下对结构体变量stu1中成员age的引用正确的有( )。ACD

     struct  student
     {int age;
     int num;
     }stu1,*p;
     p=&stu1;
     A、stu1.age
     B、student.age
     C、p->age
     D、(*p).age

 

  1. (14)设有结构体类型:

            typedef struct str{
            int no;          
           char name[20];
        }STR;
        另有变量定义:STR a[20], x;
        如希望实现向与文件指针变量fp关联的文件输出一个结构信息,则以下语句正确的有( )。ABC
     A、fwrite(a, sizeof(STR), 1, fp);
     B、fwrite(&a[2], sizeof(STR), 1, fp);
     C、fwrite(&x, sizeof(STR), 1, fp);
     D、fwrite(x, sizeof(STR), 1, fp);

 

  1. (15)t为int类型,进入下面循环之前,t的值为0:

        for(;t=1;)
        { ……….}
        则下列叙述不正确的有( )。AC
     A、循环控制表达式的值为0
     B、循环控制表达式的值为1
     C、循环控制表达式不合法
     D、循环有可能是个无限循环

 

  1. (16)下列叙述不正确的有( )。AB

     A、函数可以嵌套定义,但不能嵌套调用
     B、函数可以嵌套调用,也可以嵌套定义
     C、函数不可以嵌套定义,但可以递归调用
     D、函数可以嵌套调用,但不能嵌套定义

 

  1. (17)关于数组与字符串,下列选项中属于不合法的定义有( )。ABC

     A、char s="string";
     B、int a[5]={0,1,2,3,4,5};
     C、char s[5]="string";
     D、char a[]={0,1,2,3,4,5};

 

  1. (18)若有定义: char *str[]={"one","two","three"},**p=str;

则下列选项中可以表示出字符’t’的表达有( )。AD
     A、*str[2]
     B、*str+2
     C、*(p+1)
     D、**++p

 

  1. (19)若有以下调用语句,则正确的fun函数的首部包括( )。ABC

        main()
        { …
         int a[50],n;
         …
         fun(n, &a[9]);
          …
        }
     A、void fun(int m, int x[])
     B、void fun(int s, int h[41])
     C、void fun(int p, int *s)
     D、void fun(int n, int a)

 

  1. (20)已知有定义:

                struct{
           int no;
           char name[20];
        }a,b,*c;
        则以下语句合法的有( )。CD
     A、a=b;
     B、a=&b;
     C、c=&b;
     D、*c=b

 

 
 

  附件: 
 

Copyright © 2006 - 2012 www.itatedu.com All Rights Reserved.