《软件技术基础H(太原理工大学) 》mooc慕课答案2026年版 | 萌面人

《软件技术基础H(太原理工大学) 》mooc慕课答案2026年版


a=666,b=888; printf(“%d”,a,b); return 0


2020-02-17到2020-05-22

第1周——初识C语言从认识变量和常量开始 练兵区——单选题——不计入总分

1、 问题:下列选项中,合法的C语言标识符是
选项:
A:_a1
B:width
C:#abc123
D:123abc
E:o*k
F:a?
G:a+b
H:%a
I:b!
答案: 【_a1;
width

2、 问题:以下不适合定义为用户标识符的是
选项:
A:float
B:main
C:define
D:3com
E:PI
F:Source
G:abc
答案: 【float ;
main;
define

3、 问题:#include 是
选项:
A:编译预处理指令
B:语句
C:函数
D:什么都不是
E:有语法错误
答案: 【 编译预处理指令

4、 问题:在windows下,程序编译链接后形成的可执行文件是
选项:
A:.obj文件
B:.exe文件
C:.o文件
D:.c文件
E:.h文件
答案: 【.exe文件

5、 问题:程序编译链接后显示” 0 error,0 warning” 代表
选项:
A:程序中没有语法错误
B:程序是正确的
C:程序是不正确的
D:程序中可能存在语法错误
E:程序中有语义错误
答案: 【程序中没有语法错误

6、 问题:用8位无符号二进制数能表示的最大十进制数为
选项:
A:255
B:127
C:128
D:256
答案: 【255

7、 问题:关于可执行文件说法正确的是
选项:
A:可执行文件是编译链接后生成的文件
B:可执行文件就是源代码文件
C:可执行文件后缀为.obj
D:可执行文件就是main.c文件
答案: 【可执行文件是编译链接后生成的文件

8、 问题:若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是
选项:
A:’A’+1.6的结果是浮点型
B:a的值还是整型
C:a的值是字符C
D:a的值是浮点型
E:不允许字符型和浮点型相加
答案: 【‘A’+1.6的结果是浮点型;
a的值还是整型

9、 问题:C语言用sizeof计算变量在内存中的字节数,其中sizeof是()
选项:
A:运算符
B:一元运算符
C:只需要一个操作数的运算符
D:函数
E:语句
F:标识符
G:变量
答案: 【运算符;
一元运算符;
只需要一个操作数的运算符

10、 问题:以下不属于Codeblocks中用于调试程序的工具是
选项:
A:run
B:build
C:run to cursor
D:next line
E:stop debugger
F:watches
答案: 【run;
build

11、 问题:程序的开发步骤中不包括
选项:
A:撰写文档
B:运行程序
C:编译链接
D:程序测试
E:编辑(编写代码)
答案: 【撰写文档

12、 问题:下列说法中错误的是()
选项:
A:尾数决定了实数的表数范围,阶码决定了实数的表数精度。
B:内存是按位编址的。
C:有符号和无符号整数的表数范围是相同的。
D:int型在所有的计算机上都占4个字节的存储单元。
E:编译器按变量定义的类型对不同类型的变量分配不同大小的内存空间。
F:内存是按字节编址的。
G:对于同样的尾数,阶码的值越大,则浮点数所表示的数值的绝对值就越大。
H:sizeof是编译时执行的运算符,不会导致额外的运行时间开销。
答案: 【尾数决定了实数的表数范围,阶码决定了实数的表数精度。;
内存是按位编址的。;
有符号和无符号整数的表数范围是相同的。;
int型在所有的计算机上都占4个字节的存储单元。

13、 问题:若有定义:int a=8,b=5,c; ,执行语句c=a/b+0.4;后,c的值为
选项:
A:1
B:1.4
C:2.0
D:2
答案: 【1

14、 问题:在C语言中,字符型数据在内存中以字符的( )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

15、 问题:以下符合C语言语法的实型常量是
选项:
A:5e-3
B:3.14.159e
C:1.2e0.5
D:e15
答案: 【5e-3

16、 问题:以下选项中可作为C语言合法整数的是
选项:
A:0xffa
B:10110B
C:038x
D:x2a2
答案: 【0xffa

17、 问题:下列说法正确的是
选项:
A:在C语言中,变量必须先定义后使用。
B:一条变量定义语句可定义多个同类型的变量。
C:C89规定所有变量必须在第一条可执行语句前定义。
D:const常量只能在定义时赋值。
E:实型常量的默认类型是double类型。
F:一条变量定义语句不可以同时定义多个变量。
G:不同类型的变量分配的存储空间大小都是相同的。
H:在C语言中,所有变量都必须在定义时进行初始化。
I:变量在没有初始化的时候,其值都是0
J:宏常量有数据类型,编译器在宏替换时可以进行类型检查。
答案: 【在C语言中,变量必须先定义后使用。;
一条变量定义语句可定义多个同类型的变量。;
C89规定所有变量必须在第一条可执行语句前定义。;
const常量只能在定义时赋值。;
实型常量的默认类型是double类型。

18、 问题:下列变量定义中合法的是
选项:
A:long ao=0xfdaL;
B:short _a=1-.1e-1;
C:double b=1+5e2.5;
D:float 2_and=1-e-3;
答案: 【long ao=0xfdaL;

第1周——初识C语言从认识变量和常量开始 第1周测验

1、 问题:下列选项中,合法的C语言标识符是
选项:
A:_a1
B:width.x
C:#abc123
D:123abc
E:o*k
F:a?
G:a+b
H:%a
I:b!
答案: 【_a1

2、 问题:以下不适合定义为用户标识符的是
选项:
A:int
B:a2
C:def2
D:3com
E:PI
F:Source
G:abc
答案: 【int

3、 问题:#include 是
选项:
A:编译预处理指令
B:语句
C:函数
D:什么都不是
E:有语法错误
答案: 【 编译预处理指令

4、 问题:在windows下,程序编译链接后形成的可执行文件是
选项:
A:.obj文件
B:.exe文件
C:.o文件
D:.c文件
E:.h文件
答案: 【.exe文件

5、 问题:程序编译链接后显示” 0 error,0 warning” 代表
选项:
A:程序中没有语法错误
B:程序是正确的
C:程序是不正确的
D:程序中可能存在语法错误
E:程序中有语义错误
答案: 【程序中没有语法错误

6、 问题:用8位无符号二进制数能表示的最大十进制数为
选项:
A:255
B:127
C:128
D:256
答案: 【255

7、 问题:关于可执行文件说法正确的是
选项:
A:可执行文件是编译链接后生成的文件
B:可执行文件就是源代码文件
C:可执行文件后缀为.obj
D:可执行文件就是main.c文件
答案: 【可执行文件是编译链接后生成的文件

8、 问题:若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是
选项:
A:’A’+1.6的结果是浮点型
B:a的值还是整型
C:a的值是字符C
D:a的值是浮点型
E:不允许字符型和浮点型相加
答案: 【‘A’+1.6的结果是浮点型;
a的值还是整型

9、 问题:C语言用sizeof计算变量在内存中的字节数,其中sizeof是()
选项:
A:运算符
B:一元运算符
C:只需要一个操作数的运算符
D:函数
E:语句
F:标识符
G:变量
答案: 【运算符;
一元运算符;
只需要一个操作数的运算符

10、 问题:以下不属于Codeblocks中用于调试程序的工具是
选项:
A:run
B:build
C:run to cursor
D:next line
E:stop debugger
F:watches
答案: 【run;
build

11、 问题:程序的开发步骤中不包括
选项:
A:撰写文档
B:运行程序
C:编译链接
D:程序测试
E:编辑(编写代码)
答案: 【撰写文档

