SCAU学习笔记 - 高级语言程序设计课后习题

news2024/11/15 17:24:22

写在前面

趁着暑假赶紧把C语言的习题也补了 也欢迎看到这篇博客的小灯们来到华南农业大学喵 专栏里还有后续其他部分课程的学习笔记

如何提交自己的代码

首先给各位说一下这门课程的要求,首先是我们学校的校内OJ,我们计算机类专业的学生用的是前面这个链接,别的学院选修课或者转专业用的应该是另外一个,登录的初始账号和密码都是自己的学号,后续可以进行修改。平时的程序类的课后作业和考试以及之后的程序设计校赛都在这个平台进行。
进去之后长这个样子,确实比较简陋
华南农业大学校内OJ主页
在左边的实验里面选对应的课程就可以看到课后习题了,第一次进入系统先去高级程序语言设计里面的实验1填一个问卷,可以直接升5级

如何编写自己的代码

然后是我们使用的IDE,上课老师做演示一般是使用CodeBlocks,优点在于不需要怎么配置,缺点在于不能怎么配置,不支持装插件,界面也很简陋
在这里插入图片描述
当然如果你不喜欢这个很土的页面,也懒得在学完C语言之后学其他语言还要换IDE花时间适应的话,你还有其他更酷炫的选择,我说的就是CLion,不推荐VS Code主要还是觉得新手配置麻烦过头了,而且我也不常用
打开官网,你肯定会发现这个软件要钱,没关系,接下来就向你介绍如何申请学生白嫖特权

学生认证

来到我们学校的网络服务中心 在最左边点击开通邮箱,虽然说是随便取名字,但是亲测输入学号除外的任何内容作为邮箱地址都会申请失败
回到JetBrains官网,在这里进入申请页面
在这里插入图片描述
申请方式选择官方文件,填进你刚刚申请好的校园邮箱,上传的学生证或者校园卡的照片,去学信网申请一个电子认证码填进去,一周内你就可以在校园邮箱看到申请成功的消息了。直接用你的校园邮箱登录CLion就可以使用了,等待成功的这段时间刚好有一个月的试用期,可以先用着
在这里插入图片描述
Github的学生认证也是同理,如果想要白嫖Copilot的AI辅助代码功能可以去申请一下

网课资源

陈湘骥教授(下称bsc)非常鼓励我们在这门课提前学习,他推荐我们去看的是翁凯教授的网课,让我们提前看,每节课课前要报一下自学进度,他在前期过渡几周之后的上课节奏就会非常快,不提前学一点的话可能会有一些吃力,当然翁凯老师的课确实是独一档了,免费还讲得这么好有什么理由不看看呢

实验1 C语言程序初步

6567 The first C Program

