C语言 - 技术教程文章

数据结构与算法分析(C语言描述)习题2.7【代码】

问题描述:假设需要生成前N个自然数的一个随机置换。例如,{4,1,2,5,2}和{3,1,4,2,5}就是合法的置换,但{5,4,1,2,1}却不是,因为数1出现了两次而数3缺没有。这个程序常常用于模拟一些算法。我们假设存在一个随机数生成器randInt(i, j),它以相同的概率生成i和j之间的一个整数。下面是三个算法:1.如下填入A[0]到A[N-1]的数组A;为了填入A[i],生成随机数直到它不同于已经生成的A[0],A[1], ... , A[i-1]时,再将其填入A[i]。2.同算法...

c语言实现bit反转的最佳算法-从msb-lsb到lsb-msb【代码】

问题实现如下转换的最佳算法是什么?0010 0000 => 0000 0100 具体的转换是从MSB->LSB到LSB->MSB, 所有的Bit都必须反转,那意味着,这并不是字节顺序的交换。最佳答案注意: 下面的算法都用C实现,但应该可以迁移到其它语言(只是不那么快的时候可别找我)。可选方案内存占用少(32位int,32位机器)(来源于这里)unsigned int reverse(register unsigned int x) {x = (((x & 0xaaaaaaaa) >> 1) | ((x & 0x55555555) << 1));x = (((x & 0x...

C语言设计实验报告(第二次)【代码】

C程序设计实验报告姓名:龚政实验地点:家实验时间:2019.3.9实验项目:字符与ASCLL码;运算符与表达式的应用;顺序结构应用程序;数学函数;鸡兔同笼;确定坐标。一、实验目的与要求掌握自增++、自减--运算符的正确使用。掌握基本的输入/输出函数的基本功能、调用方法、输入/输出格式控制规定等。掌握结构化程序的算法描述方法。熟练掌握C语言的运算符,即运算符的优先级和结核性、运算规则、运算对象类型等。二、实验内容1、实验...

C语言第三次作业【代码】

1,十行三角形#include<stdio.h> int main()//十行三角形 {printf("*\n");printf("* *\n");printf("* * *\n");printf("* * * *\n");printf("* * * * *\n");printf("* * * * * *\n");printf("* * * * * * *\n");printf("* * * * * * * *\n");printf("* * * * * * * * *\n");printf("* * * * * * * * * *\n");return0; }2,10行*号,每行打印10个*号#include<stdio.h> int main()//十行十列矩形 {printf("* * * * * * * * * *\n");prin...

C语言之三目运算符

三目运算符 三目运算符:也叫三元运算符。这个运算符的符号是: ? : 语法: 表达式1 ? 表达式2 : 表达式3; 语义: 先执行表达式1,执行完毕,表达式1的结果如果为真,那么执行表达式2,并且这个整体的运算式的结果是表达式2的结果,否则执行表达式3,运算式的结果是表达式3的结果 跟 if(表达式1){ 表达式2; }else{ 表达式3; } 用一个口水化来表达三目表达式: 表达式1 ? 表达式2 : 表达式3; 表...

C语言之字符串处理函数

一、字符串复制函数①strcpy strcpy(char *s1,char *s2) 将S2指向的字符串复制到S1指向的数组中,若S1和S2指向的内存空间重叠,则做未定义处理,返回S1的值。②strncpy strncpy(char *s1,char *s2,n) 将S2指向的字符串复制到S1指向的数组中,若S2的长度大于等于n,则复制到第n个字符为止,否则用NULL字符填充剩余部分。若S1和S2指向的内存空间重叠,则做未定义处理,返回S1的值。二、字符串拼接函...

C++/C语言入门简单教程(深圳中学科学联盟信息学会)【代码】

首先我们要明白什么叫编程。编程就是把想要计算机做的任务用代码的形式表现出来,然后编译成计算机能理解的语言(机器语言)。关于编程和计算机基础的具体内容这里不复述,可以在深圳中学科学联盟公众号发布的文章中查阅。那么先安装编译器,Visual Studio 或者 Dev-cpp 等 都可以。性能不好的计算机推荐Dev-cpp,毕竟VS有20GB。。。不会编译代码的可以私戳四叔(+V信zhengjiayou2002)四叔会在100个工作日内回复你的!第一个任务:...

算法导论学习---红黑树详解之插入(C语言实现)【代码】【图】

前面我们学习二叉搜索树的时候发现在一些情况下其高度不是很均匀,甚至有时候会退化成一条长链,所以我们引用一些”平衡”的二叉搜索树。红黑树就是一种”平衡”的二叉搜索树,它通过在每个结点附加颜色位和路径上的一些约束条件可以保证在最坏的情况下基本动态集合操作的时间复杂度为O(nlgn).下面会总结红黑树的性质,然后分析红黑树的插入操作,并给出一份完整代码。先给出红黑树的结点定义:#define RED 1#define BLACK 0///红黑...

C语言博客作业04--数组【代码】【图】

1.本章学习总结(2分)1.1 思维导图1.2 本章学习体会及代码量学习体会1.2.1 学习体会本章主要学习了数组的相关内容,其中掌握好一维数组是掌握好其他类型数组的基础,特别是要掌握好选择排序法和冒泡法 本章需要特别注意和熟练掌握的点有: 1.有关数组的初始化,其中可以针对部分元素初始化,二维数组在全部赋值或者分行赋值的情况下可以省略行长度 2.掌握多种输入字符数据的方法,包括gets,fgets以及scanf函数 3.特别注意字符数组...

二叉树顺序结构实现的C语言【图】

#include "stdio.h" #include "stdlib.h" #include "io.h" #include "math.h" #include "time.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 100 /* 存储空间初始分配量 */#define MAX_TREE_SIZE 100 /* 二叉树的最大结点数 */typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */typedef int TElemType; /* 树结点的数据类型,目前暂定为整型 */typedef TElemType ...

C语言实现链表节点的插入

对链表进行增删改查是最基本的操作。我在上一篇博客《C语言实现链表节点的删除》实现了删除链表中的某个节点。这里我们要来实现在某个位置插入节点。示例代码上传至https://github.com/chenyufeng1991/InsertList 。核心代码如下:Node *InsertToPosition(Node *pNode,int pos,int x){if (pos < 0 || pos > sizeList(pNode) ) {printf("%s函数执行,pos=%d非法,插入数据失败\n",__FUNCTION__,pos);return pNode;}Node *pMove;Nod...

【C语言】练习1-22【代码】【图】

题目来源:《The C programming language》中的习题 练习1-22:编写一个程序,把较长的输入行‘折’成短一些的两行或者多行,折行的位置在输入行的第n列之前的最后一个非空格之后。要保证程序能够智能地处理输入行很长以及在指定的列前有空格或制表符时的情况。  思路:我们可以这样理解题目,每隔n列就需要换一次行,但是字符数目不一定是n个,因为分割的位置是第n列之前的最后一个非空格之后(注意:这里是【最后一个非空格之后...

C语言错误:request for member ‘xxx’ in something not a structure or union

今天在编译一个C语言程序时,对于结构体变量,报出错误 Error: request for member ‘xxx’ in something not a structure or union。经过调试发现是 . 与 -> 搞错了。如果它是地址,就在它后边用 ->,如果它不是地址,就在它后边就用 . 代码举例简略如下:#include <stdio.h>#include <string.h>typedef struct Test_t{  char name[20];  int age;}Test_s;void test(Test_s* mytest){  char* ptr = "hello";  memcpy(myte...

C语言进阶剖析第三课--浮点数的秘密

浮点数在内存中的存储方式:符号数,指数,尾数 float与double类型的数据在计算机内部的表示法是相同的,但由于所占存储空间的不同;其分别能够表示的数值范围和精度不同 浮点数转换方法1.将浮点数转换成二进制2.用科学计数法表示二进制浮点数3.计算指数偏移后的值 注意:计算指数时需要加上偏移量,而偏移量的值与类型有关。原文:http://www.cnblogs.com/yr-linux/p/5468919.html

XMU C语言程序设计实践(1)【代码】

题目:任务1:英雄出世 炎热的夏天午后,小明正在百无聊赖地写c语言程序。忽然,电脑屏幕一阵抖动,浮现下面18×18个看似杂乱无章的数字: 32, 32, 32, 32, 32, 32, 32, 32, 32, 95, 45, 126, 126, 126, 126, 126, 45, 95, 32, 32, 32, 32, 32, 32, 32, 32, 10, 32, 32, 32, 32, 32, 32, 32, 32, 32, -93, -34, 45, 45, 45, -93, -34, 45, 32, 32, 32, 92, 32, 32, 32, 32, 32, 10,...

C语言进阶--DAY3【图】

主要讲解数组和指针有关问题1. 数组名的本质是一个常量指针2. 内存编址的最小单位是字节,对于变量来说,一个变量可以取1、2、4、8等字节,对变量取地址来说,取的是低位字节的地址,在32位机中其对变量取地址就是4,不管其占几个字节。如下例经过分析我们可以得出:指针的大小为43. 指针的本质:一个有类型的地址以上实验说明指针是一个有类型的地址,常量指针4. int p中,*号起的作用是指针的声明以及指定大小,类型决定寻址能对...

C语言printf()函数详解和安全隐患【图】

一、问题描述 二、进一步说明 请仔细注意看,有如下奇怪的现象 int a=5;floatx=a; //这里转换是没有问题的,%f打印x是 5.000000printf("%d\n",a); printf("%f\n",a); //输出为什么是0.000000? -----问题1printf("%f\n",x);printf("%d\n",x); //输出为什么是0? -----问题2printf("%f,%f\n",a,x); //输出都是0.000000 为什么? ----问题3printf("%f,%f\n",x,a); //调换一下a,x的顺序...

1020: C语言程序设计教程(第三版)课后习题6.9【代码】

题目描述一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。 它在第N次落地时反弹多高?共经过多少米? 保留两位小数输入M N输出它在第N次落地时反弹多高?共经过多少米? 保留两位小数,空格隔开,放在一行样例输入1000 5样例输出31.25 2875.00提示 来源 #include<stdio.h>intmain(){ intm,n,i; floath,l=0.0; scanf("%d%d",&m,&n); h=m; for(i=1;i<=n;i++) { l+=1.5*h; h=h/2; }...

C语言位操作的算法【代码】

1.头文件 1#ifndef _INC_BITOPERATION2#define _INC_BITOPERATION3#endif 4/* 5封装了所有的位操作运算6*/ 7 #include<stdio.h>8 #include<stdlib.h>910/************************四字节操作,如int ,long等类型**********************/1112/*置位int数num的第N个位*/13void setInt(int *num, int N); 14/*清零int数num的第N个位*/15void clearInt(int *num, int N); 16/*统计num中是1的位数,返回位数*/17int statIntOne(int num...

C语言 · 图形显示

问题描述  编写一个程序,首先输入一个整数,例如5,然后在屏幕上显示如下的图形(5表示行数):  * * * * *  * * * *  * * *  * *  * #include "stdio.h" int main() { int i,j,k,n; scanf("%d",&n); for(i=0;i<=n;i++) { for(j=1;j<=n-i;j++) printf("* "); for(k=1;k<=2*i-1;k++) printf(" "); printf("\n"); }} C语言 · 图形显示原文:http://www.cnblogs.com/panweiwei/p/6218768.html

C语言程序设计(实验六)【代码】【图】

C语言程序实验报告姓名:邹琼实验地点:家实验时间:2020年5月7日实验项目:(1)7.3.1实验练习1(2)7.3.1实验练习2(3)7.3.2杨辉三角(等腰三角形)一、实验目的(1)掌握一维和多维数组的定义和数组元素的引用方法 (2)了解一维和多维数组初始化的方法 (3)学习一维和多维数组的基本算法 (4)掌握字符数组的定义、初始化方法及其元素的引用方法 (5)掌握C语言提供的对字符串进行处理的基本库函数二、实验内容(1)7.3.1实验...

C语言:标识符 关键字 保留字 表达式 语句

标识符(Identifier)标识符就是程序员自己起的名字,符号常量(宏)、变量名、函数名、宏名、结构体名等,它们都是标识符。遵守规范;C语言规定,标识符只能由字母(A~Z, a~z)、数字(0~9)和下划线(_)组成,并且第一个字符必须是字母或下划线,不能是数字。不能与C语言保留字相同,但可以包含保留字不能包含# - * /区分大小写长度受编译器和操作系统的限制,在做到“见名知义”的情况下尽量短关键字(Keywords)是由C语言规定...

C语言之动态数组应用【代码】

对于刚接触C语言编程的人,很多时候会遇到这种情况——“当让我们处理一个这样的问题,让我们存储或者使用一个大小会随着使用者的使用情况而改变”,这时很多人就开始抓头了,不知道如何下手。今天我个人总结了一些有关这方面的解决方案,希望大家能一起完善。动态数组:首先,我们一起来看看一组代码: #define _CRT_SECURE_NO_DEPRECATE2 #include<stdio.h>3 #include<stdlib.h>4 void create(){5 int n, i;6 int *arr;7...

[C语言]浮点数转解析--Float --〉uint32_t

#include "stdio.h"#define uint8_t unsigned char#define uint16_t unsigned short#define uint32_t unsigned intuint32_t Float_To_Hex(float data){ uint32_t Hex_Data = 0; uint32_t F1 = 0;//尾数 uint8_t F2 = 0;//阶码 uint8_t F3 = 0;//符号位 uint8_t i = 0; char a = 0; //整数位数 float F_c = 0; uint32_t F_a = 0,F_b = 0; if(data == 0) return 0; i...

C语言之冒泡排序【代码】

# include<stdio.h> int main(void) {int arr[10]={5,4,7,9,2,3,1,6,10,8}; //定义一个位排序的数组 int i; //定义循环次数 int n = 0; //定义排序次数 int length=10; //定义数组长度 while(n < length) //控制比较次数 {for(i = 0 ; i < length-1-n ; i++){int tmp = 0; //交换顺序时临时存放数字 if(arr[i] > arr[i+1]) //比较两个数字时,如果前一个数字大于后一个数字则交换位置 {tmp = arr[i]; //交换两...

C语言——排序【代码】

排序1.插入排序(1).代码实现//插入排序 void InsertSort(int array[], int size) {for (int i=1;i<size;i++){int end = i - 1;int key = array[i];//寻找插入位置while (end>=0&&array[end]>key){array[end+1] = array[end];end--;}//插入元素array[end + 1] = key;} }(2).特性? a. 元素集合越接近有序,直接插入排序算法的时间效率越高 ? b. 时间复杂度:O(N^2) ? c.空间复杂度:O(1),它是一种稳定的排序算法...

C语言函数指针【代码】【图】

#include "stdio.h"void (*tprint_p)(void);void tprint(void) {printf("hello world\r\n"); }void main(void) {tprint_p = tprint;tprint_p();(*tprint_p)();printf("tprint_p: 0x%x\r\n", (int)tprint_p);printf("(*tprint_p): 0x%x\r\n", (int)(*tprint_p));int aa = 12;int *tint = &aa;printf("tint: 0x%x\r\n", (int)tint);printf("(*tint): 0x%x\r\n", (int)(*tint)); } 类比整型指针变量,取指针内容是存储的值,而函数指针...

李洪强漫谈iOS开发[C语言-032]-三目运算符【图】

原文:http://www.cnblogs.com/LiLihongqiang/p/5727788.html

C语言第四次作业【代码】

题目 7-1 计算职工工资 1.设计思路 (1)第一步:观察题意了解各个参数与所需函数在题目中的意义; 第二步:设计算法编写函数,让函数的功能实现题目中所需的功能; 第三步:运行程序检测是否错误。 (2)流程图 无 2.实验代码#include <stdio.h> #define MAXN 10struct student{int num;char name[20];int score;char grade; };int set_grade( struct student *p, int n );int main() { struct student stu[MAXN], *ptr;int n, ...

IOS使用纯C语言创建静态库

1.首先是准备好要编译的.h文件和.c文件。 2.在Xcode中建立library的工程。 3.将.h和.c文件拷贝进入项目中,并删除项目的原本代码。 4.编译项目,在product目录下会得到.a文件。 5.使用:新建一个项目,添加刚才.h文件。 然后在这个工程的Build Phases的Link Binary With Library里面添加我们刚才拷贝出来的那个.a文件。/*‘).addClass(‘pre-numbering‘).hide();$(this).addClass(‘has-numbering‘).parent().append($number...