C语言程序设计实验报告
更新时间:2024-05-15 02:10:01 阅读量: 综合文库 文档下载
学 生 实 验 报 告 册
课程名称:
学生学号:
所属院部:
(理工类)
C语言程序设计 专业班级:
学生姓名:
指导教师:
20 15 ——20 16 学年
金陵科技学院教务处制第 一 学期
实验报告书写要求
实验报告上交电子稿,标题采用四号黑体,正文采用小四号宋体,单倍行距。
实验报告书写说明
实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。
填写注意事项
(1)细致观察,及时、准确、如实记录。 (2)准确说明,层次清晰。
(3)尽量采用专用术语来说明事物。
(4)外文、符号、公式要准确,应使用统一规定的名词和符号。 (5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。
实验报告批改说明
实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行
实验项目名称: 初级程序设计 实验学时: 6 同组学生姓名: 实验地点: 实验日期: 实验成绩:
批改教师: 批改时间:
实验1 初级程序设计
一、实验目的和要求
(1)熟悉Visual C++集成环境,进行编辑、保存、编译、连接及运行,并能进行简单程序调试;
(2)掌握C语言中各种运算符的使用; (3)掌握C语言中各种数据类型的区别与应用;
(4)熟练掌握C语言中变量的定义、赋值和使用,表达式语句、输入/输出语句的使用; (5)掌握C语言中输入/输出函数的使用;
(6)掌握C语言中控制语句的使用,含if-else、for、while、do-while语句的使用。
二、实验仪器和设备
奔腾以上计算机,装有windows XP以上版本操作系统和Visual C++ 6.0软件。
三、实验内容与过程
1、程序调试
(1)#include
{ int s,t,p,sum;
scanf(“%d%d%d”,&s,&t,&p); sum=s+t+p;
printf(“sum=%d\\n”,sum); } (2)
#include
if((c>=’a’)&&(c<=’z’)) c=c-32; printf(“Char is %c”,c); } (3)
#include
{int x=1,y=1,z=1; y=y+z; x=x+y;
printf(“%d ”,x printf(“%d ”,x #include printf(“Please input a string:”); gets(s); /*scanf(“%s”,s);*/ printf(“\\nYou input string is: %s”,s); } (5)#include if(k=3) printf(“***”); else printf(“###”); } (6)#include { printf(“k=%d\\n”,k); }while(k++>0); } 2、问题:完成以下三个程序,分别以文件名A01.c、A02.c和A03.c保存: (1)定义两个整型变量x,y,要求利用scanf()函数从键盘对x,y赋值,然后利用printf()输出两者之和。 (2)定义两个变量:整型x,实型y,要求利用scanf()函数从键盘对x,y赋值,然后利用printf()输出两者之积。 (3)定义两字符型变量ch1、ch2,分别用getchar()和putchar()函数进行输入输出。 要求: (1)从键盘输入的时候,注意用多种分隔符的方法; (2)输出时,格式控制中要包含一些提示字符。 金陵科技学院实验报告 } void fun(int tt[M][N],int pp[N]) { } int i ,j; for(j=0;j pp[j]=tt[0][j]; for(i=1;i if(tt[i][j] pp[j]=tt[i][j]; printf(\原始数据为:\\n\ for(i=0;i for(j=0;j printf(\ printf(\ } printf(\ fun(t,p); printf(\结果为:\\n\ for(k=0;k printf(\ printf(\ 19 金陵科技学院实验报告 心得体会: 20 金陵科技学院实验报告 实验项目名称: 高级程序设计 实验学时: 6 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间: 21 金陵科技学院实验报告 实验3 高级程序设计 一、实验目的和要求 (1)理解C语言中指针的本质,区分指针与指针变量,掌握有关指针的应用; (2)熟练掌握字符串常量和字符串的存储及字符串处理函数的使用; (3)掌握字符指针的定义、使用等; (4)掌握向函数传递字符串的方法; 二、实验仪器和设备 奔腾以上计算机,装有windows XP以上版本操作系统和Visual C++ 6.0软件。 三、实验内容与过程 1、程序调试 (1) main() { int a=10,b=20,x,*pa,*pb; pa=&a;pb=&b; printf(“%d,%d,%d,%d”,a,b,*pa,*pb); x=*pa;*pa=*pb;*pb=x; printf(“%d,%d,%d,%d”,a,b,*pa,*pb); } (2) main() { int a=10,b=20,*p,*pa=&a,*pb=&b; printf(“%d,%d,%d,%d”,a,b,*pa,*pb); p=pa;pa=pb;pb=p; printf(“%d,%d,%d,%d”,a,b,*pa,*pb); } (3) int *swap(int *a,int *b) { int *p; p=a; a=b; b=p; return(a); } main() {int x=3,y=4,z=5; swap(swap(&x,&y),&z); printf(“%d,%d,%d”,x,y,z); } 思考:上面程序中函数swap()预将两个数的值相互交换,但结果为什么没有交换? 2、程序改错 22 金陵科技学院实验报告 要求:1、改错时,只允许修改现有语句中的一部分内容,不允许添加和删除语句。 2、提示行下一行为错误行。 (1)功能:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换,输出数组元素。 #include void input(int *arr,int n) { int *p,i; p=arr; printf(\ for(i=0;i /**********ERROR**********/ scanf(\} void max_min(int *arr,int n) { int *min,*max,*p,t; min=max=arr; for(p=arr+1;p /**********ERROR**********/ if(*p<*max) max=p; else if(*p<*min) min=p; t=*arr;*arr=*min;*min=t; /**********ERROR**********/ if(max=arr) max=min; t=*(arr+n-1); *(arr+n-1)=*max; *max=t; } void output(int *arr,int n) { int *p,i; p=arr; printf(\ /**********ERROR**********/ while(i=0;i main() { int a[10]; input(a,10); 23 金陵科技学院实验报告 max_min(a,10); output(a,10); } (2)功能:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。 例如:当s所指的字符串的内容为\时,t所指数组中的内容为\。 #include /**********FOUND**********/ void fun (char s, char t) { int i, d; /**********FOUND**********/ d = len(s); /**********FOUND**********/ for (i = 1; i t[i] = s[d - 1 - i ]; for (i = 0; i /**********FOUND**********/ t[2*d] = '/0'; } main() { char s[100], t[100]; printf(\ scanf(\ fun(s, t); printf(\} 3、程序设计 说明,所有题目均需添加main(),在main()中调用子函数并设计完整的输入输出才可调试通过。 (1) 功能:请编写一个函数 int fun(int *s, int t, int *k),用来求出数组的最大元素在数组中的下标, 用k返回。 例如: 输入如下整数:876 675 896 101 301 401 980 431 451 777 则输出结果为: 6, 980 (2) 功能:编写函数void len_cat(char c1[],char c2[])将第二个串连接到第一个串之后,不允许使用strcat函数 (3) 功能:编写函数long fun ( char *p),将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。 例如:若输入字符串\,则函数把它转换为整数值 -1234。 24 金陵科技学院实验报告 (4) 功能:编写函数int fun(char *ptr)过滤串,即只保留串中的字母字符,并统计新生成串中包含的字母个数作为函数的返回值。 (5)功能:编写函数void fun(char s[])将一个由四个数字组成的字符串转换为每两个数字间有一个空格的形式输出。 例如:输入“4567”,应输出“4□5□6□7”(□表示空格)。 (6) 功能:编写函数void fun(char s[],char c)从字符串s中删除指定的字符c。 说明:该字符可能多次和连续出现,算法应全面考虑。 4、讨论、思考题 (1)功能:请编写函数void fun(char (*s)[N], char *b),将M行N列的二维数组中的字符数据按列的顺序依次放到一个字符串中。 例如:二维数组中的数据为: W W W W S S S S H H H H 则字符串中的内容应是:WSHWSHWSHWSH。 (2)功能:编写函数void fun(char str[],int i,int n),从字符串str中删除第i个字符开始的连续n个字符(注意:str[0]代表字符串的第一个字符)。 (3)功能:编写函数void fun(char *s,char t[]),将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。 例如:若s所指字符串中的内容为:\,其中字符A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必需删除;而字符1的ASCII码值为奇数,所在数组中的下标也为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是:\。 (4) 功能:请编写函数int fun( char *s),统计一行字符串中单词的个数作为函数值返回。规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。 程序清单及流程图: 1、程序调试 25 金陵科技学院实验报告 2、程序改错 (1)功能:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换,输出数组元素。 #include void input(int *arr,int n) { int *p,i; p=arr; printf(\ for(i=0;i /**********ERROR**********/ scanf(\} void max_min(int *arr,int n) { int *min,*max,*p,t; min=max=arr; for(p=arr+1;p /**********ERROR**********/ if(*p>*max) max=p; 26 金陵科技学院实验报告 else if(*p<*min) min=p; t=*arr;*arr=*min;*min=t; /**********ERROR**********/ if(max==arr) max=min; t=*(arr+n-1); *(arr+n-1)=*max; *max=t; } void output(int *arr,int n) { int *p,i; p=arr; printf(\ /**********ERROR**********/ for(i=0;i printf(\ printf(\} main() { int a[10]; input(a,10); max_min(a,10); output(a,10); } (2)功能:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。 例如:当s所指的字符串的内容为\时,t所指数组中的内容为\。 #include /**********FOUND**********/ 27 金陵科技学院实验报告 void fun (char *s, char *t) { int i, d; /**********FOUND**********/ d = strlen(s); /**********FOUND**********/ for (i = 0; i t[i] = s[d - 1 - i ]; for (i = 0; i /**********FOUND**********/ t[2*d] = '\\0'; } main() { char s[100], t[100]; printf(\ scanf(\ fun(s, t); printf(\} 四、实验结果与分析(程序运行结果及其分析) 3、程序设计 (1) 功能:请编写一个函数 int fun(int *s, int t, int *k),用来求出数组的最大元素在数组中的下标, 用k返回。 例如: 输入如下整数:876 675 896 101 301 401 980 431 451 777 则输出结果为: 6, 980 #include int fun(int *s, int t, int *k) { int i,max; max=s[0]; for(i=0;i if(max max=s[i]; 28
正在阅读:
C语言程序设计实验报告05-15
华南理工大学成人高等教育-华南理工大学继续教育学院03-08
广东省广州市海珠区2017-2018学年八年级第二学期期末区统考试卷06-15
3 水轮发电机组安装工程(1)03-20
皮带队重大事故责任追究制度06-05
进国有银行工作前必须掌握的知识08-23
春节印记作文1000字06-18
韩都衣舍促销策划06-27
oubei家居圣诞、元旦活动方案08-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 程序设计
- 语言
- 实验
- 报告
- 2017-2018学年度新人教版初中数学七年级下册期末模拟训练题及答
- 常见递推数列通项公式的求法
- 浅谈方言与语言习得的关系
- 小学体育德育渗透教案
- 汽车电工电子习题库
- 2007年江西省小学英语听力竞赛试题语言材料及参考答案
- 人教新目标英语八年级下册Unit 5 单元教案 最新人教版初二英语下
- 西南科技大学
- 对于国际法上引渡制度中政治犯不引渡原则的研究论文
- 水合肼还原法制备纳米银粒子的研究
- 谈谈如何提高学习者的自我监控能力
- 能源管理手册
- 电力安全隐患体会-word范文(16页)
- release note 上位软件 20070718
- 中国镀锌卷板行业市场前景分析预测年度报告(目录) - 图文
- 中国农产品出口存在的问题与对策
- 跨文化研究方法论
- 智能家庭烟雾检测报警系统
- 基于MCS-51单片机的洗衣机控制系统设计
- 基于模糊PID算法的恒温箱温度控制系统设计解读 - 图文