C语言课内实验7

合集下载

C语言实验-第七章-第九章2

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语言实验程序、总结实验七指针

C语言实验程序、总结实验七指针

C语⾔实验程序、总结实验七指针实验七指针⼀实验⽬的 1 了解指针的概念,学会定义和使⽤指针变量。

2 掌握指针、变量和数组的关系及使⽤⽅法。

3 学会使⽤指向函数的指针变量。

⼆实验内容1 编写函数fun(float *sn,int n),其功能是:根据以下公式计算s ,计算结果通过形参sn 传回;n 通过实参传⼊,n 的值⼤于等于0。

上机运⾏并记录输⼊输出(主函数已给出)。

1217151311+?+-+-=n s fun(float *sn,int n){ 定义变量:和s,通项w ,符号f ,循环控制变量i ; /* 其中s 、f 要初始化 */ 循环求累加和s{ 改变符号; /* 由负变正或由正变负 */求通项w;累加:s+=w;}形参指针变量sn 赋值; /* 通过形参sn 传回累加和s */}main(){ float s; int n;printf("n="); scanf("%d ",&n);fun(&s,n);printf("s=%f\n ",s);}完整程序如下:#includevoid fun(float *sn,int n){ float s=0.0,w,f=-1.0;int i=0;for (i=0;i<=n;i++);{ f=(-1)*f;w=f/(2*i+1);s+=w;}*sn =s;}main(){ float s; int n;printf("n="); scanf("%d",&n);fun(&s,n);printf("s=%f\n",s);}输出结果如下图:2 想使指针变量pt1指向a和b中的⼤者,pt2指向⼩者,以下程序能否实现此⽬的?swap(int *p1,int *p2) { int *p;p=p1;p1=p2;p2=p}main(){ int a,b; int *pt1,*pt2 ;scanf("%d,%d",&a,&b);pt1=&a pt2=&b ;if(aprintf("%d,%d \n",*pt1,*pt2) ;}上机调试此程序。

C语言程序设计实训教程第7章 指 针

C语言程序设计实训教程第7章 指 针

12
2)指针与一维数组 【例 7.6】 下列程序的运行结果是( )。[读 程序写结果,重庆市 2001年第 2次等级考试]
13
14
3)指向字符的指针
15
16
17
18
4)指针与二维数组
19
5)指向一维数组的指针(行指针) 【例 7.18】 对 int(﹡p)[5];的正确描述 是( )。[多选题,重庆市 2003年第 1次等级考 试] A. p是数组名 B. p是指针变量名 C. p数组中有 5个元素 D .p指向一个包含 5个元素的整型数组 E. p是一个整型数组 答案:B D
22
7)指针数组 当数组的元素类型为指针时,叫做指针数组。 【例 7.21】 下列程序的运行结果是( )。 [读程序写结果,重庆市 2004年第 2 次等级考试]
23
8)指针做函数参数 指针做函数参数的主要目的是利用在函数中, 利用指针去操作主调函数中的变量。 【例 7.22】 下列程序在数组中同时查找最大 值下标和最小值下标,并分别存放在 main函数的 变量 max和 min中,请填空。[读程序写结果,重 庆市 2003年第 2次等级考试]
10
【例 7.3】 由于指针的数据类型实际上是指定 指针所能指向对象的数据类型,所以不同数据类型 的指针变量不能相互赋值。( )[判断题,重庆市 2005年第 2次等级考试] 答案:对 分析:在某些特定情况下,可以在不同数据类 型指针之间通过强制类型转换赋值。
11
【例 7.4】 若有定义:long intj,﹡p;,则操 作 j=(long int)p;是合法操作。( )[判断题, 重庆市 2004年第 1次等级考试] 答案:对 【例 7.5】 在 C 语言中,程序

C语言实验报告7模板

C语言实验报告7模板

宁夏师范学院数学与计算机科学学院《高级语言程序设计》实验报告实验序号:7实验项目名称:数组的学习学号姓名专业、班级12级数应(2)班实验地点指导教师郑利珍时间一、实验目的及要求1、掌握数组的定义的正确方法。

2、了解数组元素的存储规律。

二、实验设备(环境)及要求硬件:PC(PII以上,128M以上内存);软件:Windows XP操作系统、Visual C++ 6.0。

三、实验内容、步骤及结果1、fibonacci数列的前两个数为1,1,以后每一个数都是其前两个数之和。

求fibonacci数列中的前20个数。

用数组存放并按一行10个数的格式输出。

2、将一个数列头尾颠倒。

设该数列为1,3,5,7,9,11,13,15,17,19。

要求编写一函数,对包含任意个数的数列实现颠倒处理。

数列由main函数输入,输出数列亦在main函数中进行。

3、将10个实数存储在一个数组中,设计一个程序输出这个数组的最大值和最小值。

4、设计选择排序的C语言程序。

5、编写一个函数,使给定的一个二维数组(3×3)转置,即行、列互换。

