C语言程序设计模拟试题2附答案new.docx

上传人:b****3 文档编号:5876870 上传时间:2023-05-09 格式:DOCX 页数:26 大小:25.19KB
下载 相关 举报
C语言程序设计模拟试题2附答案new.docx_第1页
第1页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第2页
第2页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第3页
第3页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第4页
第4页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第5页
第5页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第6页
第6页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第7页
第7页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第8页
第8页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第9页
第9页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第10页
第10页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第11页
第11页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第12页
第12页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第13页
第13页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第14页
第14页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第15页
第15页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第16页
第16页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第17页
第17页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第18页
第18页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第19页
第19页 / 共26页
C语言程序设计模拟试题2附答案new.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计模拟试题2附答案new.docx

《C语言程序设计模拟试题2附答案new.docx》由会员分享,可在线阅读,更多相关《C语言程序设计模拟试题2附答案new.docx(26页珍藏版)》请在冰点文库上搜索。

C语言程序设计模拟试题2附答案new.docx

C语言程序设计模拟试题2附答案new

《C语言程序设计》模拟试卷二

 

一、填空题。

(每空2分,共30分)

1.设有变量说明语句

    intx=1,y=2;

则执行下述printf语句的输出结果是___1.000000___  _____。

    printf("%f\n",1.0+x/y);

2.执行下述程序

    #include

    main()

    {

      intx,y;

      scanf("%2d%*2s%1d",&x,&y);

      printf("%d\n",x+y);

     }

若从键盘输入

       12345671

则程序的输出结果是__17______。

3.以下程序的功能是:

从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。

