C语言程序设计实验指导书(新编)_第1页
C语言程序设计实验指导书(新编)_第2页
C语言程序设计实验指导书(新编)_第3页
C语言程序设计实验指导书(新编)_第4页
C语言程序设计实验指导书(新编)_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计实验指导书(新编)PAGEPAGE1C语言程序设计实验指导书桂林电子科技大学信息科技学院C语言程序设计实验指导书(新编)全文共29页,当前为第1页。C语言程序设计实验指导书(新编)全文共29页,当前为第1页。前言上机实验的目的和要求一上机实验的目的上机实验的目的,绝不仅仅是为了验证教材和讲课的内容,或者验证自己所编程序正确与否。学习程序语言,上机实验的目的如下:1加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,通过多次上机,就能自然、熟练地掌握语法规定。2了解和熟悉C语言程序开发环境。熟悉一两种环境(计算机系统的软件和硬件条件),再遇到其他的系统时便会触类旁通,很快学会。3学会上机调试程序,也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能够正确地运行。要真正掌握计算机应用技术,就不仅应当了解和熟悉有关理论和方法,而且要求自己动手实践能力强。4在做实验时千万不要在程序通过后就认为万事大吉,完成任务了,应当在通过的程序上做一些调试和修改,看看会得到什么结果。多动脑筋思考,将会对你有很大帮助。二上机实验前的准备工作1了解所用的计算机系统的性能和使用方法;2复习和掌握与本实验有关的教学内容;3准备好上机所用的程序,切忌自己不思考、不编制程序或抄袭别人的程序;4准备好调试和运行时所需的数据。三上机实验的步骤1调出C语言编译系统,进入C语言工作环境;2输入自己编制好的程序;3检查输入是否有错,及时更正;4进行编译和连接;5运行程序,分析结果。四、实验结束,整理实验报告实验报告应包括以下内容:1上机题目;2程序清单;3运行结果;C语言程序设计实验指导书(新编)全文共29页,当前为第2页。4对结果的分析和本次获得的经验和体会。C语言程序设计实验指导书(新编)全文共29页,当前为第2页。实验一C语言程序初步数据类型、运算符和表达式一实验目的1熟悉C语言运行环境——MicrosoftVisualC++6.0中文版。2掌握C语言程序的书写格式和C语言程序的结构,初步了解C源程序的特点。3掌握C语言上机步骤,了解如何编辑、编译、调试和运行一个C程序的方法。4掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对他们赋值的方法。5掌握不同的类型数据之间赋值的规律。二实验内容1⑴开机,启动MicrosoftVisualC++6。⑵建立工程文件:在“文件”菜单中选择“新建”命令项,在弹出的“新建”对话框的“工程”选项卡中选择“Win32ConsoleApplication”选项,在“工程”框中输入工程文件名sy1,在“c:位置”下拉框中输入或选择文件夹,单击“确定”;在以下弹出的两个对话框中分别单击命令按钮“完成”和“确定”。⑶建立C++源文件:在“工程”菜单中选择“添加到工程”—“新建”命令项,在弹出的“新建”对话框的“文件”选项卡中选择“C++SourceFile”,在右边的“文件”框中输入文件名sy11后单击“确定”。⑷输入源程序:在弹出的文件编辑窗口中输入下面的源程序:#include<stdio.h>voidmain(){printf("Hello,World!\n");printf("WelcometotheClanguageworld!\n");printf("Everyonehasbeenwaitingfor.\n");}⑸编译:用“编译”菜单的“编译”命令项对源文件sy11.cpp进行编译,如果程序有语法或语义错误,在屏幕下面的窗口会出现错误信息;这时候要修改源程序、保存后重新编译。直到修改了全部错误,屏幕下面的窗口会出现下面的信息:C语言程序设计实验指导书(新编)全文共29页,当前为第3页。C语言程序设计实验指导书(新编)全文共29页,当前为第3页。表示已通过编译,生成了目标程序sy11.obj。⑹调试:接下来进行调试,操作如下图所示。完成调试后,生成可执行程序文件sy1.exe。⑺运行:最后用“编译”菜单的“!执行sy1.exe”命令项运行可执行程序文件sy1.exe。运行结果如下:2用同样的方法,完成下面程序的运行1输入并运行下面的程序,运行后记录并分析结果。#include<stdio.h>main(){charc1,c2;/*第2行*/c1=97;c2=98;/*第3行*/printf("%c%c\n",c1,c2);}C语言程序设计实验指导书(新编)全文共29页,当前为第4页。在此基础上:C语言程序设计实验指导书(新编)全文共29页,当前为第4页。⑴在程序最后增加一个语句,再运行,并分析结果。printf("%d%d\n",c1,c2);⑵将第2行改为:intc1,c2;再次运行,并分析结果。⑶再将第3行改为:c1=305;c2=340;再使之运行,分析运行结果。2输入并运行下面的程序#include<stdio.h>main(){charc1='a',c2='b',c3='c',c4='\101',c5='\116';printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);printf("\t\t\b%c%c\n",c4,c5);}在上机前先用人工分析程序,写出应得结果,上机后将二者对照。三分析与讨论1下在调试过程中所发现的错误、系统给出的出错信息和对策。分析讨论成功或失败的原因。2总结C程序的结构和书写规则。四思考题1请写出C语言程序的构成和运行C语言程序的一般步骤。2编写一个C语言程序,输入a、b、c三个数,输出其中最大者。试想,如果求四个数中的最大者,则程序该如何编写。五注意事项1当程序在编译时发现很多错误,此时应从上到下逐一改正,或改一个错误,就重新再编译,因为有时一个错误会引起很多错误信息。2当需要用比较复杂的逻辑表达式时,要避免发生优先级上的错误,可以使用最高优先级的运算符()将其括起来,这样既增加可读性,又不会出现不必要的错误。C语言程序设计实验指导书(新编)全文共29页,当前为第5页。C语言程序设计实验指导书(新编)全文共29页,当前为第5页。实验二顺序结构与输入/输出方法一实验目的1学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。2掌握C语言中赋值语句的使用。3掌握C语言中各种数据的输入/输出方法,能正确使用各种格式转换符。4理解C语言程序的顺序结构。二实验内容上机调通以下程序。1输入下面的程序#include<stdio.h>main(){inti,j,m,n;i=8;j=10;m=++i;/*第5行*/n=j++;/*第6行*/printf("%d,%d,%d,%d\n",i,j,m,n);}运行程序,注意i、j、m、n各变量的值;然后分别作以下改动并运行:⑴将第5、6行改为如下以后再运行:m=i++;n=++j;⑵将程序改为:#include<stdio.h>main(){inti,j;i=8;j=10;printf("%d,%d\n",i++,j++);/*第5行*/}⑶在⑵的基础上,将第5行printf语句改为:printf("%d,%d\n",++i,++j);⑷再将printf语句改为:C语言程序设计实验指导书(新编)全文共29页,当前为第6页。printf("%d,%d,%d,%d\n",i,j,i++,j++);C语言程序设计实验指导书(新编)全文共29页,当前为第6页。⑸将程序改为:#include<stdio.h>main(){inti,j,m=0,n=0;i=8;j=10;m+=i++;n-=--j;printf("i=%d,j=%d,m=%d,n=%d\n",i,j,m,n);}2运行以下程序,并分析其输出结果#include<stdio.h>main(){shorti;

