• 2025年10月10日 星期五

H21220-随堂练习

12 月 20, 2022

一、选择题(共20小题,每小题2分,共40分)

1、所有C程序都有且只有一个(C)函数。

A.scanf  B.include  C.main  D.sub

2、按照结构化程序设计的观点,任何程序都可以通过3种基本的控制结构进行组合来实现,这3种基本控制结构为(B)。

A.变量、常量和宏  

B.顺序、分支和循环 

C.数组、指针和函数 

D.整型、浮点型和字符型

3、C语言源程序的扩展名为(C)。

A.exe    B.h    C.c   D.cpp

4、下列选项中不属于结构化程序设计方法的是(D)。

A.自顶向下  B.逐步求精  C.模块化   D.可复用

5、以下属于单目运算符的是(A)。

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

6、下列程序输出结果是(B)。

   #include<stdio.h>

   main()

{int **k,*a,b=100;a=&b;k=&a;printf(“%d\n”,**k);}

A.运行出错   B.100   C.a的地址   D.b的地址

7、已知:int a[]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确的是(C

A. &(a+1)  B.&(P+1)  C.&p[2]  D.*p++

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

main()

{int a,b,d=326;

  a=d/100%9;

  b=(-1)&&(-1);

  printf(“%d,%d”,a,d)

}

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

9、若运行时给变量x输入8,则以下程序运行结果为(D )。

main()

{int x,y;

  Scanf(“%d”,&x);

 y=x>8?x+10:x-8;

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

}

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

10、有以下程序,程序运行后的输出结果是(A)。

mian()

{int i=1,sum=0;

 while(i<=4)

   sum=sum+1;

 i=i+1;

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

A.4         B.5      C.10      D.死循环

11、执行语句for(i=1;i++<5;)后,变量第i的值为(B)。

A.4         B.5       C.6       D.不定

12、下面叙述中正确的是(B)。

A.对于用户自己定义的函数,在使用前必须加以说明  

B.函数可以返回一个值,也可以什么值也不返回   

C.说明函数时不必明确其参数类型和返回类型 

D.调用函数的实参,只能是有确定值得变量

13.在函数调用语句fun1(fun2(x,y),(x,y),z=x+y);中,fun1的实际参数的个数是(A)。

A.3         B.7        C.4         D.5

14、一个C语言的源程序中(A)。

A.必须有一个主函数   

B.可以有多个主函数  

C.必须有主函数和其他函数

D.可以没有主函数

15、C语言中最简单的数据类型包括(B

A.整型、实型、逻辑型      B.整型、实型、字符型   

C.整型、字符型、逻辑型    D.整型、实型、逻辑型、字符型

16、设有定义“int a=2,b=3,c=4;”,则下列选项中为1的表达式为(C)。

A.(!a==1)&&(!b==0)    B.(a<b)&&!c&&1   C.a&&b     D.!a||(b+c)&&(c-4)

17、有以下的程序段,则(D

    char  a[3],b[]=”I am coming.”;

    a=b;

    printf(“%s”,a);

A.运行后将输出I a      B.运行后将输出I am coming.     

C.运行后将输出I am     D.编译出错

18、设有static char str[]=”Beijing”;则执行printf(“%d\n”,strlen(strcpy (str,”China”)));后的输出结果为(A)。

A.5     B.7     C.12       D.14

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

int mian(void)

{ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;

 printf(“%d\n”,*p+*q);

return 0;

}

A.16          B.10        C.8        D.6

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

int main(void)

{  int m,k=0,s=0;

  for(m=1;m<=4;m++){

    switch(m%4){

      case 0;

      case 1:s+=m;break;

      case 2:

    case 3:s-=m;break;}

    k+=s;

}

printf(“%d”,k);

return 0;

}

A.10     B.-2      C.-4       D.-12

二、程序分析题(共10小题,每小题3分,共30分)

1、下列程序段的输出结果是       10          。

#include <stdio.h>

int main(void)

{

int i, s=0;

for(i=1; i<10; i=i+2)

s=i+1;

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

return 0;

}

2、下列程序段的输出结果是  1#2#3#               。

#include <stdio.h>

int main(void)

{

    int num=0;

    while(num<6){

        num++;

        if(num==4) break;

        printf(“%d#”, num);

    }

}

3、下列程序段的输出结果是     onetwo            。

#include <stdio.h>

int main(void)

{

    int k=16;

    switch(k%3){

        case 0: printf(“zero”);

        case 1: printf(“one”);

        case 2: printf(“two”);

    }

}

4、下列程序段的输出结果是    1,2             。

#include <stdio.h>

void  swap1(int a, int b)

 {  int c=a;

   a=b;

    b=c;

 }

int main(void)

 { int x=1,y=2;

    swap1(x,y);

    printf(“%d,%d”,x,y);

return 0;

          }

5、下列程序段的输出结果是       3          。

#include <stdio.h>

int main(void)

{

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

    if(a<b){

        if(b<0)

            c=0;

        else

            c++;

    }

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

}

6、下列程序段的输出结果是  Thank#you!               。

#include <stdio.h>

int main(void)

{

    char b[]=”Thank you!”;

    b[5]=’#’;

    printf(“%s\n”,b);

    return 0;

}

7、下列程序段的输出结果是   -5,-12,-7              。

#include <stdio.h>

void sub(int x, int y, int *z)

{

    *z=y-x;

}

int main(void)

{

    int a, b, c;

    sub(10, 5, &a);

    sub(7, a, &b);

    sub(a, b, &c);

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

    return 0;

}

8、下列程序段的输出结果是    3,2             。

#include <stdio.h>

int main(void)

{ int a=2,b=3;

  a=a+b;

b=a-b;

a=a-b;

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

return 0;

}

9、下列程序段的输出结果是                。

#include <stdio.h>

int main(void)

{

    int i=5, j=0;

    do{

        j=j+i;

        i–;

    } while(i>3);

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

}

10、下列程序段的输出结果是               。

#include <stdio.h>

int fun3(int x)

{

    static int a=3;

    a+=x;

    return(a);

}

int main(void)

{

    int k=2, m=1, n;

    n=fun3(k); n=fun3(m);

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

    return 0;

}

三、程序填空题(共5小题,每小题2分,共10分)

1、下面的程序计算函数fun(n)=f(0)+f(1)+……+f(n)的值,其中f(x)=x2+x。请填空。

int fun(int n);

int f(int x);

int main(void)

{ printf(”The sum=%d\n”,fun(100));

  return 0;

}

int fun(int n)

{  int x,     s    ;

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

            s+=f(x)     ;

    return s;

}

int f(int x)

   return       x*x+x    ;

}

2、以下程序求任意实数的最大值和最小值。请填空。

main()

{ int i;

  float a[10],max,min;

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

   scanf(“%f”,&a[i]);

  max=min=a[0];

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

    {if(max<a[i])   max=a[i]    ;

     if(min>a[i])    min=a[i]    ;

     }

  printf(“最大值=%f\n”,max);

  printf(“最小值=%f\n”,min);

}

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

1、分段计算居民水费。为了完善分段计算水费的程序,现将居民应交税费y(元)与月用水量x(吨)的函数关系式修正如下,并编程实现。

题目配图

参考答案,请自己修改合适的变量名(usedWater,summary)或自行优化。

第一题参考代码

2、从键盘输入一批学生的成绩,计算平均成绩,并统计不及格学生的人数。

参考答案,请自己修改合适的变量名(studentCount,unPassedCount,sumScore,avgScore)或自行优化。

第二题参考代码
Avatar photo

李星海

简介: 2025-今 浙江农林大学 | 2022-今 广州白蓝碗蛋科技有限公司 | 2022-2024 广州商学院 | 2019-2022 广东工贸职业技术学院 | 服务宗旨:心始至客,行亦致远。