C语言入门课程学习记录4

news2025/1/12 10:05:30

C语言入门课程学习记录4

  • 第18课 - signed 与 unsigned
  • 第19课 - 再论数据类型
  • 第20课 - 经典问题剖析
  • 第21课 - 程序中的辅助语句(上)
  • 第22课 - 程序中的辅助语句(下)

本文学习自狄泰软件学院 唐佐林老师的 C语言入门课程,图片全部来源于课程PPT,仅用于个人学习记录

第18课 - signed 与 unsigned

在这里插入图片描述
在这里插入图片描述

#include <stdio.h>

int main()
{
    short s = 32767;// 0111 1111 1111 1111
    int i = 2147483647;//  0111 1111 1111 1111 1111 1111 1111 1111

    short ss = -32768;//1000 0000 0000 0000
    int ii = -2147483648;//1000 0000 0000 0000 0000 0000 0000 0000 

    printf("s = %d\n", s);
    printf("i = %d\n", i);

    s = s + 1;//1000 0000 0000 0000 
    i = i + 1;//1000 0000 0000 0000 0000 0000 0000 0000 

    printf("after:s = %d\n", s);
    printf("after:i = %d\n", i);

    printf("ss = %d\n", ss);
    printf("ii = %d\n", ii);

    ss = ss - 1;//0111 1111 1111 1111
    ii = ii - 1;// 0111 1111 1111 1111 1111 1111 1111 1111

    printf("after:ss = %d\n", ss);
    printf("after:ii = %d\n", ii);

    return 0;
}




    /*
    output:
s = 32767
i = 2147483647
after:s = -32768
after:i = -2147483648
ss = -32768
ii = -2147483648
after:ss = 32767
after:ii = 2147483647
    */

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include <stdio.h>

int main()
{
    unsigned char uc = 128;
    char c = 128;

    unsigned ui = 2147483648;
    signed i = 2147483648;

    printf("uc = %u\n", uc);
    printf("c = %d\n", c);

    printf("ui = %u\n", ui);
    printf("i = %d\n", i);

    return 0;
}




    /*
    output:
uc = 128
c = -128
ui = 2147483648
i = -2147483648
    */

在这里插入图片描述

第19课 - 再论数据类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include <stdio.h>

int main()
{
    int c = sizeof(char);//1
    int s = sizeof(short);//2
    int i = sizeof(s);//4

    int uc = sizeof(unsigned char);//1
    int us = sizeof(unsigned short);//2
    int ui = sizeof(unsigned int);//4

    printf("c = %d\n", c);
    printf("s = %d\n", s);
    printf("i = %d\n", i);

    printf("sizeof(float) = %d\n", sizeof(float));//4
    printf("sizeof(double) = %d\n", sizeof(double));//8

    printf("uc = %d\n", uc);
    printf("us = %d\n", us);
    printf("ui = %d\n", ui);

    return 0;
}




    /*
    output:
c = 1
s = 2
i = 4
sizeof(float) = 4
sizeof(double) = 8
uc = 1
us = 2
ui = 4
    */

在这里插入图片描述
在这里插入图片描述

#include <stdio.h>

int main()
{
    long l = -1l;
    long long ll = 21474836481ll;

    printf("l = %ld\n", l);
    printf("sizeof(long) = %d\n", sizeof(long));

    printf("ll = %lld\n", ll);
    printf("sizeof(long long) = %d\n", sizeof ll);

    return 0;
}




    /*
    output:
l = -1
sizeof(long) = 4
ll = 21474836481
sizeof(long long) = 8
    */

在这里插入图片描述
在这里插入图片描述

第20课 - 经典问题剖析

在这里插入图片描述
a=a+7 √

b=a+b;
a=b; √
a=(int)(12.3/4); √ 强制类型转换
a+7=b+1; × a+7不是变量
在这里插入图片描述
在这里插入图片描述
D
在这里插入图片描述
B
在这里插入图片描述
在这里插入图片描述
D

在这里插入图片描述
输出16
在这里插入图片描述
x<0 ,y=-1;
x=0时,y=0;
x>0时,y=1
此为错误答案
在这里插入图片描述
x=0,y=-1;
x>0,y=1;
x<0,y=0;
在这里插入图片描述
A,此为错误答案
D,else前漏了;

在这里插入图片描述
k 2 4
s 1 1+2 1+2+3 6+4 15 1 5 10
j 2 3 4 5 6 4 5 6
B
在这里插入图片描述
C

在这里插入图片描述
9 6 3
8 5 2
C

第21课 - 程序中的辅助语句(上)

在这里插入图片描述
在这里插入图片描述

#include <stdio.h>

int main()
{
    int a = 0;
    int b = 10;

    a = b = b + 1; // a=>11  b=>11

    printf("a = %d, b = %d\n", a, b);

    a += 1;
    a -= 2;
    a *= 3;
    a /= 4;

    // a => 7

    printf("a = %d\n", a);

    /*
        复合赋值与连续赋值相结合
    */
    a += b -= 1;

    printf("a = %d, b = %d\n", a, b);

    return 0;
}




    /*
    output:
a = 11, b = 11
a = 7
a = 17, b = 10
    */

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

