
c语言程序设计实验报告模板(实验报告).docx
12页c语言程序设计实验报告模板篇一:C语言程序设计实验报告 一、实验目的: 1、掌握C语言的数据类型和变量的声明 2、掌握不同类型数据之间赋值的规律 3、掌握C语言的运算符和表达式的使用 4、熟悉C程序的编辑、编译、连接和运行的过程 二、实验内容: ①输人程序: #includevoid main { int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1=a;c2=b; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); } ②运行此程序并分析结果 (2)按习题4. 8要求编写程序 题目为: 设圆半径r=l. 5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。
用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字 程序: 三、实验步骤: ①输人程序: #include void main { int a, b; float d,e; char c1,c2; double f, g; long m, n; unsigned int p,q; a=61;b=62; c1=a;c2=b; d=3.56;e=-6.87; f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000; printf("a=%d,b=%d c1=%c,c2=%c d=%6.2f,e=%6.2f ",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.6f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); } ②运行此程序并分析结果 预计结果: a=61,b=62 c1=a,c2=b d=``3.56,e=`-6.87 f=````3157.890121,g=```````0.123456 m=50000,n=-60000 p=32768,q=40000(`代表空格) 结果: g的输出看来是四舍五入了。
③在此基础上,将程序第9~14行改为: a=61;b=62; c1=a;c2=b; f=3157.890121;g=0.123456789; d=f;e=g; p=a=m=50000;q=b=n=-60000; 运行程序,分析结果 p=a=m=50000;q=b=n=-60000;这两条语句将p、a、m的值和q、b、n的值都重新赋了相应的新值除m、n外都是整型、无符号整型或字符型,因此输出会按数据类型强制截取,因此得到的值会不尽相同,但可以从理论上做出推测,但由于编译系统的不同,真正得到的结果也可能不尽相同 ④改用scanf函数输人数据而不用赋值语句,scanf函数如下: scanf("%d,%d,%c,%c,%f,%f,%lf,%lf,%ld,%ld,%u,%u",&a,&b,&c1,&c2,&d,&e,&f,&g,&m,&n,%p,%q); 输入的数据如下: 分析运行结果 (说明:lf和ld格式符分别用于输人double型和long型数据) ⑤在④的基础上将printf语句改为: printf("a=%d,b=%d c1=%c,c2=%c d=%15.6f,e=%15.6f ",a,b,c1,c2,d,e); printf("f=%f,g=%f m=%ld,n=%ld p=%u,q=%u ",f,g,m,n,p,q); 运行程序: ⑥将p、q改用%o格式符输出。
⑦将scanf函数中的%1f和%ld改为%f和%d,运行程序并观察分析结果 出现错误,提示为:浮点错误:超出范围程序异常中止 (2)按习题4. 8要求编写程序 题目为: 设圆半径r=l. 5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积 用scanf输人数据,输出计算结果口输出时要有文字说明,取小数点后两位数字 程序: #include void main { float h,r,s,sq,vq,vz; float pi=3.1415926; printf("Please input the circinal r, and the cylindrical h:"); scanf("%f,%f",&r,&h); l=2*pi*r; sq=4*pi*r*r; vq=4.0/3.0*pi*r*r*r; vz=pi*r*r*h; printf("circinal girth is: l=%6.2f ",l); printf("circinal area is: s=%6.2f ",s); printf("sphere surface area is: sq=%6.2f ",sq); printf("sphere cubage is: vq=%6.2f ",vq); printf("cylindrical cubage is: vz=%6.2f ",vz); } (3)编程序,用getchar函数读人两个字符给c1 ,c2,然后分别用putchar函数和printf输出这两个字符。
上机运行程序,比较用printf和putchar函数输出字符的特点 程序如下: #includevoid main { char c1,c2; printf("Please input tow letters: "); c1=get); c2=get); printf("Putchar is: "); putc1); putc2); printf(" "); printf("Printf is: "); printf("%c %c ",c1,c2); } 可见有putchar输出的结果是一个字符一个字符顺序输出的每个putchar函数只能输出一个字符,且只能输出字符,而printf可以输出多个数据,且为任意类 四、实验心得(体会): 通过本次C语言上机实验,我对顺序结构程序设计有了一定的了解通过几个例题,我对顺序结构中scanf和printf语句的基本实用情况有了一定的理解我相信这些都为后来的编程打下基础对C语言学习,我会更加努力篇二:C语言程序设计实验报告 (一) 实验目的 (1) 熟悉和掌握结构的说明和引用、结构的指针、结构数组,以及函数中使用结构的方 法。
(2) 掌握动态存储分配函数的用法,掌握自引用结构和单向链表的创建、遍历、结点的 增删、查找等操作 (3) 了解字段结构和联合的用法 (二) 实验内容及要求 1.表达式求值的程序验证 设有说明: char u = "UVWXYZ"; char v = "xyz"; struct T{ int x; char c; char *t; }a = {{11, A, u}, {100, B, v}}, *p = a; 请先自己计算表2.1中表达式的值,然后编写程序并运行来加以验证各表达式相互无关) 2.源程序修改、替换 下面所给源程序的功能是:给定一批整数,以0作为结束标志且不作为结点,将其建成一个先进先出的链表先进先出链表的头指针始终指向最先创建的结点(链头),先建结点指向后建结点,后建结点始终是尾结点请完成以下工作: (1) 源程序中存在什么样的错误(先观察执行结果)?对程序进行修改、调试使之能 够正确完成指定任务 (2) 修改替换creat_list函数,将其建成一个后进先出的链表后进先出的链表的头指针 始终指向最后创建的结点(链头),后建结点指向先建结点,先建结点始终是尾结点。
源程序 #include #includestruct s_list{ int data; struct s_list *next; }; void creat_list(struct s_list *headp, int *p); int main(void) { struct s_list *head = NULL, *p; int s = {1, 2, 3, 4, 5, 6, 7, 8, 0}; creat_list(head, s); p = head; while(p) { printf("%d ", p -> data);p = p -> next; } printf(" "); return 0; } void creat_list(struct s_list *headp, int *p) { struct s_list *loc_head = NULL, *tail; if(p[0] == 0); else { loc_head = (struct s_list *)malloc(sizeof(struct s_list));loc_head -> data = *p++;tail = loc_head;while(*p){ tail -> next = (struct s_list *)malloc(sizeof(struct s_list)); tail = tail -> next; tail -> data = *p++;} tail -> next = NULL; } headp = loc_head; } 3.程序设计 编写并上机调试运行能实现以下功能的程序或函数: (1)编写一个程序,实现以下功能:定义一个字段结构struct bits,它将一个8位无符号字节从最低位向最高位声明为8个字段,各字段依次为bit0, bit1, …… bit7,且bit0的优先级 最高。
同时设计8个函数,第i个函数以biti(i = 0, 1,……7)为参数,并且在函数体内输出biti的值将8个函数的名字存入一个函数指针数组p_fun如果bit0为1,调用p_fun[0]指向的函数如果struct bits中有多位为1,则根据优先级从高到低依次调用函数指针数组p_fun中相应元素指向的函数8个函数中的第0个函数可以设计为 Void f0(struct bits b) { Printf(“the function %d is called! ”, b); } (3) 设计用单词链表建立一张班级成绩单,包括每个学生的学号、姓名、英语、高等数 学、普通物理、C语言程序设计四门课程的成绩,试用函数编程实现下列功能: ① 输入每个学生的各项信息 ② 输出每个学生的各项信息 ③ 修改指定学生的指定数据项的内容 ④ 统计每个同学的平均成绩(保留两位小数) ⑤ 输出各位同学的学号、姓名、四门课程的总成绩和平均成绩 4.选做题 (1)对上述程序设计题中第(2)题的程序,增加按照平均成绩进行升序排序的函数,试写出用交换结点数据域的方法升序排序的函数,排序可用选择法。












