分享
分销 收藏 举报 申诉 / 106
播放页_导航下方通栏广告

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

  • 上传人:快乐****生活
  • 文档编号:3158363
  • 上传时间:2024-06-21
  • 格式:DOC
  • 页数:106
  • 大小:568.35KB
  • 下载积分:18 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言程序设计 题库 模拟 试题 10 期末 考试卷 答案
    资源描述:
    《C语言程序设计》模拟试卷一 一、           单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束   B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句  D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。   A) MAIN        B) _HJ        C) 2ong         D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。   A) \r            B) \n          C) \b           D) \t 4、如有如下定义:int  a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。   A) 1,  1       B) 1,  2     C) 2,  2     D) 2,   1 5、已知ch为字符型变量,下面表达式中正确的是()。   A) ch=’\xff ’     B) ch=’\ff ’    C) ch=’ ff ’     D) ch=” ff ” 6、以下能正确定义一维数组的是()。   A) int  a[5]={0,1,2,3,4,5};   B) int  a[5]=”012345”;   C) char  a[ ]=”012345”;     D) char  a[5]={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) 741 9、执行下列程序段后输出的结果是()。    x = 9;    while (x > 7)    {  printf(“*”); x- -; } A) ****    B) ***     C) **     D) * 10、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句  printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是() A)  9    B) 8     C) 5    D) 3 11、若用数组名作为函数调用的实参,则传递给形参的是() A) 数组的首地址           B) 数组第一个元素的值 C) 数组中全部元素的值     D) 数组元素的个数 12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为(  ) A)void     B)double   C)int    D)char 13、下面不能正确进行字符串赋值操作的语句是( ) A) char s[5]={"ABCD"};      B) char s[5];  s="ABCD"; C) char *s;s="ABCDEF";    D) char *s="ABCD"; 14、设有说明int s[5]={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(“%d\n”, 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 ( “%d\n”, 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 a[5][5],i, j ;          for( i=0;i<5;i++)          { a[i][0] =1; a[i][i] =1; }     for( i=2; i<5; i++  )           for(j=1; j<i ; j++ )             a[i][j] =a[i-1][j-1] + a[i-1][j];    for(i=0; i<5; i++)   { for( j=1; j<=i; j++)      printf(“%5d”,a[i][j]); 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 str[10],*p=str; gets(p); printf("%d\n",func(p)); }  五、           编程题(本大题28分,第一题8分,第二题9分,第三题11分) 1、请编程实现下列分段函数的值:           (1-x) 1/ 2         (x≤0)     y=      1-x            (x≤1)           (1-x)2         (x>1) 2、百钱百鸡问题:用100元钱买100只鸡,公鸡每只5元,母鸡每只3元,小鸡每3只1元,要求每种鸡至少买1只,试编程求各种鸡各买多少只。 3、输入20位学生的成绩,分别用函数实现: (1)将20位学生的成绩按从高到低进行排名。 (2)求所有成绩的平均分,并输出所有成绩中比平均分低的分数。 参考答案: 一、 单项选择题 1、D 2、C 3、B 4、B 5、A 6、C 7、A 8、D 9、C 10、D 11、A 12、A 13、A 14、B 15、B 二、判断题 1、T 2、F 3、F 4、F 5、T 6、F 7、T 8、T 9、T 10、F 三、程序填空题 1、(1) m/10%10 (2) m==x*x*x+y*y*y+z*z*z 2、(3) ch>’A’&&ch<’Z’ (4)ch>’a’&&ch<’z’ 3、(5) fac(n) (6)n*fac(n-1) 四、读程序写结果 1、 x=3,a=2,b=3 2、 -1 3、 A BBB CCCCC 4、 1 2 1 3 3 1 4 6 4 1 5、 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; else y=(1-x)*(1-x); printf("y=%f\n",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 b[20]) { int i,j; int temp; for(i=0;i<20;i++) for(j=0;j<20;j++) { if(b[i]<b[j]) {temp=b[i];b[i]=b[j];b[j]=temp;} } for(i=0;i<20;i++) printf("%d ",b[i]); printf("\n"); } double ave(int c[20]) { double sum=0.0; int i; for(i=0;i<20;i++) sum=sum+c[i]; sum=sum/20; return sum; } void main() { int i; int a[20]; 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",&a[i]); } for(i=0;i<20;i++) printf("%d ",a[i]); printf("\n"); sort(a); pingjun=ave(a); printf("平均分为:%f\n",pingjun); printf("比平均分低的有:\n"); for(i=0;i<20;i++) if(a[i]<pingjun) printf("%d ",a[i]); printf("\n"); } 《C语言程序设计》模拟试卷二   一、填空题。(每空2分,共30分) 1.设有变量说明语句      int x=1,y=2; 则执行下述printf语句的输出结果是______   _____。      printf("%f\n",1.0+x/y); 2.执行下述程序      #include <stdio.h>      main()      {        int x,y;        scanf("%2d%*2s%1d",&x,&y);        printf("%d\n",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=%f\namin=%f\n",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("%f\n",s); 5.执行下述程序的输出结果是____      ____。    #inclued <stdio.h>    main()    {      int a[6],i;      for (i=0;i<6;i++)      {        a[i]=9*(i-2+4*(i>3))%5;        printf("%3d",a[i]);       }       printf("\n");     } 6.执行下述程序时的输出结果是_________  ________。   #include <stdio.h>   main()   {      int a[]={2,4,6,},*ptr=&a[0],x=8,y,z;      for (y=0;y<3;y++)        z=(*(ptr+y)<x)?*(ptr+y):x;      printf("%d\n",z);    } 7.执行下述程序的输出结果是_____   _______。   #include <stdio.h>   main()   {     int a[][2]={10,20,30,40,50,60},(*p)[2];     p=a;     printf("%d\n",*(*(p+2)+1));    } 8.执行以下程序的输出结果是___   ______。   #include <stdio.h>   main()   {     int s,i,sum();     for (i=1;i<=10;i++)       s=sum(i);     printf("s=%d\n",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,最低位存放于a[0]中,次低位存放于a[1]中,依此类推。请填空。    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 a[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,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 c[6];      };  struct st      {        union aa v;        float w[5];        double ave;    } w;   13.执行下述程序的输出结果是______    _______。    #include <stdio.h>    struct str    {      float x;      char *y;     } *m;     struct str group[3]={                            95.0,"Li",                            82.5,"Wang",                            73.5,"Sun"                        };     main()     {       m=group;       printf("%.lf,%s\n",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=%d\n",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("%d\n",CAL(FUN1(3,5),FUN2(4,5)));      }   二、单项选择题。(每题1分,共20分) 1.以下不是c语言规定保留字的是(    )。 (A)float     (B)integer     (C)signed     (D) unsigned 2.设int型变量x有初始值3,则表达式x++*5/10的值是(     ) (A)0       (B)1         (C)2        (D)3 3.下述程序执行后的输出结果是(    )   #include <stdio.h>   main()   {     int x='f';     printf("%c\n",'a'+(x-'a'+1));   } (A)g       (B)h       (C)i     (D)j 4.设有程序 #include <stdio.h> main() {    int i,j;    for (i=0,j=1;i<=j+1;i+=2,j--)       printf("%d\n",i);  } 在运行上述程序时,for语句中循环体的执行次数是(    ) (A)3     (B)2     (C)1     (D)0 5.在下述选项时,没有构成死循环的程序是(    )  (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)8 7.设有变量说明语句    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 a[7]="string";       (B)int a[5]={0,1,2,3,4,5};   (C)char a="string";         (D)INT a[]={0,12,3,4,5}; 9.下述程序代码中有语法错误的行是(     )。   int i,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.若已定义   int a[9],*p=a; 并在以后的语句中未改变p的值,则不能表示a[1]地址的表达式是(    )。 (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); 则输出结果是(     )。    (A)10,10    (B)10,20    (C)20,10   (D)20,20 12.执行下述程序后的输出结果是(    )。    #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("%d\n",k);     }    (A)3   (B)0   (C)5   (D)4 13.执行下述程序的输出结果是(    )。    #include <stdio.h>    main()    {       int aa[3][3]={{2},{4},{6}};       int i,*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.读下面的程序,正确的输出结果是(     )。 #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("%d\n",a); }  (A)60,63,60     (B)20,23,23    (C)20,13,10      (D)20,53,10 15.执行下述程序的输出结果是(     )。   #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("%d\n",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)81 16.已知函数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 cp[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)7 11      (B)6 12       (C)9 9       (D)12 6 18.执行下述程序的输出结果是(    )。    #include <stdio.h>    main()    {       union       {         int k;         char i[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.有以下程序,则结果为 。 struct abc { int a, b, c; }; main() {   struct abc s[2]={{1,2,3},{4,5,6}}; int t;    t=s[0].a+s[1].b;   printf(“%d \n”,t); } A) 5    B) 6   C) 7   D) 8 20.以下程序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("%d\n",i);    }   (A)5        (B)6          (C)8        (D)9 三、程序分析题(每题5分,共30分) 1.阅读程序,写出执行该程序的输出结果。   #include <stdio.h>   main()   {    
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:C语言程序设计题库模拟试题10套期末考试卷带答案.doc
    链接地址:https://www.zixin.com.cn/doc/3158363.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork