ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:22.26KB ,
资源ID:7380096      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7380096.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言学习提纲.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言学习提纲.docx

1、C语言学习提纲目 录第一章 导 言第二章 类型、运算符与表达式第三章 控 制 流第四章 函数与程序结构第五章 指针与数组第六章 结构第七章 输入输出第八章 UNIX系统接口附录1. 无论学习的结果怎么样,是很好还是很差,总要弄点资料或东西出来。现坚持一下、多学习、多借鉴、多练习、多啄磨,再怎么样的差,也还是有点东西的!2. 程序设计语言的学习,同实践是密不可分的,只有多练习,坚持尝试,多动手,才能整正有所进步。光看书、在网上学习,没有上机演练来得踏实、彻底、有效。* 运算符的优先级 , 程序填空 , 基础知识填空第一章 导 言1、 for 循环示例#include / 将标准库文件stdio.

2、h包含进来 int main(int argc, char *argv) Int fahr; /定义一整型变量fahr,ANSI C 约定以分号”;”作为语句的结束标记。 for(fahr=0; fahr=300;fahr+=20) /以fahr为变量的for循环,从0开始,300时结束,每次循环步长20 printf(%3d %6.1fn,fahr, (5.0/9.0)*(fahr-32); / 输出3个字节长的十进制数; 6位整数,1位小数的浮点数。 2、 用while 循环改写 for 循环:#include main()int fahr,celsius;int lower,upper,

3、step;lower=0;upper=300;step=20;fahr=lower;while(fahr=upper) /测试表达式 celsius=5*(fahr-32)/9; printf(%dt%dn,fahr,celsius); / 花括号内语句,组成一个复合语句 fahr=fahr+step; /改变测试变量的值,以便下次循环时的测试比较。#include int main(int argc, char *argv)int c;c=getchar();while (c!=EOF) putchar(c); c=getchar(); 3、 在屏幕输入输出:#include int mai

4、n(int argc, char *argv) int c; while (c=getchar()!=EOF) / 如果没有遇到文件结束符,就一直循环。 / 每次循环获取从键盘录入的一个字符,并输出。表现:输入回车后将本行输入内容显现到屏幕。 putchar(c); 4、 符号常量的程序编制时的运用:#include main() #define LOWER 0 /运用大写字符串代表一个具体的数值,能更好体现数据的意图 #define UPPER 300 /宏替换,在后面遇到一样的大写字符串,以被替换数值或表达式取替。#define STEP 20int fahr;for(fahr=LOWER

5、;fahr=UPPER;fahr=fahr+ STEP) /替换后 for( fahr=0; fahr=300; fahr=fahr+20) printf (%3dt%6.1fn,fahr,(5.0/9.0)*(fahr-32); / t 中间插入一Ta间距 5、 统计从键盘录入的信息包含有多少行,多少单词,多少字符:#include #define IN 1#define OUT 0main()int c,nl,nw,nc,state;state=OUT;nl=nw=nc=0;while (c=getchar()!=EOF) +nc; if(c=n) +nl; if(c= |c=n| c=t

6、) state=OUT; else if (state=OUT) state=IN; +nw; printf(%d %d %dn,nl,nw,nc);6、 统计录入的信息0-9各数字出现的次数,不可见字符的次数,其他的次数。#include int main() int c,i,nwhite,nother; int ndigit10; nwhite=nother=0; for (i=0;i=0 & c=9) / 获取的字符如果在0到9之间 +ndigitc-0; / 数组对应序列中的值加1 else if (c= |c=n|c=t) / 不可见字符的判断 +nwhite; else +noth

7、er; printf(数组中各元素对应值是:n); for (i=0;i10;+i) printf(%2d,i); printf(n); for (i=0;i10;+i) /读出数组中各元素的值并输出 printf(%-4d,ndigiti); /每个值占4个宽,并左对齐 printf(nwhite space=%d,other=%dn,nwhite,nother);7、 计算某个数的n次方; 示例函数的定义与运用:#include int power(int m,int n); / 函数的原型声明。C 可对数据类型进行检查并强制转换 main ( ) int i; for (i=0;i10;