恭喜你在开学前完成了非常完备的准备工作,完成上面的操作,熟悉一下学校的系统你就已经击败80%的同学了,当然如果你真的那么好学!我们也可以直接开始C语言的学习
首先是我们的第一道题,照着题目给的这个图片把代码打上去然后运行即可,CodeBlocks的运行按钮已经告诉你们了,CLion的运行按钮是那个绿色的开始键,非常的清晰明朗(
在这里插入图片描述

1001 计算a+b

然后我们就要开始语法的学习了,首先作为一段程序,我们肯定是有一些命令的语句的,但是如何让计算机能够看懂呢?我们需要引入库,也就是最上面的#include <stdio.h> 如果不先include这么一下的话,你在底下写的大部分函数电脑都是看不懂的,你的代码也就只是一段文本文档而已,在之后的学习中我们还会学习很多的库,我们现在要知道的是,想让你的程序从点运行之后弹出来的黑框里面读入你输进去的东西以及输出东西上去所需要的scanf和printf语句,都需要你先引用stdio.h这个库
scanf和printf,顾名思义,就是在黑框里面读入和输出,具体使用方法如下

scanf("%d",&a);
printf("%d",a);

当程序运行到scanf那一句的时候,就需要你在黑框里面打进去一个数字,然后你的这个数字就会被存在a这个名字下面被程序继续使用,而当运行的printf那一句的时候,就会把存起来的a这个名字代表的数字显示在黑框上面
而外面这个框和int main是什么意思呢?就是说只有写在这个框里的内容才会跑起来,至于后续更复杂的函数相关呢,我们留到后面实验9再细说
那么这一题就直接这样写就可以了

#include <stdio.h>

int main()
{
    int a, b;
    scanf("%d%d", &a, &b);
    int c=a+b;
    printf("%d", c);
    return 0;
}

11126 输出a与b中的较大值

与上面的同理,大于小于也是可以直接使用的

#include <stdio.h>

int main()
{
    int a, b;
    scanf("%d%d", &a, &b);
    if(a > b)
        printf("%d",a);
    else
        printf("%d",b);
    return 0;
}

而这里新出现的if和else是啥呢?我想如果你高考考的是英语,那你一定知道if就是如果的意思,else就是否则的意思,所以这段代码你直接用你双一流的英语水平就可以直接看懂了,if和else也同样不需要你提前引用任何的库

实验2 基本类型与运算

上一章我们简单了解了一些基本的语法知识,但是那个int到底是什么呢,我们将在这一章详细学习数据类型的相关知识 具体的可以看这篇文章的第一节 后面的数组之类的我们后续再了解
总而言之,在C语言里面主要的数据类型有这些(标识符就是你在scanf和printf里面的双引号内应该写的内容)

类型名称标识符
int%d
long long%lld
float%f
double%lf
char%c

除了数据类型,还有运算相关的知识,想来也就是加减乘除大于小于嘛,但是在计算机的世界里我们还有一种运算叫做取模,符号是%,具体作用就是求两个整数相除之后的余数。除此之外,不同数据类型的运算也会有所不同,具体的你也可以在上面的那个文章里面看到

1117 变量定义,按要求完成程序

看了上面的文章,想来你可以很轻松的填上这道题的两个空

int a,b;
float i,j;

6568 在显示屏上显示指定字符

在C语言中,有一些标识符,比如\n标识回车,那么假如我真的只是想单纯地输出\n这两个字符怎么办呢,我们发现打\总是不会出现,我们有一些特殊的语言规范
假如我想输出\,那么我就要打两个斜杠,这样就会避免标识符的冲突
如果你是CodeBlocks用户就需要在打代码的过程中小心一点,但如果是CLion的话,你的编辑器会自动帮你修正这个问题,当你把C:\ABC.TXT复制进去之后,你会发现他自动变成了两个斜杠,自己打的过程如果你忘打了斜杠他也会自动变色提醒你修改,就像这样
在这里插入图片描述
言归正传,这一题你只需要注意多打一个斜杠才能正确输出就行了

#include <stdio.h>

int main()
{
    printf("C:\\ABC.TXT\n");
    return 0;
}

1119 基本运算,写出程序运行结果

问这个代码的运行结果是什么,我们一句一句看

#include <stdio.h>

int main()
{
    int a,b,c;
    float d=15,e,f;
    a=35%7;//a是35除以7的余数,也就是0
    b=15/10;//虽然15/10确实是1.5,但是b是int类型,所以会自动舍去小数部分,所以b是1
    c=b++;//这一行其实做了两件事,我们要从前往后看,先把b的值赋给c,然后b再自增1,所以c是1,b是2
    e=15/10;//我们从后往前看,15和10都是整数,所以算出来的结果还是整数1,把整数1赋给e,所以e是1.0
    f=d/10;//d是float类型,10是int类型,所以d/10是float类型,所以f是1.5
    printf("%d %d %d %f %f %f\n",a,b,c,d,e,f);
}

那么答案也就昭然若揭了

0,2,1,15.000000,1.000000,1.500000\n

1118 赋值表达式与赋值语句,写出程序运行结果

这题和上一题类型一样 这题我们还引入了char类型也就是字符,英文的字符和中文不同,一共就那么多个,所以我们给每一个字符标上序号,在本地存储的时候才能将字符先变成对应的序号,然后再存下这个序号的二进制表示,这就是ASCII码
在这里插入图片描述

#include <stdio.h>

int main()
{
    float a;
    int b,c;
    char d,e;
    a=3.5;
    b=a;//由float强行变成int,会丢失小数部分,所以b是3
    c=330;
    d=c;//我们看上面的ASCII码表,330比最后的那个126还要大,在126之后又从1开始,所以d是对应74的‘J’
    e='\141';//141是八进制,对应的是十进制的97,对应的是ASCII码表的‘a’
    printf("%f %d %d %c %c\n",a,b,c,d,e);
}

那么答案也就是

3.500000,3,330,J,a\n

实验3 基本输入与输出

这一章,我们终于开始细究好像我们每一个代码都用了的scanf和printf函数了

1126 字符的输入与输出

#include <stdio.h>

int main()

{
    char c;
    scanf("%c",&c);
    printf("%c",c);
    return 0;
}

1127 计算加法

#include <stdio.h>
int main()
{
    int a,b;
    scanf("%d+%d",&a,&b);
    printf("%d",a+b);
    return 0;
}

1014 求圆面积

虽然输入的时候没有小数点,但是我们一样可以直接把他存到浮点数类型的变量里面。
顺带一提,自己写代码的时候推荐使用double,虽然比float多打一个字母,但是在之后写一些复杂代码的时候出错的概率会小很多

#include <stdio.h>
int main()
{
    double r,s;
    scanf("%lf",&r);
    s=3.14159*r*r;
    printf("%.2f\n",s);
}

1015 计算摄氏温度值

这一题需要注意一下上一章最后一题我们提到过的数据类型的强制转换,如果你直接写9/5的话他们算出来会是1,因为小数位会被直接抹去,所以我们要写成9.0/5.0表示他们是浮点数,当然也可以像下面的代码这样直接拿原本的数字乘5再除以9,因为f是double类型所以一直不会出错
算式内的每一次计算中途如果只涉及到整数类型的数据,那么算出来的结果也仍然会是整数类型

#include <stdio.h>

int main()
{
    double f,c;
    scanf("%lf",&f);
    c=5*(f-32)/9;
    printf("%.2lf\n",c);
}

11127 各位数字

我们仔细思考一下,一个三位数的百位数字其实就是他整除100的结果,而各位数字则是他对10取模的结果,所以答案也就不难出来了

#include <stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    printf("%d\n%d",n/100,n%10);
    return 0;
}

