124数字的个位x2+十位+百位=**?

C语言程序设计编辑与调试环境

任何高级语言源程序都要“翻译”成机器语言,才能在机器上运行。“翻译”的方式有两种:一种是解释方式,即对源程序解释一句执行一句;另一种是编译方式,即通过编译系统先把源程序“翻译”成目标程序(用机器代码组成的程序),再经过连接装配后生成可执行文件,最后执行可执行文件而得到结果。
C语言是一种编译型的程序设计语言,采用编译的方式将源程序翻译成目标程序(机器代码)。运行一个C程序,从输入源程序开始,要经过编辑源程序文件(.c或.cpp)、编译生成目标文件(.obj)、连接生成可执行文件(.exe)和执行4步。

本关任务:通过运行一个C语言程序,让你初步了解程序的运行方法。
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
开始你的任务吧,祝你成功!

本关任务:参照上面调试的程序,编写一个能输出规定图形的程序。

编写一个C程序,输出以下图案,并上机调试通过。第一行开头有4个空格,第二行开头有3个空格,第三行有2个空格,第四行开头有一个空格,第五行开头没有空格,9个*。



平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。



本题通过执行多个printf函数输出每一行即可,暂时不用考虑使用循环。
开始你的任务吧,祝你成功!

第3关:求3个数的最大值

本关任务:编写一个程序,输入a、b、c三个整数,输出其中最大值。
输入一行数据,分别为a b c。
a b c其中最大的数,不用换行。
三个数两两比较,将较大的数存入最大值变量max;
根据提示,在右侧编辑器Begin-End中补充代码,计算并输出三个数的最大值。
我会对你编写的代码进行测试:

开始你的任务吧,祝你成功!

第4关:熟悉C语言调试过程

本关任务:以下程序源代码有错误,请使用C语言的调试功能,检查程序的错误并更正,使之能正确运行。
程序中要求键盘输入x的值,当x的值为5时输出,否则输出#####。
输出:当x的值为5时输出*****,否则输出#####。
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
开始你的任务吧,祝你成功!

顺序结构是最简单的一种程序结构,其它的结构可以包含顺序结构也可以作为顺序结构的组成部分,可见顺序结构无处不在,他是构成其他程序结构的基础。
C程序是由若干源程序构成的。而在大多数情况下,一个C程序只是由一个源程序构成。一个源程序中又包含编译预处理命令(预编译命令)、全局变量的定义命令和各个用户函数组成。而各函数又由说明部分和执行部分组成。说明部分主要是定义本函数中要用到的变量,执行部分是由语句组成的。

本关任务:写一个加法程序,输入整数a,b,输出他们的和。
请补充Begin-End之间的代码,写一个加法程序,输入整数a,b,输出他们的和。
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
开始你的任务吧,祝你成功!

第2关:不使用第3个变量,实现两个数的对调

本关任务:已知某物品单价为30,数量为x。求商品的总价钱。用宏定义物品的单价。
根据提示,在右侧编辑器Begin-End处补充代码,用宏定义物品的单价。
输入:一个整数x,代表物品的数量。
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
开始你的任务吧,祝你成功!

输入一个三位数,分别求出x的各位数字,十位数字,百位数字的值。
根据提示,在右侧编辑器Begin-End处补充代码,输入一个三位数,分别求出x的各位数字,十位数字,百位数字的值。
输出:输出该数字的百位,十位,个位,数字之间用一个空格隔开。
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
开始你的任务吧,祝你成功!

第5关:计算总成绩和平均成绩

本关任务:编程求从键盘上输入一个学生的五门成绩,计算出该学生的总成绩和平均成绩。
根据提示,在右侧编辑器Begin-End处补充代码,编程求从键盘上输入一个学生的五门成绩,计算出该学生的总成绩和平均成绩。
输出:总成绩和平均成绩,其中平均成绩保留小数点后两位。
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
开始你的任务吧,祝你成功!

第6关:求三角形的面积

本关任务:编程求以a、b、c为边长的三角形的面积area。
三角形面积计算公式为:
假设三角形三条边长分别为a、b、c,其中s=(a+b+c)/2,则面积:
根据提示,在右侧编辑器Begin-End处补充代码,编程求以a、b、c为边长的三角形的面积area。
输入:a b c三角形的三条边,可以是小数;
输出:三角形面积,保留3位小数。
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
开始你的任务吧,祝你成功!

第7关:立体几何计算题

本关任务:设圆半径r,圆柱高h , 求圆周长C1,半径为r的圆球表面积Sb,圆半径r,圆柱高为h的圆柱体积Vb。 用scanf输入数据,输出计算结果,输出时取小数点后两位数字。请编程序。 PI=3.14
输入:两个double型浮点数,r和h;
输出:圆周长C1、圆球表面积Sb、圆柱体积Vb。 保留两位小数,每个结果后换行。
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
圆球表面积计算公式为s=4πr × r ,r为球的半径。
圆柱体体积计算公式为:V=πr ×r×h,r为半径,h为高。
开始你的任务吧,祝你成功!

