您好,欢迎来到尚车旅游网。
搜索
您的当前位置:首页长沙理工大学C语言实验报告(2015)

长沙理工大学C语言实验报告(2015)

来源:尚车旅游网
《C语言程序设计》实验(上机)报告

班级·学号 姓名 实验日期 任课教师 实验名称 实验一 C语言程序开发环境、数据类型及表达式 验证型 一、实验目的及要求 1.掌握编辑C源程序的方法,熟悉开发、运行C程序的全过程。 2.在VC编译环境下练习对C源文件进行编译和简单查错。 3.掌握C语言中各种常量的表示形式及变量的定义。 4.掌握C语言中各种运算符的作用、优先级和结合性,能熟练运用各种表达式。 5.掌握不同类型数据运算时数据类型的转换规则,了解表达式语句,尤其是赋值语句。 二、上机内容: 1.编写程序实现在屏幕上显示以下结果: The dress is long The shoes are big The trousers are black 2.改错题(将正确程序写在指定位置) 改正下列程序中的错误,在屏幕上显示商品价格表(源程序附后面)。 输入输出示例 商品名称 价格 TCL电视机 ¥7600 美的空调 ¥2000 SunRose键盘 ¥50.5 源程序(有错误的程序) #include mian() { printf(\"商品名称 价格\\n); printf(\"TCL电视机 ¥7600\") printf(\"美的空调 ¥2000) printf(\"SunRose键盘 ¥50.5) } 正确的程序为: 3.编写程序:已知a=150,b=20,c=45,编写求a/b、a/c(商)和a%b、a%c(余数)的程序。 输入输出示例 a/b的商=7 a/c的商=3 a%b的余数=10 a%c的余数=15 4.编写程序:设变量a的值为0,b的值为-10,编写程序:当a>b时,将b赋给c;当a<=b时,将a赋给c。(提示:用条件运算符) 1 三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本 四、程序清单 (写出上机内容1、3、4的源程序)

2

五、调试和测试结果(调试中出现的典型问题及解决方法,测试结果是否正确或具体值等) 六、教师批语与成绩评定: 评语: 成绩: 优 良 中 及格 不及格 评阅教师: 评阅日期: 年 月 日

3

《C语言程序设计》实验(上机)报告

班级·学号 姓名 实验日期 任课教师 实验名称 实验二 顺序结构程序设计 验证型 一、实验目的及要求 1.熟悉C语言的表达式语句、空语句和复合语句。 2.熟悉函数调用语句,尤其是输入输出函数调用语句。 3.熟悉顺序结构程序中语句的执行过程。 4.能设计简单的顺序结构程序。 二、上机内容 1.键盘输入与屏幕输出练习 问题1 要使下面程序的输出语句在屏幕上显示1, 2, 34,则从键盘输入的数据格式应为以下备选答案中的 。 #include main() { char a,b; int c; scanf(\"%c%c%d\ printf(\"%c,%c,%d\\n\} A)1 2 34 B)1, 2, 34 C)’1’,’2’,34 D)12 34 问题2 在与上面程序的键盘输入相同的情况下,要使上面程序的输出语句在屏幕上显示1 2 34,则应修改程序中的哪条语句?怎样修改? 问题3 要使上面程序的键盘输入数据格式为1,2,34,输出语句在屏幕上显示的结果也为1,2,34,则应修改程序中的哪条语句?怎样修改? 问题4 要使上面程序的键盘输入数据格式为1,2,34,而输出语句在屏幕上显示的结果为'1', '2',34,则应修改程序中的哪条语句?怎样修改? [提示:利用转义字符输出字符单引号字符。] 2.编写程序: (1)从键盘输入两个八进制数,计算两数之和并分别用十进制和十六进制数形式输出。 输入输出示例 Enter a and b: 20 30 d:40 x:28 (2)编写程序:从键盘输入两个实数a和x,按公式计算并输出y的值: 输入输出示例 ya5sin(ax)ln(ax)eaxEnter a , x : 1.0,0.0

