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

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

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

湖州师范学院2020—2021学年第学期

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

考试时间   120  分钟

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

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

 

学院          班级        学号    姓名           成绩         

 

题号

总分

分数






 

得分


 

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

 

 

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

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

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

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

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

2、以下选项中不属于C语言中的数据类型的是(    )。

A.char                   B.boolean  

C.double               D.long

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

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

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>

void fun (int p)

{

int d=2;

p=d++;   printf(“%d”,p);

}

main ( )

{  

int a=1;

   fun(a);    

printf(“%d\n”, a);

}

A. 32    B. 12   C. 21    D. 22

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、设xy均为int型变量,则执行下面的循环后,y的值为(   )。

for(y=1,x=1;y<=50;y++)

{

if(x>=10)break;

if(x%2==1){x+=5;continue;}

x-=3;

}

A.2    B.4    C.6     D.8

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>

#include <string.h>

main()

{ char a[10]=”abcd”;

printf("%d,%d\n",strlen(a), sizeof(a));

}

A. 7,4          B. 4,10   C. 8,8       D. 10,10


得分


 

二、程序填空题每空230

 

1、 输入一个以回车结束的字符串,分别统计数字字符的个数、英文字母的个数。

#include<stdio.h>

main( )

{

char ch;

int num, aph;

while((    1     )!= '\n')

{

if(ch>='0' &&ch<= '9')

num++;

if(    2     )

aph++;

}

printf("英文字符数为:%d\t数字字符人数为:%d\n",num,aph);

}

2、以下程序的功能是从键盘上输入一批以-1结束的整数,求偶数和。

#include <stdio.h>

main()

{  int x,sum;

sum = 0;

printf("请输入批数据(以-1结束):\n");

scanf("%d",&x);

while(    3     )  

{

if(    4     ) sum = sum + x;

    scanf("%d",&x);

}

printf("偶数之和为%d\n",sum);

}

3、以下程序是将一个字符串str的内容颠倒过来。

#include<stdio.h>

#include <   5    >

main( )

{ int i,j, k ;              

char str[80];

printf("请输入一个字符串(少于80个字符)");

gets(str);

for(i=0,j=strlen(str)-1;    6     ; i++,j--)      

{k=str[i]; str[i]=str[j]; str[j]=k;}

printf("颠倒后的字符串:%s\n",str);

}

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;     7    ; j++)

           if  (    8     )  {       

                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、以下函数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;

           9      ;

   }

   if(n>=0) return y;

   else      10       ; 

}

6、函数f的功能是将字符串中所有的数字字符删除。

#include <stdio.h>

#include <string.h>

#include <   11   >

void f(char *s)

{ int i;

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

    if(isdigit(s[i]))    12   (s+i,s+i+1); // isdigit(s[i])也可写成s[i]>= '0 '&& s[i]<= '9 '

       13    i++;

}

7、把100200之间的不能被3整除的数输出。

#include <stdio.h>
void main()
{int n;
 for (n=100;n<=200;   14   )
  {
     if (n%3==0)
            15   ;
     printf("%d  ″,n);
  }
}

 

得分


 

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

 

1、程序1

#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);

}

输出结果是:                                       

2、程序2

#include<stdio.h>

main( )

{ int k=0;

char c='A';

do{ switch(c++)

      {

      case 'A':k++;break;

      case 'B':k--;

      case 'C':k+=2;break;

      case 'D':k=k%2;break;

      case 'E':k=k*10;break;

      default:k=k/3;

      }

   k++;

   }while(c<'G' );

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

}

程序的运行结果是:                               

3、程序3

#include<stdio.h>

main()

{  int a,b,c;

 int s,w,t;

 s=w=t=0;

 a=-1;b=3;c=3;

 if(c>0) s=a+b;

 if(a<=0)

 {if (b>0)

if(c<=0) w=a-b;}

        else if (c>0) w=a-b;

else t=c;

  printf("%d %d %d",s,w,t);

}

程序的输出结果是                            

4、程序4

#include<stdio.h>

void swap(int *a,int *b)

{

int *t;

t=a; a=b; b=t;

}

main()

{

 int i=3,j=4,*p=&i,*q=&j;

swap(p,q);

printf("%d %d\n",*p,*q);

}

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

5、程序5

#include <stdio.h>

void main ()

{

int f (int);

  int a=2, i;

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

    printf("%d"f(a))

  }

int f (int a)

{

auto  int b=0

    static c=3

    b=b+1

   c=c+1

    return (a+b+c)

 }

则输出的结果是                                           

得分


 

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

 

1、编写程序,输入x的值,按下列公式计算并输出y值。



 image.png

 

 

 

 

2、 根据输入的成绩,将其转换成Excellent”、“Good”、“Pass”、“Fail”输出。转换规则:100-90Excellent”;89-70Good”;69-60Pass”;50-0Fail”。(要求用Switch case语句来实现)

 image.png







3、将数组a的每1行均除以该行上的主对角元素(第1行同除以a[0][0],第2行同除以a[1][1]...),然后将a数组输出。

 

运行示例:

定义数组a[3][3]={{1,2,3},{2,2,4},{3,6,3}};

输出:a[3][3]={{1,2,3},{1,1,2},{1,2,1}};

 

 

 

4、采用递归方法求n的阶乘,计算n阶乘的数学递归定义式

image.png


发表评论

访客

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