第8关:计算两个正整数的最大公约数

编程计算两个正整数的最大公约数。其中求最大公约数的函数原型已经给出,请在主函数中编程调用函数,输出最大公约数。
求最大公约数的函数原型如下:
返回值:返回的是最大公约数;若输入的数据有任意一个不满足条件,返回值是-1。
参数:a,b是两个整型数
本任务主要考察函数的调用方法。
根据提示,在右侧编辑器Begin-End处补充代码,编程计算两个正整数的最大公约数。
输入:输入格式:“%d,%d”
输出:输出格式:“%d\n”
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。
开始你的任务吧,祝你成功!

顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用选择(分支)结构。
分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序,适合带有逻辑或关系比较等条件判断的计算。编程之前,需要先分析程序中所处理的数据、构造合适的分支条件以及程序流程,再将程序流程用程序流程图绘制出来,最后根据程序流程写出源程序。这样可以把程序的分析、算法流程与程序实现分开,使得问题简单化,易于理解。

本关任务:下面的程序是从键盘输入三个整数按从小到大的顺序输出。
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
排序输出从小到大的三个整数。
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写排序的小程序。
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
请输入三个整数:5 7 6

从小到大排列为:5,6,7
开始你的任务吧,祝你成功!

第2关:选择结构-闰年判断

编写程序,完成如下功能:从键盘输入任意年份year,判别该年份是否闰年。
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
从键盘任意输入一个年份 。
根据是否闰年进行输出,是输出"****是闰年!",否输出"不是闰年!",其中为当前输入的年份。

开始你的任务吧,祝你成功!
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写选择结构-闰年判断的小程序。

第3关:选择结构-分段函数问题

本关任务:编写程序,根据输入的值,输出函数的值。
写一段程序,输入x,输出y。
从键盘任意输入一个数x
一个数y,保留小数点后三位。
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写选择结构-分段函数问题的小程序。
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
开始你的任务吧,祝你成功!

第4关:学生成绩等级换算

本关任务:给出一百分制成绩,要求输出成绩等级A、B、C、D、E。 90分以上为A 80-89分为B 70-79分为C 60-69分为D 60分以下为E,如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
从键盘输入一个成绩,成绩可以使浮点数。
(1)如果输入数据在0到100范围内:一个字符,表示成绩等级。
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写学生成绩等级换算的小程序。
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。

本关任务:编写一个计算机快递费的程序。
上海市的某快递公司根据投送目的地距离公司的远近,将全国划分成5个区域:
快递费按邮件重量计算,由起重费用、续重费用两部分构成:
(1) 起重(首重)1公斤按起重资费计算(不足1公斤,按1公斤计算),超过首重的重量,按公斤(不足1公斤,按1公斤计算)收取续重费;
(2) 同城起重资费10元,续重3元/公斤;
(3) 寄往1区(江浙两省)的邮件,起重资费10元,续重4元;
(4) 寄往其他地区的邮件,起重资费统一为15元。而续重部分,不同区域价格不同:2区的续重5元/公斤,3区的续重6.5元/公斤,4区的续重10元/公斤。
编写程序,从键盘输入邮件的目的区域编码和重量,计算并输出运费,计算结果保留2位小数。
续重部分不足一公斤,按1公斤计算。因此,如包裹重量2.3公斤:1公斤算起重,剩余的1.3公斤算续重,不足1公斤按1公斤计算,1.3公斤折合续重为2公斤。如果重量应大于0、区域编号不能超出0-4的范围。
用逗号分隔的两个数字,第一个表示区域、第二个是重量:“%d,%f”
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

第2关:计算一元二次方程的根

本关任务:根据下面给出的求根公式,计算并输出一元二次方程ax2+bx+c=0的两个实根,要求精确到小数点后4位。其中a,b,c的值由用户从键盘输入。如果用户输入的系数不满足求实根的要求,输出错误提示 “error!”。
根据提示,在右侧编辑器Begin-End处补充代码,按照要求完成本关任务。
输入错误提示信息:“error!\n”
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。

第3关:产品信息格式化

本关任务:编写一个程序, 对用户录入的产品信息进行格式化。
根据提示,在右侧编辑器Begin-End处补充代码,编写一个程序, 对用户录入的产品信息进行格式化。
以下为程序的运行结果示例:

顺序结构是按照从上到下的方式组织程序语句,运行时依次执行,顺序结构中的语句只执行一次。选择结构是根据条件是否成立来选择是否执行某些语句,换言之,选择结构中满足条件的语句执行一次,而不满足的一次也不执行。但现实问题中,我们经常要进行一些重复处理。
在程序设计中,如果需要重复执行某些操作,就要用到循环结构。实际中会遇到大量的按一定规律重复处理的问题,我们把这种按一定规律重复计算的过程称为循环计算过程,或简称为循环过程。使用循环结构进行编程时,首先要明确两个问题:哪些操作需要重复执行?这些操作在什么条件下重复执行?
C语言提供了两种循环结构:当型循环和直到型循环
当型循环的特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。直到型循环特点是,先执行循环体后判断。给定的条件称为循环条件,反复执行的程序段称为循环体。
C语言提供了多种循环语句,while语句、do-while语句、for语句以及if和goto语句配合,可以组成不同形式的循环结构。

