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

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

Luz3年前 (2022-03-20)题库1787

湖州师范学院20202021学年第 2 学期

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

                                             试时间 120 分钟

学院            班级          学号             姓名              

题号

总分

分数







 

得分

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


1. 以下叙述中正确的是(    )。

A.C语言程序将从源程序中第一个函数开始执行

B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行

C.C语言规定必须用main()作为主函数名,程序将从此开始执行,在此结束

D.main可作为用户标识符,用以命名任意一个函数作为主函数

2. putchar()函数可以向终端输出一个(    )。

A.整型变量表达式值     B.实型变量值

C.字符串       D.字符或字符型变量值

3. 若变量已正确定义,有以下程序段,运行输出结果是(   )。

int a=3,b=5,c=7;

if(a>b) a=b; c=a;

if(c!=a) c=b;

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

A.程序段有语法错  B.353 C.355   D.357

4. 以下程序段的输出结果是(   )。

int a = 10,b = 0 ;

if ( a > 15 )

  b = 1;

else if ( a < 2 )

  b = 2;

else

  b = 3;

printf("%d",b);

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

5. 下面有关for循环的正确描述是(   )。

A.for循环只能用于循环次数已经确定的情况

B.for循环是先执行循环体语句,后判定表达式

C.for循环中,不能用break语句跳出循环体

D.for循环体语句中,可以包含多条语句,但要用花括号括起来

6. 以下叙述中正确的是

A.在使用scanf函数输入整型或实数时,输入数据之间只能用空格来分隔

B.scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上

C.使用printf函数无法输出百分号%

D.printf函数中,各个输出项只能是变量

7. 以下关于C语言数组的描述正确的是(   )。

A.数组的大小是固定的,但可以有不同数据类型的数组元素

B.数组的大小是可变的,但所有数组元素的数据类型必须相同

C.数组的大小是固定的,所有数组元素的数据类型必须相同

D.数组的大小是可变的,可以有不同数据类型的数组元素

8. 函数调用strcat(strcpy(str1,str2),str3);的功能是(   )。

A.将字符串str1复制到字符串str2中后再连接到字符串str3之后。

B.将字符串str1连接到字符串str2中后再复制到字符串str3之后。

C.将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后。

D.将字符串str2连接到字符串str1之后再将字符串str1复制到字符串str3中。

9. 以下能正确定义一维数组的是(   )。

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";

10. 已知一维数组:int a[10],要使数组中最后三个元素值为789,其余元素为0。下面实现方法中,正确的是(   )。

A.int a[10]={7,8,9};    

B.int a[]={7,8,9};

C.int a[10]={0};a[7]=7;a[8]=8;a[9]=9;

D.int a[10]={0};a[8]=7;a[9]=8;a[10]=9;

11. 下面的程序段所表示的数学函数关系是(   )。

y=-1;

if(x!=0)  if(x>0)  y=1;  else y=0;

image.png

12. 下列语句定义p为指向float类型变量d的指针,其中正确的是(   )。

A.float d, *p=d;  B.float d, *p=&d;   C.float*p=&d, d;  D.float d, p=d;

13. C语言中,要求运算对象必须是整型数据的运算符是(    )。

A.%            B./            C.*              D.!

14. printf("%c,%d",'b', 'b');的输出结果是(    )。

A.b,98       B.b  98       C.98,b         D.98  b

15. 下列格式符中,(    )可以用于以16进制形式输出整数。

A.%16d   B.%8x   C.%d16    D.%d

 

得分

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


1. 以下程序功能是求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6

#include <stdio.h>

#include <math.h>

main()

{

   int n,s=0;

   scanf("%d",&n);

                  

   while(n!=0)                               //n!=0也可以写成nn>=1

{

                

     n=n/10;

 }

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

}

2. 以下程序的功能是找出100~999之间所有的Armstrong数(也称水仙花数)。所谓Armstrong数是指这个3位数各位上数字的立方和等于自身。例如:371=3*3*3+7*7*7+1*1*1,那么371就是Armstrong数。

#include <stdio.h>

#include<math.h>

main()

