C语言程序设计实验指导书_第1页
C语言程序设计实验指导书_第2页
C语言程序设计实验指导书_第3页
C语言程序设计实验指导书_第4页
C语言程序设计实验指导书_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C 程序设计 I 实验指导书信息工程学院计算机系目录C 程序设计实验要求 实验一 简单程序设计 .测试验证结果温度转换 计算书费 时间相加 1010101110121013实验二 分支结构程序设计 2233410201021函数值计算 颠倒整数 整数排序 自整除数 选作题: Fibonacci Again102210231024实验三 循环结构程序设计 1030 整数的立方和 1031 求累加和 1032 与 7 无关的数 1033 选作题:细菌繁殖 实验四 数组应用 1040 杨辉三角形 1041 矩阵乘法 1042 学生成绩管理 1043 选作题:大整数乘法 实验五 函数应用 1050 各

2、类型变量在函数调用过程中的变化 1051 最大公约数和最小公倍数 1052 进制转换 1053 字符串替换 1054 排序 1055 选作题:数制转换 实验六 综合应用 5667788910601061106210631064附录 同一天生日 忽略大小写比较字符串 不吉利日期 统计字符数 选作题: Digital Roots 9 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。 错误!未

3、定义书签。 错误!未定义书签。 错误!未定义书签。 19一、Visual C+调试环境的使用二、TC环境下的使用三、实验报告要求 四、C程序设计常见错误及解决方案 19 错误!未定义书签。 错误!未定义书签。 错误!未定义书签。C程序设计实验要求课程实验是 C 程序设计课程的一个重要的实践环节,要求每个同学按以下要求独立完成每次实验,每次 上机前必须编写完实验要求的所有题目,并按输出格式写出程序的运行结果,上机时调试程序并验证结果的 正确性,若与运行结果不符,则要分析原因,上机时间由课内和课外上机两部分,以下时间为课内上机时间。实验一 简单程序设计目的及要求:1. 熟练掌握 C 开发环境的窗口

4、、菜单命令及相应的命令 , 并掌握在开发环境下如何编辑、编译、连接、运 行一个C程序,以及如何保存和修改 C语言的源程序。2. 通过运行一个简单的 C 程序过程,逐步了解 C 程序的基本结构及特点。3. 掌握C语言的基本数据类型,熟悉它们的使用方法及定义方式,了解各类型数据输出时所用的格式转 换符 ,熟悉各种运算符和表达式的使用特点。4. 熟练掌握C中赋值运算的使用。1010 测试验证结果习题。1011 温度转换Description华氏温度和摄氏温度的转换公式为C = 59 * ( F -32 )其中:F为华氏温度C摄氏温度Input一个整数表示华氏温度。Output输出一行。该行包含一个浮

5、点数C,表示转换的摄氏温度。精确到小数点后两位。Sample Input93Sample Output1012 计算书费Description下面是一个图书的单价表: 计算概论 元/ 本 数据结构与算法元 / 本数字逻辑 元 / 本C+程序设计教程 78元/本 人工智能 35 元/本 计算机体系结构元/本编译原理 元/本 操作系统 43 元/本 计算机网络 56 元/本JAVA程序设计65元/本给定每种图书购买的数量,编程计算应付的总费用。Input输入每行包含一组 10 个整数 (大于等于 0 ,小于等于 100),分别表示购买的计算概论 、数据结构与算法、数字逻辑、C+程序设计教程、人工智

6、能、计算机体系结构、编译原理、操作系统、计算机网络、JAVA程序设计的数量(以本为单位)。每两个整数用一个空格分开。Output输出一行。该行包含一个浮点数f,表示应付的总费用。精确到小数点后两位。可用 printf(%.2fn, sum) 来输出 sum 的值,并精确到小数点后两位。Sample Input1 5 8 10 5 1 1 2 3 4Sample Output1013 时间相加Description用整数表示时间,如:1050表示 10点 50分,2010表示 20点 10分。现输入两个时间,求两个时间的和。例: 2030 + 850 = 5201055 + 850 = 1945