第1关:小球自由落体运动

一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 结果保留两位小数。
根据提示,在右侧编辑器Begin-End处补充代码,并按照要求完成本关任务。
从键盘输入M和N的值。
它在第N次落地时反弹多高?共经过多少米? 保留两位小数,空格隔开,放在一行。
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。

printf("请输入两个进行运算的数(用空格隔开)。"); printf("请输入您希望进行的运算顺序(用空格隔开)。");

第2关:求解出n以内所有能被5整除的正整数的乘积

本关任务:求解出n以内(包含n)所有能被5整除的正整数数的乘积s。
根据提示,在右侧编辑器Begin-End处补充代码,求解出n以内(包含n)所有能被5整除的正整数数的乘积s
输入包含多个样例,每个样例一个正整数n,占一行。读取到文件结尾。输入的n不超过100。
对于每个样例n,输出n以内(包含n)所有能被5整除的正整数的乘积。
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。

第3关:最大公约数和最小公倍数

本关任务:输入两个正整数m和n,求其最大公约数和最小公倍数。
根据提示,在右侧编辑器Begin-End处补充代码,输入两个正整数m和n,求其最大公约数和最小公倍数。
从键盘上任意输入两个数。
分两行输出,第一行输出:最大公约数是多少;第二行输出最小公倍数是多少。
平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。

第4关:字符串中各类字符数的统计

本关任务:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

根据提示,在右侧编辑器Begin-End处补充代码,输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

统计每种字符的个数值。

输入:5 3 表示3个由5组成的数相加,即计算5+55+555的值,输出:615

在编程中,我们常常遇到需要将一条语句或者一段代码重复运行多次的情况,如没有循环语句,需逐条编写,会导致程序的繁杂与冗余。

C中可利用while、for、do-while等常用循环函数来是语句或代码块进行重复操作,从而省去很多重复的工作,使代码简洁明了。

基本语法:基于while实现循环的基本语法如下:

需要循环的语句或者代码块
其中括号中的布尔值如果为真,这进入循环,直到布尔值变为假,则推出循环,继续执行之后代码。
其中括号中的布尔值如果为假,则直接不进入循环,继续执行循环代码块之后代码。

