c实例练习笔记(拓展)

news/2024/4/26 22:27:01/文章来源:https://blog.csdn.net/xuelang532777032/article/details/130315191

本博文参考题目的地址看右边----》C技能树

我跟你说!!!!!c语言有bool类型!!!!!你是不是百度跟你说没有只有c++才有?   是有的!!!!!! 这就是为啥我们要做扩展练习!!!!

// #include <stdbool.h> 引入这个文件  c语言就有bool 数据类型了; bool only_child=true;
// #include <ctype.h>//大小写处理 系统便准库  isalpha 该函数检查所传的字符是否是字母。 isupper判断大写返回1 ,islower(int c) 判断是不是小写
//  #include <stdarg.h>  va_list valist;定义变量 va_start 初始化va_start(valist, num); va_arg(valist, int);读字  va_end(valist);
//   itoa():将整型值转换为字符串。
//   ltoa():将长整型值转换为字符串。
//   ultoa():将无符号长整型值转换为字符串。
//   gcvt():将浮点型数转换为字符串,取四舍五入。
//   ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。
//   fcvt():指定位数为转换精度,其余同ecvt()。// 获取char字符串长度strlen(str)
// extern 申明变量在别的文件
// #include <windows.h> SetConsoleOutputCP(65001); 打印中文
// srand((unsigned) time(NULL)); 随机数种子(rand())
//  %d 十进制有符号整数
//  %u 十进制无符号整数
//  %f 浮点数
//  %s 字符串
//  %c 单个字符
//  %p 指针的值
//  %e 指数形式的浮点数
//  %x, %X 无符号以十六进制表示的整数
//  %o 无符号以八进制表示的整数
//  %g 把输出的值按照 %e 或者 %f 类型中输出长度较小的方式输出
//  %p 输出地址符
//  %lu 32位无符号整数
//  %llu 64位无符号整数
//  %% 输出百分号字符本身。
//  %ld的L是long的意思,%ld表示按longint格式(有符号长整型数格式)输出。

打印二维数组char

#include <stdio.h>
#include <string.h>
#include <windows.h>
#define ROW 7
#define COL 50
void print(char arr[ROW][COL]){char str;for(int i=0;i<ROW;i++){printf("%s\n",arr[i]);}}
int main(int argc, char** argv)
{SetConsoleOutputCP(65001);char feature[ROW][COL] = {"1. 语言简洁,使用方便灵活","2. 可移植性好","3. 表达能力强","4. 表达方式灵活","5. 可进行结构化程序设计","6. 可以直接操作计算机硬件","7. 生成的目标代码质量高"};printf("********** C语言特点 **********\n");print(feature);printf("*******************************\n");return 0;
}

计算圆的面积

#include <stdio.h>
#include <windows.h>
// #define PI 314e-2
#define PI 3.14   
// const float PI=3.14;
// const float PI;// 错误const 定义产量 要赋值
// PI=3.14;       // 错误 
int main(int argc, char** argv)
{SetConsoleOutputCP(65001);float radius = 2.0;float area = PI * radius * radius;printf("半径为%.2f的圆,面积是%.2f", radius, area);return 0;
}

 打印学生基本信息

bool类型其实是有的!!!!! !我才知道!!!

#include <stdbool.h>
#include <stdio.h>
#include <windows.h>
int main(int argc, char **argv)
{SetConsoleOutputCP(65001);int student_id=1001;char name[]="陈晓明";char sex[]="男";int age=19;double height=164.50;double weight=70.50;bool only_child=true;   //这个bool是c++的,所以题目出的多少有问题。因为c里面也可以跑c++,而c本身没有bool类型printf("学号:\t%d\n", student_id);printf("姓名:\t%s\n", name);printf("性别:\t%s\n", sex);printf("年龄:\t%d\n", age);printf("身高:\t%.2f\n", height);printf("体重:\t%.2f\n", weight);printf("是否独生子女:\t%s\n", only_child ? "是" : "否");return 0;
}

 英文字母判断

#include <stdio.h>
#include <windows.h>
#include <ctype.h>
int main(int argc, char** argv)
{SetConsoleOutputCP(65001);char ch;printf("请输入一个字符:");scanf("%c", &ch);if ('A'<=ch &&ch<='Z'||'a'<=ch &&ch<='z')//引入 #include <ctype.h> 用isalpha(ch)可以直接判断printf("字符 \'%c\' 是一个英文字母", ch);elseprintf("字符 \'%c\' 不是一个英文字母", ch);return 0;
}

while i++和++i  都会跳过i=0这个值