7、不是 2880不是 1905InputSample Input#Sample Output49两行数据,每行一个整数。Output输出相加后的时间整数。Sample Input2030850Sample Output520实验分支结构程序设计目的及要求:1. 掌握 C 程序设计的基本语句表达方式及基本语句结构的方法。2. 掌握 C 语言中输入、输出函数的基本功能。3. 掌握顺序和分支结构程序设计的方法。4. 能独立编写顺序及分支结构的C 程序。1020 函数值计算Description有一个函数写一程序,输入y = x= 2x - 1= 3x - 11x 值,计算 y 值。( x 1 )(1

8、= x = 10 )Input一个整数 x。Output输出函数值 y。1021 颠倒整数Description给定一个最多 4 位的正整数,将其颠倒过来输出。 例如:输入 123,则输出 321。Input一个小于 10000 的正整数。Output颠倒后整数。Sample Input1234Sample Output43211022 整数排序Description对给定的 4 个整数进行排序,将由小到大的顺序输出。Input一行中有 4 个整数,整数之间用空格分隔。Output按升序输出,各整数之间用一个空格分隔。Sample Input25 314 18 27Sample Output1

9、8 25 27 314Sample OutputSample Input1023 自整除数Description对一个整数n,如果其各个位数的数字相加得到的数m能整除n,则称n为自整除数例如21,21%(2+1)=0,所以 21是自整除数。Input一个整数 nOutput若n为自整除数,则输出 TRUE否则输出FALSESample Input42Sample OutputTRUE1024 选作题: Fibonacci AgainProblem DescriptionThere are another kind of Fibonacci numbers: F(0) = 7, F(1) = 1

10、1, F(n) = F(n-1) + F(n-2) (n=2).InputInput an integer n. (n 1,000,000).OutputPrint the word yes if 3 divide evenly into F(n).Print the word no if not.Sample InputnoSam pie Out putyes实验三循环结构程序设计目的及要求:1. 熟练掌握循环语句中 for语句、while语句和do while语句使用方法。2. 掌握编写循环结构程序的方法。1030整数的立方和Descri ptio n给定一个正整数 k (1k10),求1

11、至U k的立方和 m。即m=1+2*2*2+k*k*k。Inp ut输入只有一行,该行包含一个正整数k。Out put输出只有一行,该行包含 1到k的立方和。Sample InputSam pie Out put2251031求累加和Descri ptio n有一分数序列:2 , 3 , 5 , 8 , 13 , 21 1235813求出该序列的前 n项之和。Input输入只有一行,该行包含一个正整数n ( n 200 ) 。Output序列前 n 项之和(保留两位小数)Sample InputSample Output1032 与 7 无关的数Description一个正整数 ,如果它能被

12、7 整除,或者它的十进制表示中某位数字为7,则称其为与 7 相关的数。 现求所有小于等于n(n100)的与7无关的正整数的平方和.Input输入为一行 ,正整数 n,(n100) 。Output输出小于等于 n 的与 7 无关的正整数的平方和Sample Input21Sample Output23361033 选作题:细菌繁殖Description 一种细菌的繁殖速度是每天成倍增长。例如:第一天有 10 个,第二天就变成 20 个,第三天变成 40 个, 第四天变成80个,。现在给出第一天的日期和细菌数目,要你写程序求出到某一天的时候,细菌的数目。Input一行有 5个整数, 整数之间用一个

13、空格隔开。 第一个数表示第一天的月份, 第二个数表示第一天的日期, 第三个数表示第一天细菌的数目,第四个数表示要求的那一天的月份,第五个数表示要求的那一天的日期。 已知第一天和要求的一天在同一年并且该年不是闰年,要求的一天一定在第一天之后。数据保证要求的一天的细菌数目在长整数( long )范围内。Output对于每一组测试数据,输出一行,该行包含一个整数,为要求的一天的细菌数。Sample Input2 28 10 3 2Sample Output40实验四 数组应用目的及要求:1. 理解并掌握一维数组、二维数组的定义及引用。2. 熟练掌握利用数组处理数据的方法。3. 掌握字符串数组和字符串

