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

上传人:b****5 文档编号:7271970 上传时间:2023-01-22 格式:DOCX 页数:15 大小:20.75KB
下载 相关 举报
C语言程序设计模拟试题7附答案.docx_第1页
第1页 / 共15页
C语言程序设计模拟试题7附答案.docx_第2页
第2页 / 共15页
C语言程序设计模拟试题7附答案.docx_第3页
第3页 / 共15页
C语言程序设计模拟试题7附答案.docx_第4页
第4页 / 共15页
C语言程序设计模拟试题7附答案.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

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

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

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

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

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

一、填空题。

(每空2分,共30分)

1.下述算术表达式的结果值是___ __。

 (int)(13.7+25.6)/4%4

2.设整型变量value的值为20。

执行下述程序段的输出结果是               。

 if(value>=3)

   if(value>100)

     printf("Error:

value>100.\n");

 else

    printf("Error:

value<3.\n");

3.对于下述程序段

 intb,c;

 floata;

 scanf("%f,%d,c=%d",&a,&b,&c);

若欲使a、b、c的值分别为5.0、4、3,则应按如下形式输入数据:

_                           __。

4.设int类型变量占内存两个字节,今有变量说明语句

 inta=20;

则执行下述printf语句的输出结果是___                     _。

 printf("%d,%0,%x,%u\n",a,a,a,a);

5.执行下述程序的输出结果是_____ ______。

 #include

 main()

 {

   intarr[10],i,k=0;

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

     arr[i]=i;

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

     k+=arr[i]+i/2;

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

  }

6.执行下述程序的输出结果是__      _。

  #include

  main()

  {

    inti=0;

    charx[]="China";

    chary[]="Chinese";

    while(x[i]!

='\0'&&y[i]!

='\0')

      if(x[i]==y[i])

        printf("%c",x[i++]);

      else

        i++;

    printf("\n");

   }

7.下述函数定义的功能是:

把两个整数指针所指的存储单元中的内容进行交换。

请填空。

 voidexchange(                           )

 {

   intt;

   t=*y;

   *y=*x;

   *x=t;

  }

8.设有如下变量说明语句

 inta[8]={44,55,12,42,94,18,6,67},*p=a;

则通过指针变量p引用值为18的表达式是____     或       ____。

9.执行下述程序

 #include

 intstrlength(chara[],charb[])

 {

   intnum=0,n=0;

   while(*(a+num)!

='\0')

      num++;

   while(b[n])

   {

      *(a+num)=b[n];

      num++;

      n++;

    }

    return(num);

 }

 main()

 {

      charstr1[81],str2[81],*p1=str1,*p2=str2;

      gets(p1);

      gets(p2);

      printf("%d\n",strlength(p1,p2));

 }

若从键盘输入

    qwerty

    abcd

则输出结果是____  ___。

10.下面的函数定义是一个求阶乘的递归调用函数。

假定n≠0。

请填空。

   longfac(intn)

   {

     longf;

     if(n==0)

        f=1;

     else

        f=___                 ____;

     return(f);

    }

11.下述程序的功能是:

输入n值,输出高度为n的、由字符'*'组成的直角三角形,例如当n=4时的输出图形如下(最后一行前面没有空格):

                *

               **

              ***

             ****

请填空。

  #include

  voidfunc(charc,intn)

  {

    if(n>0)

    {

      printf("%c",c);

      func(c,n-1);

     }

   }

  main()

  {

     inti,n;

     scanf("%d",&n);

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

     {

      ____                    ___;

       printf("\n");

      }

  }

12.执行下述程序的输出结果是                                  。

  #include

  #defineCOMPstructcomplex

  COMP

  {

    floatre;

    floatim;

   };

   voidplus(COMP*z1,COMP*z2,COMP*z3)

   {

     z3->re=z1->re+z2->re;

     z3->im=z1->im+z2->im;

   }

  main()

   {

     COMPa,b,c;

     a.re=7.0;

     a.im=4.0;

     b.re=-2.0;

     b.im=5.5;

     plus(&a,&b,&c);

     printf("c=%5.lf+%5.lfi\n",c.re,c.im);

   }

13.以下程序在运行时输入

  10 20 30

  则输出结果是___               __。

   #include

   intfunc(inta,intb,intc)

   {

     return(a+b+c);

    }

    main()

   {

      intx,y,z;

      printf("Enterx,y,z:

");

      scanf("%d%d%d",&x,&y,&z);

      z=func(x,x+y,func(x,x+y,z));

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

    }

14.下面的程序把从终端读入的文本(用字符'@'作为文本结束标志)逐个字符复制到一个当前磁盘目录下名为bi.dat的新文本文件中。

请填空。

  #include

  #include

  main()

  {

    FILE*fp;

    charch;

    if((fp=fopen("bi.dat","w"))==NULL)

    {

      printf("Can'topenfilebi.dat.\n");

      exit(0);

     }

     while((ch=getchar())!

='@')

                                       ;

     fclose(fp);

   }

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

#include"stdio.h"

intabc(intu,intv);

intabc(intu,intv)

{intw;

while(v)

{w=u%v;u=v;v=w;}

returnu;

}

main()

{inta=24,b=16,c;

c=abc(a,b);

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

}

 

二、单项选择题。

(每题1分,共20分)

1.在计算机上可以直接运行的程序是写【   】

A.高级语言程序    B.汇编语言程序 

C.机器语言程序    D.C语言源程序

2.下列符号串中,合法的C语言标识将是【   】

A._121   B.121_   C.a.121   D.#121

3.下列符号串中,合法的十进制整型常量是【   】

A.09876  B.0x9876 C.9.876*e4   D.-9876

4.设有关变量已经正确定义并赋值,则下列表达式中符合C语言语法规则的是【   】

A.a_=\12   B.a_1=a_2+=12   C.int13.5%2   D.a=b+7=C-2

5.若整型变量x的值为8,则下列表达式中值为1的表达式是【   】

A.x+=x-=x=x   B.x%=x-1   C.x%=x%=3   D.x/=x+x

6.字符串"m\x43\\\np\102q"的长度是【   】

A.7     B.9   C.15   D.16

7.设有定义语句“inta=10,*p=&a;”,则表达式“a十*p”的值是【   】

A.10   B.20    C.100   D.语法出错

8.若有定义语句“intx,*p=&x,**ppx=&px;”,则下列表达式中错误的是【   】

A.x=*px  B.x=**ppx   C.px=&ppx   D.*ppx=&x

9.如果某个函数在定义时,省略了存储类型,则默认的存储类型是【   】

A.auto   B.void     C.extern    D.static

10.能正确定义一个用来指向打开文件的文件型指针变量fp的语句是【   】

A.filefp; B.file*fp;  C.FILEfp;  D.FILE*fp;

11.函数fopen()的返回值不能是【   】

A.NULL    B.O      C.1      D.某个内存地址

12.以只写方式打开一个二进制文件,应选择的文件操作方式是【   】

A."a+"    B."w+"    C."rb"    D."Wb"

13.设有定义语句“charch='\77';”,则下列说法中正确的是【   】

A.ch中含有1个字符       B.ch中含有2个字符

C.ch中含有3个字符       D.语法出错

14.设有函数调用语句“f(x1,x1+x2,(x1,x2));”,正确的说法是【   】

A.调用的实际参数是2个   B.调用的实际参数是3个

C.调用的实际参数是4个   D.调用时会出现语法错误。

15.计算平方数时不可能引起二义性的宏定义是【   】

A.#defineSOR(x)x*x      B.#defineSQR(x)(x)*(x)

C.#defineSQR(x)(x*x)   D.#defineSQR(x)((x)*(x))

16.执行下列程序段后,x的位是【   】

   inta=8,b=7,c=6,x=1;

   if(a>6)if(b>7)if(c>8)x=2;elsex=3;

A.O    B.1    C.2    D.3

17.执行下列程序段后,变量y的值为【   】

   intx[]={1,2,3,4},y,*p=&x[1];

   y=(*--P)++;

A.1    B.2    C.3    D.4

18.能正确表达逻辑关系“-1<x<1并且-1<y<1”的表达式是【   】

A.(-1<x<1)&&(-1<y<1)

B.(-1<x<1)&(-1<y<1)

C.((-1<x)¦¦(x<1))&&((-1<y)¦¦(y<1))

D.(-1<x)&&(x<1)&&(-1<y)&&(y<1)

19.函数调用时,下列说法中不正确的是【   】

A.若用值传递方式,则形式参数不予分配内存

B.实际参数和形式参数可以同名

C.主调函数和被调用函数可以不在同一个文件中

D.函数间传送数据可以使用外部全局变量

20.下列关于结构型变量的定义语句中,错误的是【   】

 A.typedefstructCCC     B.#defineGGGstruct

    {charname[20];GGGCCC   {charname[20];

       intage;                  intage;

     }GGG;            };

      GGGabc;                GGGCCCabc;

 C.struct                  D.struct

   {charname[20];         {charname[20];

      intage;                  intage;

    }ccc;              }abc;

    CCCabc;

 

三、程序分析题(每题8分,共32分)

1.写出执行下述程序的输出结果。

   #include

   main()

   {

     inta=2,b=4,c=5;

     switch(a>0)

     {

       inta=2,b=4,c=5;

       switch(a>0)

       {

         case1:

switch(b=b>>2)

             {

               case1:

printf("@");

               case0:

printf("!

");

               default:

printf("?

");

              }

          case0:

swith(c==5)

              {

                 case0:

printf("*");break;

                 case1:

printf("#");break;

                 dafault:

printf("$");

               }

          default:

printf("&");

        }

        printf("\n");

      }

 

2.写出执行下述程序的输出结果。

  #include

  #defineN5

  main()

  {

    inti,j,cent;

    for(cent=1;cent<=N;cent++)

    {

      for(i=1;i<=N-cent+5;i++)

          printf("");

      for(j=1;i<=cent;j++)

          printf("%d",j));

      for(j=cent-1;j>=1;j--)

          printf("%d",j);

      printf("\n");

     }

   }

 (注:

第一行1前面有9个空格,以下类推)

3.阅读下述程序,设输入如下数据

 8 5 7 9 4

 请写出输出结果。

  #include

  #defineN5

  main()

  {

    inti,j,k,1;

    inta[N];

    for(i=0;i

      scanf("%d",&a[i]);

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

    {

      k=a[N-1];

      for(j=N-2;j>=0;j--)

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

      a[0]=k;

      for(1=0;1

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

       printf("\n");

     }

  }

4.写出执行下述程序的输出结果。

 

  #include

main()

{

chars[]="ABCDE",*p;

for(p=s;p

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

}

 

四、程序设计题(每小题9分,共18分)

1、编写程序,从键盘输入一个字符序列(以字符'#'作为结束标志),将其中的英文小写字母全部转换成相应的英文大写字母,逐个字符写入一个名为test.dat的磁盘文本文件以保存。

然后,从该文件中读取所存入的字符序列,将它们输出在显示屏上。

2、编写一程序,从键盘输入10个实数,计算并输出算术平均值。

模拟试卷七参考答案

一、填空题。

(每空2分,共30分)

1)1

2)Error:

value<3.

3)5.0,4,c=3

4)20,24,24,20

5)8

6)Chin

7)int*y,int*x

8)p[5]或*(p+5)

