实验一  C语言程序开发环境、数据类型及表达式.doc

上传人:精*** 文档编号:868523 上传时间:2023-10-19 格式:DOC 页数:21 大小:153.09KB
下载 相关 举报
实验一  C语言程序开发环境、数据类型及表达式.doc_第1页
第1页 / 共21页
实验一  C语言程序开发环境、数据类型及表达式.doc_第2页
第2页 / 共21页
实验一  C语言程序开发环境、数据类型及表达式.doc_第3页
第3页 / 共21页
实验一  C语言程序开发环境、数据类型及表达式.doc_第4页
第4页 / 共21页
实验一  C语言程序开发环境、数据类型及表达式.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、 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

2、 black2改错题(将正确程序写在指定位置)改正下列程序中的错误,在屏幕上显示商品价格表(源程序附后面)。输入输出示例商品名称价格TCL电视机¥7600美的空调¥2000SunRose键盘¥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的商7a/c的商3a%b的余数10a%c的余数15编写程序:设

3、变量a的值为0,b的值为-10,编写程序:当ab时,将b赋给c;当a=b时,将a赋给c。(提示:用条件运算符) 三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本四、程序清单 (写出上机内容、的源程序)五、调试和测试结果(调试中出现的典型问题及解决方法,测试结果是否正确或具体值等)六、教师批语与成绩评定:评语:成绩:优良中及格不及格 评阅教师: 评阅日期:年 月 日C语言程序设计实验(上机)报告班级学号 姓名 实验日期 任课教师 实验名称实验二 顺序结构程序设计验证型一、实验目的及要求1熟悉C语言的表达式语句、空语句和复合语句。2熟悉函数调用语句,尤其是输入输

4、出函数调用语句。3熟悉顺序结构程序中语句的执行过程。4能设计简单的顺序结构程序。二、上机内容1键盘输入与屏幕输出练习问题1 要使下面程序的输出语句在屏幕上显示1, 2, 34,则从键盘输入的数据格式应为以下备选答案中的 。#include main()char a,b; int c; scanf(%c%c%d,&a,&b,&c);printf(%c,%c,%dn,a,b,c);A)1 2 34 B)1, 2, 34 C)1,2,34 D)12 34问题2 在与上面程序的键盘输入相同的情况下,要使上面程序的输出语句在屏幕上显示1 2 34,则应修改程序中的哪条语句?怎样修改? 问题3 要使上面程

5、序的键盘输入数据格式为1,2,34,输出语句在屏幕上显示的结果也为1,2,34,则应修改程序中的哪条语句?怎样修改?问题4 要使上面程序的键盘输入数据格式为1,2,34,而输出语句在屏幕上显示的结果为1, 2,34,则应修改程序中的哪条语句?怎样修改?提示:利用转义字符输出字符单引号字符。 2编写程序:(1)从键盘输入两个八进制数,计算两数之和并分别用十进制和十六进制数形式输出。输入输出示例Enter a and b: 20 30d:40x:28(2)编写程序:从键盘输入两个实数a和x,按公式计算并输出y的值: 输入输出示例Enter a , x : 1.0,0.0y=2.0000003改错题

6、改正下列程序中的错误。从键盘输入3个整数a、b、c,计算这3个整数的和s,并以“s=a+b+c”和“a+b+c=s”的形式输出a、b、c和s的值。请不要删除源程序中的注释。(源程序附后面)正确的程序为:输入输出示例3 4 512=3+4+53+4+5=12源程序(有错误的程序)#include main()int a,b,c,s;scanf(%d%d%d,&a,&b,c);s=a+b+c;printf(%d=%d+%d+%dn,a,b,c); /*输出s=a+b+c*/printf(%d+%d+%d=%dn,s); /*输出a+b+c=s*/三、实验平台 Windows98 或 2000 或

7、XP以上版本 VC6.0以上版本四、程序清单(写出上机内容的源程序)五、调试和测试结果(调试中出现的典型问题及解决方法,测试结果是否正确或具体值等)六、教师批语与成绩评定:评语:成绩:优良中及格不及格评阅教师: 评阅日期:年 月 日C语言程序设计实验(上机)报告班级学号 姓名 实验日期 任课教师 实验名称实验三 选择结构程序设计验证型一、实验目的及要求1理解C语言表示逻辑量的方法(0代表“假”,非0代表“真”)。2学会正确使用逻辑运算符和逻辑表达式、关系运算符和关系表达式。3学会运用逻辑表达式和关系表达式等表达条件。4熟练掌握IF语句和SWITCH语句。5掌握简单的单步调试方法。二、上机内容1

