C语言提高学习
文章平均质量分 73
Geek宝宝
诺丁汉大学Computer Science 2015届本科//
莱顿大学 Data Science 2020界硕士//
荷兰ASML光刻公司2021数据工程师
展开
-
C语言:函数中参数的传值与传地址
任务代码:#include void swap(int *a,int *b);void swap(int *a ,int *b){ int t; t=*a; *a=*b; *b=t; return;}int main(){ int a,b; printf("请输入两个数:"); scanf("%d %d",&a,&原创 2017-07-20 16:14:44 · 5600 阅读 · 0 评论 -
C语言:实现线性表基本表示(数组元素的删除,插入,合并)
任务代码:在指定位置删除值的操作:#include #define SIZE 10int deleteData(int array[],int len,int locate);//定义删除的数组,长度,删除数据的位置int main(){ int locate,i; int n=10;//数组中实际有用的元素 int d[SIZE]={0,1,2,3原创 2017-08-17 10:48:47 · 4069 阅读 · 0 评论 -
C语言:二维数组定义,元素引用 实践
任务代码:【项目1-折腾二维数组】创建一个5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后:通过键盘输入,使后两列的10个元素获得值;按行序优先输出数组元素;将所有元素值乘以3后保存在数组中;按列序优先输出(输出的第一行是数组中的第一列……,其实输出的就是“转置”);将数组“倒”着输出(即最后一行最后一列的最先输出,第0行第0列的最后输出);输出数组原创 2017-09-13 12:18:55 · 4224 阅读 · 0 评论 -
C语言:自定义字符串函数
任务代码:字符串复制(自定义函数):指针法1:#include char *scopy(char *str1,const char *str2);//最后返回的是一个字符串也就是字符数组,所以用指针返回int main(){ char s1[50]; char s2[]="i am happy!"; scopy(s1,s2);原创 2017-09-05 17:32:12 · 7802 阅读 · 1 评论 -
C语言:编写查找和排序函数(二分查找,冒泡排序,选择排序法,插入排序)
任务代码:二分查找数组的一个数字:(函数法)#include <stdio.h>int binarySearch(int a[],int len,int key){ int low=0,high=len-1,mid; int i=-1;//相当于index while(low<=high) { mid=(low+high)/2;...原创 2017-08-24 12:03:11 · 4135 阅读 · 1 评论 -
C语言:二维数组的存储及地址表示
任务代码:知识总结:(1)二维数组的储存:(2)二维数组可以视为一维数组:(3)回顾:数组名代表数组首元素地址(4)行地址 & 列地址*(5)二维数与一维数组指针的不同:*(6)很绕但是很重要的对二维数组指针表示的理解:原创 2017-09-14 12:11:33 · 18114 阅读 · 2 评论 -
C语言:使用指针操作二维数组
任务代码:(1)用指向二维数组元素的指针:#include int main( ){ int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int *p; for(p=a[0];p<a[0]+12;p++) { printf("%3d ",*p); } return 0;}原创 2017-09-16 20:03:31 · 14374 阅读 · 0 评论 -
C语言:多维数组做函数参数
任务代码:(1)用多维数组名做函数参数:#include int max_value(int array[][4]);int main( ){ int b[3][4]={{1,2,3,4},{5,6,7,8},{9,13,14,23}}; printf("max value is %d\n",max_value(b)); return 0;}int m原创 2017-09-17 10:49:45 · 6946 阅读 · 2 评论 -
C语言:数组与函数实践
任务代码:【项目1-有序数组中插入数据(函数版)】 有一个足够“大”的数组a,其中已经存储了n个呈升序排列的数据。调用函数insert(a, n, m),可以将数m插入到a中的合适位置,使其仍然保持升序,并且返回值为数组中有效数字的个数(即原先的n加1)。#include #define N 100int insert(int a[],int n,int m){原创 2017-08-24 14:54:04 · 458 阅读 · 0 评论 -
C语言:二维数组与指针 实践1
任务代码:【项目1-二维数组当函数参数】定义一个函数来完成对参数数组中元素的求和工作,函数声明如下:int sum(int array[ ][4],int m,int n); //该函数完成对array数组中的前m行和n列元素求和 在以下程序的基础上,完成对sum函数的定义。#include int sum(int array[ ][4],int m,int n);//该函数完成原创 2017-09-18 19:53:42 · 840 阅读 · 0 评论 -
C语言:操作字符串数组
任务代码:(1)求最小的姓氏:(对比姓氏开头的ASCII值)#include #include char *min_name(char [][10],int);//返回值是一个字符串,所以是一个指向字符的指针int main(){ char name[5][10]={"Zhao","Qian","Sun","Li","Zhou"}; printf("%s\n",原创 2017-09-19 11:47:25 · 2384 阅读 · 0 评论 -
C语言:字符数组与字符串处理 实践 1
任务代码:【项目1-M$pszi$y是嘛意思?】背景:小明让同学传纸条给小丽。小丽接到会心一笑,大家却不知所云。纸条上写着M$pszi$y,两人暗中约定是,真实字符为实际字符前面的第4个!M$pszi$y是神马意思?推算一下,或从ASCII码表中查一下,自然是I love u。(1)小明请你写一个程序,在给小丽写情书时,再不用费功夫自己“翻译”,原信中每一个字符加密为其后的第4个字原创 2017-09-09 10:40:01 · 679 阅读 · 0 评论 -
C语言:字符数组与字符串处理 实践 2
【项目4-字符串处理函数】指针是神奇的,指向整型的指针int *p1,可以操作整型数组int a[];指向字符型的指针char *p2,可以操作字符数组(字符串)char str[];更灵活的是,在函数的传递中,指针、数组名在一定程度上可以互换。请编制函数,对字符串的进行各种操作。序功能用数组名作形参用指针作形参原创 2017-09-11 12:14:41 · 472 阅读 · 0 评论 -
C语言:二维数组及其定义
知识总结:(1)二维数组的主要用途:(2)定义二维数组(3)二位数组的初始化(4)定义缺行的二维数组(5)定义和初始化二维字符数组原创 2017-09-12 16:27:52 · 23604 阅读 · 1 评论 -
C语言:字符和字符串库函数
任务代码:统计数字字符的个数isdigit || isalpha:#include #include int main(){ char str[50]; printf("请输入字符串:"); gets(str); int i=0,n=0; while (str[i]!='\0') { if(isdigit(s原创 2017-09-04 12:03:27 · 716 阅读 · 0 评论 -
C语言:字符串处理4例子
任务代码:字符串有多长:#include int main(){ char str[50]; printf("请输入字符串:"); gets(str); int n=0; while(str[n]!='\0') { n++; } /*也可以写成 int n=0; while(st原创 2017-09-04 12:02:33 · 605 阅读 · 1 评论 -
C语言:字符和字符串处理函数函数
任务代码:字符串的输入和输出#include int main(){ char str[50]; gets(str); puts(str); return 0; }用指向字符的指针引用字符串:#include int main(){ char str[]="i am happy"; char *s;原创 2017-09-04 10:49:29 · 462 阅读 · 0 评论 -
C语言:全局变量和局部变量
任务代码:全局变量和局部变量:#include void fun1(); void fun2(); int x=1; int main () { x++; printf("%d\n", x); fun1(); printf("%d\n", x); fun2(); printf("%d\n", x)原创 2017-07-22 11:35:12 · 528 阅读 · 0 评论 -
C语言:函数
任务代码:任务1:星号图#include void printstars(int m) //定义能输出一行m个星号的函数{ int j; for (j=1; j<=m; ++j) printf("*");}int main( ){ int n=6; //n代表要输出的行数 int i; for(i=1; i<=n; ++i)原创 2017-07-18 18:10:51 · 737 阅读 · 0 评论 -
C语言:变量存储类别
任务代码:知识总结:由此引出4种存储类别变量:自动变量:寄存器变量:寄存器是cpu的重要组成部分,英语叫cache,是一个运算速率快但是存储空间小的内存。起作用主要用于高速数据缓存交换到运算器和ROM中因此,寄存器变量用于设置一段程序中重复大量使用的变量;有利于是程序加速!原创 2017-07-22 15:58:30 · 802 阅读 · 0 评论 -
C语言:银行储蓄系统开发(中级)
任务代码1://使用函数的版本 #include #include int pass(); //验证密码 void work(); //业务驱动 double getBalance(); //获得余额 void showMenu(); //显示菜单 void updatePassword(); //更改密码 double withdra转载 2017-07-24 08:51:02 · 2229 阅读 · 0 评论 -
C语言:一维数组数组
任务代码:这是今年我的第几天(序):#include int days(int y,int m,int d){ int i,sum=d;//初始化天数 int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; for(i=1;i<m;i++) { sum+=a[i]; } if(m>2&&((y%4==0&原创 2017-07-24 10:27:52 · 1004 阅读 · 0 评论 -
C语言:指针做函数参数
任务代码:接着上一节使用,将数组名作为函数参数改变成将指针座位函数参数:#include //改变上一个章节,用冒泡排序法和指针来排序void bubblesort(int *,int);//函数的声明使用指针int main(){ int a[10]={3,-9,2,5,7,98,-1,-5,100,32};//定义一个无序数组 bubblesort(a,10原创 2017-08-15 21:03:54 · 713 阅读 · 0 评论 -
C语言:数组与指针实践项目
任务代码:执行情况:心得体会:原创 2017-08-16 18:15:11 · 563 阅读 · 0 评论 -
C语言 :数组大折腾实践项目
任务代码:任务1:(1)创建一个有20个元素的整型数组,通过初始化,为数组中的前10个元素赋初值,然后通过键盘输入后10个元素的值,从前往后(从第0个到第19个)输出数组中元素的值,每5个元素换一行。#include #include int main(){ int a[20]={1,2,3,4,5,6,7,8,9,10};//前十个数字赋值 int原创 2017-07-25 00:22:27 · 505 阅读 · 0 评论 -
C语言:冒泡排序法(升序排序法)
任务代码:执行情况:知识总结:冒泡排序法:也叫升序排序法,但是相比起二分法查找只能应用于有序数列,二如何将一个无序数列变的有序就可以使用冒泡排序法!!!对上面的过程进行总结:该思想体现在成续上的解法是:实例:冒泡排序不仅仅可以应用于数字同样可以应用于字符字母的快速排序:心得体会:原创 2017-07-26 17:58:59 · 292711 阅读 · 30 评论 -
C语言:顺序查找和二分查找
任务代码:顺序查找元素:#include #define SIZE 10int main(){ int a[SIZE]={1,2,3,4,5,6,7,8,9,10}; int index=-1;//如果末尾没有找到,默认函数为=-1 int i,number; printf("请输入要查找的数据:"); scanf("%d",&number)原创 2017-07-26 09:59:44 · 2699 阅读 · 0 评论 -
C语言:顺序,二分查找,冒泡排序实践项目
任务代码:【项目1-有几个】请编程序,输入若干个正数(不超过100个,以0结束),保存在数组中。再输入一个正数n,输出n在前面出现过多少次?#include #define SIZE 100int main(){ int n=0; double enter[SIZE],number; //输入数字 printf("提示:请输入数字并且原创 2017-07-26 22:09:35 · 875 阅读 · 0 评论 -
C语言:指针的运算
任务代码:执行情况:知识总结:学习指针的目的:int *p;//设置一个指针p++,p--//就是上一个丹玉或者下一个单元(上一个地址或者下一个地址);p+i,p-i;//就是向上若干个单元或者向下若干个单元;p+=i;p-=i;//赋值运算指针变量只能相减,不能相加 !相减代表两个指针之间元素的个数!心得体会:原创 2017-07-29 12:13:22 · 465 阅读 · 0 评论 -
C语言:用指针访问数组元素:
任务代码:(如下)执行情况:知识总结:知识点1:用指针访问数组元素:单独输出数组的名字就是相当于输出数组首元素的地址!= 数组的名字代表数组首元素的地址int a[10]={1,2,3,,4,5,6,7,8,9,10};int *p;//先声明指针变量p=&a[0]//然后将指针赋予地址这种写法等同于:int a[10]={1,2,3,,4,原创 2017-07-28 11:38:56 · 22770 阅读 · 0 评论 -
C语言:库函数
任务代码:modf分离一个数的整数部分和小数部分:#include #include int main(void){ double fraction, integer; double number = 100000.567; fraction = modf(number, &integer); printf(" %.3lf 的整数部分是:%.3lf 小原创 2017-07-23 16:48:17 · 769 阅读 · 0 评论 -
C语言:数组名作为函数参数
任务代码:数组多数字求最大公约数:#include #define N 8int gcd(int,int);int main(){ int a[N]={26,1007,956,705,574,371,416,517}; int b[N]={994,631,772,201,262,763,1000,781}; int c[N]; int i;原创 2017-08-15 16:54:19 · 2886 阅读 · 0 评论 -
C语言:二维数组元素的引用
任务代码:(1)#include int main(){ int a[3][5],i,j; printf("输入3*5数组:\n"); //输入 for(i=0;i<3;i++) { for(j=0;j<5;j++) { scanf("%d",&a[i][j]); }原创 2017-09-12 17:34:08 · 7372 阅读 · 0 评论