C博客作业01--分支、顺序结构
| 这个作业属于哪个班级 | C语言--网络2011/2012 |
| ---- | ---- | ---- |
| 这个作业的地址 | C博客作业01--分支、顺序结构 |
| 这个作业的目标 | 初步认识C语法,掌握数据表达、printf、scanf语法及分支结构内容 |
0.PTA总分
1.0本章学习总结
1.1学习内容总结
- 随机函数的调用
#include<stdlib.h>
#include<time.h>
srand(time(0))//
rand()//产生随机数
例:rand()%100 //产生[0,99]的随机数
rand()%100+1//产生[1,100]的随机数
- 数据类型
- 输入输出
1.格式化输出函数printf( );:该函数在系统文件stdio.h中声明,一般调用格式为“printf(格式控制字符串,输出参数1…输出参数2);”格式控制字符串用双引号括起来,表示输出的格式,输出参数是一些要输出的数据,可以是常量、变量或表达式。在输出格式控制说明中,可以加宽度限制词,制定数据的输出宽度,以达成一些题目的格式要求,或使输出内容变得整齐、清晰。
2.格式化输入函数scanf( );:该函数同样在系统文件stdio.h中声明,一般调用格式“scanf(格式控制字符串,输入参数1…输入参数2);”格式控制字符串用双引号括起来,表示输入的格式,输入参数必须和格式控制字符串中的格式控制说明相对应,并且类型、个数和位置要一一对应。在需要输入的变量前一定要加上“&”进行取地址运算,否则会出现变量无法读入的情况。
3.字符输入函数getchar( ):设ch是字符型变量,该函数一般调用格式为“ch = getchar( );”功能是从键盘输入一个字符,并赋值给变量ch,但是该函数只能读入一个字符。
4.字符输出函数putchar( ):设ch是字符型变量,该函数一般调用格式为“getchar(输出参数);”功能是输出输出参数的字符型变量或常量,该函数只能输出一个字符。
- 常用的数学函数
-
函数名:abs
功能:返回整型数的绝对值.
用法:abs(number)
参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0.
number
举例:
运行结果:
-
函数名:fabs
功能:求浮点数x的绝对值.
用法:fabs(double x);
代码举例:
运行结果:
-
函数名:sqrt
功能:返回指定数字的平方根.
用法:sqrt (double x);
代码举例:
运行结果:
-
函数名:pow
功能:返回指定数字的指定次幂.
用法:pow (double x, double y);(将返回x的y次幂)
返回值:x不能为负数且y为小数,或者x为0且y小于等于0,返回幂指数的结果:
。返回类型: double型,int,float会给与警告!
代码举例:
运行结果:
例:
分支结构
1.二分支语句
(1)省略的if语句
if(表达式)
{
语句1;
if(表达式)
{
语句2;
}
return 0;
执行流程:先求解表达式,如果表达式的值为“真”,就执行语句1;否则,则跳到第二个if语句或两个if语句都不执行。
(2)if-else语句
if(表达式)
{
语句1;
else
{
语句2;
}
return 0;
先求解表达式,如果表达式的值为“真”,就执行语句1;否则,就执行语句2。语句1和语句2总要执行一个,但是不会都执行
例:
2.多分支结构
(1)
- if(表达式1)
{
语句1;
else if(表达式2)
{
语句2;
}
......
else
{
语句n;
}
return 0;
首先求解表达式1,如果表达式1的值为“真”,则进行语句1,并结束整个if语句的执行,否则,求解表达式2......最后的else处理给出条件都不满足的情况,即表达式1,表达式2......表达式n-1的值都为“假”时,执行语句n/font>
(2)swtich语句
switch(表达式)
{
case常量表达式1:
语句段1;
break;
case常量表达式2:
语句段2;
break;
......
default:
语句段n+1;
break;
}
return 0;
首先求解表达式,如果表达式的值与某个常量表达式的值相等,则执行该常量表达式后的相应语句段,如果表达式的值与任何一个常量表达式的值都不相等,则执行default后的语句段,最后执行break语句,跳出switch语句.
1.2编程技巧总结
- 实现两个数交换:
三个数按一定顺序输出、输出中间数
引入temple
例1:
#include<stdio.h>
int main()
{
int x;
int y;
int z;
int temp;
scanf("%d %d %d",&x,&y,&z);
if(x>y)
{
temp=x;
x=y;
y=temp;
}
if(x>z)
{
temp=z;
z=x;
x=temp;
}
if(y>z)
{
temp=z;
z=y;
y=temp;
}
printf("x=%d,y=%d,z=%d",x,y,z);
return 0;
}
例2:
#include<stdio.h>
int main(void)
{
int num1;
int num2;
int num3;
int temp;
scanf("%d %d %d",&num1,&num2,&num3);
if(num1>num2)
{
temp=num1;
num1=num2;
num2=temp;
}
if(num1>num3)
{
temp=num1;
num1=num3;
num3=temp;
}
if(num2>num3)
{
temp=num2;
num2=num3;
num3=temp;
}
printf("%d\n",num2);
return 0;
}
-
造printf语句进行调试
-
if-else语句
else和if的匹配准则:else与最靠近它的、没有与别的else匹配过的if相匹配。
if下有两条及以上语句时用大括号括起来 -
switch语句
case后只能跟常量,结束一条case时要有break
例:计算天数
-
分离各位数的方法(五位数的情况)
万位=n/10000
千位=n%10000/1000
百位=n%10000/1000%1000%100
十位=n%10000/1000%1000%100/10
个位=n%10000/1000%1000%100/10%10
例: -
判断整除做法
判断M被N整除:M%N==0
例:
1.3本章学习体会
本章的学习让我初步认识了编程,内容是很丰富的,也感受到了C语言一定的难度,希望后面有更多课余时间练习pta题目。
实验课题目好难啊啊啊啊。
2.PTA实验作业
2.2计算油费(字符型数据处理)
2.2.1数据处理
- 字符型常量:服务类型serviceType
- 整型变量:油量oil、汽油品种oilType
- 双精度实型变量:所付总金额money
2.2.2代码截图
2.2.3PTA提交列表及说明
没有理解清楚题意,计算公式出现错误,导致部分答案错误。
2.3单步调试
2.3.1单步调试截图
2.3.2代码截图
2.3.3PTA提交列表及说明
totaltime,rabbitDis,turtleDis三个变量没有初始化 导致编译错误。