第二讲算法——程序设计的灵魂

第二讲单元测试--重修

1、单选题:
有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换‌正确算法的流程图是?‌‏‌
选项:
A:

B:

C:

D:

答案: 【 

2、单选题:
依次输入10个数,求其中最大的数,并输出‎正确算法的流程图是?‎‎‎
选项:
A:

B:

C:

D:

答案: 【 

3、单选题:
‌计算1+2+3+…+100正确算法的伪代码是?‌‌‍‌
选项:
A: sum=0n=1while n<100 do       sum=sum+n       n=n+1end doprint sum
B: sum=0n=1while n≤100 do       sum=sum+1       n=n+1end doprint sum
C:  sum=0n=1while n≤100 do       sum=sum+n       n=n+1end doprint sum
D: sum=0n=1while n<100 do       sum=sum+1       n=n+1end doprint sum
答案: 【  sum=0n=1while n≤100 do       sum=sum+n       n=n+1end doprint sum

4、单选题:
求两个数m和n的最大公约数‎正确算法的伪代码是?‎​‎
选项:
A: input m,nif m<n then swap m,nr=mod(m,n)if r≠0       m=n       n=r       r=mod(m,n)print n
B: input m,nif m<n then swap m,nr=mod(m,n)while r≠0 do       m=n       n=r       r=mod(m,n)end doprint n
C: input m,nif m<n then swap m,nr=mod(m,n)if r≠0        n=r        m=n        r=mod(m,n)print n
D: input m,nif m<n then swap m,nr=mod(m,n)while r≠0 do       n=r       m=n       r=mod(m,n)end doprint n
答案: 【 input m,nif m<n then swap m,nr=mod(m,n)while r≠0 do       m=n       n=r       r=mod(m,n)end doprint n

5、判断题:

‌选项:
A: 正确
B: 错误
答案: 【 正确

第二讲单元测试

1、单选题:
有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换‏‏      正确算法的流程图是?‏
选项:
A:
B:
C:
D:
答案: 【 

2、单选题:
依次输入10个数,求其中最大的数,并输出‌正确算法的流程图是?‌‍‌
选项:
A:
B:
C:
D:
答案: 【 

3、单选题:
计算1+2+3+…+100‎正确算法的伪代码是?‎
选项:
A: sum=0n=1while n<100 do       sum=sum+n       n=n+1end doprint sum
B: sum=0n=1while n≤100 do       sum=sum+n       n=n+1end doprint sum
C: sum=0n=1while n≤100 do       sum=sum+1       n=n+1end doprint sum
D: sum=0n=1while n<100 do       sum=sum+1       n=n+1end doprint sum
答案: 【 sum=0n=1while n≤100 do       sum=sum+n       n=n+1end doprint sum

4、单选题:
求两个数m和n的最大公约数‌正确算法的伪代码是?‌
选项:
A: input m,nif m<n then swap m,nr=mod(m,n)if r≠0       m=n       n=r       r=mod(m,n)print n
B: input m,nif m<n then swap m,nr=mod(m,n)while r≠0 do       m=n       n=r       r=mod(m,n)end doprint n
C: input m,nif m<n then swap m,nr=mod(m,n)if r≠0        n=r        m=n        r=mod(m,n)print n
D: input m,nif m<n then swap m,nr=mod(m,n)while r≠0 do       n=r       m=n       r=mod(m,n)end doprint n
答案: 【 input m,nif m<n then swap m,nr=mod(m,n)while r≠0 do       m=n       n=r       r=mod(m,n)end doprint n

5、判断题:

有3个数a b c,要求按大小顺序把它输出

以下的NS图是否正确?

‎选项:
A: 正确
B: 错误
答案: 【 正确

第四讲选择结构程序设计

第四讲单元测验

1、单选题:
‏下列运算符优先级最高的是( )。‍
选项:
A: ||
B: +
C: ,
D: &&
答案: 【 +

