网站高质量外链/百度关键词seo排名软件
🌈博客主页:卿云阁
💌欢迎关注🎉点赞👍收藏⭐️留言📝
🌟本文由卿云阁原创!
🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!
🍈 基础必备
0️⃣数据类型和表达式
1️⃣简单的程序设计
2️⃣C语言指针的初步了解
3️⃣指针进阶(一)(C语言)
4️⃣指针进阶(二)(C语言)
7️⃣结构体与枚举类型
🍉常考的大题
1.简单的if-else-语句(一般第一题很简单的)
eg.
#include <stdio.h> int main(void) { float x,y; scanf("%f",&x); //从键盘接收x的值。 if(x<=1) y=x; if(x>1 && x<10) //逻辑表达式值为1时,执行下面的这条语句。y=x*2.0f-1; if(x>=10) y=3*x-11; printf("%5.2f",y); return 0; }
2.实现用*画一个平行四边形
#include<stdio.h> #include<math.h> int main(void) {int i=1,j,k,r=5; //r表示行数 for(i=-1*r;i<=r;i++) {for(k=1;k<=abs(i);k++) //输出一行前的空格{printf(" "); /*加自己的代码,abs(i)为求i的绝对值*/ } //下面输出一行中的所有*。for(j=1;j<= 2 *(5-abs(i))+1;j++){printf("*");}printf("\n"); } return 0; }
3.冒泡算法
#include <stdio.h> int main(void) { int i,j,z,temp;int a[10]={1, 0, 4, 8, 123, 65, -76, 100, -45, 12};for(j=1;j<10;j++){for (i=0;i<10-j;i++){if (a[i]>a[i+1]){temp=a[i];a[i]=a[i+1];a[i+1]=temp;} }}for(z=0;z<10;z++)printf("%d ",a[z]);return 0; }
4.编程输入某班同学的姓名以及C_language、higher_mathematics两门课的成绩,并按各学生总分从高到低进行排序后输出。
分析:首先定义两个一维数组存放两门课的成绩,然后,再定义一个二维字符数组存放同学的姓名,每一行存放一个姓名。
本例通过冒泡排序算法进行排序,前面讲的冒泡算法是比较相邻两个数据,如果前者比后者小,互换两个数据。但这里要求按学生总分排序,因此,在用冒泡算法时,要把前一同学与后一个同学的总分进行比较,如果前者总分小则互换,因为这里有三个数组,互换时同一个学生的信息(包括姓名、两门课的成绩)要同时互换。同时注意到姓名是字符串,它们之间不能用赋值符号进行赋值,所以互换时要用strcpy函数。为了互换方便,先定义一个临时的一维字符数组tempName,在互换姓名时使用。整个程序代码如下。
#include <stdio.h> #include <string.h> #define LEN 20 //一个学生姓名占用的长度。 int main(void) { int i, j, N; //N为学生人数。 float C_language[N], higher_mathematics[N], temp; printf("输入学生个数:"); scanf("%d", &N); char name[N][LEN], tempName[LEN]; //第一步,用一个循环输入数据。for (i = 0; i < N; i++) {printf("请输入第%d个同学的姓名,输完按Enter键:\n", i + 1);gets(name[i]); //接收姓名字符串。printf("请输入第%d个同学的两门成绩,中间用空格隔开,输完按Enter键:\n", i + 1);scanf("%f%f", &C_language[i], &higher_mathematics[i]);}//第二步,用冒泡法排序。for (j = N; j >= 1; j--){for (i = 1; i < j; i++)/*前一个学生的总分比后一个的小,互换成绩和姓名*/if (C_language[i] + higher_mathematics[i] >C_language[i - 1] + higher_mathematics[i - 1]){ //互换C_language中的成绩。temp = C_language[i - 1];C_language[i - 1] = C_language[i];C_language[i] = temp; //互换higher_mathematics中的成绩。temp = higher_mathematics[i - 1];higher_mathematics[i - 1] = higher_mathematics[i];higher_mathematics[i] = temp; //下面对姓名进行互换,要用strcpy。strcpy(tempName, name[i - 1]); //name[i-1]看成一维数组名。strcpy(name[i - 1], name[i]);strcpy(name[i], tempName);} } //排序完毕。printf("\n按总分排序的结果:\n");for (i = 0; i < N; i++)printf("%s,%3.0f,%3.0f\n", name[i], C_language[i], higher_mathematics[i]); return 0; }
strcpy函数
strcpy函数的一般形式为strcpy(字符串1,字符串2,n)。其功能是将字符串2的前n个字符复制到字符串1中,并在其后加上'\0'。如果没有n,则是把字符串2全部制给字符串1。这里字符串1必须放在可修改值的内存空间中。
例如,char str2[]="math",str1[10]; 则执行strcpy(str1,str2);后,str1就变成了串"math"。执行strcpy(str1,str2,2); 后将str2的前面2个字符复制到str1中,然后再加一个'\0',所以str1就是"ma"。
字符串之间不能直接用=来赋值,即不能写成str1=str2;进行字符串的复制。使用strcpy时,要注意存放字符串1的一维数组内存空间要大于等于字符串2字面量(即不包括\0的字符个数)加1。
strcmp函数
strcmp函数的一般形式为strcmp(字符串1,字符串2);。其功能是比较两个字符串的大小。
比较的规则是对两个字符串自左至右逐个字符比较(包括串结尾字符'\0'),直到出现不同的字符或遇到'\0'为止。如全部字符相同,则认为相等;若出现不相同的字符,则字符ASCII码值大的所在串大,否则就小。
比较的结果由函数返回,当字符串1与字符串2相等,函数返回值为0;当字符串1大于字符串2,函数返回值为正整数;当字符串1小于字符串2,函数返回值为负整数。例如,
x=strcmp("A","B"); //x是一个负整数,注意A、B不能用单引号引起。
x=strcmp("a","A"); //x是一个正整数。
x=strcmp("compare","computer"); //x是一个负整数。
x= strcmp("ab","a"); //x是一个正整数。
x= strcmp("ab","ab"); //x为0。
5.指向一维数组的指针,指针数组
指向一维数组的指针指向的类型类型是一个一维数组。定义一个指向一维数组的指针变量格式如下。
数据类型 (*指针变量名)[n];
意思是定义了一个指针变量,这个指针变量指向具有n个元素的一维数组,且这个一维数组中每个元素都是给定的数据类型。
1.ch指向由十个char类型的数据组成的一维数组
#include <stdio.h> int main(void) {char str[3][10]={"123","456","789"};char(*ch)[10];ch=str+1; //ch可以赋值,str不能赋值 putchar(ch[0][1]); //ch[0]就相当于一维数组名str[1]putchar('\n');ch=ch+1; //改变ch的值可以改变不同的数据putchar(ch[0][1]); //ch[0]就相当于一维数组名str[2]return 0; }
如果一个数组,它里面的变量全部是指针类型,且每个指针指向的数据类型相同,则称这种数组称为指针数组。定义指针数组的一般格式为:
数据类型 *数组名[n];
这实质上就是一个一维数组,只是它的元素存放的是指针值,数据类型不是其元素的数据类型,而是元素指向的数据类型。
#include<stdio.h> int main(void) { int a[3]={1,2,3};int b[3]={20,30,40};int c[3]={50,60,70};int *ar[3]={a,b,c}; printf("%d\n",ar[0][1]); //ar[0]就相当于一维数组名aprintf("%d\n",ar[1][1]);printf("%d\n",ar[2][1]);return 0; }
6.函数参数(特容易出读程题,把3个代码运行观察是否改变a,b的值)
#include <stdio.h> void exchange(int a,int b) //定义函数,形参为a、b,并实现a、b互换。 { int temp;temp=a;a=b;b=temp;printf("a=%d,b=%d\n",a,b); } int main(void) {int a=10,b=20;exchange (a,b); //调用函数,执行两数互换。printf("a=%d,b=%d\n",a,b); return 0; }#include <stdio.h> void exchange(int a[],int b[]) //改动点 { int temp;temp=a[0]; //改动点 a[0]=b[0]; //改动点 b[0]=temp; //改动点 } int main(void) {int a=10,b=20;exchange (&a,&b); //改动点 printf("a=%d,b=%d\n",a,b); return 0; }#include <stdio.h> void exchange(int a[],int b[]) //改动点 { int temp;temp=a[0]; //改动点 a[0]=b[0]; //改动点 b[0]=temp; //改动点 printf("a=%d,b=%d\n",a,b); } int main(void) {int a=10;int b=20;exchange (&a,&b); //改动点 printf("a=%d,b=%d\n",a,b); return 0; }
7.结构体数组,文件的写入。
#include <stdio.h> typedef struct student {int num;char name[10];char sex;char addr[10];}Student; int main(void) { /*定义两个变量结构体变量stu1和stu2,并初值化stu1 */ Student stu[2]={{202018080,"qingyun",'m',"xiaoxian"}, \ {202018081,"wenzhu",'w',"xiaoxian"}}; printf("no.:%d name:%s sex:%c address:%s\n",stu[0].num,stu[0].name, \ stu[0].sex, stu[0].addr); printf("no.:%d name:%s sex:%c address:%s\n",stu[1].num,stu[1].name, \ stu[1].sex, stu[1].addr); return 0; }
从键盘输入一组字符,并它存入文件save.txt中,并在显示器上输出。
分析:以写方式打开save.txt,循环用fgetc(stdin)获取从键盘上的字符,并用一个int型变量ch接收,然后分别用fputc(ch,stdout)和fputc(ch,fp)把字符ch输出到显示器和文件中。代码如下。
#include<stdio.h>#include<stdlib.h>int main (){char filename[10]="save.txt";FILE * stream=fopen (filename, "w") ; //以写模式打开文件。int ch;if(NULL== stream){printf ("Failed to open the file !\n");exit(0);}printf ("Please input characters and press enter to finish:\n");while ((ch=fgetc (stdin)) != '\n') //循环从键盘获取字符,遇换行符结束。{fputc(ch, stream); //向打开的文件输出同样的字符。fputc (ch, stdout); //向显示器输出字符。}fputc ('\n', stdout); //向显示器输入字符,也可以不写此语句。fclose (stream); //关闭指向save.txt文件的流。}
执行后在显示器上的效果如下。
Please input characters and press enter to finish:
abcdefg↙
abcdefg
文件save.txt的内容显示如图11-1所示。
相关文章:

C语言的期末复习
🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 🌟本文由卿云阁原创! 🙏作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢&a…...

强化学习之DQN论文介绍
强化学习之DQN论文介绍DQN摘要介绍问题特点经验回放相关工作实验算法流程结论DQN 摘要 1.基于Q-learning从高维输入学习到控制策略的卷积神经网络。 2.输入是像素,输出是奖励函数。 3.主要训练、学习Atari 2600游戏,在6款游戏中3款超越人类专家。 介绍 …...

使用luaBridge添加自己的C++脚本插件能力
概述 如果我们有一个应用需要频繁的更改业务逻辑,但是基础功能不变,那么我们可以将基础功能作为底层接口,上层的功能按照脚本方式来编写。很多插件都这样的原理,比如我们的浏览器的JS就这样,小程序也是这样的原理,我们使用C++也很容易实现这样的功能。 lua是最小最精致的…...

再拾起博客
一切要从去年12月27日被裁员的那天说起。 那天是星期二,和平常一样,8点20的闹钟响起,但我习惯性的磨蹭到8点40起床,洗漱完成后9点过几分出门,骑车20多分钟几乎是踩点到的公司,正当我坐在工位准备平复心情切…...

Mybatis流式游标查询-大数据DB查询OOM查询问题
问题场景Mysql数据处理类型分以下三种com.mysql.cj.protocol.a.result.ResultsetRowsStatic:普通查询,将结果集一次性全部拉取到内存com.mysql.cj.protocol.a.result.ResultsetRowsCursor:游标查询,将结果集分批拉取到内存&#x…...