12、 问题:下列说法中错误的是()
选项:
A:尾数决定了实数的表数范围,阶码决定了实数的表数精度。
B:内存是按位编址的。
C:有符号和无符号整数的表数范围是相同的。
D:int型在所有的计算机上都占4个字节的存储单元。
E:编译器按变量定义的类型对不同类型的变量分配不同大小的内存空间。
F:内存是按字节编址的。
G:对于同样的尾数,阶码的值越大,则浮点数所表示的数值的绝对值就越大。
H:sizeof是编译时执行的运算符,不会导致额外的运行时间开销。
答案: 【尾数决定了实数的表数范围,阶码决定了实数的表数精度。;
内存是按位编址的。;
有符号和无符号整数的表数范围是相同的。;
int型在所有的计算机上都占4个字节的存储单元。

13、 问题:若有定义:int a=8,b=5,c; ,执行语句c=a/b+0.4;后,c的值为
选项:
A:1
B:1.4
C:2.0
D:2
答案: 【1

14、 问题:在C语言中,字符型数据在内存中以字符的( )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

15、 问题:以下符合C语言语法的实型常量是
选项:
A:5e-3
B:3.14.159e
C:1.2e0.5
D:e15
答案: 【5e-3

16、 问题:以下选项中可作为C语言合法整数的是
选项:
A:0xffa
B:10110B
C:038x
D:x2a2
答案: 【0xffa

17、 问题:下列说法正确的是
选项:
A:在C语言中,变量必须先定义后使用。
B:一条变量定义语句可定义多个同类型的变量。
C:C89规定所有变量必须在第一条可执行语句前定义。
D:const常量只能在定义时赋值。
E:实型常量的默认类型是double类型。
F:一条变量定义语句不可以同时定义多个变量。
G:不同类型的变量分配的存储空间大小都是相同的。
H:在C语言中,所有变量都必须在定义时进行初始化。
I:变量在没有初始化的时候,其值都是0
J:宏常量有数据类型,编译器在宏替换时可以进行类型检查。
答案: 【在C语言中,变量必须先定义后使用。;
一条变量定义语句可定义多个同类型的变量。;
C89规定所有变量必须在第一条可执行语句前定义。;
const常量只能在定义时赋值。;
实型常量的默认类型是double类型。

18、 问题:下列变量定义中合法的是
选项:
A:long ao=0xfdaL;
B:short _a=1-.1e-1;
C:double b=1+5e2.5;
D:float 2_and=1-e-3;
答案: 【long ao=0xfdaL;

【作业】第1周——初识C语言从认识变量和常量开始 练兵区——编程题——不计入总分

1、 问题:hello world!
建议:【本题是主观题,暂无解析】

2、 问题:在屏幕上输出多行信息
建议:【本题是主观题,暂无解析】

3、 问题:计算半圆弧长及半圆的面积。
建议:【本题是主观题,暂无解析】

4、 问题:计算长方体体积
建议:【本题是主观题,暂无解析】

第2周——数字间的那些事儿,做点计算哈 第2周测验

1、 问题:下列程序的输出结果是#include
int main()
{
int a=7,b=5;
printf(“%d”,b/a);
return 0;
}
选项:
A:0
B:5
C:1
D:0.7
答案: 【 0

2、 问题:下列关于单目运算符++、–的叙述中正确的是
选项:
A:a++的运算过程是:先使用变量a的值,然后再执行a=a+1。
B:++a的运算过程是:先使用变量a的值,然后再执行a=a+1。
C:a++的运算过程是:先执行a=a+1,然后再使用变量a的值。
D:a++和++a都是最终使变量a执行a=a+1,因此对于包含a++或++a的表达式而言(如j=a++;或者j=++a;),两种情况下表达式的最终运算结果一定是相同的。
答案: 【a++的运算过程是:先使用变量a的值,然后再执行a=a+1。

3、 问题:以下程序的输出结果是:#include
int main()
{
int a=1, b=2;
a=a+b;
b=a-b;
a=a-b;
printf(“%d,%d”, a, b );
return 0;
}
选项:
A:2,1
B:3,1
C:3,2
D:1,2
答案: 【 2,1

4、 问题:程序运行后的输出结果是#include
int main()
{
int m=3,n=4,x;
x=m++;
++n;
x=x+8/n;
printf(“%d,%d”,x,m);
return 0;
}
选项:
A:4,4
B:4,3
C:5,4
D:5,3
答案: 【 4,4

5、 问题:下面程序的运行结果是#include
int main()
{
int a = 2, b = 3 ;
float x = 3.5, y = 2.5 ;
printf(“%f”, (float)(a+b) / 2 + (int)x % (int)y) ;
return 0;
}
选项:
A:3.500000
B:3.000000
C:3.5
D:3
答案: 【 3.500000

6、 问题:以下非法的赋值语句是
选项:
A:++(i+1);
B:x=(j–);
C:n=++i;
D:j++;
答案: 【++(i+1);

7、 问题:设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
选项:
A:6.000000
B: 6.500000
C:6
D:5.500000
答案: 【6.000000

8、 问题: 以下程序的运行结果是#include
int main()
{
int a = 12, b = 3;
float x = 18.5, y = 4.5;
printf(“%f”, (float)(a * b) / 2);
printf(“%d”, (int)x %(int)y);
return 0;
}
选项:
A:18.0000002
B:182
C:182.000000
D:18.0000002.000000
答案: 【 18.0000002

9、 问题:设有语句“int a = 3;”,执行语句“a += a -= a * a;”后,变量a的值是
选项:
A:-12
B:3
C:0
D:9
答案: 【-12

10、 问题:在C语言中,要求操作数必须是整型的运算符是
选项:
A:%
B:/
C:*
D:+
E:-
答案: 【%

11、 问题:程序运行后的输出结果是#include
int main()
{
char a=’a’;
printf(“%c,”,++a);
printf(“%c”,a++);
return 0;
}
选项:
A: b,b
B:b,c
C:a,b
D:a,c
答案: 【 b,b

12、 问题:下面哪条语句可以生成0-9之间的随机数
选项:
A:magic=rand()%10;
B:magic=rand()%10+1;
C:magic=rand()/10;
D:magic=rand()/10+1;
答案: 【magic=rand()%10;

13、 问题:在下面的C语言语句中,存在错误的是
选项:
A:int a=b=10;
B:int a=10,b=10;
C:int a,b;a=b=10;
D:int a,b;a=10;b=10;
答案: 【int a=b=10;

14、 问题:若以下选项中的变量已正确定义,则正确的赋值语句是
选项:
A:x3=x2=x1=0;
B:x1=26.8%3;
C:1+2=x2;
D:x4=1+2=3;
答案: 【x3=x2=x1=0;

15、 问题:若有以下定义,则表达式“a * b + d – c”的值的类型为#include
int main()
{
char a;
int b;
float c;
double d;
….
return 0;
}
选项:
A:double
B:int
C:float
D:char
答案: 【 double

16、 问题:在C程序中如果要使用数学函数,如sin(x),log(x)等,需要在程序中加入的语句是
选项:
A:#include B:#include
C:#define D:#define
答案: 【 #include

17、 问题:十进制3位数整数x,下面哪条语句能正确分离出它的十位上的数字d?
选项:
A:d=(x-(x/100)100)/10;
B:d=(x%100)/10;
C:d=(x/10)%10;
D:d=x%10;
E:d=(x-x%10)/10;
F:d=x%100;
答案: 【d=(x-(x/100)
100)/10;;
d=(x%100)/10;;
d=(x/10)%10;】

18、 问题:在C语言中对下面的语句而言,哪个说法是错误的?int a, b;
选项:
A:变量a和b中的值都是0
B:变量a和b中都没有数值
C:变量a和b中的值都是未知的随机数
D:a和b都是整型变量
E:变量a和b占用的内存空间的大小是相同的
答案: 【变量a和b中的值都是0;
变量a和b中都没有数值

19、 问题:已知int a,b;并且有a=5%3;以及b=5/3;,则a和b的值分别是( )。
选项:
A:2和1
B:0和1.67
C:3和1
D:5和1
E:0和1
F:3和1.67
G:5和1.67
答案: 【2和1