4

y=2.000000 3.改错题 改正下列程序中的错误。从键盘输入3个整数a、b、c,计算这3个整数的和s,并以“s=a+b+c”和“a+b+c=s”的形式输出a、b、c和s的值。请不要删除源程序中的注释。(源程序附后面) 输入输出示例 正确的程序为: 3 4 5 12=3+4+5 3+4+5=12 源程序(有错误的程序) #include main() { int a,b,c,s; scanf(\"%d%d%d\ s=a+b+c; printf(\"%d=%d+%d+%d\\n\ /*输出s=a+b+c*/ printf(\"%d+%d+%d=%d\\n\ /*输出a+b+c=s*/ } 三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本 四、程序清单(写出上机内容2的源程序) 5

五、调试和测试结果(调试中出现的典型问题及解决方法,测试结果是否正确或具体值等) 六、教师批语与成绩评定: 评语: 成绩: 优 良 中 及格 不及格 评阅教师: 评阅日期: 年 月 日 6

《C语言程序设计》实验(上机)报告

班级·学号 姓名 实验日期 任课教师 实验名称 实验三 选择结构程序设计 验证型 一、实验目的及要求 1.理解C语言表示逻辑量的方法(0代表“假”,非0代表“真”)。 2.学会正确使用逻辑运算符和逻辑表达式、关系运算符和关系表达式。 3.学会运用逻辑表达式和关系表达式等表达条件。 4.熟练掌握IF语句和SWITCH语句。 5.掌握简单的单步调试方法。 二、上机内容 1.先手工计算,然后编写程序验证计算结果: (1) 求逻辑表达式5>3&&2||8<4-!5的值。1 (2) a为12,b为18,c为12,计算并输出a&&b、a||b、!a&&c的值。1 1 0 (3) a为0,b为1,c为3,计算并输出执行语句“y=(++a)&&(--b)&&(c=b+3);”后a、b、c、y的值。如果将语句改为“y=(++a)||(--b)||(c=b+3);”,结果又是多少? 0 1 2.编程: (1) 输入整数x和a,计算并输出下列分段函数f(x)的值(保留2位小数),请调用log函数求自然对数,调用fabs函数求绝对值。 1axxa lnf(x)2aax xa0输入输出示例 第一次运行 Enter a and x:5 6 a=5,f(6)=0.24 第二次运行 Enter a and x:5 5 a=5,f(5)=0.00 #include #include main() { int a,x; float fx; scanf (\"%d%d\ if (abs(x)==a) fx=0; else fx=1.0/(2*a)*log(fabs((double)(a+x)/(a-x)));

7

