东北大学《C语言实验指导》

合集下载

东北大学C++实验报告2

东北大学C++实验报告2
}
运行结果:
2.
编写重载函数Max1可分别求两个整数,三个整数,两个双精度数,三个双精度数的最大值。
分别编写四个同名函数max1,实现函数重载,在main()函数中测试函数功能。程序名:lab3_2.cpp
源代码:
#include<iostream>
using namespace std;
int max(int a,int b)
}
}
运行结果:
思考题
1.如何利用系统函数来实现一些常用的功能?
使用之前首先包含头文件,然后在代码中直接使用。
2.如何查找系统函数?
上网查找或者翻阅书籍。
3.如何实现函数重载?
改变参数的类型或者改变参数的个数
4.如何编写一个递归程序?
找到函数的递归规律,并在结束时加上结束条件。
2.编写重载函数Max1可分别求两个整数,三个整数,两个双精度数,三个双精度数的最大值。
3.使用系统函数pow(x,y)计算xy的值,注意包含头文件math.h
4.用递归的方法编写函数求Fibonacci级数,观察递归调用的过程
三、实验内容
1.
编写一个函数把华氏温度转换为摄氏温度,转换公式如下C=(F-32)*5/9
return 0;
}
运行结果:
4.
用递归的方法编写函数求Fibonacci级数,观察递归调用的过程
编写递归函数int fib(int n),在主程序中输入n的值,调用fib函数计算Fibonacci级数。
公式为fib(n)=fib(n-1)+fib(n-2),n>2;
fib(1)=fib(2)=1。
使用if语句判断函数的出口,在程序中用cout语句输出提示信息。程序名:lab3_5.cpp

东北大学编译原理实验1

东北大学编译原理实验1

编译原理程序设计实验报告——实验题目班级:计算机1507班姓名:罗艺博学号:一、实验目标:词法分析扫描器的设计实现。

在程序源文件中输入类C 语言程序源文件,设计词法分析扫描器,并以TOKEN类别码序列的形式输出扫描结果。

二、实验内容:1.概要设计:将程序大致分为:主函数、识别器(有限自动机state_change)、词法分析器(state_to_code)三大部分。

其中,主函数所完成的功能为:打开、读取、关闭文件(即C语言源程序),重置token串等。

识别器的功能为:识别字符,完成token串的生成,判断词法错误等。

词法分析器的功能为:生成token类别码,判断token 是否出错等。

主函数、识别器、词法分析器关系图2.流程图词法分析扫描器流程图3.关键函数a. 识别器(有限自动机state_change)int state_change(state,ch) 词法分析器(state_to_code)int state_to_code(state_before,token)断函数int IsAlpha(char c) n");exit(1);}while((ch = fgetc(fp)) != '#'){state_before = state;state = state_change(state,ch);if(state == -1) {printf(" Err! Stupid man!\n");}else if (state != 0){token[i++] = ch;}else{if(state_before != 1) {state_to_code(state_before,token);}memset(token,0,10);i = 0;state = 1;}}fclose(fp);return 0;}int state_change(state,ch) //判断是否为CT中的小数点 {if(state == 3)return 4;elsereturn -1;}else if(ch == '\'') //判断是否为CT字符 {if(state == 1)return 7;else if(state == 6) //考虑与PT相连的情况state_to_code(state_before,token);i = 0;memset(token,0,10);return 7;}else if(state == 8)return 9;elsereturn -1;}else if(ch == '\"') //判断是否为ST {if(state == 1)return 10;else if(state == 6) //考虑与PT相连的情况 {state_to_code(state_before,token);i = 0;memset(token,0,10);return 10;}else if(state == 11)return 12;elsereturn -1;}else //判断是否为PT {if(state == 1)return 6;else if(state == 2) //考虑与IT,KT相连的情况 {state_to_code(state_before,token);i = 0;memset(token,0,10);return 6;}else if(state == 3) //考虑与CT相连的情况 {state_to_code(state_before,token);i = 0;memset(token,0,10);return 6;else if(state == 9) //考虑与CT字符相连的情况 {state_to_code(state_before,token);i = 0;memset(token,0,10);return 6;}else if(state == 12) //考虑与ST相连的情况 {state_to_code(state_before,token);i = 0;memset(token,0,10);return 6;}else if(state == 6){if(((i == 1)&&(ch == '='))&&((token[0] == '>')||(token[0] == '<')||(token[0] == '='))){return 6;}elsereturn 0;}elsereturn -1;}}int state_to_code(state_before,token) //词法分析器{int n; //循环code1 = 0;code2 = 0;switch(state_before){case 2://KT <1 X>for(n=0; n<6; n++) {if(strcmp(token, KT[n]) == 0){code1 = 1;code2 = n;printf("<%d %d>\n",code1,code2); //why改变不了全局的code1,code2break;}}if(code1 == 0) //IT <2 0> {printf("<2 0>\n");}break;case 3://CT <3 0>printf("<3 0>\n");break;case 5: //CT(小数) <3 0> printf("<3 0>\n");break;case 6: //PT <6 X> for(n=0; n<18; n++){if(strcmp(token, PT[n]) == 0){code1 = 6;code2 = n;printf("<%d %d>\n",code1,code2); //why改变不了全局的code1,code2break;}}break;case 9://CT字符 <4 0>printf("<4 0>\n");break;case 12: //ST <5 0> printf("<5 0>\n");break;default : //不被任何词识别 printf("Sorry it's going wrong!");}return 0;}int IsAlpha(char c) //判断是否为字母{if(((c>='a')&&(c<='z')) || ((c>='A')&&(c<='Z')))return 1;elsereturn 0;}int IsNum(char c) //判断是否为数字{if(c>='0'&&c<='9')return 1;elsereturn 0;}int IsKey(char *word) //判断是否为关键字{int m,n;for(n=0; n<6; n++){if((m = strcmp(word, KT[n])) == 0){if(n == 0)return 2;return 1;}}return 0;}int IsDelimiter(char *token) //判断是否为界符{int m,n;for(n=0; n<18; n++){if((m = strcmp(token, PT[n])) == 0){if(n == 0)return 2;return 1;}}return 0;}程序运行结果:(截屏)输入:输出:。

东北大学C语言程序作业4

东北大学C语言程序作业4

C语言程序设计实验报告1.实验目的1.熟练掌握一维数组、二维数组的定义、初始化和输入和输出的方法;2.掌握字符数组和字符串函数的使用;3.掌握与数组有关的常用方法(如查找、排序等)。

2.实验指导1)对任意一个一维整型数组,从中找出数组元素的最大值和最小值并输出。

要求:①数组有10个元素;②使用scanf函数实现数组元素的输入,在输入前给出必要的提示;③输出时,首先输出数组的10个元素,然后输出其最大值和最小值。

2)编写函数cmpStr(char s1[ ],char s2[ ])比较两个字符串s1和s2的大小。

如果s1>s2,返回一个正数;s1=s2,返回0;s1<s2,返回一个负数,在主函数中调用该函数完成字符串的比较操作,并输出返回值。

要求①不允许使用strcmp()函数;②用gets()函数在主函数中输入两个字符串;③实现cmpStr()函数,返回的正数或负数的绝对值应该是进行比较的两个字符串中相应的字符的ASCII码的差值。

3)将三个学生、四门课程的成绩分别存放在4*5数组的前3*4列,计算出每个学生的总成绩存放在该数组的最后一列的对应行上,然后计算出单科成绩的平均分存放在最后的对应列上。

要求:①数组类型定义为实型,成绩由scanf函数从键盘输入;②输出原始成绩(3*4列);③计算每个学生的总成绩以及单科成绩的平均分,并按要求填入到数组中,输出的结果数组(4*5列);④修改程序,采用函数调用的方式实现。

