C语言实验九
《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程序设计实验参考答案

main( )
{ float a,b,c;
float s,v;
scanf("%f,%f,%f,%f",&a,&b,&c);
s=a+b+c;
v=s/3.0;
printf("\n%7.1f,%7.1f",s,v);
}
实验五参考答案
一.1、a=10,b=30,c=10
}
2、main()
{int i;
double m=100000,n,s;
n=0.01;
s=0;
for(i=1;i<=30;i++)
{s+=n;
n=n*2;
}
printf("%f %f\n",s,m*30 );
}
实验八参考答案:
一.1、s=12345
2、7,
5,
3,
3、<1,2>=6
二.1、% for(j=k;j>0;j--)
第4行改为scanf("%d",&a[i]);
第12行改为printf("av=%d\n",av);
四.1、分析:C中数组长度必须是确定大小,即指定N的值。排序的方法有多种,取出其中两种作为参考。
方法一:起泡排序
从第一个数开始依次对相邻两数进行比较,如次序对则不做任何操作;如次序不对则使这两个数交换位置。第一遍的(N-1)次比
{ case 10:
case 9: ch='A'; break;
case 8: ch='B'; break;
C语言实验-第七章-第九章2

实验七:指针的应用【实验目的】1.掌握指针和指针变量,内存单元和地址、变量与地址、数组与地址的关系;2.掌握指针变量的定义和初始化,指针变量的引用方式;3.能正确使用数组的指针和指向数组的指针变量;【实验内容】1.填空题输入一个字符串,将其中的大写字母转换成小写字母,然后输出本程序主要是比较scanf()输入和gets()输入的区别#include <stdio.h>void main(){ char s[20];char *p=s;scanf(“%s”,p); /*注意用scanf()输入和gets()输入的区别*/while( 1 ){if( 2 ) *p=*p+ (‘a’-‘A’);p++ ;}puts ( 3 );}答案:1、*p!=’\0’2、(*p>='A')&&(*p<='Z')3、s运行结果:输入:Program输出:program输入:This is Program输出:this提示:scanf ()输入时遇到空格认为字符串结束,用gets()输入时只有遇到回车才认为字符串结束。
如键入any boy并回车,则2。
补充程序题输入15个整数存入一维数组,再按逆序重新调整该数组中元素的顺序然后再输出。
下面给出部分程序的内容,请将程序补充完整,然后上机调试。
部分程序清单如下:#include <stdio.h>void main(){ int a[15],*p1,*p2,x;for(p1=a;p1<a+15;p1++)scanf("%d",p1);for(p1=a,p2=a+14;p1<a+7;p1++,p2--){ x=*p1;*p1=*p2;*p2=x;}……}答案:for(p1=a;p1!=a+15;p1++)printf("%d ",*p1); // %d后面有一个空格运行结果:输入:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15输出:15 14 13 12 11 10 9 8 7 6 5 4 3 2 1提示:(1)在整型数组中,没有结束标志,必须依靠数组中数据元素的个数控制循环次数。
C语言实验安排

实验内容五(3月19日练习性实验)
请编写一个能够循环接收键盘输入 整数的程序(当输入0时表示数据输入结 束),并统计和输出所输入的整数中正 数和负数的个数。
本次试验内容的程序需要提交。
大学计算机应用基础
实验内容五(3月19日练习性实验)
一.把教程第六章的例6.1(P89)、例6.2 (P90)、例6.3(P91)、例6.4(P92)、例6.5 (P92)、例6.6(P95)、例6.7(P96)、例6.8 (P97)、例6.9(P98)、例6.10(P103)、例 6.11(P104)在VC环境中进行验证性演示。
大学计算机应用基础
实验内容十一(4月28日)
设计一函数求n×m矩阵中最小元素值并返 回该值。在主函数中从键盘对一3×4矩阵进 行赋值,然后调用求矩阵最小元素值函数求 该矩阵的最小值,并输出该值。
大学计算机应用基础
实验内容十一(4月28日)
设计一函数move,实现N*N方阵的转置功 能。在主函数中定义一方阵并初始化,然 后调用move函数实现对它的转置,最后输 出转置后的方阵。
x<=1 1<x<=5 5<x<=10 10<x<=15 x>15
本次试验内容的程序需要提交。
大学计算机应用基础
实验内容四(3月12日练习性实验)
一.把教程第五章的例5.1(P70)、例5.2 (P71)、例5.3(P73)、例5.4(P73)、例5.5 (P75)、例5.6(P76)、例5.7(P76)、例5.8 (P77)、例5.9(P78)、例5.10(P79)、例 5.11(P80)、例5.12(P81)、例5.13(P82)、 例5.14(P82)、例5.15(P83)、例5.16(P84) 在VC环境中进行验证性演示。 本次试验内容的程序需要提交。
c语言实验报告实验

c语言实验报告实验C 语言实验报告实验一、实验目的本次 C 语言实验的主要目的是通过实际操作和编程实践,加深对 C 语言基本语法、数据类型、控制结构、数组、指针等重要概念的理解和掌握,提高编程能力和解决实际问题的能力。
二、实验环境本次实验使用的编程环境为 Visual Studio 2019,操作系统为Windows 10。
三、实验内容1、基本数据类型和运算符的使用定义不同类型的变量,如整数型(int)、浮点型(float、double)、字符型(char)等,并进行赋值和运算操作。
熟悉各种运算符的优先级和结合性,包括算术运算符(+、、、/、%)、关系运算符(>、<、>=、<=、==、!=)、逻辑运算符(&&、||、!)、位运算符(&、|、^、~、<<、>>)等。
2、控制结构的应用使用ifelse 语句实现条件判断,根据不同的条件执行相应的代码块。
运用 switch 语句进行多分支选择,处理不同的情况。
利用 for 循环、while 循环和 dowhile 循环实现重复执行的操作,例如计算数列的和、打印特定的图案等。
3、数组和字符串的操作定义和使用一维数组、二维数组,进行数组元素的访问、赋值和遍历。
掌握字符串的存储和处理方式,使用字符数组和字符串函数(如strlen、strcpy、strcmp 等)进行字符串的操作。
4、指针的应用理解指针的概念和指针变量的定义,通过指针访问变量和数组元素。
实现指针与数组、指针与函数的结合使用,体会指针在程序中的灵活运用。
5、函数的定义和调用编写自定义函数,实现特定的功能,如计算阶乘、判断素数等。
掌握函数的参数传递方式(值传递和地址传递),理解函数的返回值。
6、结构体和共用体的使用定义结构体类型,创建结构体变量,访问结构体成员。
了解共用体的概念和使用场景,比较结构体和共用体的区别。
四、实验步骤1、实验准备打开 Visual Studio 2019 开发环境,创建一个新的 C 语言项目。
C语言实验

提交作业要求1.建立一个学号+姓名文件夹(如:20111234张志),建立一个实验报告文件(实验报告.txt或实验报告.doc均可),将实验步骤和程序运行结果拷贝到.txt文件或.doc文档中(可用Alt+PrtSc组合键抓屏),把每次的实验报告(.txt或.doc)和源程序(.C文件)放在学号+姓名文件夹中,上传到教师机“03/09教学班”下面对应的班级文件夹中,下机前把文件夹删除。
2.课外编程题提交到教师机“程序设计”文件夹中。
上机注意事项●运行程序时,应在英文状态下输入数据。
●上一个程序运行结束后, 要关闭工作区或VC窗口, 重新建立一个文件,输入下一个程序。
●编译时死机,将原程序窗口最小化,将程序拷贝到重新打开的VC文件中,可激活系统。
第一次实验(基本程序设计)★预习: 上机指导P4~10详细阅读上机指导P6~7, 掌握vc++6.0的使用方法。
★实验内容:(1)实验1(P5)①(p6)2. 调试修改(改错:求由键盘输入的任意两个整数的乘积。
)#include<stdio.h>void main(void){ int c;scanf(“%d,%d”,&x,&y);/**********FOUND**********/c=a*b/**********FOUND**********/printf(“The product is:%d\n”,c)}②(p7)3.完善程序(程序填空:求圆面积)#define PI 3.14159#include<stdio.h>void main(void){ float r ;double area;scanf(“%f”, &r);/**********SPACE**********/area=【?】;printf(“area=%f\n”, area);}(2)学习编程:①编写一个两个整数相乘的C程序,要求输出格式为: c=3*4=12②从键盘输入三个整数,计算并输出三个整数的平均值。
C语言程序设计实验实验报告

C语⾔程序设计实验实验报告《C语⾔程序设计实验》实验报告实验九⽂件编程(⼀)班级:_07某某专业1班_学号:______姓名:___实验样例_____⽇期:___2008.6.10_____台州学院数信学院计算机系制作⼀、实验⽬的和要求综合使⽤基本结构、基本算法、函数、指针、结构体、链表等知识设计程序。
⼆、实验指导1、注意:本次实验为综合性实验,需要综合本课程以前所学内容,完成编制⼀个⼩型应⽤程序。
需要复习课本以前所学内容,浏览上课讲解的相关内容。
2、实验时间安排:准备实验⽅案,上课时上机编程,课余完成整个设计并完成实验报告。
3、实验具体要求:以⼀张假想的学⽣期中成绩表为实验对象,编制⼀个⼩型应⽤程序,可以考虑实现以下功能:(1)成绩修改;(2)成绩查询;(3)成绩统计;(4)成绩输⼊。
也可以实现其他⾃定义的功能。
界⾯采⽤简易菜单形式,可以分级显⽰。
实验需要进⾏以下步骤:需求分析、程序设计、程序调试、程序运⾏,并对程序运⾏效果进⾏分析,提出改进⽅案。
初步锻炼学⽣的程序设计能⼒、程序调试能⼒、对实验结果进⾏综合分析的能⼒。
4、实验成绩评价标准:参见成绩评定表。
四、实验报告内容(参见样本,请另附页)实验报告必须包含以下内容:1、对你设计的程序功能进⾏的较详细描述。
2、画出程序测试⽤的学⽣期中成绩表(包含:表头、若⼲⾏包含学⽣成绩等信息的数据⾏)。
3、给出程序清单(包含结构体的声明与定义、所有的函数声明、所有的全局变量、所有的函数定义、必要的注释。
注:如果程序过长,可以不⽤给出所有的函数定义,只给出主要的函数定义)。
4、运⾏结果(写出运⾏时的主界⾯、各模块的实现界⾯等,不作具体要求,但要求能清晰地体现出程序的功能)。
5、对你的设计作⼀个评价(可以包含你所花的时间、精⼒,你遇到的困难及如何解决的,你的设计过程所遇到的其他事情;必须包含你对设计的客观评价,以及提出的改进⽅案)。
1、程序功能描述:(略)2、成绩表样表:3、程序清单:(红⾊部分是和上⼀个程序的区别之处)#includestruct student /*期中成绩表的结构声明*/{int num;char name[20];char sex;float YuWen;float ShuXue;float YingYu;float totle;};#define MAX_STU_NUMBER 100 /*宏定义最⼤学⽣数为100⼈*/struct student Stu[MAX_STU_NUMBER]; /*⼀次性定义100个学⽣的存储空间*/int STU_NUMBER; /*存放学⽣数*/char *FileName = "chengji.txt"; /*成绩存放的⽂件*//*所有的函数声明:*/int SelectMainMenu(); /*显⽰并选择主菜单。
c语言上机实验题及参考答案

5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
scanf(“%d%s”,__________________);/*输入N个学生成绩、姓名、存入数组s中*/
score90=0;score80=0;score70=0;score60=0;score_failed=0;
for(i=0;i<N;i++)
{
switch (_________________)
#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;
struct Link
{
int data;
struct Link *next;
};
Void InsertList(struct Link *H,int n)
{
struct Link *p,*q,*s;
s=(struct Link *) malloc(sizeof(struct Link));
s->data=n;
H->next=NULL;
for (i=0;i<10;i++)
InsertList(H,a[i]);
p=H->next;
While(p)
{
printf(“%4d”,p->data);
p=p->next;
}
printf(“\n”);
}
2. 程序填空题
(1)下面程序的功能是:用来统计一个班级(N个学生)的学习成绩,每个学生的信息由键盘输入,存入结构数组s[N]中,对学生的成绩进行优(90-100)、良(80-89)、中(70-79)、及格(60-69)和不及格(<60)的统计,并统计各成绩分数段学生人数。补充完善程序,以实现其功能。程序以文件名sy9_4.c保存。
char name; /*学生姓名*/
float score; /*学生成绩*/
} stu[]={3,”Tom”,89.3,4,”Mary”,78.2,1,”Jack”,95.1,2,”Jim”,90.6};
main()
{
charstr[10];
int i;
do
{
printf(“Enter a name:”);
main()
{
int i,max,min;
max=min=person[0].age;
for(i=1;i<3;i++)
if (person[i].age<max) _______________________;
else if (person[i].age<min) ________________________;
while(p!=NULL)
{
printf(“%c”,p->data);
________________________;
}
}
3.编程题
(1)从键盘输入5名学生的信息,包含学号、姓名、数学成绩、英语成绩、C语言成绩,求每个学生3门课程的总分,输出总分最高和最低的学生学号、姓名和总分。程序以文件名sy9_7.c保存。
#include <stdio.h>
struct node
{ char data;
struct node *link;
} *head;
Ins(struct node ______________)
{
if(head==NULL)
{
q->link==NULL;
head=q;
}
else
{
q->link==____________;
continue;
}
if (i>=NUM) printf(“Not found\n”);
}while(strcmp(str,”0”)!=0);
}
(3)下列程序的功能为:建立一个由小到大的单链表。纠正程序中存在的错误,以实现其功能。程序以文件名sy9_3.c保存。
#include <stdio.h>
#include<malloc.h>
实验9结构体与链表程序设计
一、实验目的
1、掌握结构体类型变量的定义和使用。
2、掌握结构体类型数组的概念和应用。
3、掌握链表的概念,初步学会对链表进行操作。
二、实验内容
1.改错题
(1)下列程序的功能为:学生姓名(name)和年龄(age)存于结构体数组person中。函数fun的功能是:找出年龄最小的学生。纠正程序中存在的错误,以实现其功能。程序以文件名sy9_1.c保存。
#include<stdio.h>
#define N 30
struct student
{
int score; /*学生成绩*/
char name[10]; /*学生姓名*/
} s[N];
voidmain()
{
inti,score90,score80,score70,score60,score_failed;
}
(2)下列程序的功能为:按学生姓名查询其排名和平均成绩。查询可连续进行,直到输入0时结束。纠正程序中存在的错误,以实现其功能。程序以文件名sy9_2.c保存。
#include <stdio.h>
#include <string.h>
#define NUM 4
struct student
{
int rank; /*学生排名*/
head=q;
}
}
main()
{
char ch;
struct node *p;
head=NULL;
while((ch=getchar())!=’\n’)
{
p=______________________;
p->data=ch;
Ins(________________________);
}
p=head;
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)为点输入坐标值;2)求两个点的中点坐标;3)求两点间距离。程序以文件名sy9_8.c保存。
(3)建立两个单向链表,按交替的顺序轮流从这两个链表中取其成员归并成为一个新的链表,如其中一个链表的成员取完,另一个链表的多余成员依次接到新链表的尾部,并把指向新链表的指针作为函数值返回。例如,若两个链表成员分别是{1,4,6,8,30,45}和{5,10,15},则链接成的新链表是{1,5,4,10,6,15,8,30,45}。程序以文件名sy9_9.c保存。
{
case 10:
case 9:score90++;break;
case8:score80++;break;
case 7:score70++;break;
case 6:score60++;break;
_____________:score_failed++;
}
}
printf(“优:%d良:%d中:%d及格:%d不及格:%d\n”,score90,score80,score70,score60,score_failed);
for(i=1;i<3;i++)
if (person[i].age!=max______person[i].age!=min)
{
printf(“%s %d\n”,person[i].name,person[i].a(3)下列程序的功能为:从键盘输入1个字符,调用函数建立反序的链表,然后输出整个链表。补充完善程序,以实现其功能。程序以文件名sy9_6.c保存。
scanf(“%s”,&str);
for(i=0;i<NUM;i++)
if ((strcmp(str,stu[i].name)!=0))
{
printf(“name:%5s\n”,stu[i].name);
printf(“rank:%d\n”,stu[i].rank);
printf(“average:%5.1f\n”,stu[i].score);
}
(2)设有3人的姓名和年龄存在结构数组中,以下程序的功能是:输出3人中年龄居中者的姓名和年龄。补充完善程序,以实现其功能。程序以文件名sy9_5.c保存。
#include <stdio.h>
static struct person
{
char name[20];
int age;
} person[]={“Li-ming”,18,“wang-hua”,19,“zhang-ping”,20};
q=H;p=H->next;
while (p&& n>p->data)
{
q=p;p=p->next;