C语言上机实验指导
实验一 C语言运行环境及顺序结构程序设计
实验目的
⑴熟练掌握C语言在VC6.0编程环境下的操作; ⑵运行简单的C程序,初步了解C源程序的特征; ⑶熟悉printf( )函数以及scanf( )函数的基本使用。
实验内容
C语言源程序(后缀名为.c)可以在VC6.0等很多编译系统或集成环境中编译运行,最新版2008年全国计算机等级考试(NCRE)将全面使用VC6.0,所以我们主要介绍VC6.0上机环境。
一、Microsoft Visual C++6.0(简称VC++6.0或VC6.0)的简介和安装 现在常用的VisualC++6.0版本,虽然已有公司推出汉化版,但只是把菜单汉化了,并不是真正的中文版VisualC++6.0,而且汉化的用词不准确,因此许多人都使用英文版。如果计算机中未安装VisualC++6.0,则应先安装VisualC++6.0。Visual C++是Microsoft Visual Studio的一部分,因此需要找到Visual Studio的光盘,执行其中的setup.exe,并按照屏幕上的提示进行安装即可。
安装结束后,在Windows的“开始”菜单中的“程序”子菜单中就会出现Microsoft Visual Studio子菜单。在需要使用Visual C++时,只需从电脑上选择“开始”→“程序”→Microsoft Visual Studio→VisualC++6.0(也可以从桌面快捷方式进入)即可。此时屏幕上短暂显示Visual C++6.0的版权页后,出现VisualC++6.0的主窗口,如图1-1所示。在VisualC++6.0主窗口的顶部是VisualC++的主菜单栏,其中包括9个菜单项:File(文件)、Edit(编辑)、Insert(插入)、Project(项目)、Build(构建)、Tools(工具)、Window(窗口)、Help(帮助)。以上各项在括号中的是VC6.0中文版中的中文显示,以使读者在使用VC6.0中文版时便于对照。
主窗口的左侧是项目工作区窗口,右侧是程序编辑窗口,下面是调试信息窗口。工作区窗口显示所设定的工作区的信息,程序编辑窗口用来输入和编辑源程序,调试信息窗口用来显示程序出错信息和结果有无错误(errors)或警告( warinings)。
图1-1 VisualC++6.0主窗口
欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com
C语言上机指导 睿佳教育内部资料 第2页
二、熟悉VC6.0编程环境
下面我们介绍如何在VC6.0环境中编译运行C语言的程序。首先我们介绍比较简单的情况,即程序只由一个源程序文件组成,即单文件程序。我们平时学习二级C语言一般都是单文件程序。
新建一个C语言源程序,其编译运行的步骤如下:
在Visual C++主窗口的主菜单栏中单击File(文件),在其下拉菜单中单击New(新建),如图1-2所示。
图1-2 单击New(新建)
弹出一个对话框,单击此对话框的左上角的File(文件)选项卡,选择C++Source File选项,如图1-3所示。
图1-3给程序命名
使用默认的文件存储路径则可以不必更改Location(目录)文本框,但如果想在其它地方存储源程序文件则需要在对话框右半部分的Location(目录)文本框中输入文件的存储路径,也可以单击右边的省略号(…)来选择存储的目标文件夹。
然后,我们在右上方的File(文件)文本框输入准备编辑的源程序文件的名字(如ruijia.c)。
注意:如果不写后缀,系统会默认指定为.cpp,表示要建立的是C++源程序。因此命名时要加上后缀.c。 单击OK按钮后,如图1-4所示,就可以输入程序代码了。
欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com
C语言上机指导 睿佳教育内部资料 第3页
图1-4 开始输入程序代码
我们输入的程序代码如下: #include \"stdio.h\" main( ); {
printf(Hello,Ruijia!\\n\") }
在输入过程中我们故意出了两个错误。输入完毕后,我们开始编译和调试程序,单击主菜单栏中的Build(编译),在其下拉菜单中选择Compile ruijia.c(编译ruijia.c)项,如图1-5所示。
图1-5编译程序
单击Compile ruijia.c(编译ruijia.c)命令后,屏幕上出现一个对话框,内容是:This build command requires an active project workspace.Would you like to create a default project workspace?(此编译命令要求一个有效的项目工作区,你是否同意建立一个默认的项目工作区?)(注:如果你事先已经建立了工作区,则不会出现这个对话框)单击是(Y)按钮,表示同意由系统建立默认的项目工作区,如图1-6所示。
欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com
C语言上机指导 睿佳教育内部资料 第4页
图1-6 要求建立默认的项目工作区
屏幕如果继续出现“将改动保存到E:\\ruijia\\ruijia.c”,单击是(Y)。 也可以不用选择菜单的方法,而用Ctrl+F7快捷键来完成编译。
屏幕下面的调试信息窗口指出源程序有无错误,本例显示2 error(s),0 warning(s)。我们现在开始程序的调试,发现和改正程序中的错误。编译系统能检查程序中的语法错误。语法错误分为两类:一类是致命错误,以error表示,如果程序有这类错误,就通不过编译,无法形成目标程序,更谈不上运行了;另一类是轻微错误,以warning(警告)表示,这类错误不影响生成目标程序和可执行程序,但有可能影响运行的结果,因此也应当改正,使程序既无error,又无warning。本例显示如图1-7所示。
图1-7 调试信息窗口指示程序有无错误
用鼠标单击调试信息窗口中右侧的向上箭头,可以看到出错的位置和性质,如图1-8所示。
图1-8出错位置
欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com
C语言上机指导 睿佳教育内部资料 第5页
进行改错时,双击调试信息窗口中的第1个报错行,这时在程序窗口中出现一粗箭头指向被报错的程序行(第3行),提示改错位置,如图1-9所示。
图1-9提示改错位置
将第2行末尾的分号删去。再用同样的方式找到第2个出错位置,在第4行末尾加上分号。再仔细阅读程序,应该没有问题了。
在选择compile ruijia.c项重新编译,此时编译信息告诉我们:0 error(s),0 warning(s),既没有致命错误(error),也没有警告错误(warning),编译成功。这时产生一个ruijia.obj文件,见图1-10的调试信息窗口。
图1-10 产生目标文件
在得到了目标程序后,我们就可以对程序进行连接了,选择主菜单Build(构建)→Build ruijia.exe(构建ruijia.exe),成功完成连接后,生成了一个可执行文件ruijia.exe。
以上我们是分别进行程序的编译和连接,其实我们可以选择菜单Build→Build(或按F7键)一次完成编译和连接。但对于初学者,我们还是提倡分步进行编译和连接。
我们得到了可执行文件ruijia.exe后 ,就可以直接执行ruijia.exe了。选择Build→!Execute ruijia.exe(执行 ruijia.exe)(或按Ctrl+F5运行也可)。
欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com
C语言上机指导 睿佳教育内部资料 第6页
程序执行后,屏幕切换到输出结果的窗口,显示出运行结果,如图1-13所示。可以看到Hello,Ruijia! 第2行Press any key to continue 并非程序所指定的输出,而是VC6.0在输出完运行结果后系统又自动加上的一行信息,通知用户:“按任何一键以便继续”。当你按下任何一键后,输出窗口消失,回到VC6.0主窗口,此时可以继续对源程序进行修改补充或进行其它的工作。
图1-13 显示运行结果
然后我们选择File(文件)→Close Workspace (关闭工作区),屏幕提示如图1-14所示
图 1-14 确认是否关闭所有工作区
单击是(Y)关闭工作区以结束对该程序的操作,然后又可以写新程序了。提醒:如果不关闭工作区就编写新程序,可能原来的程序还在工作区内,从而会给初学者运行程序带来麻烦。
如果我们需要打开已经保存的文件,方法如下。 方法一:在VC6.0中选择File→Open菜单或按Ctrl+O键,或单击工具栏中的Open 小图标来打开Open对话框,从中选择所需的文件,打开该文件,程序显示在编辑窗口。如果在修改后。仍保存在原来的文件中,可以选择File(文件)→Save(保存),或用Ctrl+S快捷键或单击工具栏中的小图标来保存文件。另外,如果不想将源程序存放到原先指定的文件中,可以不选Save项,而选择Save As(另存为)项,并在弹出的Save As对话框中指定文件路径和文件名。
方法二:如果后缀为.c的文件与VC6.0建立的关联,在Windows“资源管理器”或“我的电脑”中按路径找到已有的C程序名(如在E:\\RUIJIA文件夹下面找到ruijia.c)。双击此文件名,则自动进入了VC6.0集成环境,并打开了该文件,程序显示在编辑窗口。保存方法同上,不再赘述。
特别提醒:其实VC6.0系统工具栏有几个图标分别对应Compile(编译)、Build(构建)。当进行Compile(编译)后,!Execute(执行)也变得可用,我们有时可以不使用菜单中的相应选项,而单击这些工具栏图标进行操作。事实上,还有相应的快捷键Compile(Ctrl+F7)、Build(F7)和!Execute(Ctrl+F5)更加方便快捷。
三、熟悉C语言的语法结构,了解在VC6.0中成功运行简单C语言程序的过程
1.在VC中输入以下求矩形面积的程序,故意出现错误,运行并调试修正如下程序: #include \"stdio.h\" main( ) {
float a,b,area; a=1.4 b=3.5;
欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com
C语言上机指导 睿佳教育内部资料 第7页
area=abb;
printf(\" a=%f,b=%f,area=%f\\n\" ,a,b,area);
}
新建并调试运行步骤如下:
⑴在Visual C++主窗口的主菜单栏中单击File(文件),在其下拉菜单中单击New(新建),弹出一个对话框,单击此对话框的左上角的File(文件)选项卡,选择C++Source File选项。使用默认的文件存储路径则可以不必更改Location(目录)文本框,在右上方的File(文件)文本框输入准备编辑的源程序文件的名字(现输入mycl.c),当然,读者完全可以指定其它路径和文件名。单击OK按钮后,就可以输入如上程序代码了。
⑵如上代码输入后,单击主菜单栏中的Build(构建),在其下拉菜单中选择Compile mycl.c(编译mycl.c)项。 ⑶屏幕上出现一个对话框,内容是This build command requires an active project workspace.Would you like to create a default project workspace?(此编译命令要求一个有效的项目工作区,你是否同意建立一个默认的项目工作区?)(注:如果你事先已经建立了工作区,则不会出现这个对话框)单击是(Y)按钮,表示同意由系统建立默认的项目工作区,屏幕如果继续出现“将改动保存到…”单击是(Y)。
⑷屏幕下面的调试信息窗口指出源程序有2 error(s),2 warning(s)(发现a=1.2这一行掉了分号“;”)。 ⑸改正后单击Build→Compile mycl.c(发现仍有错误area=a*b写成了area=abb)。
⑹再改正后单击Build→Compile mycl.c下面的调试信息窗口显示0 error(s),0 warning(s)证明计算机已经检查不出语法错误了。
⑺运行程序(Build菜单→!Execute mycl.exe命令)。 ⑻查看结果后,按ESC返回。
⑼单击File菜单→Close Workspace命令,选择是(Y)。 ⑽编写新的程序…… 注意:
⑴在C程序中,有时可以省略#include\"stdio.h\"这个命令行,在TC2.0中运行时不会报错,但在VC6.0运行时,系统会报告警告(warning),如果不影响程序正常执行,我们可以放过这样的警告。
⑵有时我们写#include 2.在VC中输入以下的程序,运行并查看运行结果: main( ) { printf(\"Hello Ruijia! \"); } 多运行几遍,看看运行结果,将printf(\"Hello Ruijia! \")改成printf(\"Hello Ruijia!\\n\"),再运行几遍,看看运行结果,比较一下有什么不同,想想为什么。 3.输入并运行以下程序 #include \"stdio.h\" main( ) { printf(\"****************\\n\"); printf(\"*Welcome to ruijia!*\\n\"); printf(\"****************\\n\"); } 四、熟悉顺序结构,掌握printf( )和scanf( )函数 1.输入并运行如下程序 #include \"stdio.h\" main( ) { float p=3.14159; printf(\"p=%.2f\\n\printf(\"p=%.4f\\n\ 欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com C语言上机指导 睿佳教育内部资料 第8页 printf(\"p=%10.2f\\n\printf(\"p=%10.4f\\n\printf(\"p=%-10.2f\\n\ printf(\"p=%-10.4f\\n\ } 说明:分析并观察完该程序的运行结果之后,在语句float p=3.14159; 的后面加入语句 printf(\"\\n\\n\\n\"); 再次运行程序,注意观察运行结果有什么变化。 2.运行下列程序,注意观察运行结果。 #include \"stdio.h\" main( ) { int a,b; float c; scanf(\"%d%d%f\printf(\"a=%d\\n\printf(\"b=%d\\n\printf(\"c=%f\\n\} 说明:运行这个程序时,分别按下面4种格式输入数据,注意观察各自的运行结果。 第一种格式: 10 25 4.72↙ 第二种格式: 10↙ 25↙ 4.72↙ 第三种格式: 10↙ 4.72↙ 第四种格式: 10,25,4.72↙(这种输入格式是错误的,想一想错在什么地方) 3.输入如下程序: #include \"stdio.h\" void main( ) { int i,j,m,n; i=2; j=5; m=++i; n=j++; printf(\"%d,%d,%d,%d\\n\} ⑴编译和运行程序,注意i、j、m、n各变量的值。 ⑵将第6、7行改为: m=i++; n=++j; 再编译和运行,分析结果。 ⑶程序改为: #include \"stdio.h\" 欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com C语言上机指导 睿佳教育内部资料 第9页 void main( ) { int i,j; i=2; j=5; printf(\"%d,%d\\n\} 再编译和运行,分析结果。 ⑷在⑶的基础上,将printf语句改为: printf(\"%d,%d\\n\再编译和运行。 ⑸再将printf语句改为: printf(\"%d,%d,%d,%d,\\n\再编译和运行,分析结果。 4.完善程序。下面程序的功能是,根据商品的原价和折扣率,计算商品的实际售价。请在程序中的横线处填写正确的语句或表达式,使程序完整。上机调试程序,使程序的运行结果与书中的结果一致。 #include \"stdio.h\" main( ) { double cost,percent,c; printf(\"Please Enter the First Price: \"); scanf(\" \ /*答案是填“%lf”*/ printf( ); /*答案是填“''Enter the Discount: ''”*/ scanf(\" \ /*答案是填“%lf”*/ c=cost*percent; printf( ,c); /*答案是填“''Actual Price is:%f\\n''”*/ } 运行结果: Please Enter the First Price: 120↙ Enter the Discount: 0.85↙ Actual Price is: 102.000000↙ 5.输入并运行以下程序 #include \"stdio.h\" main( ) { int a; a=-1; printf(\"%d %u\\n\} 对照书本上的知识,想想为什么。 6.以下程序对一个实型数保留小数点后两位,对第三位四舍五入 #include \"stdio.h\" main( ) { double x; printf(\"Enter x: \"); scanf(\"%lf\ printf(\" (1)x=%f\\n\x=x*100; x=x+0.5; x=(int)x; x=x/100; printf(\" (2) x=%f\\n\ 欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com C语言上机指导 睿佳教育内部资料 第10页 } 试将scanf(\"%lf\改为scanf(\"%f\看看有什么变化。 编程训练 ⑴编写一个程序,输入两个整数:2000和425,求出它们的商数和余数,并进行输出。 ⑵已知:1公里=2里=1000米,请编写一个程序,输入公里数,将其换算成里和米。要求程序的输入输出形式如下: Enter Kilo:3.3↙ (以数据3.3为例) 3.30Kilo=6.60Li=3300Meter ⑶编写一个程序,将两个两位数的正整数a,b合并成一个整数放在c中,合并的方式:将a数的十位和个位依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上,如当a=55,b=13时,c=5482。 ⑷编写程序,把560min换算成用h和min表示,然后进行输出。 ⑸编写程序,读入3个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第2位数进行四舍五入,最后输出结果。 实验二 选择结构C程序设计 实验目的 ⑴掌握程序的书写风格; ⑵熟练掌握if语句的使用; ⑶熟练掌握switch语句的使用。 实验内容 一、关于程序设计风格 C语言的书写格式非常自由,例如,一行内可以写多个语句,一个语句很长时也可以分写在多行上。但是,为了提供程序的可读性,我们在书写源程序时应该尽可能地做到清晰、美观,这不仅能使程序容易读懂,更重要的是,当程序出现错误时便于查错和改错。程序的可读性也是结构化程序设计方法强调的一个要点。 要使程序清晰易读,一个较好的做法是采用缩格书写形式。下面两个程序的功能完全相同,其它语句也完全一样,只是程序的书写格式不同。试比较它们的书写格式,从中领会缩格书写的好处(注:以下程序大家不必理解,因为循环结构是下一章的内容,大家只需借此程序领略一下程序设计风格)。 程序⑴ 程序⑵ main( ) main( ) {int a,b,t; { scanf(\"%d%d\ int a,b,t; while(a!=0&&b!=0) scanf(\"%d,%d\{ while(a!=0&&b!=0) if(a欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com C语言上机指导 睿佳教育内部资料 第11页 } 程序⑴没有采用缩格的书写形式,整个程序看上去较乱,读起来也比较困难,如果要改正程序中的错误(如花括号是否匹配、错误是在循环之内还是在循环之外,等等),就更加不容易了。 程序⑵采用了缩格的书写形式,程序结构清晰,可读性好。对初学者来说,无论是在纸上书写程序,还是上机建立源程序,都应该注重程序的书写格式,这样,才能大大提高后面调试程序的效率。 二、运行下列程序,分析并观察运行结果 1.输入并运行以下程序 main( ) { int x, y; printf(\"Enter x&y:\\n\"); scanf(\"%d%d\ printf(\"x, y: %d %d\\n\ if(x>y) printf(\"x=%d\\n\ if(y>x) printf(\"y=%d\\n\ if(x= =y) printf(\"x= =y%d:\\n\} 2.输入并运行以下程序 main( ) { int a,b,c, t; printf(\"input a, b, c: \"); scanf(\"%d%d%d\ printf(\"a=%d,b=%d,c=%d\\n\ if(a>b) {t=a; a=b;b=t;} if(a>c) {t=a; a=c; c=t;} if(b>c) {t=b; b=c; c=t;} printf(\"%d, %d, %d\\n\ } 3.输入并运行以下程序 main( ) { int x,y; printf(\"Enter x&y: \"); scanf(\"%d%d\ printf(\"x,y:%d%d\\n\ if(x>y) printf(\"max=x=%d\\n\else printf(\"max=y=%d\\n\ printf(\"**end**\\n\"); } 4.输入并运行以下程序 main( ) { int n; printf(\"input n: \"); scanf(\"%d\ if(n%3= =0) printf(\"n=%d YES\\n\ else 欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com C语言上机指导 睿佳教育内部资料 第12页 printf(\"n=%d NO\\n\ } 5.输入并运行以下程序 main( ) { int g; printf(\"Enter g: \"); scanf(\"%d\ printf(\"g=%d: \ if(g>=90) printf(\"A\\n\"); else if(g>=80) printf(\"B\\n\"); else if(g>=70) printf(\"C\\n\"); else if(g>=60) printf(\"D\\n\"); else printf(\"E\\n\"); } 6.输入并运行以下程序 main( ) { int g; printf(\"Enter a mark: \"); scanf(\"%d\ printf(\"g=%d: \ switch(g/10) { case 10: case 9: printf(\"A\\n\"); break; case 8: printf(\"B\\n\"); break; case 7: printf(\"C\\n\"); break; case 6: printf(\"D\\n\"); break; case : printf(\"E\\n\"); } } 去掉每一句话后面的break语句,看看运行结果有什么不同。 编程训练 ⑴有一函数: x (x<1) y= 2x-1 (1≤x≤10) 3x-11 (x≥10) 用scanf函数输入x的值,求y值。 运行程序,输入x的值(分别为x<1、1≤x<10、x≥10三种情况),检查输出的y值是否正确。 ⑵编写程序,输入一位学生的生日(年:y0、月:m0、日:d0),并输入当前的日期(年:y1、月:m1、日:d1)。输出该学生的实际年龄。 ⑶编写程序,输入一个整数,打印出它是奇数还是偶数。 ⑷编写程序,输入a、b、c三个数,打印出最大者。 欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com C语言上机指导 睿佳教育内部资料 第13页 实验三 循环结构、字符型数据C语言程序设计 实验目的 ⑴熟练掌握while、do-while语句实现循环的方法; ⑵熟练掌握for语句实现循环的方法; ⑶熟悉掌握字符型数据。 实验内容 1.输入并运行以下程序 main( ) { int i,sum; i=1; sum=0; while(i<=100) { sum=sum+i; i++; } printf(\"sum=%d\\n\ } ⑴本程序功能是从1累加到100,要求能熟练记住。 ⑵将while(i<=100)改为while(i<100),看看运行结果有什么不同,想想为什么。 ⑶如果要求1到1000的和,本程序应该怎么改? ⑷改进程序,求1+2+……+n(n为你想输入的任意整数) ⑸再次改进程序,可以求m+(m+1)+……+n的和(m,n为任意整数)。 2.将上面的程序修改为求阶乘 main( ) { int i,sum; i=1; sum=1; while(i<=6) { sum=sum*i; i++; } printf(\"sum=%d\\n\} 比较一下,与上一题有什么不同,想想如果将6改为8将会怎么样。 3.将第1题改为用for循环来做 main( ) { int i,sum; sum=0; for(i=1;i<=100;i++) { sum=sum+i; } printf(\"sum=%d\\n\ } 4.将第2题改为用for循环来做 main( ) { int i,sum; sum=1; for(i=1;i<=6;i++) { sum=sum*i;} printf(\"sum=%d\\n\ 欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com C语言上机指导 睿佳教育内部资料 第14页 } 5.将第3题稍做修改,学会break和continue的使用 ⑴ main( ) { int i,sum; sum=0; for(i=1;i<=100;i++) { if(i= =4)break; sum=sum+i; } printf(\"sum=%d\\n\ } 将以上程序的运行结果与第3题的运行结果比较。 ⑵ main( ) { int i,sum; sum=0; for(i=1;i<=100;i++) { if(i= =4) continue; sum=sum+i; } printf(\"sum=%d\\n\} 将以上程序的运行结果与第3题的运行结果比较。 6.输入并运行以下程序 #include \"math.h\" main( ) { int s; float n,t,pi; t=1.0; pi=0; n=1.0; s=1.0; while(fabs(t)>=1e-4) { pi=pi+t; n+=2.0; s=-s; t=s/n; } pi=pi*4; printf(\"pi=%f\\n\} 本程序为求π值的程序。必须记住求绝对值的函数fabs,以及使用s=-s;来改变正负号。 7.输入并运行以下程序 main( ) { float r,s; const float pi=3.14159; for(r=0.5; r<6.0; r++) { s=pi*r*r; printf(\"r=%f s=%f\\n\ 欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com C语言上机指导 睿佳教育内部资料 第15页 } } 8.输入并运行以下程序 main( ) { int k,i,j; for(i=0;i<=2;i++) { for(k=1;k<=i;k++) printf(\" \"); for(j=0;j<=3;j++) printf(\"*\"); printf(\"\\n\"); } } 9.输入并运行以下程序 main( ) { int i,s; s=0; for(i=1;i<=10;i++) { s=s+i; if(s>5)break; printf(\"s=%d\\n\ } } 10.输入并运行以下判断一个数是否为素数的程序(备注:这个程序很重要): main( ) { int i,x; printf(\"Enter a Number:\\n\"); scanf(\"%d\ for(i=2;i if(i= =x)printf(\"YES\\n\"); else printf(\"NO\\n\"); } 想想看,如果将for(i=1;i char ch; ch=getchar( ); putchar(ch); printf(\"ASCII Code:%d\\n\} 说明:运行这个程序,输入一个字母,看看运行结果如何. ⑵ #include char c1,c2; 欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com C语言上机指导 睿佳教育内部资料 第16页 c1=getchar( ); c2=getchar( ); printf(\"c1=\\'%c\\'\\n\ /* \\'的作用是输出符号' */ (c2= ='\\n')?printf(\"c2=Enter\"):printf(\"c2=\\'%c\\' \; } 说明:运行这个程序时,分别输入下面3组数据,注意观察各自的运行结果,并思考为什么会产生这样的运行结果。 第一组数据: a↙ 第二组数据: ab↙ 第三组数据: abc↙ ⑶ #include char ch, c1,c2; printf(\"Enter an Alpha: \"); ch=getchar( ); c1=ch-1; c2=ch+1; printf(\"\\nBefore %c is %c,After it is %c\\n\} 说明:可将程序中的语句 ch=getchar( ); 改为 ch=getch( ); 看看运行结果有什么变化。 编程训练 ⑴编写一个程序,输出1~1000之内所有的非素数(注意:素数即质数)。 ⑵编写程序,求1-3+5-7+…-99+101的值。 ⑶编写程序,求e的值。e≈1+1/1!+1/2!+1/3!+1/4!+…+1/n! ①用for循环,计算前50项。 ②用while循环,要求直至最后一项的值小于10-4 ⑷编写程序,输出从公元1000年至2000年所有闰年的年号。每输出3个年号换一行。判断公元年是否为闰年的条件是: ①公元年数能被4整除,而不能被100整除。 ②公元年数能被400整除也是闰年。 ⑸猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上只剩下一个桃子了。求第一天共摘了多少个桃子。 在得到正确结果后,修改题目,改为猴子每天吃了前一天剩下的一半后,再吃两个。请修改程序并运行,检查结果是否正确。 实验四 数组和指针C程序设计 实验目的 ⑴熟练掌握一维数组和二维数组; 欢迎访问睿佳教育网站 http://www.ruijiajiaoyu.com C语言上机指导 睿佳教育内部资料 第17页 ⑵熟练掌握指针的使用; ⑶熟练掌握数组与指针的关系。 实验内容 1.输入并运行以下程序 #include \"stdio.h\" main( ) { int i,a[10]; for(i=0;i<=9;i++) a[i]=i; for(i=0;i<=9;i++) printf(\"%d\ printf(\"\\n\"); } 2.输入并运行以下程序 #include \"stdio.h\" #define M 30 main( ) { int s[M],i,k=1;
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务