20、 问题:设有以下定义,则下面给出的语句中错误的是int a=0;
float b=1.25;
char c=’A’;

define d 2

选项:
A:d++;
B:(a+b)++;
C:(-a)++;
D:(a+1)++;
E:a++;
F:b++;
G:c++;
答案: 【d++;;
(a+b)++;;
(-a)++;;
(a+1)++;

【作业】第2周——数字间的那些事儿,做点计算哈 练兵区——编程题——不计入总分

1、 问题:输出逆序数
建议:【本题是主观题,暂无解析】

2、 问题:计算总分和平均分
建议:【本题是主观题,暂无解析】

3、 问题:存款利率计算器V1.0
建议:【本题是主观题,暂无解析】

4、 问题:数位拆分v1.0
建议:【本题是主观题,暂无解析】

5、 问题:求正/负余数
建议:【本题是主观题,暂无解析】

6、 问题:身高预测
建议:【本题是主观题,暂无解析】

7、 问题:求一元二次方程的根
建议:【本题是主观题,暂无解析】

第2周——数字间的那些事儿,做点计算哈 练兵区——单选题——不计入总分

1、 问题:设有语句“int a = 3;”,执行语句“a += a -= a * a;”后,变量a的值是
选项:
A:-12
B:3
C:0
D:9
答案: 【-12

2、 问题:在C程序中如果要使用数学函数,如sin(x),log(x)等,需要在程序中加入的语句是
选项:
A:#include B:#include
C:#define D:#define
答案: 【 #include

3、 问题:设有以下定义,则下面给出的语句中错误的是int a=0;
float b=1.25;
char c=’A’;

define d 2

选项:
A:d++;
B:(a+b)++;
C:(-a)++;
D:(a+1)++;
E:a++;
F:b++;
G:c++;
答案: 【d++;;
(a+b)++;;
(-a)++;;
(a+1)++;

4、 问题:下列关于单目运算符++、–的叙述中正确的是
选项:
A:a++的运算过程是:先使用变量a的值,然后再执行a=a+1。
B:++a的运算过程是:先使用变量a的值,然后再执行a=a+1。
C:a++的运算过程是:先执行a=a+1,然后再使用变量a的值。
D:a++和++a都是最终使变量a执行a=a+1,因此对于包含a++或++a的表达式而言(如j=a++;或者j=++a;),两种情况下表达式的最终运算结果一定是相同的。
答案: 【a++的运算过程是:先使用变量a的值,然后再执行a=a+1。

5、 问题:以下程序的输出结果是:#include
int main()
{
int a=1, b=2;
a=a+b;
b=a-b;
a=a-b;
printf(“%d,%d”, a, b );
return 0;
}
选项:
A:2,1
B:3,1
C:3,2
D:1,2
答案: 【 2,1

6、 问题:下面哪条语句可以生成0-9之间的随机数
选项:
A:magic=rand()%10;
B:magic=rand()%10+1;
C:magic=rand()/10;
D:magic=rand()/10+1;
答案: 【magic=rand()%10;

7、 问题:在下面的C语言语句中,存在错误的是
选项:
A:int a=b=10;
B:int a=10,b=10;
C:int a,b;a=b=10;
D:int a,b;a=10;b=10;
答案: 【int a=b=10;

8、 问题:若有以下定义,则表达式“a * b + d – c”的值的类型为#include
int main()
{
char a;
int b;
float c;
double d;
….
return 0;
}
选项:
A:double
B:int
C:float
D:char
答案: 【 double

9、 问题:十进制3位数整数x,下面哪条语句能正确分离出它的十位上的数字d?
选项:
A:d=(x-(x/100)100)/10;
B:d=(x%100)/10;
C:d=(x/10)%10;
D:d=x%10;
E:d=(x-x%10)/10;
F:d=x%100;
答案: 【d=(x-(x/100)
100)/10;;
d=(x%100)/10;;
d=(x/10)%10;】

10、 问题:在C语言中对下面的语句而言,哪个说法是错误的?int a, b;
选项:
A:变量a和b中的值都是0
B:变量a和b中都没有数值
C:变量a和b中的值都是未知的随机数
D:a和b都是整型变量
E:变量a和b占用的内存空间的大小是相同的
答案: 【变量a和b中的值都是0;
变量a和b中都没有数值

11、 问题:下列程序的输出结果是#include
int main()
{
int a=7,b=5;
printf(“%d”,b/a);
return 0;
}
选项:
A:0
B:5
C:1
D:0.7
答案: 【 0

12、 问题:程序运行后的输出结果是#include
int main()
{
int m=3,n=4,x;
x=m++;
++n;
x=x+8/n;
printf(“%d,%d”,x,m);
return 0;
}
选项:
A:4,4
B:4,3
C:5,4
D:5,3
答案: 【 4,4

13、 问题:下面程序的运行结果是#include
int main()
{
int a = 2, b = 3 ;
float x = 3.5, y = 2.5 ;
printf(“%f”, (float)(a+b) / 2 + (int)x % (int)y) ;
return 0;
}
选项:
A:3.500000
B:3.000000
C:3.5
D:3
答案: 【 3.500000

14、 问题:以下非法的赋值语句是
选项:
A:++(i+1);
B:x=(j–);
C:n=++i;
D:j++;
答案: 【++(i+1);

15、 问题:已知int a,b;并且有a=5%3;以及b=5/3;,则a和b的值分别是
选项:
A:2和1
B:0和1.67
C:3和1
D:5和1
E:0和1
F:3和1.67
G:5和1.67
答案: 【2和1

16、 问题:设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是
选项:
A:6.000000
B: 6.500000
C:6
D:5.500000
答案: 【6.000000

17、 问题:以下程序的运行结果是#include
int main()
{
int a = 12, b = 3;
float x = 18.5, y = 4.5;
printf(“%f”, (float)(a * b) / 2);
printf(“%d”, (int)x %(int)y);
return 0;
}
选项:
A:18.0000002
B:182
C:182.000000
D:18.0000002.000000
答案: 【 18.0000002

18、 问题:在C语言中,要求操作数必须是整型的运算符是
选项:
A:%
B:/
C:*
D:+
E:-
答案: 【%

19、 问题:程序运行后的输出结果是#include
int main()
{
char a=’a’;
printf(“%c,”,++a);
printf(“%c”,a++);
return 0;
}
选项:
A:b,b
B:b,c
C:a,b
D:a,c
答案: 【 b,b

20、 问题:若以下选项中的变量已正确定义,则正确的赋值语句是
选项:
A:x3=x2=x1=0;
B:x1=26.8%3;
C:1+2=x2;
D:x4=1+2=3;
答案: 【x3=x2=x1=0;

【作业】第3周——从键盘中来,到键盘中去,开始输入和输出啦 第3周编程题在线测试

1、 问题:学分绩计算
建议:【本题是主观题,暂无解析】

2、 问题:一尺之捶,日取其半
建议:【本题是主观题,暂无解析】

3、 问题:网购打折商品V1.0
建议:【本题是主观题,暂无解析】

4、 问题:计算时间差V1.0
建议:【本题是主观题,暂无解析】

第3周——从键盘中来,到键盘中去,开始输入和输出啦 第3周测验

1、 问题:分析下列程序,写出程序运行结果#include
int main()
{
char c1 = ‘a’, c2 = ‘b’, c3 = ‘c’;
printf(“a%cb%cc%cabc”, c1, c2, c3);
return 0;
}
选项:
A:aabbccabc
B:acbcabc
C:aabcabc
D:acbbcabc
答案: 【 aabbccabc

2、 问题:有如下语句,为使变量a的值为1,b的值为2,从键盘输入数据的正确形式是scanf(“a=%d,b=%d”,&a,&b);
选项:
A:a=1,b=2
B:1 2
C:1,2
D:a=1 b=2
答案: 【a=1,b=2