●编写一个input()函数,功能是输入学生的原始成绩;●编写一个compute()函数,功能是计算出每个学生的总成绩和单科成绩的平均分,并将计算结果分别填入4*5矩阵的最后一列和最后一行中;●编写一个output()函数,功能是输出数组元素;●在主函数中定义一个4*5数组,调用上述三个函数,以数组作为函数参数,实现该程序。

3.算法描述流程图(1)流程图如下(2)程序流程图如下(3)程序流程图如下4.原程序(1)程序为#include<stdio.h> main(){int a[10],i,max,min;for (i=0;i<=9;i++){scanf("%d",&a[i]); }max=a[0];min=a[0];for(i=1;i<=9;i++)开始定义子函数comStr() 声明变量z,s1,s2;结束输入单词输出结果{if(a[i]>max)max=a[i];if(a[i]<min)min=a[i];}for(i=0;i<=9;i++){printf("a[%d]=%d\n",i,a[i]);}printf("the maximum value is %d,and the minimum value is %d\n",max,min); }(2)原程序为#include<stdio.h>int cmpStr(char s1[],char s2[]){int i,diff;i=0;while((s1[i]==s2[i])&&(s1[i]!='\0')) i++;if (s1[i]=='\0'&&s2[i]=='\0')diff=0;elsediff=s1[i]-s2[i];return diff;}main(){int z;char s1[100],s2[100];printf("input the first string:");gets(s1);printf("input the second string:");gets(s2);z=cmpStr(s1,s2);printf("the difference between two string is %d\n",z);}(3)#include<stdio.h>input(float stu[4][5]){int i,j;printf("请输入各门课程成绩:");for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%f",&stu[i][j]);}compute(float stu[4][5]){int i,j;for(i=0;i<4;i++){stu[i][4]=0;stu[i][4]=stu[i][0]+stu[i][1]+stu[i][2]+stu[i][3];for(j=0;j<5;j++){stu[3][j]=0;stu[3][j]=(stu[0][j]+stu[1][j]+stu[2][j])/3;}}}output(float stu[4][5]){int i,j;for(i=0;i<4;i++)for(j=0;j<5;j++){printf("%6.1f ",stu[i][j]);if((j+1)%5==0)printf("\n");}}main(){float a[4][5];input(*a);compute(*a);output(*a);}4.测试数据(1)①测试数据为10 ,454,61,31,34, 71, 58, 68 ,12 ,19.②测试数据2,4,6,7,8,9,4,6,7,3.(2)①测试数据为abc, des.②测试数据为abcd, abcd.③测试数据为hjkl, asdf.(3)测试数据为:85,98, 96,97,85,84,85,86,92,93,87,96。

《程序设计基础教程----C语言版》实验指导手册

《程序设计基础教程----C语言版》实验指导手册

四川师范大学数学与软件科学学院信息与计算科学专业《程序设计基础教程----C语言版》课程实验指导手册本实验指导手册旨在指导数学与软件科学学院信息与计算科学专业《程序设计基础教程----C语言版》(专业必修课)的实验教学活动过程。

其主要使用对象为本课程主讲教师和实验指导教师。

它可以作为教学过程中的教学辅助参考资料,也可以作为学生在本门课程的学习中,结合实际教学内容,完成相关实验并填写实验报告的主要依据。

具体实施过程中,除开各实验中要求的必做题目外,教师可结合实际教学情况,根据学生接受程度作适当扩展。

学生在进行实践设计活动时,也可以结合自身掌握和学习的实际情况进行有选择地实践。

本指导手册仅针对本学院信息与计算科学专业而设置。

本实验手册编写的参考书籍:1.《程序设计基础教程----C语言版》,冯山,马廷淮主编,北京:科学出版社,2008年5月2.《C语言程序设计教程(第二版)》,谭浩强,张基温,唐永炎编著,北京:高等教育出版社,2002年3月3.《C语言习题集与上机指导(第二版)》,谭浩强,张基温主编,北京:高等教育出版社,2002年1月引言程序设计是实践性很强的课程。

实践也是学好程序设计课程中必不可少的重要环节。

程序设计的实践分两个步骤:一是设计和编写解决问题的程序算法流程,并在此基础上编写源程序代码;二是在计算机上对程序进行调试,并使程序完成问题的求解过程,进行相应的逻辑测试。

实验过程中,应当注意如下问题:(1) 上机实习的主要目的是训练C语言程序的上机调试能力和分析、解决调试过程中遇到的问题的能力。

并在此过程中逐步提高程序编写与问题分析能力。

而不是简单地对教材上的实例做验证式的操作;(2) 上机内容可以结合教材内容和习题,或由老师布置专门的上机习题进行;(3) 为提高上机效果。

必须在上机之前准备好上机的基本内容并编写好上机程序,尽量在上机之前先作好预先的阅读分析工作;(4) 上机调试的基本方法:语法检查(编译)==>逻辑检查(设计者检查)==>测试。

C语言程序设计实验指导书

C语言程序设计实验指导书

计算机软件基础实验指导书计算中心辽宁工业大学2008年12月目录实验一熟悉C语言编程环境 (1)实验二基本数据处理 (8)实验三计算分段函数 (11)实验四指定次数的循环 (15)实验五分支结构程序设计 (18)实验六循环结构程序设计(一) (24)实验七循环结构程序设计(二) (29)实验八循环结构程序设计(三) (34)实验九循环结构程序设计(四) (39)实验十函数程序设计(一) (43)实验十一函数程序设计(二) (50)实验十二一维数组程序设计 (57)实验十三二维数组程序设计 (63)实验十四字符数组程序设计 (70)实验十五指针程序设计 (76)实验十六结构程序设计 (87)实验十七文件 (93)实验一熟悉C语言编程环境【实验目的】1、熟悉C语言编程环境,掌握C程序在Visual C++ 6.0环境下的编辑、编译、连接和运行。

2、能够编写简单的C程序。

3、掌握程序的调试方法,能够找出并改正程序中的语法错误。

【实验内容】一、在Visual C++ 6.0编程环境下的操作步骤用一个示例详细介绍C语言源程序在Visual C++ 6.0编程环境下,操作的整个过程。

【示例】在屏幕上显示你的学号、姓名和专业源程序:/*在屏幕上显示你的学号、姓名及专业*/#include "stdio.h"void main(){printf("\t08001020\t张楠\t车辆工程\n");}操作步骤:(1)启动VC++。

执行“开始”“程序”“Microsoft Visual Svtudio 6.0”“Microsoft Visual C++ 6.0”命令,进入VC++编程环境(如图1-1所示)。

图1-1 VC++窗口(2)新建文件。

执行“文件”“新建”命令,单击“文件”选项卡(如图1-2所示),选列表中的“C++ Source File”,在“文件”文本框中输入2-1.c,在“C目录”文本框确定存放位置,然后单击确定。

c语言程序设计 实验指导书

c语言程序设计 实验指导书

c语言程序设计实验指导书C语言程序设计实验指导书一、引言C语言是一种通用的高级编程语言,广泛应用于计算机科学和软件开发领域。

为了帮助学生更好地理解和掌握C语言的编程技巧,我们编写了本实验指导书。

本指导书旨在引导学生完成一系列的C语言实验,从简单的程序设计入门开始,逐步深入学习C语言的各个方面。

二、实验一:Hello World程序1. 实验目的通过编写一个简单的Hello World程序,学习C语言的基本语法和编程环境的搭建。

2. 实验内容编写一个C程序,在屏幕上输出"Hello World"字样。

3. 实验步骤1) 打开C语言编译器,新建一个源文件。

2) 在源文件中编写C程序,使用printf函数输出"Hello World"。

