试题答案

3773考试网专升本考试试题答案正文

安徽工业大学2003年专升本试卷部分

来源:fjsedu.com 2005-10-14 14:56:04

一、选择题(每小题各1.5分,共15分)

 

1.若x,y均定义为float型变量,则以下不合法的赋值语句是          。

    A)  ++x;       B)y=(x%4);   C) x*=y+5;   D)  x=y=0;

 

2.设有以下程序段

    x=0;

    while(printf(“*”))

      {  x++;

         if(x<10)break;

      }

下面描述正确的是         。

    A)其中循环控制表达式与0等价       B)其中循环控制表达式与’0’等价

    B)其中循环控制表达式是不合法的     D)以上说法都不对

 

3.设有两个字符数组a、b,以下正确的输入语句是        。

    A)gets(a,b);                        B)gets(“a” ),gets(“b” );

    C)scanf(“%s%s”,&a,&b);           D)scanf(“%s%s”,a,b);

 

4.下列程序段的运行结果是          。

char a[]=“university” ,*p;

      p=a;

      while(*p!=’e’)

        { printf(“%c” ,*p-‘a’+’A’ );p++;}

    A)UNIVERSITY       B)university      C)UNIV       D)univERSITY

 

5.有以下说明和语句,则对stu中sex域的正确引用方式是       。

     struct  student

       { char  name[20];

         int  sex;

       }stu,*p;

     p=&stu;

    A)(*p).sex    B)p-> stu.sex    C)(*p).stu.sex    D)p.stu.sex

6.下列程序的运行结果是          。

    #include<stdio.h>

    void cal()

    {extern int a, b;int x =15,y =10;

     a=x-y;

     b=x+y;

    }

    int  a, b;

    main()

    { int x=7 ,y=5 ;

      a=x+y;

      b=x-y;

      cal();

      printf(“%d,%d\n”,a,b);

     }

    A)5,25      B)12,2      C)1,12      D)不确定

 

7.下段程序要能对两个整型变量a、b的值进行交换,正确的说法是           。

    main()

    { int a=50,b=100;

      swap(&a,&b);

      printf(“a=%d,b=%d\n”,a,b);

    }

    swap(int x,int y)

    {  int t;

       t=x;x=y;y=t;}

    A)该程序完全正确

    B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可

    C)该程序有错,只要将swap()函数中的形参x和y以及变量t均定义为指针即可

    D)以上说法都不正确

 

8.设a、b、c为整型变量,a=30,b=40,c=50,则下列表达式中值为0的是         。

    A) !((a<b)&& !c||1)                B)a||b+c && b-c

    C)a<=b                               D)’a’ && ‘b’

 

9.下列程序段的输出结果是           。

      int a=3;

      do { printf(“%d\n”,a-=2);} while(!(--a));

    A)3和0       B)死循环,没有输出     C)1和-2    D)1

 

10.C语言中以下说法正确的是              。

    A)实参和与其对应的形参共占用一个存储单元

    B)形参是虚拟的,不占用存储单元

    C)只有当实参和与其对应的形参同名时才共占用存储单元

    D)实参和与其对应的形参各占用独立的存储单元

 

二、填空题(每小题各1.5分,共15分)

1.下列程序每行输出3个数据,请填空。

    #define N 50

    main()

    {  int a[N],i;

       for(i=0;i<N,i++)  scanf(“%d”,          );

       for(i=0;i<N,i++)

          { if (                  )  printf(“\n” );

printf(“%5d”,a[i] );

          }

    }

 

2.下面程序实现在字符串a中下标值为偶数的元素由小到大排序,其它元素不变,请填空。

    #include<stdio.h>

    main()

    {  char a[]=“labchmfye” ,t;

       int  i,j;

       for(i=0;i<7;i+=2)

          for(j=i+2;j<9;           )

              if(             )

                {t=a[i];a[i]=a[j];a[j]=t;j++;}

       puts(a);

     }

 

3.要使下列程序输出5,请填空。

    #include<stdio.h>

    fun(char  *s)

    { char *t=s;

      while(          )  t++;

      return(t-s);

    }

    main()

    { char *a=“china” ;

      printf(“%d” , fun(a)):

    }

4.下列程序段将输出students,请填空。

    char ch[]=“we are students” ;

    int i,j;

    for(i=0;           ;i++)

       {j=i+7;printf(“%c”,c[j]);}

 