3、 问题:#include
int main()
{
int a,b,c,d;
scanf(“%c%c%d,%d”,&a,&b,&c,&d);
printf(“%c,%c,%c,%c”,a,b,c,d);
return 0;
}若运行以上程序时从键盘上输入:6565,66<回车>。则输出结果是
选项:
A:6,5,A,B
B:6,5,65,66
C:6,5,6,5
D:6,5,6,6
答案: 【 6,5,A,B

4、 问题:给出程序的运行结果,程序运行时从键盘输入:54321<回车>#include
int main()
{
int a,b,s;
scanf(“%2d%2d”,&a,&b);
s=a/b;
printf(“s=%d”,s);
return 0;
}
选项:
A:1
B:1.6875
C:2
D:0
答案: 【 1

5、 问题:以下程序的输出结果为#include
int main()
{
float a = 1234.567,b = 55.32;
printf(“a = %4.2f, b = %5.1f”, a,b);
return 0;
}
选项:
A:a = 1234.57, b = 55.3
B:a =1234, b =55
C:a = 1234.6, b = 5.32
D:a =1234.567, b = 55.32
答案: 【 a = 1234.57, b = 55.3

6、 问题:以下程序的输出结果为#include
int main()
{
int a=2, c=5;
printf(“a = %%d, b = %%d”, a, c);
return 0;
}
选项:
A:a = %d, b = %d
B:a = %2, b = %5
C:a = 2, b = 5
D:a = %%d, b = %%d
答案: 【 a = %d, b = %d

7、 问题:有以下程序,运行时若输入为B,则输出是#include
int main()
{
char ch;
ch=getchar();
ch=ch+32;
printf(“%c”,ch);
return 0;
}
选项:
A:b
B:98
C:32
D:66
答案: 【 b

8、 问题:在调用printf函数输出数据时,当数据的实际位宽小于printf函数中的指定位宽时,下面叙述正确的是
选项:
A:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。
B:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补空格;如果格式字符前面有负号,那么输出的数据将会右对齐、左补空格。
C:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补0;如果格式字符前面有负号,那么输出的数据将会左对齐、右补0。
D:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补0;如果格式字符前面有负号,那么输出的数据将会右对齐、左补0。
答案: 【如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。

9、 问题:设有语句“char c=’\72′;”,则变量c
选项:
A:包含1个字符
B:包含2个字符
C:包含3个字符
D:不合法
答案: 【包含1个字符

10、 问题:在下列语句中存在错误的是
选项:
A:int a,b;scanf(“%d %f”,&a,&b);
B:int a,b;scanf(“%d %d”,a,b);
C:int a,b;scanf(“%d%d”,&a,&b);printf(“%d %d”,a,b);
D:float a,b;scanf(“%3.2f %4.2f”,&a,&b);printf(“%f %f”,a,b);
E:float a,b;scanf(“%f %f”,&a,&b);printf(“%f %f”,a,b);
F:float a,b;scanf(“%f %f”,&a,&b);printf(“a=%4.3f,b=%4.3f”,a,b);
G:int a,b;scanf(“%2d%2d”,&a,&b);printf(“a=%d,b=%d”,a,b);
H:int a,b;scanf(“%d,%d”,&a,&b);printf(“a=%2d,b=%2d”,a,b);
I:int a,b;scanf(“a=%d,b=%d”,&a,&b);printf(“a=%d,b=%d”,a,b);
答案: 【int a,b;scanf(“%d %f”,&a,&b);;
int a,b;scanf(“%d %d”,a,b);;
int a,b;scanf(“%d%d”,&a,&b);printf(“%d %d”,a,b);;
float a,b;scanf(“%3.2f %4.2f”,&a,&b);printf(“%f %f”,a,b);

11、 问题:程序运行后的输出结果是#include
int main()
{
int a=666,b=888;
printf(“%d”,a,b);
return 0;
}
选项:
A:666
B:错误信息
C:888
D:666,888
答案: 【 666

12、 问题:有以下语句段#include
int main()
{
int n1=10,n2=20;
printf(“ ___”,n1,n2);
return 0;
}要求按以下格式输出n1和n2的值,每个输出行都是从第一列开始,则空白处代码填写正确的是运行结果示例如下:n1=10n2=20
选项:
A:n1=%dn2=%d
B:n1=%dn2=%d
C:n1=%d,n2=%d
D:n1=%d n2=%d
答案: 【 n1=%dn2=%d

13、 问题:以下选项中合法的字符常量是
选项:
A: ‘\010’
B:”B”
C:68
D:D
答案: 【 ‘\010’

14、 问题:写出下面程序的输出结果#include
int main()
{
int x=6,y,z;
x*=18+1;
printf(“%d,”,x–);
x+=y=z=11;
printf(“%d”,x);
return 0;
}
选项:
A:114,124
B:113,124
C:109,116
D:110,116
答案: 【 114,124

15、 问题:给出程序的运行结果,程序运行时从键盘输入:45-12<回车>#include
int main()
{
int a,b,sum;
scanf(“%d%*c%d”,&a,&b);
sum=a+b;
printf(“sum=%d”,sum);
return 0;
}
选项:
A:57
B:输出报错
C:33
D:输出一个随机数
答案: 【 57

16、 问题:给出程序的运行结果#include
int main()
{
int a,b,s;
char op;
scanf(“%d %c%d”,&a,&op,&b);
s=a%b;
printf(“s=%d”,s);
return 0;
}程序运行时从键盘输入:15<回车>%5<回车>
选项:
A:0
B:程序报错
C:输出一个随机数
D:3
答案: 【 0

17、 问题:给出程序的运行结果#include
int main()
{
int a,b,c,d;
char op1,op2,op3;
int sum;
printf(“please input:a+b+c+d”);
scanf(“%d%c%d%c%d%c%d”,&a,&op1,&b,&op2,&c,&op3,&d);
sum=a+b+c+d;
printf(“sum=%d”,sum);
return 0;
}程序运行时从键盘输入:1<回车>2+3+1<回车>
选项:
A:7
B:1
C:3
D:6
答案: 【 7

18、 问题:在C语言中,字符型数据在内存中以( )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

19、 问题:以下程序的执行结果是#include
int main()
{
int a = 5, b = 4, x, y;
x = 2 * a++;
y = –b * 2;
printf(“a=%d, x=%d”, a, x);
printf(“b=%d, y=%d”, b, y);
return 0;
}
选项:
A:a=6, x=10b=3, y=6
B:a=6, x=10b=3, y=8
C:a=6, x=12b=3, y=6
D:以上均不对
答案: 【 a=6, x=10b=3, y=6

20、 问题:以下程序运行后的输出结果是#include
int main()
{
int a;
int c=10;
float f=100.0;
double x;
a=f/=c*=(x=6.5);
printf(“%d,%d,%3.1f,%3.1f”,a,c,f,x);
return 0;
}
选项:
A:1,65,1.5,6.5
B:1,65,1,6.5
C:1,65,1.0,6.5
D: 2,65,1.5,6.5
答案: 【 1,65,1.5,6.5

21、 问题:给出程序的运行结果#include
int main()
{
char a,b;
int s;
printf(“please input a and b:”);
a=getchar();
b=getchar();
s=a+b;
printf(“a=%c,b=%c”,a,b);
return 0;
}程序运行时从键盘输入:1<空格>2<回车>
选项:
A:a=1,b=
B:a=1,b=2
C:a= ,b=2
D:输出乱码
答案: 【 a=1,b=

22、 问题:以下程序的输出结果是#include
int main()
{
int a=1234;
printf(“%2d”,a);
return 0;
}
选项:
A:1234
B:12
C:34
D:提示出错、无结果
答案: 【 1234

第3周——从键盘中来,到键盘中去,开始输入和输出啦 练兵区——单选题——不计入总分

1、 问题:以下程序的输出结果为#include
int main()
{
float a = 1234.567,b = 55.32;
printf(“a = %4.2f, b = %5.1f”, a,b);
return 0;
}
选项:
A:a = 1234.57, b = 55.3
B:a =1234, b =55
C:a = 1234.6, b = 5.32
D:a =1234.567, b = 55.32
答案: 【 a = 1234.57, b = 55.3