14、的使用方法及常用字符串函数在程序中的使用。1040 杨辉三角形Description打印出杨辉三角形的前 n 行。Input输入一个正整数n ( n 20 )。Output杨辉三角形。Sample InputSample Output1041 矩阵乘法Description已知矩阵 A(mxn)和矩阵B(nxp),求C = A X B。Input第一行三个整数为m、n、p( m、n、p均小于10),从第二行开始为m行n列A矩阵,然后为n行p列的 B 矩阵。所有数据之间均由一个空格分隔。Output输出m行p列的C矩阵,所有数据之间均由一个空格分隔。Sample Input2 3 41 0 33

15、 4 01 0 2 12 3 4 52 1 1 5Sample Output7 3 5 1611 12 22 231042 学生成绩管理Description学生信息包括:学号、姓名、数学成绩、英语成绩、计算机成绩。共有N个人(N=10,可在程序内部定义,如用 #define N 10)的信息,要求计算每人的总成绩,并按 总成绩由高到低的顺序输出所有人的信息。最后输出各门课程的平均成绩(保留2 位小数)。Input为调试方便, N 和学生信息可以在程序内部以初值的方式赋值给对应变量。Output见下例。Sample InputSample Output1000Name Maths zhang

16、90 wang 88 li 78 80English808582No100110031002average of Maths:Computer Total88 25880 253240average of English: average of Computer :1043 选作题:大整数乘法Description求两个不超过 200 位的非负整数的积。Input0。有两行,每行是一个不超过 200 位的非负整数,没有多余的前导Output一行,即相乘后的结果。结果里不能有多余的前导0,即如果结果是 342,那么就不能输出为 0342。Sample InputSample Output实验五

17、函数应用目的及要求:1. 理解函数的定义及函数的调用过程(函数的调用格式、调用方式及被调用函数的使用说明)2. 掌握局部变量、全局变量的说明形式和引用方法。3. 掌握函数的嵌套与递归调用的全过程。1050 各类型变量在函数调用过程中的变化Description采用单步运行方式运行下面程序,观察各变量(静态局部变量及自动变量)在函数调用过程中的变化。main()int a=3,i;for(i=0;i3;i+)printf( “ P=n%”d,p(a);int p(a)int a; static int c=1;auto int b=0;b=b+1;c=c+1;return(a+b+c);1051

18、 最大公约数和最小公倍数Description20、12对给定的两组数(每组包括 2 个整数),分别计算出两组数的最大公约数和最小公倍数的和。如:为第一组, 28、7 为第二组。第一组数的最大公约数为4,最小公倍数为 60;第二组数的最大公约数为 7,最小公倍数为 28 ;所以两组数的最大公约数之和为11,两组数的最小公倍数之和为 88 。Input输入包括两行,每行为一组,每组两个整数。Output输出包括两行,第一行为两组数的最大公约数之和,第二行为两组数的最小公倍数之和。Sample Input20 1228 7Sample Output11881052 进制转换Description对

19、输入的两十六进制数 (两个字符串) 由函数完成。例如:输入 3a1、 80,由于 1057。,将其转换成十进制后再求和。 要求十六进制到十进制的转换功能3a1 转换为十进制后为 929, 80 转换为十进制后为 128,所以和为Input输入包括两行,每行为一个十六进制数。Output输出包括一行为两数之和的十进制表示。Sample Input3a180Sample Output10571053 字符串替换Description将一段英文文章中字符串用给定的字符串替换。Input输入包括多行,第一行为一段英文文章(长度不超过80 )。以后每行包括 2 个字符串 (长度不超过 20),之间由空格

20、分隔,第一个串为原串,第二个串为替换串。当遇到 0 0 两个串时表示输入结束,并且此行不需 处理。Output输出替换后的文章。Sample Inputhello how are yes. h Hes ou0 0Sample OutputHello How are you.1054 排序Description对输入的 10 个整数进行排序,按从小到大的顺序输出。要求排序过程由函数完成。Input输入包括一行,共 10 个整数,各数之间由空格分割。Output在同一行上输出排好序的10个数,各数之间由空格分割。Sample Input25 48 13 27 68 76 43 20 9 65Sam

21、ple Output9 13 20 25 27 43 48 65 68 761055 选作题:数制转换Description求任意两个不同进制非负整数的转换( 进制的表示符号为( 0, 1 , ., 9,Input 输入只有一行,包含三个整数 b进制整数。a, b是十进制整数,2进制16进制),所给整数在long所能表达的范围之内。不同 A, B, C, D, E, F)oa, n, bo a表示其后的n是a进制整数,b表示欲将a进制整数n转换成2 = a, b = 16。Output输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0, 1,.9,A,B,C,

22、D,E,F)。Sample Input15 AAB3 7Sample Output210306Hint用字符串表示不同进制的整数。实验六 综合应用目的及要求:1. 掌握程序的基本方法和技巧,能够独立完成较复杂程序的设计。2. 掌握程序的调试方法,熟悉各种类型错误的改正方法。1060 同一天生日Description在一个有 200 人的大班级中,存在两个人生日相同的概率非常大,现给出每个学生的学号,出生月日。 试找出所有生日相同的学生。Input第一行为整数n,表示有n个学生,n=200。11 位)和出生月 (1=m=12)此后每行包含一个字符串和两个整数,分别表示学生的学号(字符串长度为日(

23、i=d=31)。学号、月、日之间用一个空格分隔。Output对每组生日相同的学生,输出一行,其中前两个数字表示月和日,后面跟着所有在当天出生的学生的学 号,数字、学号之间都用一个空格分隔。对所有的输出,要求按日期从前到后的顺序输出。对生日相同的学号,按输入的顺序输出。Sample Input6005 3 15015 4 5018 3 15008 4 5011 4 5021 8 10Sample Output3 15 005 0184 5 015 008 0118 10 0211061 忽略大小写比较字符串Description一般我们用 strcmp 可比较两个字符串的大小,比较方法为对两个字

24、符串从前往后逐个字符相比较(按ASCII码值大小比较),直到出现不同的字符或遇到0为止。如果全部字符都相同,则认为相同;如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。但在有些时候,我们比较字符串的大小时,希望忽 略字母的大小,例如Hello和hello在忽略字母大小写时是相等的。请写一个程序,实现对两个字符串进行 忽略字母大小写的大小比较。Input输入为两行, 每行一个字符串, 共两个字符串。 (请用gets 录入每行字符串) (每个字符串长度都小于 80)Output如果第一个字符串比第二个字符串小,输出一个字符 如果第一个字符串比第二个字符串大,输出一个字符 如果两个字符串

25、相等,输出一个字符 =Sample InputHello helloSample Output1062 不吉利日期Description 在国外,每月的 13 号和每周的星期 5都是不吉利的。特别是当 13 号那天恰好是星期 5时,更不吉利。 已知某年的一月一日是星期 w,并且这一年一定不是闰年,求出这一年所有13号那天是星期5的月份,按从小到大的顺序输出月份数字。 (w=1.7)Input输入有一行,即一月一日星期几(w )。 (1=w3jBcl 旦 ilJ !. hlld V kipI佥注JQ -主足I 一” Ita企灣硝 J 丁帀nf311 、. -二呂 E 勺 Flira I 诃询I

26、Wuffca|jncu!AILCCM AppWizsircJ Clusttr AcBoutce Type IZ-ard uiihjm AjpW1?HrJ SPnlAhntc PtnjRrI 空 DevSiudEo Jdd-ln Wizard tKlendcd Elured Proc Wizard AlSAHLnditnuioil WljwrJ tMokrfflc 痛 M PC ArfrveX C nntr =MFC AppWizArxldiq SUhC AjipWJurd |excj 抠削 ft* DjUrth鼻仍e t UKIhy Pmjcd世也j2翌凹钊巴IWlnSZ Dyntmic Li

27、nk Llbrcry Wln3?和皿祁Mh柏ryPrdjeCI rFfliriE:L uchHuii:Platfcirrrifi:OKCn(jRl图1创建新的工程文件2)建立源文件再次选择“File菜单中的“ New选项,在四个标签中选择“File标签,在其对话框选项中,选择“C+ Source File,并在右边的 Add project的选择框内打勾,激活其下面的选项,然 后在File框内输入源文件名(如1st),单击“0K按钮,出现编辑屏幕,即可编写程序(如图2和图3所示)。Il J!* lilt Vi4r Ins artEuE.1 d. Iozl= All/Am EalfrI 1III

28、AH ululmi 11临11山匕怡*|【Wu mtiim鮭re -(;代ale N(?-心恂冷乩“匸 * ”啻囲匹! & 1尸 Add tn prnfe-rr1tit3nicl5lLflijalliih;|L;lbvHUU1tlEiJFIIkugAcivc Server Paqc Blnaiy File Uitmap Hlc Header HIg E Cl I Source FKt 訪 Curtor rile PageJjienn FilrCK:;Macienit fO口e却urcE Scripi 詡忡cuFCe I tmplAtr 1SQLSlNpI nie BTrwt FileCtncc

29、i图2建立源文件卜.1x7 Hicur ViLuJ CMIB VI l1 u a 性討j|?lt Vi-HA 企S.CTE h-DjQct 鈕応J.血I4.岂电吊口 一“ IS虚葺J HIKJ|Vilnhitl|jJI All globaH m-mtrr: - main彩崔遇jr =1呦prlnlFCTUK lb j C pruyrjN.W);Include uuld Rd 111()ILJJ图3编辑源文件3)编译连接和运行源程序程序编好后要进行编译连接和运行,步骤如下:选择“ Build菜单,单击下拉菜单中的“ Com pile ”,这时系统开始对当前的源程序进行编译,在编译过程中,将所发现

30、的错误显示在屏幕下方的“Build窗口中。根据错误提示,修改程序后再重新编译,如还有错误,再继续修改、编译,直到没有错误为止。编译无误后进行连接,这时选择 要进行更改,直到编译连接无错为止。0 warning(s),说明编译连接成功,“Build菜单中的“Build ”选项。同样,对出现的错误 这时,在“Build窗口中会显示如下信息:0 error(s),并生成以源文件名为名字的可执行文件()运行程序,选择“ Build菜单中的输出结果显示在该窗口中(如图“Execute ”选项。这时,会出现一个“ MROS窗口,4和图5所示)。运行结束后,可以回到“File菜单,点击“ CloseWork

31、s pace 选项,关闭当前文件窗口。若要编辑新的源程序,可以再次打开“File菜单,重新建立工程文件,步骤如上所述;也可以点击“File菜单中的“Open Works pacd选项,打开一个已经存在的源文件。罔 Fl la ? li i Viav Iridi-t 沖 ojcul Eiiilt Tjclz VinlohV Xcl-pCtrunFTC P 因 Ctmpiit Isl.即JF HiiL4 lit (If*三I All Qloh自 幽沁小 All- E-l-LcL 陀iLi.:+r1 Ct claccec31 at-1 AbagUebuEper Cterrots Cczuiectio

32、n.IS fl C 卩rngram.Vfl);! Eieette Isl. 电CtrUKbStt kctiv* Lnirarti&Ti. r *nf irsl 1 emuPi-fcfili.图4编辑运行源程序.1 cL ” 恤cMofi yioid DO -mJf .In t 7j tV Inx-iUfE. Pt jjmL uj LJ 7q1e AluJuv Jklf.kP QgMg 省审色尸”;前宙刑|(?0血荷Tj.I .lliflllin 宙 1 nt dansAfl哼 ChiswVicwl 马 Fil占icj9创吕 fciF:bufcincludp uoln valnC )prlftt

33、fClhli 丄b d C pruyrdiiAn):=:1=占乂空沖咤百上工主*-亠0;去兰耳壬令七7丰4=-lonHgjritlon; dst - win號 DebugGfHipillng. + I9ttpp LlfiKiny lt- B error( i) 0 wdr niiigfs)图5显示输出结果二、TC环境下的使用H匚life圍囹I創耳aJ汉Iew二Ed it 二jol 1 Insert Indent Tab Fill Unindent E:HDHAME.CMessage如上图是用户进入TC后的主菜单界面,下面是常用的命令及功能键: File菜单File的下拉菜单中有9个子命令,其功

