欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言程序设计题库模拟试题10套期末考试卷带答案.doc

    • 资源ID:29609381       资源大小:568.35KB        全文页数:106页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计题库模拟试题10套期末考试卷带答案.doc

    C语言程序设计模拟试卷一一、           单项选择题(每题2分,共30分)1、下列有关C语言的叙述中错误的是()。A) C语句必须以分号结束   B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句  D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是()。  A) MAIN        B) _HJ        C) 2ong         D) LINE13、下列符号中用来表示C语言中的回车换行的是()。  A) r            B) n          C) b           D) t4、如有如下定义:int  a=1,则语句printf(“%d,%d”, a, +a);的运行结果为()。  A) 1,  1       B) 1,  2     C) 2,  2     D) 2,   15、已知ch为字符型变量,下面表达式中正确的是()。  A) ch=xff      B) ch=ff     C) ch= ff      D) ch=” ff ”6、以下能正确定义一维数组的是()。  A) int  a5=0,1,2,3,4,5;   B) int  a5=”012345”;  C) char  a =”012345”;     D) char  a5=0,1,2,3,4,5;7、以下语句中能正确定义变量并赋初值的是()。  A) char  c=65;          B) float  f=f+1.1;     C) double  x=12.3e3.6;   D) int  m=n=2.0;8、在执行下列程序时输入:1357924,则程序的运行结果为()。  main( )  int  x, y;scanf(“%2d%2d”,&x,&y);printf(“%2d”,x*y);  A) 13    B) 1357     C) 74     D) 7419、执行下列程序段后输出的结果是()。   x = 9;   while (x > 7)     printf(“*”); x- -; A) *    B) *     C) *     D) *10、设char str110 = “ABCDE”, str210 = “xyz”;则执行语句  printf(“%d”, strlen(strcpy(str1, str2); 后的输出结果是() A)  9    B) 8     C) 5    D) 311、若用数组名作为函数调用的实参,则传递给形参的是() A) 数组的首地址           B) 数组第一个元素的值 C) 数组中全部元素的值     D) 数组元素的个数12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为(  ) A)void     B)double   C)int    D)char13、下面不能正确进行字符串赋值操作的语句是( ) A) char s5="ABCD";      B) char s5;  s="ABCD" C) char *s;s="ABCDEF";    D) char *s="ABCD"14、设有说明int s5=1,3,5,7,9; int *p=s; 则下列表达式中值为3的是 ( ) A)+p     B)+(*p)    C) *(+p)    D) *(p+=2)15、下面程序的输出结果是()int  m=13;int  fun( int x,  int  y) int m=3;      return( x*y-m); main( ) int a=7,b=5; printf(“%dn”, fun(a,b)/m); A) 1         B)  2        C) 3        D) 10 二、           判断(每空1分,共10分)1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。  (  )2、C语言规定:标识符应由字母、下划线和数字组成,且可以是上述字符的任意组合,其长度也是任意的。(  )                                  3、数组在定义时没有必要指定数组的长度,其长度可以在程序中根据元素个数再决定。(  )4、if语句有多种使用方法,其中if子句和else 子句也都可以单独使用。  (  )5、for语句作为循环控制语句时,从语法上将其括号内各个表达式都可缺省,但表达式内的分号却不可以却省。( )                                6、字符串是C语言中一种基本数据类型,字符串总是以n作为结束标志。(  )7、在C语言中,程序的最小编译单位是源文件,最小功能单位是函数。(  )8、在定义指针型变量时指定的基类型为该指针变量所能指向的变量类型。(  )9、结构体与数组一样,属于构造类型数据,且在结构体中的各个成员的类型也可不同。(  )10、在发生函数调用时,主被调函数中的参数可以是简单变量,也可以是数组名,当采用数组名作为参数时其数据传递方式为单向值传递。(  ) 三、           程序填空(每小题2分,共12分)1、以下程序可求出所有水仙花数(指3位正整数中各位数字立方和等于该数本身,如153=13+53+33),请填空。main( )   int  x, y ,z, m; printf(“shui xian huan shu :n”); for(m=100;m<1000;m+) x=m/100;  y=   (1)  ;  z=m%10; if(  (2)  ) printf(“%6d”,m ) ;    2、输入一个字符,如果是大写字母,则把其变成小写字母;如果是小写字母,则变成大写字母;其它字符不变。请补充()内缺省的内容。#include <stdio.h>main( )       char   ch;        ch=getchar( );    if (_(3)_)       ch=ch+32;    putchar(ch);          else if(_(4)_)     ch=ch-32;     putchar(ch); else                    putchar(ch);3、以下程序使用递归法求n!, 请填空。main( )  int  n, y;  printf(“input  a  integer  number”); scanf(“%d”,&n); y=(5);                                printf(“%d!  = %6d”, n, y );  int  fac(int  n)   int  f; if(n<0) printf(“n<0” data error); f=-1;    else if(n=0|n=1)           f=1;     else   f=(6)  ;                          return( f );   四、           读程序写出结果(本大题共5道小题,每小题4分,共20分)1、写出下面程序的执行结果                 #include <stdio.h>   main( )   int  a,b,x;x=(a=3,b=a-);printf(“x=%d,a=%d,b=%d”,x,a,b);  2、以下程序的运行结果是              #include <stdio.h> main( )    int  a = 2, b = 3, c ;c = a ;if ( a>b ) c = 1 ;else if ( a = b ) c = 0 ;  else  c = -1 ; printf ( “%dn”, c ) ;  3、以下程序的运行结果是              #include <stdio.h>main() int i,j,k;      for(i=1;i<4;i+)    for(j=1;j<4-i;j+)             printf(" ");          for(k=1;k<=2*i-1;k+)             printf("%c",'A'+i-1);            printf("n");  4、以下程序的运行结果是             main(  ) int a55,i, j ;          for( i=0;i<5;i+)          ai0 =1; aii =1;      for( i=2; i<5; i+  )           for(j=1; j<i ; j+ )             aij =ai-1j-1 + ai-1j;    for(i=0; i<5; i+)  for( j=1; j<=i; j+)      printf(“%5d”,aij); printf(“n”);  5、以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为           #include<stdio.h>#include<string.h>int func(char str) int num =0; while(*(str+num)!='0') num+; return(num); main( ) char str10,*p=str; gets(p); printf("%dn",func(p);  五、           编程题(本大题28分,第一题8分,第二题9分,第三题11分)1、请编程实现下列分段函数的值:          (1-x) 1/ 2         (x0)     y=      1-x            (x1)          (1-x)2         (x>1) 2、百钱百鸡问题:用100元钱买100只鸡,公鸡每只5元,母鸡每只3元,小鸡每3只1元,要求每种鸡至少买1只,试编程求各种鸡各买多少只。3、输入20位学生的成绩,分别用函数实现:(1)将20位学生的成绩按从高到低进行排名。(2)求所有成绩的平均分,并输出所有成绩中比平均分低的分数。参考答案:一、 单项选择题1、D2、C3、B4、B5、A6、C7、A8、D9、C10、D11、A12、A13、A14、B15、B二、判断题1、T2、F3、F4、F5、T6、F7、T8、T9、T10、F三、程序填空题1、(1) m/10%10(2) m=x*x*x+y*y*y+z*z*z2、(3) ch>A&&ch<Z(4)ch>a&&ch<z3、(5) fac(n)(6)n*fac(n-1)四、读程序写结果1、 x=3,a=2,b=32、 -13、 A BBB CCCCC4、12133146415、5五、编程题1、#include<stdio.h>#include<math.h>void main()int x;double y;printf("Please input x value:");scanf("%d",&x);if(x<=0)y=sqrt(1-x);else if(x<=1)y=1-x;elsey=(1-x)*(1-x);printf("y=%fn",y);2、#include<stdio.h>void main()int x,y,z;/*分别代表所买的公鸡数,母鸡数,小鸡数*/for(x=1;x<99;x+)for(y=1;y<99;y+) for(z=1;z<99;z+) if(x*5+y*3+z/3=100)&&(z%3=0)&&(x+y+z=100)printf("公鸡数为%d只,母鸡数为%d只,小鸡数为%d只n",x,y,z);3、#include<stdio.h>void sort(int b20)int i,j;int temp;for(i=0;i<20;i+)for(j=0;j<20;j+)if(bi<bj)temp=bi;bi=bj;bj=temp;for(i=0;i<20;i+)printf("%d ",bi);printf("n"); double ave(int c20)double sum=0.0;int i;for(i=0;i<20;i+)sum=sum+ci;sum=sum/20;return sum;void main()int i;int a20;double pingjun;printf("Please input 20 students score!n");for(i=0;i<20;i+)printf("Please input %d student score:",i+1);scanf("%d",&ai);for(i=0;i<20;i+)printf("%d ",ai);printf("n"); sort(a);pingjun=ave(a);printf("平均分为:%fn",pingjun);printf("比平均分低的有:n");for(i=0;i<20;i+)if(ai<pingjun)printf("%d ",ai);printf("n"); C语言程序设计模拟试卷二 一、填空题。(每空2分,共30分) 1.设有变量说明语句     int x=1,y=2;则执行下述printf语句的输出结果是_   _。     printf("%fn",1.0+x/y);2.执行下述程序     #include <stdio.h>     main()            int x,y;       scanf("%2d%*2s%1d",&x,&y);       printf("%dn",x+y);      若从键盘输入        12345671 则程序的输出结果是_。3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入负数或0为结束标志),统计并输出最高成绩和最低成绩。请填空。    #include <stdio.h>    main()          float x,amax,amin;      scanf("%f",&x);      amax=x;      amin=x;      while ( )              if (x>amax)           amax=x;        else if (x<amin)           amin=x;        scanf("%f',&x);              printf("namax=%fnamin=%fn",amax,amin);      4.设n是整型变量,且已具有某正整数值。根据下述数学式求s的值并输出。可编写如下之程序段实现之。请填空。   int k;   double s,d;   s=0.0;   d=1.0;   K=0;   do        s=s+d;     _            _;     d=1.0/(k*(k+1);    while (k<=n);    printf("%fn",s);5.执行下述程序的输出结果是_      _。   #inclued <stdio.h>   main()        int a6,i;     for (i=0;i<6;i+)            ai=9*(i-2+4*(i>3)%5;       printf("%3d",ai);            printf("n");    6.执行下述程序时的输出结果是_  _。  #include <stdio.h>  main()       int a=2,4,6,*ptr=&a0,x=8,y,z;     for (y=0;y<3;y+)       z=(*(ptr+y)<x)?*(ptr+y):x;     printf("%dn",z);   7.执行下述程序的输出结果是_   _。  #include <stdio.h>  main()      int a2=10,20,30,40,50,60,(*p)2;    p=a;    printf("%dn",*(*(p+2)+1);   8.执行以下程序的输出结果是_   _。  #include <stdio.h>  main()      int s,i,sum();    for (i=1;i<=10;i+)      s=sum(i);    printf("s=%dn",s);      sum(int k)        int x=0;     return (x+=k);    9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整数相加之和值,请填空。   void add(int x,int y,_      _)         *z=x+y;    10.函数func的功能是将整型变量x的值转换成二进制数,并将该二进制数的每一位存入由整型指针b所指向的一维数组a,最低位存放于a0中,次低位存放于a1中,依此类推。请填空。   void func(int x,int *b)        int r;     do            r=x%2;       _=r;       x/=2;       while (x);     11.以下程序中函数invert实现将数组内所有数组元素的值逆置。比如,执行本程序将输出   10  9  8  7  6  5  4  3  2  1请填空。     #include <stdio.h>     main()            int a10=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”,ai);       printf("n");            invert(int *s,int num)              int *t,k;        t=s+num;        while (_    _)                  k=*s;          *s=*t;          *t=k;          s+;          t-;                 12.若有以下定义和说明,则结构体变量w在内存中所占的字节数是_union aa          float x;      float y;      char c6;     ; struct st            union aa v;       float w5;       double ave;   w;   13.执行下述程序的输出结果是_    _。   #include <stdio.h>   struct str        float x;     char *y;    *m;    struct str group3=                           95.0,"Li",                           82.5,"Wang",                           73.5,"Sun"                       ;    main()          m=group;      printf("%.lf,%sn",m->x,m->y);     14.下面的程序用来统计某文件文件中字符的个数。请填空。   #include <stdio.h>   #include <stdlib.h>   main()         FILE *fp;      long num=0;      if (fp=fopen("fnam.dat","r")=NULL)              printf("Can't open this file!n");        exit(0);              while (_               _)                fgetc(fp);         num+;                printf("num=%dn",num);        fclose(fp);     15.执行下述程序后,输出结果为_ _。    #include <stdio.h>    #define FUN1(a,b) a+b    #define FUN2(a,b) a-b    #define CAL(a,b) a*b+a+3    main()          printf("%dn",CAL(FUN1(3,5),FUN2(4,5);      二、单项选择题。(每题1分,共20分)1以下不是c语言规定保留字的是(    )。(A)float     (B)integer     (C)signed     (D) unsigned2.设int型变量x有初始值3,则表达式x+*5/10的值是(     )(A)0       (B)1         (C)2        (D)33.下述程序执行后的输出结果是(   )  include <stdio.h>  main()      int x='f'    printf("%cn",'a'+(x-'a'+1);  (A)g       (B)h       (C)i     (D)j4.设有程序#include <stdio.h>main()   int i,j;   for (i=0,j=1;i<=j+1;i+=2,j-)      printf("%dn",i); 在运行上述程序时,for语句中循环体的执行次数是(    )(A)3     (B)2     (C)1     (D)05.在下述选项时,没有构成死循环的程序是(    ) (A)int i=100    while (1)          i=i%100+1;      if (i>100)          break;     (B)for (;);(C)int k=1000;    do           +k;     while (k>=10000);(D) int s=36;   while (s);-s;6.假定a和b为int型变量,则执行下述语句组后,b的值为(      )。  a=1;  b=10;  do      b-=a;    a+;  while (b-<0);  (A)9    (B)-2    (C)-1    (D)87.设有变量说明语句   int  a=1,b=0;则执行以下程序段的输出结果为(      )。    switch  (a)            case 1:           switch  (b)                           case 0:printf("*0*");break;               case 1:printf("*1*");break;                     case 2:printf("*2*");break;       printf("n");  (A)*0*    (B)*0*2*    (C)*0*1*2*   (D)有语法错误8.以下合法的数组说明是(     )。  (A)char a7="string"       (B)int a5=0,1,2,3,4,5;  (C)char a="string"         (D)INT a=0,12,3,4,5;9.下述程序代码中有语法错误的行是(     )。  int i,ia10,ib10;      /*第1行*/  for (i=0;i<=9;i+)        /*第2行*/  iai=0;                  /*第3行*/  ib=ia;                    /第4行*/  (A)第1行    (B)第2行   (C)第3行   (D)第4行10.若已定义  int a9,*p=a;并在以后的语句中未改变p的值,则不能表示a1地址的表达式是(    )。(A)p+1   (B)a+1    (C)a+    (D)+p11.若有下述说明和语句   int *pp,*p,a=10,b=20;   pp=&p;   p=&a;   p=&b;   printf("%d,%dn",*p,*pp);则输出结果是(     )。   (A)10,10    (B)10,20    (C)20,10   (D)20,2012.执行下述程序后的输出结果是(    )。   #include <stdio.h>   func(int a)        int b=0;     static int c=3;     a=c+,b+;     return (a);        main()          int a=2,i,k;      for (i=0;i<2;i+)        k=func(a+);      printf("%dn",k);       (A)3   (B)0   (C)5   (D)413.执行下述程序的输出结果是(    )。   #include <stdio.h>   main()         int aa33=2,4,6;      int i,*p=&aa00;      for (i=0;i<2;i+)              if (i=0)         aaii+1=*p+1;        else         +p;        printf("%d",*p);             printf("n");        (A)23   (B)26   (C)33  (D)3614.读下面的程序,正确的输出结果是(     )。 #include <stdio.h> static int a=50; void f1(int a) printf("%d,",a+=10); void f2(void) printf("%d,",a+=3); void main() int a=10; f1(a); f2(); printf("%dn",a);  (A)60,63,60     (B)20,23,23    (C)20,13,10      (D)20,53,1015.执行下述程序的输出结果是(     )。  #include <stdio.h>  int power(int x,int y);  main()      float a=2.6,b=3.4;    int p;    p=power(int)a,(int)b);    printf("%dn",p);      int power(int x,int y)        int i,p=1;     for (i=y;i>0;i-)      p=p*x;     return (p);     (A)8          (B)9         (C)27         (D)8116.已知函数scopy的定义如下   void scopy(char *s,char *t)         while (*s+=*t+);        则该函数的功能是(    )。 (A)串复制     (B)求串长度     (C)串比较     (D)串反向17.执行下述程序的输出是(    )。  #include <stdio.h> void main() struct complex int re; int im; ; struct complex cp3=2,5,4,7; cp2.re=cp0.re+cp1.re; cp2.im=cp0.im+cp1.im; printf("%d %dn",cp2.re,cp2.im); (A)7 11      (B)6 12       (C)9 9       (D)12 618.执行下述程序的输出结果是(    )。   #include <stdio.h>   main()         union              int k;        char i2;        *s,a;        s=&a;        s->i0=0x39;        s->i1=0x38;        printf("%xn",s->k);       (A)cccc3839     (B)3938     (C)380039     (D)39003819.有以下程序,则结果为 。struct abc int a, b, c; ;main()   struct abc s2=1,2,3,4,5,6; int t;  t=s0.a+s1.b;printf(“%d n”,t);A) 5 B) 6 C) 7 D) 820.以下程序for语句循环体中printf语句执行次数是(     )。  #include <stdio.h>  #define N 2  #define M N+1  #define NUM (M+1)*M/2  main()        int i;      for (i=1;i<=NUM;i+)       printf("%dn",i);     (A)5        (B)6          (C)8        (D)9三、程序分析题(每题5分,共30分)1.阅读程序,写出执行该程序的输出结果。  #include <stdio.h>  main()     

    注意事项

    本文(C语言程序设计题库模拟试题10套期末考试卷带答案.doc)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开