2、 问题:以下选项中合法的字符常量是
选项:
A: ‘\010’
B:”B”
C:68
D:D
答案: 【 ‘\010’

3、 问题:给出程序的运行结果程序运行时从键盘输入:1<空格>2<回车>#include
int main()
{
char a,b;
int s;
printf(“please input a and b:”);
a=getchar();
b=getchar();
s=a+b;
printf(“a=%c,b=%c”,a,b);
return 0;
}
选项:
A:a=1,b=
B:a=1,b=2
C:a= ,b=2
D:输出乱码
答案: 【 a=1,b=

4、 问题:有如下语句,为使变量a的值为1,b的值为2,从键盘输入数据的正确形式是scanf(“a=%d,b=%d”,&a,&b)
选项:
A:a=1,b=2
B:1 2
C:1,2
D:a=1 b=2
答案: 【a=1,b=2

5、 问题:#include
int main()
{
int a,b,c,d;
scanf(“%c%c%d,%d”,&a,&b,&c,&d);
printf(“%c,%c,%c,%c”,a,b,c,d);
return 0;
}若运行以上程序时从键盘上输入:6565,66<回车>。则输出结果是
选项:
A:6,5,A,B
B:6,5,65,66
C:6,5,6,5
D:6,5,6,6
答案: 【 6,5,A,B

6、 问题:给出程序的运行结果,程序运行时从键盘输入:54321<回车>#include
int main()
{
int a,b,s;
scanf(“%2d%2d”,&a,&b);
s=a/b;
printf(“s=%d”,s);
return 0;
}
选项:
A:1
B:1.6875
C:2
D:0
答案: 【 1

7、 问题:在调用printf函数输出数据时,当数据的实际位宽小于printf函数中的指定位宽时,下面叙述正确的是
选项:
A:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。
B:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补空格;如果格式字符前面有负号,那么输出的数据将会右对齐、左补空格。
C:如果格式字符前面没有负号,那么输出的数据将会右对齐、左补0;如果格式字符前面有负号,那么输出的数据将会左对齐、右补0。
D:如果格式字符前面没有负号,那么输出的数据将会左对齐、右补0;如果格式字符前面有负号,那么输出的数据将会右对齐、左补0。
答案: 【如果格式字符前面没有负号,那么输出的数据将会右对齐、左补空格;如果格式字符前面有负号,那么输出的数据将会左对齐、右补空格。

8、 问题:程序运行后的输出结果是#include
int main()
{
int a=666,b=888;
printf(“%d”,a,b);
return 0;
}
选项:
A:666
B:错误信息
C:888
D:666,888
答案: 【 666

9、 问题:在C语言中,字符型数据在内存中以( )形式存放
选项:
A:ASCII码
B:国标码
C:BCD码
D:反码
答案: 【ASCII码

10、 问题:以下程序运行后的输出结果是#include
int main()
{
int a;
int c=10;
float f=100.0;
double x;
a=f/=c*=(x=6.5);
printf(“%d,%d,%3.1f,%3.1f”,a,c,f,x);
return 0;
}
选项:
A:1,65,1.5,6.5
B:1,65,1,6.5
C:1,65,1.0,6.5
D: 2,65,1.5,6.5
答案: 【 1,65,1.5,6.5

11、 问题:以下程序的输出结果是#include
int main()
{
int a=1234;
printf(“%2d”,a);
return 0;
}
选项:
A:1234
B:12
C:34
D:提示出错、无结果
答案: 【 1234

12、 问题:设有语句“char c=’\72′;”,则变量c
选项:
A:包含1个字符
B:包含2个字符
C:包含3个字符
D:不合法
答案: 【包含1个字符

13、 问题:有以下语句段#include
int main()
{
int n1=10,n2=20;
printf(“ ___”,n1,n2);
return 0;
}要求按以下格式输出n1和n2的值,每个输出行都是从第一列开始,则空白处代码填写正确的是运行结果示例如下:n1=10n2=20
选项:
A:n1=%dn2=%d
B:n1=%dn2=%d
C:n1=%d,n2=%d
D:n1=%d n2=%d
答案: 【 n1=%dn2=%d

14、 问题:给出程序的运行结果,程序运行时从键盘输入:45-12<回车>#include
int main()
{
int a,b,sum;
scanf(“%d%*c%d”,&a,&b);
sum=a+b;
printf(“sum=%d”,sum);
return 0;
}
选项:
A:57
B:输出报错
C:33
D:输出一个随机数
答案: 【 57

15、 问题:给出程序的运行结果#include
int main()
{
int a,b,s;
char op;
scanf(“%d %c%d”,&a,&op,&b);
s=a%b;
printf(“s=%d”,s);
return 0;
}程序运行时从键盘输入:15<回车>%5<回车>
选项:
A:0
B:程序报错
C:输出一个随机数
D:3
答案: 【 0

16、 问题:分析下列程序,写出程序运行结果#include
int main()
{
char c1 = ‘a’, c2 = ‘b’, c3 = ‘c’;
printf(“a%cb%cc%cabc”, c1, c2, c3);
return 0;
}
选项:
A:aabbccabc
B:acbcabc
C:aabcabc
D:acbbcabc
答案: 【 aabbccabc

17、 问题:以下程序的输出结果为#include
int main()
{
int a=2, c=5;
printf(“a = %%d, b = %%d”, a, c);
return 0;
}
选项:
A:a = %d, b = %d
B:a = %2, b = %5
C:a = 2, b = 5
D:a = %%d, b = %%d
答案: 【 a = %d, b = %d

18、 问题:有以下程序,运行时若输入为B,则输出是#include
int main()
{
char ch;
ch=getchar();
ch=ch+32;
printf(“%c”,ch);
return 0;
}
选项:
A:b
B:98
C:32
D:66
答案: 【 b

19、 问题:在下列语句中存在错误的是
选项:
A:int a,b;scanf(“%d %f”,&a,&b);
B:int a,b;scanf(“%d %d”,a,b);
C:int a,b;scanf(“%d%d”,&a,&b);printf(“%d %d”,a,b);
D:float a,b;scanf(“%3.2f %4.2f”,&a,&b);printf(“%f %f”,a,b);
E:float a,b;scanf(“%f %f”,&a,&b);printf(“%f %f”,a,b);
F:float a,b;scanf(“%f %f”,&a,&b);printf(“a=%4.3f,b=%4.3f”,a,b);
G:int a,b;scanf(“%2d%2d”,&a,&b);printf(“a=%d,b=%d”,a,b);
H:int a,b;scanf(“%d,%d”,&a,&b);printf(“a=%2d,b=%2d”,a,b);
I:int a,b;scanf(“a=%d,b=%d”,&a,&b);printf(“a=%d,b=%d”,a,b);
答案: 【int a,b;scanf(“%d %f”,&a,&b);;
int a,b;scanf(“%d %d”,a,b);;
int a,b;scanf(“%d%d”,&a,&b);printf(“%d %d”,a,b);;
float a,b;scanf(“%3.2f %4.2f”,&a,&b);printf(“%f %f”,a,b);

20、 问题:写出下面程序的输出结果#include
int main()
{
int x=6,y,z;
x*=18+1;
printf(“%d,”,x–);
x+=y=z=11;
printf(“%d”,x);
return 0;
}
选项:
A:114,124
B:113,124
C:109,116
D:110,116
答案: 【 114,124

21、 问题:给出程序的运行结果#include
int main()
{
int a,b,c,d;
char op1,op2,op3;
int sum;
printf(“please input:a+b+c+d”);
scanf(“%d%c%d%c%d%c%d”,&a,&op1,&b,&op2,&c,&op3,&d);
sum=a+b+c+d;
printf(“sum=%d”,sum);
return 0;
}程序运行时从键盘输入:1<回车>2+3+1<回车>
选项:
A:7
B:1
C:3
D:6
答案: 【 7