34、能是完成文件的创建、存、取、退出等。Load :该命令为装载命令,其功能是将已存盘的文件调入到当前所编辑环境中。 Pick :选择最近已编辑过的源程序文件。New :创建一个新的文件。Save :保存当前所编辑的文件。Write to :将当前的文件以另外一个文件名存盘。OS shell :从Turbo C切换到命令提示符窗口状态下,可用EXIT命令返回。Quit :退出Turbo C,回到DOS提示符下。 常用的编辑键(在Edit状态下)::删除光标所在的字符。:插入、改写转换键。:光标到行首。:光标到行尾。:向上翻页:向下翻页+N:插入一行+Y:删除光标所在行定义块首定义块尾块移动块复制块

35、删除+KB:+KK:+KV:+KC:+KY:+KH:块取消+或 +C:中断程序的运行常用热键的使用用加上Turbo C菜单栏上所对应的第一个大写字母,方可进入对应菜单 +F:进入文件菜单、+E :进入编辑菜单、+R:进入运行菜单+C:进入编译菜单等。 +F9运行程序(对应 RUN菜单中的“ Runt令) +F5从TC屏幕切换到用户屏幕(对应RUN菜单中的 “ User screer命令) F1显示当前位置的帮助信息。 F2将当前所编辑的文件存盘(对应 File菜单中的“ save命令)F3:装入一个文件(对应 File菜单中的“loac命令) F4程序运行到光标所在行。(对应RUN菜单中的“G

36、o to cursor命令)二、程序调试步骤1. 启动TC:在 Windows环境下进入TC,屏幕将出现如下界面:I自动丄回國闻画創百!迟File Edit HunCom pilefroject Options DebugBreok#制j电cITL ine 1图1 TC界面2. 编辑源程序:进入 TC菜单界面 7在file主菜单中选择 “new”按回车后即可输入C程序,缺省文件名为:(图2所示)。(此步骤用于编辑一个新文件)z 口11甩I圍 團 aJ圆ILoadF3Pic斗fll匚F扌IJIB Edit Run Canpile FrojUrite to D irectory ChdDse di