3) 编译并运行程序,观察输出结果。

4. 实验结果在屏幕上显示出"Hello World"字样。

三、实验二:变量和数据类型1. 实验目的了解C语言中的变量和数据类型的概念,学习如何声明和使用变量。

2. 实验内容编写一个C程序,演示各种数据类型的声明和使用。

3. 实验步骤1) 在源文件中声明各种数据类型的变量,如int、float、char等。

2) 对各种变量进行赋值和运算操作。

3) 使用printf函数输出各种变量的值。

4. 实验结果屏幕上显示出各种变量的值。

四、实验三:控制语句1. 实验目的学习C语言中的控制语句,掌握条件语句和循环语句的用法。

2. 实验内容编写一个C程序,演示条件语句和循环语句的使用。

3. 实验步骤1) 使用if语句判断某个条件是否成立,根据条件的结果执行相应的操作。

2) 使用for循环语句实现某个操作的重复执行。

3) 使用while循环语句实现某个操作的反复执行,直到某个条件不再满足。

4. 实验结果根据条件的不同,程序执行相应的操作,循环语句可以重复执行某个操作。

五、实验四:函数和数组1. 实验目的学习C语言中的函数和数组的概念,掌握函数的定义和调用,以及数组的声明和使用。

东北大学C语言实验报告要求及模板模版

东北大学C语言实验报告要求及模板模版

C语言上机实验要求:1、每次实验满分10分,每次试验按要求写实验报告。

2、每次把实验报告提交到LINTIAN8@信箱里。

3、上实验课不得迟到、早退(扣2分),旷课本次实验0分记。

4、事假必须有假条,否则一律按旷课处理。

5、上实验课不得做与实验无关的事情,否则酌情扣分或取消上实验课资格。

6、实验报告不得抄袭,发现实验报告雷同者,一律按0分记。

参考看网站:1)、/ 上-->教学资源中心-----〉资源共享课-----〉工学--------〉高级语言程序设计2)、/cxsj/ 上------〉上机实践(教学视频1,2,3)----〉程序实例C语言程序运行过程四个步骤:1、编辑(EDIT)2、编译(COMPILE)3、链接(BUILD)4、运行(RUN)具体操作步骤:启动VisualC++6.0-->文件--〉新建(new)-->文件---〉C++Sourcefile-->添加文件名(必须后缀.C)--->添加存放文件目录-->编辑文件-->编译文件--->链接文件--->运行文件--->看结果.C语言程序设计实验报告1实验目的2实验内容3算法描述流程图4源程序5测试数据6运行结果7出现问题及解决方法8实验心得C语言程序设计实验报告1实验目的1.熟练掌握if、if...else、if...else if语句,掌握if语句中的嵌套关系和匹配原则,利用if语句实现分支选择结构。

2.熟练掌握for语句格式及使用方法3.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧.进一步学习调试程序,掌握语法错误和逻辑的检查方法。

4.掌握C函数的定义方法,函数的调用方法,参数说明以及返回值,掌握实参与形参的对应关系以及参数之间的“值传递”的方式。

5.在编程的过程中加深函数调用的设计思想。

