当前位置:文档之家› C 语言上机操作指导

C 语言上机操作指导

C 语言上机操作指导
C 语言上机操作指导

C 语言上机操作指导

程序设计是实践性很强的过程,任何程序最终都必须在计算机上运行,以检验程序的正确与否。因此在学习程序设计中,一定要重视上机实践环节,通过上机可以加深理解C语言的有关概念,以巩固理论知识,另一方面也可以培养程序调试的能力与技巧。

1.C语言程序的上机步骤

按照C 语言语法规则而编写的C 程序称为源程序。源程序由字母、数字及其它符号等构成,在计算机内部用相应的ASCII 码表示,并保存在扩展名为“.C”的文件中。源程序是无法直接被计算机运行的,因为计算机的CPU 只能执行二进制的机器指令。这就需要把ASCII 码的源程序先翻译成机器指令,然后计算机的CPU 才能运行翻译好的程序。

源程序翻译过程由两个步骤实现:编译与连接。首先对源程序进行编译处理,即把每一条语句用若干条机器指令来实现,以生成由机器指令组成的目标程序。但目标程序还不能马上交计算机直接运行,因为在源程序中,输入、输出以及常用函数运算并不是用户自己编写的,而直接调用系统函数库中的库函数。因此,必须把“库函数”的处理过程连接到经编译生成的目标程序中,生成可执行程序,并经机器指令的地址重定位,便可由计算机运行,最终得到结果。

C语言程序的调试、运行步骤可以用图A-1 表示:

图A-1 C 语言程序的调试、运行步骤

图A-1 中,虚线表示当某一步骤出现错误时的修改路线。运行时,无论是出现编译错误、连接错误,还是运行结果不对(源程序中有语法错误或逻辑错误),都需要修改源程序,并对它重新编译、连接和运行,直至将程序调试正确为止。

除了较简单的情况,一般的程序很难一次就能做到完全正确。在上机过程中,根据出错现象找出错误并改正称为程序调试。我们要在学习程序设计过程中,逐步培养调试程序的能力,它不可能靠几句话讲清楚,要靠自己在上机中不断摸索总结,它可以说是一种经验积累。

程序中的错误大致可分为三类:

程序编译时检查出来的语法错误;

连接时出现的错误;

程序执行过程中的错误。

编译错误通常是编程者违反了C 语言的语法规则,如保留字输入错误、大括号不匹配、语句少分号等等。连接错误一般由未定义或未指明要连接的函数,或者函数调用不匹配等因素引起,对系统函数的调用必须要通过“include”说明。

对于编译连接错误,C 语言系统会提供出错信息,包括出错位置(行号)、出错提示信息。编程者可以根据这些信息,找出相应错误所在。有时系统提示的一大串错误信息,并不表示真的有这么多错误,往往是因为前面的一两个错误带来的。所以当你纠正了几个错误后,不妨再编译连接一次,然后根据最新的出错信息继续纠正。

有些程序通过了编译连接,并能够在计算机上运行,但得到的结果不正确,这类在程序执行过程中的

错误往往最难改正。错误的原因一部分是程序书写错误带来的,例如应该使用变量x 的地方写成了变量y,虽然没有语法错误,但意思完全错了;另一部分可能是程序的算法不正确,解题思路不对。还有一些程序有时计算结果正确,有时不正确,这往往是编程时,对各种情况考虑不周所致。解决运行错误的首要步骤就是错误定位,即找到出错的位置,才能予以纠正。通常我们先设法确定错误的大致位置,然后通过C 语言提供的调试工具找出真正的错误。

为了确定错误的大致位置,可以先把程序分成几大块,并在每一块的结束位置,手工计算一个或几个阶段性结果,然后用调试方式运行程序,到每一块结束时,检查程序运行的实际结果与手工计算是否一致,通过这些阶段性结果来确定各块是否正确。对于出错的程序块,可逐条仔细检查各语句,找出错误所在。如果出错块程序较长,难以一下子找出错误,可以进一步把该块细分层更小的块,按照上述步骤进一步检查。在确定了大致出错位置后,如果无法直接看出错误,可以通过单步运行相关位置的几条语句,逐条检查,一定能找出错误的语句。

当程序出现计算结果有时正确有时不正确的情况时,其原因一般是算法对各种数据处理情况考虑不全面。解决办法最好多选几组典型的输入数据进行测试,除了普通的数据外,还应包含一些边界数据和不正确的数据。比如确定正常的输入数据范围后,分别以最小值、最大值、比最小值小的值和比最大值大的值,多方面运行检查自己的程序。

下面我们分别以TC2.0 和VC++6.0 为上机平台,对C 程序编译、连接和调试作简单介绍。建议一开始学习上机时,把注意力放在程序的编译、连接和运行,已能运行为目标,而把调试部分放到学习了第5 章后再看,只有具有一定的程序语句量,调试才有作用。

2 Visual C++ 语言集成环境

C++语言是在C 语言的基础上发展而来,它增加了面向对象的编程,成为当今最流行的一种程序设计语言。Visual C++是微软公司开发的,面向Windows 编程的C++语言工具。它不仅支持C++语言的编程,也兼容C 语言的编程。由于VC++被广泛地用于各种编程,使用面很广。这里简要地介绍如何在VC++下运行C 语言程序。

2.1 启动VC++

VC++是一个庞大的语言集成工具,经安装后将占用几百兆磁盘空间。从“开始”—“程序”—“Microsoft Visual Studio 6.0”—“Microsoft Visual C++ 6.0”,可启动VC++,屏幕上将显示图A-2 所示的窗口。