37、rOS shell Quit ftlt-K*用户可对文件名加以修改。3. 保存源文件在源程序输入完成后,最好先保存源程序,以免在编译运行时,出错而造成程序丢失。程序编辑完后, 可按“F2键进行保存或选择 “File菜单中的“saves行保存(图3)。m 尉危I田I宣0 Aj辺Edit Biift Cowpile P Foject Op 土I 04dF3Pich Alt-F3 Neu Uni directory CIhange d irOS shell Quitflit-K例如文件名为:。保存时注意文件保存的路径( A, C, D, E盘)以免在修改程序时,知道C程序所存放的位置。4. 编译运行

38、源程序可直接使用“Rur菜单中的“run命令或对应的键命令 “Ctrl+F9系统自动执行对 C程序的编译、运行,若程 序编译成功,则产生目标文件和可执行文件,当编译时,程序出现错误,屏幕上会显示相应的错误信息及错误原因,这时,用户可对程序加以修改,再进行编译运行,得到正确的输出结果。(图4所示)FTle Elit訐FaF7F8图4Line 1kffn loEPiJfc FfoiectKunCtrl-Ct I5. 查看结果可选择“Rur菜单中的“user screen命令或对应的键命令“ALT+F。如图四所示(黄色标记)6.如何修改源程序当源程序出现错误时,需要修改,若程序已经存盘,这时可使用T

