收藏 分销(赏)

专升本c语言上机笔记.doc

上传人:w****g 文档编号:3530519 上传时间:2024-07-08 格式:DOC 页数:20 大小:163KB
下载 相关 举报
专升本c语言上机笔记.doc_第1页
第1页 / 共20页
专升本c语言上机笔记.doc_第2页
第2页 / 共20页
专升本c语言上机笔记.doc_第3页
第3页 / 共20页
专升本c语言上机笔记.doc_第4页
第4页 / 共20页
专升本c语言上机笔记.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、专升本c语言上机笔记第一部分:能够熟练使用一种c程序集成环境对c程序集成环境对c程序进行编辑、编译、连接和运行。 Tubro c c/c+实验系统 visual c+使用Turbo C注意事项1. 启动turbo c双击 tc. exe 图标 进入界面,不能用鼠标 (使用alt+enter实现窗口和 全屏方式的转换)2. 按下回车 或esc,清楚提示窗口3. Tubro C与其它程序窗口切换 alt+tab 4. 主菜单-esc-编辑菜单-f6-信息窗口状态 主菜单-f10-编辑菜单-f6-信息窗口状态5. 光标在菜单上 按回车进入展开选项 6. 退出菜单 esc 7.file文件l load

2、e:打开已有c源文件(f3)l new:新建c源文件l save:保存(ctrl+s不能用)(f2经常保存)l write to :当前另存为其它源文件l quit:退出l pick: 发开最近打开的源文件l compile 编译:compile to objl change dir 改变目录run(运行)runedit(编辑命令)n ins按键插入n del删除n ctrl+y删除一行n ctrl+n插入一行n Y删除当前行Compile(编译)l compile to obj 编译当前文件l likr exe file 链接生成可执行文件l makr exe file 连续完成编译和连接o

3、ption 默认路径的设置8. 在tuboc中汉字无法显示 ,文件路径、scanf、printf做输出时也不能用汉字。9. 在编写c程序时,该程序的所有变量一定要实现定义好,不要用到哪定义到哪,自己先分析程序。10. 在turbo c中运行程序后,一般是看不到结束的,需要在程序最后一个大括号前加 getch(); 才能够看见程序结果。11. 先编译后运行程序代码检查无误,运行时总是说stido.h 有问题,此时需要检查options菜下的【directoried】【include directoried】。如查出路径不一致,需要将整个tuboc 文件夹复制到指定的【include direct

4、oried】下。12. 程序运行后,如果代码出现问题,需要重新编辑时,可能会出现无法输入代码的现象,此时需要按f6进入编辑状态。(菜单里面选编辑项然后按 回车)13. 退出 turbo c, quit (alt+x)记得随时保存14. 注意改写和插入的转换用insert实例1:输入圆的半径分别计算出远的面积area,圆的周长c1,输出结果要有相应的文字说明。#include #define PI 3.1415main() double area,c1; int r; printf(please input radins of a circle:); scanf(%d,&r); area=PI*

5、r*r; c1=2*PI*r; printf(The area of a circle id :%f,area); printf(The c1 of a circle id:%f,c1);实例2:输出园的面积(半径为1-10)面积大于100时停止。 在(C:Turbo_CtcINCLUDE)名为01 (注意getchar()才能显示)#include#define PI 3.1415main()int r;double area;for(r=1;r100) break; printf(%d %8.2fn,r,area);getchar();C+C和c+注意事项:1. 保存的默认路径: C:JM

6、SOFTCYuYan2. 编译、生成可执行文件、运行能够分开操作,也可直接点击运行按钮。Vc+6.0注意事项:1. 开始 - microsoft visual c+ (进入程序)2. 文件-新建选项 -新建窗口中(文件选项) - c+source fiel - 给文件起名,必须要写.c -确定- 代码编辑区- 保存3. 文件的存储路径要记住4. 保存文件后,编辑文件,随时保存5. 先编译、链接、再执行。6. vc+中能够写汉字第二部分:能够使用 if、switch 语句,while、do-while及for来解决实际问题的程序代码If题: 编写程序判断正整数即是3的倍数也是7的倍数,是输出ye