请填空。

   #include

   main()

   {

     floatx,amax,amin;

     scanf("%f",&x);

     amax=x;

     amin=x;

     while(X>0&&X<=100)

     {

       if(x>amax)

          amax=x;

       elseif(x

          amin=x;

       scanf("%f”,&x);

      }

      printf("\namax=%f\namin=%f\n",amax,amin);

     }

4.设n是整型变量,且已具有某正整数值。

根据下述数学式

求s的值并输出。

可编写如下之程序段实现之。

请填空。

  intk;

  doubles,d;

  s=0.0;

  d=1.0;

  K=0;

  do

  {

    s=s+d;

    _k++           _________;

    d=1.0/(k*(k+1));

   }while(k<=n);

   printf("%f\n",s);

5.执行下述程序的输出结果是_-3-40443___     ____。

  #inclued

  main()

  {

    inta[6],i;

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

    {

      a[i]=9*(i-2+4*(i>3))%5;

      printf("%3d",a[i]);

     }

     printf("\n");

   }

6.执行下述程序时的输出结果是____6_____ ________。

 #include

 main()

 {

    inta[]={2,4,6,},*ptr=&a[0],x=8,y,z;

    for(y=0;y<3;y++)

      z=(*(ptr+y)

*(ptr+y):

x;

    printf("%d\n",z);

  }

7.执行下述程序的输出结果是____60_  _______。

 #include

 main()

 {

   inta[][2]={10,20,30,40,50,60},(*p)[2];

   p=a;

   printf("%d\n",*(*(p+2)+1));

  }

8.执行以下程序的输出结果是___s=10 ______。

 #include

 main()

 {

   ints,i,sum();

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

     s=sum(i);

   printf("s=%d\n",s);

  }

  sum(intk)

  {

    intx=0;

    return(x+=k);

   }

9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整数相加之和值,请填空。

  voidadd(intx,inty,___int*z_     ___)

  {

     *z=x+y;

   }

10.函数func的功能是将整型变量x的值转换成二进制数,并将该二进制数的每一位存入由整型指针b所指向的一维数组a,最低位存放于a[0]中,次低位存放于a[1]中,依此类推。

请填空。

  voidfunc(intx,int*b)

  {

    intr;

    do

    {

      r=x%2;

      ____*b++___=r;

      x/=2;

      }while(x);

    }

11.以下程序中函数invert实现将数组内所有数组元素的值逆置。

比如,执行本程序将输出

  10 9 8 7 6 5 4 3 2 1

请填空。

    #include

    main()

    {

      inta[10]={1,2,3,4,5,6,7,8,9,10},i,n=10;

      invert(a,n-1);

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

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

      printf("\n");

     }

     invert(int*s,intnum)

     {

       int*t,k;

       t=s+num;

       while(____t>=s   ________)

       {

         k=*s;

         *s=*t;

         *t=k;

         s++;

         t--;

        }

       }

12.若有以下定义和说明,则结构体变量w在内存中所占的字节数是_18__

unionaa

   {

     floatx;

     floaty;

     charc[6];

    };

 structst

    {

      unionaav;

      floatw[5];

      doubleave;

  }w;  

13.执行下述程序的输出结果是__95,Li____   _______。

  #include

  structstr

  {

    floatx;

    char*y;

   }*m;

   structstrgroup[3]={

                          95.0,"Li",

                          82.5,"Wang",

                          73.5,"Sun"

                     };

   main()

   {

     m=group;

     printf("%.lf,%s\n",m->x,m->y);

    }

14.下面的程序用来统计某文件文件中字符的个数。

请填空。

  #include

  #include

  main()

  {

     FILE*fp;

     longnum=0;

     if((fp=fopen("fnam.dat","r"))++)==NULL)

     {

       printf("Can'topenthisfile!

\n");

       exit(0);

      }

      while(!

      {

        fgetc(fp);

        num++;

       }

       printf("num=%d\n",num);

       fclose(fp);

    }

15.执行下述程序后,输出结果为___29______。

   #include

   #defineFUN1(a,b)a+b

   #defineFUN2(a,b)a-b

   #defineCAL(a,b)a*b+a+3

   main()

   {

     printf("%d\n",CAL(FUN1(3,5),FUN2(4,5)));

    }

 1、B2、B3、A4、C5、C6、D

7、B8、A9、D10、C11、D12、D

13、A14、D15、A16、A17、B18、A

19、B20、C

二、单项选择题。

(每题1分,共20分)

1.以下不是c语言规定保留字的是(  B )。

(A)float    (B)integer    (C)signed    (D)unsigned

2.设int型变量x有初始值3,则表达式x++*5/10的值是(  B  )

(A)0      (B)1        (C)2       (D)3

3.下述程序执行后的输出结果是(  A )

 #include

 main()

 {

   intx='f';

   printf("%c\n",'a'+(x-'a'+1));

 }

(A)g      (B)h      (C)i    (D)j

4.设有程序

#include

main()

{

  inti,j;

  for(i=0,j=1;i<=j+1;i+=2,j--)

     printf("%d\n",i);

 }

在运行上述程序时,for语句中循环体的执行次数是( C  )

(A)3    (B)2    (C)1    (D)0

5.在下述选项时,没有构成死循环的程序是( C  )

 (A)inti=100

   while

(1)

   {

     i=i%100+1;

     if(i>100)

         break;

    }

(B)for(;;);

(C)intk=1000;

   do

   {

      ++k;

    }while(k>=10000);

(D)ints=36;

  while(s);--s;

6.假定a和b为int型变量,则执行下述语句组后,b的值为(D    )。

 a=1;

 b=10;

 do

 {

   b-=a;A

   a++;

 }while(b--<0);

 (A)9   (B)-2   (C)-1   (D)8

7.设有变量说明语句

  int a=1,b=0;

则执行以下程序段的输出结果为(  B   )。

   switch (a)

   {

       case1:

          switch (b)

           {

              case0:

printf("**0**");break;

              case1:

printf("**1**");break;

            }

       case2:

printf("**2**");break;

    }

 printf("\n");

 (A)**0**   (B)**0****2**   (C)**0****1****2**  (D)有语法错误

8.以下合法的数组说明是(  A  )。

 (A)chara[7]="string";      (B)inta[5]={0,1,2,3,4,5};

 (C)chara="string";        (D)INTa[]={0,12,3,4,5};

9.下述程序代码中有语法错误的行是(  D  )。

 inti,ia[10],ib[10];     /*第1行*/

 for(i=0;i<=9;i++)       /*第2行*/

 ia[i]=0;                 /*第3行*/

 ib=ia;                   /第4行*/

 (A)第1行   (B)第2行  (C)第3行  (D)第4行

10.若已定义

 inta[9],*p=a;

并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是( C  )。

(A)p+1  (B)a+1   (C)a++   (D)++p

11.若有下述说明和语句

  int**pp,*p,a=10,b=20;

  pp=&p;

  p=&a;

  p=&b;

  printf("%d,%d\n",*p,**pp);

则输出结果是( D   )。

  (A)10,10   (B)10,20   (C)20,10  (D)20,20

12.执行下述程序后的输出结果是( D  )。

  #include

  func(inta)

  {

    intb=0;

    staticintc=3;

    a=c++,b++;

    return(a);

   }

   main()

   {

     inta=2,i,k;

     fori=0;i<2;i++)

       k=func(a++);

     printf("%d\n",k);

   }

  (A)3  (B)0  (C)5  (D)4

13.执行下述程序的输出结果是( A  )。

  #include

  main()

  {

     intaa[3][3]={{2},{4},{6}};

     inti,*p=&aa[0][0];

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

     {

       if(i==0)

        aa[i][i+1]=*p+1;

       else

        ++p;

       printf("%d",*p);

     }

      printf("\n");

    }

  (A)23  (B)26  (C)33 (D)36

14.读下面的程序,正确的输出结果是(  D  )。

#include

staticinta=50;

voidf1(inta)

{

printf("%d,",a+=10);

}

voidf2(void)

{

printf("%d,",a+=3);

}

voidmain()

{

inta=10;

f1(a);

f2();

printf("%d\n",a);

}

 (A)60,63,60    (B)20,23,23   (C)20,13,10     (D)20,53,10

15.执行下述程序的输出结果是(  A  )。

 #include

 intpower(intx,inty);

 main()

 {

   floata=2.6,b=3.4;

   intp;

   p=power((int)a,(int)b);

   printf("%d\n",p);

  }

  intpower(intx,inty)

  {

    inti,p=1;

    for(i=y;i>0;i--)

     p=p*x;

    return(p);

   }

 (A)8         (B)9        (C)27        (D)81

16.已知函数scopy的定义如下

  voidscopy(char*s,char*t)

  {

     while(*s++=*t++);

   }

   则该函数的功能是( A  )。

 (A)串复制    (B)求串长度    (C)串比较    (D)串反向

17.执行下述程序的输出是( B  )。

 

#include

voidmain()

{

structcomplex

{

intre;

intim;

};

structcomplexcp[3]={2,5,4,7};

cp[2].re=cp[0].re+cp[1].re;

cp[2].im=cp[0].im+cp[1].im;

printf("%d%d\n",cp[2].re,cp[2].im);

}

(A)711     (B)612      (C)99      (D)126

18.执行下述程序的输出结果是( A  )。

  #include

  main()

  {

     union

     {

       intk;

       chari[2];

     } *s,a;

       s=&a;

       s->i[0]=0x39;

       s->i[1]=0x38;

       printf("%x\n",s->k);

   }

  (A)cccc3839    (B)3938    (C)380039    (D)390038

19.有以下程序,则结果为B。

structabc

{inta,b,c;};

main()

{  structabcs[2]={{1,2,3},{4,5,6}};

intt;

  t=s[0].a+s[1].b;

  printf(“%d\n”,t);

}

A)5   B)6  C)7  D)8