39、C菜单“File中的“load命令,将需要修改的文件调入到当前屏幕上,若程序在当前屏幕上,则可直接修改,但修改后的程序必须重新存盘和编译运 行。(图5所示)图5F2Ik划 Sa Write Directory Change dirOS shell quit Alt-X实验报告按以下格式书写,不用抄题,其中:三、实验报告要求解题思路:解决问题的基本思想、数据组织方法及采用的算法描述。 调试分析:程序调试过程中遇到的主要问题,以及解决方法,收获等。测试结果:对于可输入多组测试数据的程序要至少给出三组测试数据,以及对应的程序运行结果。例如:“C语言程序设计I”实验报告实验一简单程序设计班级:学号:姓

40、名:目的及要求:1. 熟练掌握2. 3. 1010测试验证结果1 )解题思路2)流程图3)源程序代码4)调试分析5)测试结果1011温度转换1 )解题思路2)流程图3)源程序代码4)调试分析5)测试结果1012 计算书费1 )解题思路2)流程图3)源程序代码4)调试分析5)测试结果1013 时间相加1 )解题思路2)流程图3)源程序代码4)调试分析5)测试结果四、C程序设计常见错误及解决方案1.输入/输出控制与编程初步错误原因示例出错现象解决方案变量未定义就使用int a=3,b=4; temp=a; a=b; b=te mp;糸统报错:temp: undeclared identifier

