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

上传人:b****2 文档编号:213643 上传时间:2023-04-28 格式:DOCX 页数:27 大小:111.73KB
下载 相关 举报
专升本c语言上机笔记.docx_第1页
第1页 / 共27页
专升本c语言上机笔记.docx_第2页
第2页 / 共27页
专升本c语言上机笔记.docx_第3页
第3页 / 共27页
专升本c语言上机笔记.docx_第4页
第4页 / 共27页
专升本c语言上机笔记.docx_第5页
第5页 / 共27页
专升本c语言上机笔记.docx_第6页
第6页 / 共27页
专升本c语言上机笔记.docx_第7页
第7页 / 共27页
专升本c语言上机笔记.docx_第8页
第8页 / 共27页
专升本c语言上机笔记.docx_第9页
第9页 / 共27页
专升本c语言上机笔记.docx_第10页
第10页 / 共27页
专升本c语言上机笔记.docx_第11页
第11页 / 共27页
专升本c语言上机笔记.docx_第12页
第12页 / 共27页
专升本c语言上机笔记.docx_第13页
第13页 / 共27页
专升本c语言上机笔记.docx_第14页
第14页 / 共27页
专升本c语言上机笔记.docx_第15页
第15页 / 共27页
专升本c语言上机笔记.docx_第16页
第16页 / 共27页
专升本c语言上机笔记.docx_第17页
第17页 / 共27页
专升本c语言上机笔记.docx_第18页
第18页 / 共27页
专升本c语言上机笔记.docx_第19页
第19页 / 共27页
专升本c语言上机笔记.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《专升本c语言上机笔记.docx》由会员分享,可在线阅读,更多相关《专升本c语言上机笔记.docx(27页珍藏版)》请在冰点文库上搜索。

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

专升本c语言上机笔记

第一部分:

能够熟练使用一种c程序集成环境对c程序集成环境对c程序进行编辑、编译、连接和运行。

Tubrocc/c++实验系统visualc++

使用TurboC注意事项

1.启动turboc双击tc.exe图标进入界面,不能用鼠标(使用alt+enter实现窗口和全屏方式的转换)

2.按下回车或esc,清楚提示窗口

3.TubroC与其它程序窗口切换alt+tab

4.主菜单->esc->编辑菜单->f6->信息窗口状态

主菜单<-f10<-编辑菜单<-f6<-信息窗口状态

5.光标在菜单上按回车进入展开选项

6.退出菜单esc

7.

file文件

●loade:

打开已有c源文件(f3)

●new:

新建c源文件

●save:

保存(ctrl+s不能用)(f2经常保存)

●writeto:

当前另存为其他源文件

●quit:

退出

●pick:

发开最近打开的源文件

●compile编译:

compiletoobj

●changedir改变目录

run(运行)run

edit(编辑命令)

⏹ins按键插入

⏹del删除

⏹ctrl+y删除一行

⏹ctrl+n插入一行

⏹^Y删除当前行

Compile(编译)

●compiletoobj编译当前文件

●likrexefile链接生成可执行文件

●makrexefile连续完成编译和连接

option默认路径的设置

8.在tuboc中汉字无法显示,文件路径、scanf、printf做输出时也不能用汉字。

9.在编写c程序时,该程序的所有变量一定要实现定义好,不要用到哪定义到哪,自己先分析程序。

10.在turboc中运行程序后,一般是看不到结束的,需要在程序最后一个大括号前加getch();才能够看见程序结果。

11.先编译后运行程序代码检查无误,运行时总是说stido.h有问题,此时需要检查[options]菜下的【directoried】【includedirectoried】。

如查出路径不一致,需要将整个tuboc文件夹复制到指定的【includedirectoried】下。

12.程序运行后,如果代码出现问题,需要重新编辑时,可能会出现无法输入代码的现象,此时需要按f6进入编辑状态。

(菜单里面选编辑项然后按回车)

13.退出turboc,quit(alt+x)记得随时保存

14.注意改写和插入的转换用insert

实例1:

输入圆的半径分别计算出远的面积area,圆的周长c1,输出结果要有相应的文字说明。

#include

#definePI3.1415

main()

