-->
当前位置:首页 > 题库 > 正文内容

湖州师范学院2019—2020学年第二学期 《C程序设计》期末考试试卷(A卷)

Luz4年前 (2021-03-04)题库3761

湖州师范学院2019—2020学年第二学期

《C程序设计》期末考试试卷(A卷)

考试时间   120  分钟

说明:(1)将所有试题的答案写在答卷上;

     2)交卷时将答卷纸和试题一同上交。

 

学院          班级        学号    姓名           成绩        

 

题号

总分

分数






 

得分


 

一、单选题(每题1分,共15分)

 

 

1C语言规定在一个C程序中,main()函数的位置(    )。

A.必须在最开始                                  

B.必须在系统调用的库函数的后面

C.程序中的任意位置                            D.必须在最后

2、以下不合法的用户标识符是(    )。

A.2020zhang                                  B._ C

C.yy701                                         D.IF

3要为float类型变量xyz赋同一初值3.14,下列说明语句哪一个是正确的    )。

A.float x,y,z=3.14;                                 B.float x,y,z=3*3.14;

C.float x=3.14,y=3.14,z=3.14;                D.float x=y=z=3.14;

4有变量定义:char c=’a’;则以下不能将变量c转换成大写字母的C语言表达式是    )。

A.c=’A’                                                  B.c=c-32                  

C. c=toupper(c);                                   D. c=c+32

5、根据下面的程序及数据的输入,则程序输出结果是(    )。

#include <stdio.h>

main()

{ char ch1,ch2,ch3;

scanf("%c%c%c",&ch1,&ch2,&ch3);

printf("%c%c%c\n",ch1,ch2,ch3);

}

数据输入形式:A空格B空格C

A.A空格B               B.ABC                  C.AB空格                   D.空格AB

6、以下程序的运行结果是(   )。

#include<stdio.h>

main ( )

{  int a=0,b=0,c=0;

   if(++a>0 || ++b>0)   ++c;

   printf("%d,%d,%d",a,b,c);

}

A.0,0,0                     B.1,1,1                  C.1,0,1                         D.0,1,1

7、以下程序运行的情况是(   )。

#include <stdio.h>

main()

{ int i=1,sum=0;

  while(i<10)sum=sum+1;i++;

  printf("i=%d,sum=%d",i,sum);

}

A.i=10,sum=9           B.i=9,sum=9          C.i=2,sum=1                 D.死循环