8、+i) printf(%d %d %dn,i,power(2,i),power(-3,i); / 函数调用int power (int base,int n) / 某个数自身相乘n次 int i,p; p=1; for(i=1;i0;-n) p=p*base; return p;8、 获取从键盘录入的各行信息中最长的那行并输出:#include #define MAXLINE 1000 /定义定符常量,以实现宏替代 int getline(char line,int maxline); / 有返回值函数原型声明 void copy(char to,char from); / 无返回值函数原型声

9、明 main() int len; int max=0; char lineMAXLINE,longestMAXLINE; while (len=getline(line,MAXLINE)0) /获取输入的各行及行长度以此作判断条件进行循环 if (lenmax) /如果本行的长度比上一行的长度更长 /则改变行长,并将行内容拷到目标数组中存放 max=len; copy(longest,line); / 无返回值的函数调用 if(max0) printf(%s,longest); / 输出字符串 return 0; int getline(char s,int lim) int c,i; /

10、在数组长度内获取输入字符,通过for循环将其放入数组中 for (i=0;ilim-1 & (c=getchar()!=EOF & c!=n; +i ) si=c; if(c=n) / 一行末尾的换行符也统计到行长度中 si=c; +i; si=0; / 给字符串数组加上结束标志 return i; / 返回输入信息行的长度 void copy (char to,char from) / 字符数组间的复制 int i=0; while (toi=fromi)!=0) / 如果源字符串未结束则继续循环 +i; 9、 指定每行打印的元素个数,每列用空格隔开:#include int main()i

11、nt i, t100;for (i=0;i100;i+) /给数组的100个元素赋值 ti=i;for (i=0;i100;i+) /每行打印10个元素,每列之间用一个空格隔开。 printf(%6d%c,ti,(i%10=9|i=99)?n: ); /三元运算符,如果.则.否则.第二章 类型、运算符与表达式1、 检测字符串的长度:#include int main(int argc, char *argv)printf(%3dn,strlen(abcde);int strlen(char s) int i=0; while (si!=0) /如果字符串还未结束则继续循环 +i; return

12、 i; 2、 枚举常量的定义及应用:#include int main(int argc, char *argv) enum weekday sun,mon,tue,wed,thu,fri,sat a,b,c; /枚举常量的定义 a=sun; b=mon; c=tue; printf(%d,%d,%d n,a,b,c);3、 大写转小写,数字字符转数值,判断是否闰年:#include main()void leapyear(int); int i=0; int year;i=atoi(123 4); /将数字组成的字符串转换为纯数字 printf(%dn,i); printf(输入具体的年数:

13、);scanf(%d,&year); / 从键盘获得需要判断是否闰年的具体年份数 &year leapyear(year); /调用是否闰年函数 printf(%c转换为小写字母是:%cn,B,lower(B); /调用转换为小字字母函数 int atoi(char s) /字符数组转换为数字的函数 int i,n; n=0; for(i=0; si=0 & si=A & c=Z) return c+a-A; else return c; void leapyear(int year) /判断是否为闰年函数 if(year%4=0 & year%100!=0)|year%400=0) prin

14、tf(%d is a leap yearn,year); else printf(%d is not a leap yearn,year); 4、 删除字符数组中某个指定字符,再连接一个字符串:#include main() void squeeze(char s,int c); void strcat(char s,char t); char sour20=abcdefg; /定义一字符数组并赋初值 int c=b; printf(%sn,sour); / 输出未删除前源字符数组的内容 printf(删除%c字符后:n,c); squeeze(sour,c); /调用函数squeeze 删除

15、指定字符 printf(%sn,sour); char a10=tttt; printf(再连接一个字符串%s后:n,a); strcat(sour,a); printf(%sn,sour); void squeeze(char s,int c) /删除字符数组中的某个指定字符的函数 int i,j; for(i=j=0;si!=0;i+) if(si!=c) /不一样的才赋值后进下次循环;否则直接进入下次循环 sj+=si; sj=0;void strcat(char s,char t) /字符数组的连接函数 int i,j; i=j=0; while (si!=0) /原字符数组先保留 i

16、+; while (si+=tj+)!=0) /再在后面添加新字符数组的内容 ;第三章 控 制 流1、 在经过排序后的整型数组中查找指定数字所在的位置:核心是整型数组的操作#include int main()int binsearch(int x,int v,int n);int t15;int i,x;printf(录入15个数n); /提示数据录入信息 for(i=0;i15;+i) /循环录入15个数给数组各元素赋值 scanf(%d,&ti); /带& 表示录值给对应序列数组元素的值 printf(输入要查找的数:n);scanf(%d,&x); printf(%dn,binsear