2、单选题:
‏C语言中,switch后的括号内表达式(  )。‏
选项:
A: 只能为整型
B: 只能为整型,字符型或枚举型
C: 可以是任何类型
D: 只能是整型和字符型
答案: 【 只能为整型,字符型或枚举型

3、单选题:
‏C语言的switch语句中case后边(  )。‌
选项:
A: 只能为常量或常量表达式
B: 可为常量或表达式或有确定值的变量及表达式
C: 可为任何量或表达式
D: 只能为常量
答案: 【 只能为常量或常量表达式

4、单选题:
‌执行下面程序段后,k的值是:( )。‍int k=2;‍switch(k+1)‍{‍    case 3:k+=1;‍    case 4:k--;break;‍    case 5:k*=3;‍    case 6:++k;‍}‍‌‍
选项:
A: 28
B: 2
C: 10
D: 27
答案: 【 2

5、单选题:
执行下面程序段后,ch的值是( )。‍char ch='a';‍ch=(ch>='A'&&ch<='Z')?(ch+32):ch;‍‏‍
选项:
A: a
B: A
C: z
D: Z
答案: 【 a

6、单选题:
‌判断char型变量ch是否为小写字母的正确表达式是()。‌
选项:
A: (ch>=a)&&(ch<=z)
B: 'a'<=ch<='z'
C: ('a'>=ch)||('z'<=ch)
D: (ch>='a')&&(ch<='z')
答案: 【 (ch>='a')&&(ch<='z')

7、单选题:
​下列复合语句中,不能实现两数交换的是‏
选项:
A: {   t=a;   a=b;   b=t;}
B: {  a=b;  b=a;}
C: {    a = a + b;    b = a – b;    a = a – b; }
D: {    b = a * b;    a = b / a;    b = b / a; }
答案: 【 {  a=b;  b=a;}

8、单选题:
以下程序运行后的输出结果是‍‍‍‏‏‍‍#include <stdio.h>int main(){    int a=5,b=4,c=3,d;   d=(a>b>c);   printf("%dn",d);   return 0;}
选项:
A: 0
B: 1
C: 5
D: 4
答案: 【 0

9、单选题:
执行以下程序后的输出结果为‎‎‍‍‎‎#include <stdio.h>int main(){   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;   }  return 0;}
选项:
A: **0****2**
B: 有语法错误
C: **0****1****2**
D: **0**
答案: 【 **0****2**

10、单选题:
执行下列程序,k输入为1时的输出结果是‏‍‍‏‏#include <stdio.h>int main(){   int k;  scanf("%d",&k);  switch(k)  {      case 1:   printf("%d",k++);     case 2:   printf("%d",k++);     case 3:   printf("%d",k++);               break;     default:  printf("Full!");  }   return 0;}
选项:
A: 3
B: 123
C: 1
D: 2
答案: 【 123

11、单选题:
​若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是‍
选项:
A: (x-y)*(x-y)<100
B: (x-y)<-10||!(y-x)>10
C: fabs(x-y)<10
D: x-y>-10 && x-y<10
答案: 【 (x-y)<-10||!(y-x)>10

12、单选题:
‎写出下面程序的输出结果‎#include <stdio.h>int main(){    int x=1, y=0, a=0, b=0;   switch(x)   {         case 1:              switch(y)              {                case 0: a++;                 case 1: b++;              }      case 2:  a++;               b++;   }   printf("a=%d, b=%dn", a, b) ;   return 0;}
选项:
A: a=1, b=0
B: a=1, b=1
C: a=2, b=2
D: a=2, b=1
答案: 【 a=2, b=2