7、s ,否则输出 no。#include stdio.hvoid main() int x; scanf(%d,&x); if(x%3=0&x%7=0) printf(yes); else printf(no);Switch题:编写程序实现计算器的功能:读入两个数(a1和a2)及一个运算符(opt),计算表示式a1 opt a2 的值,其中opt能够是+、-、*、/四中运算符中的任何一种(用switch语句实现)#include stdio.hvoid main()float a1,a2,a3;char opt;printf(请输入要计算的式子:);scanf(%f %c %f,&a1,&opt

8、,&a2); /*注意& 注意+*/switch(opt) case +:a3=a1+a2;break; /*注意break*/ case -:a3=a1-a2;break; case *:a3=a1*a2;break; case /:if(a2=0) printf(被除数为零重新输入); exit(1); /*注意exit 退出程序*/ a3=a1/a2;break; default:printf(重新输入);break; printf(%f%c%f=%f,a1,opt,a2,a3);While和do-while题:求1n正整数和。Sum别忘记赋初值=0 While:#include std

9、io.hvoid main() int i=1,n;long sum=0 ;scanf(%d,&n); while(i=n) sum+=i; i+; printf(%d,sum);Do-while:#include stdio.hvoid main() int i=1,n,sum=0; scanf(%d,&n); do sum+=i; i+; while(i=n); printf(%d,sum);For题:编写程序完成用100元人民币换成1元、2元、5元的所有兑换方案。#include stdio.hvoid main() int i,j,k; for(k=0;k=20;k+) for(j=0

10、;j=0) printf(100元人民币可换%d张1元,%d张2元,%d张5元n,i,j,k); 第三部分:能够利用好数组求和、求最大值、最小值、查找、排序等经典实际问题。数组题: 求最大值、最小值、求和、求平均#include stdio.h#define N 50main() int aN,max,min,sum,i,n; double ave; printf(请输入要录入成绩的学生人数,不多于50个人!n); scanf(%d,&n); printf(请输入%d个同学的成绩,成绩之间用空格分开:n,n); for(i=0;in;i+) scanf(%d,&ai);/* 不能是数组名*/

11、max=min=sum=a0; /* 定义时不能连等 定以后能*/ for(i=1;in;i+) if(maxai) min=ai; sum+=ai; ave=(double)sum/n; printf(最高分是:%d,max); printf(最低分是:%d,min); printf(总分是:%d,sum); printf(平均分:%f,ave); 数组题:排序#include stdio.hmain() int a10=10,9,8,2,5,1,7,3,4,6,i,j,k,temp; for(i=0;i10;i+) printf(%d,ai); for(i=0;i9;i+) k=i; fo

12、r(j=k+1;jaj) k=j; temp=ai; ai=ak; ak=temp; printf(n); for(i=0;i10;i+) printf(%d,ai); 数组题:查找#include stdio.h#define N 50main() int aN,i,n,score; printf(请输入要录入成绩的学生人数,不多于50个人!n); scanf(%d,&n); printf(请输入%d个同学的成绩,成绩之间用空格分开:n,n); for(i=0;in;i+) scanf(%d,&ai); printf(请输入要查找的成绩:); scanf(%d,&score); for(i=

13、0;in;i+) if(ai=score)break; if(i=n) printf(no); else printf(yes); 第四部分:能够进行函数实参和形参的定义,以及参数的传递,能够使用函数的嵌套调用和递归调用,编写常见的的函数如:求和、阶乘、计算平均分、排序等问题。函数题:利用函数调用求最大值、最小值、求和、求平均、排序(选择排序法做升序(小的在上))选择排序:设定一个变量,存小的数在数组中的下标,n个数(外层循环控制比较趟数 n-1,里层循环做每趟比较出一个最小数,控制比较次数)64 48 59 72 97 34第一趟(5次) 34 48 59 72 97 64第二趟(4次)(不

14、动)48 59 72 97 64第三趟(3次) (不动)59 72 97 64第四趟(2次) (不动)64 97 72第五趟(1次) (不动)72 97#include stdio.h#define N 50float max (float a,int length);float min (float a,int length);float sum (float a,int length);float average (float a,int length);void sort (float a,int length);main() float scoreN,ma,mi,s,ave;int i