8、先手工计算,然后编写程序验证计算结果:(1) 求逻辑表达式53&2|84-!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 12编程:(1) 输入整数x和a,计算并输出下列分段函数f(x)的值(保留2位小数),请调用log函数求自然对数,调用fabs函数求绝对值。输入输出示例第一次运行Enter a and x:5 6a=5,f(6)=0.24第二次运

9、行Enter a and x:5 5a=5,f(5)=0.00#include#includemain() int a,x; float fx; scanf (%d%d,&x,&a); if (abs(x)=a) fx=0; else fx=1.0/(2*a)*log(fabs(double)(a+x)/(a-x); printf(a=%d,f(x)=%.2fn,a,fx); (2)输入a、b、c三个整数,输出最大数。#includemain() int a,b,c,max; printf(Enter a,b,c:); scanf(%d%d%d,&a,&b,&c); if(ab) if(ac)

10、 max=a; else max=c; else if(bc) max=b; else max=c; printf(the max number is=%d,max); 输入输出示例第一次运行Enter a,b,c:1,5,9the max number is:9第二次运行Enter a,b,c:9,5,1the max number is:9第三次运行Enter a,b,c:1,9, 5the max number is:93改错题改正下列程序中的错误,输入一个数n(不一定是整数),判定n是小于0,等于0,还是大于0。(源程序附后面)输入输出示例第一次运行Enter n:1010 is gr

11、eater than 0第二次运行Enter n:55 is less than 0第三次运行Enter n:00 is equal to 0源程序(有错误的程序)#include main()double n;printf(Enter n:);scanf(%f,&n);if(n0)printf(n is less than 0n);else if(n=0)printf(n is equal to 0n);elseprintf(n is greater 0n);单步调试程序,观察变量值的变化。正确的程序为:三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本四、

12、设计流程(算法描述)(请写出上机内容2(2)题的算法描述) 五、程序清单(请写出上机内容2(1)的源程序)六、调试和测试结果(写出上机内容1的结果)七、教师批语与成绩评定:评语:成绩:优良中及格不及格 评阅教师: 评阅日期:年 月 日 C语言程序设计实验(上机)报告班级学号 姓名 实验日期 任课教师 实验名称实验四 循环结构程序设计验证型一、实验目的及要求1熟悉掌握C语言的while语句、do-while语句和for语句。2掌握在程序设计中使用循环的方法实现各种算法。3理解循环结构程序中语句的执行过程。4掌握运行到光标位置的调试方法。二、上机内容 1编写程序:求1+2+3+100和12+22+

13、32+1002。输入输出示例sum1=5050 sum2=338350 2一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出25000中的所有完数。输入输出示例6 28 4963. 改错题改正下列程序中的错误。(源程序附后面)韩信点兵。韩信有一队兵,他想知道有多少人,便让土兵排队报数。按从1至5报数,最末一个土兵报的数为1;按从1至6报数,最末一个土兵报的数为5;按从1至7报数,最末一个土兵报的数为4;最后按从1至11报数,最末一个土兵报的数为10;你知道韩信有多少土兵吗?输入输出示例n=2111源程序(有错误的程序)#include main()int find=0;whil

14、e(!find)if(n%5=1&n%6=5&n%7=4& n%11=10)printf(n=%dn, n);find =1; 正确的程序为:三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本四、设计流程(算法描述) (请写出上机内容2的算法描述)五、程序清单 (请写出上机内容1的源程序)六、调试和测试结果(调试中出现的典型问题及解决方法,测试结果是否正确或具体值等)七、教师批语与成绩评定:评语:成绩:优良中及格不及格 评阅教师: 评阅日期:年 月 日 C语言程序设计实验(上机)报告班级学号 姓名 实验日期 任课教师 实验名称实验五 函数和预处理命令验证型一、