9)10

10)n*fac(n-1)

11)func('*',i)

12)c=5+10i

13)z=110

14)fputc(ch,fp)

15)8

二、单项选择题。

(每题1分,共20分)

1.C2.A3.D4.B5. B

6A7.B8.C9.A10.D

11.C  12.C13.A14.B15.D

16.D17.A18.D19.A20.C

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

1.输出结果如下:

 400-4-3

2.输出结果如下:

   1

21

321

4321

3.输出结果如下:

48579

94857

79485

57948

85794

4.输出结果如下:

 

ABCDE

BCDE

CDE

DE

5.读下列程序,写出程序的主要功能。

 #include”dos.h”

    main()

    {structdatetoday;

      intn,year1;

      getdate(&today);

      scanf("%d",&year1);

      while((n=today.da_year-year1)>=0)

            {printf("age=%d\n",n);

              scanf("%d",&year1);

            }

     }

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

 char*f(pl,p2)

 char*pl,*p2;

 {char*pp1=p1,*pp2=p2,ch;

   while(*pp1!

='\0')

        {for(ch='0';ch<*pp1;ch++)

              *pp2=*(pp1+1),pp2++;

          ppl=ppl+2;

        }

  *pp2='\0';

 return(p2);

 }

 main()

 {charsl[10]={"la2b3c"},s2[20],*p;

   p=f(sl,s2);

   printf(”%s\n”,p);

 }

 

四、程序设计题(每小题10分,共20分)

1、编写程序,从键盘输入一个字符序列(以字符'#'作为结束标志),将其中的英文小写字母全部转换成相应的英文大写字母,逐个字符写入一个名为test.dat的磁盘文本文件以保存。

然后,从该文件中读取所存入的字符序列,将它们输出在显示屏上。

int main() 

 { 

 FILE *fio; 

 char k; 

 fio = fopen("test3.dat","w"); 

     if(fio == NULL) 

          exit(-1); 

 while 

(1) 

 { 

 k=getch(); 

 if (k=='#') {break;} 

 putch(k); 

 if (islower(k)) {fputc(k-32,fio)(k-32);} 

 else{fputc(k,fio)(k);} 

 } 

 fclose(fio); 

 return 0; 

 } 

2、编写一程序,从键盘输入10个实数,计算并输出算术平均值。

main()

      {inti;

         floatave=0.0,a[10];

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

            scanf("%f",&a[i]);

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

            ave+=a[i];

         printf("%10.4f\n",ave/10.0);.

       }

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1