图A-2 VC++窗口

2.2 新建/打开C 程序文件

选择“文件”菜单的“新建”菜单项,单击如图A-3所示的“文件”标签,选中“C++Source File”,按“确定”。然后在编辑窗口中输入程序。

如果程序已经输入过,可选择“文件”菜单的“打开”菜单项,并在查找范围中找到正确的文件夹,调入指定的程序文件。

图A-3 新建文件

2.3 程序保存

在打开的VC++界面上,可直接在编辑窗口输入程序,由于完全是Windows 界面,输入及修改可借助鼠标和菜单进行,十分方便。当输入结束后,保存文件时,因指定扩展名“.C”,否则系统将按C++扩展名“.CPP”保存。如图A-4 所示。

图A-4 指定保存文件名

2.4 执行程序

首先要生成可执行文件。使用VC++“编译”菜单中的“构件”菜单项,如图A-5 所示,也可使用快捷键【F7】。在编译连接过程中VC++将保存该新输入的程序,并生成一个同名的工作区。保存文件时须填入文件名,如“4-1.C”。假如不指定扩展名.C,VC++会把扩展名定义为.CPP,即C++程序。

图A-5 编译连接菜单

图A-6 编译连接正确

如果程序没有错误,将在图A-6 信息窗口中显示内容:0 error(s) 0 warning(s)。表示没有任何错误。有时出现几个警告性信息(warning),不影响程序执行。假如有致命性错误(error),如图A-7 所示,双击某行出错信息,程序窗口中会指示对应出错位置,根据信息窗口的提示分别予以纠正。然后用“编译”菜单中的“执行”菜单项(或快捷键【Ctrl】+【F5】)执行程序。

图A-7 编译连接出错

当运行C 程序后,VC++将自动弹出数据输入输出窗口,如图A-8 所示。按任意键将关闭该窗口

对于编译连接执行操作,VC++还提供了一组工具按钮,如图A-9 所示。

图A-9 编译连接执行工具按钮组

2.5 关闭程序工作区

当一个程序编译连接后,VC++系统自动产生相应的工作区,以完成程序的运行和调试。若想执行第二个程序时,必须关闭前一个程序的工作区,然后通过新的编译连接,产生第二个程序的工作区。否则的话运行的将一直是前一个程序。

“文件”菜单提供关闭程序工作区功能,如图A-10(a),执行“关闭工作区”菜单功能,然后在如图A-10(b)对话框中选择“否”。如果选择“是”将同时关闭源程序窗口。

图A-10 关闭程序工作区

2.6 命令行参数处理

VC++是一个基于窗口操作的C++系统,没有提供命令行参数功能。我们需要在Windows 的“MS-DOS 方式”窗口里以命令方式实现。具体步骤参考如下:

(1)正确编译连接,生成可执行程序;

(2)通过“我的电脑”或“资源管理器”找到所运行的C 源程序(设为a.c);

(3)进入debug 文件夹(它包含a.c 程序的可执行文件a.exe);

(4)执行“开始”菜单的“运行”,填入command,然后“确定”;

(5)在打开的“MS-DOS 方式”窗口中输入:a 参数1 参数2 ??,带参数运行程序。

2.7 程序调试

VC++是一个完全基于Windows 的系统,它的调试过程通过鼠标比较容易进行。

(1)程序执行到中途暂停以便观察阶段性结果:

方法一:使程序执行到光标所在的那一行暂停。

①在需暂停的行上单击鼠标,定位光标;

②如图A-11 所示,分别点击菜单“编译”—“开始调试”—“Run to Cursor”,或按【Ctrl】

+【F10】,程序将执行到光标所在行会暂停。如果把光标移动到后面的某个位置,再按【Ctrl】

+【F10】,程序将从当前的暂停点继续执行到新的光标位置,第二次暂停。

图A-11 执行到光标所在行暂停

方法二:在需暂停的行上设置断点;

①在需设置断点的行上单击鼠标,定位光标;

②按“编译微型条”中最右面的按钮,如图A-12 所示,或按【F9】。

图A-12 设置断点

被设置了断点的行前面会有一个红色圆点标志。

与TC 一样,不管是通过光标位置还是断点设置,其所在的程序行必须是程序执行的必经之路,亦即不应该是分支结构中的语句,因为该语句在程序执行中受到条件判断的限制,有可能因条件的不满足而不被执行。这时程序将一直执行到结束或下一个断点为止。

(2)设置需观察的结果变量

按照上面的操作,使程序执行到指定位置时暂停,目的是为了查看有关的中间结果。在如图A-13 中,左下角窗口中系统自动显示了有关变量的值,其中value1 和value2 的值分别是3、4,而变量i、sum 的值是不正确的,因为他们还未被赋值。图中左侧的箭头表示当前程序暂停的位置。如果还想增加观察变量,可在图中右下角的“Name”框中填入相应变量名。

图A-13 观察结果变量

(3)单步执行

当程序执行到某个位置时发现结果已经不正确了,说明在此之前肯定有错误存在。如果能确定一小段程序可能有错,先按上面步骤暂停在该小段程序的头一行,再输入若干个查看变量,然后单步执行,即一次执行一行语句,逐行检查下来,看看到底是哪一行造成结果出现错误,从而能确定错误的语句并予以纠正。