15、实验目的及要求1掌握函数的定义和调用。2掌握使用函数编写程序。3掌握函数的实参、形参和返回值的概念及使用。4掌握单步调试进入函数和跳出函数的方法。5掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法。二、上机内容1编写自定义函数long power(int m,int n),计算的值。利用此函数编程序实现:从键盘输入两个整数m和n,计算出 的值。 2写出两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。输入输出示例输入:n1=24 n2=16输出:zdgys=8 zxgbs=483.改错题改正下列程序中的错误。根据下式求的值,直到

16、某一项小于10-6(源程序附后面)输入输出示例 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.5lfn”,sum*2);return 0; int fact(int n)int i; int res=1; for(i=0;i=n

17、;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;正确的程序为:三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本四、设计流程(算法描述) (请写出上机内容1的算法描述)五、程序清单 (请写出上机内容2的源程序)六、调试和测试结果(调试中出现的典型问题及解决方法,测试结果是否正确或具体值等)七、教师批语与成绩评定:评语:成绩:优良中及格不及格评阅教师: 评阅日期:年 月 日C语言程序设计实验(上机)报告班级学号

18、姓名 实验日期 任课教师 实验名称实验六 数组验证型一、实验目的及要求1掌握一维数组的定义、赋值和输入输出的方法。2掌握字符数组的使用。3掌握与数组有关的算法(例如排序算法)。4学会使用断点调试方法。二、上机内容 1编写程序:从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序输出。自定义函数void antitone(int a,int n)实现将数组中的n个数据按逆序存放。 2已知某数列的前两项为2和3,其后每一项为其前两项之积。编程实现:从键盘输入一个整数x,判断并输出x最接近数列的第几项?3输入一串字符,计算其中字符、数字和空格的个数。输入/输出示例:输入:sd234

19、kj64jk mjk输出:字符:9数字:5空格:1 三、实验平台Windows98 或 2000 或 XP以上版本 VC6.0以上版本四、设计流程(算法描述)(请写出上机内容1的算法描述)五、程序清单(请写出上机内容1、2、3的源程序) 六、调试和测试结果(调试中出现的典型问题及解决方法,测试结果是否正确或具体值等)七、教师批语与成绩评定:评语:成绩:优良中及格不及格 评阅教师: 评阅日期:年 月 日 C语言程序设计实验(上机)报告班级学号 姓名 实验日期 任课教师 实验名称实验七 指针验证型一、实验目的及要求1理解指针、地址和数组间的关系。2掌握通过指针操作数组元素的方法。3. 掌握指针作为

20、函数参数时,实参和形参的结合方式。(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(%dn,s);二、上机内容 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,%dn,*p,*q,a,b);(4)以下程序用指针实现一维数组的数据输入与输出,请填空并运行。#include void m

21、ain() int a6,i; 【1】 ; for( i=0; i6; i+) scanf(“%d” , 【2】 ); p=a ; for( i=0; i6; i+) printf(“%3d”, 【3】 ); printf(“n”);思考:将语句“p=a;”删去,程序运行结果会怎样?(3) #include void swap(int *a,int *b) int t; t=*a; *a=*b; *b=t;void main() int x=10,y=20; printf(1)x=%d y=%dn,x,y);swap(&x,&y);printf(2)x=%d y=%dn,x,y);2完成函数的

22、内容,函数的功能是:将a、b中的两个两位正整数合并形成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。例如,当a=45,b=12。调用函数后,c=4251。完成编程后运行程序,输入上面所举的数据例子,看看程序是否能得出正确的结果。#include void fun(int a,int b,long *c) void main() int a,b; long c; printf(Input a,b:) ;scanf(%d%d,&a,&b);fun(a,b,&c);printf(The result is: %l

23、dn,c);三、实验平台Windows98 或 2000 或 XP以上版本 VC6.0以上版本四、程序清单 (请写出上机内容2中的函数)五、调试和测试结果(请写出上机内容1的输出结果)六、教师批语与成绩评定:评语:成绩:优良中及格不及格 评阅教师: 评阅日期:年 月 日 C语言程序设计实验(上机)报告班级学号 姓名 实验日期 任课教师 实验名称实验八 结构体验证型一、实验目的及要求1理解结构体类型的概念,掌握结构体类型的定义形式。2掌握结构体类型变量的定义和变量成员的引用形式。3了解内存的动态分配、链表的概念及操作。 二、上机内容1建立一个学生信息结构体数组,包括学号num,姓名name10,