8、以下能正确定义一维数组的是(  

A.int  a[5]={0,1,2,3,4,5};                  B.char  a[]={'0', '1', '2’, '3', '4', '5'};

C.char  a={'A','B','C'};                      D.int  a[5]="01234";

9有定义:int a=[][3]={1,2,3,4,5,6,7,8,9};,则a[1][1]的值是   。。

A.1                          B.5                       C.7                              D.9

10、下列不正确的定义是(   )。

A.int *p=&i,i;           B.int *p,i;             C.int i,*p=&i;               D.int t,*p;

11、下列程序段的输出结果是(   )。

int t=0,a[3]={10,5,1};

int*p;

for(p=a;p<a+3;p++)

t=t +*p;

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

A.15                         B.16                     C.10                            D.不确定

12、在C语言程序中,有关函数的定义正确的是(   )。

A.函数的定义可以嵌套,但函数的调用不可以嵌套

B.函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义和函数的调用均不可以嵌套

D.函数的定义和函数的调用均可以嵌套

13、以下程序的输出结果是(   )。 

#include <stdio.h>

void p(int *x, int *y)

{  ++ x;

   --*y;

}

main()

{  int x=0, y=3;

   p(&x, &y);

   printf("(%d, %d)", x, y);

}

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

14、以下程序段的输出结果是(   )。

    #define  M(x, y)  x / y

    printf("%d", M(10,2+3));

A.2                          B.2.0                    C.5                              D.8

15如有以下程序:

      #include <stdio.h>

      main()

      {int c;

      c=10^5;

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

      }

则程序的输出结果是(   )

A.15                         B.105                           C.10000                       D.5


 

得分


 

二、程序填空题每空230

 

1、从键盘上输入两个电阻的值,求它们并联和串联的电阻值(要求电阻值为实数),输出结果保留两位小数。并联电阻计算公式:                                               image.png,串联电阻计算公式:RS=R1+R2。请将程序补充完整。

#include<stdio.h>

main()

{    1   ;

  printf("请输入电阻r1r2:");

  scanf("%f%f",   2   );         

  rs= (r1+r2);                   

     3   ;                  //计算并联电阻

  printf("并联电阻RP=%.2f 串联电阻RS=%.2f\n",rp,rs);

}

 

2、以下程序的功能是:从键盘上输入一个日期,计算这个日期是当年的第几天?例如,输入2020/2/2,输出33。请将程序补充完整。(能被4整除但不能被100整除;或者能被400整除的年份是闰年。另:本程序不考虑输入不正确的月份和日期)

#include <stdio.h>

main()

{

    int y,m,d,days,i;

    scanf("%d/%d/%d",&y,&m,&d);

       4   ;

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

    switch(i)

    {

        case 1:days=days+31;break;

        case 2:days=days+28;break;

        case 3:days=days+31;break;

        case 4:days=days+30;break;

        case 5:days=days+31;break;

        case 6:days=days+30;break;

        case 7:days=days+31;break;

        case 8:days=days+31;break;

        case 9:days=days+30;break;

        case 10:days=days+31;break;

        case 11:days=days+30;break;

     }

  days=days+d;

  if(   5   &&m>2)

       6   ;

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

}

3、以下程序功能是在一个已排好序的整型数组,输入一个整数要求按原来排序的规律(升序)将它插入数组中。例如原数组中的元素为:2,7,18,30,123,输入整数200,则数组中的元素为:2,7,18,30,123,200请将程序补充完整。

#include <stdio.h>

main()

{

    int a[10]={2,7,18,30,123},n=5,i,x;

    scanf("%d",&x);

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

      if(a[i]>x)

           7   ;

      else

           8   ;

      a[i+1]=x;

     for(i=0;   9   ;i++)

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

}

4、以下程序的功能是:利用二维数组生成如下形状的杨辉三角。(杨辉三角的第0列和对角线元素全为1,其余元素由上一行对应两个元素之和。)请将程序补充完整。

  1

  1    1

  1    2    1

  1    3    3    1

  1    4    6    4    1

  1    5   10   10    5    1

  1    6   15   20   15    6    1

  1    7   21   35   35   21    7    1

  1    8   28   56   70   56   28    8    1

 

  1    9   36   84  126  126   84   36    9    1

#include <stdio.h>

main()

{

    int a[10][10],i,j,row;

    scanf("%d",&row);

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

         10   ;//0列和对角线元素置1

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

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

            11   ;//计算除第0列和对角线以外的元素值

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

       {

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

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

          printf("\n");

       }

}

5、以下程序的功能是:函数fx的功能是实现其参数传递的字符串反序存放。例如:原字符串为ABCDEF,调用函数后字符串为FEDCBA。请将程序补充完整。

#include <stdio.h>

    12  

void fx(    13   )

{

    int i,j;

    char t;

    j=strlen(a)-1;

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

      {

        t=a[i];

        a[i]=a[j];

        a[j]=t;

      }

   

}

main()

{

    char str[100];

    gets(str);

        14   ;

    puts(str);

}

6、以下程序的功能是:生成Fibonacci数列,将数列的各项存放在数组a中,其中函数fun的功能是生成Fibonacci数列,main函数中将数列各项输出(Fibonacci数列是指第121,从第3项开始为前2项之和)。请将程序补充完整。

#include <stdio.h>

void fun(int *a,int n)

{

    int i;

       15   ;

    for(i=2;i<n;i++,a++)

       *a=*(a-1)+*(a-2);

}

main()

{

    int i,n,a[50]={1,1};

    scanf("%d",&n);

    fun(a,n);

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

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

}

得分


 

三、程序阅读题(每题3分,共15分)

 

1、程序1

#include <stdio.h>

main()

{

int a,b;

char c=’A’;

    a=13;

    b=7;

    printf("%d %d",b%a,b/a);

    printf("%d %d",b>a,b&&a);

    printf("%c %c\n",c,c+32);

}

程序的输出结果是                                      

2、程序2

#include <stdio.h>

main()

{

    int n,y;

    scanf("%d",&n);

    if(n%6==0)

      y=1;

     else

      y=0;

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

}

程序运行时,输入17,则输出的结果是                              

3、程序3

#include <stdio.h>

main()

{

    int a,b,t=0;

    scanf("%d",&a);

    b=a;

    while(a)

    {

        t=t*10+a%10;

        a=a/10;

    }

    if(t==b)

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

    else

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

}

程序运行时,输入121,程序的输出结果是                           

4、程序4

#include <stdio.h>

main()

{

    int a[10]={1,2,2,3,3,3,4,5,6,6},i,j,n=10;

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

      if(a[i]==a[i-1])

        {

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

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

           n--;

        }

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

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

}

程序运行时,程序的输出结果是                             

5、程序5

#include <stdio.h>

int f(int n)

{

    if(n<=1)

      return 1;

    else

      return f(n-1)+n;

}

main()

{

    int n;

    n=f(4);

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

}

则输出的结果是                                          

得分


 

二、 程序设计题(每小题10分,共40分)

 

1、求下列分段函数的值。(x是由键盘输入的实数)

image.png


运行示例2

输入:0

输出:0.000000

 

 


 

 

 

 


2、输入一个正整数n1n≤10),求以下表达式的值并输出计算结果。

image.png

 

运行示例:

输入:10

输出:1.718282

 

3、输入一个正整数n0<n≤100),然后输入n 个整数并存入数组,再输入一个整数x,在数组查找x,若x在数组中输出在数组中的位置(下标),若有多个输出最大的下标值;若不在数组中则输出-1

