记录每天学习c语言的过程,第二天(记录学习的内容还有心得等)

记录学习的内容还有心得等,更像是碎碎念,今天大概了解c语言到了解c语言中有常量和变量,变量有局部变量和全局变量,涉及到了变量的作用域和生命周期,变量在哪里起作用,哪里就是他的作用域,故局部变量的作用域为创建局部变量的大括号内,全局变量的作用域为整个项目,而变量的生命周期为从变量的创建到销毁就为变量的生命周期,故局部变量的生命周期为进入局部变量的作用域,局部变量的生命周期开始,出了局部变量的作用域,局部变量的生命周期结束, 全局变量的生命周期为程序的生命周期,程序的生命周期为main函数的生命周期,全局变量在同个项目,不同源文件也能使用,不过需要用extern声明一下。

      对于c语言中的常量大概有4种,分别为字面常量,const定义的常变量,#define定义的标识符常量,枚举常量,字面常量就是字面上的常量,比如:3.14,5等但只有这些意义不大,但是存在,const定义的常变量,比如 const int a=10;这时a虽然本质上还是变量,有存储空间,但是他的值被const锁定不能改变,具有常属性,故其叫做常变量,但是不能将其视为常量,因为其有存储空间等,#define定义的标识符常量,通常用大写字母写,例如: #define SUM 100;这时对于一个程序中 int a=SUM,printf(“%d”,a);运行结果会是100,而且定义后SUM的值就不能改变了,枚举常量,就是可以一一列举的常量,用enum定义一个类型,然后将这个类型中的所有可能列举出来,然后每种可能分别代表一个值,默认按照顺序分别为0,1,2,在定义enum时可以对其中的可能结果赋予初值,但是在后面不能进行赋值。

       粗略的了解一下字符串,字符串就是用双引号引出的一串字符,字符串的结束标志是一个\0的转义字符,在用strlen计算字符串长度的时候,不会将\0计入,但是如果用char arr【】=“hello”时,会使得这个数组有6个元素。而且strlen计算字符串长度时虽然不会将\0计入,但是他会计算到\0结束,比如 char arr2【】={‘h’,‘e’,‘l’,‘l’,‘o’};printf{“%d”,strlen(arr2)};得到的结果是一个随机数,因为arr2中没有\0,而且arr2是存储在一个连续的空间中,所以strlen会一直计算下去,直到遇到\0停止,所以结果未知。在c语言中有很多转义字符,每个转义字符的作用都各不相同,转义字符就是转变了原来的意思,例如\’,表示为字符常量’,这个常在这种情况下使用,printf(“%c”,‘‘’);这里默认为前两个‘’组在一起,这样后面多了一个’,就会导致错误,无法将’打印出来,所以需要这样使用printf(“%c”,‘\’’);就能将’打印出来,而且\ooo,代表的是8进制,ooo分别表示3个8进制数字,而\xhh,代表16进制数,hh分别表示2个16进制数字。

      而且大概的了解了选择语句和循环语句,函数,数组但也只是简单的了解了,能大概看懂的程度,还了解了一些操作符,比如算术操作符,+,-,*,/,%;当/两边都是整型,则得出的结果也是一个整型,%两边必须为整型,还认识了一下位操作符,例如左移操作符<<,当int a=2;int b=a<<1,则就是将a的二进制存储向左移动一个位置,然后右边空出来的一个位置补0,这就是b的值,就是4。还有复合操作符a+=3,代表的就是a=a+3;还大概认识了单目操作符,既操作对象是一个的操作符。

今天写的题目中相对感觉有意思的题目:

依次输入一个学生的学号,以及3科(C语言,数学,英语)成绩,在屏幕上输出该学生的学号,3科成绩(注:输出成绩时需进行四舍五入且保留2位小数)。

数据范围:学号满足 1 \le n \le 20000000 \1≤n≤20000000  ,各科成绩使用百分制,且不可能出现负数

#include<stdio.h>
int main()
{
    int a;
    float b,c,d;
    scanf("%d;%f,%f,%f",&a,&b,&c,&d);
    printf("The each subject score of No. %d is %.2f, %.2f, %.2f.",a,b,c,d);
    return 0;
}

在之前以为用输出位数的时候,必须说明整体输出多少位,小数多少位,但是其实并不用,可以只说明小数输出多少位,而且输出的结果也是四舍五入后的结果。

昨天的题目补一下:

尝试用键盘读入一个字符,然后在屏幕上显示一个用这个字符填充的对角线长5个字符,倾斜放置的菱形。

#include<stdio.h>
 int main()
 {
    char a;
     int i,j;
     int n=3;
     scanf("%c",&a);
     for(i=1;i<=n;i++)
     {
         for(j=1;j<=n-i;j++)
             printf(" ");
         for(j=1;j<=2*i-1;j++)
             printf("%c",a);
         printf("\n");
     }
     for(i=1;i<n;i++)
     {
         for(j=1;j<=i;j++)
             printf(" ");
         for(j=1;j<=5-2*i;j++)
            printf("%c",a);
         printf("\n");
     }
     return 0;
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值