#include <stdio.h>

int main()
{
    int a = 0;
    int b = 10;
    int c = 0;

    a = (b < 10) ? 1 : 2;

    printf("a = %d\n", a);

    (a < 5) ? (a = 5) : (a = 0);

    printf("a = %d\n", a);

    /*
    ((a == 5) ? a : b) = 10; // ERROR
    */

    a = b = c = 0;

    c = (a = 2, b = 3, a + b);

    printf("a = %d\n", a);
    printf("b = %d\n", b);
    printf("c = %d\n", c);

    c -= a;  // c = c - a;

    printf("c = %d\n", c);

    return 0;
}




    /*
    output:
a = 2
a = 5
a = 2
b = 3
c = 5
c = 3
    */

在这里插入图片描述

第22课 - 程序中的辅助语句(下)

在这里插入图片描述
在这里插入图片描述

#include <stdio.h>

int main()
{
    int a = 0;
    int c = 1;

    a = -c++;  // c -> 2

    printf("a = %d\n", a);

    //a = +++c; // +(++c); c -> 3//error: lvalue required as increment operand|
    a = +(++c);
    printf("a = %d\n", a);

    a = -c--;  // c -> 2

    printf("a = %d\n", a);

    printf("c = %d\n", c);

    return 0;
}




    /*
    output:
a = -1
a = 3
a = -3
c = 2
    */

在这里插入图片描述

int main()
{
    int a = 0;
    int c = 1;

    if( a + c > 0 )
    {
        printf("a = %d, c = %d\n", a, c);
        goto ELSE;
    }
    else
    {
        ELSE: printf("%d + %d = %d\n", a, c, a + c);
        goto FOR;
    }

    for(c=10; c>0; c--)
    {
        FOR:
        printf("c = %d\n", c);
    }

    return 0;
}




    /*
    output:
a = 0, c = 1
0 + 1 = 1
c = 1
    */

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1623820.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【高频】基于GBDT-FM模型的level-2高频数据实证研究(二)

【高频】基于GBDT-FM模型的level-2高频数据实证研究&#xff08;二&#xff09; 原创 Yud. 2AMquant 2024-04-04 11:30 广东 上一篇中初步提及了Level2数据中常见变量指标的构建方式&#xff0c;以及其带来的价格冲击。此篇将使用GBDT-LM模型对短程价格走势进行简单预测。 ps…

前端css中的transform(转换)的使用

前端css中的transform的使用 一、前言二、流程图三、举例&#xff08;一&#xff09;、平移1.平移&#xff0c;源码12.源码1运行效果(1).视频效果(2).截图效果 3.平移3d效果&#xff0c;源码24.源码2运行效果&#xff08;1&#xff09;、视频效果&#xff08;2&#xff09;、截…

【C语言】红黑树详解以及C语言模拟

一、红黑树的性质二、红黑树的旋转操作三、红黑树的插入操作四、红黑树的删除操作五、红黑树的应用六、C语言模拟红黑树七、总结 红黑树是一种自平衡二叉查找树&#xff0c;它能够保持树的平衡&#xff0c;从而确保查找、插入和删除的最坏情况时间复杂度为O( l o g n log_n log…

41-数组 _ 数组作为函数参数

41-1 冒泡排序函数的设计 数组传参的时候&#xff0c;形参有2种写法&#xff1a; 1、数组 2、指针 往往我们在写代码的时候&#xff0c;会将数组作为参数传个函数 如&#xff1a;实现一个冒泡排序&#xff0c;将数组的数据排成升序 冒泡排序的核心思想&#xff1a; 1、两…

新能源汽车小米su7