单元测试1 计算路程

#include <stdio.h>

int main()
{
    double a,t;
    scanf("%lf%lf",&a,&t);
    double s=0.5*a*t*t;
    printf("%.2lf\n",s);
}

单元测试2 圆柱体的表面积

#include <stdio.h>

int main()
{
    double PI=3.14159;
    double r,h;
    scanf("%lf%lf",&r,&h);
    double S=2*PI*r*r+2*PI*r*h;
    printf("%.2lf\n",S);
}

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

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

相关文章

突破 ES 引擎局限性在用户体验场景中的优化实践

回顾&#xff1a;ES 慢上游响应问题优化在用户体验场景中的实践-CSDN博客 上文介绍了用户体验管理平台&#xff08;简称 VoC&#xff09;在针对 ES 慢上游响应场景下的优化实践&#xff0c;本文继续介绍针对第二个痛点问题——ES 引擎局限性的性能优化实践进行介绍。 下文以搜…

MaxKB:基于 LLM大语言模型的知识库问答系统实操

1.MaxKB介绍 MaxKB 是一款基于 LLM&#xff08;Large Language Model&#xff09;大语言模型的知识库问答系统。MaxKB 的产品命名内涵为 “Max Knowledge Base”&#xff0c;为用户提供强大的学习能力和问答响应速度&#xff0c;致力于成为企业的最强大脑。与同类基于 LLM 的知…

数值分析【4】

目录 ​编辑第六章 数值积分微分 龙贝格 高斯求积 查表&#xff1f; 插值求导 两点 ​编辑 三点​编辑 第七章 ode 龙哥库塔 线性多步法 第八章 eig 幂法&#xff1a;v-》Av-》AAv-》……​编辑 反幂法 每次成得是A逆&#xff0c;这样得到摸最小的特征值​编辑 Q…

【IEEE独立出版】第四届计算机科学与区块链国际学术会议 (CCSB 2024)

第四届计算机科学与区块链国际学术会议 (CCSB 2024) 2024 4th International Conference on Computer Science and Blockchain 2024年9月6-8日 中国-深圳 老牌会议 | 涵盖计算机学科 | 往届均完成见刊、稳定检索 | 论文录用速度快 | 有ISBN号! *关于IEEE出版社 电气电子工…

使用ant design的modal时,发现自定义组件的样式(组件高度)被改变了!

一 问题描述 在项目中&#xff0c;自定义了一个组件&#xff0c;分别在界面和 antd的modal中都有使用到。但是突然发现&#xff0c;界面中的组件样式跟modal中的组件样式高度不一样。modal中的组件整体要比页面中的组件要高一点。 项目中的自定义组件比较复杂&#xff0c;因此&…

C#使用Puppeteer

Puppeteer Puppeteer是一个Node.js库&#xff0c;它提供了高级API来通过DevTools协议(Chrome DevTools Protocol https://devtools.chrome.com)控制Chrome或Chromium。 Puppeteer默认情况下无头运行(headless)。 可以配置为运行完整的Chrome或Chromium&#xff0c;运行效果如…

【中项】系统集成项目管理工程师-第11章 项目范围管理-11.2收集需求

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

开源AI搜索平台Search4All

什么是 Search4All &#xff1f; Search4All 是个人 AI 搜索协助工具&#xff0c;是 Perplexity 的开源替代品。能让你的 LLM API 支持联网&#xff0c;搜索、新闻、网页总结&#xff0c; 软件特点&#xff1a; 集成对 LLM 的支持&#xff0c;例如 OpenAI、Groq 和 Claude。本…