6、输入一个n×n矩阵中各元素的值,求出两条对角线上的元素值之和。

7、有n个学生,每人考m门课。

(1)找出成绩最高的学生的学号和课程号。

(2)找出有不及格课程的学生的学号及其各门课的全部成绩。

(3)求全部学生全部课程总平均分。

8、有17个人围成一圈(编号为1~17),从第1号开始进行1、2、3报数,凡报3者就退出,下一个人又从1开始报数……直到最后只剩下一个人时为止。

请问此人原来的位置是多少号?四、分析与讨论1、总结C语言中数组的用途。

2、总结C语言中数组定义的正确方法。

五、教师评语1.按时完成实验;2.实验内容和实验过程记录完整;3.回答问题完整、正确;4.有关于实验的心得;5.实验报告的撰写认真、报告格式符合要求。

签名:郑利珍日期:2013年月日成绩100。

C语言程序设计实验实验报告7

C语言程序设计实验实验报告7

C语言程序设计实验实验报告7实验名称:链表实现学生信息管理系统实验目的:通过设计链表实现学生信息管理系统,掌握链表的操作方法及其应用。

实验内容:设计一个学生信息结构体,包括学号、姓名、性别、年龄和成绩五个成员变量,并选择链式结构存储这些数据。

实现以下功能:1. 添加学生信息:从键盘输入学号、姓名、性别、年龄和成绩等信息,添加到链表中。

2. 删除学生信息:从链表中删除指定学号的学生信息。

5. 按成绩排序:按学生的成绩从高到低排序,并输出所有学生的信息。

7. 退出程序:退出学生信息管理系统。

实验方法:1. 设计学生信息结构体,定义链表节点结构体,并编写初始化链表和销毁链表的函数。

2. 编写添加学生信息函数,新建链表节点并插入链表末尾。

3. 编写删除学生信息函数,根据学号查找需要删除的节点,先将该节点从链表中删除,再释放节点空间。

4. 编写修改学生信息函数,根据学号查找需要修改的节点,并修改其成员变量。

6. 编写按成绩排序函数,使用冒泡排序法对链表进行排序,并输出所有学生的信息。

7. 编写输出所有学生信息函数,遍历链表并输出每个节点的信息。

8. 完成学生信息管理系统的主函数,实现菜单及相应功能的选择。

实验结果:依次选择菜单中的各个功能,添加、修改、删除、查找、排序和输出学生信息都能实现。

经测试,程序稳定运行,功能正常,符合需求。

本次实验主要让我们掌握了链式结构的概念、链表节点的定义、链表的初始化、插入、查找、删除和销毁链表的操作方法,以及在实际应用中如何使用链表来实现数据管理。

虽然链表操作相对于数组稍微有些繁琐,但其可以灵活处理数据结构的长度变化,具有更高的可扩展性和更好的操作效率,可以更好的适应各种实际需求。

在实验中,还需要注意节点指针的正确使用、各个函数之间的调用关系和输入输出数据格式的合理选择等问题,以保证程序能够正常运行。

同时,还需要保持认真细致的态度,严格按照实验需求和要求来完成每个步骤,以达到更好的实验效果和运行效率。

c语言实验报告实验

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语言程序设计(第四版 谭洪强)实验7 答案

大学生C语言程序设计(第四版 谭洪强)实验7 答案

实验七 参考答案(参考答案)(1) (sy7-1.c )请编写函数fun ,它的功能是:计算并输出n (包括n )以内能被5 或9 整除的所有自然数的倒数之和。

例如,若主函数从键盘给n 输入20后,则输出为s=0.583333。

注意:n 的值要求不大于100。

算法分析:使用for 循环i ,遍历n 包含n 以内的所有整数,逐一判断每个i ,是否满足条件(能被5 或9 整除),如果满足,则把它的倒数累加到累加器里。

注意:i 的倒数要表示成:1.0/i;参考子函数如下:double fun(int n){double sum=0;int i;for(i=5;i<=n;i++)if(i%5==0||i%9==0)sum=sum+1.0/i;return sum;}(2) (sy7-2.c ) 请编写函数fun ,其功能是:根据以下公式计算s ,并计算结果作为函数值返回,n 通过形参传入。

n s ⋯++++⋯++++++=321132112111例如:若n 的值为11时,函数的值为1.83333算法分析:等式右边从第二项(i=2)开始,其分母等于前一项的分母加上i ;一共有n 项;求出每项的分母,然后把每项进行累加。