41、(temp 是没有声明的标识符)增加变量temp的定义, 再使用该变量变量名拼写错误int temp; tep=2;糸统报错:tep : undeclared identifier查看对应的变量及其定 义,保证前后一致未区分大小与字母int temp;Temp=2;糸统报错:TemP: undeclared identifier查看对应的变 量及其定 义,区别大小写字母变量定义位置错误int x=sizeof(int); p rintf(%d,x);int y=0;糸统报错:missing ; beforetyp e将变量集中在语句块开始 处定义,变量定义不能放 在可执行语句中间使用了未赋值的

42、变 量,其值不可预测int a;p rintf(%d,a);系统告警:local variable a used without having been initialized养成对变量初始化的习 惯,保证访问前有确定值不预先判断除数是否为0int devide(int a,int b) return a/b; 系统无报错或告警,但是当 调用时第二实参为0时将出 现意外终止对话框在函数定义时增加对除数 为0的考虑并作处理,防 止运行时出错未考虑数值溢出的可 能int a=10000; a=a*a*a;p rintf(%d,a);系统无报错或告警,但是输 出结果不正确预先估计运算结果的可能 范围

43、,采用取值范围更大的类型,如:double不用sizeof获得类型或变量的字长int *p; p=(int *)malloc(4);系统无报错或告警,但是在 平台移植时可能出现问题改为:P=(int*)malloc(sizeof(int);语句之后丢失分号int a,b a=3;b=4;系统报错: missing ; before identifier a找到出错位置,添加分号忘记给格式控制串加 双引号int x=sizeof(int); p rintf(%d,x);系统报若干个错:missing ) before %等根据编译器所指错误位 置,将格式串两边加” ”库函数名拼写错误, 大小写字

44、母有区别int x=sizeof(int); P rintf(%d,x);Printf undefined; assuming extern returning int根据编译器所指错误位 置,检查函数名并修改未给scanf中的变量加 取地址运算符&int y; scanf(%d,y);系统告警:local variable y used without having been initialized根据编译器所指告警位 置,检查并修改,增加取 地址符&在printf中的输出变量前加上了取地址符&int y; scanf(%d,& y); p rintf(%d, &y);系统无报错或告警,但是输 出结果不正确先用调试器跟踪观察变量 的当前值,如果变量值正 确而输出结果不对,则检 查Printf中的各个参数,如 果输入的数据与变量所获 得的值不一致,则检查 scanf中的各个参数漏写了 printf中欲输出的表达式scanf(%d,& y); p rintf(%d);系统无报错或告警,但是输 出结果不正确漏写了 printf中与欲输出的表达式对应的 格式控制串int y; scanf(%d,& y);p rintf(%d,y,y+3);系统无报错或告警,但是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论