【学习笔记】Day 8

写在开头&#xff1a; 最近老板突然提出一个全新的组会主题&#xff0c;是关于 “最近我犯的傻”&#xff0c;其目的在于提供乐子的同时引以为戒。本来我还在愁到底去哪里找干的啥事儿&#xff0c;结果今天直接拉了个大的。什么叫无心插柳柳成荫啊&#xff0c;悲。 一…

亿达科创亮相智造数字科技大会

8月8日&#xff0c;IMC2024第七届智造数字科技大会在京启幕。大会以“乘‘数’而上”为题&#xff0c;邀请300智能制造行业数字化转型技术大咖、领军者及实践者共聚一堂&#xff0c;解读智造行业转型进程。亿达科创受邀参会&#xff0c;分享企业前沿数字技术、解决方案与创新实…

Java面试篇(线程池相关专题)

文章目录 1. 为什么要使用线程池2. 线程池的核心参数和线程池的执行原理2.1 线程池的核心参数2.2 线程池的执行原理 3. 线程池中常见的阻塞队列3.1 常见的阻塞队列3.2 ArrayBlockingQueue 和 LinkedBlockingQueue 的区别 4. 如何确定线程池的核心线程数4.1 应用程序中任务的类型…

开源AI智能名片小程序在私域流量运营中的“及时法则”深度应用与策略探讨

摘要&#xff1a;在数字化浪潮的推动下&#xff0c;私域流量已成为企业构建长期竞争优势的关键要素。开源AI智能名片小程序&#xff0c;凭借其智能化、个性化及高度可定制化的特性&#xff0c;正逐步成为私域流量运营的重要工具。本文深入探讨了“及时法则”在开源AI智能名片小…

模型量化——NVIDIA——QAT

概述 QAT 截止目前(20230418)的CUDA 实现并不在pytorch 原生包中(不等同于pytorch 的QAT,它主要支持CPU),需要引入NVIDIA 的第三方包“pytorch-quantization”。需要TRT8+ 、 pytorch 1.8 +。主要流程如下: 工具流转方向如下: 所以目前我的理解+咨询了NVIDIA官…

【代码随想录】螺旋矩阵II

本博文为代码随想录的学习笔记&#xff0c;原文链接&#xff1a;代码随想录 题目 原题链接&#xff1a;59. 螺旋矩阵 II 给你一个正整数 n &#xff0c;生成一个包含 1 到 n^2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xf…

【Linux】lvm被删除或者lvm丢失了怎么办

模拟案例 接下来模拟lvm误删除如何恢复的案例&#xff1a; 模拟删除&#xff1a; 查看vg名&#xff1a; vgdisplayvgcfgrestore --list uniontechos #查看之前的操作 例如我删除的&#xff0c;现场没有删除就用最近的操作文件&#xff1a; 还原&#xff1a; vgcfgrestore…

1Panel应用推荐:KubePi开源Kubernetes管理面板

1Panel&#xff08;github.com/1Panel-dev/1Panel&#xff09;是一款现代化、开源的Linux服务器运维管理面板&#xff0c;它致力于通过开源的方式&#xff0c;帮助用户简化建站与运维管理流程。为了方便广大用户快捷安装部署相关软件应用&#xff0c;1Panel特别开通应用商店&am…

扩展02:Haporxy+Keepalived+Mysql高可用集群实战

由于这个架构和扩展01的大致步骤都相同&#xff0c;就不讲解了。看如下图再参考扩展01即可。

用C语言实现链式存储结构 万字

各位同学&#xff0c;大家好&#xff0c;我叫小敖。今天给大家分享数据结构之一链式存储结构&#xff0c;下面是对链表简单介绍&#xff0c;希望大家能理解。 链表介绍 链表是一种物理存储单元上非连续、非顺序的存储结构**&#xff0c;数据元素的逻辑顺序是通过链表中的指针链…

大模型快速部署,以浪潮源2.0为例

step1: 申请PAI-DSW试用 step2&#xff1a;魔塔社区授权 由于本地授权一直失败&#xff0c;于是采用了魔塔免费平台实例进行学习。 搭建好之后&#xff0c;打开就有相关页面了&#xff1a; demo搭建&#xff1a; 按照官方提示的步骤进行搭建&#xff0c;内容如下&#xff1a;…

第二十一节、敌人追击状态的转换

一、物理检测中的Boxcast 1、检测敌人Bool 当不知道一个函数的返回值是什么的时候 定义一个var变量 就知道了 二、状态切换 1、switch用法 2、新的语法糖写法