参考子函数如下:float fun(int n){float sum=1; //sum 中已经累加了第一项的值int i,m=1; //m 表示每项的分母;for(i=2;i<=n;i++){ m=m+i;sum=sum+1.0/m;}return sum;}(3) (sy7-3.c)请编写函数fun,其功能是:将两个两位数的正整数a、b 合并形成一个整数放在c 中。

合并的方式是:将 a 数的十位和个位依次放在c 数的十位和千位上,b 数的十位和个位数依次放在c 数的个位和百位上。

例如,当a=45,b=12,调用该函数后,c=5241。

算法分析:对一个两位数n,它的各位可以通过n%10求的,它的十位数可以通过n/10求的;所以分别用上述方法求的a和b的个位和十位,同时按照要求累加到c里。

c 实验报告7

c  实验报告7

c 实验报告7实验报告7:C 语言程序设计实验摘要:本实验报告旨在介绍C语言程序设计实验的过程和结果。

在本次实验中,我们使用了C语言编程语言,通过编写程序来实现各种功能。

在实验过程中,我们学习了C语言的基本语法和编程技巧,掌握了如何使用C语言进行程序设计和开发。

通过本次实验,我们对C语言程序设计有了更深入的了解,并且提高了我们的编程能力。

引言:C语言是一种通用的高级编程语言,广泛应用于系统软件和应用软件的开发中。

它是一种结构化的语言,具有丰富的表达能力和灵活的特性。

在本次实验中,我们将运用C语言来实现一些基本的功能,以加深对C语言的理解和掌握。

实验目的:1.了解C语言的基本语法和编程技巧2.学习如何使用C语言进行程序设计和开发3.提高编程能力,加深对C语言程序设计的理解实验材料和方法:在本次实验中,我们使用了C语言编程语言,并且通过编写程序来实现各种功能。

我们使用了一台配备C语言编译器的计算机,以及相应的开发环境和工具。

在编写程序的过程中,我们遵循了C语言的基本语法规则,并且运用了各种编程技巧。

实验结果:在本次实验中,我们成功地编写了一些C语言程序,实现了一些基本的功能。

我们学会了如何定义变量、使用控制结构、编写函数等等。

我们还学会了如何调试程序,发现并解决程序中的错误。

通过实验,我们对C语言程序设计有了更深入的了解,并且提高了我们的编程能力。

讨论:通过本次实验,我们对C语言程序设计有了更深入的了解,掌握了C语言的基本语法和编程技巧。

我们学会了如何使用C语言进行程序设计和开发,提高了我们的编程能力。

在今后的学习和工作中,我们将继续加强对C语言的学习和应用,不断提高自己的编程水平。

结论:通过本次实验,我们对C语言程序设计有了更深入的了解,掌握了C语言的基本语法和编程技巧。

我们学会了如何使用C语言进行程序设计和开发,提高了我们的编程能力。

在今后的学习和工作中,我们将继续加强对C语言的学习和应用,不断提高自己的编程水平。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C 语言课内实验7
题目:
求A 矩阵与B 矩阵的和矩阵C 。

其中
⎥⎥⎥⎦⎤⎢⎢
⎢⎣⎡=123431221211
A ,⎥⎥⎥⎦
⎤⎢⎢⎢⎣⎡=0511********B 。

画出N-S 算法流程图,编写源程序,给出注释及运行结果。

至少自己修改数据1次,重新运行1个新结果。

答案:
#include<stdio.h>
/*连接到标准输入输出函数库*/ void main()
/*定义空型主函数*/ {
int c[3][4],a[3][4],b[3][4],i,j;
/*定义整型3*4数组c,b,a ,整型变量i,j*/ printf("Please input arry a(3*4):\n");
/*提示输入a*/ for(i=0;i<=2;i++)
/*i 从0到2循环,每次加一*/ {
for(j=0;j<=3;j++)
/* j 从0到3循环,每次加一*/ {
scanf("%d",&a[i][j]);
/*依次输入a*/ printf("%-3d",a[i][j]);
/*输出a*/ }
printf("\n");
/*i 每次变化前,换行*/ }
printf("\n");
/*a 输出完毕后,换行*/ printf("Please input arry b(3*4):\n");
/*提示输入b*/ for(i=0;i<=2;i++)
/*i 从0到2循环,每次加一*/ {
for(j=0;j<=3;j++)
/*i 从0到2循环,每次加一*/ {
scanf("%d",&b[i][j]);
/*依次输入b*/ printf("%-3d",b[i][j]);
/*输出a*/ }
printf("\n");
/*i 每次变化前,换行*/ }
printf("\nc=\n");
/*换行,输出c=,再换行*/ for(i=0;i<2;i++)
/*i 从0到2循环,每次加一*/ {
for(j=0;j<3;j++)
/*i 从0到2循环,每次加一*/ {
c[i][j]=a[i][j]+b[i][j];
/*对每个i,j 进行c=a+b 计算*/ printf("%-3d",c[i][j]);
/*输出c[i][j]*/ }
printf("\n");
/*换行*/ }
}
N-S 流程图
实验结果:
(题中数据) (修改数据)
i 从
0到2
定义整型2*3的数组a,b,c ,整型变量i,j
j 从0到3
输入a[i][j]
输出a[i][j]
i 从0到2
j 从0到3
输入b[i][j]
输出b[i][j]
i 从0到2
j 从0到3
c[i][j]=a[i][j]+b[i][j]
输出c[i][j]。

相关文档
最新文档