5.下列程序段的运行结果是            。

    char ch[]=“\t\v\\\0good\n” ;

    printf(“%d”,strlen(ch));

 

6.下列程序段是输出两个字符串中对应相等的字符,请填空。

    char x[]=“sfieugvsdasdfsad” ;

    char y[]=“usidbhfsrygvvses” ;

    int  i;

    while(x[i]!=’\0’ && y[i]!=’\0’)

      if (x[i] = = y[i])   printf(“%c”,                  );

       else  i++;

 

7.能正确表示“当x的取值在[200,210]和[300,310]范围内为真,否则为假”的

表达式是                                                                 。

 

8.若int型变量a=21,则执行以下语句后a的值是                  。

      a+=a-=a+a;

 

三、阅读下列程序,写出运行结果(每题3分,共30分)

1.下列程序的运行结果是                       。

    #include<stdio.h>

    main ()

    { int  i;

      for(i=1;i<=5;i++)

        {if(i%2)   printf(“*” );

          else  continue;

         printf(“#” );

         }

      printf(“$\n” );

    }

 

2.在输入18并回车后,下列程序的运行结果是                 。

    main()

    { int x,y,i,j,u,v,a[8];

     scanf(“%d”,&x);

     y=x;i=0;

     do

     { u=y/2;

       a[i]=y%2;

       i++;y=u;

      }while(y>=1);

      for(j=i-1;j>=0;j--)

         printf(“%d”,a[j]);

    }

 

3. 下列程序的运行结果是                 。

    #include<stdio.h>

    main()

    { char  str[]=“ASWWLIAHIRXNQ”,c;

      int  k;

      for(k=2;(c=str[k])!=’\0’;k++)

        { switch(c)

          { case ‘L’:continue;

           case ‘I’:++k;break;

           default:putchar(c);continue;

          }

          putchar(’*’);

        }

}

 

4. 下列程序的运行结果是                                                   。

      main ( )

{  int i, j;             

   static  int  a[10]={1,1,1,1,1,1,1,1,1,1};

          for (i=0;i<10;i++)

            for (j=0;j<i;j++)

              a[i]=a[i]+a[j];

          for (i=0;i<10;i++)

          printf(“%d,”,a[i]); 

   }

 

5. 下列程序的运行结果是                         。

        main ( )

        {  int a=0,  n=5;

           for( ; ; )

             { a++; n--;

                 printf(“%d,”,a);

                 a=n;

                 if (n==0)  break;   }

            printf(“%d” ,a);         }

 

6. 下列程序的运行结果是                            。

   main ( )

       {  static  int  a[10],i;         

         for (i=0;i<10;i++)

            a[i]=i+1;

         for (i=0;i<10;i=i+2)

 printf(“%d” ,*(a+i));

  }

 

7.下列程序的运行结果是                            。

    #include<stdio.h>

    function(int a,int b)

    { static  int  t=0,i=2;

      i+=t+1;

      t=i+a+b;

      return(t);

}

    main()

    { int s=4,t=1,p;

      p=function(s,t);printf(“%d,” ,p);

      p=function(s,t);printf(“%d\n” ,p);

    }

 

8. 下列程序的运行结果是                    。

    #include<stdio.h>

    x(char *p)

    { int  i,j;

      for(i=j=0;*(p+i)!=’\0’;i++)

        if(*(p+i)>=’j’)

          { *(p+j)=*(p+i);j++;}

          *(p+j)=’\0’;

    }

    main()

    { char ch[]=“dgfhjgyuhgf” ;

      x(ch);

      puts(ch);

     }

 

9.以下函数经编译、连接后得到的执行文件为abc.exe,若在系统的命令状态下输入命令行:

abc anhui maanshan<回车>,则输出是                          。

    main(int argc,char *argv[])

    { while(argc>1)

        {++argv;

         printf(”%s\n”,*argv);

         --argc;

         }

    }

 

10. 下列程序的运行结果是                 。

    struct  a

    { double  i;

      char array[25];

    };

    main()

    { struct a b;

      printf(“%d\n” ,sizeof(struct a));

    }

 

四、编程题(共15分)

1.用递归法将一个位数不确定的整数n转换成字符串(如输入数字12345,应输出字符串“12345” )。(7分)

 

2.利用指向结构体的指针编制一个程序,实现输入五个学生的学号(num)、计算机期中成绩(mid)和期末成绩(end),

然后计算其平均成绩(ave)并输出其成绩表。(8分)

一、选择题(每小题各1.5分,共15分)

 

1.若x,y均定义为float型变量,则以下不合法的赋值语句是          。

    A)  ++x;       B)y=(x%4);   C) x*=y+5;   D)  x=y=0;

 

