文章目录[点我隐藏目录]

本答案对应课程为:点我自动跳转查看
本课程起止时间为:2019-09-10到2019-12-31
本篇答案更新状态:已完结

学习本课前你必须知道的那些事儿 自测客观题初体验(不计分)

1、 问题:你认为C语言是:
选项:
A:软件工程专业最重要的专业基础课之一
B:是一门通识课程
C:是一般性的课程
D:不确定
答案: 【软件工程专业最重要的专业基础课之一

2、 问题:相对于其它课程来说,你认为C语言是:
选项:
A:一门难学的课程
B:有一定难度
C:还好
D:很好学
答案: 【有一定难度

3、 问题:要想学好C语言,必须:
选项:
A:多了解,多练习,多思考。
B:关键在于理解,不用太练习。
C:关键在于练习,慢慢就理解了。
D:看会了加练习不用多想。
答案: 【多了解,多练习,多思考。

4、 问题:你学习C语言的目标是:
选项:
A:能进行程序设计,熟练编写C程序,为以后的学习打下良好的基础。
B:为了保研要考出好成绩
C:别挂科了就行
D:尽力而为吧!
答案: 【能进行程序设计,熟练编写C程序,为以后的学习打下良好的基础。

5、 问题:在学习中,你习惯于
选项:
A:老师把一切习题都安排好,就最好是先讲一遍然后在照着做。
B:自己先仔细看一老师要求,这样掌握的更加深入。
C:老师没讲的,我就不学!
D:我总是在老师要求提交作业的最后时刻才开始做!
答案: 【自己先仔细看一老师要求,这样掌握的更加深入。

6、 问题:我在学习中最需要老师的时候是:
选项:
A:讲课
B:遇到困难,无法理解学习内容。
C:督促我的学习
D:不确定
答案: 【遇到困难,无法理解学习内容。

7、 问题:学习的过程中你和同学之间的关系是:
选项:
A:各学各的。
B:经常和同学一起研讨一些学习方面的问题,觉得收益很大。
C:经常让同学给我讲一些我不明白的问题
D:关系融洽,作业和考试打小抄时全靠Ta了
答案: 【经常和同学一起研讨一些学习方面的问题,觉得收益很大。

8、 问题:在学习中遇到比较难的问题时,你会:
选项:
A:查阅资料,和同学一起研讨,集思广益,一定能把它做出来。
B:去问老师或别的同学
C:看一下,如果不会就不做了。
D:自己一人深入研究,反复推敲,非把它攻下来不可!
答案: 【查阅资料,和同学一起研讨,集思广益,一定能把它做出来。

9、 问题:对参加讨论你的看法是:
选项:
A:很好,大家集思广益能更深入理解和运用所学
B:总在那儿提问题,让人觉得你什么都不会,不是傻蛋吗?
C:总在那儿没完没了地说,显摆啥呀!
D:到论谈闲扯,没那功夫儿,不如玩一会儿去!
答案: 【很好,大家集思广益能更深入理解和运用所学

10、 问题:对于大学学习你认为
选项:
A:大学的学习只有进度安排,没有中学那种严格的管理机制,一切都秋后算帐,一切都靠自律,压力很大。
B:上中学的时候老师就说过:“上大学就不用学习了!”
C:听学长们说:“只要上了大学就肯定能毕业!”,考试不通过就补考呗!
D:还没想呢!
答案: 【大学的学习只有进度安排,没有中学那种严格的管理机制,一切都秋后算帐,一切都靠自律,压力很大。

【作业】学习本课前你必须知道的那些事儿 简答题初体验

1、 问题:关键字
评分规则: 【 也称保留字,是C语言预定义的,具有特殊意义的单词1分。标准C89定义了32个关键字1分。一般和属性及操作有关1分。

【作业】第1讲 变量、常量和数据类型 第1讲课前编程练习(不记分)

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

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

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

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

5、 问题:不同类型的变量的定义和赋值
建议:【本题是主观题,暂无解析】

【作业】第1讲 变量、常量和数据类型 第1讲 简答题

1、 问题:说明与其它语言相比C语言的特点和应用领域
评分规则: 【 小巧、灵活、功能强大且方便调用低级功能,主要用于高速、高效、低级功能调用多的小型软件

