大学MOOC 程序设计语言CC++C#(苏州科技大学)1452667167 最新慕课完整章节测试答案
第二讲算法——程序设计的灵魂
第二讲单元测试--重修
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行标号处缺少的代码填写完整。
- #include <stdio.h>
- #include <math.h>
- int main()
- {
- int x;
- double y;