15、,n;printf(请输入学生的人数不能超过50人!n);scanf(%d,&n);printf(请输入%d个学生的成绩输入的成绩用空格分开!n,n);for(i=0;in;i+)scanf(%f,&scorei); ma=max(score,n); /*数组能够不写里的*/ mi=min(score,n); s=sum(score,n); ave=average(score,n); sort(score,n); /*排序函数没返回值不能用“=”*/ printf(最高分:%fn,ma); printf(最低分:%fn,mi); printf(总分是:%fn,s); printf(平均分:%f

16、n,ave);float max (float a,int length) int i; float max; max=a0; for(i=1;ilength;i+) if(maxai) max=ai; return max;float min (float a,int length) /*把最大值函数复制改max为min */ int i; float min; min=a0; for(i=1;iai) min=ai; return min;float sum (float a,int length) /*把最小值函数复制改min为sum 改为sum+=ai*/ int i; float s

17、um; sum=a0; for(i=1;ilength;i+) sum+=ai; return sum;float average (float a,int length) /*把最小值函数复制改函数名sum 为average return改为 return sum/length;*/ int i; float sum; sum=a0; for(i=1;ilength;i+) sum+=ai; return sum/length;void sort (float a,int length) /*排序没返回值*/ int i,j,k; float temp; for(i=0;ilength-1;

18、i+) k=i; /*重点填空 k是基准*/ for(j=k+1;jaj) k=j; /*小的放k里*/ temp=ai; ai=ak; ak=temp; printf(从小到大排序为:); for(i=0;ilength;i+) printf(%4.1f ,ai); printf(n);函数题:阶乘(递归调用:一定要在自定义函数中不断地调用自己)举例 : int ff(int n) S=ff() #include stdio.hint fac(int m) /*递归调用*/ int s; if(m0) printf(错误的数据请重新输入); else if (m=0|m=1)s=1; els