单步执行按“调试条”中“Step Over”按钮或【F8】,如图A-14 所示。如果遇到自定义函数调用,想进入函数进行单步执行,可按“Step Into”按钮或【F11】。当想结束函数的单步执行,可按

“Step Out”按钮或【Shift】+【F11】。对不是函数调用的语句来说,【F11】与【F8】作用相同。但一般对系统函数不要使用【F11】。

图A-14 单步调试

(4)断点的使用

使用断点也可以使程序暂停。但一旦设置了断点,不管你是否还需要调试程序,每次执行程序都会在断点上暂停。因此调试结束后应取消所定义的断点。方法是先把光标定位在断点所在行,再按“编译微型

条”中最右面的按钮或【F9】,该操作是一个开关,按一次是设置,按二次是取消设置。如果有多个断点想全部取消,可执行“编辑”菜单中的“断点”菜单项,屏幕上会显示“Breakpoints”窗口,如图A-15所示,窗口下方列出了所有断点,按“Remove All”按钮,将取消所有断点。

断点通常用于调试较长的程序,可以避免使用“Run to Cursor”(运行程序到光标处暂停)或【Ctrl】+【F10】功能时,经常要把光标定位到不同的地方。而对于长度为上百行的程序,要寻找某位置并不太方便。

如果一个程序设置了多个断点,按一次执行键【Ctrl】+【F5】会暂停在第一个断点,再按一次【Ctrl】+【F5】会继续执行到第二个断点暂停,依次执行下去。

图A-15 取消所有断点

(5)停止调试

使用“Debug”菜单的“Stop Debugging”菜单项,或【Shift】+【F5】键可以结束调试,从而回到正常的运行状态。

上面我们只对VC++中主要的功能作了介绍,对于其他的操作读者可以自己试验,或参考有关Visual C++手册。

《c语言》上机实验指导书

淮南师范学院 《C语言》 主编:井田

实验一、C 语言运行环境 (一)实验目的 1、了解C程序运行环境; 2、掌握运行环境的使用。 (二)实验设备 计算机;C编译环境 (三)实验要求 建立文件夹,采用你个人的学号+姓名来命名,例如:12111010101王明(四)实验内容 可以从以下题目中任意选做4——6题,也可自己命题,需注释说明功能 1、编程实现以下文字的输出。 I am a student. 2、编程实现交换两变量的值。(变量类型任意) 3、输入三个数,求三个数之和并输出。 4、输入三个数,求三个数中最大和最小的数并输出。 5、用sizeof测试并输出所用编译系统,int、long、short、char、float、double 等类型数据所占字节数。A=sizeof(int) 6、调用库函数,实现以下函数值的求取。 cos3.5678、log90、e2.567 #include #include void main() { printf("cos 3.5678 = %f\n", cos(3.5678)); printf("log 90 = %f\n", log(90)); printf("exp(2.567) = %f\n", exp(2.567)); }