2.设有以下程序段

    x=0;

    while(printf(“*”))

      {  x++;

         if(x<10)break;

      }

下面描述正确的是         。

    A)其中循环控制表达式与0等价       B)其中循环控制表达式与’0’等价

    B)其中循环控制表达式是不合法的     D)以上说法都不对

 

3.设有两个字符数组a、b,以下正确的输入语句是        。

    A)gets(a,b);                        B)gets(“a” ),gets(“b” );

    C)scanf(“%s%s”,&a,&b);           D)scanf(“%s%s”,a,b);

 

4.下列程序段的运行结果是          。

char a[]=“university” ,*p;

      p=a;

      while(*p!=’e’)

        { printf(“%c” ,*p-‘a’+’A’ );p++;}

    A)UNIVERSITY       B)university      C)UNIV       D)univERSITY

 

5.有以下说明和语句,则对stu中sex域的正确引用方式是       。

     struct  student

       { char  name[20];

         int  sex;

       }stu,*p;

     p=&stu;

    A)(*p).sex    B)p-> stu.sex    C)(*p).stu.sex    D)p.stu.sex

6.下列程序的运行结果是          。

    #include<stdio.h>

    void cal()

    {extern int a, b;int x =15,y =10;

     a=x-y;

     b=x+y;

    }

    int  a, b;

    main()

    { int x=7 ,y=5 ;

      a=x+y;

      b=x-y;

      cal();

      printf(“%d,%d\n”,a,b);

     }

    A)5,25      B)12,2      C)1,12      D)不确定

 

7.下段程序要能对两个整型变量a、b的值进行交换,正确的说法是           。

    main()

    { int a=50,b=100;

      swap(&a,&b);

      printf(“a=%d,b=%d\n”,a,b);

    }

    swap(int x,int y)

    {  int t;

       t=x;x=y;y=t;}

    A)该程序完全正确

    B)该程序有错,只要将语句swap(&a,&b);中的参数改为a,b即可

    C)该程序有错,只要将swap()函数中的形参x和y以及变量t均定义为指针即可

    D)以上说法都不正确

 

8.设a、b、c为整型变量,a=30,b=40,c=50,则下列表达式中值为0的是         。

    A) !((a<b)&& !c||1)                B)a||b+c && b-c

    C)a<=b                               D)’a’ && ‘b’

 

9.下列程序段的输出结果是           。

      int a=3;

      do { printf(“%d\n”,a-=2);} while(!(--a));

    A)3和0       B)死循环,没有输出     C)1和-2    D)1

 

10.C语言中以下说法正确的是              。

    A)实参和与其对应的形参共占用一个存储单元

    B)形参是虚拟的,不占用存储单元

    C)只有当实参和与其对应的形参同名时才共占用存储单元

    D)实参和与其对应的形参各占用独立的存储单元

 

二、填空题(每小题各1.5分,共15分)

1.下列程序每行输出3个数据,请填空。

    #define N 50

    main()

    {  int a[N],i;

       for(i=0;i<N,i++)  scanf(“%d”,          );

       for(i=0;i<N,i++)

          { if (                  )  printf(“\n” );

printf(“%5d”,a[i] );

          }

    }

 

2.下面程序实现在字符串a中下标值为偶数的元素由小到大排序,其它元素不变,请填空。

    #include<stdio.h>

    main()

    {  char a[]=“labchmfye” ,t;

       int  i,j;

       for(i=0;i<7;i+=2)

          for(j=i+2;j<9;           )

              if(             )

                {t=a[i];a[i]=a[j];a[j]=t;j++;}

       puts(a);

     }

 

3.要使下列程序输出5,请填空。

    #include<stdio.h>

    fun(char  *s)

    { char *t=s;

      while(          )  t++;

      return(t-s);

    }

    main()

    { char *a=“china” ;

      printf(“%d” , fun(a)):

    }

4.下列程序段将输出students,请填空。

    char ch[]=“we are students” ;

    int i,j;

    for(i=0;           ;i++)

       {j=i+7;printf(“%c”,c[j]);}

 

5.下列程序段的运行结果是            。

    char ch[]=“\t\v\\\0good\n” ;

    printf(“%d”,strlen(ch));

 