20.以下程序for语句循环体中printf语句执行次数是( C   )。

 #include

 #defineN2

 #defineMN+1

 #defineNUM(M+1)*M/2

 main()

 {

     inti;

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

      printf("%d\n",i);

  }

 (A)5       (B)6         (C)8       (D)9

三、程序分析题(每题5分,共30分)

1.阅读程序,写出执行该程序的输出结果。

 #include

 main()

 {

   chars[]="pressakey.";

   inti;

   charch;

   for(i=0;(ch=s[i])!

='\0';i++)

   {

     switch(ch)

     {

        case'p':

        case'a':

        case'k':

putchar(ch-32);continue;

        case' ':

putchar('*');break;

        case'.':

putchar('!

');break;

        default:

putchar(ch);continue;

       }

       putchar('\n');

    }

 }

Press*A*Key!

2.阅读程序,写出执行该程序的输出结果。

 #include

 #defineN5

 main()

 {

   inti,j;

   inta[N][N];

   for(i=0;i

     for(j=0;j

       if(i>=j)

        a[i][j]=1;

       else

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

    for(i=0;j

     {

      for(j=0;j

      printf("%3d",a[i][j]);

    printf("\n");

      }

    }

不输出任何结果

3.阅读程序,写出执行该程序的输出结果

 #include

 main()

 {

   intm[5],n[5],*px,*py,k;

   px=m;py=n;

   for(k=1;k<4;k++,px++,py++)

   {

     *px=k;*py=2*k;

     printf("%d,%d",m[k-1],n[k-1]);

    }

    printf("\n");

    px=&m[1];

    py=&n[1];

    for(k=1;k<3;k++)

    {

      *px+=k;*py*=k;

      printf("%d,%d,",*px++,*py++);

     }

     printf("\n");

 }

1,22,43,6

3,4,4,8,

4.阅读程序,写出执行该程序的输出结果。

#include

voidf(inty)

{

staticinti=5;

intj=3;

j++;

printf("%d%d%d=%d\n",i,j,y,i+j+y);

i*=2;

}

voidmain()

{

intx;

for(x=1;x<+3;++x)

f(x);

541=10

1042=11

5.阅读下列程序,写出程序运行的输出结果。

#include

voidmain()

{chara[20]={"1A2B3C"},b[20],*p1,*p2;

p1=a,p2=b;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2