2、 问题:最基本的C语言源程序结构包括哪要素
评分规则: 【 预处理(如#include),主函数(main())。

3、 问题:C语言的常用数据类型有哪些,每种类型表示数字形式和范围
评分规则: 【 char、int、float、double

4、 问题:举生活中的例子说明,为什么要划分数据类型?
评分规则: 【 举出合适的例子并说明:1.能合理地使用内存;2.方便进行相应的运算。

5、 问题:什么是常量?什么是变量?
评分规则: 【 常量是某种类型的标识符在初始化之后不能在程序中再改其值,而变量可以在其有效作用域内赋值语句或表达式改变其值。

【作业】第1讲 变量、常量和数据类型 第1讲 课堂进阶练习

1、 问题:展示计算机的工作原理:由每班出16个人组成一个存储器。由四个学生担输入、输出、运算器和控制器由控制器控制输入一个数字5和一个数字8,并将其转换成2进制数存入存储器的某一单元。由控制器控制运算器分别取出数字两个已经存在的单元数字相加并存入一个定的存储单元。由控制器控制输出取出计算结果根据游戏过程完成下列作业:列出组成计算机的主要部件并描述其功能。说明怎样在存储器中找到存储指定数据或程序的位置?在高级程序设计语言中怎样指明某个数据的存储位置?计算机为什么使用二进制,怎样把十进制的数据转换成二制?
评分规则: 【 存储器,用于存储数据和程序
控制器,根据存储器的程序指令指挥其它主要部件完成指定的功能
运算器,根据控制器的指令完成指定的运算
输入设备,从计算机外部读入数据
输出设备,将存储器中指定位置的信息以某种方式传送到计算机外部
使用“地址”指明的数据或程序在存储器中的位置
在高级程序设计语言中使用“变量”或“常量”代替直接使用地址,“变量”或“常量”就不为地址起的名字。
因为几乎所有的电气原件都只有二个状态,状态少的电气原件容易生产制造。
将十制整数转换成二进制使用除二取余法。
将十进制小数转换成二进制使用乘二取整法。

第1讲 变量、常量和数据类型 第1讲客观题自测(不记分)

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讲 变量、常量和数据类型 课前编程练习 作业题5

1、 问题:不同类型的变量的定义和赋值
建议:【本题是主观题,暂无解析】

学习本课前你必须知道的那些事儿 客观题测验初体验(不记分)

1、 问题:你认为C语言是:
选项:
A:软件工程专业最重要的专业基础课之一
B:是一门通识课程
C:是一般性的课程
D:不确定
答案: 【软件工程专业最重要的专业基础课之一

2、 问题:相对于其它课程来说,你认为C语言是:
选项:
A:一门难学的课程
B:有一定难度
C:还好
D:很好学
答案: 【一门难学的课程

3、 问题:要想学好C语言,必须:
选项:
A:多了解,多练习,多思考。
B:关键在于理解,不用太练习。
C:关键在于练习,慢慢就理解了。
D:看会了加练习不用多想。
答案: 【多了解,多练习,多思考。

4、 问题:你学习C语言的目标是:
选项:
A:能进行程序设计,熟练编写C程序,为以后的学习打下良好的基础。
B:为了保研要考出好成绩
C:别挂科了就行
D:尽力而为吧!
答案: 【能进行程序设计,熟练编写C程序,为以后的学习打下良好的基础。

5、 问题:在学习中,你习惯于
选项:
A:老师把一切习题都安排好,就最好是先讲一遍然后在照着做。
B:自己先仔细看一老师要求,这样掌握的更加深入。
C:老师没讲的,我就不学!
D:我总是在老师要求提交作业的最后时刻才开始做!
答案: 【自己先仔细看一老师要求,这样掌握的更加深入。

6、 问题:我在学习中最需要老师的时候是:
选项:
A:讲课
B:遇到困难,无法理解学习内容。
C:督促我的学习
D:不确定
答案: 【遇到困难,无法理解学习内容。

7、 问题:学习的过程中你和同学之间的关系是:
选项:
A:自己学自己的,不和别人搭界。
B:经常和同学一起研讨一些学习方面的问题,觉得收益很大。
C:经常让同学给我讲一些我不明白的问题
D:关系融洽,作业和考试打小抄时全靠Ta了
答案: 【自己学自己的,不和别人搭界。

8、 问题:在学习中遇到比较难的问题时,你会:
选项:
A:查阅资料,和同学一起研讨,集思广益,一定能把它做出来。
B:去问老师或别的同学
C:看一下,如果一眼看不明白就不做了。
D:自己一人深入研究,反复推敲,非把它攻下来不可!
答案: 【查阅资料,和同学一起研讨,集思广益,一定能把它做出来。

9、 问题:对参加讨论你的看法是:
选项:
A:很好,大家集思广益能更深入理解和运用所学
B:总在那儿提问题,让人觉得你什么都不会,不是傻蛋吗?
C:总在那儿没完没了地说,显摆啥呀!
D:到论谈闲扯,没那功夫儿,不如玩一会儿去!
答案: 【很好,大家集思广益能更深入理解和运用所学

10、 问题:对于大学学习你认为
选项:
A:大学的学习只有进度安排,没有中学那种严格的管理机制,一切都秋后算帐,一切都靠自律,压力很大。
B:上中学的时候老师就说过:“上大学就不用学习了!”
C:听学长们说:“只要上了大学就肯定能毕业!”,考试不通过就补考呗!
D:还没想呢!跟着大家一起混呗!
答案: 【大学的学习只有进度安排,没有中学那种严格的管理机制,一切都秋后算帐,一切都靠自律,压力很大。

【作业】学习本课前你必须知道的那些事儿 编程题初体验

1、 问题:将题目内容中的程序段,选中,复制并粘贴到答题区中。
建议:【本题是主观题,暂无解析】

【作业】学习本课前你必须知道的那些事儿 进阶练习初体验

1、 问题:展示计算机的工作原理:由每班出16个人组成一个存储器。由四个学生担输入、输出、运算器和控制器由控制器控制输入一个数字5和一个数字8,并将其转换成2进制数存入存储器的某一单元。由控制器控制运算器分别取出数字两个已经存在的单元数字相加并存入一个定的存储单元。由控制器控制输出取出计算结果根据游戏过程完成下列作业:列出组成计算机的主要部件并描述其功能。说明怎样在存储器中找到存储指定数据或程序的位置?在高级程序设计语言中怎样指明某个数据的存储位置?计算机为什么使用二进制,怎样把十进制的数据转换成二制?
评分规则: 【 存储器,用于存储数据和程序
控制器,根据存储器的程序指令指挥其它主要部件完成指定的功能
运算器,根据控制器的指令完成指定的运算
输入设备,从计算机外部读入数据
输出设备,将存储器中指定位置的信息以某种方式传送到计算机外部
使用“地址”指明的数据或程序在存储器中的位置
在高级程序设计语言中使用“变量”或“常量”代替直接使用地址,“变量”或“常量”就不为地址起的名字。
因为几乎所有的电气原件都只有二个状态,状态少的电气原件容易生产制造。
将十制整数转换成二进制使用除二取余法。
将十进制小数转换成二进制使用乘二取整法。

【作业】第1讲 变量、常量和数据类型 第1讲课堂编程记分测验

1、 问题:计算长方形的边长
建议:【本题是主观题,暂无解析】

第1讲 变量、常量和数据类型 第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;

【作业】第2讲 运算符和表达式 第2讲 课前编程练习1(不记分)

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

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

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

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

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

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

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

第2讲 运算符和表达式 第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讲 输入和输出 课前编程练习2第6题

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

第3讲 输入和输出 第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讲 输入和输出 第3讲 课前编程练习1(不记分)

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

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

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

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

【作业】第3讲 输入和输出 第3讲 课前编程练习2(不记分)

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

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

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

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

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

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

【作业】第2讲 运算符和表达式 第2讲 简答题

1、 问题:C语言的运算符分几类?优先级是怎样的?
评分规则: 【 一般分成15类(1分)
优先级的顺序是:访单算、移关系、等不等、位逻辑、与或条、赋逗号(答全得2分,不全得1分,没答不得分)

2、 问题:C算术运算符中比中学数学新增了哪个运算符,功能是什么?
评分规则: 【 新增的运算符是%
%的功能是求余数

3、 问题:在什么情况下增1和减1运算符“++”和“–”放在变量的位置不影响表达式的值。
评分规则: 【 放在变量的后面时,如i++或i–时不影响表达式的值。

4、 问题: 什么时候表达式会进行自动类型的转换?
评分规则: 【 不同类型的操作数其运算结果是范围较大的类型操作数的类型。

5、 问题:如果:int i=2,j=3;则i+++j的值是多少?为什么?
评分规则: 【 5
因为i++的优先组高于i+,所以本式为:(i++)+j=5

6、 问题:设有:int a=3;则(float)a式的值为多少?a值为多少?
评分规则: 【 (float)a=3.0
a仍为3

7、 问题:表达式(a=3)的值是多少?
评分规则: 【 (a=3)的值为3

8、 问题:如果,int a=1,b=2,c=3;表达式(a,b,c)的值是多少?
评分规则: 【 表达式(a,b,c)的值应该是最后一个变量的值3。

9、 问题:什么是算法?描述算法常用方法有哪些,说明自然语言描述法和流程图各有什么优缺点?
评分规则: 【 算法解决问题的步骤。
描述算法的常用方法有自然语言、流程图、盒图、问题分析图、伪代码等。
自然语言描述法方便、灵活,易于在头脑风暴等活动等软件设计阶段进行交流。但不够严谨,容易出现歧义。
程序流程图具有描述清晰,明确,无歧义;但绘制、修改和交流都不十分方便,一般都在算法确定后再绘制流程图。

【作业】第3讲 输入和输出 第3讲 简答题

1、 问题:函数scanf()的返回值有几个?都在什么情况下出现?
评分规则: 【 共三个返回值:0,1,-1
输入正常时返回1
输入异常,如输入与格式转换说明符描述的类型不符等时返回0。
输入意外终止,如输入Ctrl+z时返回-1

2、 问题:scanf()在使用%c格式符输入字符型数据时可能会出现什么问题,如何解决?
评分规则: 【 会读入输入前一个数据时的回车符
常用有两种方法:多写一次字符输入语句把前面的回车“吃掉”,然后再写一个字符输入语句读入正确的字符;1分在格式转换说明符前面加一个空格,使用输入格式变为:空格+输入的字符。1分

3、 问题:写出使用printf()进行格式化屏幕输出变量值的一般格式。
评分规则: 【 printf(格式控制字符串/1分/,输出值参数表/1分/);

4、 问题:格式控制字符串可以由哪些元素构成?各自的功能是什么?
评分规则: 【 说明字符串:对输出的值进行说明,原样输出;格式控制字符串:由%开始 并以转换字符结束,用于指定各输出值参数的输出格式;格式修饰符:对输出格式进行微调,如指定域宽、显示精度和对齐方式等。转义字符:以反斜线开头的字符序列,用于描述特定的控制字符列出全部元素得2分,说明所有的功能得2分。

5、 问题:在使用scanf()输入变量值时要注意什么?。设有float a;int b; 写出在为变量a输入5.0及为变量b输入1时,必须输入a=5.0 b=1的输入语句。
评分规则: 【 变量一定要用地址形式。1分如果在控制字符串中存在格式说明符以外的其他字符,这些字符也必须一并输入。1分
scanf(“a=%f,b=%d “,a,b)

6、 问题:关于编程风格的问题,我们该注意哪些问题?
评分规则: 【 为标识符选择合适名字,做到见名知义
不要把多个短语句写在一行中;
使用缩进规则明确代码的层次关系
较长的语句(一般是指在视区中不能完整显示)的要分成多行书
适当地使用注释,可以提高代码的可读性

【作业】第2讲 运算符和表达式 课前编程练习1第7题

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

第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讲 运算符和表达式 第2讲 课堂编程记分测验

1、 问题:冰箱的温度
建议:【本题是主观题,暂无解析】

【作业】第2讲 运算符和表达式 第2讲进阶记分练习

1、 问题:已知有足量的水,3ml、5ml的容器各一个,试设计并用自然语言描述“出量出4ml水”的算法,也就是设计和描述出“量出4ml的水”的步骤。要求:计算步骤描述清晰;计算步骤划分较为合理;按计算步骤能得出正确的结果。
评分规则: 【 计算步骤描述清晰得1分;计算步骤划分较为合理得1分;按计算步骤能得出正确的结果得1分。参考答案(本答案仅供参考,只要满足上面的采分点即可得分):step1:用水灌满5ml的容器;step2:将5ml容器的水倒灌3ml的容器;step3:将3ml容器中的水倒掉,并将5ml容器中剩余的水倒入3ml容器;step4:将5ml容器灌满水;step5:并用5ml容器中的水灌满3ml的容器,5ml容器中就剩下了4ml。

2、 问题:一、两组互相录制关于流程图使用方法的视频(分辨率<720p,时间少于3分钟),被录者在录制主要内容后还需回答5个关于流程图的问题(问题要事先准备好)。二、绘制计算圆的面积的程序流程图。要求:流程线自顶向下。程序流程描述清晰;正确使用图例;模块划分合理;主要用自然语言说明;
评分规则: 【 流程线基本自顶向下,开始必须在最上边,结束必须在最下面得1分。能清晰地看出所描述的流程得1分正确使用图例得1分按功能、类型、操作等划分模块得1分。模块框中主要使用自然语言描述,可以出现一些C语言元素得1分。但说明完全是C语言代码,本题得0分
关于流程图的介绍清晰完整得1分,问题回答的正确得1分

【作业】第2讲 运算符和表达式 第2讲 课堂编程记分练习(重发)

1、 问题:已知有足量的水,3ml、5ml的容器各一个,试设计并用自然语言描述“出量出4ml水”的算法,也就是设计和描述出“量出4ml的水”的步骤。要求:计算步骤描述清晰;计算步骤划分较为合理;按计算步骤能得出正确的结果。
评分规则: 【 计算步骤描述清晰得1分;计算步骤划分较为合理得1分;按计算步骤能得出正确的结果得1分。参考答案(本答案仅供参考,只要满足上面的采分点即可得分):step1:用水灌满5ml的容器;step2:将5ml容器的水倒灌3ml的容器;step3:将3ml容器中的水倒掉,并将5ml容器中剩余的水倒入3ml容器;step4:将5ml容器灌满水;step5:并用5ml容器中的水灌满3ml的容器,5ml容器中就剩下了4ml。

2、 问题:一、两组互相录制关于流程图使用方法的视频(分辨率<720p,时间少于3分钟),被录者在录制主要内容后还需回答5个关于流程图的问题(问题要事先准备好)。二、绘制计算圆的面积的程序流程图。要求:流程线自顶向下。程序流程描述清晰;正确使用图例;模块划分合理;主要用自然语言说明;
评分规则: 【 流程线基本自顶向下,开始必须在最上边,结束必须在最下面得1分。能清晰地看出所描述的流程得1分正确使用图例得1分按功能、类型、操作等划分模块得1分。模块框中主要使用自然语言描述,可以出现一些C语言元素得1分。但说明完全是C语言代码,本题得0分
关于流程图的介绍清晰完整得1分,问题回答的正确得1分

【作业】第3讲 输入和输出 第3讲 课堂编程记分测验

1、 问题:字符的ASCII值
建议:【本题是主观题,暂无解析】

【作业】第3讲 输入和输出 第3讲 进阶练习题

1、 问题:第3讲课堂进阶作业:简单菜单程序(任务详情见附件中的.pdf文档),要求1. 写出用自然语言描述程序的算法,并提交。2. 提交对程序结构的分析的流程图(可上传流程图的手机快照)3. 提交程序的CB工程文件。4. 如有雷同得0分。提示:逻辑判断可以使用三目运算符“?:”,但不得使用未学到的内容
评分规则: 【 提交了“算法描述”得1分提交了流程图快照得1分流程图规范、工整得1分
工程文件能正常编译、连接、运行。
完成了菜单界面显示
完成了输入和输出的功能
完成了输入有效性判断

第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

第4讲 选择控制结构 第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=a1,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”,a7<回车>则程序输出为
选项:
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(不记分)

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

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

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

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

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

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

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

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

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

【作业】第5讲 循环控制结构 第5讲 课前编程练习2(不记分)

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

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

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

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

5、 问题:程序改错-1
建议:【本题是主观题,暂无解析】

6、 问题:程序改错-2
建议:【本题是主观题,暂无解析】

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

8、 问题:猴子吃桃程序_扩展1
建议:【本题是主观题,暂无解析】

9、 问题:猴子吃桃程序_扩展2
建议:【本题是主观题,暂无解析】

10、 问题:6位密码输入检测
建议:【本题是主观题,暂无解析】

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

12、 问题:检测输入数据中奇数和偶数的个数
建议:【本题是主观题,暂无解析】

13、 问题:计算球的反弹高度
建议:【本题是主观题,暂无解析】

实验一:选择控制结构 实验一课前填空题自测

1、 问题:求解赋值表达式a=(b=10)%(c=6),表达式的值为:
答案: 【4

2、 问题:求解赋值表达式a=(b=10)%(c=6),a的值为:
答案: 【4

3、 问题:求解赋值表达式a=(b=10)%(c=6),a的值为:
答案: 【10

4、 问题:求解赋值表达式a=(b=10)%(c=6),c的值为:
答案: 【6

5、 问题:C语言中,要求操作数必须是整数类型的运算符为
答案: 【%

6、 问题:以下程序运行后输出的结果是:
答案: 【0

7、 问题:
答案: 【0

8、 问题:
答案: 【4

9、 问题:
答案: 【1

10、 问题:
答案: 【67G

【作业】第5讲 循环控制结构 第5讲 进阶练习

1、 问题:屏幕菜单是多功能程序选择执行给定功能常用的技术。根据附件中的程序样例,首先进行程序的设计,小组研讨时使用自然语言写出算法,然后根据研讨出的算法绘制成流程图,然后在CB环境下完成编程并进行测试。需要提交的文件有:自然语言算法描述流程图手机快照(就是先把流程图绘制在纸上,然后用手机拍照上传)工程文件夹展示与答辩视频(视频使用手机用480分辨率拍摄,时长时间3分钟左右,需要使用QQ传输压缩)(提示:获取并返回一个字符的标准库函数:getch(),获取方向键要取两次值,第一次会返回224,第二次为按键的ASCII值;每次按下方向后要将当前屏幕上的信息清除,清屏函数system(“cls”)。然后再写出新的信息。)
评分规则: 【 使用了自然语言描述了算法1分;语言描述清晰、通顺1分;步骤划分清晰、合理1分;
流程图逻辑关系正确且与自然语言描述的算法及.C文件中的编码吻合。得1分流程图图例使用正确,流程图工整、美观。流程线自顶向下。得1分流程图清晰、规范。得1分
程序运行正确得1分
视频展示清晰、规范,得2分视频中对提问的回答正确。得1分

【作业】第5讲 循环控制结构 第5讲 简答题

1、 问题:试说明goto语句有什么缺点?是否可以在编程中不用goto。
评分规则: 【 由于goto语句可以使程序的流程线跳转到程序的任何地方,因此会造成程序流程混乱,1分增加了出错的可能性,1分并增加了调试难度。1分
现在的编程一般都不使用goto语句。1分使用结构化程序设计方法可以抛弃goto语句,同时还可以使用流程线清晰,顺畅!1分

2、 问题:试说明continue语句的功能,这个语句有什么缺点?是否可以不用这个语句
评分规则: 【 continue语句的功能是,停止执行continue后面的操作返回到循环体的头部重新开使循环体的运行。
一般都不使用这个语句,可以使用一个选择结构替代continue
与goto一样,该语句会造成流程线混乱!

3、 问题:试说明break语句的功能,分析这个语句的缺点,是否可以不用这个语句
评分规则: 【 break语句用于终止当前循环,并从该循环的后一句开始继续执行;
与goto语句一样break会使流程线混乱,一般不要使用这种方式。
可以设法将循环的条件表达式的值变成“假”来结束循环

4、 问题:结束一个循环有哪些方法?如果计数循环的计数还没有结束,用什么方法结束该计数循环。
评分规则: 【 循环条件表达式为“假”;使用break语句;
将计数变量赋一个循环表达式为假的值;例如有循环for(i=0;i<10;i++),在任何时刻将i设置为10,循环马上结束。

5、 问题:什么是嵌套循环?嵌套循环结束的标志是什么?
评分规则: 【 嵌套循环就是一个循环的循环体中包含着另一个循环。
外层的循环体结束时,嵌套循环就结束了!

【作业】实验一:选择控制结构 实验一 简答题

1、 问题:简要说明什么是当型循环?什么是直到型循环?并说明其差别。
评分规则: 【 当型循环是“当”循环条件满足时进行重复执行!
直到型循环是“直到”循环条件满足时停止重复执行!
“当“循环先判断后执行,“直到”型循环是先执行后判断;1分”当“循环可能一次都不执行,“直到”循环肯定要执行一次;1分“当”循环当条件成立时执行,“直到”循环条件成立时停止。1分

2、 问题:有人把计数循环说成是变化最多的“万能循环语句”,说明为什么。
评分规则: 【 计数循环甚至可以简化成for(;;)这时就是一个死循环了,只要把二个分号间加上一个循环条件就是一个“当”型循环了。但最方便的还是计数。

3、 问题:什么是递推?适合解决哪类问题?
评分规则: 【 递推是指用利用前面的结果计算出后面的结果的一种方法。
递推最适合进行那种需要一步一步计算出结果,而每一步结果都和前一步结果有关的问题,如杨辉三角形,斐波那契级数等。

4、 问题:绘制循环体为A,逻辑条件为exp的当型循环程序流程图,直到型循环程序流程图。
评分规则: 【 评分标准:流程描述正确;2分图例正确;2分流程基本自顶向下。1分参考答案:

5、 问题:绘制循环体为A,初始条件为n=1,终止条件为10的计数循环程序流程图。注意要使用for循环专用图例。
评分规则: 【 评分标准:使用了for循环专用图例;使用了六边形表1分,使用了圆形页内引用符作为循环体分隔符1分流程基本清晰、美观,主流程线自顶向下。1分参考答案:

【作业】第5讲 循环控制结构 第5讲 课前编程练习1(不记分)

1、 问题:马克思手稿中的趣味数学题
建议:【本题是主观题,暂无解析】

2、 问题:猜神童年龄
建议:【本题是主观题,暂无解析】

3、 问题:闰年相关的问题v3.0——计算有多少闰年
建议:【本题是主观题,暂无解析】

4、 问题:闰年相关的问题v4.0——计算心跳数
建议:【本题是主观题,暂无解析】

【作业】第4讲 选择控制结构 第4讲 课前简答题(记分)

1、 问题:C语言中的关系运算进行的是什么运算?有哪些运算符?关系运算优先级是怎样?
评分规则: 【 关系运算是对两个数据的大小于进行比较。或:“大于、大于等于、小于、小于等于、相等和不相等”。
>、<、>=、<=、==、!=
关系运算符的关系是:!=,==,>、<、>=、<=优先依增高

2、 问题:C语言的逻辑运算运算主要进行哪些运算。逻辑运算有哪些运算符?那个逻辑运算符的优先级高?
评分规则: 【 主要进行两数之间的布尔运算;或“与”、“或”、”非”等运算。
!、||、&&
优先组按”||”,”&&”,”!”依次增高。

3、 问题:逻辑运算的“短路”是什么意思?
评分规则: 【 逻辑运算的“短路”是指:在进行完一个表达式前面的一些逻辑运算后已经可以确定表达式的值而不需要进行剩下的运算了。

4、 问题:判断浮点数或双精度数相等时要注意些什么?为什么?
评分规则: 【 不能直接使用“==”判断相等,只要两数的差小于一个很小的值就认为相等了。
因为计算机的计算过程,包括数制转换、数据存储长度等存在误差。

5、 问题:绘出条件语句如果exp为真执行A,否则执行B的逻辑流程图?流程线基本向下图例使用正确程序流程描述正确突出了主要处理:主要处理在判定框的正下方在正确的位置写出了判定表达式和真假值的出口
评分规则: 【 评分标准:流程线基本向下得1分图例使用正确得1分程序流程描述正确得1分突出了主要处理:主要处理在判定框的正下方得1分在正确的位置写出了判定表达式和真假值的出口得1分参考答案:

6、 问题:开关switch语句常用于什么情况,对开关量的类型有什么要求?其流程图怎样绘制
评分规则: 【 评分标准:流程线基本向下得1分图例使用正确得2分程序流程描述正确得1分在正确的位置写出了判定表达式标号得1分参考答案:

实验一:选择控制结构 实验一课前选择题自测

1、 问题:下列不是C语言分隔符的是
选项:
A:双引号
B:回车
C:空格
D:制表符
答案: 【双引号

2、 问题:C语言程序编译时,程序中的注释部分
选项:
A:不参加编译,也不会出现在目标程序中
B:参加编译,并会出现在目标程序中
C:参加编译,但不会出现在目标程序中
D:不参加编译,但会出现在目标程序中
答案: 【不参加编译,也不会出现在目标程序中

3、 问题:表达式3.6-5/2+1.2+5%2的值是:
选项:
A:3.8
B:4.3
C:4.8
D:3.3
答案: 【3.8

4、 问题:若有以下程序段(n所赋的是八进制数):int m=32767,n=032767;printf(“%d,%o”,m,n);执行后的结果是:
选项:
A:32767,32767
B:32767,032767
C:32767,77777
D:32767,077777
答案: 【32767,32767

5、 问题:
选项:
A:65535
B:32767
C:-1
D:oxFFFF
答案: 【65535

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

7、 问题:若已定义x和y为double类型,则在表达式x=1,y=x+3/2中y的值是
选项:
A:2.0
B:2
C:1
D:2.5
答案: 【2.0

8、 问题:以下是用户定义 的标识符,其中合法的是:
选项:
A:nit
B:int
C:123
D:a+b
答案: 【nit

9、 问题:若有代数式(3ae)/(bc),则下面不正确的C语言表达式是:
选项:
A:3ae/bc
B:a/b/c
e3
C:3
ae/b/c
D:a
e/c/b3
答案: 【3
ae/bc】

10、 问题:以下能正确定义变量a、b和c并为其赋值的语句是
选项:
A:int a=5,b=5,c=5;
B:int a=5;b=5;c=5;
C:int a,b,c=5;
D:a=5,b=5,c=5;
答案: 【int a=5,b=5,c=5;

11、 问题:下列哪个是C语言的关键字:
选项:
A:int
B:char
C:main
D:function
E:=
答案: 【int ;
char

12、 问题:若在定义语句int a,b,c;之后,接着执行以下的语句,则能语句是
选项:
A:scanf(“%d”,&c);
B:scanf(“%d%d%d”,a,b,c);
C:scanf(“%d”,a,b,c);
D:scanf(“%d”,a);
答案: 【scanf(“%d”,&c);

13、 问题:
选项:
A:2,1
B:6,1
C:6,0
D:2,0
答案: 【2,1

14、 问题:以下不能正确计算代数式值的C语言表达是
选项:
A:1/3sin(1/2)sin(1/2)
B:sin(0.5)sin(0.5)/3
C:pow(
sin(0.5),2)/3
D:1/3.0pow(sin(1.0/2),2)
答案: 【1/3
sin(1/2)*sin(1/2)】

15、 问题:设有定义:int k=1,m=2;float f=7;则错误的表达式为:
选项:
A:k%f
B:k=k>=k
C:-k++
D:k>=f&&f>=m
答案: 【k%f

16、 问题:
选项:
A:2
B:3
C:1
D:0
答案: 【2

17、 问题:
选项:
A:0*2*
B:
0

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

【作业】第4讲 选择控制结构 第4讲 进阶练习题(记分)

1、 问题:1. 题目:生成10以内加减法题目2. 内容及要求:随机生一个10以内的加、减法练习题,其显示格式为:“6+1=”或“5-2=”。要求在生成加法时,其和大于10;生成减法时差不小于0。3. 提示与补充:本题需要生成10以此的随机数,在C语言生成随机数时一般使用rand()标准库函数,其返回值是0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,其值为缺省值为2147483647。使用rand()函数需要包含stdlib.h文件。rand()是随机数序列固定的伪随机数,即每次产生的随机数序列是固定值。为了得到真随机数,在每次调用rand()函数之前需使用srand()给rand()提供种子,srand()中的seed一般由当前时间函数得到,即: srand( (unsigned)time( NULL ) ) 。练习步骤: 完成课堂选择题测验和编程题测验之后,可以开始本练习题。10:30开始其他人完成测验之后开始进行组内研讨,然后每人独立完成作业并在12:00前将本题的CB工程文件夹压缩为.rar或.zip文件格式提交至SPOC,课后要按SPOC要求的时间进行互评。
评分规则: 【 按时提交了作业
程序能运行
运行10次,程序给出的题目正确,包括:随机出现加、减法,且和不大于10,差不为负。每次算式不产生变化扣2分;出现和大于10的情况扣2分;出现差为负的情况扣2分。

【作业】实验一:选择控制结构 实验一 课前编程练习

1、 问题:韩信点兵
建议:【本题是主观题,暂无解析】

2、 问题:鸡兔同笼问题:若干只鸡和兔关在一个笼子 ,从上面数有35个头,从下面数共有94只脚。编程求鸡、兔名有多少只?(提示,先进行数学建模,也就是推导出公式,然后在进行算法设计,最后编程实现。)
建议:【本题是主观题,暂无解析】

3、 问题:打印图案
建议:【本题是主观题,暂无解析】

【作业】第4讲 选择控制结构 第4讲 课前编程练习2(不记分)

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

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

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

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

【作业】学习本课前你必须知道的那些事儿 G转专业–进阶练习初体验(不计分,但需要认真完成)

1、 问题:展示计算机的工作原理:列出组成计算机的主要部件并描述其功能。说明怎样在存储器中找到存储指定数据或程序的位置?在高级程序设计语言中怎样指明某个数据的存储位置?计算机为什么使用二进制,怎样把十进制的数据转换成二制?
评分规则: 【 存储器,用于存储数据和程序
控制器,根据存储器的程序指令指挥其它主要部件完成指定的功能
运算器,根据控制器的指令完成指定的运算
输入设备,从计算机外部读入数据
输出设备,将存储器中指定位置的信息以某种方式传送到计算机外部
使用“地址”指明的数据或程序在存储器中的位置
在高级程序设计语言中使用“变量”或“常量”代替直接使用地址,“变量”或“常量”就不为地址起的名字。
因为几乎所有的电气原件都只有二个状态,状态少的电气原件容易生产制造。
将十制整数转换成二进制使用除二取余法。
将十进制小数转换成二进制使用乘二取整法。

【作业】学习本课前你必须知道的那些事儿 G转专业–简答题初体验(不计分)

1、 问题:为什么要学习C语言?
评分规则: 【 必修课,1分。成为编程高手的基础,1分。为学习其它语言打基础,1分。每个条目1分。

学习本课前你必须知道的那些事儿 G转专业–自测客观题初体验(不计分)

1、 问题:你认为C语言是:
选项:
A:软件工程专业最重要的专业基础课之一
B:是一门通识课程
C:是一般性的课程
D:不确定
答案: 【软件工程专业最重要的专业基础课之一

2、 问题:相对于其它课程来说,你认为C语言是:
选项:
A:一门难学的课程
B:有一定难度
C:还好
D:很好学
答案: 【有一定难度

3、 问题:要想学好C语言,必须:
选项:
A:多了解,多练习,多思考。
B:关键在于理解,不用太练习。
C:关键在于练习,慢慢就理解了。
D:看会了加练习不用多想。
答案: 【多了解,多练习,多思考。

4、 问题:你学习C语言的目标是:
选项:
A:能进行程序设计,熟练编写C程序,为以后的学习打下良好的基础。
B:为了保研要考出好成绩
C:别挂科了就行
D:尽力而为吧!
答案: 【能进行程序设计,熟练编写C程序,为以后的学习打下良好的基础。

5、 问题:在学习中,你习惯于
选项:
A:老师把一切习题都安排好,就最好是先讲一遍然后在照着做。
B:自己先仔细看一老师要求,这样掌握的更加深入。
C:老师没讲的,我就不学!
D:我总是在老师要求提交作业的最后时刻才开始做!
答案: 【自己先仔细看一老师要求,这样掌握的更加深入。

6、 问题:我在学习中最需要老师的时候是:
选项:
A:讲课
B:遇到困难,无法理解学习内容。
C:督促我的学习
D:不确定
答案: 【遇到困难,无法理解学习内容。

7、 问题:学习的过程中你和同学之间的关系是:
选项:
A:各学各的。
B:经常和同学一起研讨一些学习方面的问题,觉得收益很大。
C:经常让同学给我讲一些我不明白的问题
D:关系融洽,作业和考试打小抄时全靠Ta了
答案: 【经常和同学一起研讨一些学习方面的问题,觉得收益很大。

8、 问题:在学习中遇到比较难的问题时,你会:
选项:
A:查阅资料,和同学一起研讨,集思广益,一定能把它做出来。
B:去问老师或别的同学
C:看一下,如果不会就不做了。
D:自己一人深入研究,反复推敲,非把它攻下来不可!
答案: 【查阅资料,和同学一起研讨,集思广益,一定能把它做出来。

9、 问题:对参加讨论你的看法是:
选项:
A:很好,大家集思广益能更深入理解和运用所学
B:总在那儿提问题,让人觉得你什么都不会,不是傻蛋吗?
C:总在那儿没完没了地说,显摆啥呀!
D:到论谈闲扯,没那功夫儿,不如玩一会儿去!
答案: 【很好,大家集思广益能更深入理解和运用所学

10、 问题:对于大学学习你认为
选项:
A:大学的学习只有进度安排,没有中学那种严格的管理机制,一切都秋后算帐,一切都靠自律,压力很大。
B:上中学的时候老师就说过:“上大学就不用学习了!”
C:听学长们说:“只要上了大学就肯定能毕业!”,考试不通过就补考呗!
D:还没想呢!
答案: 【大学的学习只有进度安排,没有中学那种严格的管理机制,一切都秋后算帐,一切都靠自律,压力很大。

【作业】实验一:选择控制结构 实验一课前编程练习第1题重发

1、 问题:韩信点兵
建议:【本题是主观题,暂无解析】

【作业】第4讲 选择控制结构 第4讲 最新进阶练习题(前一个进阶练习有错误,请使用次发布的“进阶练习”)

1、 问题:1. 题目:生成10以内加减法题目2. 内容及要求:随机生一个10以内的加、减法练习题,其显示格式为:“6+1=”或“5-2=”。要求在生成加法时,其和不大于10;生成减法时差不小于0。3. 提示与补充:本题需要生成10以此的随机数,在C语言生成随机数时一般使用rand()标准库函数,其返回值是0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,其值为缺省值为2147483647。使用rand()函数需要包含stdlib.h文件。rand()是随机数序列固定的伪随机数,即每次产生的随机数序列是固定值。为了得到真随机数,在每次调用rand()函数之前需使用srand()给rand()提供种子,srand()中的seed一般由当前时间函数得到,即: srand( (unsigned)time( NULL ) ) 。
评分规则: 【 按时提交了作业
程序能运行
运行10次,程序给出的题目正确,包括:随机出现加、减法,且和不大于10,差不为负。每次算式不产生变化扣2分;出现和大于10的情况扣2分;出现差为负的情况扣2分。

【作业】第4讲 选择控制结构 第4讲 课堂编程测验(记分)

1、 问题:奇偶数
建议:【本题是主观题,暂无解析】

第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”,a7<回车>则程序输出为
选项:
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=a1,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可有可无。

【作业】学习本课前你必须知道的那些事儿 G转专业–编程题初体验(不计分)

1、 问题:将题目内容中的程序段,选中,复制并粘贴到答题区中。
建议:【本题是主观题,暂无解析】

学习本课前你必须知道的那些事儿 G转专业–客观题测验初体验(不计分)

1、 问题:你认为C语言是:
选项:
A:软件工程专业最重要的专业基础课之一
B:是一门通识课程
C:是一般性的课程
D:不确定
答案: 【软件工程专业最重要的专业基础课之一

2、 问题:相对于其它课程来说,你认为C语言是:
选项:
A:一门难学的课程
B:有一定难度
C:还好
D:很好学
答案: 【有一定难度

3、 问题:要想学好C语言,必须:
选项:
A:多了解,多练习,多思考。
B:关键在于理解,不用太练习。
C:关键在于练习,慢慢就理解了。
D:看会了加练习不用多想。
答案: 【多了解,多练习,多思考。

4、 问题:你学习C语言的目标是:
选项:
A:能进行程序设计,熟练编写C程序,为以后的学习打下良好的基础。
B:为了保研要考出好成绩
C:别挂科了就行
D:尽力而为吧!
答案: 【能进行程序设计,熟练编写C程序,为以后的学习打下良好的基础。

5、 问题:在学习中,你习惯于
选项:
A:老师把一切习题都安排好,就最好是先讲一遍然后在照着做。
B:自己先仔细看一老师要求,这样掌握的更加深入。
C:老师没讲的,我就不学!
D:我总是在老师要求提交作业的最后时刻才开始做!
答案: 【自己先仔细看一老师要求,这样掌握的更加深入。

6、 问题:我在学习中最需要老师的时候是:
选项:
A:讲课
B:遇到困难,无法理解学习内容。
C:督促我的学习
D:不确定
答案: 【遇到困难,无法理解学习内容。

7、 问题:学习的过程中你和同学之间的关系是:
选项:
A:自己学自己的,不和别人搭界。
B:经常和同学一起研讨一些学习方面的问题,觉得收益很大。
C:经常让同学给我讲一些我不明白的问题
D:关系融洽,作业和考试打小抄时全靠他了
答案: 【经常和同学一起研讨一些学习方面的问题,觉得收益很大。

8、 问题:在学习中遇到比较难的问题时,你会:
选项:
A:查阅资料,和同学一起研讨,集思广益,一定能把它做出来。
B:去问老师或别的同学
C:看一下,如果一眼看不明白就不做了。
D:自己一人深入研究,反复推敲,非把它攻下来不可!
答案: 【查阅资料,和同学一起研讨,集思广益,一定能把它做出来。

9、 问题:对参加讨论你的看法是:
选项:
A:很好,大家集思广益能更深入理解和运用所学
B:总在那儿提问题,让人觉得你什么都不会,不是傻蛋吗?
C:总在那儿没完没了地说,显摆啥呀!
D:到论谈闲扯,没那功夫儿,不如玩一会儿去!
答案: 【很好,大家集思广益能更深入理解和运用所学

10、 问题:对于大学学习你认为
选项:
A:大学的学习只有进度安排,没有中学那种严格的管理机制,一切都秋后算帐,一切都靠自律,压力很大。
B:上中学的时候老师就说过:“上大学就不用学习了!”
C:听学长们说:“只要上了大学就肯定能毕业!”,考试不通过就补考呗!
D:还没想呢!跟着大家一起混呗!
答案: 【大学的学习只有进度安排,没有中学那种严格的管理机制,一切都秋后算帐,一切都靠自律,压力很大。

【作业】第1讲 变量、常量和数据类型 G转专业–第1讲 简答题(不计分)

1、 问题:说明与其它语言相比C语言的特点和应用领域
评分规则: 【 小巧、灵活、功能强大且方便调用低级功能,主要用于高速、高效、低级功能调用多的小型软件

2、 问题:最基本的C语言源程序结构包括哪要素
评分规则: 【 预处理(如#include),主函数(main())。

3、 问题:C语言的常用数据类型有哪些
评分规则: 【 char、int、float、double

4、 问题:举生活中的例子说明,为什么要划分数据类型?
评分规则: 【 举出合适的例子并说明:1.能合理地使用内存;2.方便进行相应的运算。

5、 问题:什么是常量?什么是变量?
评分规则: 【 常量是某种类型的标识符在初始化之后不能在程序中再改其值,而变量可以在其有效作用域内赋值语句或表达式改变其值。

第1讲 变量、常量和数据类型 G转专业–第1讲客观题自测(不计分)

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、 问题:求解赋值表达式a=(b=10)%(c=6),表达式的值为:
答案: 【4

2、 问题:求解赋值表达式a=(b=10)%(c=6),a的值为:
答案: 【4

3、 问题:求解赋值表达式a=(b=10)%(c=6),b的值为:
答案: 【10

4、 问题:求解赋值表达式a=(b=10)%(c=6),c的值为:
答案: 【6

5、 问题:C语言中,要求操作数必须是整数类型的运算符为
答案: 【%

6、 问题:以下程序运行后输出的结果是:
答案: 【0

7、 问题:
答案: 【0

8、 问题:
答案: 【4

9、 问题:
答案: 【1

10、 问题:
答案: 【67G

实验一:选择控制结构 实验一选择题记分测验

1、 问题:下列不是C语言分隔符的是
选项:
A:双引号
B:回车
C:空格
D:制表符
答案: 【双引号

2、 问题:C语言程序编译时,程序中的注释部分
选项:
A:不参加编译,也不会出现在目标程序中
B:参加编译,并会出现在目标程序中
C:参加编译,但不会出现在目标程序中
D:不参加编译,但会出现在目标程序中
答案: 【不参加编译,也不会出现在目标程序中

3、 问题:表达式3.6-5/2+1.2+5%2的值是:
选项:
A:3.8
B:4.3
C:4.8
D:3.3
答案: 【3.8

4、 问题:若有以下程序段(n所赋的是八进制数):int m=32767,n=032767;printf(“%d,%o”,m,n);执行后的结果是:
选项:
A:32767,32767
B:32767,032767
C:32767,77777
D:32767,077777
答案: 【32767,32767

5、 问题:
选项:
A:65535
B:32767
C:-1
D:oxFFFF
答案: 【65535

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

7、 问题:若已定义x和y为double类型,则在表达式x=1,y=x+3/2中y的值是
选项:
A:2.0
B:2
C:1
D:2.5
答案: 【2.0

8、 问题:以下是用户定义 的标识符,其中合法的是:
选项:
A:nit
B:int
C:123
D:a+b
答案: 【nit

9、 问题:若有代数式(3ae)/(bc),则下面不正确的C语言表达式是:
选项:
A:3ae/bc
B:a/b/c
e3
C:3
ae/b/c
D:a
e/c/b3
答案: 【3
ae/bc】

10、 问题:以下能正确定义变量a、b和c并为其赋值的语句是
选项:
A:int a=5,b=5,c=5;
B:int a=5;b=5;c=5;
C:int a,b,c=5;
D:a=5,b=5,c=5;
答案: 【int a=5,b=5,c=5;

11、 问题:下列哪个是C语言的关键字:
选项:
A:int
B:char
C:main
D:function
E:=
答案: 【int ;
char

12、 问题:若在定义语句int a,b,c;之后,接着执行以下的语句,则能语句是
选项:
A:scanf(“%d”,&c);
B:scanf(“%d%d%d”,a,b,c);
C:scanf(“%d”,a,b,c);
D:scanf(“%d”,a);
答案: 【scanf(“%d”,&c);

13、 问题:
选项:
A:2,1
B:6,1
C:6,0
D:2,0
答案: 【2,1

14、 问题:以下不能正确计算代数式值的C语言表达是
选项:
A:1/3sin(1/2)sin(1/2)
B:sin(0.5)sin(0.5)/3
C:pow(
sin(0.5),2)/3
D:1/3.0pow(sin(1.0/2),2)
答案: 【1/3
sin(1/2)*sin(1/2)】

15、 问题:设有定义:int k=1,m=2;float f=7;则错误的表达式为:
选项:
A:k%f
B:k=k>=k
C:-k++
D:k>=f&&f>=m
答案: 【k%f

16、 问题:
选项:
A:2
B:3
C:1
D:0
答案: 【2

17、 问题:
选项:
A:0*2*
B:
0

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

【作业】实验一:选择控制结构 实验一实验任务

1、 问题:按要求完成实验一的作业一。
评分规则: 【 按实验报告册中的标准评定

【作业】实验一:选择控制结构 实验一 课堂编程测验

1、 问题:求1到n的和
建议:【本题是主观题,暂无解析】

【作业】实验二:循环控制结构 实验二课前编程练习

1、 问题:求小于某个范围的水仙花数
建议:【本题是主观题,暂无解析】

2、 问题:编写一段程序,输出1-100之间能够被5整除的数。
建议:【本题是主观题,暂无解析】

3、 问题:打印菱形
建议:【本题是主观题,暂无解析】

4、 问题:输出因质数
建议:【本题是主观题,暂无解析】

5、 问题:用级数求余弦函数值
建议:【本题是主观题,暂无解析】

第5讲 循环控制结构 第5讲 课前客观题自测(不记分)

1、 问题:程序运行后的输出结果是#include
int main()
{
int i;

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

        switch(i)

            {

                case 0: printf("%d",i);

                case 2: printf("%d",i);

                default: printf("%d",i);

            }

    return 0;

}
选项:
A:000122
B:022111
C:021021
D:012
答案: 【000122

2、 问题:若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是
选项:
A:for( i=1; i<=5; i++ ){ p=1; p=i;}
B:for(i=1,p=1;i<=5;i++) p
=i;
C:i=1;
p=1;
while ( i<=5 )
{
p=i;
i++;
}
D:i=1;
p=1;
do {
p
=i;
i++;
} while ( i<=5 );
答案: 【for( i=1; i<=5; i++ ){ p=1; p*=i;}

3、 问题:下面程序的输出是#include
int main()
{
int y=9;
for( ; y>0; y–)
{
if(y%3==0)
{
printf(“%d”, –y);
continue;
}
}
return 0;
}
选项:
A:852
B:741
C:963
D:875421
答案: 【852

4、 问题:爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯共有多少阶?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int main()
{
int x = 1, find = 0;
while (_)
{
if (
_______)
{
printf(“x = %d”, x);
find = 1;
}
x++;
}

return 0;

}
选项:
A:第5行: !find第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
B:第5行: find==1第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
C:第5行: find!=1第7行: x/2==1 && x/3==2 && x/5==4 && x/6==5 && x/7==0
D:第5行: find!=0第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
答案: 【第5行: !find第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0

5、 问题:鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int main()
{
int x, y;
for (x=1; _; x++)
{
__;
if (
____)
{
printf(“x = %d, y = %d”, x, y);
}
}

return 0;

}
选项:
A:第5行: x<=97第7行: y = 98 – x第8行: 2x+4y == 386
B:第5行: x<97第7行: x = 98 – y第8行: 2x+4y == 386
C:第5行: x<97第7行: y = 98 – x第8行: 2x+4y == 386
D:第5行: x<=97第7行: x = 98 – y第8行: 2x+4y <= 386
答案: 【第5行: x<=97第7行: y = 98 – x第8行: 2x+4y == 386

6、 问题:以下正确的描述是
选项:
A:只能在循环体内和switch语句体内使用break语句
B: continue语句的作用是结束整个循环的执行
C:在循环体内使用break语句或continue语句的作用相同
D:continue语句可以写在循环体之外
答案: 【只能在循环体内和switch语句体内使用break语句

7、 问题:华氏和摄氏温度的转换公式为C=5/9×(F-32)。式中,C表示摄氏温度,F表示华氏温度。要求:华氏0℉~300℉,每隔20℉输出一个华氏温度对应的摄氏温度值。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int main()
{
int upper = 300, step = 20;
float fahr = 0, celsius;
while (fahr < upper)
{
__;
printf(“%4.0f\t%6.1f”, fahr, celsius);
_______ ;
}
return 0;
}
选项:
A:第8行代码: celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr + step
B:第8行代码: celsius = 5 / 9 * (fahr – 32)第10行代码: fahr = fahr + step
C:第8行代码: celsius = 5.0 / (9 * (fahr – 32))第10行代码: fahr = fahr + step
D:第8行代码: celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr – step
答案: 【第8行代码: celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr + step

8、 问题:利用泰勒级数:计算e的近似值,当最后一项的绝对值小于时认为达到了精度要求,要求统计总共累加了多少项。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include

include

int main()
{
int n = 1, count = 1;
____;
double term = 1.0;
while (fabs(term) >= 1e-5) //判末项大小
{
__; //求出累加项
e = e + term; //累加
n++; // 计算下一项
___; //统计累加项数
}

   printf("e = %f, count = %d", e, count);
return 0;

}
选项:
A:第6行代码: double e = 1.0第10行代码: term = term / n第13行代码: count++
B:第6行代码: double e = 0第10行代码: term = term / n第13行代码: count++
C:第6行代码: double e = 1.0第10行代码: term = term n第13行代码: count++
D:第6行代码: double e = 0第10行代码: term = term
n第13行代码: count++
答案: 【第6行代码: double e = 1.0第10行代码: term = term / n第13行代码: count++

9、 问题:打印所有的“水仙花数”。所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。例如,153是“水仙花数”,因为代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int main()
{
int i, j, k, n;
printf(“result is:”);
for (n=100; _; n++)
{
i = n / 100; //分离出百位
j = __; //分离出十位
k =
_; //分离出个位
if (
___
)
{
printf(“%d\t “,n); //输出结果
}
}
printf(“”);
return 0;
}
选项:
A:第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk
B:第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k = iii+jjj+kkk
C:第6行: n<=1000第9行: n % 100第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk
D:第6行: n<1000第9行: (n – i * 100) / 10第10行:n /10第11行:i100+j10+k == iii+jjj+kkk
答案: 【第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk

10、 问题:以下程序执行后的输出结果是#include
int main( )
{
int i,n=0;
for(i=2;i<5;i++)
{
do
{
if(i%3) continue;
n++;
}while(!i);
n++;
}
printf(“n=%d”,n);
return 0;
}
选项:
A:n=4
B:n=5
C:n=2
D:n=3
答案: 【n=4

11、 问题:以下程序运行后的输出结果是#include
int main()
{
int i=0,s=0;
for (;;)
{
if(i==3||i==5) continue;
if (i==6) break;
i++;
s+=i;
}
printf(“%d”,s);
return 0;
}
选项:
A:程序进入死循环
B:10
C:13
D:21
答案: 【程序进入死循环

12、 问题:程序执行后的输出结果是#include
int main( )
{
int i,s=0;
for(i=1;i<10;i+=2)
{
s+=i+1;
}
printf(“%d”,s);
return 0;
}
选项:
A:自然数1~10中的偶数之和
B:自然数1~9的累加和
C:自然数1~10的累加和
D:自然数1~9中的奇数之和
答案: 【自然数1~10中的偶数之和

13、 问题:以下程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是#include
int main( )
{
char k;
int i;
for(i=1;i<3;i++)
{
scanf(“%c”,&k);
switch(k)
{
case ‘0’: printf(“another”);
case ‘1’: printf(“number”);
}
}
return 0;
}
选项:
A:anothernumbernumber
B:numbernumber
C:anothernumber
D:anothernumberanother
答案: 【anothernumbernumber

14、 问题:以下程序执行后的输出结果是#include
int main( )
{
int x=0,y=5,z=3;
while(z–>0 && ++x<5)
{
y=y-1;
}
printf(“%d,%d,%d”,x,y,z);
return 0;
}
选项:
A:3,2,-1
B:3,2,0
C:4,3,-1
D:5,-2,-5
答案: 【3,2,-1

15、 问题:以下能正确计算1×2×3×4…×10的程序段是
选项:
A:i=1;
s=1;
do {
s=si;
i++;
} while(i<=10)
B:do
{
i=1;
s=1;
s=s
i;
i++;
} while(i<=10);
C:do
{
i=1;
s=0;
s=si;
i++;
} while(i<=10);
D:i=1;s=0;do { s=s
i; i++; } while(i<=10);
答案: 【i=1;
s=1;
do {
s=s*i;
i++;
} while(i<=10)

16、 问题:下面程序的功能是输出以下形式的图案,则在下划线处应填入的是 * *#include
int main( )
{ int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=____;j++)
{
printf(“
“);
}
printf(“”);
}
return 0;
}
选项:
A:2
i-1
B:2i+1
C:i+2
D:i
答案: 【2
i-1】