小米su7汽车 function init() {const container document.querySelector( #container );camera new THREE.PerspectiveCamera( 20, window.innerWidth / window.innerHeight, 1, 50000 );camera.position.set( 0, 700, 7000 );scene new THREE.Scene();scene.background ne…

kubebuilder(4)部署测试

将crd部署到k8s make install 日志&#xff1a; kustomize build config/crd | kubectl apply -f - customresourcedefinition.apiextensions.k8s.io/demoes.tutorial.demo.com created 查看下[rootpaas-m-k8s-master-1 demo-operator]# kubectl api-resources | grep demo de…

yolov8 区域声光报警+计数

yolov8 区域报警计数 1. 基础2. 报警功能2. 1声音报警代码2. 2画面显示报警代码 3. 完整代码4. 源码 1. 基础 本项目是在 yolov8 区域多类别计数 的基础上实现的&#xff0c;具体区域计数原理可见上边文章 2. 报警功能 设置一个区域region_points&#xff0c;当行人这一类别…

【AIGC调研系列】Phi-3 VS Llama3

2024-04-24日发布的Phi-3系列模型在多个方面展现出了对Llama-3的性能优势。首先&#xff0c;Phi-3-small&#xff08;7B参数&#xff09;在MMLU上的得分高于Llama-3-8B-Instruct模型&#xff0c;分别为75.3%和66%[1]。此外&#xff0c;具有3.8B参数的Phi-3 Mini在性能上优于Lla…

解密Java多线程同步:掌握线程间同步与互斥技巧

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一个人虽可以走的更快&#xff0c;但一群人可以走的更远。 我是一名后…

JavaScript:js实现在线五子棋人机(人人)对弈

在线五子棋人机对弈 全部使用前端技术,使用HTML,CSS以及JS进行实现. 棋盘在后端就是一个15*15的二维数组 页面设计 页面设计的比较粗糙 主要使用js自带的canvas画布进行绘画 HTML代码如下: <div class"outer"><canvas id"canvas" height&qu…

linux权限维持(四)

6.inetd服务后门 inetd 是一个监听外部网络请求 ( 就是一个 socket) 的系统守护进程&#xff0c;默认情况下为 13 端口。当 inetd 接收到 一个外部请求后&#xff0c;它会根据这个请求到自己的配置文件中去找到实际处理它的程序&#xff0c;然后再把接收到的 这个socket 交给那…

B2B企业如何做好谷歌Google广告推广营销布局?

当今全球化的商业环境中&#xff0c;B2B企业要想在激烈的市场竞争中脱颖而出&#xff0c;拓展海外市场成为了必经之路。而谷歌Google广告&#xff0c;作为全球最大的在线广告平台&#xff0c;无疑是企业触达全球潜在客户的黄金钥匙。云衔科技通过专业服务助力企业轻松开户与高效…

CST初级教程 二

本教程将讲解CST Studio的视窗操控的基本操作. 3D视窗的快捷操作 动态放大与缩小&#xff08;Dynamic Zoom&#xff09; 将鼠标指针移动到CST Studio图形视窗中&#xff0c;向上滚动鼠标滚轮&#xff0c;可动太放大图形视窗中的显示内容&#xff0c;向下滚动鼠标滚轮即可动态缩…

非对称渐开线齿轮学习笔记分享

最近有小伙伴遇到了非对称渐开线齿轮的加工问题,花了些时间学习了解一下,下面是总结的学习笔记,有兴趣的朋友可以瞅瞅: 目录: 为什么要采用非对称? 非对称有什么优点? 非对称齿形如何加工? 非对称齿轮怎么测量? 非对称齿轮建模 为什么要采用非对称? 现在的传动要求…

Linux:进程创建 进程终止

Linux&#xff1a;进程创建 & 进程终止 进程创建fork写时拷贝 进程终止退出码strerrorerrno 异常信号exit 进程创建 fork fork函数可以用于在程序内部创建子进程&#xff0c;其包含在头文件<unistd.h>中&#xff0c;直接调用fork()就可以创建子进程了。 示例代码&…

【C语言】深入理解KMP算法及C语言实现

一、KMP算法简介 KMP算法&#xff08;Knuth-Morris-Pratt算法&#xff09;是一种高效的字符串匹配算法&#xff0c;由Donald Knuth、James H. Morris和 Vaughan Pratt共同发明。KMP算法的核心思想是当一次字符比较失败时&#xff0c;利用已经得到的部分匹配信息&#xff0c;将模…

JVM虚拟机监控及性能调优实战

目录 jvisualvm介绍 1. jvisualvm是JDK自带的可以远程监控内存&#xff0c;跟踪垃圾回收&#xff0c;执行时内存&#xff0c;CPU/线程分析&#xff0c;生成堆快照等的工具。 2. jvisualvm是从JDK1.6开始被继承到JDK中的。jvisualvm使用 jvisualvm监控远程服务器 开启远程监控…

【Java框架】SpringMVC(三)——异常处理,拦截器,文件上传,SSM整合

目录 异常处理解释局部异常处理全局异常 拦截器拦截器介绍作用:拦截器和过滤器之间的区别拦截器执行流程代码实现补充 文件上传依赖配置MultipartResolver编写文件上传表单页APIMultipartFileFile.separator必须对上传文件进行重命名代码示例 SpringMVC文件上传流程多文件上传 …

mybatis中<if>条件判断带数字的字符串失效问题

文章目录 一、项目背景二、真实错误原因说明三、解决方案3.1针对纯数字的字符串值场景3.2针对单个字符的字符串值场景 四、参考文献 一、项目背景 MySQL数据库使用Mybatis查询拼接select语句中进行<if>条件拼接的时候&#xff0c;发现带数字的或者带单个字母的字符串失效…

Coursera: An Introduction to American Law 学习笔记 Week 03: Property Law

An Introduction to American Law 本文是 https://www.coursera.org/programs/career-training-for-nevadans-k7yhc/learn/american-law 这门课的学习笔记。 文章目录 An Introduction to American LawInstructors Week 03: Property LawKey Property Law TermsSupplemental Re…