2实验内容输入一个数值,计算并输出该数值以内最大的10个素数以及它们的和.要求:(1) 在程序内部加必要的注释.(2)要对小于该数以内不够10个素数的情况进行处理.(3)输出的形式为:素数1+素数2+...+素数10=总和值.3算法描述流程图主函数流程图:判断素数函数流程图:4源程序int a(int n) /*设计一个求素数的函数*/{ int i;for(i=2;i<=n/2;i++)if(n%i==0) return 0; /*不是素数则返回0*/return 1; /*是素数则返回1*/}main(){int i=1,n,sum=0,k;printf(“Input a number:”);scanf("%d",&k); /*输入一个整数*/for(n=k;n>1;n-=1){if(a(n)) /*调用a(int n)函数,判断是否为素数*/ {if(i==1) printf("%d",n);else printf("+%d",n); /*是素数以和的形式输出*/sum+=n; /*是素数则求和*/i++;}if(i==11) break; /*当i>10时就退出循环*/}printf("=%d\n",sum);if(i<=10) printf("not shuchu.\n"); /*当i〈10时,程序结束*/}5测试数据测试数据为10,100,1000.6运行结果当测试数据为10时:当测试数据为100时:当测试数据为1000时:7出现问题及解决方法1)在本实验中,需按要求的格式输出“素数1+素数2+...+素数10=总和值.”,因采用循环for(n=k;n>1;n-=1){if(a(n)){if(i==1) printf("%d",n);else printf("+%d",n);sum+=n;i++;}if(i==11) break;}printf("=%d\n",sum);从而使输出结果符合题目要求;2)要对不足10个的素数进行处理,因而要加入“if(i<=10) printf("not shuchu.\n");”8实验心得通过该实验,我对分支(if,if``else,if```else if```)和循环结构(for,while,do```while)的几种用法更加熟练,并掌握了函数的定义与调用,参数说明以及返回值使用。

东北大学C语言课程设计程序实践报告

东北大学C语言课程设计程序实践报告

C语言程序设计报告工资管理系统学生姓名:学生系别:计算机科学与技术学生班级:日期:20xx年x月x日程序实践报告【运行环境】软件:Windows、Microsoft Visual C++ 6.0PC一台【实践要求】工资信息包括:编号、姓名、基本工资、岗位工资、实发工资、房改补助、奖励、公积金、扣税使之提供以下功能:(1)用户登陆。

(2)背景音乐。

(3)工资信息录入功能。

(4)工资信息浏览功能。

(5)工资信息查询功能。

(6)工资信息删除功能。

(7)工资信息修改功能。

(8)工资信息排序功能。

【概要设计】【存储设计】程序数据存取主要由两个文件:pay.txt、admin.txt组成。

admin.txt :主要存储用户名和密码pay.txt :职工信息。

包括编号、姓名、基本工资、岗位工资、实发工资、房改补助、奖励、公积金、扣税【头函数】typedef struct pay{long num;short month;char name[20];float should_pay,rebate,actual_pay,post_wage,merit_pay,house_subsidy,prize,reserve_fund;struct pay *next;}PAY;定义了一个包含编号、姓名、基本工资、岗位工资、实发工资、房改补助、奖励、公积金、扣税变量的结构体。

【模块功能】1、void menu();z这个是菜单,用来提示用户选择需要的功能。

打印出各种选项可供用户选择。

2、PAY *input();y这是用来新建职工信息。

包括编号、姓名、基本工资、岗位工资、实发工资、房改补助、奖励、公积金、扣税。

用预先定义的结构体和指针链表来完成。

3、void output();m这是用来输出职工信息。

可以按照各种关键字排序输出。

包括按编号输出、按基本工资输出、按岗位工资输出、按实发工资输出。

用预先定义的结构体和指针链表来完成。

东北大学C语言课件PPT

东北大学C语言课件PPT

《程序设计基础(C)》课程组@
1-3. C语言概述
Visual C++ 6.0环境
标题栏 菜单栏
工具栏
项目工作区
编辑区 输出区
《程序设计基础(C)》课程组@
程序设计语言的发展
Machine Languages
Assembly Languages
+1300042774 +1400593419 +1200274027
LOAD A ADD B STORE C
High-Level Languages
C=A+B
《程序设计基础(C)》课程组@
《程序设计基础(C)》课程组@
1-2.算法
开始
流程图
定义变量a
例1-4:输出全班(30名) 及格学生的成绩
– 算法描述

输入第一个学生成绩 <=30名?
结束

成绩a>=60? 假

输出该成绩
读入下一个学生成绩
《程序设计基础(C)》课程组@
1-2.算法
软件
由程序和有关程序的技术文档资料组成 软件系统
– 系统软件 – 应用软件
《程序设计基础(C)》课程组@
1-1.程序和程序设计语言
程序设计语言
必须由某种程序设计语言描述
– 是与计算机交流的工具
《程序设计基础(C)》课程组@
1-1.程序和程序设计语言
– 冯·诺依曼体系结构
运算器
输入数据
输入 设备
存储器
执行存放在计算机的内部 存储器中的指令
控制器
输出数据 输出 设备
《程序设计基础(C)》课程组@

C语言实验指导书全教程

C语言实验指导书全教程

第一部分:《C语言程序设计》实验教学大纲一、本实验课的性质、任务与目的本实验课目的是使学生掌握C语言编程的常用方法,以任务驱动教学法,重点培养学生的编程能力,为以后学习后继专业课程和进行软件开发打下基础。

通过学习能够运用C语言中的各个知识点编写能完成一定功能的程序。

训练学生进行复杂程序设计的技能和培养良好程序设计的习惯,实验教学是培养应用型人才的重要环节,其重要程度决不亚于知识的传授。

把高级语言的学习与程序设计、上机实践紧密地结合起来,以提高学生能灵活运用新的知识分析问题和解决问题的能力。

二、本实验课所依据的课程基本理论本实验课基于C语言的语法和词法规则、数据的表示及算法的处理,而语法及算法正是高级语言程序设计的主要研究对象。

《C语言程序设计》的主要任务是:C 语言是一种应用广泛结构化程序设计语言,本课程介绍C语言的基本概念、基本语法和编程方法,重点描述C语言的结构化的特征,并通过本课程的学习,使学生掌握一定的结构化程序设计的知识,以及用C语言编写程序的能力。

三、实验类型与要求在做每个实验之前,让学生对本次实验相关的内容进行预习、算法设计、流程图的设计、编写程序,做好实验的准备工作;写出预习报告,画出流程图,要求独立完成。

每组1人,实验共40学时五、考核方式与评分办法实验总成绩=出勤情况*10%+实验报告*20%+平时*30%+实验内容*40%六、本实验课配套教材或实验指导书教材:苏小红主编.C语言大学实用教程,电子工业出版社,十一五国家级规划教材,2008 .7参考书:[1]何钦铭,颜晖主编.C语言程序设计,高等教育出版社,十一五规划教材,2008 .1[2]颜晖主编.C语言程序设计实验指导,高等教育出版社,2008.1[3]张引,何钦铭等. C程序设计基础课程设计,浙江大学出版社,2007.9[4]谭浩强. C程序设计题解与上机指导.北京:清华大学出版社.2006年3月第3版[5]谭浩强. C程序设计试题汇编.北京:清华大学出版社.2006年3月第2版[6]夏宽理. C语言程序设计.北京:中国铁道出版社.2006年2月第1版[7]夏宽理. C语言程序设计上机指导与习题解答.北京:中国铁道出版社.2006.2[8]王士元. C高级实用程序设计.北京:清华大学出版社.1996年1月第1版[9]谭浩强. C程序设计.北京:清华大学出版社.2006年3月第3版七、实验报告要求上机实验目的在于:①通过验证课本中的内容及自己编写的程序,加深对课本中词法、语法的掌握;②熟悉所用的C语言开发环境;③上机调试自己的程序,学会编程,重要是能上机调试通过,调试经验是通过自己的直接实践来累积。

c语言程序设计实验指导(学生用)

c语言程序设计实验指导(学生用)

C语言程序设计实验指导(学生用)计算机基础教研室《C语言程序设计》课程组2012年9月前言《C语言程序设计》是计算机科学技术系面向全校理工科开设的一门专业平台课程。

通过这门课程的学习,可以让学生了解程序设计的思想和方法,掌握高级语言程序设计的基本知识,提高问题求解和程序语言的应用能力。

《C语言程序设计实验指导书》是《C语言程序设计》的配套指导书。

本指导书本着“厚基础,重实践,以专业为导向”的原则,其中程序设计基础、数组、函数这三个实验项目是所有学科专业都必须掌握的,其他实验项目根据专业特点,设计了不同的要求:对于普通专业侧重循环、数组、函数、结构体等,生化类专业包含数据文件的处理,机械电子类专业包含位运算,数理类专业包含数值计算等内容。

每个实验本着循序渐进的原则,由简到难,逐步深化,另外配有相应的实验练习,学生可根据自己的情况选择完成。

本指导书所有程序代码均在Visual C++环境下调试通过。

本指导书在编写过程中得到了系领导的大力支持,王海燕主任在百忙中多次参加我们的课程研讨,庄波老师、宫锋老师在大纲编写、指导书任务设计方面给出了切实可行的意见和建议,在此深表感谢。

本指导书由计算机基础教研室《C语言程序设计》课程组全体人员共同编写,谢玉华老师负责统筹安排,实验一、实验二、实验三、实验七由张志芬老师编写,实验四、实验六由陈春华、薛红芳老师编写,实验五由陈庆燕老师编写,最后由张志芬老师统稿,在此一并感谢。

由于水平有限,本指导书难免存在疏漏和不足之处,望各位老师在使用过程中多提宝贵意见,有利于我们进一步改进。

《C语言程序设计》课程组2012年9月目录实验一基本控制结构的应用 (1)1.1 熟悉编程环境 (1)1.2 顺序结构程序设计 (1)1.3 选择结构程序设计 (2)1.4 循环结构程序设计 (4)实验二数组的应用 (7)2.1 一维数组的应用 (7)2.2 二维数组的应用 (10)2.3 字符数组的应用 (12)实验三函数的应用 (13)实验四位运算的综合应用 (15)实验五数据文件的处理 (22)实验六数值计算 (25)实验七简单学生成绩管理系统 (30)实验一基本控制结构的应用1.1 熟悉编程环境一、实验目的1.了解C语言程序的开发环境,掌握C语言源程序的编辑、编译、连接及运行过程;2.通过运行简单的C程序,初步了解C语言源程序的特点及基本结构。

C语言程序设计实验指导(源代码)

C语言程序设计实验指导(源代码)

《C语言程序设计》实验源程序代码目录实验二顺序结构程序设计(上) (2)实验三顺序结构程序设计(下) (2)实验四选择结构程序设计(上) (4)实验五选择结构程序设计(下) (4)实验六循环结构程序设计(上) (5)实验七循环结构程序设计(下) (6)实验八函数 (8)实验九数组(上) (9)实验十数组(下) (11)实验十一指针的应用 (12)实验十二结构体 (14)实验十三文件操作 (17)实验二顺序结构程序设计(上)//1-1void main(){ int a=1;printf("1:%d\n", sizeof(a));printf("2:%d\n", sizeof(float));printf("3:%d\n", sizeof(2.0*10));printf("4: %d\n", sizeof("Liu Dehua"));}//1-2-------------------------------------------------------- #include <stdio.h>void main(){ int a1=65,a2,a3;char ch='A'+1;printf("1:\101 \x42 C\n");printf("2:I say:\"How are you?\"\n");printf("3:\t\\\\Display Hello! I am Tom\b!\n");printf("4:65/10=%d,65%%10=%d\n",65/10, 65%10);printf("5:a1=%d,a1=\'%c\'\n",a1,a1);printf("6:ch=%c,ch=%d\n",ch,ch);a2=2,a3=(a1=3,a2+=a1,a1*a2);printf("7:a1=%d,a2=%d,a3=%d\n",a1,a2,a3);a3=a2=a1=2;printf("8:%d,%d,%d\n",(a1,a2+1),a3+2,a1+a2+a3);}//2------------------------------------------------------------#include <stdio.h>void main(){ float c,f;printf("请输入一个华氏温度:\n");scanf("%f",f);c==(5/9)*(f-32);printf("摄氏温度为:%5.2f\n"c);}实验三顺序结构程序设计(下)//1-1#include "stdio.h"void main(){ char ch=65;int a=1234;long g=12345678;float f=123.456789f;double d=9.876543E2;printf("1:%d,%c,%5d,%3c\n",ch,ch,ch,ch);printf("2:%8d,%-8d,%o,%x\n",a,a,a,a);printf("3:%10.3f,%f,%e\n",f,f,f);printf("4:%-10.2lf,%lf,%le\n",d,d,d);printf("5:%10s,%10.3s\n","Hello,world!","Hello,world!");}//1-2#include <stdio.h>main(){ int a,b,c;a=getchar();b=getchar();c=getchar();printf("a=%d b=%d c=%d\n",a,b,c);printf("a=%c b=%c c=%c\n",a,b,c);}//1-3---------------------------------------------------------------------------------------#include "stdio.h"void main(){int a=10,b;int *p; // p为指向整型变量的指针变量 printf("1:a的值=%d, a的内存地址值=%d\n",a, &a); //&a:获取变量a的内存地址值p=&a; //将变量a的内存地址值赋给指针变量p printf("2:p的值=%d, p的内存地址值=%d,p所指向的内存单元的值=%d\n",p,&p,*p);scanf("%d,%d" ,p,&b); //运行时输入100,200【enter】printf("3:a的值=%d,b的值=%d,p所指向的内存单元的值=%d\n",a,b,*p);}//3-3-----------------------------------------------------------#include <stdio.h>#include <math.h> //包含数学函数库void main(){ double a,b,c,p,s;printf("输入三角形三边a,b,c: ");scanf("%lf,%lf,%lf",&a,&b,&c);if(a+b>c && b+c>a && a+c>b) //判断该三边的值是否能构成一个三角形{ p= ;s=sqrt( ); //sqrt():求平方根函数printf("三角形面积=%lf\n",s);}elseprintf("三边(a=%lf,b=%lf,c=%lf)不能构成三角形! ",a,b,c);}实验四选择结构程序设计(上)//2#include <stdio.h>void main(){ char ch,c1,c2;printf("Enter a character:");ch=getchar();if((ch>='A')||(ch<='Z')&& (ch>='a')||(ch<='z'))c1=ch-1;c2=ch+1;if(ch='A'&&ch=’a’) c1=ch+25;else if(ch='Z'&&ch=’z’) c2=ch-25;putchar(c1);putchar(ch);putchar(c2);putchar('\n');}实验五选择结构程序设计(下)//1#include "stdio.h"void main(){ char m;printf(“input the month number:\n”);scanf (“%c”,&m);switch (m){case 1 : printf ("Jan");case 2 : printf ("Feb");case 3 : printf ("Mar");case 4 : printf ("Apr");else : printf ("error");}}//2----------------------------------------------------------------------- #include <stdio.h>void main(){ int a,b,d;char ch;printf("Please input a expression:");scanf("%d%c%d", );switch(ch){ case '+': printf("%d+%d=%d\n",a,b,a+b);break;case '-': printf("%d-%d=%d\n",a,b,a-b);break;case '*': printf("%d*%d=%d\n",a,b,a*b);break;case '/': if( )printf("Divisor is zero\n");elseprintf("%d/%d=%lf\n",a,b, a/b); /*强制类型转换*/;default: printf("Input Operator error!\n");}}实验六循环结构程序设计(上)//1-1#include <stdio.h>void main(){ int i=1,sum=0;while(i<100)sum=sum+i;i++;printf("Sum = %d\n",sum);}//1-2--------------------------------------------------------------------------------#include <stdio.h>void main(){ char x;x='Z';while(x!='A'){ printf("%3d",x);if(('Z'-x)%5= =0) printf("\n");x++;}}//2-1-----------------------------------------------------------------#include<stdio.h>void main(){ int n = 21,i;while ( ){ printf( "You take ... ");scanf("%d",&i);if ( )printf( "Don't try to cheat me, take 1, 2, 3, or 4, please! \n");else{ printf( "I take %d\n", 5-i);n = ; //剩下的火柴棍根数}}printf( " Now take the last one, please! \n Haha^-^, you loss!) \n "); }//2-2-------------------------------------------------------------------- #include <stdio.h>void main(){ int day,x1,x2;day=0;x1=1020;while( ){ x2= ;x1=x2;day++;}printf("day=%d\n",day);}//2-3---------------------------------------------------------------------- #include<stdio.h>void main(){ long x,m,y=0;int gw,count=0;printf("input x=");scanf("%ld",&x);;do{ gw=m%10;y= ;;count++;}while( );printf("x=%ld, count=%d, recycle=%ld\n",x,count,y);}}实验七循环结构程序设计(下)//1-1#include<stdio.h>void main(){ long sum(int);long s=0;int k;for(k=1;k<20;k+=2)s=s+sum(k);printf("s=%ld\n",s);}long sum(int x) //求1+2+...+x{ long result=0;int i;for(i=1;i<=x;i++)result+=i;return result;}//1-2------------------------------------------------------------------------#include<stdio.h>void main(){long s=0,result=0;int k,i;for(k=1;k<20;k+=2){for(i=1;i<=k;i++)result+=i;s=s+result;}printf("s=%ld\n",s);}//2-1--------------------------------------------------------------------------#include<stdio.h>void main(){ float score,sum=0,average;int persons=0;while(1){ scanf("%f",&score);if(score<0)continue;else if(score>100)break;else{ sum+=score;persons++;}}average=(float)(sum/persons);printf("人数=%d,平均分=%f\n",persons,average);}//2-2------------------------------------------------------#include <stdio.h>void main(){ int i,j;for (i=0;i<4;i++){ for (j=0;j<=20;j++)printf("\n");for (j=0;j<2*i+1;j++)printf("*");}}//2-3-----------------------------------------------------------#include "stdio.h"void main(){ int a,k,s=0;for (k=2; k<1000; k++){for (a=1; a<=k/2; a++)if(k%a==0) s+=a;if (s==k) //k是完数printf("%d is OK!\n",k);}}实验八函数//1-1#include "math.h"#include "stdio.h"void main(){ float a,b,c;printf("请输入三角形的边长值:\n");scanf("%f%f%f",a,b,c);if(a+b>c&&a+c>b&&b+c>a)printf("Area=%f\n",area(a,b,c));}area(float a,float b,float c){ float s,area_s;s=(a+b+c)/2.0;area_s=sqrt(s*(s-a)*(s-b)*(s-c));return(area_s);}//1-2--------------------------------------------------------------------------#include<stdio.h>int fun(int n){ int jc=1,i;for(i=2;i<=n;i++) jc*=n;return jc;}void main(){ int n;long sum=0;for(n=1;n<11;n++);if(n%3==0||n%5==0)sum+=fun(int n);printf("sum=%ld\n",sum);}//1-3---------------------------------------------------#include<stdio.h>swap(int *p1,int *p2){ int *p;p=p1;p1=p2;p2=p;}void main(){ int a,b;scanf("%d%d",&a,&b);printf("a=%d\tb=%d\n",a,b);swap(&a,&b);printf("a=%d\tb=%d\n",a,b);}//2-1-----------------------------------------------------------------#include<stdio.h>void printline(int n) //{ int i,k;for(i=1;i<=30-n;i++) printf("%c",' ');for(i=1;i<= ;i++) printf( );printf("\n");}void main(){ int i;for(i=1;i<=5;i++) ;for(i=4;i>=1;i--) ;}//2-2-------------------------------------------------------------------------------------------------------#include " stdio.h "int isprime(int m) //判别m是否为质数{ int i ;for(i=2;m%i!=0;i++); //注意:循环体是空语句return ( );}void main(){ int n,x,a,b;scanf("%d",&x);for(n=6;n<=x ;n+=2)for(a=3;a<=n/2;a+=2)if( ) //若a是素数{ b=n-a;if( ) //若b是素数{ printf(“%d=%d+%d”,n,a,b);; //退出a循环,判别下一个n的组合}}}实验九数组(上)//1-1#include<stdio.h>#define N 9;void main(){ int i,sum=0,a[N],max,min;for(i=0;i<N;i++)scanf("%d",a[i]);sum=max=min=a[0];for(i=0;i<N;i++){ sum+=a[i];if(a[i]>max)max=a[i];else if(a[i]<min)min=a[i];}for(i=0;i<N;i++){ printf("%8d",a[i]);if(i%3==2) printf("\n");}printf("max=%d min=%d average=%lf\n",max,min,sum*1.0/N);}//1-2--------------------------------------------------------------------------------------#include <stdio.h>void main(void){ const int n=3;int i,j,sum;int a[][n]={1,2,3,4,5,6,7,8,9};for(i=0;i<=n;i++)for(j=0;j<=n;j++)if(i==j||i+j==n)sum+=a[i][j];printf("sum=%d\n",sum);}//2-1--------------------------------------------------------------#include <stdio.h>#include <math.h>int Is_sushu(int x){ int i,re;re=x>1?1:0;for(i=2;i<=sqrt(x);i++)if( ){ re=0; break;}return(re);}void main(void){ const int n=10;int ss[n],hs[n],k,m,p1,p2;p1=p2=-1;for(k=1;k<=n;k++){ printf("NO %d:",k);scanf("%d",&m);if( ) //若m为素数{ p1++;ss[p1]=m;}else{ ;hs[p2]=m;}}for(k=0;k<=p1;k++) //输出素数数列printf("%4d ",ss[k]);printf(" count=%d\n",p1);for(k=0;k<=p2;k++) //输出合数数列printf("%4d ",hs[k]);printf("count=%d\n", );}//2-2-------------------------------------------------------#include<stdio.h>#include<stdlib.h>void main( ){ int a[10],i,j,t;for(i=0;i<10;i++){ a[i]= ; //生成随机整数printf("%d ",a[i]);}for(i=0;i<9;i++)for(j=0;j< ; j++)if(a[j]>a[j+1]){ t=a[j];a[j]=a[j+1]; ;}printf("\nthe sorted numbers: \n");for(i=0;i<10;i++)printf("%5d ",a[i]);}实验十数组(下)//1-1#include<stdio.h>void main( ){char a[]="wel",b[]="come";int i,n=0;while(!a[n]) n++;for(i=0;b[i]!='\0';i++)a[n+i]=b[i];printf("%s\n",a);}//1-2---------------------------------------------------------------#include<stdio.h>#define N 6int sum(int x,int n){ int i=0,s=0;while(i<=n)if(x[i]>0){s=s+x[i]; i++;}return s;}void main(){ int i=0,s,a[N];do{ printf("NO%d: ",i+1);scanf("%d",&a[i]);if((-100<=a[i])&&(a[i]<=100))i++;elseprintf("wrong! input again...\n");}while(i<N);s=sum(a[N],N);printf(" sum=%d\n",s);}//2-1------------------------------------------------------------#include "stdio.h"main(){ c har str[40];int alphabet=0,digit=0,space=0,other=0,i=0;printf("请输入一串字符:\n");gets(str);while( ){ if(('A'<=str[i])&&(str[i]<='Z')||('a'<=str[i])&&(str[i]<='z')) ++alphabet;else if(str[i]==' ') ++space;else if((str[i]<='9')&&(str[i]>='0')) ++digit;else ++other;i++;}printf("其中有%d个字母,%d个空格,%d个数字,%d个其他字符!\n",alphabet,space, digit,other);}//2-2-------------------------------------------------------------------------------------------------------#define N 50#define M 20#include <stdio.h>void main(){ char a[N][10]; //学号float score[N][M],max_score; //成绩int n,m,i,j,studid;/*输入学生的学号和各门课程的成绩*/printf("学生数n,课程数m:");scanf("%d,%d",&n,&m);for(i=1;i<=n;i++){ printf("输入第%d位学生的学号:",i);scanf("%s", );printf("按课程顺序输入成绩:");for(j=1;j<=m;j++)scanf("%f", );}/*找出每门课程最高的学生学号、课程代号和成绩并输出*/for(j=1;j<=m;j++){ studid=1;max_score=score[1][j];for(i=1;i<=n;i++)if(score[i][j]> max_score){ max_score=score[i][j];studid=i;}printf("第%d门课程最高分的学生学号是:%s,成绩为:%6.2f\n",j,a[studid],max_score);}}实验十一指针的应用//1-1#include <stdio.h>void main(){ int *p,i,a[5];p=a[1];printf("please enter 5 numbers:");for(i=0;i<5;i++)scanf("%d",p++);for(i=0;i<5;i++,p++)printf("%d ",*p);printf("\n");}//1-2-----------------------------------------------------------------------------------------#include<stdio.h>int digits(char *s){ int c=0;while(s){ if(*s >=0&&*s <=9)c++;s++;}return c;}void main(){ char s[80];printf("请输入一行字符\n");gets(s);printf("个数=%d\n",digits(s));}//2-1-------------------------------------------------------------#include<stdio.h>int findmax(int *s,int t ){ int i,k=0;for(i=0; ;i++)if( ) k=i;return ;}void main(){ int j,a[10]={12,23,34,45,56,67,78,89,11,22},k=0,*add;for(j=0;j<10;j++)printf("%4d%10xh\n",a[j],&a[j]);k=findmax(a,10);add=&a[k];printf("\n数组下标=%d,数组元素值=%d,元素地址=%xh\n",k,a[k], add);}//2-2------------------------------------------------------------------ #include <string.h>#include <stdio.h>#define N 81void fun(char *s){ int i=0,t,n= ;for(;s+i<s+n-1-i;i++){ t=*(s+i);*(s+i)= ;*(s+n-1-i)=t; }}void main(){ char a[N];gets(a);printf("The original string is:");puts(a);fun(a);printf("\nThe string after modified:"); puts(a);}//2-3-----------------------------------------------------------#include<stdio.h>#include "string.h"#define N 5void sort(char (*p)[20]) //利用行指针对N个字符串进行排序{ int i,j; char k[20];for (i=0; i<N-1; i++)for (j=i+1; j<N; j++)if (strcmp( ,*(p+j))>0) //*(p+i)表示第i个串{ strcpy(k,*(p+i));strcpy(*(p+i), );strcpy(*(p+j),k);}}void main(){ char ch[N][20]; int i,j;for (i=0; i<N; i++) gets(ch[i]); //输入N个串sort(ch); //利用行指针排序for(i=0; i<N; i++) puts(ch[i]); //输出}实验十二结构体//1-1#include<stdio.h>struct stud{ char name[20];int age;} ;fun(struct stud person[],int n){ int min,i;min=0;for(i=0;i<n;i++)if(person[i] <person[min] ) min=i;return (person );}void main(){ struct stud a[]={{"Zhao",21},{"Qian",20},{"Sun",19},{"LI",22}};int n=4;struct stud minpers;minpers=fun(a,n);printf("%s 是年龄小者,年龄是:%d\n",,minpers.age);}//2-1-----------------------------------------------------------#include<stdio.h>#include<string.h>struct bdata{ int id;char bname[20];float price;} ;int findbook(struct bdata st[],int n,char s[]){ int i;for(i=0;i<n;i++)if(________) return i;__________________;}void main(){ struct bdata book[100];char st[20];int index;printf("请输入要查找书名:";gets(st);index=findbook(_______________);if (index = = -1) printf("%s的书未找到\n",st);else printf("%s的书在%d位置\n",st,index);}//2-2------------------------------------------------------------------------------------------#include<stdio.h>#define M 3#define N 4struct stud{ int no;char name[16];float mark[M];float aver;};void input(struct stud st[]) //输入学生记录{ int i,j;float sum;for(i=0;i<N;i++){ printf("\n输入第%d个学生的学号,姓名:");scanf("%d,%s", );printf("\n输入第%d个学生的3门课程成绩:");for(j=0;j<M;j++)scanf("%f", );}}void output(struct stud st[]) //输出学生记录{ int i,j;printf("\n学号姓名课程1 课程2 课程3 平均分\n");for(i=0;i<N;i++){ printf("%5d %8s",st[i].no,st[i].name);for(j=0;j<M;j++)printf("%5.1f",st[i].mark[j]);printf("%5.2f",st[i].aver);}}void average(struct stud st[]) //求每个学生的平均成绩{ int i,j;float sum;for(i=0;i<N;i++){ sum= ;for(j=0;j<M;j++)sum= ;=sum/M;}}void main(){ struct stud preson[N];input( );average(preson);output(person);}//2-3---------------------------------------------------------------------------------------------------struct oneday{ int day,month,year; };void main(){ struct oneday day1;int alldays(struct oneday);printf("Enter year,month,day:");scanf("%d-%d-%d", );printf("%d\n",alldays(day1));}int runnian(int year){ if (year%400==0) return(1);if (year%4==0 && year%100!=0) return(1);return(0);}int alldays(struct oneday one){ int day[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int i,t=0;if (runnian(one.year)) day[2]=29;for (i=1; i< ;i++)t+=day[i];t=t+one.day;return(t);}实验十三文件操作//1-1#include <stdio.h>#include<string.h>void main(){ FILE *fp1;char ch[80];int i,j;fp1=fopen("C:\\data1.dat","b");for(i=1;i<=4;i++){ gets(ch);j=0;while(ch[j]!='\0'){ fputc(fp1, ch[j]); j++; }fputc(fp1,'\n');}fclose(fp1);}//1-2----------------------------------------------------------------------------------------#include <stdlib.h>#include <stdio.h>#include <time.h>void main ( ){ int x[10],i,k;FILE *fp2;srand( (unsigned)time( NULL ) );for (i=0;i<10;i++)x[i]=rand();fp2=fopen ("C:\\data2.dat","wb");if(fp2==NULL){ printf("Open error \n");exit(0);}for (int k=0 ; k<10 ; k++ )fwrite(x[k],sizeof(int), fp2);fclose (fp2) ;}//2-1----------------------------------------------------------------#include<stdio.h>#include<stdlib.h>void main(){ FILE *fp;int i=0;char *str[]={"visual C++","visual Basic","visual java","visual foxpro"};if((fp=fopen("C:\\data3.txt", ))==NULL){ printf("%s不能打开!\n","data3.txt");exit(1);}while(i<4){fprintf( );;}fclose(fp);//2-2-------------------------------------------------------------------------------------------------------------------#include<stdio.h>#include<stdlib.h>void main(){ char c;FILE *fp3; long num=0;if((fp3=fopen("c:\\ data3.txt", ))==NULL){ printf("Open error \n");exit(0); }c=fgetc(fp3);while ( ){;c=fgetc(fp3);}printf("\nnum=%ld\n", num);;}(注:可编辑下载,若有不当之处,请指正,谢谢!)。

C语言高级编程实验指导书.doc

C语言高级编程实验指导书.doc

实验一、熟悉开发平台、常用工具实验目的:掌握linu常用命令、vi编辑器实验要求:熟练使用该节介绍的linux命令、使用vi创建、编辑、保存文件实验平台:PC机、ubuntu 10.04实验步骤:(一)熟悉常用命令:1.man命名查看常用命令函数的具体用法2.cd切换目录3.Is命令查看目录内容4.pwd命令查看当前路径eradd添加用户smb6.passwd设置smb的密码7.su切换到root用户8.exit 退出root9.touch命令在smb目录新建test文件10.mkdir 在smb 目录创建dir、dirl @ 录11.cp命令拷贝test文件到/tmp12.cp命令拷贝dir目录至Ij/tmp13.mv命令讲test改名为testl14.mv移动dir目录至Ij/tmp15.rm命令删除testl16.rm命令删除dirl @录17.新建目录dir2,使用tar命令打包与压缩18.chmod命令修改test2权限19.df命令查看磁盘使用情况20.du命令查看目录大小21.grep命令查找字符串22.deluser 删除smb 账号23.删除/home/smb目录(二)熟悉Vi编辑器1.vi hello.c2.按i键进入插入模式3.插入模式下输入文字hello world !4.按ESC退出到命令行模式5.按shift加;键,即冒号:进入末行模式6.键入wq保存、退出7.将文件/etc/fstab拷贝到当前目录8.用vi打开fstab9.在底行模式下,输入set nu显示行号10.将光标移动到第5行,命令:5G11.复制该行以下两行,2yy12.将光标移到最后一行彳丁首:G13.粘贴复制的内容:p14.删除上步粘贴的2彳丁:2dd15.撤销上步命令:u16.查找字符串:sda17.强制退出:q!18.删除fstab实验二、GCC编译器的使用实验目的:学会使用gcc编译器、学会编译makefile实验要求:1>编写一个应用程序,使用GCC编译,并分别使用-o, -g,等选项。

程序设计语言实验指导书12版

程序设计语言实验指导书12版

《程序设计语言》实验指导书徐东燕编北方民族大学计算机科学与工程学院2012年9月目录实验一 C语言编程环境熟悉及简单程序的编写(验证型实验,2学时) (3)实验二分支结构程序设计(设计型实验,2学时) (6)实验三循环结构程序设计(设计型实验,2学时) (8)实验四函数程序设计(设计型实验,2学时) (10)实验五数组程序设计((设计型实验,2学时) (12)实验六指针程序设计(设计型实验,2学时) (14)实验七结构体程序设计(设计型实验,2学时) (15)实验八程序结构与递归函数(综合性实验,2学时) (16)实验九指针进阶及综合程序设计(综合型实验,2学时) (17)实验十文件的程序设计(设计型实验,2学时) (18)参考文献 (20)课程编号:11101203 课程类别:专业基础课适用专业:计算机科学与技术、软件工程、网络工程、信管专业课程总学时:76 实验课学时:20开设实验项目数:10实验一C语言编程环境熟悉及简单程序的编写(验证型实验,2学时)一、实验目的与要求实验环境1.熟悉Cfree开发环境或Visual C++ 6.0的使用环境;2.掌握Cfree开发环境或Visual C++ 6.0环境下建立C程序的步骤;3.掌握C程序在Cfree开发环境或Visual C++ 6.0环境下的编辑、调试和运行的步骤、方法;4.理解C程序的一般结构;5.理解并掌握程序的顺序结构程序设计;6.在Cfree开发环境或Visual C++ 6.0环境下编写并运行基本的C程序;7.理解程序调试思想,能修改简单的C语法错误;8.掌握算术、赋值表达式,输入输入语句和简单数据处理方法。

二、实验环境1.微机每人一台,要求PⅢ以上处理器。

2.windows2000/xp操作系统。

3.Cfree开发环境或或Visual C++ 6.0开发环境。

三、实验预习与准备1.计算机基本操作练习。

2.Cfree开发环境或Visual C++ 6.0软件使用预习。

级软件工程(卓越班)《C语言程序设计》实验指导书

级软件工程(卓越班)《C语言程序设计》实验指导书

实验1 C的实验环境和C语言的数据类型⒈实验目的⑴了解在具体的语言环境下如何编辑、编译、连接和运行一个C程序。

⑵通过运行简单的C程序,初步了解C源程序的特点。

⑶掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。

⑷掌握不同的类型数据之间赋值的规律。

⑸学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

⒉实验内容和步骤⑴检查所用的计算机系统是否已安装了C编译系统并确定他所在的子目录。

⑵进入所用的集成环境。

⑶熟悉集成环境的界面和有关菜单的使用方法。

⑷输入并运行一个简单的、正确的程序。

⒊实验题目⑴输入下面的程序# include “stdio.h”void main(){ printf(“This is a c program.\n”);}程序无误,其运行的结果为:(请填写)⑵输入并编辑一个有错误的C程序。

# include “stdio.h”void main(){ int a,b,suma=123; b=456;sum=a+bprint(“sum i s %d\n”,sum);}运行后程序出现几处错误,请分别指出,并逐一更改:⑶若k,g均为int型变量,则下列语句的输出为,:# include “stdio.h”void main(){ int k, g;k=017; g=111;print(“%d\t”,++k);printf(“%x\n”,g++);}运行结果为:实验2 数据的输入输出⒈实验目的⑴掌握C语言中赋值表达式的使用方法。

⑵掌握用格式化输入/输出函数实现各种类型数据的输入输出,能正确使用各种格式转换符。

⑶进一步熟悉C程序的编辑、编译、连接和运行的过程。

⒉实验内容(1)用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。

问在键盘上如何输入?请书写程序#include “stdio.h”void main(){ int a,b;float x,y;charc1,c2;scanf(“a=%d b=%d”,&a,&b);scanf(“%f %e”,&x,&y);scanf(“%c %c”,&c1,&c2);printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n”);}运行,并按照如下方式在键盘上输入:A=3 b=78.5 71.82A a运行结果:A=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a思考:为什么在第三个scanf函数双引号第一个字符为空格字符,如果没有这个空格字符,而写成:scanf(“%c %c”,&c1,&c2);按以上的输入、输出将如何变化?请分析原因(2)用下面的程序输出一个实数。

《C++程序设计》实验指导书

《C++程序设计》实验指导书
3)编写一程序,让用户自由地从键盘上输入整数,直到输入数字0时结束。把用户输入的数据保存在模板类Vector<int>定义的对象中,并对用户输入的所有数进行排序输出。在向显示器进行输出时,要求用一下3种方式实现:
a)仅使用Vector<int>的相关成员函数,不使用迭代器进行输出;
b)使用迭代器自己编程输出;
5)STL中为什么要提供通用算法?它和类模板的成员函数相比,有什么特征?
template<class T>
class Stack{
public:
Stack();
~Stack();
void Push(T& n);
T Pop();
private:
static const int SIZE;
T* stack;
int to行定义即可。tos是栈顶位置,Push()为压栈操作,Pop()为弹栈操作,要在这两个操作中分别考虑栈的长度和栈是否为空。最后,要在main函数中对编写的栈类模板进行测试。
4)要编写出这个程序,要理解Link类模板中各数据成员的含义。pFirst代表链表首指针,Node代表链表的一个结点,pT为指向该结点对应数据的指针,理解这点非常重要。
5
1)谈谈使用模版进行编程的优点?
2)什么是函数模板和模板函数?两者之间是什么关系?
3)什么是类模板和模板类?两者之间有什么关系?
4)STL中容器、迭代器和算法三者之间的关系?
c)使用STL提供的通用算法for_each进行输出。
4)以下是一个List类模板的定义:
template<class T> class List{
public:
List();//构造函数

东北大学C++实验报告6

东北大学C++实验报告6

东北大学C++实验报告61.实验要求(1)定义Point类,有坐标_x,_y两个成员变量;对Point类重载“++”(自增)、“――”(自减)运算符,实现对坐标值的改变。

(2)定义一个车(vehiele)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。

观察虚函数的作用。

2. 实验内容及实验步骤(1) 编写程序定义Point类,在类中定义整型的私有成员变量_x_y,定义成员函数Point& operator++();Point operator++(int);以实现对Point类重载“++”(自增)运算符,定义成员函数Point&operator--();Point operator--(int);以实现对Point类重载“--”(自减)运算符,实现对坐标值的改变。

程序名:1ab8_1.cpp。

(2) 编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。

在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数,观察其执行情况。

再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否成功;把Run、Stop定义为虚函数,再试试看。

程序名:lab8_2.cpp。

3. 源程序Lab8_1#include<iostream>using namespace std;class Point{public:Point(int X,int Y): _x(X),_y(Y){}Point operator++();Point operator++(int);Point operator--();Point operator--(int);void Putout() const;private:int _x,_y;};void Point::Putout() const{cout<<"("<<_x<<","<<_y<<")"<<endl; }Point Point:: operator++(){_x++;_y++;return *this;}Point Point::operator++(int){++_x;++_y;return *this;}Point Point::operator--(){_x--;_y--;return *this;}Point Point::operator--(int){--_x;--_y;return *this;}int main(){Point A(6,7);cout<<"Point++: ";(A++).Putout();cout<<"++Point: ";(++A).Putout();cout<<"Point--: ";(A--).Putout();cout<<"--Point: ";(--A).Putout();return 0;}运行结果Lab8_21)在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本书以Visual C++ 6.0集成开发环境为例,参考多部C语言程序设计教材,结合C语言程序中各种语法语句,流程结构,数据结构及数据类型等知识编写而成,用以作为《C语言》课程的配套实验教材,同时可作为C语言初学者的参考用书。
全书共分两部分:第一部分为实验部分、第二部分为习题答案及两个附录部分。其中实验部分根据C语言教学大纲的要求,分别设计了十个实验。每个实验包括实验相关知识、实验例题、实验习题等内容,用于帮助读者了解和掌握C语言的基本语法,语句和基本算法。第二部是各个实验习题的参考答案及两个附录部分。
全书中的所有程序代码均在Visual C++ 6.0环境下调试运行正常。参加本书编写人员有王娟、祝群喜、李飞、盛娟、宋欣等。最后统稿工作由祝群喜完成。
在编写本书过程中,由于时间仓促,书中难免会出现一些缺点和错误和疏漏之处,欢迎大家批评指正。
东北Байду номын сангаас学秦皇岛分校计算中心
2009年7月
I
本书所编写每一章的实验例题与实验习题均为本章内容所涉及到的典型算法与典型习题,希望每一位读者不仅完成实验习题,更应熟练掌握每一道实验例题。绝大多数的实验习题给出了参考答案。
附录A为标准ASCII码。附录B为Visual C++6.0开发环境介绍,读者在使用本书前,最好先阅读附录B,以便对Visual C++ 6.0开发环境有一个熟悉的过程。
前 言
C语言是面向过程的高级程序设计语言之一,它具有先进的控制流、优良的数据结构、丰富的数据类型、实用多样的运算符及表达式。C语言的语言简单、灵活,有很好的通用性和可移植性。它既有高级语言的优点,又有低级语言的特点。因此广泛地用于系统设计和应用程序开发中。
程序设计是一门实践性很强的课程,如果脱离了实践,不可能取得较好的学习实效。习题和上机实验是程序设计课程非常重要的实践环节。对初学者来说,要编写出较优的程序并顺利通过编译及正确运行是有一定的难度。笔者在多年的程序设计课程教学中深感实践教学的重要性,为此编写本教材,以帮助读者理解程序设计概念及各个主要算法的编程技术,提高程序设计和程序调试能力。
相关文档
最新文档