19、e s=m*fac(m-1); /*重要*/ return s; main()int n,y;printf(请输入一个正整数:);scanf(%d,&n);y=fac(n);printf(%d!=%d,n,y); /*!阶乘符号 5的阶乘等于120*/ 第五部分:能够用指针实现对一维数组的编程。指针题:设有一个数列,包含10个数(一堆数组),已经按升序排好。要求编写程序,把从指定定位置开始的n个数按逆序重新排列并输出新的完整数列(一堆数组)。进行逆序处理时要求使用指针方法。(例如:数列为2 4 6 8 10 12 14 16 18 20,若要求把第4个数开始数(第i个数,下标i-1) 排序(5

20、个数的下标3+5-1,数出n个数,最后一个数的下标)第i个数开始数:这个数的下标是i-1数n个数,最后一个数的下标是i-1+n-1 第4个数开始数:这个数的下标是3数出5个数,最后一个数的下标:4-1+5-1=7I=4 n=5时 n知道时/2知道换几次2 4 6 16 14 12 10 8 18 20*指针变量和普通变量搭建关系:Int a=5,*p;/普通变量需要先定义后使用,指针变量必须先定义赋值后使用P=&a; *指针变量与一对数组搭建关系:Int a=1,2,3,4,5,*p;P=a;/p=&a0 p=&a2#include stdio.hvoid main() int a10,i,p

21、,num,*q1,*q2,temp; printf(请输入十个已近按升序排序好的整数!n); for(i=0;i10;i+) scanf(%d,&ai); printf(请输入指定的位置:); scanf(%d,&p); printf(请输入重新排序的数量:); scanf(%d,&num); for(q1=&ap-1,q2=&ap-1+num-1;q1q2;q1+,q2-) /* p是int不是地址 */ temp=*q1; *q1=*q2; *q2=temp; for(i=0;ieng (*p).manth p-sum=sc1.eng+(*p).math; printf(%f,p-sum)

22、;第七部分:文件的打开、关闭和复制操作。(书前三例题)总结:(其文件名时注意扩展名)一、 用字符型数组存放文件名,经过控制台输入文件名1、 程序的默认路径 C:JMSOFTCYuYanbin (控制台标题栏写的)2、 读取的文件要放在默认的路径下,能够直接输入文件名称。3、 如果读取的文件没有存放在默认路径,需要写文件存放的全部路径,例如:C:a.txt (不好使时用试试 C:JMSOFTCYuYanaa.txt)*注意存放文件名的数组的长度。文件复制a 放b里题#include stdio.hmain() FILE *in,*out; /文件类型的指针变量,存文件的全称 char infil

23、e50,outfile50; /一个存读,一个存写注意内的大小 20以上 scanf(%s,infile); scanf(%s,outfile); if(in = fopen(infile, r)=NULL) /*打开infile outfile两个文件*/ printf(Cannot open infle.n); /没开成功 exit(0); if(out = fopen(outfile, w)=NULL) printf(Cannot open outfile.n); exit(0); while(!feof(in) /*看看到没到尾部*/ fputc(fgetc(in),out); /读一

24、个写一个 fclose(in); /关文件 fclose(out);命令行传参C+:运行菜单-编译成目标文件-生成可执行文件点击带参数运行 不在默认里需要写路径 VC+的命令行传参路径:1. 先建obj2. 创立exe3. 工程菜单-设置-调试选项卡-程序变量中输入参数。 4. 按!按键运行(和c+实验系统不一样) *在编译后运行前输入参数*复制的文本文件应该和c的源程序文件放在同一个路径下。#include stdio.h#include stdlib.hFILE *source,*target;void main(int argc,char *argv) char c; if(argc!=

25、3) printf(error!n); else source=fopen(argv1,r); target=fopen(argv2,w); while(!feof(source) /*只要不是文件尾就执行*/ c=getc(source); putc(c,target); fclose(source); fclose(target); 第二次课内存变量存最后一次值 / /* */ 都是注释符数组:存相同类型的变量结构体:存放不同类型的变量 重点算法:1 求和 (求平均就是和 / 个数)sum= 0 或(第一个值)For( )Sum=sun+ /*可能是变量 数组 结构体成员*/ sum+=2

26、 求阶乘 (第归调用)P=1For()P=p* p*=3 求极值 (循环 嵌套 分支 ) Max/min=一堆数中的第一个数 forIf(max/min ai ) (max在尖那面,min在开口那面)Max/min = ai (把if条件复制下变=) 4 交换(得有第三变量)A,b,tempTemp=a;A=b;B=temp;5 排序=两个for+极值+交换六个变量 两个累加器(i,j) 一个交换数的(temp) 一个换数组下标的 (k) 一个存比较数的数组an 一个比较个数nFor (i=0;i比较数的个数-1) K=I;For(j=k+1;jaj) k=j; Temp=ai; ai=ak;

27、 ak=temp;编程:一求和1. 求1-100和/*1到100的和*/#includevoid main() int sum=0,i; for(i=0;i=100;i+) /*i=0 或i=1都能够 不要落下=*/ sum+=i; printf(1到100的和为:%d,sum);2. 从键盘输入十个数求和/*从键盘输入十个数求和*/#includevoid main() int sum=0,i,n10; for(i=0;i10;i+) printf(请输入一个数:); scanf(%d,&n); /*n得是地址*/ sum+=n; printf(%d,sum);3. 结构体求和 当填空不能运行#includestruct sruchar id8;char name10;int score;void main() int sum=0,i,; for(i=0;iscore /*这里是程序填空*/ 二求阶乘1. #include stdio.hvoid main() int p=1,i; for(i=1;i=5;i+) /*in 1到几的阶乘就是几;注意int的范围*/ p=p*i; printf(%d,p);2. 求数组里的数的阶乘 就改 p=p*ai;三极值

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 专升本考试

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服