22、 问题:以下程序的执行结果是#include
int main()
{
int a = 5, b = 4, x, y;
x = 2 * a++;
y = –b * 2;
printf(“a=%d, x=%d”, a, x);
printf(“b=%d, y=%d”, b, y);
return 0;
}
选项:
A:a=6, x=10b=3, y=6
B:a=6, x=10b=3, y=8
C:a=6, x=12b=3, y=6
D:以上均不对
答案: 【 a=6, x=10b=3, y=6

【作业】第3周——从键盘中来,到键盘中去,开始输入和输出啦 练兵区——编程题——不计入总分

1、 问题:日期显示
建议:【本题是主观题,暂无解析】

2、 问题:产品信息格式化
建议:【本题是主观题,暂无解析】

3、 问题:计算两个数的平方和
建议:【本题是主观题,暂无解析】

4、 问题:逆序数的拆分计算
建议:【本题是主观题,暂无解析】

5、 问题:拆分英文名
建议:【本题是主观题,暂无解析】

6、 问题:计算体指数
建议:【本题是主观题,暂无解析】

第4周——无处不在的抉择 第4周测验

1、 问题:程序代码如下:#include
int main()
{
int a,b;
printf(“please input a and b:”);
scanf(“%d%d”,&a,&b);
printf(“the output data is %d”,a 7<回车>则程序输出为
选项:
A:the output data is 7
B:the output data is 2
C:the output data is 1
D:the output data is 0
答案: 【 the output data is 7

2、 问题:以下程序运行后的输出结果是#include
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,0
B:10,1,0
C:10,0,1
D:10,1,1
答案: 【 10,0,0

3、 问题:从键盘输入三角形的三边长为a,b,c,按下面公式计算并输出三角形的面积。程序代码如下,但程序运行后输出结果不正确,请找出有问题的语句。#include

include

int main()
{
float a, b, c;
float s, area;
printf(“Input a,b,c:”);
scanf(“%f,%f,%f”,&a,&b,&c);
if (a+b>c && b+c>a && a+c>b)
{
s = 1/2 * (a + b + c);
area = sqrt(s * (s – a) * (s – b) * (s – c));
printf(“area=%.2f”, area);
}
else
{
printf(“It is not a triangle”);
}
return 0;
}
选项:
A:第11行: s = 1/2 * (a + b + c);
B:第9行: if (a+b>c && b+c>a && a+c>b)
C:第12行: area = sqrt(s * (s – a) * (s – b) * (s – c));
D:第8行: scanf(“%f,%f,%f”,&a,&b,&c);
答案: 【第11行: s = 1/2 * (a + b + c);

4、 问题:编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式: 操作数1 运算符op 操作数2然后,计算并输出表达式的值指定的运算符为: 加(+) 减(-) 乘() 除(/)代码如下,所给程序是否存在错误,若有,找出错误所在并改正。#include
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 = %f”, data1, data2, data1 + data2);
break;
case ‘-‘:
printf(“%f – %f = %f”, data1, data2, data1 – data2);
break;
case ‘
‘:
printf(“%f * %f = %f”, data1, data2, data1 * data2);
break;
case ‘/’:
printf(“%f/%f = %f”, data1, data2,data1/data2);
break;
default:
printf(“Invalid operator!”);
}
return 0;
}
选项:
A:第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6
B:default分支缺少break语句
C:没有错误
D:第20行语句有错误,改成:if (data2=0) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);
答案: 【 第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6

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

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

7、 问题:写出下面程序的输出结果#include
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=%d”, a, b) ;
return 0;
}
选项:
A:a=2, b=2
B:a=2, b=1
C:a=1, b=1
D:a=1, b=0
答案: 【 a=2, b=2

8、 问题:以下程序运行后的输出结果是#include
int main()
{
int a=5,b=4,c=3,d;
d=(a>b>c);
printf(“%d”,d);
return 0;
}
选项:
A:0
B:1
C:5
D:4
E:3
答案: 【 0

9、 问题:执行以下程序后的输出结果为#include
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:
0

C: 0*1*2
D:有语法错误
答案: 【 02

10、 问题:下面程序运行后的输出结果是#include
int main()
{
int a=3,b=4,c=5,d=2;
if(a>b)
{
if(b>c)
{
printf(“%d”,d++ +1);
}
else
{
printf(“%d”,++d +1);
}
}
printf(“%d”,d);
return 0;
}
选项:
A:2
B:3
C:43
D:44
答案: 【 2

11、 问题:下面程序代码的功能是判断输入整数的正负性和奇偶性,请将第19行和22行标号处缺少的代码填写完整。#include
int main()
{
int m;
printf(“Input m: “);
scanf(“%d”, &m); //输入一个整数
if (m > 0) //是否为正数
{
if (m % 2 == 0) //是正数,且能被2整除,则是正偶数
{
printf(“%d is a positive even”, m);
}
else //不能被2整除,则是正奇数
{
printf(“%d is a positive odd”, m);
}
}

___ //判断是否为负数

{
    _______________

    {
         printf("%d is a negative even", m);   //是负偶数
    }
    else
    {
         printf("%d is a negative odd", m);    //是负奇数
    }
}
else
{
    printf("%d is zero.It is an even", m);    
}

return 0;
}
选项:
A:第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)
B:第19行代码: if(m < 0)第22行代码: if (m % 2 == 0)
C:第19行代码: else if(m < 0)第22行代码: if (m % 2 != 0)
D:第19行代码: if(m < 0)第22行代码: if (m % 2 != 0)
答案: 【第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)

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

13、 问题:执行下列程序,k输入为1时的输出结果是#include
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:123
B:1
C:2
D:3
答案: 【 123

14、 问题:编程计算下面的分段函数,根据从键盘输入的x值,在屏幕上输出y值。 程序代码如下,为完成以上功能,请将第13行标号处缺少的代码填写完整。 #include

include

int main()
{
int x;
double y;
printf(“Input x: “);
scanf(“%d”, &x); // 输入一个整数
if (x > 0)
{
y = exp(-x); //如果大于0,计算y=exp(-x)的值
}
_______
{
y = 1; //x=0,则y=1
}
else
{
y = -exp(x); //x<0,则y=-exp(x)
}
printf(“y=%f”, y);
return 0;
}
选项:
A:else if (x == 0)
B:else if (x = 0)
C:if (x == 0)
D:if (x = 0)
答案: 【else if (x == 0)

15、 问题:以下程序运行后的输出结果是#include
int main()
{
int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a 1,0】

16、 问题:以下程序的功能是计算一元二次方程的根。代码如下,请将第10行标号处缺少的语句填写完整。 #include

include

include

define EPS 1e-6

int main()
{
float a, b, c, disc, p, q;
printf(“Please enter the coefficients a,b,c:”);
scanf(“%f,%f,%f”, &a, &b, &c);
_________ / a=0时,输出”不是二次方程” /

 {
           printf("It is not a quadratic equation!");
           exit(0);  /* C标准库函数,用于终止整个程序的执行,强制返回操作系统 */
 }
  disc = b * b - 4 * a * c; /* 计算判别式 */
  p = - b / (2 * a);
  q = sqrt(fabs(disc)) / (2 * a);
  if (fabs(disc) <= EPS)    /* 判别式等于0时,输出两相等实根 */
  {
               printf("x1 = x2 = %.2f", p);
  }
 else                      
 { 
             if (disc > EPS)        /* 判别式大于0时,输出两不等实根 */
             {
                        printf("x1 = %.2f, x2 = %.2f", p+q, p-q);
             }
             else                     /* 判别式小于0时,输出两共轭复根 */
             {
                        printf("x1 = %.2f+%.2fi, ", p, q);
                        printf("x2 = %.2f-%.2fi", p, q);
             }
  }
 return 0;

}
选项:
A:if (fabs(a) <= EPS)
B:if (a <= EPS)
C:if (a=0)
D:if (a<= EPS || a>=-EPS)
答案: 【if (fabs(a) <= EPS)

17、 问题:下列说法错误的是()。
选项:
A:case后的“常量表达式”的类型只能是整型。
B:若case后面的语句省略不写,则表示它什么也不做。
C:switch语句中的break和default可有可无。
D:每个case后的“常量表达式”的类型应该与switch后括号内表达式的类型一致。
E:程序执行到switch语句时,先计算表达式的值,然后自上而下寻找与该值匹配的case常量,找到后则按顺序执行此case后的所有语句,而不再进行判断,直到遇break语句或右花括号}为止。
F:若所有的case常量都不能与表达式的值相匹配,那么就执行default后面的语句。通常用于处理不在合理区间内的非法数据。
G:每个case后的常量只起语句标号的作用,所以case常量的值必须互不相同,而且在每个case的语句序列后都有break的情况下,改变case常量出现的次序,不影响程序的运行结果。
H:case后面的表达式不能是含有变量的关系表达式和逻辑表达式,它不能像if语句那样起到判断表达式真假的作用。
答案: 【case后的“常量表达式”的类型只能是整型。;
若case后面的语句省略不写,则表示它什么也不做。;
switch语句中的break和default可有可无。

