试题答案

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

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

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

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

 

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

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

 

2.设有以下程序段

    x=0

    whileprintf(“*”))

      {  x++

         ifx<10break

      }

下面描述正确的是        

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

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

 

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

    Agetsab);                        Bgets(“a ),gets(“b );

    Cscanf(“%s%s”,&a&b);           Dscanf(“%s%s”,ab);

 

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

char a[]=university *p

      p=a

      while*p=’e’

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

    AUNIVERSITY       Buniversity      CUNIV       DunivERSITY

 

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

     struct  student

       { char  name[20]

         int  sex

       }stu*p

     p=&stu

    A)(*p.sex    Bp-> stu.sex    C)(*p.stu.sex    Dp.stu.sex

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

    #include<stdio.h>

    void cal()

    {extern int a, bint x =15y =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”,ab);

     }

    A525      B122      C112      D)不确定

 

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

    main()

    { int a=50b=100

      swap&a&b);

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

    }

    swapint xint y

    {  int t

       t=xx=yy=t}

    A)该程序完全正确

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

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

    D)以上说法都不正确

 

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

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

    Ca<=b                               D’a’ && ‘b’

 

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

      int a=3

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

    A30       B)死循环,没有输出     C1-2    D1

 

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

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

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

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

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

 

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

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

    #define N 50

    main()

    {  int a[N]i

       fori=0i<Ni++  scanf(“%d”,          ;

       fori=0i<Ni++

          { if                     printf(“\n );

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

          }

    }

 

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

    #include<stdio.h>

    main()

    {  char a[]=labchmfye ,t

       int  ij

       fori=0i<7i+=2

          forj=i+2j<9          

              if            

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

       putsa);

     }

 

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

    #include<stdio.h>

    funchar  *s

    { char *t=s

      while            t++

      returnt-s);

    }

    main()

    { char *a=china

      printf(“%d , funa)):

    }

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

    char ch[]=we are students

    int ij

    fori=0           i++

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

 

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

    char ch[]=\t\v\\\0good\n

    printf(“%d,strlench));

 

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

    char x[]=sfieugvsdasdfsad

    char y[]=usidbhfsrygvvses

    int  i

    whilex[i]!=’\0’ && y[i]!=’\0’

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

       else  i++

 

7.能正确表示“当x的取值在[200210][300310]范围内为真,否则为假”的

表达式是                                                                 

 

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

      a+=a-=a+a

 

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

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

    #include<stdio.h>

    main ()

    { int  i

      fori=1i<=5i++

        {ifi%2   printf(“* );

          else  continue

         printf(“# );

         }

      printf(“$\n );

    }

 

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

    main()

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

     scanf(“%d”,&x);

     y=xi=0

     do

     { u=y/2

       a[i]=y%2

       i++y=u

      }whiley>=1);

      forj=i-1j>=0j--

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

    }

 

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

    #include<stdio.h>

    main()

    { char  str[]=ASWWLIAHIRXNQ”,c

      int  k

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

        { switchc

          { case ‘L’continue

           case ‘I’++kbreak

           defaultputcharc);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=0i<10i++)

            a[i]=i+1

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

 printf(%d *(a+i))

  }

 

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

    #include<stdio.h>

    functionint aint b

    { static  int  t=0i=2

      i+=t+1

      t=i+a+b

      returnt);

}

    main()

    { int s=4t=1p

      p=functionst);printf(“%d,” p);

      p=functionst);printf(“%d\n p);

    }

 

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

    #include<stdio.h>

    xchar *p

    { int  ij

      fori=j=0*p+i!=’\0’i++

        if*p+i>=’j’

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

          *p+j=’\0’

    }

    main()

    { char ch[]=dgfhjgyuhgf

      xch);

      putsch);

     }

 

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

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

    mainint argcchar *argv[]

    { whileargc>1

        {++argv

         printf”%s\n”*argv);

         --argc

         }

    }

 

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

    struct  a

    { double  i

      char array[25]

    }

    main()

    { struct a b

      printf(“%d\n sizeofstruct a));

    }

 