i=-2;

printf("\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\n",i,i,i,i);}【注意】在VC++6.0中,short和int类型的数据在内存中占用4个字节。3按格式要求输入、输出数据。#include<stdio.h>main(){inta,b;floatx,y;charc1,c2;scanf("a=%d,b=%d",&a,&b);scanf("%f,%e",&x,&y);scanf("%c%c%c",&c1,&c1,&c2);/*第8行*/printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);}运行该程序,按如下方式在键盘上输入数据:a=3,b=785,71.82aA请同学们写出输出的结果。C语言程序设计实验指导书(新编)全文共29页,当前为第7页。【思考】程序第8行中,为什么变量c1要输入两次?C语言程序设计实验指导书(新编)全文共29页,当前为第7页。4运行以下程序,并分析其输出结果#include<stdio.h>main()

{floatf;f=3.1415;

printf("\n%f,%4.3f,%5.3f,%-10.3f,%10.3f\n",f,f,f,f,f);}4运行以下程序,并分析其输出结果#include<stdio.h>main(){inta,b;floatc,d;charc1,c2;a=61;b=62;c=31.5;d=-68.87;c1='a';c2='A';printf("\n");printf("a=%d,b=%d\n",a,b);printf("c=%f,d=%f\n",c,d);printf("c=%e,d=%e\n",c,d);printf("c1=%c,%c\n",c1,c2);}【注意】在VC++6.0中,实数的指数形式是:±X.XXXXXXe±XXX5以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符型数,并把他们在屏幕上输出。完成以下填空,并把程序调通,写出当输入为45,34.5,A<回车>时程序的运行结果。#include<stdio.h>main(){inta;floatb;charc;scanf("%d,%f,%c",);printf("a=\n",a);printf("b=\n",b);printf("c=\n",c);}6指出以下程序的错误并改正,并上机把程序调通。#include<stdio.h>main()C语言程序设计实验指导书(新编)全文共29页,当前为第8页。{inta;C语言程序设计实验指导书(新编)全文共29页,当前为第8页。scanf("%f",a);printf("a=%f,a);charc;c=A;printf("%f,c)}三思考题1编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数和printf函数输出这两个字符。并思考以下问题:⑴变量c1,c2应定义为字符型或整型?还是二者皆可?⑵要求输出c1和c2的ASCII码,应如何处理?用putchar函数还是printf函数?⑶整型变量和字符型变量是否在任何情况下都可以互相代替?2设圆半径r=2,圆柱高h=3,求圆周长,圆柱底面积,圆柱体积。用scanf输入数据,用printf输出计算结果,输出时要求有文字说明,取小数点后两位数字。C语言程序设计实验指导书(新编)全文共29页,当前为第9页。C语言程序设计实验指导书(新编)全文共29页,当前为第9页。实验三逻辑运算和选择结构程序设计一实验目的1掌握C语言表示逻辑量的方法(0代表“假”,1代表“真”);2学会正确使用逻辑运算符和逻辑表达式;3熟练掌握if语句和switch语句。二实验内容1已知三个数a,b,c,找出最大值放在max中。#include<stdio.h>main(){inta,b,c,max;printf("请输入3个整数(中间用逗号分开):");scanf("%d,%d,%d",&a,&b,&c);if(a>=b)max=a;elsemax=b;if(c>max)max=c;printf("max=%d\n",max);}若输入下列数据,分析程序的执行顺序并写出输出结果。序号输入的3个整数a、b、c输出max11,2,321,3,232,1,342,3,153,1,263,2,12输入某学生的成绩,经处理后给出学生的等级,等级如下:90分以上(包括90):A80~90分(包括80):B70~80分(包括70):C60~70分(包括60):D60分以下:E方法一:用嵌套的if语句#include"stdio.h"main(){intscore;chargrade;printf("请输入学生成绩:");scanf("%d",&score);C语言程序设计实验指导书(新编)全文共29页,当前为第10页。if(score>100||score<0)printf("\n输入成绩错误!\n");C语言程序设计实验指导书(新编)全文共29页,当前为第10页。else{if(score>=90)grade='A';elseif(score>=80)grade='B';elseif(score>=70)grade='C';elseif(score>=60)grade='D';elsegrade='E';printf("\n成绩等级是%c\n",grade);}}输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中100分,60分,0分以及小于0和大于100的数据。如果稍不注意就会出现小的程序缺陷。方法二:用switch语句分析:switch语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。所有A(除100以外)、B、C、D类的成绩的共同特点是十位数相同,此外都是E类。则由此可把score除十取整,化为相应的常数。请同学们自己根据分析写出完整的程序段,并编译、运行、查看结果。三思考题1有一函数:x(-5<x<0)y=x-1(x=0)x+1(0<x<10)要求输入x的值,输出y的值。分别用:⑴不用嵌套的if语句;⑵用嵌套的if语句;⑶用switch语句编写程序。2从键盘上输入三个实数,它们分别代表三条线段的长度,请写一个判断这三条线段所组成的三角形属于什么类型(不等边,等腰,等边或不构成三角形)的C程序;如果能构成三角形,求出三角形的面积(取小数2位)。用下面的数据运行程序,记录程序的输出结果:abc类型三角形面积1.582.371.562.482.482.482.359.283.83【提示】已知三角形边长a、b、c,计算三角形面积s的公式是:C语言程序设计实验指导书(新编)全文共29页,当前为第11页。C语言程序设计实验指导书(新编)全文共29页,当前为第11页。四注意事项:1if-else语句书写时应采用分层缩进的格式。2switch语句的句法格式。C语言程序设计实验指导书(新编)全文共29页,当前为第12页。C语言程序设计实验指导书(新编)全文共29页,当前为第12页。实验四循环结构程序设计一目的和要求1掌握在设计条件型循环结构时,如何正确地设定循环条件,以及如何正确地控制计数型循环结构的次数。2熟悉用while语句,do-while语句和for语句实现循环的方法。3掌握在程序设计中用循环的方法实现各种算法(如穷举、选代、递推等)。4掌握选择结构与循环结构的嵌套。二实验内容1有一数列:2/1,3/2,5/3,8/5,…求出这个数列的前10项之和。#include<stdio.h>main(){intn,t;floata=2,b=1,s=0;for(n=1;n<=10;n++){s=s+a/b;t=a;a=a+b;b=t;}printf("%f\n",s);}要求:跟踪执行,观察s、t、a、b的变化。方法:使用功能键F10单步跟踪执行程序,可以在监视窗口设置要观察的变量或表达式。停止调试停止调试运行的程序单步运行此处监视窗口C语言程序设计实验指导书(新编)全文共29页,当前为第13页。C语言程序设计实验指导书(新编)全文共29页,当前为第13页。2程序修改题#include<math.h>#include<stdio.h>floatfun(floatnum){ints;floatn,t,pi;t=1;pi=0;n=1;s=1;/**************found**************/while(t>=num){pi=pi+t;n=n+2;s=-s;/**************found**************/t=s%n;}pi=pi*4;returnpi;}main(){floatn1,n2;printf("Enterafloatnumber:");scanf("%f",&n1);n2=fun(n1);printf("%6.4f\n",n2);}C语言程序设计实验指导书(新编)全文共29页,当前为第14页。3计算两个数的最大公约数。C语言程序设计实验指导书(新编)全文共29页,当前为第14页。算法:⑴输入两个整数m、n,并求m除以n的余数k。⑵当k≠0,将除数n作为被除数m,余数k作为除数n,继续求m除以n的余数k;反复做第⑵步,直到余数为0结束循环。⑶结束循环后,除数n就是m与n的最大公约数。请同学们根据算法写出完整的程序,并编译、运行、检查结果的正确性。三思考题编写程序:输入6名学生5门课程的成绩,分别统计出每个学生5门课程的平均成绩。四、注意事项1while语句的句法格式及用法。2for语句的正确使用方法。注意它的初始值、终止条件及步长的确定。3当循环不能停止(出现死循环),应该用Ctrl+break中断程序的运行。C语言程序设计实验指导书(新编)全文共29页,当前为第15页。C语言程序设计实验指导书(新编)全文共29页,当前为第15页。实验五数组一实验目的1掌握一维数组和二维数组的定义、赋值和输入输出的方法;2掌握字符数组和字符串函数的使用;3掌握与数组有关的算法(特别是排序算法)二、实验内容编程序并上机调试运行。1、程序填空#include<stdio.h>voidfun(inta[],intn){inti,t;/**********found**********/for(i=0;i<___1___;i++){t=a[i];/**********found**********/a[i]=a[n-1-___2___];/**********found**********/___3___=t;}}main(){intb[9]={1,2,3,4,5,6,7,8,9},i;printf("\nTheoriginaldata:\n");for(i=0;i<9;i++)printf("%4d",b[i]);printf("\n");fun(b,9);printf("\nThedataafterinvert:\n");for(i=0;i<9;i++)C语言程序设计实验指导书(新编)全文共29页,当前为第16页。printf("%4d",b[i]);C语言程序设计实验指导书(新编)全文共29页,当前为第16页。printf("\n");}2、程序填空题#include<stdio.h>#defineN3#defineM4/**********found**********/voidfun(int(*a)[N],int__1__){inti,temp;/**********found**********/for(i=0;i<__2__;i++){temp=a[0][i];/**********found**********/a[0][i]=__3__;a[k][i]=temp;}}main(){intx[M][N]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}},i,j;printf("Thearraybeforemoving:\n\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%3d",x[i][j]);printf("\n\n");}fun(x,2);printf("Thearrayaftermoving:\n\n");for(i=0;i<M;i++){for(j=0;j<N;j++)printf("%3d",x[i][j]);C语言程序设计实验指导书(新编)全文共29页,当前为第17页。printf("\n\n");C语言程序设计实验指导书(新编)全文共29页,当前为第17页。}}3、程序修改题#include<stdio.h>intfun(doublex[],intn){/************found************/intj,c=0,doublexa=0.0;for(j=0;j<n;j++)xa+=x[j]/n;printf("ave=%f\n",xa);for(j=0;j<n;j++)/************found************/if(x[j]=>xa)c++;returnc;}main(){doublex[100]={193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763};printf("%d\n",fun(x,8));}4按照下面算法编一个程序,将两个字符串连接起来,不能用strcat函数。⑴定义整型变量i、j,字符串s1、s2⑵输入字符串s1、s2⑶当字符串s1尚未结束,改变字符串s1的下标,使之到s1结束处⑷当字符串s2尚未结束,将字符串s2逐个字符连接到字符串s1的后面⑸为字符串s1添加结束标志⑹输出连接后的字符串三思考题C语言程序设计实验指导书(新编)全文共29页,当前为第18页。1将一个数组中的值按逆序重新存放,例如,原来顺序为8,6,5,4,1,要求改为1,4,5,6,8。C语言程序设计实验指导书(新编)全文共29页,当前为第18页。2最常用的排序方法除了冒泡排序外,还有选择排序。程序设计思路:设有10个元素a[0]~a[9],将a[0]与a[1]~a[9]比较,若a[0]比a[1]~a[9]都小,则不进行交换,即无任何操作。若a[1]~a[9]中有一个以上比a[0]小,则将其中最小的一个(假设为a[i])与a[0]交换,此时a[0]中存放了10个中最小的数。第二遍将a[1]与a[2]~a[9]比较,将剩下9个数中的最小者a[i]与a[1]对换,此时a[1]中存放的是10个中第2小的数。依此类推,共进行9遍比较,a[0]到a[9]就已按由小到大顺序存放。n个数的选择排序的N-S图如下:真假定义变量、输入n及数组a真假for(i=0;i<n-1;i++)k=ifor(j=i+1;j<n;j++)a[j]<a[k]k=j交换a[k]与a[i]输出已排序的n个数用冒泡排序同样的主函数,请根据上面的N-S图编写选择排序函数。四、注意事项1在C语言中,数组元素的下标从0开始,最大下标总是比定义的数组长度少1。2在C语言中,定义数组时,其长度必须指定且必须用常量表示。C语言程序设计实验指导书(新编)全文C语言程序设计实验指导书(新编)全文共29页,当前为第19页。实验六函数一实验目的1掌握定义函数的方法;2掌握函数实参与形参的对应关系以及“值传递”的方式;3掌握函数的嵌套调用和递归调用的方法;4掌握全局变量和局部变量动态变量、静态变量的概念和使用方法。二实验内容1程序填空题#include<stdio.h>doublef1(doublex){returnx*x;}doublef2(doublex,doubley){returnx*y;}/**********found**********/__1__fun(inti,doublex,doubley){if(i==1)/**********found**********/return__2__(x);else/**********found**********/return__3__(x,y);}main(){doublex1=5,x2=3,r;r=fun(1,x1,x2);r+=fun(2,x1,x2);printf("\nx1=%f,x2=%f,x1*x1+x1*x2=%f\n\n",x1,x2,r);}2上机调试下面的程序,记录系统给出的出错信息,并指出错误原因。main()C语言程序设计实验指导书(新编)全文共29页,当前为第20页。{intx,y;C语言程序设计实验指导书(新编)全文共29页,当前为第20页。printf("%d\n",sum(x+y));intsum(a,b);{inta,b;return(a+b);}}3程序填空题#include<stdio.h>/**********found**********/___1___fun(charch){/**********found**********/if(ch>='0'&&___2___)/**********found**********/return'9'-(ch-___3___);returnch;}main(){charc1,c2;printf("\nTheresult:\n");c1='2';c2=fun(c1);printf("c1=%cc2=%c\n",c1,c2);c1='8';c2=fun(c1);printf("c1=%cc2=%c\n",c1,c2);c1='a';c2=fun(c1);printf("c1=%cc2=%c\n",c1,c2);}C语言程序设计实验指导书(新编)全文共29页,当前为第21页。4程序填空题C语言程序设计实验指导书(新编)全文共29页,当前为第21页。#include<stdio.h>intfun(chars[]){inti,n;n=0;/**********found**********/for(i=0;___1___!=0;i++)/**********found**********/if(s[i]>='0'&&s[i]<=___2___)n++;/**********found**********/___3___;}main(){chars[80]="abcdef35adgh3kjsdf7";intt;printf("\nTheoriginalstringis:%s\n",s);t=fun(s);printf("\nTheresultis:%d\n",t);}三注意事项1参数是一个函数与外界的接口,其有无、多少,取决于在实现该函数功能时是否需要已知数据,以及需要多少,它的所需,即为参数。2注意函数调用返回的特点:返回调用处,而后继续执行下面的语句。3函数中无return语句时,函数的类型定义为void或int,不可定义为其他。4当被调函数定义在主调函数之后时,应在主调函数中说明被调函数,否则,调用时将出现错误。5当一个程序由2个或2个以上的源程序文件组成时,必须将这些源程序文件组织在一个工程——项目文件中。在编译时,系统会分别对项目文件中的每个文件进行编译,然后将所得到的目标文件连接成一个整体,再与系统的有关资源连接,生成一个可执行文件,最后执行这个文件。C语言程序设计实验指导书(新编)全文共29页,当前为第22页。C语言程序设计实验指导书(新编)全文共29页,当前为第22页。实验七指针一实验目的1了解指针的概念,学会定义和使用指针变量。2掌握指针、变量和数组的关系及使用方法。3学会使用指向函数的指针变量。二实验内容1运行下列程序,写出运行结果。#include"stdio.h"main(){inta[5],*p,j;for(j=0;j<5;j++)a[j]=j+1;p=a;for(j=0;j<5;j++)printf("*(p+%d)=%d\n",j,*(p+j));}将输出语句中的*改成方括号的形式,修改后再运行程序。2程序修改题#include<stdio.h>intfun(int*x,inty){intt;/**************found**************/t=x;x=y;/**************found**************/return(y);}main(){inta=3,b=8;C语言程序设计实验指导书(新编)全文共29页,当前为第23页。printf("%d%d\n",a,b);C语言程序设计实验指导书(新编)全文共29页,当前为第23页。b=fun(&a,b);printf("%d%d\n",a,b);}3程序修改题#include<stdio.h>#defineN20intfun(float*s,intn,float*aver){floatave,t=0.0;intcount=0,k,i;for(k=0;k<n;k++)/**************found**************/t=s[k];ave=t/n;for(i=0;i<n;i++)if(s[i]<ave)count++;/**************found**************/*aver=Ave;returncount;}main(){floats[30],aver;intm,i;printf("\nPleaseenterm:");scanf("%d",&m);printf("\nPleaseenter%dmark:\n",m);for(i=0;i<m;i++)scanf("%f",s+i);printf("\nThenumberofstudents:%d\n",fun(s,m,&aver));printf("Ave=%f\n",aver);}C语言程序设计实验指导书(新编)全文共29页,当前为第24页。4程序填空题C语言程序设计实验指导书(新编)全文共29页,当前为第24页。#include<stdio.h>intfun(char*s,char*t){intn=0;while(*s){if(*s<97){/**********found**********/*(t+n)=__1__;n++;}/**********found**********/__2__;}*(t+n)=0;/**********found**********/return__3__;}main(){chars[81],t[81];intn;printf("\nEnterastring:\n");gets(s);n=fun(s,t);printf("\nThereare%dletterwhichASCIIcodeislessthan97:%s\n",n,t);}三思考题1下面的程序用来实现将一个3×3的矩阵转置。#include"stdio.h"voidtranf(int(*p)[3]){intt,i,j;for(i=0;i<3;i++)for(j=0;j<i;j++){t=p[i][j];p[i][j]=p[j][i];p[j][i]=t;}}main()C语言程序设计实验指导书(新编)全文共29页,当前为第25页。{inti,j,a[3][3];C语言程序设计实验指导书(新编)全文共29页,当前为第25页。for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%d",&a[i][j]);tranf(a);for(i=0;i<3;i++){for(j=0;j<3;j++)printf("%3d",a[i][j]);printf("\n");}}将上面程序tranf函数中的的方括号改成*号的表示形式,调试并运行程序。程序输入:123456789,记录程序的输出。2用指向指针的方法对n个整数排序并输出。要求将排序单独写一个函数。n和各个整数在主函数中输入,最后在主函数中输出。四注意事项1一个指针变量定义后,必须使其指向确定值(即给它赋值),否则,如果直接应用它的目标,就会破坏内存,使程序出错,甚至造成死机。2注意二维数组元素的不同表示方法,必须灵活掌握。3字符数组保存一字符串后,其长度一般不再起作用,对它的各种操作以字符串结束,标志'\0'作为结束条件。4字符串中%s格式整体输入和输出时,其输入输出项均为数组名。5当用一个字符串给一字符型变量赋值时,是把该字符串的首地址赋值给它,而不是该字符串。字符型指针变量的目标是一个字符,而不是整个字符串。C语言程序设计实验指导书(新编)全文共29页,当前为第26页。C语言程序设计实验指导书(新编)全文共29页,当前为第26页。实验八结构体和文件一实验目的1掌握结构体类型的概念和定义方法与使用。2掌握指向结构体变量的指针变量的概念和应用。3掌握文件的基本概念4掌握文件指针与打开、关闭文件的相关函数二实验内容1定义一个结构体类型,其成员包括:学号(num),姓名(name[20]),性别(sex),年龄(age),三门课的成绩(score[3])。2按上面的结构体类型定义一个结构体数组并初始化,然后调用一个函数count,在该函数中计算出每个学生的总分和平均分,最后返回主函数输出所有各项数据(包括原有的和新求出的)。【提示】①在定义结构体类型时应预留出准备计算结果的成员项。②设结构体变量为函数参数,将各数据传给count函数。#include"stdio.h"structstudent{charnum[9],name[20],sex;intage,score[3],sum;floatav;}st[3]={{"06040106","LiPing",'M',18,87,89,91},{"06040125","ChenFen",'F',19,78,75,81},{"06040132","WangYifei",'M',19,65,67,69}};voidcount(structstudent*p){inti,j;for(i=0;i<3;i++){p[i].sum=0;for(j=0;j<3;j++)p[i].sum+=p[i].score[j];p[i].av=p[i].sum/3.0;}}voidmain(){inti,j;count(st);printf("Thestudent'sinformation:\n");C语言程序设计实验指导书(新编)全文共29页,当前为第27页。printf("NumNameSexAgeScoreSumAverage\n");C语言程序设计实验指导书(新编)全文共29页,当前为第27页。for(i=0;i<3;i++){printf("%-10s%-12s%-3c%5d",st[i].num,st[i].name,st[i].sex,st[i].age);for(j=0;j<3;j++)p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论