第4周——无处不在的抉择 练兵区——单选题——不计入总分

1、 问题:下面程序代码的功能是判断输入整数的正负性和奇偶性,请将第19行和22行标号处缺少的代码填写完整。#include
int main()
{
int m;
printf(“Input m: “);
scanf(“%d”, &m); //输入一个整数
if (m > 0) //是否为正数
{
if (m % 2 == 0) //是正数,且能被2整除,则是正偶数
{
printf(“%d is a positive even”, m);
}
else //不能被2整除,则是正奇数
{
printf(“%d is a positive odd”, m);
}
}

_______________          //判断是否为负数

{
    _______________

    {
         printf("%d is a negative even", m);   //是负偶数
    }
    else
    {
         printf("%d is a negative odd", m);    //是负奇数
    }
}
else
{
    printf("%d is zero.It is an even", m);    
}

return 0;
}
选项:
A:第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)
B:第19行代码: if(m < 0)第22行代码: if (m % 2 == 0)
C:第19行代码: else if(m < 0)第22行代码: if (m % 2 != 0)
D:第19行代码: if(m < 0)第22行代码: if (m % 2 != 0)
答案: 【第19行代码: else if(m < 0)第22行代码: if (m % 2 == 0)

2、 问题:执行以下程序后的输出结果为#include
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:
0

C: 0*1*2
D:有语法错误
答案: 【 02

3、 问题:以下程序运行后的输出结果是#include
int main()
{
int a=1,b=2,m=0,n=0,k;
k=(n=b>a)||(m=a 1,0】

4、 问题:以下程序运行后的输出结果是#include
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,0
B:10,1,0
C:10,0,1
D:10,1,1
答案: 【 10,0,0

5、 问题:编程设计一个简单的计算器程序,要求用户从键盘输入如下形式的表达式: 操作数1 运算符op 操作数2然后,计算并输出表达式的值指定的运算符为: 加(+) 减(-) 乘() 除(/)代码如下,所给程序是否存在错误,若有,找出错误所在并改正。#include
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 = %f”, data1, data2, data1 + data2);
break;
case ‘-‘:
printf(“%f – %f = %f”, data1, data2, data1 – data2);
break;
case ‘
‘:
printf(“%f * %f = %f”, data1, data2, data1 * data2);
break;
case ‘/’:
printf(“%f/%f = %f”, data1, data2,data1/data2);
break;
default:
printf(“Invalid operator!”);
}
return 0;
}
选项:
A:第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6
B:default分支缺少break语句
C:没有错误
D:第20行语句有错误,改成:if (data2=0) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);
答案: 【 第20行语句有错误,改成:if (fabs(data2)<=EPS) printf(“Division by zero!”);else printf(“%f/%f = %f”, data1, data2, data1/data2);同时,第1行语句下方应加入#include #define EPS 1e-6

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

7、 问题:写出下面程序的输出结果#include
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=%d”, a, b) ;
return 0;
}
选项:
A:a=2, b=2
B:a=2, b=1
C:a=1, b=1
D:a=1, b=0
答案: 【 a=2, b=2

8、 问题:执行下列程序,k输入为1时的输出结果是#include
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:123
B:1
C:2
D:3
答案: 【 123

9、 问题:编程计算下面的分段函数,根据从键盘输入的x值,在屏幕上输出y值。程序代码如下,为完成以上功能,请将第13行标号处缺少的代码填写完整。#include

include

int main()
{
int x;
double y;
printf(“Input x: “);
scanf(“%d”, &x); // 输入一个整数
if (x > 0)
{
y = exp(-x); //如果大于0,计算y=exp(-x)的值
}
_______
{
y = 1; //x=0,则y=1
}
else
{
y = -exp(x); //x<0,则y=-exp(x)
}
printf(“y=%f”, y);
return 0;
}
选项:
A:else if (x == 0)
B:else if (x = 0)
C:if (x == 0)
D:if (x = 0)
答案: 【else if (x == 0)

10、 问题:以下程序的功能是计算一元二次方程的根。代码如下,请将第10行标号处缺少的语句填写完整。#include

include

include

define EPS 1e-6

int main()
{
float a, b, c, disc, p, q;
printf(“Please enter the coefficients a,b,c:”);
scanf(“%f,%f,%f”, &a, &b, &c);
_________ / a=0时,输出”不是二次方程” /

 {
           printf("It is not a quadratic equation!");
           exit(0);  /* C标准库函数,用于终止整个程序的执行,强制返回操作系统 */
 }
  disc = b * b - 4 * a * c; /* 计算判别式 */
  p = - b / (2 * a);
  q = sqrt(fabs(disc)) / (2 * a);
  if (fabs(disc) <= EPS)    /* 判别式等于0时,输出两相等实根 */
  {
               printf("x1 = x2 = %.2f", p);
  }
 else                      
 { 
             if (disc > EPS)        /* 判别式大于0时,输出两不等实根 */
             {
                        printf("x1 = %.2f, x2 = %.2f", p+q, p-q);
             }
             else                     /* 判别式小于0时,输出两共轭复根 */
             {
                        printf("x1 = %.2f+%.2fi, ", p, q);
                        printf("x2 = %.2f-%.2fi", p, q);
             }
  }
 return 0;

}
选项:
A:if (fabs(a) <= EPS)
B:if (a <= EPS)
C:if (a=0)
D:if (a<= EPS || a>=-EPS)
答案: 【if (fabs(a) <= EPS)

11、 问题:从键盘输入三角形的三边长为a,b,c,按下面公式计算并输出三角形的面积。程序代码如下,但程序运行后输出结果不正确,请找出有问题的语句。#include

include

int main()
{
float a, b, c;
float s, area;
printf(“Input a,b,c:”);
scanf(“%f,%f,%f”,&a,&b,&c);
if (a+b>c && b+c>a && a+c>b)
{
s = 1/2 * (a + b + c);
area = sqrt(s * (s – a) * (s – b) * (s – c));
printf(“area=%.2f”, area);
}
else
{
printf(“It is not a triangle”);
}
return 0;
}
选项:
A:第11行: s = 1/2 * (a + b + c);
B:第9行: if (a+b>c && b+c>a && a+c>b)
C:第12行: area = sqrt(s * (s – a) * (s – b) * (s – c));
D:第8行: scanf(“%f,%f,%f”,&a,&b,&c);
答案: 【第11行: s = 1/2 * (a + b + c);

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

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