for(1.赋值语句或者省略;2.判断语句或者省略;3.执行语句或者省略){
需循环的语句或者代码块
其中1处位置,是一个赋值语句,在循环开始前执行一次,之后再不执行。
其中2处位置为判断语句,每次开始循环时(包括第一次)都会先经过这个判断语句的判断
如果此处为真,则进入循环,执行循环内语句或者代码块。
如果此处为假,则不进入循环,执行之后的代码。
其中3处位置为一个运算语句,每执行完一次循环,就会执行一次此处代码。

输入:5 3 表示3个由5组成的数相加,即计算5+55+555的值,输出:615

本关涉及的代码文件的代码框架如下:

第1关:C循环-求平均成绩

本关任务:编写一个程序,输入学生人数和每个人的成绩,计算平均成绩。
######注意:当输入的学生人数小于等于0时,输出平均成绩为0分!
在编程中,我们常常遇到需要将一条语句或者一段代码重复运行多次的情况,如没有循环语句,需逐条编写,会导致程序的繁杂与冗余。

C中可利用while、for、do-while等常用循环函数来是语句或代码块进行重复操作,从而省去很多重复的工作,使代码简洁明了。

基本语法:基于while实现循环的基本语法如下:

需要循环的语句或者代码块
其中括号中的布尔值如果为真,这进入循环,直到布尔值变为假,则推出循环,继续执行之后代码。
其中括号中的布尔值如果为假,则直接不进入循环,继续执行循环代码块之后代码。

for(1.赋值语句或者省略;2.判断语句或者省略;3.执行语句或者省略){
需循环的语句或者代码块
其中1处位置,是一个赋值语句,在循环开始前执行一次,之后再不执行。
其中2处位置为判断语句,每次开始循环时(包括第一次)都会先经过这个判断语句的判断
如果此处为真,则进入循环,执行循环内语句或者代码块。
如果此处为假,则不进入循环,执行之后的代码。
其中3处位置为一个运算语句,每执行完一次循环,就会执行一次此处代码。

// 同样需要输出3个6
本关的编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下:
编程实现:编写一个程序,输入学生人数和每个人的成绩,计算平均成绩。
######注意:当输入的学生人数小于等于0时,输出平均成绩为0分!
本关涉及的代码文件的代码框架如下:

第2关:C循环-求各位数字之积

本关任务:计算正整数num的各位上的数字之积。

在编程中,我们常常遇到需要将一条语句或者一段代码重复运行多次的情况,如没有循环语句,需逐条编写,会导致程序的繁杂与冗余。

C中可利用while、for、do-while等常用循环函数来是语句或代码块进行重复操作,从而省去很多重复的工作,使代码简洁明了。

基本语法:基于while实现循环的基本语法如下:

需要循环的语句或者代码块
其中括号中的布尔值如果为真,这进入循环,直到布尔值变为假,则推出循环,继续执行之后代码。
其中括号中的布尔值如果为假,则直接不进入循环,继续执行循环代码块之后代码。

for(1.赋值语句或者省略;2.判断语句或者省略;3.执行语句或者省略){
需循环的语句或者代码块
其中1处位置,是一个赋值语句,在循环开始前执行一次,之后再不执行。
其中2处位置为判断语句,每次开始循环时(包括第一次)都会先经过这个判断语句的判断
如果此处为真,则进入循环,执行循环内语句或者代码块。
如果此处为假,则不进入循环,执行之后的代码。
其中3处位置为一个运算语句,每执行完一次循环,就会执行一次此处代码。

// 同样需要输出3个6
本关的编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下:
计算正整数num的各位上的数字之积。

本关涉及的代码文件的代码框架如下:

第3关:C循环-求阶乘之和

本关任务:编写一个程序,任意输入n,求S=1!+2!+…+n!。
注意:n!表示n的阶乘。0的阶乘等于1,负数的阶乘等于0。

在编程中,我们常常遇到需要将一条语句或者一段代码重复运行多次的情况,如没有循环语句,需逐条编写,会导致程序的繁杂与冗余。

C中可利用while、for、do-while等常用循环函数来是语句或代码块进行重复操作,从而省去很多重复的工作,使代码简洁明了。

基本语法:基于while实现循环的基本语法如下:

需要循环的语句或者代码块
其中括号中的布尔值如果为真,这进入循环,直到布尔值变为假,则推出循环,继续执行之后代码。
其中括号中的布尔值如果为假,则直接不进入循环,继续执行循环代码块之后代码。

for(1.赋值语句或者省略;2.判断语句或者省略;3.执行语句或者省略){
需循环的语句或者代码块
其中1处位置,是一个赋值语句,在循环开始前执行一次,之后再不执行。
其中2处位置为判断语句,每次开始循环时(包括第一次)都会先经过这个判断语句的判断
如果此处为真,则进入循环,执行循环内语句或者代码块。
如果此处为假,则不进入循环,执行之后的代码。
其中3处位置为一个运算语句,每执行完一次循环,就会执行一次此处代码。

// 同样需要输出3个6
本关的编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下:
编程实现:任意输入n,求S=1!+2!+…+n!。
######注意:n!表示n的阶乘。0的阶乘等于1,负数的阶乘等于0。

本关涉及的代码文件的代码框架如下:

第4关:C循环-水仙花数

本关任务:求出所有的水仙花数。

提示:所谓水仙花数是指一个三位数,其各位数字的立方和等于该数字本身。比如153是一个水仙花数,因为153=13+53+3^3。

注意:本题不需要输入语句,由于网站限制要求一定要有输入输出示例,但同学们可以对输入部分忽略不计。

在编程中,我们常常遇到需要将一条语句或者一段代码重复运行多次的情况,如没有循环语句,需逐条编写,会导致程序的繁杂与冗余。

C中可利用while、for、do-while等常用循环函数来是语句或代码块进行重复操作,从而省去很多重复的工作,使代码简洁明了。

基本语法:基于while实现循环的基本语法如下:

需要循环的语句或者代码块
其中括号中的布尔值如果为真,这进入循环,直到布尔值变为假,则推出循环,继续执行之后代码。
其中括号中的布尔值如果为假,则直接不进入循环,继续执行循环代码块之后代码。

for(1.赋值语句或者省略;2.判断语句或者省略;3.执行语句或者省略){
需循环的语句或者代码块
其中1处位置,是一个赋值语句,在循环开始前执行一次,之后再不执行。
其中2处位置为判断语句,每次开始循环时(包括第一次)都会先经过这个判断语句的判断
如果此处为真,则进入循环,执行循环内语句或者代码块。
如果此处为假,则不进入循环,执行之后的代码。
其中3处位置为一个运算语句,每执行完一次循环,就会执行一次此处代码。

// 同样需要输出3个6
本关的编程任务是补全右侧代码片段中Begin至End中间的代码,具体要求如下:
提示:所谓水仙花数是指一个三位数,其各位数字的立方和等于该数字本身。比如153是一个水仙花数,因为153=13+53+3^3。·
注意:本题不需要输入语句,由于网站限制要求一定要有输入输出示例,但同学们可以对输入部分忽略不计。
本关涉及的代码文件的代码框架如下:

第5关:C循环-寻找完数

本关任务:一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出1000之内的所有完数。

根据提示,在右侧编辑器Begin-End处补充代码,并按照要求完成任务。

编程序找出1000之内的所有完数,每个完数占一行。

平台会对你编写的代码进行测试,若是与预期输出相同,则算通关。

C语言是函数式的语言,C源程序是由函数组成的。 虽然在前面实训程序中都只有一个主函数main(), 但实用程序往往由多个函数组成。函数是C源程序的基本模块, 通过对函数模块的调用实现特定的功能。C语言中的函数相当于其它高级语言的子程序。
C语言函数是一个自我包含的,能完成一定相关功能的执行代码段,我们可以把C函数看成一个“黑盒子”,只要将数据送进去就能得到结果,而函数的内部究竟是如何工作的,外部程序是不知道的。外部程序所知道的仅限于输入给函数什么数据以及函数输出什么内容。函数提供了编制程序的手段,使之容易读、写、理解、排除错误、修改和维护。
在求解一个复杂问题时,我们通常采用的是逐步分解、分而治之的方法,也就是把一个大问题分解成若干个比较容易求解的小问题,然后分别求解。程序员在设计一个复杂的应用程序时,往往也是把整个程序划分为若干功能较为单一的程序模块,然后分别予以实现,最后再把所有的程序模块像搭积木一样装配起来,这种在程序设计中分而治之的策略,被称为模块化程序设计方法。
在C语言中,函数是程序的基本组成单位,因此可以很方便地用函数作为程序模块来实现C语言程序。利用函数,不仅可以实现程序的模块化,程序设计得简单和直观,提高了程序的易读性和可维护性,而且还可以把程序中普遍用到的一些计算或操作编成通用的函数,以供随时调用,这样可以大大地减轻程序员的代码工作量。

题目描述:给你一个n,要求你编写一个函数求1+2+…+n.

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。

本关任务:编写函数求区间[200,3000]中所有的回文数,回文数是正读和反读都是一样的数。如525, 1551

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。

输出区间[200,3000]中所有的回文数,一行一个回文数,不需要输出其它无关的字符。

平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。

第3关: 编写函数求表达式的值

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
输出表达式的值,占一行。
用int可能会溢出,需要用能表示更大范围的long long int(注:VC6.0不支持此类型,VC下使用可使用__int64替代)

题目描述:两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
3000以内的全部亲密数(输出格式:(A,B),不加换行,不加分隔符号)
一对亲密数只输出一次,小的在前
按照亲密数定义,要判断数a是否有亲密数,只要计算出a的全部因子的累加和为b,再计算b的全部因子的累加和为n,若n等于a则可判定a和b是亲密数。计算数a的各因子的算法:
用a依次对i(i=1~a/2)进行模运算,若模运算结果等于0,则i为a的一个因子;否则i就不是a的因子。

题目描述:写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,变量类型使用long long int。
最大公约数 最小公倍数
如果输入的数中包含负数,则输出Input Error
负数没有最大公约数和最小公倍数;
最大公约数和最小公倍数一定为正数,不可以为负数;
需要考虑代码运行效率,否则会评测超时。

C语言中不允许作嵌套的函数定义,在定义一个函数时不允许在函数体内再定义另一个函数。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。
####函数的递归调用
C语言函数可以自我调用。如果函数内部一个语句直接或间接调用了函数自己,则称这个函数是“递归”。

第1关:递归求阶乘数列

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
输出表达式的值,占一行。
因阶乘结果变化很快,所以输入数据不可太大。

第2关:递归实现输出一个整数的逆序

题目描述:编写一个递归函数,将一个整数n逆序输出,比如,n = 12345,输出54321。
####相关知识(略)
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。

第3关:将整数递归转换成字符串

题目描述:用递归法将一个整数n转换成字符串。例如,输入n为483,输出字符串 4 8 3,每个数字后面接一个空格用于隔开字符。
####相关知识(略)
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
相应的用空格隔开的数字字符。
特别注意:输出字符之间有空格

第4关:递归实现Ackman函数

题目描述:编写一函数实现下列Ackman函数,其中m,n为正整数
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
输出表达式的值,占一行。

程序设计所涉及和处理的数据类型有:整型、实型、字符型,它们都属于C语言的基本数据类型。但在实际应用中,需要处理的数据往往是复杂多样的,C语言提供了一些更为复杂的数据类型,称为构造类型。数组是最基本的构造类型,可以方便地处理一批具有相同性质的数据的问题。
关于数组我们就可以把它看作是一个类型的所有数据的一个集合,并用一个数组下标来区分或指定每一个数。例如一个班级通常会有几十个人,但是老师来认识他们的时候首先会把他们看作是某某班的成员,然后再利用他们的学号来区分每一个学生,这时候,班级就是一个数组,而学号就是数组的下标,当我们指明是几号学号的时候就找到了这个学生。
同样在编程中,如果有一组相同数据类型的数据,例如有10个数字,这时候如果我们要用变量来存放它们的话,就要分别使用10个变量,而且要记住这10个变量的名字,这会十分的麻烦,这时候就可以用一个数组变量来存放他们。使用数组会让程序变的简单,而且避免了定义多个变量的麻烦。
数组有多种形式,通常分为一维数组、二维数组及多维数组。数组的正确定义和引用是我们必须要掌握的知识。利用数组中每个元素的规律变化可以方便的对数组进行操作。

本关任务:将十个数进行从大到小的顺序进行排列。
根据提示,在右侧编辑器Begin-End处补充代码。
以从大到小的顺序输出这个十个数。

题目描述:给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。

根据提示,在右侧编辑器Begin-End处补充代码。
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。

第3关:计算数组中元素的最大值及其所在的行列下标值

题目描述:将n个从小到大排序的整数(n ####相关知识(略)
根据提示,在右侧编辑器Begin-End处补充代码。
输入包括3行,第一行为整数n,第二行包括n个整数,以空格分隔,第三行为整数m。
如果能够在序列中找到整数m,则输出编号(如果存在多个编号,返回编号最小的),如果不存在,则输出None。

题目描述:找出具有m行n列二维数组Array的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1 相关知识(略)
输入数据有多行,第一行有两个数m和n,下面有m行,每行有n个数。
其中x代表鞍点,i和j为鞍点所在的数组行和列下标,我们规定数组下标从0开始。
一个二维数组并不一定存在鞍点,此时请输出None
我们保证不会出现两个鞍点的情况,比如:
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。

题目描述:输入10个互不相同的整数并保存在数组中,找到该最大元素并删除它,输出删除后的数组
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写删除最大值的小程序。
输入10个互不相同整数
输出删除最大元素后的数组
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。

题目描述:还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充,完成编写杨辉三角的小程序。
平台会对您的代码进行运行测试,如果实际输出与预期输出相同,则算通关。
打印出杨辉三角图形的10行。格式见题目描述部分。每个整数后面接一个空格来分隔开整数

用来存放字符量的数组称为字符数组。字符数组类型定义的形式与前面介绍的数值数组相同。例如:char c[10]; 由于字符型和整型通用,也可以定义为int c[10]但这时每个数组元素占4个字节的内存单元。字符数组也可以是二维或多维数组,例如:char c[5][10];即为二维字符数组。字符数组也允许在类型定义时作初始化赋值。例如:
字符串在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。字符串总是以’\0’作为串的结束符。因此当把一个字符串存入一个数组时,也把结束符’\0’存入数组,并以此作为该字符串是否结束的标志。

题目描述:输入一个字符串,输出反序后的字符串。
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
特别注意:样例输出没有进行换行操作

题目描述:对于给定的一个字符串,统计其中数字字符出现的次数。
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
对于每个测试实例,输出该串中数值的个数,每个输出占一行。、

题目描述:输入两个字符串a和b,将b串中的最大字符插入到a串中最小字符后面。
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
输入两个字符串a和b。
字符串长度不超过100
注意:使用gets()**函数会引起警告并不是报错,只要代码编译正确并不会影响测评结果。

题目描述:编写程序,输入字符串s1和s2以及插入位置f,在字符串s1中的指定位置f处插入字符串s2。如输入"BEIJING", “123”, 3,则输出:“BEI123JING”。
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
第一行和第二行分别输入两个字符串s1和s2,第三行输入插入位置f。
每个字符串的长度不超过100个字符。
输出一行插入后的字符串。
注意:使用gets()**函数会引起警告并不是报错,只要代码编译正确并不会影响测评结果。

题目描述:输入一段字符(由空格、字母和数字几种组成,保证开头不为空格),里面有若干个字符串,求这些字符串的长度和,并输出最长字符串内容,如果有多个输出最先出现的那个字符串。以stop作为最后输入的字符串。
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
输入一段字符,以stop作为最后输入的字符串。
字符串长度不超过100。
注意:使用gets()函数会引起警告,但正确使用不影响测评结果。
推荐使用:fgets()函数。

题目描述:输入3行,每行n个字符串,按由小到大的顺序输出
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
按照从小到大输出成3行

指针是C语言中的一个重要概念,也是C语言的一个重要特色。在C语言中,指针被广泛使用,它和数组、字符串、函数间数据的传递等有着密不可分的联系。正确而灵活地运用指针,可以使程序简洁、紧凑、高效。可以说,没有掌握指针就没有掌握C语言的精华。
###为什么要使用指针
指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构;能很方便地使用数组和字符串;并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。学习指针是学习C语言中最重要的一环,能否正确理解和使用指针是我们是否掌握C语言的一个标志。
虽然指针并不是必须的,在诸如Java之类的一些高级语言中甚至已经取消了指针,但是只要我们运用得当,指针将使程序变得更加简洁和高效。C语言如果没有指针,就不会在各种新语言层出不穷并流行的今天依旧能够站在计算机程序设计语言的巅峰,这是经历几代编程语言“浪淘沙”之后留下来的精华。

第1关:用指针法输入12个整数,然后按每行4个数输出

题目描述:用指针法输入12个整数,然后按每行4个数输出
####相关知识(略)
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
输入包含一行,有12个整数。
按顺序,每行输出4个整数。

第2关:指针变量作为函数参数实现两变量交换值

题目描述:对输入的两个整数a,b,用指针变量作为函数参数,交换a和b的值。
输出用函数交换处理后的值a b
开始你的任务吧,祝你成功!
题目描述:对输入的两个整数a,b,用指针变量作为函数参数,交换a和b的值。
####相关知识(略)
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
输出用函数交换处理后的值a b

题目描述:有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
####相关知识(略)
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。

题目描述:用一个函数实现两个字符串的比较,即自己写一个strcmp函数
####相关知识(略)
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。

既然函数返回值可以是整、实型等数据。当然也可以是指针值,只是函数定义头部形式略有不同:
类型名称 *函数名(形参列表)
其中,fun是函数名,调用它以后返回一个指向整型的指针。*表示其后的函数fun( )是指针型函数(函数返回值是指针),最前面的int表示返回的指针基类型为整型。
指针不但可以指向一般的变量、数组,还可以指向函数。指向函数的指针保存的是函数的入口地址,即这个函数第一条指令的地址。和数组名代表数组的首地址一样,函数名代表函数的入口地址。
元素均为指针类型数据的数组,称为指针数组。
类型名称 *数组名[数组长度];
a是一个数组,它有10个元素,每个元素的类型都是整型。
b是一个数组,它有5个元素,每个元素的类型都是字符指针,用于存放字符数据单元的地址。
如果数组名ptr指向某一个数组的首地址,那么如果定义个指针变量p,把ptr赋值给它,那p即为指向指针的指针变量,也称为二级指针。
C语言中指向指针的指针变量一般定义为:
类型名称 **变量名;

第1关:输出若干个学生成绩中的最高分.要求用指针函数实现

题目描述:读入n(1 ####相关知识(略)
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
第一行为整数n,代表学生的数量。
第二行为n个学生的成绩,n个整数之间用一个空格隔开。

第2关:采用指针变量表示地址的方法输入输出数组中的个元素

题目描述:采用指针变量表示地址的方法输入输出数组中的个元素
第一行为n,表示n个整数,
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
第一行为n,表示n个整数,
用指针变量表示地址的方法输出数组中的各个元素。
输出占一行,两个整数之间有空格

第3关:用指针实现数组循环移动

题目描述:有n个整数,要求你编写一个函数使其向右循环移动m个位置
####相关知识(略)
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
输入n m表示有n个整数,移动m位

前面已经介绍了C语言的基本数据类型(整型、实型、字符型)。但实际问题中碰到复杂数据对象时,仅用前面介绍的数据类型显然是不够的。所以,解决的根本方法是允许用户根据实际需要利用已有数据类型构造自己所需要的数据类型,例如C语言中的结构体类型。
结构体是一种比较复杂但却非常灵活的构造型数据类型。通常用数组来表示类型相同的数据,用结构体来表示类型不同的数据。结构体是若干个类型相同或互异的数据项集合。
在现实中,几个数据之间有着密切联系,它们用来描述事物的几个方面,但它们不属于同一类型,这时可以用结构体数据类型。也就是说结构体为程序员提供了一种封装一组相关数据元素的简便方法。
结构类型定义仅描述一个结构形式,如果要在程序中使用结构体需要定义结构变量、结构数组或结构指针。存储一个学生基本信息用一个结构变量来描述,存储多个学生基本信息用结构数组来描述。结构数组即数组中每个元素是结构类型的数据。结构体中所包含的数据元素称为成员,对结构体变量成员的引用需要使用成员运算符。

第1关:结构体变量的初始化和引用

本关任务:从键盘输入两个学生的学号,姓名和成绩(整数),分别存入结构体中,输出成绩较高的学生的学号,姓名和成绩。
结构体类型用于描述由多个不同数据类型的数据构成的复合数据,是一种用户自定义数据类型。

}; //分号结束定义
例如,以下是一个描述学生信息的结构体类型定义:

在这个结构体定义中,结构体类型名为student,该结构体由4个成员组成。第一个成员为number,整型变量;第二个成员为name,字符数组;第三个成员为sex,字符变量;第四个成员为score,实型变量。应该注意在花括号后的分号是不可少的
声明结构体变量有四种方式,他们在本质上没什么区别,可根据自己习惯和要求选择你喜欢的方式:
先定义结构体,再声明结构体变量
}; //先定义结构体
在定义结构体类型的同时声明结题变量
}s1,s2; //在定义结构体的同时定义结构体变量
此方法因为没有给出结构体名,所以不能用来在后面程序中声明此结构体类型的变量,因此在实际编程是这种方法用的较少。
结构体变量的成员访问方式为:
结构体变量的每个成员都可以看做一个独立的变量,称为成员变量,对成员变量所能做的操作由成员变量的类型决定。
例如,下面的操作是合法的:
结构体成员要和结构体变量名联合使用,即以“结构体变量名.成员名”的访问方式,所以不同结构体类型的成员名字可以相同,并且他们还可以与程序中其他非结构体成员的名字相同,不会引起歧义或冲突。
注意:如果结构体变量的成员本身又是一个结构体类型,则要用若干成员运算符找到最低一级成员,只能对最低一级的成员进行赋值或者读写及运算。
对以上定义的结构体变量stu1,可以通过以下方式访问其中各成员:
在定义结构体变量的同时可以对其进行初始化,格式与数组变量初始化类似,用花括号吧每个成员的初始值括起来,每个初始值与相应的成员对应。
例如,对student结构体类型的变量s1进行初始化:
在定义结构体类型是不能对其成员进行初始化,因为类型不是程序运行时的实体,不会给他们分配内存空间,因此,对其初始化没有意义。
在右侧编辑器Begin-End处补充代码,将测试输入信息存入结构体中,完成输出成绩较高的学生的学号,姓名和成绩。
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
输入包含两行,每行包含学生的学号(11位的整数),姓名(字符串,长度不超过20)和成绩(整数)。

本关任务:有n个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出学生的信息。
参考结构体第1关相关知识
在右侧编辑器Begin-End处补充代码,要求按照成绩的高低顺序输出学生的信息。
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
第一行为整数n表示有n个学生, 1

第3关:结构体存储数据

本关任务:有三个候选人,每个选民只能投一票,写一程序,用结构体存储数据,求出得票结果。
参考结构体第1关相关知识
在右侧编辑器Begin-End处补充代码,用结构体存储数据,求出得票结果。
平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试:
输入数据第一行包含一个整数n,表示有n个人投票。接下来的每一行包含某个候选人的名字。

第4关:结构体存储学生信息

我们在操作系统中,就已经看到很多文件,知道每个文件有唯一的名称(文件名.扩展名)来标识,计算机通过文件名对文件进行读、写、修改或删除等操作。而且知道用文件可长期保存数据,数据在使用时才被调入内存。那么C语言中文件的概念与操作系统中文件的概念是否相同呢?
在C语言中,把文件看做是一个有序的字节流,即文件的读取都是以字节为单位的。它与操作系统中文件的概念是相同的。但C语言中的文件类似于数组、结构体等,它是一种数据组织方式,是程序处理的对象。程序可以创建文件,可以读写文件数据。读文件数据是把文件中有序的一个个字符或字节调入内存作为程序处理对象,写文件数据是把程序处理的中间结果或最终结果以一个个字符或字节的形式写入外存储器的文件中。
#####为什么要使用文件
我们知道,程序运行结束后,程序处理的这些数据所占有的内存空间将被释放,会被其他程序或数据占用而不被保存。这样会出现各种问题。比如,运行学生成绩管理系统,输入学生数据,根据应用把操作结果从显示器或打印机输出,而一旦结束此系统的运行,数据没有保存,内存中的数据被释放,那么,下次需要这些运算结果时,只能再次运行这个系统,又需要重新从键盘输入学生数据;并且,当输入/输出数据量较大时,用键盘和显示器就会受到限制,带来不便。另外,当数据变动时,可能需要修改程序。
文件是解决上述问题的有效办法。有了文件,第一,数据可以长期保存,任何时候都可以查看文件数据,不需要重新从键盘输入数据来执行程序;第二,数据通过文件读入比键盘输入更加方便,特别是数据量比较大时;第三,不同程序可以访问同一文件中的数据,实现数据共享;第四,数据文件的改动不引起程序的变动。

根据提示,在右侧编辑器Begin-End处补充代码,完成本关要求。
平台会对你编写的代码进行测试,若与预期输出一致,则算通关。

第2关:文件读取和写入

题目描述:从文件a.txt中读取三个整数,然后把这三个整数保存到b.txt中,两整数之间一个空格。
根据提示,在右侧编辑器Begin-End处补充代码,完成本关要求。
平台会对你编写的代码进行测试,若与预期输出一致,则算通关。

第3关:统计文本字母数量

题目描述:读取a.txt中文本,统计文本中字母数量。
根据提示,在右侧编辑器Begin-End处补充代码,完成本关要求。
读取a.txt读入文本

第4关:读取文件中指定学生信息

题目描述:实现从文本中读取出指定学号的学生信息并显示,文本文件存放格式是每一行对应一个学生信息,最后一行没有换行符。
根据提示,在右侧编辑器Begin-End处补充代码,完成本关要求。
文件a.txt存放所有学生信息。

}

我要回帖

更多关于 怎么把数字保留到百位 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信