{

doublearea,c1;

intr;

printf("pleaseinputradinsofacircle:

");

scanf("%d",&r);

area=PI*r*r;

c1=2*PI*r;

printf("Theareaofacircleid:

%f",area);

printf("Thec1ofacircleid:

%f",c1);

}

实例2:

输出园的面积(半径为1-10)面积大于100时停止。

[在(C:

\Turbo_C\tc\INCLUDE)名为01](注意getchar()才能显示)

#include

#definePI3.1415

main()

{

intr;

doublearea;

for(r=1;r<=10;r++)

{

area=PI*r*r;

if(area>100)

break;

printf("%d%8.2f\n",r,area);

}

getchar();

}

 

C++

C和c++注意事项:

1.保存的默认路径:

C:

\JMSOFT\CYuYan

2.编译、生成可执行文件、运行可以分开操作,也可直接点击运行按钮。

Vc++6.0注意事项:

1.开始->microsoftvisualc++(进入程序)

2.文件->新建选项->新建窗口中(文件选项)->c++sourcefiel->给文件起名,必须要写.c->确定->代码编辑区->保存

3.文件的存储路径要记住

4.保存文件后,编辑文件,随时保存

5.先编译、链接、再执行。

6.vc++中可以写汉字

 

第二部分:

能够使用if、switch语句,while、do-while及for来解决实际问题的程序代码

If题:

编写程序判断正整数即是3的倍数也是7的倍数,是输出yes,否则输出no。

#include"stdio.h"

voidmain()

{

intx;

scanf("%d",&x);

if(x%3==0&&x%7==0)

printf("yes");

else

printf("no");

}

Switch题:

编写程序实现计算器的功能:

读入两个数(a1和a2)及一个运算符(opt),计算表达式a1opta2的值,其中opt可以是+、-、*、/四中运算符中的任何一种(用switch语句实现)

#include"stdio.h"

voidmain()

{

floata1,a2,a3;

charopt;

printf("请输入要计算的式子:

");

scanf("%f%c%f",&a1,&opt,&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题:

求1~n正整数和。

Sum别忘记赋初值=0

While:

#include"stdio.h"

voidmain()

{

inti=1,n;

longsum=0;

scanf("%d",&n);

while(i<=n)

{

sum+=i;

i++;

}

printf("%d",sum);

}

Do-while:

#include"stdio.h"

voidmain()

{

inti=1,n,sum=0;

scanf("%d",&n);

do

{

sum+=i;

i++;

}while(i<=n);

printf("%d",sum);

}

For题:

编写程序完成用100元人民币换成1元、2元、5元的所有兑换方案。

#include"stdio.h"

voidmain()

{

inti,j,k;

for(k=0;k<=20;k++)

for(j=0;j<=50;j++)

{

i=100-k*5-j*2;

if(i>=0)

{

printf("100元人民币可换%d张1元,%d张2元,%d张5元\n",i,j,k);

}

}

}

第三部分:

能够利用好数组求和、求最大值、最小值、查找、排序等经典实际问题。

数组题:

求最大值、最小值、求和、求平均

#include"stdio.h"

#defineN50

main()

{

inta[N],max,min,sum,i,n;

doubleave;

printf("请输入要录入成绩的学生人数,不多于50个人!

\n");

scanf("%d",&n);

printf("请输入%d个同学的成绩,成绩之间用空格分开:

\n",n);

for(i=0;i

{

scanf("%d",&a[i]);/*不能是数组名*/

}

max=min=sum=a[0];/*定义时不能连等定以后能*/

for(i=1;i

{

if(max

if(min>a[i])min=a[i];

sum+=a[i];

}

ave=(double)sum/n;

printf("最高分是:

%d",max);

printf("最低分是:

%d",min);

printf("总分是:

%d",sum);

printf("平均分:

%f",ave);

}

 

数组题:

排序

#include"stdio.h"

main()

{

inta[10]={10,9,8,2,5,1,7,3,4,6},i,j,k,temp;

for(i=0;i<10;i++)

{

printf("%d",a[i]);

}

for(i=0;i<9;i++)

{

k=i;

for(j=k+1;j<10;j++)/*元素的比较最小*/

{

if(a[k]>a[j])k=j;

}

temp=a[i];

a[i]=a[k];

a[k]=temp;

}

printf("\n");

for(i=0;i<10;i++)

{

printf("%d",a[i]);

}

}

数组题:

查找

#include"stdio.h"

#defineN50

main()

{

inta[N],i,n,score;

printf("请输入要录入成绩的学生人数,不多于50个人!

\n");

scanf("%d",&n);

printf("请输入%d个同学的成绩,成绩之间用空格分开:

\n",n);

for(i=0;i

{

scanf("%d",&a[i]);

}

printf("请输入要查找的成绩:

");

scanf("%d",&score);

for(i=0;i

{

if(a[i]==score)break;

}

if(i==n)

{

printf("no");

}

else

{

printf("yes");

}

}

 

第四部分:

能够进行函数实参和形参的定义,以及参数的传递,能够使用函数的嵌套调用和递归调用,编写常见的的函数如:

求和、阶乘、计算平均分、排序等问题。

函数题:

利用函数调用求最大值、最小值、求和、求平均、排序(选择排序法做升序(小的在上))

选择排序:

设定一个变量,存小的数在数组中的下标,n个数(外层循环控制比较趟数n-1,里层循环做每趟比较出一个最小数,控制比较次数)

644859729734

第一趟(5次)344859729764

第二趟(4次)(不动)4859729764

第三趟(3次)(不动)59729764

第四趟(2次)(不动)649772

第五趟(1次)(不动)7297

 

#include"stdio.h"

#defineN50

floatmax(floata[],intlength);

floatmin(floata[],intlength);

floatsum(floata[],intlength);

floataverage(floata[],intlength);

voidsort(floata[],intlength);

main()

{

floatscore[N],ma,mi,s,ave;

inti,n;

printf("请输入学生的人数不能超过50人!

\n");

scanf("%d",&n);

printf("请输入%d个学生的成绩输入的成绩用空格分开!

\n",n);

for(i=0;i

{

scanf("%f",&score[i]);

}

ma=max(score,n);/*数组可以不写[]里的*/

mi=min(score,n);

s=sum(score,n);

ave=average(score,n);

sort(score,n);/*排序函数没返回值不能用“=”*/

printf("最高分:

%f\n",ma);

printf("最低分:

%f\n",mi);

printf("总分是:

%f\n",s);

printf("平均分:

%f\n",ave);

}

floatmax(floata[],intlength)

{

inti;

floatmax;

max=a[0];

for(i=1;i

{

if(max

max=a[i];

}

returnmax;

}

floatmin(floata[],intlength)/*把最大值函数复制改max为min'<'改为'>'*/

{

inti;

floatmin;

min=a[0];

for(i=1;i

{

if(min>a[i])

min=a[i];

}

returnmin;

}

floatsum(floata[],intlength)/*把最小值函数复制改min为sum>改为sum+=a[i]*/

{

inti;

floatsum;

sum=a[0];

for(i=1;i

{

sum+=a[i];

}

returnsum;

}

floataverage(floata[],intlength)/*把最小值函数复制改函数名sum为averagereturn改为returnsum/length;*/

{

inti;

floatsum;

sum=a[0];

for(i=1;i

{

sum+=a[i];

}

returnsum/length;

}

voidsort(floata[],intlength)/*排序没返回值*/

{

{

inti,j,k;

floattemp;

for(i=0;i

{

k=i;/*重点填空k是基准*/

for(j=k+1;j

{

if(a[k]>a[j])

k=j;/*小的放k里*/

}

temp=a[i];

a[i]=a[k];

a[k]=temp;

}

printf("从小到大排序为:

");

for(i=0;i

{

printf("%4.1f",a[i]);

}

printf("\n");

}

函数题:

阶乘(递归调用:

一定要在自定义函数中不断地调用自己)

举例:

intff(intn)

{

S=ff()

}

#include"stdio.h"

intfac(intm)/*递归调用*/

{

ints;

if(m<0)printf("错误的数据请重新输入");

elseif(m==0||m==1)s=1;

elses=m*fac(m-1);/*重要*/

returns;

}

main()

{

intn,y;

printf("请输入一个正整数:

");

scanf("%d",&n);

y=fac(n);

printf("%d!

=%d",n,y);/*!

阶乘符号5的阶乘等于120*/

}

 

第五部分:

能够用指针实现对一维数组的编程。

指针题:

设有一个数列,包含10个数(一堆数组),已经按升序排好。

要求编写程序,把从指定定位置开始的n个数按逆序重新排列并输出新的完整数列(一堆数组)。

进行逆序处理时要求使用指针方法。

(例如:

数列为2468101214161820,若要求把第4个数开始数(第i个数,下标i-1)排序(5个数的下标3+5-1,数出n个数,最后一个数的下标)

第i个数开始数:

这个数的下标是i-1

数n个数,最后一个数的下标是i-1+n-1

第4个数开始数:

这个数的下标是3

数出5个数,最后一个数的下标:

4-1+5-1=7

I=4n=5时n知道时/2知道换几次

2461614121081820

*指针变量和普通变量搭建关系:

Inta=5,*p;//普通变量需要先定义后使用,指针变量必须先定义赋值后使用

P=&a;

*指针变量与一对数组搭建关系:

Int[a]={1,2,3,4,5},*p;

P=a;//p=&a[0]p=&a[2]

#include"stdio.h"

voidmain()

{

inta[10],i,p,num,*q1,*q2,temp;

printf("请输入十个已近按升序排序好的整数!

\n");

for(i=0;i<10;i++)

{

scanf("%d",&a[i]);

}

printf("请输入指定的位置:

");

scanf("%d",&p);

printf("请输入重新排序的数量:

");

scanf("%d",&num);

for(q1=&a[p-1],q2=&a[p-1+num-1];q1

{

temp=*q1;

*q1=*q2;

*q2=temp;

}

for(i=0;i<10;i++)

{

printf("%3d",a[i]);

}

}

第六部分:

能够定义和使用结构体类型变量(结构体指针变量)。

结构体变量题:

利用结构体类型编写程序,输入一名同学的英语成绩和数学成绩,然后计算两科成绩的总和。

(结构体类型可不写)

#include"stdio.h"

voidmain()

{

structscore//score是结构体类型就像int,该类型可以定义变量、指针变量

{

floateng;

floatmath;

floatsum;

}sc1,*p;//sc1是score类型的变量

p=&sc1;/*p要想调用成员,必需和结构体变量搭建关系sc1.engsc1.mathsc1.sum*/

scanf("%f%f",&sc1.eng,&sc1.math);//调用p->eng(*p).manth

p->sum=sc1.eng+(*p).math;

printf("%f",p->sum);

}

 

第七部分:

文件的打开、关闭和复制操作。

(书前三例题)

总结:

(其文件名时注意扩展名)

一、用字符型数组存放文件名,通过控制台输入文件名

1、程序的默认路径C:

\JMSOFT\CYuYan\bin(控制台标题栏写的)

2、读取的文件要放在默认的路径下,可以直接输入文件名称。

3、如果读取的文件没有存放在默认路径,需要写文件存放的全部路径,例如:

C:

\a.txt

(不好使时用试试C:

\\JMSOFT\\CYuYan\\aa.txt)

*注意存放文件名的数组的长度。

文件复制a放b里题

#include"stdio.h"

main()

{

FILE*in,*out;//文件类型的指针变量,存文件的全称

charinfile[50],outfile[50];//一个存读,一个存写注意[]内的大小20以上

scanf("%s",infile);

scanf("%s",outfile);

if((in=fopen(infile,"r"))==NULL)/*打开infileoutfile两个文件*/

{

printf("Cannotopeninfle.\n");//没开成功

exit(0);

}

if((out=fopen(outfile,"w"))==NULL)

{

printf("Cannotopenoutfile.\n");

exit(0);

}

while(!

feof(in))/*看看到没到尾部*/

fputc(fgetc(in),out);//读一个写一个

fclose(in);//关文件

fclose(out);

}

 

命令行传参

C++:

运行菜单->编译成目标文件->生成可执行文件

点击带参数运行不在默认里需要写路径

VC++的命令行传参路径:

1.先建obj

2.创建exe

3.工程菜单->设置->调试选项卡->程序变量中输入参数。

4.按!

按键运行(和c++实验系统不一样)

*在编译后运行前输入参数

*复制的文本文件应该和c的源程序文件放在同一个路径下。

#include"stdio.h"

#include"stdlib.h"

FILE*source,*target;

voidmain(intargc,char*argv[])

{

charc;

if(argc!

=3)

printf("error!

\n");

else

{

source=fopen(argv[1],"r");

target=fopen(argv[2],"w");

while(!

feof(source))/*只要不是文件尾就执行*/

{

c=getc(source);

putc(c,target);

}

fclose(source);

fclose(target);

}

}

第二次课

内存变量存最后一次值

///**/都是注释符

数组:

存相同类型的变量

结构体:

存放不同类型的变量

重点算法:

1.求和(求平均就是和/个数)

sum=0或(第一个值)

For()

{

Sum=sun+@/*@可能是变量数组结构体成员*/sum+=

}

2.求阶乘(第归调用)

P=1

For()

{

P=p*@p*=

}

3.求极值(循环嵌套分支)

Max/min=一堆数中的第一个数

for

{

If(max/mina[i])(max在尖那面,min在开口那面)

{

Max/min=a[i](把if条件复制下变

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2