学习日志 姓名: 王瑶 日期: 2017.07.09
今日学习任务 | c语言基础知识的学习,包括:基本数据类型,算术运算符、循环语句、及break、continue语句。 |
今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。)
| 1、学习了c语言中的三种数据类型,其中主要是对整型数的掌握。 2、学习了数据的基本运算规则,在混合运算中掌握了数据类型的转换规则。 3、掌握了关键字sizeof以及库函数strlen的用法。 4、理解了两种数据的表现形式即常量与变量,进而掌握const和volatile修饰变量时的意义。 5、掌握c语言中的基本运算符,如/、%、<<、>>、~、|、&、a++、++a等。 6、学会使用break、continue语句。 以上学习中均结合代码完成,今日累计写小程序9个。 |
今日开发中遇到的问题汇总 | 1、数值转换时,不清楚当有符号数与无符号数进行混合运算时,其输出的数据类型。 2、singed char的表示范围中00000000和10000000是否都表示0? 3、用const修饰的变量不能通过其修改对应内存的值是否说明不能改变那一段内存地址的值? 4、左右移表达式类似于ch=ch>>1;是双目运算符。 5、a++所谓的先执行,再加一,是指先执行a所在的语句。 6、break结束本层循环但对外层循环并无影响。 7、while(1)、getchar()等语句的使用。 |
今日未解决问题 | 1、 volatile的具体使用方法,它和const是不是c中的关键字。 2、 左右移是只有字符型可以移,还是所有数值类型都可以。 |
今日开发收获 | 1、数值转换是小范围数据往大范围数据转。 2、有符号char表示范围为-128~127,其中10000000表示-128。 3、const修饰的变量不能通过其修改对应内存的值。但可以通过地址修改对应内存的值。 4、while(1)表示死循环。 5、break结束本层循环,continue结束本次循环。 |
自我评价 (是否规范完成指定任务,需要改进的地方,与他人合作等。) | 因为之前接触过c语言基本的东西,所以此次学习能跟上老师进度,还比较轻松。但是遇到的问题还是很多,所以应该必要时候记记笔记。 |
其他 | 无 |
程序1、求两个数的最大公约数,最小公倍数。
#include<stdio.h>
int main()
{
int num1,num2,t,i,j,k;
printf("pless input two numbers:\n");
scanf("%d%d",&num1,&num2);
if(num1>num2)
{
t=num1;
num1=num2;
num2=t;
}
for(i=num1;i>1;i--)
{
if(num2%i==0&&num1%i==0)
{
printf("最大公约数是:%d\n",i);
break;
}
}
for(j=1;j<=num1;j++)
{
k=num2*j;
if(k%num1==0)
{
printf("最小公倍数是:%d\n",k);
break;
}
}
return 0;
}
程序2、200~300之间不能被3整除的数,5个一行输出。
#include<stdio.h>
int main()
{
int i,k=0;
for(i=200;i<=300;i++)
{
if(i%3!=0)
{
printf("%4d",i);
k++;
if(k%5==0)
{
printf("\n");
}
}
}
return 0;
}