14、 问题:程序代码如下:#include
int main()
{
int a,b;
printf(“please input a and b:”);
scanf(“%d%d”,&a,&b);
printf(“the output data is %d”,a 7<回车>则程序输出为
选项:
A:the output data is 7
B:the output data is 2
C:the output data is 1
D:the output data is 0
答案: 【 the output data is 7

15、 问题:以下程序运行后的输出结果是#include
int main()
{
int a=5,b=4,c=3,d;
d=(a>b>c);
printf(“%d”,d);
return 0;
}
选项:
A:0
B:1
C:5
D:4
E:3
答案: 【 0

16、 问题:下面程序运行后的输出结果是#include
int main()
{
int a=3,b=4,c=5,d=2;
if(a>b)
{
if(b>c)
{
printf(“%d”,d++ +1);
}
else
{
printf(“%d”,++d +1);
}
}
printf(“%d”,d);
return 0;
}
选项:
A:2
B:3
C:43
D:44
答案: 【 2

17、 问题:下列说法错误的是()。
选项:
A:case后的“常量表达式”的类型只能是整型。
B:若case后面的语句省略不写,则表示它什么也不做。
C:switch语句中的break和default可有可无。
D:每个case后的“常量表达式”的类型应该与switch后括号内表达式的类型一致。
E:程序执行到switch语句时,先计算表达式的值,然后自上而下寻找与该值匹配的case常量,找到后则按顺序执行此case后的所有语句,而不再进行判断,直到遇break语句或右花括号}为止。
F:若所有的case常量都不能与表达式的值相匹配,那么就执行default后面的语句。通常用于处理不在合理区间内的非法数据。
G:每个case后的常量只起语句标号的作用,所以case常量的值必须互不相同,而且在每个case的语句序列后都有break的情况下,改变case常量出现的次序,不影响程序的运行结果。
H:case后面的表达式不能是含有变量的关系表达式和逻辑表达式,它不能像if语句那样起到判断表达式真假的作用。
答案: 【case后的“常量表达式”的类型只能是整型。;
若case后面的语句省略不写,则表示它什么也不做。;
switch语句中的break和default可有可无。

【作业】第4周——无处不在的抉择 第4周编程题在线测试

1、 问题:分数比较
建议:【本题是主观题,暂无解析】

2、 问题:存款利率计算器v2.0
建议:【本题是主观题,暂无解析】

3、 问题:存款利率计算器v3.0
建议:【本题是主观题,暂无解析】

4、 问题:博弈论之Best Response
建议:【本题是主观题,暂无解析】

【作业】第4周——无处不在的抉择 练兵区——编程题——不计入总分

1、 问题:检测用户错误输入
建议:【本题是主观题,暂无解析】

2、 问题:闰年判断
建议:【本题是主观题,暂无解析】

3、 问题:程序改错v1.0
建议:【本题是主观题,暂无解析】

4、 问题:字符类型判断
建议:【本题是主观题,暂无解析】

5、 问题:快递费用计算
建议:【本题是主观题,暂无解析】

6、 问题:数位拆分v2.0
建议:【本题是主观题,暂无解析】

7、 问题:出租车计价
建议:【本题是主观题,暂无解析】

8、 问题:数据区间判断
建议:【本题是主观题,暂无解析】

9、 问题:计算一元二次方程的根v2.0
建议:【本题是主观题,暂无解析】

【作业】第5周——周而复始的循环之道 练兵区——编程题——不计入总分

1、 问题:判断一个整型数据有几位v2.0
建议:【本题是主观题,暂无解析】

2、 问题:奖金计算
建议:【本题是主观题,暂无解析】

3、 问题:程序修改—1
建议:【本题是主观题,暂无解析】


点击这里,查看后续答案①

点击这里,查看后续答案②(阿布查查更好用)


; } 选项: A:666 B:错误信息 C:888 D:666,888 答案:


猜你喜欢
中国大学mooc慕课答案快速搜索教程
《商务英语精读(四)(南阳师范学院) 》mooc慕课答案2026年版
《商务英语(广东外语外贸大学) 》mooc慕课答案2026年版
《单片机技术应用(南京工业职业技术大学)1461493456 》mooc慕课答案2026年版
《智能控制(东北电力大学) 》mooc慕课答案2026年版
《园艺植物育种学总论(西北农林科技大学) 》mooc慕课答案2026年版
《化学反应工程(绥化学院) 》mooc慕课答案2026年版
《医学影像学(成都大学) 》mooc慕课答案2026年版
《工程图学–宋彦(中国矿业大学) 》mooc慕课答案2026年版
《2021秋大学物理AⅡ-电磁学(胡海云)(北京理工大学) 》mooc慕课答案2026年版
《投资银行与资本运营(福建师范大学协和学院) 》mooc慕课答案2026年版
《思想道德与法治(山东商业职业技术学院)1465503472 》mooc慕课答案2026年版
2017 2017秋C语言程序设计(威海王峥)(哈尔滨工业大学) 》mooc慕课答案2026年版
《大学体育(河北师范大学汇华学院) 》mooc慕课答案2026年版
《船舶的心脏-船舶动力装置技术管理6(大连海事大学) 》mooc慕课答案2026年版
《社会保障学(铜陵学院) 》mooc慕课答案2026年版
《跨文化交际(江汉大学) 》mooc慕课答案2026年版
《计算机辅助制造(CAM)(河南职业技术学院) 》mooc慕课答案2026年版
《养殖水化学(河南师范大学)1462096464 》mooc慕课答案2026年版
《2019年春普通昆虫学(一)(植保1701)(华中农业大学) 》mooc慕课答案2026年版
《中国近现代史纲要(彭蕙)(华南理工大学) 》mooc慕课答案2026年版
《2021秋线性代数(闫桂峰)(北京理工大学) 》mooc慕课答案2026年版
《跨境电子商务(南通大学) 》mooc慕课答案2026年版
《工程自动算量软件应用(广联达版)(江西理工大学) 》mooc慕课答案2026年版
《高频电子线路(东莞理工学院)1450898481 》mooc慕课答案2026年版
《中级会计学(山东女子学院)1463681446 》mooc慕课答案2026年版
《颜色科学A(陕西科技大学) 》mooc慕课答案2026年版
《数学建模(浙江财经大学) 》mooc慕课答案2026年版
《客户关系管理CRM(山东外事职业大学) 》mooc慕课答案2026年版
《信息检索(绥化学院) 》mooc慕课答案2026年版
《人工智能(浙江传媒学院) 》mooc慕课答案2026年版
《培训与开发(常州大学) 》mooc慕课答案2026年版
《船舶柴油机(5)(大连海事大学) 》mooc慕课答案2026年版
《21春-中国特色文化英语教学-匡岚04(苏州大学) 》mooc慕课答案2026年版
《钢琴教学法(泉州师范学院) 》mooc慕课答案2026年版
《物理与文化(内蒙古师范大学) 》mooc慕课答案2026年版
《西班牙语初级(山东外事职业大学) 》mooc慕课答案2026年版
《家畜繁殖学(沈阳农业大学) 》mooc慕课答案2026年版
《社会工作实务(黑龙江八一农垦大学) 》mooc慕课答案2026年版
《非线性剪辑(黄河水利职业技术学院)1206773211 》mooc慕课答案2026年版
《俄语基础语法(盐城师范学院) 》mooc慕课答案2026年版
《新媒体与社会治理(河北传媒学院) 》mooc慕课答案2026年版
《数学建模(曾福庚)(贵州民族大学) 》mooc慕课答案2026年版
《高等数学基础(南京科技职业学院)1463618443 》mooc慕课答案2026年版
《创新创业基础(北京交通大学) 》mooc慕课答案2026年版
《职场口笔译(福建师范大学)1467140491 》mooc慕课答案2026年版
《C语言程序设计(中北大学) 》mooc慕课答案2026年版
《信息安全导论(中原工学院) 》mooc慕课答案2026年版
《创业企业财务分析(浙江工商大学) 》mooc慕课答案2026年版
《英语演讲与辩论(湖南师范大学) 》mooc慕课答案2026年版
《数控加工工艺与编程(胡开元)(成都理工大学工程技术学院) 》mooc慕课答案2026年版
账户
更新
搜索
帮助
答案目录