printf(\"a=%d,f(x)=%.2f\\n\} (2)输入a、b、c三个整数,输出最大数。 #include main() { int a,b,c,max; printf(\"Enter a,b,c:\"); scanf(\"%d%d%d\ if(a>b) if(a>c) max=a; else max=c; else if(b>c) max=b; else max=c; printf(\"the max number is=%d\} }输入输出示例 第一次运行 Enter a,b,c:1,5,9 the max number is:9 第二次运行 Enter a,b,c:9,5,1 the max number is:9 第三次运行 Enter a,b,c:1,9, 5 the max number is:9 3.改错题 改正下列程序中的错误,输入一个数n(不一定是整数),判定n是小于0,等于0,还是大于0。(源程序附后面) 8

输入输出示例 第一次运行 Enter n:10 10 is greater than 0 第二次运行 Enter n:-5 -5 is less than 0 第三次运行 Enter n:0 0 is equal to 0 源程序(有错误的程序) #include main() { double n; printf(\"Enter n:\"); scanf(\"%f\ if(n<0) printf(\"n is less than 0\\n\"); else if(n=0) printf(\"n is equal to 0\\n\"); else printf(\"n is greater 0\\n\"); } 单步调试程序,观察变量值的变化。 正确的程序为: 三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本 四、设计流程(算法描述) (请写出上机内容2(2)题的算法描述) 五、程序清单 (请写出上机内容2(1)的源程序) 六、调试和测试结果(写出上机内容1的结果) 七、教师批语与成绩评定: 评语: 成绩: 优 良 中 及格 不及格 评阅教师: 评阅日期: 年 月 日

9

《C语言程序设计》实验(上机)报告

班级·学号 姓名 实验日期 任课教师 实验名称 实验四 循环结构程序设计 验证型 一、实验目的及要求 1.熟悉掌握C语言的while语句、do-while语句和for语句。 2.掌握在程序设计中使用循环的方法实现各种算法。 3.理解循环结构程序中语句的执行过程。 4.掌握运行到光标位置的调试方法。 二、上机内容 1.编写程序:求1+2+3+…+100和12+22+32+…+1002。 输入输出示例 sum1=5050 sum2=338350 2.一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出2~5000中的所有完数。 输入输出示例 6 28 496 3. 改错题 改正下列程序中的错误。(源程序附后面) 韩信点兵。韩信有一队兵,他想知道有多少人,便让土兵排队报数。按从1至5报数,最末一个土兵报的数为1;按从1至6报数,最末一个土兵报的数为5;按从1至7报数,最末一个土兵报的数为4;最后按从1至11报数,最末一个土兵报的数为10;你知道韩信有多少土兵吗? 输入输出示例 n=2111 源程序(有错误的程序) #include main() { int find=0; while(!find) { if(n%5==1&&n%6==5&&n%7==4&& n%11==10) { printf(\"n=%d\\n\ find =1; } } }

10

正确的程序为: 三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本 四、设计流程(算法描述) (请写出上机内容2的算法描述) 五、程序清单 (请写出上机内容1的源程序) 六、调试和测试结果(调试中出现的典型问题及解决方法,测试结果是否正确或具体值等) 11

七、教师批语与成绩评定: 评语: 成绩: 优 良 中 及格 不及格 评阅教师: 评阅日期: 年 月 日

12

《C语言程序设计》实验(上机)报告

班级·学号 姓名 实验日期 任课教师 实验名称 实验五 函数和预处理命令 验证型 一、实验目的及要求 1.掌握函数的定义和调用。 2.掌握使用函数编写程序。 3.掌握函数的实参、形参和返回值的概念及使用。 4.掌握单步调试进入函数和跳出函数的方法。 5.掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法。 二、上机内容 1.编写自定义函数long power(int m,int n),计算m的值。利用此函数编程序实现:从键盘输入两个整数m和n,计算出 m 的值。 2.写出两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。 输入输出示例 输入:n1=24 n2=16 输出:zdgys=8 zxgbs=48 3.改错题 改正下列程序中的错误。根据下式求π的值,直到某一项小于10-6(源程序附后面) 1!2!3!4!n!1 23353573579357(2n1)输入输出示例 PI=3.14159 (改正后程序运行结果) 源程序(有错误的程序) #include int fact(int n); int multi(int n); main() {int i; double sum,item,eps; eps=1E-6; sum=1; item=1; for(i=1;item>=eps;i++) {item=fact(i)/multi(2*i+1); sum=sum+item; } printf(“PI=%0.5lf\\n”,sum*2); return 0; } nnint fact(int n) {int i; int res=1; for(i=0;i<=n;i++) res=res*i; return res; } int multi(int n) {int i; int res=1; for(i=3;i<=n;i=i+2) res=res*i; return res; } 13 正确的程序为: 三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本 四、设计流程(算法描述) (请写出上机内容1的算法描述) 五、程序清单 (请写出上机内容2的源程序) 六、调试和测试结果(调试中出现的典型问题及解决方法,测试结果是否正确或具体值等) 14 七、教师批语与成绩评定: 评语: 成绩: 优 良 中 及格 不及格 评阅教师: 评阅日期: 年 月 日 15

《C语言程序设计》实验(上机)报告

班级·学号 姓名 实验日期 任课教师 实验名称 实验六 数组 验证型 一、实验目的及要求 1.掌握一维数组的定义、赋值和输入输出的方法。 2.掌握字符数组的使用。 3.掌握与数组有关的算法(例如排序算法)。 4.学会使用断点调试方法。 二、上机内容 1.编写程序:从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序输出。自定义函数void antitone(int a[],int n)实现将数组中的n个数据按逆序存放。 2.已知某数列的前两项为2和3,其后每一项为其前两项之积。编程实现:从键盘输入一个整数x,判断并输出x最接近数列的第几项? 3.输入一串字符,计算其中字符、数字和空格的个数。 输入/输出示例: 输入:sd234kjjk mjk 输出:字符:9 数字:5 空格:1 三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本 四、设计流程(算法描述) (请写出上机内容1的算法描述)

16

五、程序清单 (请写出上机内容1、2、3的源程序) 六、调试和测试结果(调试中出现的典型问题及解决方法,测试结果是否正确或具体值等) 17

七、教师批语与成绩评定: 评语: 成绩: 优 良 中 及格 不及格 评阅教师: 评阅日期: 年 月 日

18

《C语言程序设计》实验(上机)报告

班级·学号 姓名 实验日期 任课教师 实验名称 实验七 指针 验证型 一、实验目的及要求 1.理解指针、地址和数组间的关系。 2.掌握通过指针操作数组元素的方法。 3. 掌握指针作为函数参数时,实参和形参的结合方式。 二、上机内容 (2) #include int f(int *a,int *b) { int s; s=*a+*b; return s; } void main() { int x=2,y=4,s; s=f(&x,&y); printf(\"%d\\n\ } (3) #include (4)以下程序用指针实现一维数组的数据void swap(int *a,int *b) 输入与输出,请填空并运行。 { int t; #include t=*a; *a=*b; *b=t; void main() } { int a[6],i; void main() 【1】 ; { int x=10,y=20; for( i=0; i<6; i++) printf(\"(1)x=%d y=%d\\n\ scanf(“%d” , 【2】 ); swap(&x,&y); p=a ; printf(\"(2)x=%d y=%d\\n\ for( i=0; i<6; i++) } printf(“%3d”, 【3】 ); printf(“\\n”); } 思考:将语句“p=a;”删去,程序运行结 果会怎样? 2.完成函数的内容,函数的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。 例如,当a=45,b=12。调用函数后,c=4251。 完成编程后运行程序,输入上面所举的数据例子,看看程序是否能得出正确的结果。 1.运行程序,查看程序的运行结果。 (1) #include void main() { int a=7,b=8,*p,*q,*r; p=&a;q=&b; r=p;p=q;q=r; printf(\"%d,%d,%d,%d\\n\}

19

#include void fun(int a,int b,long *c) { } void main() { int a,b; long c; printf(\"Input a,b:\") ; scanf(\"%d%d\ fun(a,b,&c); printf(\"The result is: %ld\\n\} 三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本 四、程序清单 (请写出上机内容2中的函数) 五、调试和测试结果(请写出上机内容1的输出结果) 六、教师批语与成绩评定: 评语: 成绩: 优 良 中 及格 不及格 评阅教师: 评阅日期: 年 月 日

20

《C语言程序设计》实验(上机)报告

班级·学号 姓名 实验日期 任课教师 实验名称 实验八 结构体 验证型 一、实验目的及要求 1.理解结构体类型的概念,掌握结构体类型的定义形式。 2.掌握结构体类型变量的定义和变量成员的引用形式。 3.了解内存的动态分配、链表的概念及操作。 二、上机内容 1.建立一个学生信息结构体数组,包括学号num,姓名name[10],年龄age,性别sex。要求通过函数input输入4个数据记录,并且在main函数中输出这5个学生的信息。用另一函数stat统计输入记录中男生、女生的人数,以及年龄小于18岁的学生人数。 输入输出示例: 输出: num name age sex 输入: 01 aa 18 M 01 aa 18 M 02 bb 19 F 02 bb 19 F 03 cc 19 M 03 cc 19 M 04 dd 17 F 04 dd 17 F boy girl age<18 2 2 1 2.编程:完成下列程序中的函数。 某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。 例如,学生的成绩是:85.5,76,69.5,85,91,72,.5,87.5,他的平均分应当是:78.875。 注意: 请勿改动主函数main和其它函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。 #include #define N 8 struct STREC { char num[10]; double s[N]; double ave; }; void fun(struct STREC *a) { } main() {struct STREC s={\"GA005\ int i; fun( &s ); printf(\"The %s's student data:\\n\ for(i=0;i3.改错题 定义一个结构体数组stu并且初始化,main函数中输出数组元素各成员的值。(源程序附后面) 输入输出示例 No. Name sex age 10101 Li Lin M 18 10102 Zhang Fun M 19 10104 wang Min F 20 源程序(有错误的程序) #include struct student {int num; char name[20]; char sex; int age; }; struct student stu[3]={{10101,\"Li Lin\",'M',18},{10102,\"Zhang Fun\",'M',19},{10104,\"Wang Min\",'F',20}}; main() {struct student*p; printf(\" No.Namesexage\\n\"); for (p=stu;p<3;p++) printf(\"%5d %-20s %2c %4d\\n\",*p.num, *p.name, p.sex, p.age); } 三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本 四、程序清单(请写出上机内容1的源程序 和上机内容2中的函数) 22

五、教师批语与成绩评定: 评语: 成绩: 优 良 中 及格 不及格 评阅教师: 评阅日期: 年 月 日 23

《C语言程序设计》实验(上机)报告

实验名称

班级·学号 姓名 实验日期 任课教师 实验九 共用体、位运算、文件(选做) 验证型 一、实验目的及要求 1.理解共用体概念,掌握共用体变量定义格式和引用形式与运算。 2.掌握位运算的基本规则。 3.掌握文件和文件指针的概念以及文件的定义方法。 4.掌握文本文件的顺序读、写方法。 二、上机内容 1.运行以下程序,并对结果进行分析: (1) #include (2) #include void main() void main() { union exx { int c,d,e; { int a,b; int a=6,b=12 ; struct c=a&b ; { int c,d; }lpp; d=a|b ; }e={10}; e=a^b; e.b=e.a+20; printf(“%d & %d=%d\\n”, a,b,c); e.lpp.c=e.a+e.b; printf(“%d | %d=%d\\n”, a,b,d); e.lpp.d=e.a*e.b; printf(“%d ^ %d=%d\\n”, a,b,e); printf(“%d,%d\\n”, e.lpp.c,e.lpp.d); printf(“%d,%d\\n”, a>>1,b<<3); } } 2.编写程序: (1)求100以内能同时被3和5整除的自然数,分别将它们输出到显示器屏幕和x.txt文件中。 (2)用程序读出上述x.txt文件中的数据,将它们输出到屏幕,并求它们的和。 三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本 四、程序清单 (请写出上机内容2中的程序源代码) 24

五、调试和测试结果(调试中出现的典型问题及解决方法,测试结果是否正确或具体值等) 25

六、教师批语与成绩评定: 评语: 成绩: 优 良 中 及格 不及格 评阅教师: 评阅日期: 年 月 日

26

实验报告填写说明

1. 实验报告中的班级写行政班级(如道土1班),学号写完整学号(如20176000101),实

验日期不要漏写,任课教师写全名。

2. 设计流程(算法描述)的书写用传统流程图、N-S流程图或伪代码中的任一种方式写出算法。 3. 调试和测试结果应有内容,至少是“调试结果正确”,如果遇到错误,则写出错误信息,

及调试解决方法。要求写出测试用的数据和测试结果,应对所有路径都进行测试。

27

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务