以before为例 完成一个aop代理强化方法案例
观看本文 首先 您需要做好Spring aop的准备工作 具体可以参考我的文章 java Spring aop入门准备工作 首先 我们创建一个包 我这里叫 Aop 然后在Aop包下创建一个类 叫 User 参考代码如下 package Aop;public class User {public void add(){System.out.println("add....…...

好记性不如烂笔头之Java基础复习笔记
未完待续。。。 代码块先于构造方法执行,不管类中有多少个代码块,都会先将所有代码块执行完再执行构造方法和其他方法。类中如果没有自定义的构造方法,那么JVM会提供默认的无参构造方法;如果类中有自定义的构造方法,那…...

MyBatisPlus
这里写目录标题1.MyBatisPlus概述2.MyBatisPlus的开发步骤2.1 MyBatisPlus的CRUD操作2.2 MyBatisPlus的分页查询3.MyBatisPlus的DQL编程控制(封装sql)3.1 条件查询方式3.1.1 条件查询3.1.2 组合条件3.1.3 Null值处理3.2 查询投影-设置【查询字段、分组、分页】3.2.1 查询结果包…...

【C语言】编程初学者入门训练(11)
文章目录101. 矩阵相等判定102. 上三角矩阵判定103. 矩阵转置104. 矩阵交换105. 杨辉三角106. 井字棋107. 小乐乐与进制转换108. 小乐乐求和109. 小乐乐定闹钟110. 小乐乐排电梯101. 矩阵相等判定 问题描述:KiKi得到了两个n行m列的矩阵,他想知道两个矩阵…...

HTTP 1.1响应码
HTTP 1.1响应码 响应码和信息含义HttpURLConnection1XX信息100 Continue服务器准备接受请求主体,客户端应当发送请求主体;这允许客户端在请求中发送大量数据之前询问服务器是否将接受请求N/A101 Switching Protocols服务器接受客户端在Upgrade首部字段中…...

常用设计模式介绍
java设计模式类型创建型模式:将对象的创建与使用分离结构型模式:如何将类和对象按照某种布局组成更大的格局行为型模式:用于描述类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务23种设计模式介绍1.单例(Singleton&…...

关于货物物品横竖摆放的问题
货车内宽是2.4米。考虑到最多装载,长宽130100的货品,应该横竖摆放。 横竖摆放的数量如何自动计算呢? 采用数学公式,计算如下: 横向摆放数(int)(横长竖高)*数量/4/横长 竖向摆放数数量-横向摆放数 结果如下&#x…...

人员定位需求多,场景目标各不同
GPS技术为现代人带来了许多便利,也提供了诸多基于位置的新型服务。随着科技的发展,人员位置信息在如今的生产生活中也越发重要起来。因此,不同行业领域开始关注人员定位,尤其关注室内人员定位。室内人员定位需求从目的性出发&…...

怎么解决首屏加载速度过慢的问题
怎么解决首屏加载速度过慢的问题首屏加载速度指的是什么?解决方法首屏加载速度指的是什么? 首屏加载速度指的是浏览器从响应用户输入网站地址到首屏内容渲染完成的时间。值得注意的是此时整个网页不一定要全部渲染完成,只需展示当前视窗所需要…...

3d视觉相关论文阅读目录汇总
目录3d视觉综述论文 Deep Learning for 3D Point Clouds: A Survey 基础概念 3d目标检测常见基础概念 3d目标检测 & 自动驾驶 数据集 3d目标检测数据集介绍(数据格式,保存形式,适配算法库等) KITTI数据集 Waymo数据集 nu…...

最简单的计算机视觉
百度为大家提供了计算机视觉模型。能够识别图像中的相关物体。 给大家介绍计算机视觉工具,EasyDL是能够识别物体,图像分类的工具,可以在线,也可以本地下载,本地下载大概1.5G。 图像识别真实距离。 图片真实距离/物体…...

泛微采知连,为组织提供安全、合规、智能的数字化文控系统
作为市场主体,企业需要建立健全的质量管理体系,并且及时更新,以应对激烈的市场竞争,实现企业可持续发展。 质量体系在很大程度上通过文件化的形式表现出来。《质量管理体系要求》(GB/T19001—2016/ISO9001:2015)标准指…...

Python if else对缩进的要求
前面的《Python if else》一节展示了选择结构的三种基本形式,并给出了实例演示,但是大家在编写代码过程中仍然要注意一些细节,尤其是代码块的缩进,这对 if else 选择结构极其重要。 Python 是以缩进来标记代码块的,代…...

java常用设计模式
java设计模式java设计模式类型常用设计模式单例模式单例模式的两种创建方式饿汉式单例懒汉式单例工厂模式简单工厂模式工厂方法模式抽象工厂模式原型模式代理模式代理模式结构静态代理动态代理jdk代理Cglib代理java设计模式类型 根据完成的工作类型设计模式分为创建型模式、结…...

死锁(5.1)
死锁 1 死锁的基本概念 1.1 死锁的定义 死锁是发生在一组相互合作或竞争的线程或进程中的一个问题。因此可以定义为:一组竞争系统资源或相互通信的进程相互的“永久”阻塞。若无外力作用,这组进程将永远不能继续执行。 1.2死锁产生的原因进程 &…...

Python 之 Matplotlib 第一个绘图程序和基本方法
文章目录一、第一个 Matplotlib 绘图程序1. Matplotlib 绘图的基本步骤二、Matplotlib 的基本方法1. 图表名称 plt.title()2. x 轴和 y 轴名称3. 设置 x 轴和 y 轴的刻度4. 显示图表 show()5. 图例 legend()6. 图例的图例位置设置7. 显示每条数据的值 x,y 值的位置一、第一个 M…...

数据结构与算法(一):概述
数据结构学了有一年左右的时间了,但是一直没有详细地总结一下,现在回想起来,感觉有些内容忘记了。所以接下来一段时间我将重新归纳总结一下,算是温故而知新了。 一、数据结构 1、定义 数据结构是计算机存储、组织数据的方式。在…...

Spring3之Bean的属性详解
简介 Spring 中大量使用到 Bean 的注入来实现各个模块之间的依赖,本章将详细介绍 Bean 的主要属性 id 和 name 属性 每个 Bean 可以有一个 id 属性,并可以根据该 id 在 IoC 容器中查找该 Bean,该 id 属性值必须在IoC 容器中唯一 可以不指定…...

C语言之结构体内存的计算
结构体的内存 一.提出疑问 结构体占用的是一片连续的内存空间,大小是由成员变量的类型决定的。但并不是计算所有成员变量的类型大小之和那么简单。 先举一个实例: struct student {int age; //4个字节int telephone; //4个字节 }; int main() {struc…...

Java网络编程之UDP和TCP套接字
文章目录一. 网络编程概述二. UDP网络编程1. UDP套接字2. UDP客户端回显服务器程序2.1 UDP回显服务器2.2 UDP客户端2.3 UDP实现查词典的服务器三. TCP网络编程1. TCP套接字2. TCP客户端回显服务器程序2.1 TCP回显服务器2.2 TCP客户端2.3 解决服务器无法同时出力多个客户端的问题…...

Linux进程信号产生以及捕捉
一.什么是信号 生活中,有哪些信号相关的场景呢,比如:红绿灯,闹钟,转向灯等等 1.这里我们要知道,你为什么认识这些信号呢,记住了对应场景下的信号+后续是有”动作“要你执行的 2.我们…...

11. GLSL(OpenGL Shader Language)常用知识点汇总
1. 说明: 在使用OPenGL进行三维模型渲染时,需要使用到两个着色器对模型进行位置设置和颜色设置,分别为顶点着色器和片段着色器,这两个着色器是使用 GLSL 语法进行编写的。这篇文章总结了一些GLSL中的一些基本语法知识。 2. 基本…...

转发一张网络工程师考试的试卷2021.5.15
网络工程师考试 单选题 (30题,每题1分,共30分) 1. 你在一个网络中实现DHCP服务,配置一些计算机成为DHCP客户端,由于工作需要,一台系统为Windows 10 的客户端要把从DHCP服务器获得的地址释放&a…...

AMD发布23.2.1 新驱动 支持开年新作《魔咒之地》
如果说2023年有什么新作,《魔咒之地(Forspoken)》当属开年大作之一,1月25日才在steam平台发售。虽然开售后的表现似乎不如想象中优秀,加之价格相对昂贵,令不少玩家望而却步,但如果只是想尝鲜&am…...

开放平台如何做接口的签名和加解密?
目录安全性功能介绍实现流程开放平台依赖代码AES加解密工具类PlatformConfigRequestUtilsPlatformServiceCommonCodeZuulFilterHelperServerResponsePlatformContactRsaSignatureRsaUtilsStreamUtil开放平台-解密过滤器开放平台-加密过滤器调用方代码公共代码Get-DemoPost-Demo…...