17、 问题:以下程序的输出结果是#include
int main()
{
int a, b;
for(a=1, b=1; a<=100; a++)
{
if(b>=10) break;
if (b%3==1)
{
b+=3;
continue;
}
}
printf(“%d”,a);
return 0;
}
选项:
A:4
B:101
C:6
D:5
答案: 【4

18、 问题:以下不是死循环的程序段是
选项:
A:int s=36;
while (s)
{
–s;
}
B:int i=100;
while(1)
{
i=i%100+1;
if (i>100) break;
}
C:for( ; ;);
D:unsigned int k=0;
do{
++k;
} while (k>=0);
答案: 【int s=36;
while (s)
{
–s;
}

19、 问题:计算直到最后一项的绝对值小于为止。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include

include

int main()
{
int n = 1;
float term = 1, sum = 0;
__;

while (fabs(term) >= 1e-4)      //判末项大小
{
    term = sign / n;            //求出累加项
    sum = sum + term;           //累加
    ________________;               //改变项的符号

    n++;                            //分母加1
}
printf("sum = %f", sum);
return 0;

}
选项:
A:第7行代码: float sign=1第13行代码: sign = -sign
B:第7行代码: float sign= -1第13行代码: sign = -sign
C:第7行代码: float sign=1第13行代码: term = -term
D:第7行代码: float sign= -1第13行代码: term = -term
答案: 【第7行代码: float sign=1第13行代码: sign = -sign