17、ch(x,t,t14); /调用折半查找函数 printf(最后一个元素的值是:%dn,t14); /引用数组中某个元素的值 int binsearch(int x,int v,int n) int low,high,mid; low=0; /下限 high=n-1; /上限 while(low=high) mid=(low+high)/2; /中值 if(xvmid) /如果待查找的值大于中值,将下限改为中值加1后再循环 low=mid+1; else return mid; /如果正好等于中值,那就返回中值 return -1; / 返回没有找到2、 Switch 应用的一个示例#incl

18、ude main()int c,i,nwhite,nother,ndigit10;nwhite=nother=0; /对二个整型变量进行连续赋初值0 for (i=0;i10;i+) /10个元素的整型数组赋初值0 ndigiti=0;while (c=getchar()!=EOF) /从键盘获取输入的信息,直到收到结束信号 switch (c) /逐个字符进行判断,如果是数字则整型数组对应元素的值加1 case0:case 1:case 2:case 3:case 4:case 5: case6:case 7:case 8:case 9: ndigitc-0+; /输入的是以字符形式存储的,

19、ASCII码中0为48 break; /若输入4 ,实际存储4这个字,ASCII码52,故:c-0=4 case : case n: case t: nwhite+; break; /break 跳出这层分支,阻止程序直接进入下一分支 default: /缺省选项,可以没有。习惯在这分支也加上break跳出语句 nother+; break; printf(digits = ); for (i=0; i10; i+) /for 循环读出整型数组中各元素的值 printf( %d,ndigiti); printf ( ,white space = %d,other = %d n, nwhite,

20、nother); return 0;3、 Shellsort排序:#include main()void shellsort(int v,int n);int i,a10;printf(录入要排序的10个数:n);for(i=0;i10;i+) /for循环录入整型数组10个元素的值 scanf(%d,&ai); shellsort(a,i); /调用排序函数实现排序 printf(排序后的数组n);for(i=0;i0;gap /=2) /控制二个被比较元素间隔,从n/2开始,逐步对折 for(i=gap;i=0 & vjvj+gap; j-=gap)/比较相距gap个位置的各对元素,如果逆

21、序则互换 temp=vj; vj=vj+gap; vj+gap=temp ; 4、 字符串反转操作:#include #include /后有使用strlen 字符串操作的函数 int main() int i; void reverse (char s); char a100; printf(输入需反转的字符串:n); scanf(%s,a); /从键盘获取字符串; 汉字字符串本程序不能反转 reverse(a); /字符数组名本身为指针,故前面不需要加 & printf(反转后的字符串:n%sn,a);void reverse (char s) int c,i,j; for(i=0,j=s

22、trlen(s)-1; ij; i+,j-) /二个循环变量,一个从开头,一个从末尾,二者相等时结束 c=si; si=sj; sj=c; 5、 将数值转换为字符串:#include #include main( )void itoa(int,char s);void reverse(char s);long x=-1234552; char t100;itoa(x,t); /调用itoa 将数值转为字符串;printf(将长整型数值%d转换为字符串:n,x);printf(%sn,t);int i;for (i=0;istrlen(t);i+) /输出字符数组各元素的值 printf(%2c

23、,ti);void itoa(int n, char s) /将数字转换为字符串并保存到S中 int i,sign; if(sign=n)0 ); if(sign0) si+=-; si=0; reverse(s); void reverse (char s) /将字符数组中各元素的值的反置 int c,i,j; for(i=0,j=strlen(s)-1; ij; i+,j-) c=si; si=sj; sj=c; 6、 去除字符串尾部的不可见字符:#include int main(int argc, char *argv)int trim(char s);int strlen(char s);char t100=abcd ade ;/printf(录入尾部包含不可见字符的字符串:n);/ scanf(%s,t);printf(输入的字符串长度为:%dn,strlen(t);trim(t);int i=0;printf(删除字符串尾部的不可见字符后,读数组各值:n);for(i=0;i=0;n-) /从后面开始循环; 实际上就是将0放到假想的位置上 if(sn != & sn !=

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1