6.下列程序段是输出两个字符串中对应相等的字符,请填空。

    char x[]=“sfieugvsdasdfsad” ;

    char y[]=“usidbhfsrygvvses” ;

    int  i;

    while(x[i]!=’\0’ && y[i]!=’\0’)

      if (x[i] = = y[i])   printf(“%c”,                  );

       else  i++;

 

7.能正确表示“当x的取值在[200,210]和[300,310]范围内为真,否则为假”的

表达式是                                                                 。

 

8.若int型变量a=21,则执行以下语句后a的值是                  。

      a+=a-=a+a;

 

三、阅读下列程序,写出运行结果(每题3分,共30分)

1.下列程序的运行结果是                       。

    #include<stdio.h>

    main ()

    { int  i;

      for(i=1;i<=5;i++)

        {if(i%2)   printf(“*” );

          else  continue;

         printf(“#” );

         }

      printf(“$\n” );

    }

 

2.在输入18并回车后,下列程序的运行结果是                 。

    main()

    { int x,y,i,j,u,v,a[8];

     scanf(“%d”,&x);

     y=x;i=0;

     do

     { u=y/2;

       a[i]=y%2;

       i++;y=u;

      }while(y>=1);

      for(j=i-1;j>=0;j--)

         printf(“%d”,a[j]);

    }

 

3. 下列程序的运行结果是                 。

    #include<stdio.h>

    main()

    { char  str[]=“ASWWLIAHIRXNQ”,c;

      int  k;

      for(k=2;(c=str[k])!=’\0’;k++)

        { switch(c)

          { case ‘L’:continue;

           case ‘I’:++k;break;

           default:putchar(c);continue;

          }

          putchar(’*’);

        }

}

 

4. 下列程序的运行结果是                                                   。

      main ( )

{  int i, j;             

   static  int  a[10]={1,1,1,1,1,1,1,1,1,1};

          for (i=0;i<10;i++)

            for (j=0;j<i;j++)

              a[i]=a[i]+a[j];

          for (i=0;i<10;i++)

          printf(“%d,”,a[i]); 

   }

 

5. 下列程序的运行结果是                         。

        main ( )

        {  int a=0,  n=5;

           for( ; ; )

             { a++; n--;

                 printf(“%d,”,a);

                 a=n;

                 if (n==0)  break;   }

            printf(“%d” ,a);         }

 

6. 下列程序的运行结果是                            。

   main ( )

       {  static  int  a[10],i;         

         for (i=0;i<10;i++)

            a[i]=i+1;

         for (i=0;i<10;i=i+2)

 printf(“%d” ,*(a+i));

  }

 

7.下列程序的运行结果是                            。

    #include<stdio.h>

    function(int a,int b)

    { static  int  t=0,i=2;

      i+=t+1;

      t=i+a+b;

      return(t);

}

    main()

    { int s=4,t=1,p;

      p=function(s,t);printf(“%d,” ,p);

      p=function(s,t);printf(“%d\n” ,p);

    }

 

8. 下列程序的运行结果是                    。

    #include<stdio.h>

    x(char *p)

    { int  i,j;

      for(i=j=0;*(p+i)!=’\0’;i++)

        if(*(p+i)>=’j’)

          { *(p+j)=*(p+i);j++;}

          *(p+j)=’\0’;

    }

    main()

    { char ch[]=“dgfhjgyuhgf” ;

      x(ch);

      puts(ch);

     }

 

9.以下函数经编译、连接后得到的执行文件为abc.exe,若在系统的命令状态下输入命令行:

abc anhui maanshan<回车>,则输出是                          。

    main(int argc,char *argv[])

    { while(argc>1)

        {++argv;

         printf(”%s\n”,*argv);

         --argc;

         }

    }

 

10. 下列程序的运行结果是                 。

    struct  a

    { double  i;

      char array[25];

    };

    main()

    { struct a b;

      printf(“%d\n” ,sizeof(struct a));

    }

 

四、编程题(共15分)

1.用递归法将一个位数不确定的整数n转换成字符串(如输入数字12345,应输出字符串“12345” )。(7分)

 

2.利用指向结构体的指针编制一个程序,实现输入五个学生的学号(num)、计算机期中成绩(mid)和期末成绩(end),

然后计算其平均成绩(ave)并输出其成绩表。(8分)

触屏版 电脑版
3773考试网 琼ICP备12003406号-1