20、 问题:设已定义i和k为int类型变量,则以下for循环语句for(i=0,k=-1;k=1; i++,k++)
printf( “ * *”);
选项:
A:是无限循环
B:判断循环结束的条件不合法
C:循环一次也不执行
D:循环只执行一次
答案: 【是无限循环

21、 问题:有以下程序,若从键盘给n输入的值是-3,则程序的输出结果是#include
int main()
{
int s=0,a=1,n;
scanf(“%d”,&n);
do
{
s+=1;
a=a-2;
} while(a!=n);
printf(“%d”,s);
return 0;
}
选项:
A:2
B:-1
C:3
D:0
答案: 【2

22、 问题:三色球问题。若一个口袋中放有12个球,其中有3个红色的,3个白色的,6个黑色的,从中任取8个球,问共有多少种不同的颜色搭配?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include
int main()
{
int i, j, k;
for (i=0; i<=3; i++)
{
for (j=0; j<=3; j++)
{
for (____)
{
if (______)
{
printf(“i=%d, j=%d, k=%d”, i, j, k);
}
}
}
}

return 0;

}
选项:
A:第9行: k=0; k<=6; k++第11行: i + j + k == 8
B:第9行: k=0; k<=6; k++第11行: i + j + k = 8
C:第9行: k=0; k<=6; k++第11行: i + j + k <= 8
D:第9行: k=0; k<6; k++第11行: i + j + k == 8
答案: 【第9行: k=0; k<=6; k++第11行: i + j + k == 8