13、单选题:
下面程序代码的功能是判断输入整数的正负性和奇偶性,请将第19行和22行标号处缺少的代码填写完整。‎‎‎‍‍‎‎#include <stdio.h>int main(){    int m;    printf("Input m: ");    scanf("%d", &m);        //输入一个整数    if (m > 0)              //是否为正数    {        if (m % 2 == 0)     //是正数,且能被2整除,则是正偶数        {            printf("%d is a positive evenn", m);        }        else                    //不能被2整除,则是正奇数        {            printf("%d is a positive oddn", m);        }    }         _______________          //判断是否为负数         {        _______________                 {             printf("%d is a negative evenn", m);   //是负偶数        }        else        {             printf("%d is a negative oddn", m);    //是负奇数        }    }    else    {        printf("%d is zero.It is an evenn", m);        }   return 0;}
选项:
A: 第19行代码: if(m < 0)第22行代码: if (m % 2 != 0)
B: 第19行代码: else if(m < 0)第22行代码: if (m % 2 != 0)
C: 第19行代码: if(m < 0)第22行代码: if (m % 2 == 0)
D: 第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)
答案: 【 第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)

14、单选题:
程序功能:从键盘输入一个字符,判别它是否为大写字母。如果是,将它转换成小写字母,如果不是,不转换。在屏幕上输出最后得到的字符。程序代码如下,为实现上述功能,请将第8行标号处缺少的语句填写完整。‌‌​​‌‌#include<stdio.h> int main() {    char c;     printf("Please input a character:");    scanf("%c",&c);   if(c >='A'&&c <= 'Z')       c =_______________;    printf("%cn",c);   return 0;  }
选项:
A: c+48
B: c+32
C: c+97
D: c+65
答案: 【 c+32

15、单选题:
编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式:‍        操作数1    运算符op    操作数2‍然后,计算并输出表达式的值‍指定的运算符为:‍    加(+)‍    减(-)‍    乘(*)‍    除(/)‍‍代码如下,所给程序是否存在错误,若有,找出错误所在并改正。‍‍‎‎‍‍#include <stdio.h>int main(){         float    data1, data2;                     char   op;         printf("Please enter the expression:");         scanf("%f  %c%f", &data1, &op, &data2); /* %c前有一个空格 */          switch (op)          {                   case '+':                            printf("%f + %f = %fn", data1, data2, data1 + data2);                             break;                   case '-':                            printf("%f - %f = %fn", data1, data2, data1 - data2);                            break;                   case '*':                            printf("%f * %f = %fn", data1, data2, data1 * data2);                             break;                   case '/':                            printf("%f/%f = %fn", data1, data2,data1/data2);                             break;                   default:                             printf("Invalid operator!n");         }        return 0;}
选项:
A: if (data2=0) printf("Division by zero!n");else  printf("%f/%f = %fn", data1, data2, data1/data2);
B: 第20行语句有错误,改成:if (fabs(data2)<=EPS) printf("Division by zero!n");else  printf("%f/%f = %fn", data1, data2, data1/data2);同时,第1行语句下方应加入#include  <math.h>#define   EPS 1e-6
C: 没有错误
D: default分支缺少break语句
答案: 【 第20行语句有错误,改成:if (fabs(data2)<=EPS) printf("Division by zero!n");else  printf("%f/%f = %fn", data1, data2, data1/data2);同时,第1行语句下方应加入#include  <math.h>#define   EPS 1e-6

16、单选题:
以下程序运行后的输出结果是‎#include <stdio.h>int main(){    int a=1,b=2,m=0,n=0,k;   k=(n=b>a)||(m=a<b);   printf("%d,%dn",k,m);   return 0;}
选项:
A: 0,1
B: 1,1
C: 1,0
D: 0,0
答案: 【 1,0

17、单选题:
以下程序运行后的输出结果是‎‎#include <stdio.h>int main(){     int a,b,c;    a=10;    b=20;    c=(a%b<1)||(a/b>1);    printf("%d,%d,%d",a%b,a/b,c);    return 0;}
选项:
A: 10,0,1
B: 10,1,1
C: 10,0,0
D: 10,1,0
答案: 【 10,0,0

18、单选题:

编程计算下面的分段函数,根据从键盘输入的x值,在屏幕上输出y值。

程序代码如下,为完成以上功能,请将第13行标号处缺少的代码填写完整。

  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5.     int x;
  6.     double y;
  7.     
剩余75%内容付费后可查看

发表评论

电子邮件地址不会被公开。 必填项已用*标注