24、年龄age,性别sex。要求通过函数input输入4个数据记录,并且在main函数中输出这5个学生的信息。用另一函数stat统计输入记录中男生、女生的人数,以及年龄小于18岁的学生人数。输出:numnameagesex01aa18M02bb19F03 cc19M04dd17Fboygirlage18221输入输出示例:输入:01aa18M 02bb19F03 cc19M04dd17F2编程:完成下列程序中的函数。某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。 例如,学生的成绩是:85.

25、5,76,69.5,85,91,72,64.5,87.5,他的平均分应当是:78.875。 注意: 请勿改动主函数main和其它函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。#include #define N 8struct STREC char num10; double sN; double ave;void fun(struct STREC *a)main()struct STREC s=GA005,85.5,76,69.5,85,91,72,64.5,87.5; int i; fun( &s ); printf(The %ss student data:n, s.num

26、); for(i=0;iN; i+) printf(%4.1fn,s.si); printf(nave=%7.3fn,s.ave);改错题定义一个结构体数组stu并且初始化,main函数中输出数组元素各成员的值。(源程序附后面)输入输出示例NoName sex age 10101 Li Lin M 18 10102 Zhang Fun M 19 10104 wang Min F 20源程序(有错误的程序)#include struct studentint num; char name20; char sex; int age; ;struct student stu3=10101,Li Li

27、n,M,18,10102,Zhang Fun,M,19,10104,ang Min,F,20;main()struct student*p; printf( No.Namesexagen); for(p=stu;p3;p+)printf(%5d %-20s %2c %4dn,*p.num, *p.name, p.sex, p.age); 三、实验平台 Windows98 或 2000 或 XP以上版本 VC6.0以上版本四、程序清单(请写出上机内容1的源程序和上机内容2中的函数)五、教师批语与成绩评定:评语:成绩:优良中及格不及格 评阅教师: 评阅日期:年 月 日 C语言程序设计实验(上机)报

28、告班级学号 姓名 实验日期 任课教师 实验名称实验九 共用体、位运算、文件(选做)验证型一、实验目的及要求1理解共用体概念,掌握共用体变量定义格式和引用形式与运算。2掌握位运算的基本规则。3掌握文件和文件指针的概念以及文件的定义方法。4掌握文本文件的顺序读、写方法。二、上机内容 1运行以下程序,并对结果进行分析:(2) #include void main() int c,d,e; int a=6,b=12; c=a&b; d=a|b; e=ab; printf(“%d & %d=%dn”, a,b,c); printf(“%d | %d=%dn”, a,b,d); printf(“%d %d

29、=%dn”, a,b,e); printf(“%d,%dn”, a1,b3);(1) #include void main() union exx int a,b; struct int c,d; lpp; e=10; e.b=e.a+20; e.lpp.c=e.a+e.b; e.lpp.d=e.a*e.b; printf(“%d,%dn”, e.lpp.c,e.lpp.d); 2编写程序:(1)求100以内能同时被3和5整除的自然数,分别将它们输出到显示器屏幕和x.txt文件中。(2)用程序读出上述x.txt文件中的数据,将它们输出到屏幕,并求它们的和。三、实验平台 Windows98 或

30、2000 或 XP以上版本 VC6.0以上版本四、程序清单 (请写出上机内容2中的程序源代码)五、调试和测试结果(调试中出现的典型问题及解决方法,测试结果是否正确或具体值等)六、教师批语与成绩评定:评语:成绩:优良中及格不及格 评阅教师: 评阅日期:年 月 日 实验报告填写说明1. 实验报告中的班级写行政班级(如道土1班),学号写完整学号(如20176000101),实验日期不要漏写,任课教师写全名。2. 设计流程(算法描述)的书写用传统流程图、N-S流程图或伪代码中的任一种方式写出算法。3. 调试和测试结果应有内容,至少是“调试结果正确”,如果遇到错误,则写出错误信息,及调试解决方法。要求写出测试用的数据和测试结果,应对所有路径都进行测试。21

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 实验数据

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922