#include <stdio.h>
#include <windows.h>
#include <ctype.h>
#define UPPER 10
int main(int argc, char** argv){SetConsoleOutputCP(65001);int i = 1;while(i++<UPPER){ //先对比i<UPPER 才会执行i++; 如果是++i只会输出到9// if(i%10==0){printf("%d\n",i);// }}return 0;
}

 区间重叠判断

#include <stdio.h>
#include <windows.h>
#define MAX(a,b) ((a > b) ? a : b)
#define MIN(a,b) ((a < b) ? a : b)
int main(int argc, char** argv){SetConsoleOutputCP(65001);int start_1, end_1;int start_2, end_2;printf("请输入第1个闭区间(逗号分隔):");scanf("%d,%d", &start_1, &end_1);printf("请输入第2个闭区间(逗号分隔):");scanf("%d,%d", &start_2, &end_2);if(!(MAX(start_1,start_2)==start_2 &&MIN(start_1,end_2)==start_1)||(MAX(end_1,start_2)==start_2 &&MIN(end_1,end_2)==end_1))printf("两个区间不重叠!");elseprintf("两个区间重叠!");return 0;
}

int 组数的数组长度

#include <stdio.h>
#include <windows.h>
int main ()
{SetConsoleOutputCP(65001);int arr[] = {1,2,3,4,5};//注意前提,是arr[] 如果arr[10]长度就变成10了,所以一下定义是在arr[]形式下 可行int len=sizeof arr/sizeof(int);//sizeof(arr)/sizeof int;是不行的// int len=sizeof(arr)/sizeof(*arr);//// int len=sizeof(arr)/sizeof(arr[0]);//printf("%d",len);return 0;
}

 字符串 数组长度

#include <stdio.h>
#include <windows.h>
int main ()
{SetConsoleOutputCP(65001);char a[]={'h','e','l','l','o','\0'};int aSize=sizeof(a)/sizeof(*a);// int aSize=strlen(a);写法2 这种写法的前提是要求 a[] //的尾巴一定要有 '\0'     直到空结束字符,但不包括空结束字符printf("%d",aSize);return 0;
}

 如果strlen如果自定的a[]尾巴没有‘\0’查出来会变成如下图

 但是对于用户输入的  scanf 这种就不用管他'\0'了因为用户输入完一般是要回车的!

这也就是我扩展练习的时候才发现,之前以为一个strlen就搞定了,之前也觉得要引入<string.h>,现在发现不引入也没事

c语言,逗号运算符

他是这样,括号里面 取最后的一个值给z, 是由顺序决定的!跟大小无关!

#include <stdio.h>
#include <windows.h>
int main ()
{SetConsoleOutputCP(65001);int x, y, z;x = y = 1;z=(1,2);//要让结果输出 2 3 1printf("%d\n", z);return 0;
}

 如果你换一种写法

z=1,2;

 看懂了吗,这玩意教程里面也没教。博主只能靠换值去试

运算符优先级与求值顺序

自己做了一遍还是感觉以后会忘记,有必要记录下现在的思路

#include <stdio.h>
#include <windows.h>
int main ()
{SetConsoleOutputCP(65001);int x, y, z;x = y = 1;z=(++x,y++),y++; // 输出结果要是 2,3,1。printf("%d,%d,%d\n", x, y, z);return 0;
}

 1、首先尾巴的y++跟z没关系,不懂的去看上面那个案例c语言,逗号运算符博主有举例

 2、z只跟(a,b)里面的b的取值有关,跟a无关

 3、因为题目要求z=1;所以要先赋值在运算,而++y会变成先  y+1;然后z才等于y,所以不行

 4、因为x要输出2 ,括号里面是x++还是++x;都跟z没关系!所以随便写

 5、因为结果y要输出3,前面y已经是2了,所以尾巴是y++还是++y;都没关系。

 值互换函数传参

#include <stdio.h>
#include <windows.h>
void huan(int *x,int *y){int z=*y;*y=*x;*x=z;
}
int main ()
{SetConsoleOutputCP(65001);int a;int b;printf("请输入2个数字用逗号隔开:");scanf("%d,%d",&a,&b);huan(&a,&b);printf("%d,%d",a,b);return 0;
}

 我竟然做错了。。。。

切记要改变量值,要传&,  有& 就有*指针。一对。

goto语句:求10以内的数之和

第一次看到这种循环体

他是这样你写一个if(){},然后再if前面加一个自定义变量 a:if(){},然后再if里面 i++;去goto去跑a,就跟while很像,只不过while没有goto。

#include <stdio.h>
#include <windows.h>
int main()
{SetConsoleOutputCP(65001); int sum = 0;int i = 0;a:if(++i<=10){sum+=i;goto a;}printf("10以内的正整数之和为:%d", sum);return 0;
}

 函数申明和定义几种写法

1、先申明、后面在定义

  int型

#include <stdio.h>
#include <windows.h>
void print_skill_tree(int,int);
int main()
{SetConsoleOutputCP(65001);int tree_name = 1;int tree_link = 2;print_skill_tree(tree_name, tree_link);return 0;
}
void print_skill_tree(int a,int b){printf("%d,%d",a,b);
}

 char型

#include <stdio.h>
#include <windows.h>
void print_skill_tree(char [],char []);
int main()
{SetConsoleOutputCP(65001);char tree_name[] = "微信搜";char tree_link[] = "程序员实用资源";print_skill_tree(tree_name, tree_link);return 0;
}

 2、直接定义和申明

void print_skill_tree(char arr[],char arr1[]){printf("%s,%s",arr,arr1);
}
int main()
{SetConsoleOutputCP(65001);char tree_name[] = "微信搜";char tree_link[] = "程序员实用资源";print_skill_tree(tree_name, tree_link);return 0;
}

 函数返回字符串 函数指针

#include <stdio.h>
#include <windows.h>
char* a(){return "湖南";
};
int main()
{SetConsoleOutputCP(65001);printf("%s",a());
}

 模拟循环那题 答案是错的~!!!!!!!!

我模拟了下,如下

#include <stdio.h>
#include <windows.h>
void a(int i){if(i<10){a(++i);printf("%d\n",i);}
}int main()
{SetConsoleOutputCP(65001);a(1);
}

这个结果是

 所以正确的写法应该是

#include <stdio.h>
#include <windows.h>
void a(int i){if(i<10){printf("%d\n",i);a(++i);}
}int main()
{SetConsoleOutputCP(65001);a(1);
}

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

统计学 实验5

8.14 总体平均值&#xff08;μ&#xff09;&#xff1a;7.0 cm 总体方差&#xff08;σ&#xff09;&#xff1a;0.03 cm 样本平均值&#xff08;x̄&#xff09;&#xff1a;6.97 cm 样本方差&#xff08;s&#xff09;&#xff1a;0.0375 cm 样本大小&#xff08;n&#xff…

数百家数科公司齐聚用友BIP技术大会,共享企业数智化领先实践

4月19日&#xff5e;4月21日&#xff0c;由用友公司主办的“2023用友BIP技术大会“在用友产业园&#xff08;北京&#xff09;盛大召开&#xff0c;用友介绍了更懂企业业务的用友BIP-iuap平台&#xff0c;并发布了全面数智化能力体系&#xff0c;助力企业升级数智化底座&#x…

构建高效数据中台——数据只有被使用起来,才能创造价值

产品经理们时常会碰到这种问题&#xff1a; 我刚上线一个功能&#xff0c;请研发同志们帮我拉个数据出来分析&#xff0c;却被残酷告知需要排期。 我这里急得跺脚&#xff0c;但也只能理解。 数据研发们每天有查不完的数据和写不完的表&#xff0c;业务部门要的数据迟迟拿不到&…

CCBN 2023看点分析:国产8K摄像机国产化替代趋势增强

4月21日&#xff0c;为期3天的CCBN 2023&#xff08;第29届中国国际广播电视信息网络展览会&#xff09;在北京首钢会展中心圆满落幕&#xff0c;CCBN展会是亚洲广播电视设备展览会&#xff0c;也是中国广电行业规模最大、影响力最强的国际性展会之一&#xff0c;更是广电行业内…

同为科技(TOWE)防雷科普篇(二)——雷击灾害急救方法大全

前 言 当雷击发生时&#xff0c;空气中的各种微粒互相碰撞和摩擦便会使该空气介质两面的正负电荷的量持续积累&#xff0c;这时加于该空气介质的电压也会同时增加&#xff0c;当局部电压达到当时条件下空气的击穿电压时&#xff0c;该空气介质的局部便会发生电击穿而持续成为等…

23种设计模式-代理模式

代理模式 在代理模式&#xff08;Proxy Pattern&#xff09;中&#xff0c;一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中&#xff0c;我们创建具有现有对象的对象&#xff0c;以便向外界提供功能接口。 介绍 意图&#xff1a;为其他对象提供…

发展文旅夜游,活络城市文化生态

城市是一个对外的窗口&#xff0c;其夜间文化生态值得进一步挖掘&#xff0c;发展夜间文旅产业&#xff0c;并活络城市文化生态是重要的城市发展举措。实现这一目标需要保护和利用好城市夜景资源、挖掘城市夜生活文化内涵以及利用特色文化吸引夜游人流量。 第一、要保护和利用好…

ArcGIS、ENVI、InVEST、FRAGSTATS多技术融合提升环境、生态、水文、土地、土壤、农业、大气领域应用

基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析能力与项目科研水平 点击查看原文 一、空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 …

20、Theos越狱调试Wallet

前面的总结中使用砸壳重签后的App进行调试,本篇在越狱环境下不重签App进行调试,但是还是需要砸壳获取Headers. 一、Cycript 1.1 在越狱环境中使用Cycript 在越狱环境上,安装Cycript插件.需要先安装adv-cmds插件,因为被Cycript插件所依赖、在Cydia中,安装Cycript 在设备中找到…

苦熬10年,国产操作系统“归零”,新操作系统上新,跟Excel很像

苦熬10余年&#xff0c;国产操作系统自主研发 说到国内自主研发的操作系统&#xff0c;经验最丰富的品牌&#xff0c;当然是麒麟OS. 从诞生到发展&#xff0c;历经10多年的努力&#xff0c;麒麟os逐渐成为了国内自主研发操作系统领域中的一颗耀眼的明珠。麒麟OS不仅推出了许多…

typescript全局安装卸载以及npm相关问题

全局安装 npm install -g typescript 全局安装之后&#xff0c;如果想要卸载要使用 npm uninstall -g typescript 全局安装之后可以在终端使用 tsc xxx 编译ts文件 本地安装&#xff0c;也就是在项目目录下安装 npm install typescript 本地卸载 npm uninstall type…

DHCP 给内网客户端分配ip地址

~ 为 InsideCli 客户端网络分配地址&#xff0c;地址池范围&#xff1a; 192.168.0.110-192.168.0.190/24&#xff1b; ~ 域名解析服务器&#xff1a;按照实际需求配置 DNS 服务器地址选项&#xff1b; ~ 网关&#xff1a;按照实际需求配置网关地址选项&#xff1b; ~ 为…

基于Html+Css的图片展示25

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

自动化工具 基于 Antd+DRF 开发了一款适配 JMeter 的接口自动化测试报告

JMeter Report 基于 AntdDRF 开发的一款 JMeter 测试报告服务&#xff0c;用于在 JMeter 接口测试中使用。 &#x1f334; 背景 JMeter 是测试工作中常用的一款工具&#xff0c;除了压测还可以用来做接口自动化的测试。 从事测试多年&#xff0c;接口自动化也做过很多的尝试…

基于PWM技术的三相光伏逆变器研究(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

一文让你熟练使用 JSONObject 和 JSONArray

依赖 导入阿里的 fastjson 依赖。 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.78</version></dependency>类型转换 String 与 JSON 相互转换 通过 JSONObject.parseObject…

面试2个月没有一个offer?阿里技术官的800页知识宝典打破你的僵局~

在经历了一波裁员浪潮后&#xff0c;大环境似乎有所好转&#xff0c;但对于面试者来说&#xff0c;面试愈发困难&#xff0c;现在面试官动不动就是底层原理&#xff0c;动不动就是源码分析&#xff0c;面试一定会抓你擅长的地方&#xff0c;一直问&#xff0c;问到你不会为止。…

集成学习(Ensembles)

Ensembles 前言EnsemblesAveraging,StackingWhy does averaging work?如何理解&#xff1a;In practice errors won’t be completely independent due to noise in the labels Random ForestsDoes averaging work if you use trees with the same parameters?Bootstrap Samp…

【手把手做ROS2机器人系统开发一】开发环境搭建

【手把手做ROS2机器人系统开发一】开发环境搭建 目录 【手把手做ROS2机器人系统开发一】开发环境搭建 一、专栏介绍&#xff1a; 二、开发环境搭建&#xff1a; 1.Ubuntu系统安装 2.ROS2系统环境安装 3.测试系统运行 一、专栏介绍&#xff1a; 大家好&#xff0c;今天给大家…

自然语言处理基本任务综述

文章目录 1.多语言分词2.词性标注3.命名实体识别4.中心词提取5.依存句法分析6.文本纠错7.文本摘要8.文本相似度9.情感分析10.文本分类11.词向量 1.多语言分词 ​ 在自然语言处理中&#xff0c;分词&#xff08;Tokenization&#xff09;是指将自然语言文本中的连续字符序列划分…