C语言实验指导及报告模板.doc_第1页
C语言实验指导及报告模板.doc_第2页
C语言实验指导及报告模板.doc_第3页
C语言实验指导及报告模板.doc_第4页
C语言实验指导及报告模板.doc_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计附件1:实验报告模板C语言程序设计实验报告实验一 简单的C程序教学班级: 冶金136 学号: 01 姓名: 张博 课程教师: 胡春安 实验教师:胡春安 完成时间:2015-2016学年第1学期实验一 简单的C程序实验时间:2机时一、实验目的1. 熟悉C程序编辑环境,掌握主要菜单项的操作和作用。2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。二、实验意义通过上机实验,加深对第一章所学基本知识:C语言的基本结构和简单C程序的理解。通过调试简单的C程序,让学生对C程序的编辑、编译、链接和运行有一个直观的体验和熟悉,激发学习的好奇心和兴趣,为后面的全面学习奠定非常必要的基础。三、实验内容1验证实验(1)掌握程序的编辑、编译、连接、运行、调试过程,按以下步骤进行实验。n 输入源程序#include int main()float a,b;a=12b=10;c=a%b; printf(a=%d,b=%d,c=%d,a,b,c);return 0;n 编译、链接及运行,并记录下列问题: 您在编辑、编译该程序时,在输出窗口显示了几条错误信息?请记录在实验报告中。C:UsershDesktopcex1main.c|In function main:|C:UsershDesktopcex1main.c|6|error: expected ; before b|C:UsershDesktopcex1main.c|7|error: c undeclared (first use in this function)|C:UsershDesktopcex1main.c|7|note: each undeclared identifier is reported only once for each function it appears in|C:UsershDesktopcex1main.c|7|error: invalid operands to binary % (have float and float)|= Build failed: 3 error(s), 0 warning(s) (0 minute(s), 0 second(s) =|错误1:变量b前少了分号“;” 错误2:变量c未定义;错误3:%运算符运算对象必须是整型数据。 对出现的错误信息进行分析,找出错误原因并重新编辑、编译,直到程序正确运行为止。n 正确的程序:#include int main()int a,b,c;a=12;b=10;c=a%b;printf(a=%d,b=%d,c=%d,a,b,c);return 0; 保存文件。2. 请将560分钟转换成小时和分钟。3. 从键盘上输入圆锥体的半径r和高度h ,计算其体积v= 4. 实现一个简单的程序,输出字符串“Welcome to Jxust!”。附件2: 实验指导实验一 简单的C程序实验时间:2机时一、实验目的1. 熟悉C程序编辑环境,掌握主要菜单项的操作和作用。2. 熟悉编写一个C程序的上机过程(编辑、编译、链接和运行)。二、实验意义通过上机实验,加深对第一章所学基本知识:C语言的基本结构和简单C程序的理解。通过调试简单的C程序,让学生对C程序的编辑、编译、链接和运行有一个直观的体验和熟悉,激发学习的好奇心和兴趣,为后面的全面学习奠定非常必要的基础。三、实验重点1. 一个C程序的上机过程。2. C语言编辑环境的基本操作。四、实验难点1. 调试C程序中的语法错误。2. 保存C程序。五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容1验证实验(1)掌握程序的编辑、编译、连接、运行、调试过程,按以下步骤进行实验。n 输入源程序#include int main()double a,c;a=12b=10;c=a/b;printf(a=%d,b=%d,c=%d,a,b,c);return 0;n 编译、链接及运行,并记录下列问题: 您在编辑、编译该程序时,在输出窗口显示了几条错误信息?请记录在实验报告中。 对出现的错误信息进行分析,找出错误原因并重新编辑、编译,直到程序正确运行为止。 保存文件。特别提醒:由于初学者对C程序设计不熟练,初次上机时对C程序的字符集不熟练,特别容易产生字符输入的错误(约90%的初学者出现过这种错误)。因此,在对程序进行编译时便会出现许多语法错误信息,此时你需要与样例程序清单仔细比对、仔细检查输入字符的拼写错误或其它类型错误,每修改一处,必须重新编译一次,如此反复操作直至错误不再出现。另外,由于编译的错误信息是英文信息,对英文阅读和理解可能有一定的困难,这点也是初学者实验时的难点,但请放心,同样的错误信息见的次数多了你也就能明白意思,希望读者不要害怕。正所谓磨刀不误砍柴功,多花点时间和心思做好语法错误信息理解,将提升你编程、调试程序的能力。2. 请将560分钟转换成小时和分钟。提示:(1) 已知1小时=60分钟(2) 560/60的结果为小时数;(3) 560%60的余数为分钟数;(4) 输出结果请根据给出的语句,试着编写程序。3. 从键盘上输入圆锥体的半径r和高度h ,计算其体积v= 提示:(1)已知、r、h的值(2)将数学公式转换成C语言表达式v=*r*r*h/3(3)求v(4)输出结果。请试着编程求体积v。4. 实现一个简单的程序,输出字符串“Welcome to Jxust!”。实验二 数据类型、运算符和表达式实验时间:2机时一、实验目的1. 掌握C语言数据类型,熟悉各种类型变量的定义和含义。2. 掌握C语言标准输入、输出函数的使用方法3. 进一步熟悉C程序的上机过程,积累调试经验。二、实验意义通过上机实验,巩固本章所学基本知识C语言的数据类型、变量的定义和使用、结合数据类型更深入地理解标准输入函数scanf()和标准输出函数printf()的格式控制符的意义和使用。通过简单程序设计的练习加深对运算符优先级和结合方向的理解,并正确求解表达式的值,这些必要的基础知识是后面深入学习C语言所必须的知识储备。三、实验重点1. 数据类型、变量的定义和使用;2. 运算符、表达式的求解3. 简单顺序结构的C程序设计四、实验难点数据类型的转换、自增自减运算五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容1程序阅读题(1) 阅读并执行下列程序,分析结果。#include int main() float x=1,y;y=+x*+x; printf(“%fn”,y);return 0; 提示:此题在C_Free中运行结果为6,在codeblocks和VC中运行结果为9。为什么会产生这种情况,是因为编译器处理的方式不同,这种+x*+x运算情况建议读者尽可能的少用或不用。如对程序作如下修改,则可避免歧义性的发生。#include int main() float x=1,y,m,n;m=+x;n=+x;y=m*n; printf(%fn,y);return 0;(2) 阅读下列程序段并分析结果。int m=0,n=0;char c=d;scanf(%d%c%d,&m,&c,&n);printf(%d,%c,%dn,m,c,n);若从键盘上输入:6D6,则输出结果是( )。(3) 以下程序的运行结果是( )#includeint main()int a,b,d=241;a=d/100%9; b=(-1)&(-1);printf(“%d,%d”,a,b);return 0;(4) 以下程序的运行结果是( )。#includeint main()int x=1,y,z;x*=3+2; printf(“%dt”,x);x*=y=z=5; printf(“%dt”,x);x=y=z; printf(“%dn”,x);return 0;(5) 分析以下程序的运行结果。 #include int main()int n=2;printf(%d,%d,%dn,+n,n+=2,-n); return 0; 实验三 数据的输入和输出实验时间:2机时一、实验目的1. 掌握C语言标准输入、输出函数的使用方法2. 掌握格式控制字符的使用和理解3. 进一步熟悉C程序的上机过程,积累调试经验。二、实验意义通过上机实验,巩固本章所学基本知识:标准输入函数scanf()和标准输出函数printf()的应用。此部分实验为顺序结构的程序,通过上机验证以更好地理解格式控制字符的语义,正确掌握格式控制字符和普通字符的输出,掌握顺序结构的程序设计。三、实验重点1. 标准输入函数scanf()的使用 2. 标准输出函数printf()的使用 3. 简单顺序结构的C程序设计四、实验难点标准输入函数scanf()中的格式输入方式 五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容1. 上机练习下列各程序段,并完成变量的定义,运行时观察输入数据时的格式要求。(1) int main() ; &定义变量scanf(%c%c%c,&a,&b,&c);printf(%c,%c,%cn,a,b,c);return 0;(2) int main() ; &定义变量scanf(%c,%c,%c,&a,&b,&c);printf(a=%c,b=%c,c=%cn,a,b,c);return 0;(3) int main() ; &定义变量scanf(%d%d%d,&a,&b,&c);printf(%d,%d,%dn,a,b,c);return 0;(4) int main() ; &定义变量scanf(%d,%d,%d,&a,&b,&c);printf(%d,%d,%dn,a,b,c);return 0;(5) int main() ; &定义变量scanf(%d%f%d,&a,&b,&c);printf(a=%d,b=%f,c=%dn,a,b,c);return 0; (6) int main() ; &定义变量scanf(%d%c%lf,&a,&b,&c);printf(a=%d,b=%c,c=%lfn,a,b,c);return 0;2. 阅读程序(1) 以下程序的输出结果是( ),结合格式控制符的语义对结果进行分析。#include int main( ) printf(n*s1=%15s*, chinabeijing);printf(n*s2=%-5s*,chi);rerurn 0;(2) 阅读以下程序,当输入数据形式为: 25,13,10,正确的输出结果为( ),结合格式控制符的语义对结果进行分析。#include int main( )int x,y,z; scanf(%d%d%d,&x,&y,&z); printf(x+y+z=%dn,x+y+z);return 0; (3) 以下程序的输出结果为( ),结合格式控制符的语义对结果进行分析。int main( )int x=10; float pi=3.1416; printf(1)%dn,x); printf(2)%6dn,x);printf(3)%fn,56.1);printf(4)%5.14fn,pi);printf(5)%en,568.1);printf(6)%14.en,pi);printf(7)%gn,pi); printf(8)%12gn,pi);return 0; (4) 以下程序的输出结果为( )int main( )short a; a=-4; printf(na:dec=%d,oct=%x,unsigned=%un,a,a,a,a);return 0;实验四 选择结构实验时间:2机时一、实验目的1. 掌握选择结构的语句格式和语义。2. 掌握if语句和switch语句的使用。3. 掌握多分支if语句嵌套中的else与if的配对原则。4. 了解条件表达式的格式和语义。5. 掌握综合应用if语句和switch语句的编程能力。二、实验意义通过上机实验,巩固对选择结构知识的掌握。掌握结构化程序设计的第二种基本结构-选择结构,它是程序设计必备的基本知识,只有掌握好这些基本结构,才能进一步进行程序设计,进行更复杂的算法设计。三、实验重点1. 关系运算符和逻辑运算符以及条件运算符的使用2. if语句的使用3. switch语句的使用4. 多重条件下的if语句嵌套使用四、实验难点1. 复杂条件的表达2. 复合语句的使用3. if语句嵌套五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容1. 程序阅读题(1) 请阅读以下程序,该程序运行结果是( )。#include int main()int a=5,b=0,c=0;if (a+b+c) printf(“*n”); else printf(“$n”);return 0;(2) 当a=5,b=8,c=11,d=9时,执行完下面一段程序后x的值是( )if (ab) if(cd) x=1;else if(ac) if(b10 ? x+100:x-10);printf(“%dn”,w+|z+);printf(“%dn”,!wz);printf(“%dn”,w&z);(4) 请阅读以下程序,该程序运行结果是( )。 #include int main()int k=2;switch(k)case 1:printf(%d,k+);case 2:printf(%d,k+); case 3:printf(%d,k+); case 4:printf(%d,k+);break; default:printf(Full!n);printf(nk=%dn,k);return 0;2. 编程题(1) 从键盘上任意输入三个整数,按照由大到小的顺序输出。(2) 编写程序,输入一个字符存入变量ch中,根据该字符的ASCII码值判断该字符是字母、数字或其他字符(other)。(3) 有一函数: 编写一个程序,用scanf函数输入x的值,输出y值。注意表达式的书写方法。提示:此题要用到数学函数exp()和log10(),因此应包含相应的头文件。(4) 编写一个程序,用户输入日期,计算该日期是这一年的第几天。(5) 某书店有以下规定:购书在20000元以上者,打7.5折;购书在10000元以上者打8折;购书在2000元以上者打8.5折;购书在100元以上者打9折。假设某一种书的定价为24元,编写一个程序,计算一位顾客只购买这一种书的应付金额。实验五 循环结构实验时间:2机时一、实验目的1. 掌握while、do-while和for三种循环语句的格式;2. 掌握while、do-while和for三种循环语句的执行流程;3. 掌握循环嵌套的执行流程和应用;4. 掌握跳转语句break和continue语句的应用;二、实验意义通过上机实验,巩固所学的循环结构知识。循环结构是结构化程序设计的基本结构之一,它与顺序结构、选择结构共同作为各种复杂程序的基本构造单元。掌握好循环结构与选择结构的配合使用,掌握好循环语句的嵌套,才能进行更复杂的程序设计,也才能解决更多的复杂问题。这章的内容在整个程序设计过程中具有重要的意义,因此本部分的实验,对于提高学生的程序设计能力具有非常重要的作用,应给予高度的重视和实战练习。三、实验重点1. 三种循环语句的使用;2. 简单循环问题的分析和程序设计;3. 正确的构造循环条件和程序的流程;4. 循环程序的调试方法和技巧;四、实验难点1. 复杂问题的循环语句设计2. 循环嵌套的和break和continue循环设计3. 循环程序的调试:死循环的验证五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容1程序阅读(1) 若运行以下程序时,从键盘输入2473,则下面程序的运行结果是() include int main( ) int c; while(c=getchar( )!=n) switch(c-2) case 0: case 1: putchar(c+4); case 2: putchar(c+4); break; case 3: putchar(c+3); case 4:putchar(c+2);break; printf(“n”);return 0; (2) 请阅读以下程序,该程序运行结果是( )。#include int main() int x=-1,n=0; do x=x*x; n+; while (!x); printf(n=%dn,n); return 0;(3) 请阅读以下程序,该程序运行结果是( )。#include int main() int y=10; for(; y0;y-) if(y%3=0) printf(%d,-y); continue; return 0;(4) 请阅读以下程序,该程序运行结果是( )。 #include int main() int x; for(x=1;x100;x+) if (+x%2=0) if (+x%3=0) if (+x%5=0) printf(%dn,x); return 0;(5) 请阅读以下程序,该程序运行结果是( )。#include int main() int x,i; for(i=1;i100;i+) x=i; if (+x%2=0) if (+x%3=0) if (+x%7=0) printf(%d ,x); return 0;(6) 执行下面程序段后,a的值为( )。int a,b;for(b=1,a=1;b=10) break; if (a%2=1) a+=5; continue; a-=3; 2. 编程题(1) 键盘输入一行字符,以回车键作为结束标志,分别统计出大写字母、小写字母、空格、数字和其它字符的个数。(2) 分别用while、do-while和for语句计算(即求1!+2!+3!+20!),并试着简化程序。(3) 有一分数序列:求出这个数列的前20项之和。(4) 求的值,其中a是一个数字,如2+22+222+2222+22222(此时a=2,n=5),a和n均由键盘输入。(5) 输入x,计算级数:要求输出精度为10-8。(6) 用循环语句编写程序,输出如下图案: * * * * * * * * * * * * * * * * * * * * *实验六 数组实验时间:4机时一、实验目的1. 掌握一维数组的定义、引用。2. 掌握一维数组元素初始化的特点、编程注意事项。3. 掌握一维数组排序的经典算法。4. 掌握二维数组的定义、元素引用、编程方法。5. 掌握字符数组的定义、元素引用、编程方法。6. 掌握字符串常用程序设计方法。二、实验意义在解决实际问题或实现某些算法时,数组是经常使用的构造数据类型,掌握数组的定义,元素引用特征和数组的编程特色,可加强学生解决实际问题的能力,同时可接触到更多的经典算法,这些算法很多都是通过数组类型存储数据并实现的,有了这些基础后,学生可以在今后的编程中应用这些知识编写出解决复杂问题的程序。数组的实验能让学生进一步的提高程序设计编程和调试的能力,对于数组元素引用及循环控制的综合使用,也可以在实验中得以加深理解和巩固知识。三、实验重点1. 一维数组的定义、元素的引用。2. 一维数组编程的循环控制特色。3. 排序算法的实现。4二维数组的定义、元素引用、编程方法。5. 字符数组的定义、元素引用、编程方法。6. 掌握二维数组与循环嵌套的综合应用四、实验难点1. 一维数组编程的循环控制特色,程序调试时的数组越界问题2. 排序算法的理解和应用3. 二维数组与循环嵌套的综合应用4. 字符串操作的循环控制方法。五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容 (4机时)1. 程序阅读题(1) 运行下面的程序,根据运行结果,找出问题。#include int main( ) int i,x5=1,2,3,4,5; for (i=0;i=5;i+) printf(%4d,xi); return 0;(2) 下列程序的运行结果是( )。 #include int main()int i=1,n=3,j,k=3;int a5=1,4,8;while (iai)i+;for (j=n-1;j=i;j-)aj+1=aj;ai=k;for (i=0;i=n;i+)printf(%3d,ai);printf(n); return 0;(3) 下列程序的运行结果是( )。#include int main()int s44,i,j,k;for (i=0;i4;i+)for (j=0;j4;j+)sij=i-j;for (i=0;i3;i+)for (j=i+1;j4;j+) k=sij;sij=sji;sji=k; for (i=0;i4;i+)printf(n);for (j=0;j4;j+)printf(%4d,sij); return 0;(4) 下列程序的运行结果是( )。#includeint main()int i=5;char c6=abcd;do ci=ci-1; while(-i0);puts(c);return 0;2. 编程题(1) 某歌手大赛,共有10个评委给歌手打分,分数采用百分制,去掉一个最高分,去掉一个最低分,然后取平均分,得到歌手的成绩。10个分数由键盘输入,编写程序计算某歌手的成绩。(2) 歌手大赛,共有N个歌手参赛,每个歌手得分已揭晓(百分制),现要知道排在第K位的歌手分数,请编程实现。(3) 一个一维数组,含10个元素,从键盘上输入10个数,编写程序将数组元素逆序重新存放。即第一个元素和最后一个元素交换位置,第二个元素和倒数第二个元素交换位置,。(4) 给你N(N=1000)个不同的数,每个数都小于106,求第k小的数与及第k大的数(k=N)。 输入:第一行给出N和k的值,第二行就是N个数据。 输出:第k小的数与及第k大的数。 例如:输入:6 310 2 30 21 15 8输出:第3小的数10 ,第3大的数是15。(5) 有一个45的矩阵,编写程序找出值最大的元素并输出其值以及所在的行号和列号。(6) 输入一个M行M列的二维数组,分别计算两条对角线上的元素之和。M由符号常量定义:#define M (7) 编写函数判断输入的字符串是否是“回文”,(顺读和倒读都一样的字符串称“回文”,如:level)。实验七 函数实验时间:2机时一、实验目的1. 掌握模块化编程方法中自定义函数和主调函数的模块关系。2. 掌握定义无参函数和有参函数的定义及调用方法。3. 掌握函数调用时如何处理函数的返回值。二、实验意义采用模块化程序设计的方法,是解决复杂问题的基础。将一个复杂的较大的问题,分解为一个个独立的简单模块。模块在C语言中是用函数来实现的,因此掌握好函数的定义、调用,及了解函数模块之间的连接关系对于开发大型项目具有非常重要的意义,函数的实验对于巩固和理解函数的知识是非常必要的。三、实验重点1. 无参函数的定义和调用2. 有参无返回值函数的定义和调用3. 对于有返回值函数调用时的处理方法 四、实验难点1. 有参函数调用时,实参和形参的概念理解和对应关系。2. 有返回值函数调用时返回值的处理五、实验方式提前编写程序,写好实验报告,上机实验时一边调试程序一边将实验报告上关于程序调试和运行结果的信息填写到实验报告上,实验完成时上交实验报告。六、实验内容1. 程序阅读题(1)以下程序的运行结果是( )int main()increment(); increment(); increment();return 0;increment() static int x=0;x+=1; printf(“%d”,x); (2)以下程式序的运行结果是( )int main()int i=2,x=5,j=7;fun(j,6);printf(“i=%d;j=%d;x=%dn”,i,j,x);return 0;fun(int i,int j)int x=7; printf(“i=%d;j=%d;x=%dn”,i,j,x);(3)以下程序的运行结果是( )int i=0;int main()int i=5;reset(i/2);printf(“i=%dn”,i);reset(i=i/2);printf(“i=%dn”,i);reset(i/2); printf(“i=%dn”,i); workover(i);printf(“i=%dn”,i);return 0; workover(int i)i=(i%i)*(i*)/(2*i)+4);printf(“i=%dn”,i);return(i);reset(int i)i=i=2?5:0; return(i);(4) 下面程序的运行结果是( )int main()int i=5;printf(“%dn”,sub(i);return 0;sub(int n)int a;if(n=1) return 1;a=n+sub(n-1);return(a);(5) 以下程序的运行结果是( )int fac(int n)static int f=1;f=f*n;return(f);int main()int i;for(i=1;i=5;i+)printf(“%d!=%dn”,i,fac(i);return 0;2编程题(1) 编写函数,判断指定的字符是否是数字字符,如果是返回1,不是则返回0。提示:在主函数中输入字符,调用函数判断该字符是否是数字字符。(2) 编写一个函数,计算整数m的n次幂,在主函数中输入m和n,并在主函数中输出计算结果。(3) 设计函数,求一个字符串的长度。在主函数中输入字符串,并输出其长度。(4) 编写函数判断输入的字符串是否是“回文”,(顺读和倒读都一样的字符串称“回文”,如:level)。实验八 指针实验时间:2机时一、实验目的1. 掌握使用指针访问数组和字符串的方法。2. 掌握一些常用字符串操作的算法。3. 掌握使用字符指针作为函数参数的模块化程序设计

温馨提示

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

评论

0/150

提交评论