四、编程题(共15分)

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

 

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

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

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

 

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

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

 

2.设有以下程序段

    x=0

    whileprintf(“*”))

      {  x++

         ifx<10break

      }

下面描述正确的是        

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

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

 

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

    Agetsab);                        Bgets(“a ),gets(“b );

    Cscanf(“%s%s”,&a&b);           Dscanf(“%s%s”,ab);

 

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

char a[]=university *p

      p=a

      while*p=’e’

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

    AUNIVERSITY       Buniversity      CUNIV       DunivERSITY

 

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

     struct  student

       { char  name[20]

         int  sex

       }stu*p

     p=&stu

    A)(*p.sex    Bp-> stu.sex    C)(*p.stu.sex    Dp.stu.sex

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

    #include<stdio.h>

    void cal()

    {extern int a, bint x =15y =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”,ab);

     }

    A525      B122      C112      D)不确定

 

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

    main()

    { int a=50b=100

      swap&a&b);

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

    }

    swapint xint y

    {  int t

       t=xx=yy=t}

    A)该程序完全正确

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

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

    D)以上说法都不正确

 

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

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

    Ca<=b                               D’a’ && ‘b’

 

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

      int a=3

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

    A30       B)死循环,没有输出     C1-2    D1

 

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

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

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

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

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

 

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

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

    #define N 50

    main()

    {  int a[N]i

       fori=0i<Ni++  scanf(“%d”,          ;

       fori=0i<Ni++

          { if                     printf(“\n );

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

          }

    }

 

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

    #include<stdio.h>

    main()

    {  char a[]=labchmfye ,t

       int  ij

       fori=0i<7i+=2

          forj=i+2j<9          

              if            

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

       putsa);

     }

 

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

    #include<stdio.h>

    funchar  *s

    { char *t=s

      while            t++

      returnt-s);

    }

    main()

    { char *a=china

      printf(“%d , funa)):

    }

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

    char ch[]=we are students

    int ij

    fori=0           i++

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

 

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

    char ch[]=\t\v\\\0good\n

    printf(“%d,strlench));

 

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

    char x[]=sfieugvsdasdfsad

    char y[]=usidbhfsrygvvses

    int  i

    whilex[i]!=’\0’ && y[i]!=’\0’

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

       else  i++

 

7.能正确表示“当x的取值在[200210][300310]范围内为真,否则为假”的

表达式是                                                                 

 

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

      a+=a-=a+a

 

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

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

    #include<stdio.h>

    main ()

    { int  i

      fori=1i<=5i++

        {ifi%2   printf(“* );

          else  continue

         printf(“# );

         }

      printf(“$\n );

    }

 

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

    main()

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

     scanf(“%d”,&x);

     y=xi=0

     do

     { u=y/2

       a[i]=y%2

       i++y=u

      }whiley>=1);

      forj=i-1j>=0j--

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

    }

 

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

    #include<stdio.h>

    main()

    { char  str[]=ASWWLIAHIRXNQ”,c

      int  k

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

        { switchc

          { case ‘L’continue

           case ‘I’++kbreak

           defaultputcharc);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=0i<10i++)

            a[i]=i+1

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

 printf(%d *(a+i))

  }

 

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

    #include<stdio.h>

    functionint aint b

    { static  int  t=0i=2

      i+=t+1

      t=i+a+b

      returnt);

}

    main()

    { int s=4t=1p

      p=functionst);printf(“%d,” p);

      p=functionst);printf(“%d\n p);

    }

 

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

    #include<stdio.h>

    xchar *p

    { int  ij

      fori=j=0*p+i!=’\0’i++

        if*p+i>=’j’

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

          *p+j=’\0’

    }

    main()

    { char ch[]=dgfhjgyuhgf

      xch);

      putsch);

     }

 

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

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

    mainint argcchar *argv[]

    { whileargc>1

        {++argv

         printf”%s\n”*argv);

         --argc

         }

    }

 

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

    struct  a

    { double  i

      char array[25]

    }

    main()

    { struct a b

      printf(“%d\n sizeofstruct a));

    }

 

四、编程题(共15分)

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

 

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

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

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