实验报告包括:实验名称、实验目的、实验内容。其中实验内容包括程序和结果及结果分析。 实验二、常量的使用和变量与赋值 (一)实验目的 1、了解C 语言中常量的种类和作用; 2、了解基本类型常量在内存中的存储形式及变量的本质; 4、掌握赋值运算的意义和正确用法。 (二)实验设备 计算机;C编译环境 (三)实验要求 建立文件夹,采用你个人的学号+姓名来命名,例如:12111010101王明(四)实验内容 可以从以下题目中任意选做4——6题,也可自己命题,需注释说明功能 1、编程实现int、short、long、char、float、double等类型常量的输出。 2、编程实现int、short、long、char、float、double等类型变量的建立、赋值以及输出。 3、编程实现对int和float型数据进行格式化输入和输出。(要求使用格式修饰符) 4、编程实现对3个变量按照从大到小的排序。(变量类型任意) 5、编程实现不同类型数据进行赋值。 6、编程实现不同类型数据之间混合运算。(至少列举三种不同类型数据

西工大C语言上机考试题库

1:2:3 #include #include int main() { int i=0,j=0,k=0,a=0,b=0,c=0,l=0,m=0,n=0,d=0,p=0,q=0; for(i=1;i<=3;i++) { for(j=1;j<=9;j++) { if(i!=j) { for(k=1;k<=9;k++) { if(k!=j&&i!=k) { a=i*100+j*10+k; b=a*2; c=a*3; l=b%10,d=c%10; m=(b%100)/10,p=(c%100)/10; n=b/100,q=c/100; if(l!=0&&m!=0&&n!=0&&d!=0&&p!=0&&q!=0) if(i!=l&&i!=m&&i!=n&&j!=l&&j!=m&&j!=n&&k!=l&&k!=m&&k!=n) if(i!=d&&i!=p&&i!=q&&j!=d&&j!=p&&j!=q&&k!=d&&k!=p&&k!=q) if(l!=d&&l!=p&&l!=q&&m!=d&&m!=p&&m!=q&&n!=d&&n!=p&&n!=q) printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 8 #include"stdio.h" int main() { int a,b[10],m=0,n=0,p; int i,j,k; scanf("%d",&a); for(i=1;i<=a;i++) { m=0; n=0; p=i; for(j=0;p!=0;j++) { b[j]=p%10; p=p/10; } for(k=0;k

C语言上机练习题

上机练习题 完成 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 完成 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 完成 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。完成 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 完成 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 完成 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 完成 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 完成 8.输入1~10之间的一个数字,输出它对应的英文单词。 完成 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 完成 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 完成 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境;

C语言上机实验标准答案.doc

实验一上机操作初步 (2 学时 ) 一、实验方式:一人一机 二、实验目的: 1、熟悉 VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个 C 程序。 3、初步了解 C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息: ( 实验指导书 P79) ************************* Very Good ************************* 2、计算两个整数的和与积。( 实验指导书 P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。 ( 书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include <> void main( ) {printf( printf( printf( “ ********************\n “Very Good\n” ); “ ********************\n ” ); ” ); } 2、#include <> void main( ) {int a,b,c,d; printf( “ Please enter a,b: ”);

scanf( “%d,%d” ,&a,&b); c=a+b; d=a*b; printf( “ %d+%d=%d\n” ,a,b,c); printf( “ %d*%d=%d\n” ,a,b,d); } 3、#include <> #include <> void main( ) { double x,s; printf( “ Please input value of x: ”); scanf( “%lf ” ,&x); s=cos(x); printf( “ cos(%lf)=%lf\n ”,x,s); } 4、#include <> void main( ) { printf( “ ==================================\n”); printf( “ 1 输入数据 2 修改数据 \n ”); printf( “ 3 查询数据 4 打印数据 \n ”); printf( “ ===================================\n”); } 5、#include <> void main( ) { int x,y,t; printf( “ Please enter x and y: ”); scanf( “%d%d”,&x,&y); t=x; x=y; y=t; printf( “ After swap:x=%d,y=%d\n ” ,x,y); } 实验二简单的 C程序设计 (4 学时 ) 一、实验方式:一人一机 二、实验目的: 1、掌握 C语言的数据类型。 2、学会使用 C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。

C语言上机题库百科园第2章!南信大!

第二章 若有数学式3ae bc,则不正确的C语言表达式是() A.3*a*e/b*c B.a/b/c*e*3 C.3*a*e/b/c D.a*e/c/b*3 设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为()。 A.4 B.3 C.2 D.1 下列表达式中,不满足"当x的值为偶数时值为真,为奇数时值为假"的要求的是() A.(x/2*2-x)==0 B.!(x%2) C.!(x%2==0) D.x%2==0 表达式18/4*sqrt(4.0)/8值的数据类型为()。 A.char B.double C.不确定 D.float 在C语言中,要求运算数必须是整型的运算符是( ) A.% B./ C.++ D.!= 若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。 A.4

C.16 D.52 C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( ) A.必须为下划线 B.必须为字母 C.可以是字母、数字和下划线中的任意一种 D.必须为字母或下划线 若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( ) A.不知道a的值,不能确定 B.0 C.2 D.1 判断字符型变量c1是否为数字字符的正确表达式为( ) A.(c1>='0')&&(c1<='9') B.(c1>=0)&&(c1<=9) C.('0'>=c1)||('9'<=c1) D.'0'<=c1<='9' 下面四个选项中,均是合法的用户标识符的选项是()。 A._123 temp INT B.A p_o do C.b-a goto int D.float lao _A 以下关于C语言数据类型使用的叙述中错误的是( ) A.若要处理如"人员工资"的相关数据,单精度类型 B.若只处理"真"和"假"两种逻辑值,应使用逻辑类型 C.若要保存带有多位小数的数据,应使用双精度类型 D.若要准确无误差的表示自然数,应使用整数类型 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。 A.7 B.8 C.6 D.2 下面正确的字符常量是()

C语言上机实验

实验1目的1、熟悉VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个C程序。 3、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息:(实验指导书P79) ************************* Very Good ************************* 2、计算两个整数的和与积。(实验指导书P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。(书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 实验二 二、实验目的: 1、掌握C语言的数据类型。 2、学会使用C语言的运算符及表达式。 3、掌握不同数据类型的输入输出方法。 三、实验内容: 说明:前四题为必做题目,后两题为选做题目。 1、输入r1、r2,求出圆形垫片面积。(实验指导书P84) 2、输入华氏温度h,输出摄氏温度c。(实验指导书P85) 3、从键盘输入一个3位整数,将输出该数的逆序数。(实验指导书P89) 4、输入并运行以下程序,分析运行结果。 #include void main( ) { int i,j; i=8; j=10; printf(“%d,%d\n”,++i,++j); i=8; j=10; printf(“%d,%d\n”,i++,j++); i=8; j=10; printf(“%d,%d\n”,++i,i);

C语言上机题库

C语言习题集 3.11输入'A'~'F'中的一个字母,代表一个十六进制数,将其转换为十进制数,求该数与15的和并输出。 输入格式: B 输出格式: 26 #include int main(void) { char ch; int sum; ch=getchar(); sum=ch-'A'+10+15; printf("%d\n",sum); return 0; } 3.12输入三个整数,求其平均值。 输入格式: 3 5 7 输出格式: 5 #include int main(void) { int a,b,c,aver; scanf("%d %d %d",&a,&b,&c); aver=(a+b+c)/3; printf("%d\n",aver); return 0; } 3.13根据c=5/9*(f-32) 公式,输入华氏温度f,求摄氏温度c,结果精确到小数点后两位。 输入格式: 80.0 输出格式: 26.67 #include int main(void) { float f,c; scanf("%f",&f); c=5.0/9*(f-32); printf("%.2f\n",c); return 0; } 3.14输入一个四位正整数,求其各位数字之和。例如,1357的各位数字之和为1 + 3 + 5 + 7 = 16。 输入格式: 1357 输出格式: 16 #include int main(void) { int num; int a,b,c,d,total; scanf("%d",&num); a=num/1000; b=(num-a*1000)/100; c=(num-a*1000-b*100)/10; d=num-a*1000-b*100-c*10; total=a+b+c+d; printf("%d\n",total); return 0; } 3.15输入一大写字母,输出对应的小写字母。 输入格式: A 输出格式: a #include int main(void) { char c1,c2;

C语言上机实验指导

实验要求: 上机实验一般经历上机前的准备(编程)、上机调试运行和实验后的总结三个步骤。 1.上机前的准备 根据问题,进行分析,选择适当算法并编写程序。上机前一定要仔细检查程序(称为静态检查)直到找不到错误(包括语法和逻辑错误)。分析可能遇到的问题及解决的对策。准备几组测试程序的数据和预期的正确结果,以便发现程序中可能存在的错误。 上机前没有充分的准备,到上机时临时拼凑一个错误百出的程序,宝贵的上机时间白白浪费了;如果抄写或复制一个别人编写的程序,到头来自己一无所获。 2.上机输入和编辑程序,并调试运行程序 首先调用C语言集成开发环境,输入并编辑事先准备好的源程序;然后调用编译程序对源程序进行编译,查找语法错误,若存在语法错误,重新进入编辑环境,改正后再进行编译,直到通过编译,得到目标程序(扩展名为OBJ)。下一步是调用连接程序,产生可执行程序(扩展名为EXE)。使用预先准备的测试数据运行程序,观察是否得到预期的正确结果。若有问题,则仔细调试,排除各种错误,直到得到正确结果。在调试过程中,要充分利用C 语言集成开发环境提供的调试手段和工具,例如单步跟踪、设置断点、监视变量值的变化等。整个过程应自己独立完成。不要一点小问题就找老师,学会独立思考,勤于分析,通过自己实践得到的经验用起来更加得心应手。 3.整理上机实验结果,写出实验报告 实验结束后,要整理实验结果并认真分析和总结,根据教师要求写出实验报告。 实验报告一般包括如下内容: ⑴实验内容 实验题目与要求。 ⑵算法说明 用文字或流程图说明。 ⑶程序清单 ⑷运行结果 原始数据、相应的运行结果和必要的说明。 ⑸分析与思考 调试过程及调试中遇到的问题及解决办法;调试程序的心得与体会;其他算法的存在与实践等。若最终未完成调试,要认真找出错误并分析原因等。 实验一C语言运行环境 一、实验目的 1.了解TC环境的组成。 2.学习TC环境的使用方法。 3.了解C语言程序从编辑、编译、连接到运行并得到运行结果的过程。 二、实验内容 1.了解TC环境的组成。 开机后进入WINDOWS系统的"资源管理器",找到TC环境所在的文件夹。查看在TC目录下的以字母TC开头的文件,是否包括了TC.EXE、TCC.EXE、TLINK.EXE、TCCONFIG.TC等文件;查看INCLUDE、LIB两个子目录下的文件。复习这些文件夹的作

C语言程序设计_上机实验指导与习题_第三版_(陈湘骥_编著_著)_华南农业大学_参考答案

C语言程序设计上机实验指导与习题 参考答案 (仅供教师内部参考) 华南农业大学

目录 上机实验 (1) 实验 1 C语言程序初步 (1) 一、实验目的 (1) 二、实验内容 (1) 实验2基本数据类型、运算和表达式 (3) 一、实验目的 (3) 二、实验内容 (3) 实验3基本输入与输出 (5) 一、实验目的 (5) 二、实验内容 (5) 实验4选择结构程序设计 (4) 一、实验目的 (4) 二、实验内容 (4) 实验5循环结构程序设计(一) (9) 一、实验目的 (9) 二、实验内容 (9) 实验6循环结构程序设计(二) (15) 一、实验目的 (15) 二、实验内容 (15) 实验7数组 (17) 一、实验目的 (17) 二、实验内容 (17) 实验8字符数组的应用 (22) 一、实验目的 (22) 二、实验内容 (22) 实验9函数的基本应用 (24) 一、实验目的 (24) 二、实验内容 (24) 实验10指针与结构体 (26) 一、实验目的 (26) 二、实验内容 (26) *实验11链表 (29) 一、实验目的 (29) 二、实验内容 (29) *实验12文件 (32) 一、实验目的 (32) 二、实验内容 (32)

上机实验 实验 1 C语言程序初步 一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。 (2)了解在该系统上如何编辑、编译、连接和运行一个C程序。 (3)通过运行简单的C程序,初步了解C程序的特点。 (4)在教师的指导下,学会使用JudgeOnline实验系统。 二、实验内容 1. 运行第一个 C 程序 [题目:The first C Program] 将下列程序输入 TC(或 VC++),编译、连接和运行该程序。 void main() { printf("The first C Program\n"); } [具体操作步骤] 以 Turbo C 上的操作为例 (1)Windows 进入后,按照第一章中介绍的方法,进入 Turbo C。 (2)在编辑窗口中输入程序。 (3)保存程序,取名为 a1.c。 (4)按照第一章中介绍的方法,编译、连接和运行程序。 2.在JudgeOnline系统中提交实现了计算a+b功能的程序 [题目 1001:计算 a+b] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下, void main() { int a, b; scanf("%d%d", &a, &b); 1

c语言上机题库 (1)

1、给定n 个数据, 求最小值出现的位置(如果最小值 出现多次,求出第一次出现的位置即可)。 2、编写程序求无理数e 的值并输出。计算公式为: e=1+1/1!+1/2!+1/3!+......+1/n! 当1/n!<0.000001时e=2.718282。 3、求一批数中最大值和最小值的积。 4、某一正数的值保留2位小数,对第三位进行四舍 五入。 5、从键盘上输入任意实数x,求出其所对应的函数值。 z=(x-4)的二次幂(x>4) z=x 的八次幂(x>-4) z=z=4/(x*(x+1))(x>-10) z=|x|+20(其他) 6、求出N ×M 整型数组的最大元素及其所在的行坐标 及列坐标(如果最大元素不唯一,选择位置在最前面 的一个)。 例如:输入的数组为: 1 2 3 4 15 6 12 18 9 10 11 2 求出的最大数为18,行坐标为2,列坐标为1。 7、求一个n 位自然数的各位数字的积。(n 是小于10的 自然数) 8、计算n 门课程的平均值,计算结果作为函数值返回。 例如:若有5门课程的成绩是:92,76,69,58,88, 则函数的值为76.599998。 9、求一批数中小于平均值的数的个数。 10、编写函数判断一个整数m 的各位数字之和能否被7整除, 可以被7整除则返回1,否则返回0。调用该函数找出 100~200之间满足条件的所有数。

11、请编一个函数void fun(int tt[M][N],int pp[N]), tt指向一个M行N列的二维数组,求出二维数组每列 中最大元素,并依次放入pp所指一维数组中。二维 数组中的数已在主函数中赋予。 12、编写函数fun用比较法对主程序中用户输入的具有10 个数据的数组a按由大到小排序,并在主程序中输出 排序结果。 13、编写main程序调用函数fact求解从m个元素选n 个元 素的组合数的个数。计算公式是:组合数=m!/(n!.(m-n)!)。 要求:m不能小于n,否则应有容错处理。 说明:函数fact(x)的功能是求x!。 14、找出一批正整数中的最大的偶数。 15、实现两个整数的交换。 例如:给a和b分别输入:60和65,输入为: a=65 b=60 16、将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 17、求一个四位数的各位数字的立方和。 18、求一组数中大于平均值的数的个数。 例如:给定的一组数为1,3,6,9,4,23,35,67,12,88时,函数值为3。 19、对任意输入的x,用下式计算并输出y 的值。 5 x<10 y= 0 x=10 -5 x>10 20、求给定正整数m以内的素数之和。 例如:当m=20时,函数值为77。 21、判断整数x是否是同构数。若是同构数,函数返回1; 否则返回0。x的值由主函数从键盘读入,要求不大

C语言上机练习题

上机练习题 1.输入一个不超过五位的正整数,输出其逆数。例如输入12345,输出应为54321。 2.计算1+2+3…+n的值,n是从键盘输入的自然数。 3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。 4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中 各元素的值。 5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面 值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。 6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。 例如若n为1000时,函数值应为:s=153.909064。 7.一辆卡车违反交通规则,撞人后逃跑。现场有三人目击事件,但都没有记住车号,只记下 车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索找出车号。 8.输入1~10之间的一个数字,输出它对应的英文单词。 9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些? 10.用自然语言描述程序逻辑如下,试写程序。 ①设置环境; ②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0; ③i=1; ④如果i≤100,则转⑤,否则转⑧; ⑤令s=0,求前i个自然数之和,并放于变量s之中; ⑥sum=sum+s; ⑦i增加1,转④; ⑧输出和sum,结束。 11.用自然语言描述的程序逻辑为: ①设置环境; ②定义变量i、flag和password,并令flag=0,i=0; ③用户回答口令,将其赋于password变量; ④口令正确?如果是,则flag=1,转⑥。否则转⑤; ⑤回答三次口令了吗?如果没有,计数器加1后(i++),转③,否则转⑥; ⑥根据flag之值输出相应信息。 12.用自然语言描述的程序逻辑如下: ①设置环境; ②定义变量digit、x、y分别表示原始数、原始数的个位数和逆数; ③输入原始正整数x; ④从x中分解出个位数字digit; ⑤合并个位digit至逆数y中; ⑥原始数x缩小10倍:x=x/10; ⑦如果x非零,则转④; ⑧输出逆数y,结束 13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构 成)。 14.输入10个数,分别统计其中正数、负数、零的个数。 15.先随机产生N个三位自然数输出,然后再输出其中同时是3、5、7倍数的数。(设N为100)

大一C语言上机实验试题和答案

实验一上机操作初步(2学时) 一、实验方式:一人一机 二、实验目的: 1、熟悉VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个C程序。 3、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息:(实验指导书P79) ************************* Very Good ************************* 2、计算两个整数的和与积。(实验指导书P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。(书 P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 五、实验调试记录: 六、参考答案: 1、#include void main( ) { printf(“********************\n”); printf(“ Very Good\n”); printf(“********************\n”); } 2、#include void main( ) { int a,b,c,d; printf(“Please enter a,b:”); scanf(“%d,%d”,&a,&b); c=a+b; d=a*b; printf(“%d+%d=%d\n”,a,b,c); printf(“%d*%d=%d\n”,a,b,d);

C语言上机实验(第四版)参考答案

C语言上机实验(第四版)参考答案 C语言程序设计上机实验指导与习题 参考答案(第四版) (学生改编) 实验 1 C语言程序初步一、实验目的 (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。(2)了解在该系统上如何编辑、编译、连接和运行一个C程序。(3)通过运行简 单的C程序,初步了解C程序的特点。(4)在教师的指导下,学会使用在线 评判系统。 二、实验内容 1. 运行第一个C程序 [题目:The first C Program] 将下列程序输入visual c++ ,编译、连接和运行该程序。 #include\main() { printf(\ } [具体操作步骤] (1)在编辑窗口中输入程序。 (2)保存程序,取名为 a1.c。 (3)按照第一章中介绍的方法,编译、连接和运行程序。 (4)按照第三章介绍的方法,将代码提交到在线评判系统,系统返回“通过”,则该题完成。 2. 在在线评判系统中提交实现了计算a+b功能的程序 [题目1001:计算a+b] 由键盘输入两个整数,计算并输出两个整数的和。实现该功能的程序如下, #include \main() { int a, b;

scanf(\ printf(\ } (1)在程序编辑窗口中输入程序。(2)保存程序,取名为 a2.c。 (3)按照前二章中介绍的方法,编译、连接和运行程序。(4)在程序运行 过程中,输入 15 30↙ (↙表示输入回车符) (5)如果看到如下输出结果,则表明15+30 的结果正确,如果得不到如下结 果,则需检查并更正程序。 45 (6)按照第三章中介绍的方法进入在线评判系统。 (7)显示题目列表,点击题号为1001,题名为“计算a+b”的题目。 (8)查看完题目要求后,点击页面下端的“sumbit”,参照第二章提交程序 的方法提交程序a2.c。 (9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检 查程序是否正确。 3 实验 2 基本数据类型、运算和表达式一、实验目的 (1)掌握C语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它 们赋值的方法。(2)掌握不同的类型数据之间赋值的规律。 (3)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是 自加(++)和自减(--)运算符的使用。 (4)进一步熟悉C程序的编辑、编译、连接和运行的过程。二、实验内容 1. 变量的定义 [题目 1117:变量定义,按要求完成程序] 下面给出一个可以运行的程序,但是缺少部分语句,请按右边的提示补充完整 缺少的语句。 #include \ main() { int a, b; /*定义整型变量 a和 b*/ int i, j; /*定义实型变量i和 j*/ a=5; b=6; i=3.14; j=i*a*b; printf(\ } [具体操作步骤]

c语言上机考试训练题库及答案

上机考试习题集 1.编写程序,一次输入5个学生的3门课成绩,每输入一个学生的3门成绩后,立即统计并输出该学生的总分和平均分。 #include "stdio.h" void main() { int score[5][3], i,j; float sum[5],average[5]; printf("请分别输入三个学生的成绩:\n"); for(i=0;i<5;i++) { sum[i]=0; for(j=0;j<3;j++) {scanf("%d",&score[i][j]); average[i]=0; sum[i]+=score[i][j]; average[i]=sum[i]/5; } } for(i=0;i<5;i++) printf("第%d个学生的总分为:%f,平均成绩为:%f\n",i+1,sum[i],average[i]); } 2 、编写程序,提示用户从键盘输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后在显示器上输出此数,以便验证处理是否正确。 #include #include double rounding(double x,int n); void main() { double x,x1; int n; printf("请输入一个浮点数:\n"); scanf("%lf",&x); printf("请输入给定的小数位:\n"); scanf("%d",&n); x1=rounding(x,n); printf("圆整后的数为:\n%.*lf\n",n,x1); } double rounding(double x,int n)

C语言程序设计实验指导书

C 语言程序设计 实 验 指 导 书 电子工程学院 2012-2

实验一 C程序的运行环境和编辑、调试、运行简单C程序 一、实验目的 1.了解 Turbo C 的基本操作方法,学会独立使用该系统。 2.掌握在该系统上如何编辑、编译、运行一个C程序。 二、实验内容及步骤 1.进入C的工作环境 1)在Windouws环境下:“开始”→“程序”→“MS-DOS” 屏幕上进入 MS-DOS窗口 2)在Dos环境下:键入命令c:\> cd c:\tc↙ c:\tc> tc↙ 屏幕上出现Turbo C的工作环境 2.熟悉Turbo C的工作环境 了解Edit窗口与Message窗口 了解主菜单的8个菜单项 File Edit Compile Project Option Debug break/watch 3.输入并运行一个简单的程序 File→New 输入源程序:

main() { printf("This is a C program.\n"); printf("OK\n"); } 按F9进行编译和连接,观察屏幕上显示的编译信息。如果出现出错信息,则应找出原因并改正。 按Run→Run(或按Ctrl+F9) 编译、连接、运行一起完成。 按Run→User screen(或按Alt+F5) 察看运行结果。 按任一键从用户屏切换回TC窗口。 4.输入并编辑第二个C程序 File→New 输入源程序: main ( ) { int a,b,sum; a=123; b=456; sum=a+b; printf("sum is %d\n", sum); }

编辑、运行、调试该程序。 5.编辑、运行、调试自己编写的程序(至少一个程序) 如:输入上底、下底和高,计算梯形面积。 观察屏幕上显示的编译信息。如果出现出错信息,则应找出原因并改正。 用File→Save (或F2)保存程序(程序名为a1.c) 三、实验报告要求 写明: 1.实验目的 2.实验内容与步骤 3.编写的程序(题目,经调试、运行后正确的程序) 4.编译过程中出现的错误信息。 5.总结讨论本次实验的结果和收获。

C语言上机练习题

C语言上机练习题 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

1.阅读以下程序,说出其功能和运算结果。 #include<> intmain() { intn; intfactorial(intn); scanf("%d",&n); printf("%d\n",factorial(n)); return0; } intfactorial(intn) { inti,fact=1; for(i=1;i<=n;i++) fact=fact*i; returnfact; } 若输入5↙ 2.改正下列程序中的错误,在屏幕上显示“WelcometoYou!”。 #include<> intmian() { printf("WelcometoYou!\n") return0; } 3.若输入4,程序运行结果为【1】,若输入-4,运行结果为【2】,若输入10,运行结果为【3】。 #include<> main() { intx,y; scanf("%d",&x); if(x<1) {y=x;

printf("x=%d,y=x=%d\n",x,y); } elseif(x<10) {y=2*x-1; printf("x=%d,y=2*x-1=%d\n",x,y); } else {y=3*x-11; printf("x=%d,y=3*x-11=%d\n",x,y); } } 4.当输入19,2,21时下列程序运行的结果是()。 #include<> main() {inta,b,c,max; printf("pleasescanthreenumbera,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max

C语言程序设计习题答案与上机指导实验要求

C语言程序设计习题答案与上机指导实验要求 课堂实验应与课堂讲授内容同步,按教材章节编制实验单元。学生按照“理解程序”→“模仿程序”→“改写程序”→“编写程序”四步曲,循序渐进地学习,逐步提高学生的编程能力。 课程实验包括程序跟踪调试、程序阅读、程序改错、程序填空、程序编写多种类型(在程序阅读题中引入程序的跟踪调试,因此程序阅读题难度不大,这类题一般在前章:3~7章),可从多角度培养学生的编程能力。每章实验有基本类实验(2~3个)和提高类实验(1~2个),基本类实验要求每个同学必须完成,提高类实验学生可根据自己的能力有选择性的完成,完成者该实验可加分。每一章实验可按以下要求编写(以第X章为例): 如 第X章数据组织——数组 1.1 知识要点 数组是基本的构造类型,是一组具有相同类型数据的有序集合,数组中的元素在内存中连续存放。用数组名和下标可以唯一地确定数组元素。 以下略 1.2 实验名称螺旋方阵(提高类) 1)实验目的 (1)熟练理解和掌握二维数组的使用

(2)熟练理解循环嵌套的含义与使用方法 2)实验任务 (1)实验内容 如图所示,已知一个N*N(3≤N≤25)的方阵,从左上角第1个格式子开始,按顺时针螺旋方向将1,2,3…的数据布满整个方阵。 N=4时的方阵 (2) 实验要求 输入N,产生N阶螺旋方阵中的所有数据,保存到二维数组,并输出该螺旋方阵。 测试用例:

(3)实验要点分析 ①问题分析 螺旋方阵数据的产生有一定规律。从外到内,可以以圈为单位生成数据。比如N=4时,刚好就是两圈数据: 第1圈: 1 2 3 4 12 5 11 6 10 9 8 7 第2圈 13 14 16 15

2020年全国计算机等级考试二级c语言上机精选题库(共80套)

2020年全国计算机等级考试二级c语言上机精选题库(共80套) 第1套试题 第一题:给定程序中,函数fun的功能是:计算N*N矩阵的主对角元素和反向对角元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 #include #define N 4 fun(int t[][N], int n) { int i, sum; ___1___; for (i=0; i

第二题:下列给定程序中,函数fun 的功能是:根据整型参n ,计算如下公式的值。 ,11=A ,1112A +=A ,1123A +=A … ,1 11-A +=A n n 例如,若n=10,则应输出0.617978。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main 函数,不得增行或删行,也不要更改程序的结构! #include #include /********found********/ fun(int n) { double A = 1; int i; /********found********/ for(i=2;i #include void fun (int a, int b, long *c) { }

C语言程序设计上机实验指导

C语言程序设计上机实验指导

目录 实验一 c语言程序的开发环境 (1) 实验二数据类型描述 (3) 实验三顺序结构 (6) 实验四选择结构 (9) 实验五循环结构 (12) 实验六函数与编译预处理 (16) 实验七数组 (19) 实验八指针 (23) 实验九结构体数据类型与链表 (25) 实验十共用体与枚举类型 (27) 实验十一文件 (29)

实验一 c语言程序的开发环境 一、目的、要求 1、使学生了解c语言不同于其他语言的特点。 2、掌握在c语言的开发环境中如何实现简单程序的编辑、运行,熟悉c程序的 开发环境及上机步骤。 3、通过简单的c程序,熟悉c语言程序的结构特点,掌握其基本结构框架。 4、通过实践,掌握c源程序的书写格式。 二、预习内容 1、熟悉Turbo c的集成开发环境,掌握启动、退出、编辑运行的操作。 2、了解基本命令及函数:include,include,main(), printf(),scanf()等。 三、上机内容 1、输入下列程序,记录在Turbo c 下的操作方法。 #include main() { printf(“I am a student!”); } 环境的启动操作: 程序的编译方法:快捷键是;菜单操作是 程序的保存方法:快捷键是;菜单操作是 程序的运行方法:快捷键是;菜单操作是 运行结构的查看:快捷键是;菜单操作是 环境的退出操作:快捷键是;菜单操作是 2、预测结果并上机验证 #include main() { printf(“************\n”); printf(“I am a student!\n”); printf(“************\n”); } 预测的结果是:上机验证的结果是:

相关主题
文本预览
相关文档 最新文档