{

int i,b,s,g;

for(i=100;i<=999;i++)

{

b=i/100;                                  //求百位数

                                    //求十位数

g=i%10;                                 //求个位数

if (             )

printf("%d is a Armstrong number!\n",i);

}

3. 下面程序以每行4个数据的形式输出a数组。

#include<stdio.h>

#define  N 20

main()

{ int a[N],i;

 for (i=0;i<N;i++)scanf("%d",             );

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

  { if(            ) printf("\n")

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

  }

  printf ("\n");

 }

4. 用冒泡法对10个整数按升序排序。

#include <stdio.h>

#define N 10

main()

{

    int  i,j,temp;

    int a[N]={5,4,3,2,1,9,8,7,6,0};

    printf("\n排序前的数组:\n");                    

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

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

for (i=0;i<N-1;i++)                                 

    {

        for (j=0;             ; j++)

           if  (            )  {       

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

}

printf("\n排序后的数组: \n");                      

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

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

    printf("\n");

}

5. 以下程序是将两个字符串连接起来(不能使用库函数)。

#include <stdio.h>

main()

{

  char s1[80],s2[40];

  int i=0,j=0;

  printf("\n请输入第一个字符串:");

  scanf("%s",s1);

  printf("\n请输入第二个字符串:");

  scanf("%s",s2);

  while (s1[i] !='\0')

                  ;

   while (s2[j] !='\0')

      s1[i++]=s2[j++];

                   ;

      printf("\n连接后的字符串: %s\n",s1);

}

6. 以下函数f的功能是将1个整数首尾倒置,若程序输入12345,则输出54321;若程序输入-34567,则输出-76543

#include <stdio.h>

#include <math.h>

long f(long n)

{  long m,y=0;  m=fabs(n);

   while(m!=0) {

     y=y*10+m%10;

                ;

   }

   if(n>=0) return y;

   else          ;

}

7. 以下程序中,函数SumColumMin的功能是求出MN列二维数组每列元素中的最小值,并计算它们的和值。要求和值通过形参传回主函数输出。

#include <stdio.h>

#define M 2

#define N 4

void SumColumMin(int a[M][N],int *sum)

{ int i,j,k,s=0;

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

{ k=0;

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

if(a[k][i]>a[j][i])k=j;

s+=         ;

 }

            =s;

}

main()

{ int x[M][N]={3,2,5,1,4,1,8,3},s;

SumColumMin(             );

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

}

 

得分

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


1. 阅读下列程序,写出程序的运行结果是          

#include<stdio.h>

main()

{

int a,b,c,d,x;

a=c=0;

b=1;

d=20;

if(a) d=d-10;

if(!c)x=15;

else x=25;

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

}

2. 阅读下列程序:

#include <stdio.h>

main()

{  int choice,i;

  float price;

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

{

      scanf("%d",&choice);

      if(choice==-1)   break;

      switch(choice){

            case 1:price=2.5;break;

            case 2:price=1.5;break;

            case 3:price=4.5;break;

            case 4:price=3.5;break;

            default:price=0.0;break;

              }

printf("%0.1f\n",price)  ;

}

printf("Thanks\n");

}

程序运行时,输入3  7  -1,程序输出结果为:                        

3. 有以下程序:

    #include  <stdio.h>

    main()

    {char  a,b,c,d;

      scanf("%c%c",&a, &b);

      c=getchar();

      d=getchar();

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

    }

当执行程序时,按下列方式输入数据(从第1列开始,<CR>代表回车,注意:回车也是一个字符)

    12<CR>

34<CR>

程序输出结果为                

4. 阅读下列程序,写出程序的运行结果              

#include<stdio.h>

main( )

{ static int a[ ][3]={9,7,5,3,1,2,4,6,8};

int i,j,s1=1,s2=1;

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

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

{ if(i==j) s1=s1*a[i][j];    

if(i+j==2) s2=s2*a[i][j];   

}

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

}

5. 写出以下程序运行的结果。

#include<stdio.h>

main()

{

   int x=1,y=1,z=1;

   y=y+z;

   x=x+y;

   printf("%d,",x<y?y:x);

   printf("%d,",x<y?x++:y++);

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

}

 

得分

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


1. 编写程序,计算表达式image.png 的值。

 

运行示例:

表达式结果为:4037913

 

 

 

 

 

2. 输出一个字符串(少于80个字符),再输入一个字符,统计并输出该字符在字符串中出现的次数。

 

运行示例:

输入一个字符串:ahenejhehke

输入一个字符:h

字符在字符串中出现的次数是:3

 

 

 

3. 编写程序,输入x,y计算下面的函数值。

image.png

 

运行示例

输入x=4, y=5,输出41.0

输入x=3, y=-2,输出5.0

输入x=-3, y=4,输出1.0

输入x=-1y=-2,输出1.0

 

 

 

4. 输入一个正整数,计算它是一个几位数。

 

运行示例

输入54781

输出:这个数是5位数。


发表评论

访客

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