C语言程序设计实验8
《C语言程序设计》实验报告(实验1-12)
《C语⾔程序设计》实验报告(实验1-12)《C语⾔程序设计》实验报告2013~2014学年第⼆学期班级姓名学号指导教师实验⼀实验项⽬名称:C程序的运⾏环境和运⾏C程序的⽅法所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运⾏⼀个C程序;2.通过运⾏简单的C程序,初步了解C源程序的特点。
⼆、预习内容:教材《C语⾔程序设计教程》第1章。
三、实验内容:1. 在Visual C++ 6.0环境下输⼊并运⾏下⾯的程序:#includeint main( ){printf("This is a C program.\n");return 0;}2. 在Visual C++ 6.0环境下输⼊下⾯的程序(有语法错误),编译、连接、调试该程序,直⾄程序⽆语法错误,然后运⾏程序,并观察分析运⾏结果。
#includeint main( ){int a,b,suma=3;b=4;sun=a+b;print(“%d+%d=%d\n”,a,b,sum);return 0;}四、实验结果:1. 运⾏结果(或截图):This is a C program.Press any key to continue2. (1) 改正后的源程序:#includeint main( ){int a,b,sum;a=3;b=4;sum=a+b;printf("%d+%d=%d\n",a,b,sum);return 0;}(2) 运⾏结果(或截图):3+4=7五、思考题:1. ⼀个C程序上机的步骤有哪些?答:上级输⼊与编辑源程序—对原程序进⾏编译–与库函数链接–运⾏可执⾏的⽬标程序。
2. 组成C程序的基本单位是函数,⼀个函数包括哪⼏个部分?答:⼀个函数包括两部分:分别为函数头或函数⾸部和函数体。
成绩指导教师签名实验⼆实验项⽬名称:数据类型、运算符和表达式所使⽤的⼯具软件及环境:Visual C++ 6.0⼀、实验⽬的:1.掌握整型、实型与字符型这三种基本类型的概念;2.掌握常量及变量的使⽤⽅法;3. 掌握基本算术运算符及其表达式的使⽤⽅法;4. 掌握++、--运算符、赋值运算符及其表达式的使⽤⽅法。
大学大一c语言程序设计实验室上机题全部代码答案(实验报告)
C语言实验报告实验1—1:hello world程序:源代码:#include〈stdio.h>main(){printf(”hello world!\n”);system(”pause");}实验1—2:完成3个数据的输入、求和并输出计算结果的程序:源代码:#include<stdio。
h〉main(){int i,j,k,sum;scanf("%d%d%d",&i,&j,&k);sum=i+j+k;printf("sum=%d",sum);system(”pause”);实验1—3:在屏幕上输出如下图形:ABBBCCCCC源代码:#include<stdio。
h〉main(){printf(” A\n”);printf(" BBB\n”);printf(” CCCCC\n");system(”pause");}实验2—1:计算由键盘输入的任何两个双精度数据的平均值源代码:#include〈stdio.h〉main(){double a,b;scanf("%lf%lf”,&a,&b);printf("%。
1lf\n”,(a+b)/2);system(”pause”);}实验2—2:写一个输入7个数据的程序,把输入的数据代入a + b * (c – d ) / e * f – g 表达式进行运算源代码:#include<stdio.h〉main(){float a,b,c,d,e,f,g,x;scanf("%f%f%f%f%f%f%f”,&a,&b,&c,&d,&e,&f,&g);x=a + b *(c - d )/ e *f - g;printf(”x=%f”,x);system("pause");}实验2-3:编写一个C语言程序,测试下列各表达式:i,ji + 1 , j + 1i++ , j++++i ,++ji+++++j源代码:#include<stdio。
《C语言程序设计》第8章指针
10.3.3 指针变量和数组作函数参数 数组名作形参时,接收实参数组的起始地址;
作实参时,将数组的起始地址传递给形参数组。
引入指向数组的指针变量后,数组及指向数 组的指针变量作函数参数时,可有4种等价形式 (本质上是一种,即指针数据作函数参数):
(1)形参、实参都用数组名 (2)形参、实参都用指针变量 (3)形参用指针变量、实参用数组名 (4)形参用数组名、实参用指针变量
(4)指针变量的++、--与&、*的结合
对于指针变量的++、--与&、*的结合 使用,关键要注意按照运算符的优先级和 结合性进行。
例如: int a=2, *p; p=&a;
•表达式:(*p)++,按运算符的优先级,等价于 a++。其含义为:取出指针变量p所指向的内存单 元的值(即a的值),a的值加1,送回a的内存单 元,a的值变为3,p的值未发生变化,仍然指向 变量a。
程序说明:printf("%s\n",s);语句 通过指向字符串的指针变量s,整体引
用它所指向的字符串的原理:系统首先输出s 指向的第一个字符,然后使s自动加1,使 之指向下一个字符;重复上述过程,直至遇到 字符串结束标志。
main() { char string[ ]=”I love Beijing.”; printf(“%s\n”,string); }
3.数组元素的引用 数组元素的引用,既可用下标法,也可用
指针法。
10.3.2 通过指针引用数组元素 如果有“int a [10],*p=a;” ,则: (1)p+i和a+i都是数组元素a [i]的地址。
(2)*(p+i)和*(a+i)就是数组元素a [i]。 int a [3]; a [0]——*a a [1]——*(a +1) a [2]——*(a +2)
C语言程序设计 项目八
2. fread()函数、fwrite()函数 函数、 函数 函数
将一组数据,如一个数组元素,一个结构变量的值等一次性读写,其输入输 出函数是二进制形式输入输出的函数,在输入输出中不必进行数据的转换,输入 输出速度相对较快。 读写数据块函数调用的一般形式为: 读写数据块函数调用的一般形式为: fread(buffer,size,count,fp); fwrite(buffer,size,count,fp); 说明: buffer:对于fread()来说,指的是 读入数据的存放地址; 对于fwrite来说,是要输出数 据的地址。 size读写数据时,每笔数据的大小 count: 读写数据的笔数 fp: 文件指针
for(i=0;i<10;i++,pp++) fscanf(fp,"%s%d%d%d%f",pp->name,&pp>math,&pp->englist,&pp->chinese,&pp->avg);
fread(yy,sizeof(struct stu),10,fp);
【例8-2】从键盘中输入10个学生的姓名及数学、英语、语文三门课的成绩,计算每个同 学的平均分,然后将此10个同学的姓名、三门课的成绩及平均分写入到文本文件aa.txt中。 printf("请输入十个学生的数据\n"); 程序如下: /*输入十个同学的姓名、成绩并计算每个 输入十个同学的姓名、 输入十个同学的姓名 分析:编写此题的思路是: #include "stdio.h" 同学的平均分*/ 同学的平均分 #include "process.h" (1)需要定义一个结构体数组,用于存放10个同学的姓名、三门课的成绩及平均分; for(i=0;i<10;i++,pp++) /*定义结构体 定义结构体*/ 定义结构体 (2)在键盘上读入10个同学的姓名、三门课的成绩,然后计算每个同学的平均分; 打开件aa.txt {scanf("%s%d%d%d",pp->name,&ppstruct stu 输入的数据如下: (3)将10个同学的姓名、三门课的成绩及平均分写入到文本文件aa.txt中; >math,&pp->english,&pp->chinese); {char name[10]; pp->avg=(pp->math+pp->englist+ppint math,english,chinese; >chinese)/3.0;} float avg;} pp=student; main() /*将十个同学的姓名、三门课成绩、平均 将十个同学的姓名、三门课成绩、 将十个同学的姓名 {stu student[10],*pp; 分写入到文件aa.txt中*/ 分写入到文件 中 FILE *fp; for(i=0;i<10;i++,pp++) int i; fprintf(fp,"%s %d %d %d %.1f\n",pppp=student; >name,pp->math,pp->english,pp/*以写入的形式打开文件 以写入的形式打开文件aa.txt*/ 以写入的形式打开文件 >chinese,pp->avg); if((fp=fopen("aa.txt","w"))==NULL) fclose(fp); //关闭文件 {printf("打不开文件\n"); } exit(1); }
C语言程序实验报告--谭浩强
C语言程序设计实验报告学校:内蒙古科技大学经济与管理学院班级:信息管理与信息系统2011级姓名:王*学号:**********目录实验一C语言开发环境建立 (3)实验二C语言程序初步 (3)实验三变量与赋值 (4)实验四运算符与表达式 (5)实验五数据类型 (7)实验六控制台输入/输出 (9)实验七关系运算与逻辑运算 (11)实验八分支程序的测试与调试 (12)实验九条件型循环结构及其测试 (16)实验十计数型循环结构及其测试 (20)实验十一函数及其测试 (24)实验十二变量的储存性质 (26)实验十三数组 (30)实验十四指针 (32)实验十五结构体和共用体 (37)实验十六文件 (40)实验11、实验目的与要求(1)掌握C语言开发环境的软/硬件配置和安装方法。
(2)为了自己的方便进行工作环境配置。
(3)测试所建立的C语言程序开发环境。
2、实验测试一个简单的程序,对所建立的程序开发环境进行测试例如,可以准备一个简单的程序如下。
#include <stdio.h>int main(void){printf("I am studying programming with C.");}编译结果运行结果3.分析与预期结果相同实验21.实验目的与要求(1)进一步熟悉c语言程序设计环境。
(2)明确c语言程序的结构。
2. 程序检测与调试程序一错误程序:main()(printf("This is c program.");)调试结果:程序缺少“#include<stdio.h>”,main函数下面应该是“{}”而不是“()”。
改正后的程序:#include<stdio.h>main(){printf("This is c program.\n");}程序二错误程序:#include<stdio.h>;main(){a=3,b=5;c=a*b;printf("The product is:",c)}调试结果:“#include<stdio.h>”后面没有“;”,对变量a,b,c没有定义,“}”前缺少“;”。
C语言程序设计及实验指导练习及习题参考答案(8--10)
C语言程序设计及实验指导练习及习题参考答案(8--10) 8练习参考答案1、练习8-1.如果有定义:intm,n=5,某p=&m;与m=n等价的语句是BA.m=某p;B.某p=某&n;C.m=&n;D.m=某某p;8-2.设计一个程序计算输入的两个数的和与差,要求自定义一个函数um_diff(floatop1,floatop2,float某pum,float某pdiff),其中op1和op2是输入的两个数,某pum和某pdiff是计算得出的和与差。
解答:#includeintmain(void){floatop1,op2,um,diff;voidum_diff(floatop1,floatop2,float某pum,float某pdiff);printf(“inputop1andop2:“);canf(“%f%f”,&op1,&op2);um_d iff(op1,op2,&um,&diff);printf(“%f+%f=%f;%f-%f=%f\\n”,op1,op2,um,op1,op2,diff);return0;}voidum_diff(floatop1,floatop2,float某pum,float某pdiff){某pum=op1+op2;某pdiff=op1–op2;}8-3.两个相同类型的指针变量能不能相加?为什么?解答:不能。
因为指针变量是一种特殊的变量,指针变量的值存放的是所指向变量的地址,两个地址相加并不能保证结果为一个有效的地址值,因而在C语言中指针变量相加是非法的。
8-4.根据表8.2所示,这组数据的冒泡排序其实循环到第6遍(即n-2)时就已经排好序了,说明有时候并不一定需要n-1次循环。
请思考如何改进冒泡排序算法并编程实现(提示:当发现一遍循环后没有数据发生交换,说明已经排好序了)。
解答:设置一个标志变量flag,进入一轮循环前设置为0,在循环中有发生数据交换就改写flag值为1。
C语言实验学生版(最新版)
实验一:简单的C程序设计(2学时)一、实验方式:一人一机二、实验目的:1、了解C语言程序的编译环境和编写过程。
2、掌握C语言程序在Visual C++ 6.0环境下的调试过程。
3、初步了解C语言程序的特点。
4、掌握C语言的数据类型。
三、实验内容:1、计算两个数x和y的和。
(教材P5【例1-2】)2、从键盘输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。
(实验教材P18)3、给定圆环,输入内圆环半径r1、外圆环半径r2,求出圆环的面积。
(实验教材P27)4、从键盘上输入两个整数x、y,实现两个数的交换,并求出最大值、最小值和两个数的平均值。
(实验教材P21)5、输入并运行以下程序,分析运行结果。
(实验教材P27)#include <stdio.h>void main( ){int i,j;i=8; j=10;printf(“%d,%d\n”,++i,++j);i=8; j=10;printf(“%d,%d\n”,i++,j++);i=8; j=10;printf(“%d,%d\n”,++i,i);i=8; j=10;printf(“%d,%d\n”,i++,i);}四、实验程序代码:五、实验运行结果(截图):实验二:顺序结构程序设计(2学时)一、实验方式:一人一机二、实验目的:1、掌握标识符、常量、变量的定义及使用。
2、掌握C语言的常用运算符及表达式。
3、掌握单分支if语句的使用方法。
4、掌握双分支if-else语句的使用方法。
三、实验内容:1、从键盘输入一个3位整数,请输出该数的逆序数。
(实验教材P27)2、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。
(实验教材P27)3、判断箱子是正方体还是长方体。
(实验教材P33)4、有一函数: x (x<1)y= 2x-1 (1≤x<10)3x-11 (x≥10) 编写程序,输入x值,输出y值。
C语言程序设计实验手册
实验手册使用及要求实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该表达完整性、标准性、正确性、有效性。
现将实验报告撰写的有关内容说明如下:1、实验前按实验要求手写程序或程序填空,并走查代码,有疑问处标记,上机时在C语言集成开发环境下输入并调试手写程序,分析运行结果。
2、实验完毕后填写通过后的源程序和对实验的总结。
3、通过后的源程序可以手写也可以打印粘贴。
实验工程一览表实验一熟悉C语言编程环境实验目的:1.熟悉C语言编程环境〔VC++、Cfree、Turboc等〕2.了解C程序的根本框架3.理解程序调试的思想,能找出并改正C程序中的错误实验内容:1.1 建立自己的文件夹:在磁盘上建立一个文件夹,用于存放自己的C程序1.2 编程例如在屏幕上显示一个短句“Programming in C is fun!〞〔教师例如,学生模仿并创新,如输出汉字、特除字符等。
学会使用编程环境VC++,启动、编辑、编译、运行、保存、关闭、翻开〕1.3 编程在屏幕上显示如下网格。
+---+---+| | || | |+---+---+调试例如改正以下程序中的错误,在屏幕上显示“Welcome to You !〞。
〔掌握找错、改错的方法〕源程序:# include <stdio.h>int mian(void){printf(Welcome to You! \n")getchar();return 0;}注:需要修改的语句直接在程序上标注并修改实验总结:实验二用C语言编写简单程序实验目的:1.掌握算术表达式和赋值表达式的使用2.掌握根本输出函数的使用3.能够自己编程实现简单的数据处理4. 熟练掌握简单if语句使用5. 熟练掌握for语句的使用6. 掌握简单C程序的查错方法、单步调试实验内容:2.1 调试以下程序,求华氏温度对应的摄氏温度。
计算公式为:C=5*(f-32)/9#include <stdoi.h>int main(void){int celsius; fahr;scanf("%d ",fahr);celsius = 5 * (fahr - 32) / 9;printf("fahr = d, celsius = %d\n", fahr, celsius);return 0;}注:需要修改的语句直接在程序上标注并修改2.2编写程序计算定期存款本利之和:设银行定期存款的年利率rate为2.25%,并存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit。
c语言程序设计实验指导答案
太原理工大学现代科技学院C语言程序设计课程实验报告专业班级学号姓名指导教师焦雄5.#include <stdio.h> void main(){int a=10,n=5;a+=a;printf("%d\n",a);a=10,a-=2;printf("%d\n",a);a=10,a*=2+3;printf("%d\n",a);a=10,a/=a+a;printf("%d\n",a);a=10,a%=(n%=2);printf("%d\n",a);a=10,a+=a-=a*=a;printf("%d\n",a); }遇到的问题和解决方法心得体会实验三简单程序、分支程序和循环程序设计实验名称实验目的和要求1.理解C语言程序的基本结构和实现基本结构的语句;2.熟练应用赋值、输入和输出语句;3.理解并掌握关系运算符、逻辑运算符及其表达式的使用;4.熟练掌握if语句、switch语句、while语句、do—while语句和for语句的用法;实验内容1.输入并运行第3章例3-3、例3-6中的程序,通过输出结果理解对应的格式说明。
2.输入并运行第3章例3-8、例3-10中的程序,注意输入数据的格式。
3.已知圆柱半径r=1.5,圆柱高h=3,编程求圆周长,圆面积和圆柱体积。
4.输入一百分制成绩,输出成绩等级A、B、C、D、E。
90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。
要求程序能处理错误的输入数据。
5.利用公式:π/4=1-1/3+1/5-1/7+……,求π的近似值,直到最后一项的绝对值小于10-6为止。
(fabs(t)表示t的绝对值,1e-6=1*10-6)。
6.求100-200间所有素数。
7.输出三角形的九九乘法口诀表。
8.打印水仙花数。
水仙花数是指一个3位数,其各位数字立方和等于该数本身。
C语言程序设计教程上机实验--学生版(精品)
实验一上机操作初步一、实验内容:说明:前三题为必做题目,后两题为选做题目。
1、输出入下信息:(实验指导书P79)*************************Very Good*************************2、计算两个整数的和与积。
(实验指导书P81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
(书P3)4、在屏幕上显示一个文字菜单模样的图案:=================================1 输入数据2 修改数据3 查询数据4 打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
二、参考答案:1、#include <stdio.h>void main( ){ printf(“********************\n”);printf(“ Very Good\n”);printf(“********************\n”);}2、#include <stdio.h>void main( ){ int a,b,c,d;printf(“Please enter a,b:”);scanf(“%d,%d”,&a,&b);c=a+b;d=a*b;printf(“%d+%d=%d\n”,a,b,c);printf(“%d*%d=%d\n”,a,b,d);}3、#include <stdio.h>#include <math.h>void main( ){ double x,s;printf(“Please input value of x:”);scanf(“%lf”,&x);s=cos(x);printf(“cos(%lf)=%lf\n”,x,s);}4、#include <stdio.h>void main( ){ printf(“==================================\n”);printf(“ 1 输入数据 2 修改数据\n”);printf(“ 3 查询数据 4 打印数据\n”);printf(“===================================\n”);}5、#include <stdio.h>void main( ){ int x,y,t;printf(“Please enter x and y:”);scanf(“%d%d”,&x,&y);t=x; x=y; y=t;printf(“After swap:x=%d,y=%d\n”,x,y);}实验二简单的C程序设计一、实验内容:说明:前四题为必做题目,后两题为选做题目。
《C语言程序设计》课程教学大纲
《C语言程序设计》课程教学大纲课程名称:C语言程序设计课程类别:专业选修课适用专业:食品科学与工程考核方式:考试总学时、学分: 48学时 2.5 学分其中实验学时: 16学时一、课程教学目的高级语言程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行。
本课程旨在培养学生学会分析问题的方法和基本问题的解决能力, 初步了解程序设计的技巧和方法、掌握 C 语言的基本内容及程序设计的基本方法与编程技巧,并能够运用Microsoft Visual C++ 6.0集成开发工具编写一些小程序,为以后继续学习打下基础。
二、课程教学要求本课程主要通过适当的示例, 系统、详细地讲解程序设计的基础知识、 C 程序设计语言的基本语法、编程方法和常用算法。
通过教学的各个环节使学生达到各章中所提的基本要求。
讲授时应以培养学生的程序设计实际软件开发能力和实践应用能力为侧重点。
三、先修课程无四、课程教学重、难点重点:C语言中的逻辑值及表示方式,使用while语句、do-while语句和for语句构成的三种循环结构,常用库函数的调用方法,数组应用的基本算法;难点:指针变量的定义及基本操作;函数之间地址的传递。
五、课程教学方法与教学手段以黑板讲授和多媒体教学手段相结合的课堂教学。
通过典型的示例讲解、必要的现场实际操作演示、适量的课堂练习、课后的上机编程调试以及及时地辅导答疑,在教学过程中增强师生之间的互动性,充分发挥学生在学习过程中的自主性、能动性和创造性。
六、课程教学内容第一章程序设计基本概念(1学时)1. 教学内容程序设计的基本含义,算法的基本特点,算法的重要性,结构化程序设计的三种基本结构,使用流程图表示三种基本结构。
2. 重、难点提示重点是结构化程序设计等基本概念;难点是算法的概念。
第二章 C程序设计的初步知识(2学时)1. 教学内容简单C语言程序的构成和格式、标识符、常量和变量、整型数据、实型数据、算术表达式、赋值表达式、自加、自减运算符、强制类型转换和逗号表达式。
C语言程序设计 上机实验指导与习题 参考答案
C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。
C语言程序设计(第八章)
的读写函数。 每次可从文件读出或向文件写入一个字符。
第八章
1.读字符函数fgetc()
fgetc() 函数的功能是从指定的文件中读一个字符,函
数调用的形式为:
字符变量 = fgetc(文件指针);
例如:
ch = fgetc(fp);
的意义是从打开的文件fp中读取一个字符并送入ch中 。
(1)字符读/写函数 :fgetc()/fputc()
(2)字符串读/写函数:fgets()/fputs()
(3)数据块读/写函数:freed/()fwrite()
(4)格式化读/写函数:fscanf()/fprinf()
以上函数原型都在头文件stdio.h中加以声明。
第八章
8.5.1字符读/写函数 :fgetc()/fputc()
关闭文件则断开指针与文件之间的联系,禁止再对该文
件进行操作。
第八章
8.3.1 文件打开的函数fopen()
open函数用于打开一个文件,其调用的一般形式为: 文件指针名 = fopen(文件名, 使用文件方式);
“文件指针名”:必须是被说明为FILE 类型的指针变量。
“文件名”:被打开文件的文件名,“文件名”是字符串常 量、字符数组或字符指针。 “使用文件方式”:指文件的类型和操作要求。
/* 输出系统提示信息 */
上面程序段的意义是,如果返回的指针为空,表示不能 打开test.dat文件,则给出提示信息“打开文件test.dat出 错!”,然后输出系统提示信息,当用户从键盘敲任一键后 执行exit(1)退出程序 。
第八章
8.3.2 文件关闭的函数fclose()
C语言程设计实验与案例周信东主编实验八 指针
实验6 指针学号:1700200224姓名:莫新锋实验日期:一、实验目的和要求(1)掌握指针的概念、指针变量定义和引用。
(2)掌握指针的运用方法。
(3)掌握数组的指针和指向数组的指针变量。
(4)掌握指针与函数的关系。
(5)能正确使用字符串的指针和指向字符串的指针变量。
(6)了解指向函数的指针。
(7)了解指向指针变量的指针的概念及其使用方法。
二、实验内容完成实验指导书中的实验八“基础部分”和“增强部分”的题目。
实验九的内容由同学自行选作。
三、实验步骤及结果【基础题】:Ex8-1请在下面分别插入改正错误后的源程序代码及运行成功时的画面源程序代码:请在此粘贴修改后正确的程序代码。
、#include<stdio.h>//#define N 12void main(){int j, a[12],*p=a;//p=&a[N];for(j=1;j<=12;j++)scanf("%d",p);for(j=1;j<=12;j++){printf("%d",p++);if(j%4==0)printf("\n");}}运行结果:请在此粘贴本程序运行结果的截图Ex8-2请在下面插入该程序的运行结果的画面:运行结果:#include<stdio.h>swap(int *pl,int *p2){int p;p=*pl;*pl=*p2;*p2=p;}void main(){int n1,n2,n3;int *p1,*p2,*p3;printf("Input n1,n2,n3: ");scanf("%d,%d,%d",&n1 ,&n2,&n3);p1=&n1;p2=&n2;p3=&n3;if (n1>n2)swap(p1,p2);if (n1>n3)swap(p1,p3);if(n2>n3)swap(p2,p3);printf("The result is:%d %d %dn",n1,n2,n3);}请在此粘贴本程序运行结果的截图试用解释本程序是如何通过指针参数p1、p2改变主函数main中的变量n1、n2、n3的值的?请回答问题将n1,n2,n3的地址分别给p1,p2,p3,通过对n1,n2,n3两两的比较,调用函数swap进行排序,进而得到新的地址排序后输出【增强题】:Eh8-1请在下面分别完成本题的源程序代码及运行结果的画面:源程序代码:请在此粘贴完成本题的程序源代码。
C语言程序设计实验
《C语言程序设计实验》教学大纲课程名称:C语言程序设计实验课程编号:14030105课程类别:专业基础课/必修课学时/学分:16/0.5开设学期:第二学期开设单位:物理与机电工程学院适用专业:电气工程及其自动化说明一、课程性质专业基础课/必修课二、教学目标C语言程序设计是一门逻辑性比较强的专业基础课。
在学生学过计算机基础课程的基础上,系统地介绍面向过程的程序设计语言的一般规律及程序设计方法。
通过综合性实验环节,培养学生的程序设计能力,为后续课程的学习打下基础。
三、学时分配表四、实验方法与要求建议1.要求一人一机。
2.要求学生提前预习与编程,结合老师的讲解与演示独立完成实验要求。
五、考核方式及要求采用现场实际编程并按要求书写实验报告相结合的考核方式,成绩计算方法如下实验成绩=现场实际操作能力(70%)+实验报告(30%)实验一熟悉C语言的运行环境一、实验性质实验类别:专业基础必修实验类型:验证型计划学时:1学时实验分组:一人一机二、实验目的1.了解所用的计算机系统的基本操作方法,学会使用该系统;2.了解在该系统上如何编辑、编译、连接和运行一个C程序;3.通过运行简单的C程序,初步了解C程序的特点。
三、实验的基本内容和要求1.检查所用的计算机系统;2.进入C的工作环境;3.熟悉 Turbo C集成环境;4.输入并运行几个简单的C程序。
四、实验仪器设备及材料1.硬件条件微型计算机(intel X86 CPU)。
2.软件条件Windows XP/ME/2000操作系统,安装了Visual C++6.0 或Turbo C2.0软件。
五、实验操作要点注意快捷键的使用六、实验教学建议教师先讲解与演示,然后辅导学生运行一些简单的程序,掌握一个程序的运行方法,并初步学会查找错误的方法,并按时完成实验报告。
实验二数据类型.运算符与表达式一、实验性质实验类别:专业基础必修实验类型:综合型计划学时:2学时实验分组:一人一机二、实验目的1.掌握C语言数据类型,熟悉如何定义一个整型.字符型和实型的变量,以及对它们赋值的方法;2.掌握不同的类型数据之间赋值的规律;3.让学生学会使用C的算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(——)运算符的使用;4.进一步熟悉C程序的编辑、编译、连接和运行的过程。
C语言程序设计》实验指导书
《计算机基础与程序设计》实验指导书实验教学目标:本课程实验教学的目标在于使学生能够掌握算法的基本概念,并根据算法编制程序,掌握调试程序的基本技巧,初步了解软件开发所要经历的阶段,为学生从事计算机软件开发和数据处理工作打下坚实的基础。
实验教学要求:要求掌握数据类型的定义和使用;三种结构的程序设计;数组;函数;指针;结构体与共用体;文件操作等。
实验(一)C语言的编程环境(TURBOC 2.O)一、目的和要求1、熟悉C语言运行环境。
2、掌握C语言程序的书写格式和C语言程序的结构。
3、掌握C语言上机步骤,了解运行一个C程序的方法。
4、本实验可在学习完教材第一章后进行。
二、实验内容1. 启动Turbo C如果用户计算机系统已经安装了Turbo C编译系统,则在DOS命令状态下键入命令tc。
进入Turbo C集成环境后,首先在屏幕上显示Turbo C主菜单窗口,如下图所示。
可以看出,在该窗口,有8个菜单条目。
每一个菜单的意义如下:File 处理文件(包括装入、存盘、选择、建立、换名写盘),目录操作(包括列表、改变工作目录),退出系统及调用DOS 。
Edit 建立、编辑源文件。
Run 控制运行程序。
如果程序已经编译连接好,且Debug/Source Debugging以及Option/Compiler/Code generation/OBJ Debug Information开关置为On,则可以用此菜单初始化调试阶段。
Compile 编译并生成目标程序与可执行文件。
Project 允许说明程序中包含哪些文件的管理条目。
Options 可以选择集成环境任选项(如存储模式、编译时的任选项、诊断及连接任选项)及定义宏;也可以记录Include Output及Library文件目录,保存编译任选项和从配置文件加载任选。
Debug 检查、改变变量的值,查找函数,程序运行时查看调用栈。
选择程序编译时是否在执行行代码中插入调试信息。
C语言程序设计 Chapter8 结构体与共用体
struct date_type { int year; 结构体数组 int month; int day; 结构体数组的定义 }; ; struct stud_type { char name[10]; long num; char sex; struct date_type birthday; float score; char address[10]; }s1[3]; struct stud_type s2[5];
struct ym_type { 输入一个职工的工资信息, 例. 输入一个职工的工资信息,整体 int y; 赋值给另一个变量,在屏幕上输出。 赋值给另一个变量,在屏幕上输出。 int m; }; struct salary_type { char num[5]; char name[17]; struct ym_type ym; float salary; float other; float cost; };
#define N 5
char name[11]; int score; }t,s[N]; main() { /*输入基本信息 输入基本信息*/ 输入基本信息 /*选择排序成绩 选择排序成绩*/ 选择排序成绩 /*输出基本信息 输出基本信息*/ 输出基本信息 }
/*选择排序成绩 选择排序成绩*/ 选择排序成绩 for(i=0;i<N-1;i++) { k=i; for(j=i+1;j<N;j++) if(s[k].score<s[j].score) k=j; if(k!=i) { t=s[i]; s[i]=s[k]; s[k]=t; } }
第8章 结构体与共用体
概述
在事务处理中,常需要将一些关系密切但 在事务处理中 常需要将一些关系密切但类型不同的 并为其取一个整体名字, 数据项组织在一起,并为其取一个整体名字,形成一 并为其取一个整体名字 个结构。 语言中,就称其为 个结构。 语言中 就称其为结构体。 C语言中 结构体通常由不同数据类型的数据项(成员)组成 组成 一个结构体可包含若干成员,每个成员具有自己 一个结构体可包含若干成员 每个成员具有自己 的名字及数据类型。 的名字及数据类型。
C语言上机操作指导实验五数组(1) 实验八函数(2)
第 4页,共 14页
《C 程序设计》实验及课程设计项目报告
下标= a 2
0
1 8
2 16
3 14
4 1 10
5 8
6
7 16
8 4
9 20
10 6
部分源代码: k=0; if ( a[k]<a[1] ) 真 k=1; 执行 k=0; if ( a[k]<a[2] ) 假 for ( i=1; i<10; i++ ) k=2; 不执行 if ( a[k]<a[i] ) if ( a[k]<a[3] ) 真 k=i; k=3; 执行 相关知识:①删除数组元素的概念;②移动数组元素的算法;③求最大值位置的算法。 7. 以下 sy30.c 程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输 出低于平均分的学生成绩,用输入负数结束输入。请填空: #include <stdio.h> void main( ) { float x[1000], sum=0.0, ave, a; int n=0, i; printf ("Enter mark : \n") ; scanf("%f", &a); while (a>=0.0 && n<1000) { sum+= ; x[n]= ; n++; scanf("%f", &a); } ave= ; printf ("Output : \n"); printf ("ave = %f\n", ave); for (i=0; i<n; i++) if ( ) printf("%f\n", x[i]); } 8.打印如下杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 编程点拨: 杨辉三角形有如下特点: 1 只有下半三角形有确定的值; 2 第一列和对角线上的元素值都是 1; 3 其它元素值均是前一行同一列元素与前一行前一列元素之和。
C语言程序设计第八章 指针的使用
第八章指针的使用【学习目标】本章将详细介绍在C语言中如何使用指针。
学习要点包括如下几点:(1)掌握指针和指针变量的概念,了解指针变量的特点以及直接访问数据和间接访问数据的原理。
(2)掌握指针变量的定义、赋值方法及指针运算符的使用,熟练运用指针访问简单变量。
(3)熟悉指针和一维数组的关系,掌握指向一维数组的指针变量的定义方法,熟练使用指针变量访问一维数组元素。
(4)了解指针与字符串的关系,能熟练使用指针处理字符串。
(5)熟练掌握用指针变量作函数的参数时函数的定义和调用方法、数组名作函数的参数用法。
(6)指向指针的指针的运用。
【学习导航】本章的在整个课程中的位置如图5-1所示。
图8-1 本章学习导航在本书的第一章介绍C语言有一个灵活性的特点,那么它的灵活性具体体现在哪里呢?其实就是指针。
指针是C语言的精华部分,通过利用指针,我们能很好地利用内存资源,使其发挥最大的效率。
有了指针技术,我们可以描述复杂的数据结构,对字符串的处理可以更灵活,对数组的处理更方便,使程序的书写简洁,高效。
8.1 地址和指针指针是C语言的一种数据类型,类似于整型、字符型等。
既然指针也是一种类型,那么也可以定义该类型的变量,称为指针变量。
指针变量和其他类型的变量的区别是:指针变量存储的是地址。
所以要学好指针,就一定要明白数据在内存中是如何存储的。
计算机所有数据都是存储在存储器里,系统的内存可看作编了号的小房间,如果要取房间的东西(读取数据)就需要得到房间编号。
地址就是内存区中对每个字节的编号。
下面通过两个整型变量来说明。
整型变量x、y(基本整型需4个字节)在内存中的存储如图8-2所示(假设内存编号是从2000开始)。
把变量所占用的存储单元首字节的地址作为变量的地址。
C语言中利用取地址运算符“&”获取变量的存储地址。
例如,&c将返回c的首地址;&x将返回x的首地址。
2000H2004H2008H2012H...图8-2 变量x和y在内存中的存储图8-2中2000H和2004H就是内存单元的地址。
C语言程序设计实验报告
学生实验报告册(理工类)课程名称: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 <stdio.h>main(){ int s,t,p,sum;scanf(“%d%d%d”,&s,&t,&p);sum=s+t+p;printf(“sum=%d\n”,sum);}(2)#include <stdio.h>main(){ char c;c=getchar();if((c>=’a’)&&(c<=’z’)) c=c-32;printf(“Char is %c”,c);}(3)#include <stdio.h>main(){int x=1,y=1,z=1;y=y+z; x=x+y;printf(“%d ”,x<y?y:x);printf(“%d ”,x<y?x++:y++);printf(“%d ”,x);}(4)#include <stdio.h>main(){ char s[50];printf(“Please input a string:”);gets(s); /*scanf(“%s”,s);*/printf(“\nYou input string is: %s”,s);}(5)#include <stdio.h>main(){ int k=3;if(k=3) printf(“***”);else printf(“###”);}(6)#include <stdio.h>main(){int k=0;do{ printf(“k=%d\n”,k);}while(k++>0);}2、问题:完成以下三个程序,分别以文件名A01.c、A02.c和A03.c保存:(1)定义两个整型变量x,y,要求利用scanf()函数从键盘对x,y赋值,然后利用printf()输出两者之和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验目的
1、掌握定义函数的方法;
2、掌握函数实参与形参的对应关系以及“值传递”的方式;
3、掌握函数的嵌套调用和递归调用的方法;
4、掌握全局变量、局部变量、动态变量、静态变量的概念和使用方法;
5、了解数组元素、数组名作函数参数。
二、实验内容(程序清单及运行结果)
1.上机调试下面的程序,记录系统给出的出错信息,并指出出错原因。
void main()
{ int x,y;
printf("%d\n",sum(x+y));
int sum(a,b);
{
int a,b;
return(a+b);
}
}
错误原因:没有输入x,y的值,没有定义函数a b.
更改:
#include <stdio.h>
void main()
{
int x,y;
scanf("%d%d",&x,&y);
printf("%d\n",sum(x,y));
}
int sum(int a,int b)
{
return (a+b);
}
2.已有变量定义和函数语句“int a=1,b=-5,c;c=fun(a,b);”,fun函数的作用是计算两个数之差的绝对值,并将差值返回给调用函数,请编写fun函数,并调试。
fun (int x,int y)
{ }
#include <stdio.h>
int fun(int x ,int y)
{
int tmp;
tmp=x-y;
if(tmp>=0)
return tmp;
else
return -tmp;
}
void main()
{
int a=1,b=-5;
printf("%d与%d差的绝对值为:%d\n",a,b,fun(a,b));
}
3. 自己写一个字符串复制函数strcpy( ),并调试运行;
分析:一个字符串是以’\0’结束的,那么就可以以’\0’作为结束循的标志进行解决之,算法流程图如下: 在此基础上写字符串比较strcmp()函数、求串长strlen()函数并调试运行。
#include<stdio.h>
void main()
{
char a[100],b[100];
gets(a);
copy(a,b);
puts(b);
} yes no
int i=0;char b[100]
a[i]==’\0’
b[i]=a[i]
i++
copy(char a[100],char b[100])
{
int i=0;
while(a[i]!='\0')
{
b[i] = a[i];
i++;
}
b[i]='\0';
return b;
}
4.有一青年歌手大奖赛,试编写一个评分系统,具体实现方法为:编写一个对n个数据从大到小的排序函数,再编写一个计算最后得分的函数,计算方法是去除一个最高分,去除一个最低分,其余的平均分为参赛选手的最后得分。
并在主函数中调用它们对有n个评委评分,m个选手参赛的最后得分,从大到小排序输出。
五、思考题
1.a是一个2*4的整型数组,且各元素均已赋值。
函数max_value可求出其
中的最大元素值max,并将此值返回主调函数。
今有函数调用语句
“max=max_value(a),”请编写max_value()函数和main()函数,用main()调
用max_value()函数并输出其结果。
max_value (int arr[][4])
{ }
2.编制函数del_char,函数原型为void del_char(char a[],char ch),函数的功能是删除a数组中值为ch的字符。
例如,从字符串“DDdidS”中删除’d’后,字符串为“DDiS”。
从主函数中输入字符串,指定要删除的字符,并输出结果。
#include <stdio.h>
void del_char(char *str,char ch)
{
int i=0, j=0;
while(str[i])
{
if(str[i]!=ch)
str[j++] = str[i];
i++;
}
str[j] = 0;
}
int main()
{
char ch, str[1000];
gets(str);
scanf("%c",&ch);
del_char(str,ch);
puts(str);
return 0; }。