23、 问题:我国古代的《张丘建算经》中有这样一道著名的百鸡问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”其意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡和小鸡各能买多少只?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include
int main()
{
int x, y, z;
for (x=0; x<=20; x++)
{
for (y=0; ___; y++)
{
__;
if (__
)
{
printf(“x=%d, y=%d, z=%d”, x, y, z);
}
}
}

return 0;

选项:
A:第7行: y<=33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 == 100
B:第7行: y<=33第9行: z + y + x = 100第10行: 5x + 3y + z/3.0 = 100
C:第7行: y<=33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 == 100
D:第7行: y<33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 <= 100
答案: 【第7行: y<=33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 == 100

24、 问题:以下程序的功能是计算:s= 1+1/2+1/3+……+1/10,程序运行后输出结果错误,导致错误结果的程序行是#include
int main()
{
int n;
float s;
s=1.0;
for(n=10;n>1;n–)
{
s=s+1/n;
}
printf(“%6.4f”,s);
return 0;
}
选项:
A:s=s+1/n;
B: printf(“%6.4f”,s);
C:for(n=10;n>1;n–)
D:s=1.0;
答案: 【s=s+1/n;

第6讲 函数 第6讲 课前单选自测(不记分)

1、 问题:设计一个函数MaxCommonFactor(),利用欧几里德算法(也称辗转相除法)计算两个正整数的最大公约数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include
int MaxCommonFactor(int a, int b);
int main()
{
int a, b, x;
printf(“Input a,b:”);
scanf(“%d,%d”, &a, &b);
x =___ ;

 if (x != -1)
 {
      printf("MaxCommonFactor = %d", x);
 }
 else
 {
      printf("Input error!");
 }

 return 0;

}

//函数功能: 计算两个正整数的最大公约数,-1表示没有最大公约数
int MaxCommonFactor(int a, int b)
{
int r;
if (a<=0 || b<=0) return -1; // 保证输入的参数为正整数

 do{
      ____________;
      a = b;
      _____________;
 }while (__________);

 return  a;

}
选项:
A:第8行: MaxCommonFactor(a, b)第29行: r = a % b第31行: b = r第32行: r != 0
B:第8行: MaxCommonFactor(a, b, x)第29行: r = a % b第31行: a = r第32行: r == 0
C:第8行: MaxCommonFactor(a, x)第29行: r = b % a第31行: b = r第32行: r = 0
D:第8行: MaxCommonFactor(x, b)第29行: r = a / b第31行: a = r第32行: r != 0
答案: 【第8行: MaxCommonFactor(a, b)第29行: r = a % b第31行: b = r第32行: r != 0

2、 问题:C语言规定:在一个源程序中,main函数的位置
选项:
A:可以任意
B:必须在程序的最开始
C:必须在系统调用的库函数的后面
D:必须在程序的最后
答案: 【可以任意

3、 问题:以下程序执行后输出结果是#include
int MaxValue(int x, int y)
{
return x>y? x:y;
}

int MinValue(int x,int y)
{
return x>y? y:x;
}

int main()
{
int a=4,b=3,c=5,d,e,f;
d=MaxValue(a,b);
d=MaxValue(d,c);
e=MinValue(a,b);
e=MinValue(e,c);
f=a+b+c-d-e;
printf(“%d,%d,%d”,d,f,e);
return 0;
}
选项:
A:5,4,3
B:3,4,5
C:5,3,4
D:3,5,4
答案: 【5,4,3

4、 问题:有以下函数定义:void Fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值如下:int a,k;double b;a=12;b=0.45;则对函数Fun的正确调用语句是
选项:
A:Fun(a,b);
B:Fun(int y,double m);
C:k=Fun(10,12.5);
D:k=void Fun(a,b);
答案: 【Fun(a,b);

5、 问题:完全数,又称完美数或完数(Perfect Number),它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。例如,6就是一个完全数,是因为6 = 1 + 2 + 3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。注意:1没有真因子,所以不是完全数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include

include

int IsPerfect(int x);
int main()
{
int m;
printf(“Input m:”);
scanf(“%d”, &m);

if (_________________)  /* 完全数判定 */
    printf("%d is a perfect number", m);
else
    printf("%d is not a perfect number", m);
return 0;

}

/ 函数功能:判断完全数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数 /
int IsPerfect(int x)
{
int i;
int total = 0; / 1没有真因子,不是完全数 /

for (__________________)
{
    if (___________)
        total = total + i;
}
return total==x ? 1 : 0;

}
选项:
A:第10行: IsPerfect(m)第24行: i=1; i第10行: IsPerfect(m)第24行: i=1; i

6、 问题:下列说法中正确的是
选项:
A:函数原型是一条语句,不包括函数体。
B:无论何种情况,只要把用户自定义的所有函数都放在main函数的前面,就可以不用写函数原型了。
C:在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元,此时形参值的变化会影响到实参的值。
D:函数只有一个返回值,所以不能有多个return语句。
答案: 【函数原型是一条语句,不包括函数体。

7、 问题:以下程序有语法错误,有关错误原因的正确说法是#include
void prt_char();
int main()
{
int G=5,k;
……
k=prt_char(G);
……
return 0;
}

int prt_char(int x)
{
……
}
选项:
A:函数原型和函数定义不匹配
B:变量名不能使用大写字母
C:函数名不能使用下划线
D:函数prt_char(int x)定义的位置不对,不能放在主函数main()的后面。
答案: 【函数原型和函数定义不匹配

8、 问题:以下程序的功能是选出能被3整除且至少有一位是5的两位数的整数,输出所有满足条件的数及其个数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int Sub(int k,int n)
{
int a1,a2;
a2=k/10;
a1=k-a2*10;
if(____)
{
printf(“%4d”,k);
n++;
return n;
}
else
return -1;
}

int main()
{
int n=0,k,m;
for(k=10;k<100;k++)
{
m=____;

    if(________) n=m;
}

printf("n=%d",n);
return 0;

}
选项:
A:第7行: (k%3==0&&a2==5)||(k%3==0&&a1==5)第22行: Sub(k,n)第24行: m!=-1
B:第7行:(k%3==0 &&a2==5) && (k%3==0 &&a1==5)第22行:Sub(n,k)第24行:m==-1
C:第7行:(k%3=0 && a2=5)||(k%3=0 && a1=5)第22行:Sub(k,n)第24行:m=-1
D:第7行:(k%3=0 && a2=5) && (k%3=0 && a1=5)第22行:Sub(n,k)第24行:m!=-1
答案: 【第7行: (k%3==0&&a2==5)||(k%3==0&&a1==5)第22行: Sub(k,n)第24行: m!=-1

9、 问题:设计一个函数,用来判断一个整数是否为素数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include

include

int IsPrimeNumber(int number);
int main()
{
int n, ret;
printf(“Input n:”);
scanf(“%d”, &n);
ret = IsPrimeNumber(n);
if (_____)
{
printf(“%d is a prime number”, n);
}
else
{
printf(“%d is not a prime number”, n);
}
return 0;
}
//函数功能:判断number是否是素数,函数返回非0值,表示是素数,否则不是素数
int IsPrimeNumber(int number)
{
int i;

 if (number <= 1) return 0; // 负数、0和1都不是素数   
     for (i=2; ________________; i++)
     {
          if (_______________) // 被整除,不是素数 
              return 0;
 }
 return 1;

}
选项:
A:第11行: ret != 0第29行: i<=sqrt(number)第31行: number % i == 0
B:第11行: ret == 0第29行: i<=number第31行: number % i == 0
C:第11行: ret == 0第29行: i<=sqrt(number)第31行: number / i == 0
D:第11行: ret != 0第29行: i<=number第31行: number / i == 0
答案: 【第11行: ret != 0第29行: i<=sqrt(number)第31行: number % i == 0

10、 问题:以下程序执行后的输出结果是void Fun(int v , int w)
{
int t;
t=v;
v=w;
w=t;
}

int main( )
{
int x=1,y=3,z=2;

if(x>y) Fun(x,y);
else if(y>z) Fun(y,z);
else Fun(x,z);

printf("%d,%d,%d",x,y,z);
return 0;

}
选项:
A:1,3,2
B:1,2,3
C:3,1,2
D:2,3,1
答案: 【1,3,2

11、 问题:若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
选项:
A:函数调用可以作为一个函数的形参
B:函数调用可以作为独立的语句存在
C:函数调用可以作为一个函数的实参
D:函数调用可以出现在表达式中
答案: 【函数调用可以作为一个函数的形参

12、 问题:设计一个函数MinCommonMultiple(),计算两个正整数的最小公倍数。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int MinCommonMultiple(int a, int b);
int main()
{
int a, b, x;
printf(“Input a,b:”);
scanf(“%d,%d”, &a, &b);
x = _____;

if (__________)    
    printf("MinCommonMultiple = %d", x);
else              
    printf("Input error!");

return 0;
}
//函数功能:计算两个正整数的最小公倍数,-1表示没有最小公倍数
int MinCommonMultiple(int a, int b)
{
int i;

if (_________________) return -1;        // 保证输入的参数为正整数

for (i=1; i<b; i++)
{
    if (________________)   return i * a;
}

return b * a;

}
选项:
A:第8行: MinCommonMultiple(a, b)第10行: x != -1第22行: a<=0 || b<=0第26行: (i * a) % b == 0
B:第8行: MinCommonMultiple第10行: x == -1第22行: a<=0 && b<=0第26行: (i * a) % b == 0
C:第8行: MinCommonMultiple(b, a)第10行: x != -1第22行: a<=0 || b<=0第26行: (i * a) / b == 0
D:第8行: MinCommonMultiple(int a, int b)第10行: x = -1第22行: a<=0 || b<=0第26行: (i * a) % b == 0
答案: 【第8行: MinCommonMultiple(a, b)第10行: x != -1第22行: a<=0 || b<=0第26行: (i * a) % b == 0

13、 问题:编程计算下面组合数的值代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
____;
int main()
{
int m, k;
______;

 do{
      printf("Please input m,k (m>=k>0):");
      scanf("%d, %d", &m, &k);
   } while (______________);

 p = (double)Factorial(m) / (Factorial(k) * Factorial (m-k));
 printf("p=%.0f", p);
 return 0;

}

//函数功能:计算无符号整型数number的阶乘
unsigned long Factorial(unsigned int number)
{
unsigned long i, result = 1;

 for (________________)
 {
      result *= i;
 }
 return result;

}
选项:
A:第2行: unsigned long Factorial(unsigned int number)第6行: double p第11行: m第2行: unsigned long Factorial(unsigned int number)第6行: double p第11行: m

实验二:循环控制结构 实验二 课前客观题自测

1、 问题:若x是整形变量,以下程序段的输出结果是:for(x=3;x<6;x++) printf((x%2)?(“%d”):(“##%d”),x);
选项:
A:
3##45
B:
3##4##5
C:##34##5
D:##3
4##5
答案: 【3##45

2、 问题:执行以下程序段后输出结果是:main(){ int y=10; do{y–;}while(–y); printf(“%d”,y–);}
选项:
A:0
B:-1
C:1
D:8
答案: 【0

3、 问题:以下程序段的输出结果是:int k,j,s;for(k=2;k<6;k++,k++){ s=1; for(j=k;j<6;j++) s+=j;}printf(“%d”,s);
选项:
A:10
B:9
C:1
D:11
答案: 【10

4、 问题:以下程序段的输出结果是:main(){int x=2;while(x–);printf(” %d”,x);}
选项:
A:-1
B:0
C:1
D:以上都不对
答案: 【-1

5、 问题:以下程序的功能是从键盘上输入若干学生的成绩,统计并输出最高和最低成绩,当输入负数时结束输入。请在下列程序中填空。main(){ float x,fMax,fMin; scanf(” %f”,&x); fMax=x;fMin=x; while(_) { if(x>fMax) fMax=x; if(_) fMin=x; scanf(“%f”,&x); } printf(” fMax=%f fMin=%f”,fMax,fMin);}注意:将两个填入的内容写在一行,其间用1个空格分隔。
答案: 【x>=0 x

6、 问题:#includemain{int nX=2; do{ nX=nX*nX; } while(!nX); printf(“nX=%d”,nX);}程序运行的结果是:
答案: 【nX=4

7、 问题:#includemain(){ int nNum=8; while(nNum>=2){ nNum–; } printf(“%d”,nNum);}程序运行的结果是:
答案: 【1

8、 问题:#includemain(){ int nA,nB; for(nA=1,nB=1;nA<=100;nA++) { if(nB>=20) break; if(nB%3==0){nB+=3;continue;} nB=-5; } printf(“%d”,nA);}程序运行的结果是:
答案: 【101

9、 问题:#includemain(){ int nY=2,nA=1; while(nY–!=-1) do{ nA*=nY; nA++; }while(nY–); printf(“%d,%d”,nA,nY);}程序运行的结果是:
答案: 【1,-2

10、 问题:#includemain(){ int nY=2,nA=1; while(–nY!=-1) do{ nA*=nY; nA++; }while(nY–); printf(“%d,%d”,nA,nY);}该程序输出的结果是:提示:如果是死循环,则填入“无输出”
答案: 【无输出

11、 问题:#includemain(){ int nY=2,nA=1; while(nY–!=-1) do{ nA*=nY; nA++; }while(–nY); printf(“%d,%d”,nA,nY);}该程序输出的结果是:提示:如果是死循环,则填入“无输出”
答案: 【无输出

12、 问题:int k,n,m;n=10;m=1;k=1;while(k<=n) m*=2;printf(“%d”,m);程序输出的结果是:提示:如果是死循环,则填入“无输出”
答案: 【无输出

13、 问题:跳出循环时需要使用的语句是:
答案: 【break;

14、 问题:不执行循环体中本句后面的程序而直接返回至循环体首部的语句是:
答案: 【continue;

【作业】第6讲 函数 第6讲 课前编程练习2

1、 问题:绘制金字塔
建议:【本题是主观题,暂无解析】

2、 问题:循环嵌套的应用
建议:【本题是主观题,暂无解析】

3、 问题:利用泰勒级数计算sinx的值
建议:【本题是主观题,暂无解析】

4、 问题:计算100~200之间的所有素数之和
建议:【本题是主观题,暂无解析】

5、 问题:编程实现一个输入指定范围内的整数的函数
建议:【本题是主观题,暂无解析】

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

7、 问题:编程计算a+aa+aaa+…+aa…a(n个a)的值
建议:【本题是主观题,暂无解析】

8、 问题:搬砖问题
建议:【本题是主观题,暂无解析】

9、 问题:编程输出某年某月有多少天(考虑到闰年)
建议:【本题是主观题,暂无解析】

【作业】第6讲 函数 第6讲 课前编程练习1

1、 问题:计算阶乘的和v2.0
建议:【本题是主观题,暂无解析】

2、 问题:计算最大的三位约数
建议:【本题是主观题,暂无解析】

3、 问题:孔融分梨
建议:【本题是主观题,暂无解析】

4、 问题:素数求和
建议:【本题是主观题,暂无解析】

【作业】第6讲 函数 第6讲 简答题

1、 问题:什么是全局变量?什么是局部变量?变量的作用域的含义是什么?
评分规则: 【 不在任何语句块内定义的变量,称为全局变量
在语句块内定义的变量称为局部变量
变量的作用域就是变量的可使用范围

2、 问题:什么是模块化程序设计?什么是模块?模块分解的基本原则是什么?
评分规则: 【 模块化程序设计就是将一个复杂的任务逐步分解成较为简单的任务。
模块就是具有较明确逻辑边界的代码段。
函数原型主要用于函数的定义在调用其语句之后的情况。
模块分解的基本原则是:高内聚、低耦合,保证每个模块的相对独立性。

3、 问题:  什么是结构化程序设计?结构化程序设计解决了什么问题?常用的基本结构有几种?结构有什么特点?
评分规则: 【 摒弃goto语句(1分),用有限的几种逻辑结构搭砌整个程序流程(1分)
结构化程序设计方法解决了因goto语句随意跳转等引起的流程线混乱问题,使用程序流程看起来更加清晰有序。
常用的基本结构有三种:顺序结构、选择结构和循环结构
单入口、单出口(1分)结构中每一个部分都可能被执行到(1分)程序流程不存在“死”路(1分)

4、 问题:什么是算法?描述算法的常用方法有几种?各有什么特点?
评分规则: 【 算法就是计算机解题的步骤
算法通常可以用三种方法描述:自然语言描述法:简单方便,但容易开歧义(1分);各种流程图:直观,不容出歧义,但绘制稍嫌麻烦(1分);伪代码:是某种程序设计语言附加一些自然语言。方便编码,但不利于软件设计时的研讨!(1分)

5、 问题:什么是自顶下向,逐步求精的程序设计方法?逐步求精的大致步骤是怎样?
评分规则: 【 “自顶而下,逐步求精”的设计思想,其出发点是从问题的总体目标开始,忽略低层的细节,先专心构造高层的结构,然后再一层一层地分解和细化(1分)。
逐步求精大致步骤为:对实际问题进行全局性分析、决策,确定教学模型。确定程序的总体结构,将整个问题分解成若干相对独立的子问题。确定子问题的具体功能及其相互关系。在抽象的基础上,将各个子问题逐一细化,直到能直接用某种高级语言描述。

【作业】实验二:循环控制结构 实验二 简答题

1、 问题:在程序设计中函数的作用是什么?
评分规则: 【 借助函数实现程序的模块化设计模式
实现信息隐藏

2、 问题:怎样定义一个函数?什么是函数原型?什么情况下使用函数原型?为什么?
评分规则: 【 返回值类型 函数名(类型 形式参数1,类型 形式参数2,……){ 声明语句序列 可执行语句}
函数原型是只函数的头部并在末尾加”;”,而没有函数体形式
函数原型主要用于函数的定义在调用其语句之后的情况。
C语言要求先定义后使用,但在有些情况下无法做到函数在调用前定义。因此就使用函数原型来解决这一问题。

3、 问题:函数形参和实参之间的值是怎样传递的?
评分规则: 【 是以传值的方式传递的,也就是把实参拷贝给形参,所以形参值的改变不会影响到实参

4、 问题:怎样在函数中改变实参的值?
评分规则: 【 将形参改为地址形式,直接操作了实参的地址指向的单元,也就改变了实参的值。

5、 问题:在C语言中函数是否可以嵌套定义?
评分规则: 【 可以

6、 问题:在C语言中函数是否可以嵌套调用?
评分规则: 【 可以

7、 问题:在C语言中函数是否可以调用自身?
评分规则: 【 可以

【作业】实验二:循环控制结构 实验二编程练习4题

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

【作业】实验二:循环控制结构 实验二编程练习5题

1、 问题:用级数求余弦函数值
建议:【本题是主观题,暂无解析】

【作业】第1讲 变量、常量和数据类型 G转专业–第1讲课堂编程测验

1、 问题:计算长方形的边长
建议:【本题是主观题,暂无解析】

第1讲 变量、常量和数据类型 G转专业–第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:程序中有语义错误
F:程序运行结果正确
答案: 【程序中没有语法错误

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:0xffa
B:10110B
C:038x
D:x2a2
答案: 【0xffa

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

17、 问题:下列变量定义中合法的是
选项:
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讲 变量、常量和数据类型 G转专业–第1讲进阶测验

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

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

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

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

5、 问题:不同类型的变量的定义和赋值
建议:【本题是主观题,暂无解析】

第5讲 循环控制结构 第5讲 客观题课堂记分测验

1、 问题:程序运行后的输出结果是#include
int main()
{
int i;

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

        switch(i)

            {

                case 0: printf("%d",i);

                case 2: printf("%d",i);

                default: printf("%d",i);

            }

    return 0;

}
选项:
A:000122
B:022111
C:021021
D:012
答案: 【000122

2、 问题:若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是
选项:
A:for( i=1; i<=5; i++ )
{
p=1;
p=i;
}
B:for(i=1,p=1;i<=5;i++) p
=i;
C:i=1;
p=1;
while ( i<=5 )
{
p=i;
i++;
}
D:i=1;
p=1;
do {
p
=i;
i++;
} while ( i<=5 );
答案: 【for( i=1; i<=5; i++ )
{
p=1;
p*=i;
}

3、 问题:以下程序执行后的输出结果是#include
int main( )
{
int x=0,y=5,z=3;
while(z–>0 && ++x<5)
{
y=y-1;
}
printf(“%d,%d,%d”,x,y,z);
return 0;
}
选项:
A:3,2,-1
B:3,2,0
C:4,3,-1
D:5,-2,-5
答案: 【3,2,-1

4、 问题:下面程序的输出是#include
int main()
{
int y=9;
for( ; y>0; y–)
{
if(y%3==0)
{
printf(“%d”, –y);
continue;
}
}
return 0;
}
选项:
A:852
B:741
C:963
D:875421
答案: 【852

5、 问题:爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯共有多少阶?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int main()
{
int x = 1, find = 0;
while (_)
{
if (
_______)
{
printf(“x = %d”, x);
find = 1;
}
x++;
}

return 0;

}
选项:
A:第5行: !find第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
B:第5行: find==1第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
C:第5行: find!=1第7行: x/2==1 && x/3==2 && x/5==4 && x/6==5 && x/7==0
D:第5行: find!=0第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0
答案: 【第5行: !find第7行: x%2==1 && x%3==2 && x%5==4 && x%6==5 && x%7==0

6、 问题:鸡兔同笼,共有98个头,386只脚,编程求鸡、兔各多少只。代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include
int main()
{
int x, y;
for (x=1; _; x++)
{
__;
if (
____)
{
printf(“x = %d, y = %d”, x, y);
}
}

return 0;

}
选项:
A:第5行: x<=97第7行: y = 98 – x第8行: 2x+4y == 386
B:第5行: x<97第7行: x = 98 – y第8行: 2x+4y == 386
C:第5行: x<97第7行: y = 98 – x第8行: 2x+4y == 386
D:第5行: x<=97第7行: x = 98 – y第8行: 2x+4y <= 386
答案: 【第5行: x<=97第7行: y = 98 – x第8行: 2x+4y == 386

7、 问题:以下能正确计算1×2×3×4…×10的程序段是
选项:
A:i=1;
s=1;
do {
s=si;
i++;
} while(i<=10);
B:do
{
i=1;
s=1;
s=s
i;
i++;
} while(i<=10);
C:do
{
i=1;
s=0;
s=si;
i++;
} while(i<=10);
D:i=1;
s=0;
do {
s=s
i;
i++;
} while(i<=10);
答案: 【i=1;
s=1;
do {
s=s*i;
i++;
} while(i<=10);

8、 问题:以下程序执行后的输出结果是#include
int main( )
{
int i,n=0;
for(i=2;i<5;i++)
{
do
{
if(i%3) continue;
n++;
}while(!i);
n++;
}
printf(“n=%d”,n);
return 0;
}
选项:
A:n=4
B: n=5
C: n=2
D: n=3
答案: 【n=4

9、 问题:以下正确的描述是
选项:
A:只能在循环体内和switch语句体内使用break语句
B: continue语句的作用是结束整个循环的执行
C:在循环体内使用break语句或continue语句的作用相同
D:continue语句可以写在循环体之外
答案: 【只能在循环体内和switch语句体内使用break语句

10、 问题:计算直到最后一项的绝对值小于为止。‍代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include

include

int main()
{
int n = 1;
float term = 1, sum = 0;
__;

while (fabs(term) >= 1e-4)      //判末项大小
{
    term = sign / n;            //求出累加项
    sum = sum + term;           //累加
    ________________;               //改变项的符号
    n++;                            //分母加1
}
printf("sum = %f", sum);
       return 0;

}
选项:
A:第7行代码: float sign=1第13行代码: sign = -sign
B:第7行代码: float sign= -1第13行代码: sign = -sign
C:第7行代码: float sign=1第13行代码: term = -term
D:第7行代码: float sign= -1第13行代码: term = -term
答案: 【第7行代码: float sign=1第13行代码: sign = -sign

11、 问题:设已定义i和k为int类型变量,则以下for循环语句for(i=0,k=-1;k=1; i++,k++)
printf( “ * *”);
选项:
A:是无限循环
B:判断循环结束的条件不合法
C:循环一次也不执行
D:循环只执行一次
答案: 【是无限循环

12、 问题:有以下程序,若从键盘给n输入的值是-3,则程序的输出结果是#include
int main()
{
int s=0,a=1,n;
scanf(“%d”,&n);
do
{
s+=1;
a=a-2;
} while(a!=n);
printf(“%d”,s);
return 0;
}
选项:
A:2
B:-1
C:3
D:0
答案: 【2

13、 问题:以下程序运行后的输出结果是#include
int main()
{
int i=0,s=0;
for (;;)
{
if(i==3||i==5) continue;
if (i==6) break;
i++;
s+=i;
}
printf(“%d”,s);
return 0;
}
选项:
A:程序进入死循环
B:10
C:13
D:21
答案: 【程序进入死循环

14、 问题:下面程序的功能是输出以下形式的图案,则在下划线处应填入的是 * *#include
int main( )
{ int i,j;
for(i=1;i<=4;i++)
{
for(j=1;j<=____;j++)
{
printf(“
“);
}
printf(“”);
}
return 0;
}
选项:
A:2
i-1
B:2i+1
C:i+2
D:i
答案: 【2
i-1】

15、 问题:程序执行后的输出结果是#include
int main( )
{
int i,s=0;
for(i=1;i<10;i+=2)
{
s+=i+1;
}
printf(“%d”,s);
return 0;
}
选项:
A:自然数1~10中的偶数之和
B:自然数1~9的累加和
C:自然数1~10的累加和
D:自然数1~9中的奇数之和
答案: 【自然数1~10中的偶数之和

16、 问题:以下程序的输出结果是#include
int main()
{
int a, b;
for(a=1, b=1; a<=100; a++)
{
if(b>=10) break;
if (b%3==1)
{
b+=3;
continue;
}
}
printf(“%d”,a);
return 0;
}
选项:
A:4
B:101
C:6
D:5
答案: 【4

17、 问题:三色球问题。若一个口袋中放有12个球,其中有3个红色的,3个白色的,6个黑色的,从中任取8个球,问共有多少种不同的颜色搭配?‍代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include
int main()
{
int i, j, k;
for (i=0; i<=3; i++)
{
for (j=0; j<=3; j++)
{
for (____)
{
if (______)
{
printf(“i=%d, j=%d, k=%d”, i, j, k);
}
}
}
}

return 0;

}
选项:
A:第9行: k=0; k<=6; k++第11行: i + j + k == 8
B:第9行: k=0; k<=6; k++第11行: i + j + k = 8
C:第9行: k=0; k<=6; k++第11行: i + j + k <= 8
D:第9行: k=0; k<6; k++第11行: i + j + k == 8
答案: 【第9行: k=0; k<=6; k++第11行: i + j + k == 8

18、 问题:我国古代的《张丘建算经》中有这样一道著名的百鸡问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”其意为:公鸡每只5元,母鸡每只3元,小鸡3只1元。用100元买100只鸡,问公鸡、母鸡和小鸡各能买多少只?代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include
int main()
{
int x, y, z;
for (x=0; x<=20; x++)
{
for (y=0; ___; y++)
{
__;
if (__
)
{
printf(“x=%d, y=%d, z=%d”, x, y, z);
}
}
}

return 0;

}
选项:
A:第7行: y<=33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 == 100
B:第7行: y<=33第9行: z + y + x = 100第10行: 5x + 3y + z/3.0 = 100
C:第7行: y<=33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 == 100
D:第7行: y<33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 <= 100
答案: 【第7行: y<=33第9行: z = 100 – x – y第10行: 5x + 3y + z/3.0 == 100

19、 问题:以下不是死循环的程序段是
选项:
A:int s=36;
while (s)
{
–s;
}
B:int i=100;
while(1)
{
i=i%100+1;
if (i>100) break;
}
C:for( ; ;);
D:unsigned int k=0;
do{
++k;
} while (k>=0);
答案: 【int s=36;
while (s)
{
–s;
}

20、 问题:以下程序的功能是计算:s= 1+1/2+1/3+……+1/10,程序运行后输出结果错误,导致错误结果的程序行是#include
int main()
{
int n;
float s;
s=1.0;
for(n=10;n>1;n–)
{
s=s+1/n;
}
printf(“%6.4f”,s);
return 0;
}
选项:
A:s=s+1/n;
B: printf(“%6.4f”,s);
C:for(n=10;n>1;n–)
D:s=1.0;
答案: 【s=s+1/n;

21、 问题:以下程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是#include
int main( )
{
char k;
int i;
for(i=1;i<3;i++)
{
scanf(“%c”,&k);
switch(k)
{
case ‘0’: printf(“another”);
case ‘1’: printf(“number”);
}
}
return 0;
}
选项:
A:anothernumbernumber
B:numbernumber
C:anothernumber
D:anothernumberanother
答案: 【anothernumbernumber

22、 问题:华氏和摄氏温度的转换公式为C=5/9×(F-32)。式中,C表示摄氏温度,F表示华氏温度。要求:华氏0℉~300℉,每隔20℉输出一个华氏温度对应的摄氏温度值。‍代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include
int main()
{
int upper = 300, step = 20;
float fahr = 0, celsius;
while (fahr < upper)
{
__;
printf(“%4.0f\t%6.1f”, fahr, celsius);
_______ ;
}
return 0;
}
选项:
A:第8行代码: celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr + step
B:第8行代码: celsius = 5 / 9 * (fahr – 32)第10行代码: fahr = fahr + step
C:第8行代码: celsius = 5.0 / (9 * (fahr – 32))第10行代码: fahr = fahr + step
D:第8行代码: celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr – step
答案: 【第8行代码: celsius = 5.0 / 9 * (fahr – 32)第10行代码: fahr = fahr + step

23、 问题:利用泰勒级数:计算e的近似值,当最后一项的绝对值小于时认为达到了精度要求,要求统计总共累加了多少项。‍代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。#include

include

int main()
{
int n = 1, count = 1;
____;
double term = 1.0;
while (fabs(term) >= 1e-5) //判末项大小
{
__; //求出累加项
e = e + term; //累加
n++; // 计算下一项
___; //统计累加项数
}

   printf("e = %f, count = %d", e, count);
return 0;

}
选项:
A:第6行代码: double e = 1.0第10行代码: term = term / n第13行代码: count++
B:第6行代码: double e = 0第10行代码: term = term / n第13行代码: count++
C:第6行代码: double e = 1.0第10行代码: term = term n第13行代码: count++
D:第6行代码: double e = 0第10行代码: term = term
n第13行代码: count++
答案: 【第6行代码: double e = 1.0第10行代码: term = term / n第13行代码: count++

24、 问题:打印所有的“水仙花数”。所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。例如,153是“水仙花数”,因为 代码如下,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include
int main()
{
int i, j, k, n;
printf(“result is:”);
for (n=100; _; n++)
{
i = n / 100; //分离出百位
j = __; //分离出十位
k =
_; //分离出个位
if (
___
)
{
printf(“%d\t “,n); //输出结果
}
}
printf(“”);
return 0;
}
选项:
A:第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk
B:第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k = iii+jjj+kkk
C:第6行: n<=1000第9行: n % 100第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk
D:第6行: n<1000第9行: (n – i * 100) / 10第10行:n /10第11行:i100+j10+k == iii+jjj+kkk
答案: 【第6行: n<1000第9行: (n – i * 100) / 10第10行:n % 10第11行:i100+j10+k == iii+jjj+kkk

【作业】第5讲 循环控制结构 第5讲 课堂编程记分测验

1、 问题:最大数问题
建议:【本题是主观题,暂无解析】

【作业】第6讲 函数 第6讲 进阶练习题

1、 问题:小学生10以内加、减法辅助练习程序设计,具体要求见附件
评分规则: 【 提交了作业
模块逻辑关系图完整1分、清晰、规范2分;
模块间的调用关系正确1分;模块间数据传递简单、明确1分;
模块间无共用的变量2分;
完成了正确率统计函数 1分;程序整体运行结果正确1分;

【作业】第6讲 函数 进阶练习题(带附件)

1、 问题:小学生10以内加、减法辅助练习程序设计,具体要求见附件。注:具体文件格式参见第6讲教学视频:“小学生简洁练习程序分析与设计示例”和实验报告册中的“实验作业示例2”
评分规则: 【 提交了作业
模块逻辑关系图完整1分、清晰、规范2分;
模块间的调用关系正确1分;模块间数据传递简单、明确1分;
全局变量较少1分,模块间无共用的变量1分;
完成了正确率统计函数 1分;程序整体运行结果正确1分;

第2讲 运算符和表达式 G转专业–第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之间的随机数。其中rand( )是随机数生成函数,其值范围为0-32767(0x7FFF)。
选项:
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讲 运算符和表达式 G转专业–第2讲进阶测验

1、 问题:已知有足量的水,3ml、5ml的容器各一个,试设计并用自然语言描述“出量出4ml水”的算法,也就是设计和描述出“量出4ml的水”的步骤。要求:计算步骤描述清晰;计算步骤划分较为合理;按计算步骤能得出正确的结果。
评分规则: 【 计算步骤描述清晰得3分;计算步骤划分较为合理得3分;按计算步骤能得出正确的结果得4分。参考答案(本答案仅供参考,只要满足上面的采分点即可得分):step1:用水灌满5ml的容器;step2:将5ml容器的水倒灌3ml的容器;step3:将3ml容器中的水倒掉,并将5ml容器中剩余的水倒入3ml容器;step4:将5ml容器灌满水;step5:并用5ml容器中的水灌满3ml的容器,5ml容器中就剩下了4ml。

【作业】第2讲 运算符和表达式 G转专业–第2讲课堂编程测验

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

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

【作业】实验二:循环控制结构 实验二 课堂编程测验

1、 问题:阶乘
建议:【本题是主观题,暂无解析】

实验二:循环控制结构 实验二 课堂客观题测验

1、 问题:若x是整形变量,以下程序段的输出结果是:for(x=3;x<6;x++) printf((x%2)?(“%d”):(“##%d”),x);
选项:
A:
3##45
B:
3##4##5
C:##34##5
D:##3
4##5
答案: 【3##45

本门课程剩余章节答案为付费内容
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦
   

发表回复

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