运行示例:

输入n5

      1 2 5 4 5

输入x5

输出:4

 

4两个素数之差为2,则称这两个素数为双胞胎数。输出[200300]之内所有双胞胎数。要求:(1)定义函数prime(n),功能判断n是否为素数,若是返回1,否则返回0;(2)在main函数输出双胞胎数,每对占一行。(所谓素数是指只能被1和自身整除且大于1的自然数。)

运行示例:

输出:

227 229

         239 241

         269 271

         281 283


湖州师范学院2019—2020学年第二学期

《C程序设计》期末考试试卷(A卷)


考试时间   120  分钟

说明:(1)将所有试题的答案写在答卷上;

     2)交卷时将答卷纸和试题一同上交。

 

 

学院          班级        学号    姓名           成绩        

 

题号

总分

分数






 

得分


 

一、单选题(每题1分,共15分)

 

 

1

2

3

4

5

6

7

8

9

10











11

12

13

14

15



















 

得分


 

二、程序填空题(每空2分,共30分)

 

 

1(1)                   (2)                    

 

(3)                                           

 

2(4)                   (5)                   

 

(6)                                           

 

3(7)                     (8)                  

 

(9)                                           

 

4(10)                 (11)                   

 

5(12)                   (13)                   

 

(14)                                           

 

6 (15)                                        

得分


 

三、程序阅读题(每题3分,共15分)

 

 

1、程序的输出结果是                                             

 

2、程序运行时,输入17,则输出的结果是                              

 

3、程序运行时,输入121,程序的输出结果是                          

 

4、程序运行时,程序的输出结果是                                  

 

5、程序的输出结果是                                             

 

得分


 

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

 

1                                        

 

 

 

 

 

 

 

 

 

 

 

2










3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 





发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。