C语言程序设计实验报告实验大纲+过程.docx
- 文档编号:5150824
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:35
- 大小:104.26KB
C语言程序设计实验报告实验大纲+过程.docx
《C语言程序设计实验报告实验大纲+过程.docx》由会员分享,可在线阅读,更多相关《C语言程序设计实验报告实验大纲+过程.docx(35页珍藏版)》请在冰豆网上搜索。
C语言程序设计实验报告实验大纲+过程
《C程序设计》实验教学大纲
一、适用范围
大纲适用信息管理专业本科教学使用。
二、课程名称
C程序设计
三、学时数与学分
总学时:
90总学分:
4
实验学时:
28实验学分:
1
四、教学目的和基本要求
目的:
通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解C语言的特点,熟练掌握C语言程序设计的基本方法和编程技巧。
基本要求:
了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。
上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。
五、实验项目与学时分配
序号
实验项目名称
实验学时
实验类型
1
C程序的运行环境和运行一个C程序的方法
2
验证性实验
2
数据类型、运算符和表达式
3
验证性实验
3
最简单的C程序设计
3
验证性实验
4
选择结构程序设计
4
设计性实验
5
循环控制
4
设计性实验
6
数组
4
设计性实验
7
函数
4
设计性实验
8
指针
4
设计性实验
总计
28
注:
带*的实验项目为选做实验项目
六、教材、讲义及参考书
《C程序设计题解与上机指导》谭浩强主编清华大学出版社
七、实验成绩评定办法
实验成绩=平时实验表现+实验报告。
实验成绩占总成绩的20%。
实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。
1、平时考核:
上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。
在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。
2、实验报告:
学生实验后应按时完成实验报告。
八、实验教学大纲说明
本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。
实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。
九、实验项目
实验一C程序的运行环境和运行一个C程序的方法
一、实验目的
1.了解VisualC++6.0编译系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容
1.用编辑程序,输入教材第一章例1.1程序,并进行编译和运行。
应了解所用的系统是用什么命令进行编译和连接运行的。
编译和连接后所得到的目标程序的后缀是什么形式的?
2.编写一个C程序,输出以下信息:
****************************
verygood!
****************************
3.输入并运行教材第一章中例1.3,了解如何在运行时向程序变量输入数据。
实验二数据类型、运算符和表达式
一、实验目的
1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。
2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
二、实验内容
1.输入并运行以下程序:
main()
{charc1,c2;
c1=97;c2=98;
printf(“%c%c\n”,c1,c2);
printf(“%d%d\n”,c1,c2);
}
在此基础上
①将第三行、第四行改为:
c1=321;c2=353;
再使之运行,分析其运行结果。
②将第二行改为:
intc1,c2;
再使之运行,分析其运行结果。
。
2.输入并运行以下程序:
main()
{inti=8,j=10,m,n;
m=++i;n=j++;
printf(“%d,%d,%d,%d\n”,i,j,m,n);
}
分别作以下改动并运行:
①程序改为:
main()
{inti=8,j=10;
printf(“%d,%d\n”,i++,j++);
}
②在②的基础上,将printf语句改为:
printf(“%d,%d\n”,++i,++j);
③再将printf语句改为:
printf(“%d,%d,%d,%d\n”,i,j,i++,j++);
④程序改为:
main()
{inti=8,j=10,m=0,n=0;;
m+=i++;n-=--j;
printf(“i=%d,j=%d,m=%d,n=%d\n”,i,j,m,n);
}
3.请将下列给出的两个程序段分别输入计算机后,分析其运行结果:
main()
{intnum;
num=32767;
printf(“num=%d\n”,++num);
}
main()
{inta=-2;
printf(“%d,%d\n”,a,a--);
}
实验三最简单的C程序设计
一、实验目的
1.掌握C语言中使用最多的一种语句——赋值语句的使用。
2.掌握数据的输入输出的方法,能正确使用各种格式转换符。
二、实验内容
1.上机输入以下程序:
main()
{inta,b;floatc;
scanf(“%d%d%f”,&a,&b,&c);
printf(“a=%-4d,b=%4d,c=%f,c=%.2f\n”,a,b,c,c);
}
要使a=3,b=4,c=12.3456,在键盘上应如何输入?
有几种方式?
2.若将输入函数改为scanf(“%d,%d,%f”,&a,&b,&c);应该如何输入数据?
3.上机输入以下程序:
main()
{inta;floatb;charc;
scanf(“%4d%5f%3c”,&a,&b,&c);
printf(“a=%d,a=%o,a=%x,b=%8.3f,b=%4.0f,c=%c\n”,a,a,a,b,b,c);
}
要使a=77,b=4.56,c=‘A’,在键盘上应如何输入?
4.输入两面整型变量a、b的值,输出下列算式以及运算结果。
a+b、a-b、a*b、a/b、(float)a/b、a%b
每个算式占一行。
如a等于10,b等于6,a+b应输入为:
10+6=16
5.编写程序,用getchar函数读入两个字符c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
上机运行程序,比较用printf和putchar函数输出字符的特点。
实验四选择结构程序设计
一、实验目的
1.了解C语言表示逻辑量的方法(以0代表“假”,以1代表“真”);
2.学会正确使用逻辑运算符和逻辑表达式;
3.熟练掌握if语句和switch语句。
二、实验内容
先编程序,解以下问题,然后上机调试运行程序。
1.有一个函数
用scanf函数输入x的值(分别为x<1、1~10、≥10三种情况),求y值。
2.给出一个百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。
90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。
要求分别用if语句和switch语句实现
3.输入一个三位数,若此数是水仙花数输出“Y”,否则输出“N”,若输入值不是三位数输出“dataerror”。
提示:
水仙花数是一个三位数,组成这个三位数的三个数字的立方和与这个三位数相等。
如:
153=13+53+33。
判断是否是水仙花数需把构成三位数的三个数字分离出来并存入变量。
实验五循环控制
一、实验目的
1.熟悉用while语句,do-while语句和for语句实现循环的方法。
2.掌握在程序设计中用循环的方法实现各种算法(如穷举、迭代、递推等)。
二、实验内容
编程序并上机调试运行。
1.输入两个正整数,求其中最大公约数和最小公倍数。
2.输入一行字符,分别统计出其中的英文字母、空格、数字和其它字符的个数。
3.打印出以下图案:
*
***
*****
*******
*****
***
*
4.编程求1!
+2!
+3!
+……+20!
。
5.编写程序输出乘法表
实验六数组
一、实验目的
1.掌握一维数组和二维数组的定义、赋值和输入输出的方法;
2.掌握字符数组和字符串函数的使用。
3.掌握与数组有关的算法(特别是排序算法)。
二、实验内容
编程序并上机调试运行。
1.编写程序,用scanf函数输入10个整数的数列,先将整数按照从大到小的顺序进行排序,然后输入一个整数插入到数列中,使数列保持从大到小的顺序。
2.有15个数存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值,如果该数不在数组中,则输出“无此数”,并且可以实现连续查找。
15个数用赋初值的方法在程序中给出,要找的数用scanf函数输入。
3.将以下二维数组中数按列的顺序存放到一个一维数组中。
二维数组的内容是
11223344
11223344
11223344
则一维数组中的内容是111111222222333333444444
4.将两个字符串连接起来,不要用strcat函数。
5.从键盘输入5个字符串,找出最长的字符串和最大的字符串。
实验七函数
一、实验目的
1.掌握定义函数的方法;
2.掌握函数实参与形参的对应关系,以及“值传递”的方式;
3.掌握函数的嵌套调用和递归调用的方法;
4.掌握全局变量和局部变量,动态变量和静态变量的概念和使用方法。
二、实验内容
编程序并上机调试运行之。
1.写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。
2.两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。
两个整数在主函数中输入,并传送给函数1,求出的最大公约数返回主函数,然后再与两个整数一起作为实参传递给函数2,以求出最小公倍数,返回到主函数输出最大公约数和最小公倍数。
3.已知二阶Fibonacci数列:
0若n=0
Fib(n)=1若n=1
Fib(n-1)+Fib(n-2)其他情况
定义递归函数求Fib(n)。
4.编写函数,求
实验八指针
一、实验目的
1.掌握指针的概念,会定义和使用指针变量;
2.学会使用数组的指针和指向数组的指针变量;
3.学会使用字符串的指针和指向字符串的指针变量;
4.学会使用指向函数的指针变量;
5.了解指向指针的指针的概念及其使用方法。
二、实验内容
编程序并上机调试运行程序(都要求用指针处理)。
1.定义函数voidfun(intx[],int*max,int*min),找出数组x中的最大值和最小值,最大值和最小值通过形参指针max和min传回。
2.编写一个函数comp(s1,s2)实现两个字符串的比较。
如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1 两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。 3.从键盘输入一个字符串与一个指定字符,调用函数,将字符串中出现的指定字符全部删除。 4.将一个3×3的矩阵转置,用一函数实现。 在一主函数中用scanf函数输入以下矩阵元素: 1 3 5 7 9 11 13 15 17 将数组名作为函数参数,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出转置后的矩阵。 实验九结构体和共用体 一、实验目的 1.掌握结构体类型变量的定义和使用; 2.掌握结构体类型数组的概念和应用; 3.掌握链表的概念,初步学会对链表进行操作; 4.掌握共用体的概念与使用。 二、实验内容 编程序,然后上机调试运行。 1.有3个学生,每个学生的数据包括学号、三门课的成绩,要求用input函数实现从键盘输入学生数据,用average函数求每个人的平均分,用output函数打印学生数据及平均成绩。 2.建立一个带有头结点的单链表,每个结点包括: 学号、年龄,并输出链表中所有结点的数据。 在链表中查找年龄最大的结点,并将链表中等于此年龄的结点删除(年龄最大的结点可能不止一个)。 *3.将一个链表按逆序排列,即将链头当链尾,链尾当链头。 4.上机输入如下程序: main() {unionbt {intk;charc[2];}a; a.k=-7; printf(“%o,%o\n”,a.c[0],a.c[1]); } 分析其运行结果。 实验十位运算 一、实验目的 1.掌握按位运算的概念和方法,学会使用位运算符; 2.学会通过位运算实现对某些位的操作。 二、实验内容 编写程序,上机调试并运行。 1.编一个函数getbits,从一个16位的单元中取出某几位(即该几位保留原值,其余位为0)。 函数调用形式为: getbits(value,n1,n2) value为该16位数的值,n1为欲取出的起始位,n2为欲取出的的结束位。 如: getbits(0101675,5,8)表示对八进制数101675,取出其从左面起的第5位到第8位。 要求把这几位数用八进制数打印出来。 注意,应当将这几位数右移到最右端,然后用八进制形式输出。 2.利用位运算操作,实现交换两个变量的值。 3.将一个十六进制整数的各位循环左移4位,然后用十六进制形式输出。 实验十一文件 一、实验目的 1.掌握文件以及缓冲文件系统、文件指针的概念; 2.学会使用文件打开、关闭、读、写等文件操作函数。 3.学会用缓冲文件系统对文件进行简单的操作。 二、实验内容 编写程序并上机调试运行。 1.编程序求100以内的素数,分别将它输出到显示器屏幕和x.txt文件中,要求每行5个数。 2.从键盘输入几本书的数据,每本书的数据包括条形码、书名和价格,将每项数据分别写入文本文件s.txt和二进制文件s.dat。 *3.从上题的文本文件s.txt或二进制文件s.dat中读入每本书的数据,计算所有书的平均价格。 要求用input函数读入,average函数求平均价格。 统计与信息学院 《C程序设计》实验报告 (一) 学号: 姓名: 班级: 成绩: 实验名称: C程序的运行环境和运行一个C程序的方法 指导教师: 实验日期: 实验地点: 实验软件(主要仪器设备): VisualC++6.0 实 验 要求 1.了解VisualC++6.0编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 实 验 过程 与 步 骤 实验①: 1、打开VisualC++6.0。 2、新建文件C++SourceFile,文件名.c并更改位置后确定。 3、编辑 #include"stdio.h" intmain() { printf("ThisisaCprogram.\n"); return0; } 4、编译,无错误无警告后执行 实验②: #include"stdio.h" intmain() { printf("****************************\n"); printf("Verygood! \n"); printf("****************************\n"); return0; } 实验③: #include"stdio.h" intmain() { printf("ThisisaCprogram.\n"); return0; } 实验 总结 统计与信息学院 《C程序设计》实验报告 (二) 学号: 姓名: 班级: 成绩: 实验名称: 数据类型、运算符和表达式 指导教师: 实验日期: 实验地点: 实验软件(主要仪器设备): VisualC++6.0 实 验 要求 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 实 验 过程 与 步 骤 实验① 1、运行VisualC++6.0并新建工作区 2、输入 #include main() {charc1,c2; c1=321;c2=353; printf("%c%c\n",c1,c2); printf("%d%d\n",c1,c2); } 3、编译,无错误、无警告后运行,结果如下: 4、在步骤2的基础上将第三行、第四行改为: c1=321;c2=353; 5、编译,无错误、无警告后运行,结果提示: aa.obj-0error(s),2warning(s) 6、在步骤2的基础上将第二行改为: intc1,c2; 7、编译,无错误、无警告后运行,结果如下: 实验② 1、输入 #include main() {inti=8,j=10,m,n; m=++i;n=j++; printf("%d,%d,%d,%d\n",i,j,m,n); } 实验③ 1、输入 #include main() {intnum; num=32767; printf("num=%d\n",++num); } 2、编译,无错误、无警告后运行,结果如下: 2、编译,无错误、无警告后运行,结果如下: 3、将步骤2程序改为: #include main() {inti=8,j=10; printf("%d,%d\n",i++,j++); } 4、编译,无错误、无警告后运行,结果如下: 5、在步骤3的基础上,将printf语句改为: printf(“%d,%d\n”,++i,++j); 6、编译,无错误、无警告后运行,结果如下: 7、在步骤3的基础上,将printf语句改为: printf(“%d,%d,%d,%d\n”,i,j,i++,j++); 8、编译,无错误、无警告后运行,结果如下: 9、将步骤2程序改为: #include main() {inti=8,j=10,m=0,n=0; m+=i++,n-=--j; printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n); } 10、编译、运行,结果如下: 3、输入 #include main() {inta=-2; printf("%d,%d\n",a,a--); } 4、编译,无错误、无警告后运行,结果如下: 实验 总结 统计与信息学院 《C程序设计》实验报告(三) 学号: 姓名: 班级: 成绩: 实验名称: 最简单的C程序设计 指导教师: 实验日期: 实验地点: 实验软件(主要仪器设备): VisualC++6.0 实 验 要求 1.掌握C语言中使用最多的一种语句——赋值语句的使用。 2.掌握数据的输入输出的方法,能正确使用各种格式转换符。 实 验 过程 与 步 骤 实验① 1、运行VisualC++6.0并新建工作区 2、输入 #include main() {inta,b;floatc; scanf("%d%d%f",&a,&b,&c); printf("a=%-4d,b=%4d,c=%f,c=%.2f\n",a,b,c,c); } 3、编译,无错误、无警告后运行,结果如下: 有空格、tab、回车三种输入方式。 4、将步骤2中的scanf("%d%d%f",&a,&b,&c);改为scanf(“%d,%d,%f”,&a,&b,&c); 5、编译,无错误、无警告后运行,结果如下: 实验② 1、输入 #include main() {inta;floatb;charc; scanf("%4d%5f%3c",&a,&b,&c); printf("a=%d,a=%o,a=%x,b=%8.3f,b=%4.0f,c=%c\n",a,a,a,b,b,c); } 2、编译,无错误、无警告后运行,结果如下: 实验③ (1)a+b 1、输入 #include main() { inta,b,c; scanf("%d,%d",&a,&b); c=a+b; printf("%d+%d=%d\n",a,b,c); } 2、编译,无错误、无警告后运行,结果如下: (2)a-b 1、输入 #include main() { inta,b,c; scanf("%d,%d",&a,&b); c=a-b; printf("%d-%d=%d\n",a,b,c); } 2、编译,无错误、无警告后运行,结果如下: (3)a*b 1、输入 #include main() { inta,b,c; scanf("%d,%d",&a,&b); c=a*b; printf("%d*%d=%d\n",a,b,c); } 2、编译,无错误、无警告后运行,结果如下: 实验④ (1)getchar输出 1、输入 #include intmain() { charc1,c2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); return0; } 2、编译,无错误、无警告后运行,结果如下: (4)a/b 1、输入 #include main() { inta,b,c; scanf("%d,%d",&a,&b); c=a/b; printf("%d/%d=%d\n",a,b,c); } 2、编译,无错误、无警告后运行,结果如下: (5)(float)a/b 1、输入 #include main() { inta,b,c; sca
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 实验 报告 大纲 过程
![提示](https://static.bdocx.com/images/bang_tan.gif)