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

下载本文档

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

文档简介

CMSMit

实验指导书

桂林电子科技大学信息科技学院

前言上机实验的目的和要求

一上机实验的目的

上机实验的目的,绝不仅仅是为了险证教材和讲课的内容,或者险证自己所编程序正确与否.学习程序语

言,上机实验的目的如下:

1加深对讲授内容的理解,尤其是一些语法规定,光靠课堂讲授,既枯燥无味又难以记住,通过多次上

机,就能自然、熟练地掌握语法规定。

2了解和熟悉C语言程序开发环境。熟悉一两种环境(计算机系统的软件和硬件条件),再遇到其他的

系统时便会触类旁通,很快学会。

3学会上机调试程序,也就是善于发现程序中的错误,并且能很快地排除这些错误,使程序能够正确

地运行。要真正掌握计算机应用技大,就不仅应当了解和熟悉有关理论和方法,而且要求自己动手实践能力

强。

4在做实验时千万不要在程序通过后就认为万事大吉,完成任务了,应当在通过的程序上做一些调试和

修改,看看会得到什么结果。多动脑筋思考,将会对你有很大帮助。

二上机实验前的准备工作

1了解所用的计算机系统的性能和使用方法;

2复习和掌握与本实脸有关的教学内容;

3准备好上机所用的程序,切忌自己不思考、不编制程序或抄袭别人的程序;

4准备好调试和运行时所需的数据.

三上机实验的步骤

1调出C语言编译系统,进入C语言工作环境;

2输入自己编制好的程序;

3检查榆入是否有错,及时更正;

4进行编译和连接;

5运行程序,分析结果。

四、实验结束,整理实验报告

实验报告应包括以下内容:

1上机题目;

2程序清单;

3运行结果;

4对结果的分析和本次获得的经验和体会。

实验一C语言程序初步

数据类型、运算符和表达式

一实验目的

1熟悉C语言运行环境----MicrosoftVisuaIC++6.0中文版。

2掌握C语言程序的书写格式和C语言程序的结构,初步了解C源程序的特点。

3掌握C语言上机步骤,了解如何编辑、编译、调试和运行一个C程序的方法。

4掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对他们赋值的方法.

5掌握不同的类型数据之间赋值的规律。

二实验内容

1C语言上机步骤

(1)开机,启动MicrosoftVisuaIC++6。

(2)建立工程文件:在“文件”菜单中选择“新建”命令项,在弹出的“新建”对话框的“工程”选项卡

中选择“Win32ConsoleApplication”选项,在“工程”框中输入工程文件名sy1,在位置”下拉框中

输入或选择文件夹,单击“确定”;在以下弹出的两个对话框中分别单击命令按钮“完成”和“确定”.

(3)建立C++源文件:在“工程”菜单中选择“添加到工程"-“新建”命令项,在弹出的“新建”对话框

的“文件”选项卡中选择“C++SourceFile”,在右边的“文件”框中输入文件名sy11后单击“确定”。

(4)输入源程序:在弹出的文件编辑窗口中输入下面的源程序:

#incIude〈stdio.h〉

voidmain()

{printfC'Hello,World!\n");

printf("WeIcometotheCIanguageworId!\n");

printf("Everyonehasbeenwaitingfor.\nw);

)

(5)编译:用“编译”菜单的“编译”命令项对源文件syW.cpp进行编译,如果程序有语法或语义错误,

在屏幕下面的窗口会出现错误信息;这时候要修改源程序、保存后重新编译.直到修改了全票错误,屏幕下面

的窗口会出现下面的信息:

--------------------Configuration:sy1-Win32Debug▲

Compiling__

sy11.cpp

sy11.obj-Qerror(s),0warning(s)

ZIEh编译、查找文件l;查找文件2]<]|

表示已通过编译,生成了目标程序sy11。objo

(6)调试:接下来进行调试,操作如下图所示.

完成调试后,生成可执行程序文件sy1。exeo

创天中文VC++-[sy1l.cpp]

国文件编辑存岩插入工程偏译工具窗口都助

窗自电照]京翁出Ctrl+F73

料件syl.exeF7

l(Globals)

圈重建全部

批构件...

I®Workspace'sy1':1清洁

0sylfiles…

开始调试去F5

E骨SourceFiles调试程序远程连接…

刊StepIntoFil

国sy1l.cpp

•执行syl.exeCtrl+F5-*{}RuntoCursorCtrl+FlO

1HeaderFiles

AttachtoProcess...

IResourceFile放置可远行配置…

配置…

值档...

(7)运行:最后用“编译”菜单的"!执行sy1oexe”编译工具窗口帮助命令项运行可执行程

序文件sy1.exe。运行结果如下:有编译Ctrl+F7

物件

syl.exeF72用同样的方法,

由重建全部

批构件…完成Y面程序的运行

清洁1输入

开始调试并运行下面的

调试程序运程连接…

执行syl.exeCtrl+F5

放置可远行配置…

配置…

倒档…

实验二顺序结构与输入/输出方法

一实验目的

1学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(——)运

算符的使用。

2掌握C语言中赋值语句的使用。

3掌握C语言中各种数据的输入/输出方法,能正确使用各种格式转换符。

4理解C语言程序的顺序结构。

二实验内容

上机调通以下程序。

1输入下面的程序

#incIude(stdiooh>

main()

{inti,j,m,n;

i=8;j=10;

/*第5行*/

n=j++;/*第6行*/

printf("%d,%d,%d,%d\n”,i,n);

}

运行程序,注意i、j、m、n各变量的值;然后分别作以下改动并运行:

(1)将第5、6行改为如下以后再运行:

m=i++;

n=++j;

(2)将程序改为:

#incIude(stdio.h)

main()

{inti,j;

i=8;j=10;

printf("%d,Nd\n”,i++,j++);/*第5什*/

}

(3)在⑵的基础上,将第5行printf语句改为:

printf("%d,%d\n”,++i,++j);

(4)再将printf语句改为:

printf("%d,%d,%d,%d\n”,i,j,i++,j++);

(5)将程序改为:

#include<stdioch>

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运行以下程序,并分析其输出结果

#incIude<stdio.h)

main()

{shorti;

匚一2;

printf("\ni:dec=%d,oct=%o,hex=%x,unsigned=%u\nw,i,i,i,i);

)

【注意】在VC++6.0中,short和int类型的数据在内存中占用4个字节。

3按格式要求输入、输出数据。

#include(stdio<>h>

main0

{inta,b;

floatx,y;

charc1,c2;

scanf("a=%d,b=%d",&a,&b);

scanf("%f,%e“,&x,&y);

scant(',%c%c%cw,&c1,&d,&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=7

85,71.82

aA

请同学们写出输出的结果。

【思考】程序第8行中,为什么变量2要输入两次?

4运行以下程序,并分析其输出结果

#incIude<stdio.h)

main()

{floatf;

f=3o1415;

w

printf("\n%f,%4.3f,%5.3f,%-10.3f,%10o3f\n,f,f,f,f,f);

}

4运行以下程序,并分析其输出结果

#include(stdio.h)

main()

{inta,b;floatc,d;charc1,c2;

f

a=61;b=62;c=31o5;d=-68.87;ck'a';c2=A';

printf(w\n");

printf("a=%d,b=%d\n",a,b);

printf("c=%f,d=%f\n",c,d);

printf("c=%e,d=%e\nw,c,d);

printf("c1=%c,%c\n",c1,c2);

)

【注意】在VC++6.0中,实数的指数形式是:±X。XXXXXXe±XXX

5以下程序的功能是从键盘输入一个整型数,一个实型数和一个字符型数,并把他们在屏幕上输出。

完成以下填空,并把程序调通,写出当输入为45,34O5,A〈回车)时程序的运行结果。

#include<stdio0h〉

main()

{inta;floatb;charc;

scant("%d,%f,%c",):

printf("a=\n"fa);

printf(wb=\nw,b);

printf("c=\n",c);

)

6指出以下程序的错误并改正,并上机把程序调通。

#incIude<stdio.h)

mainO

{inta;

scanfa);

printf("a=%f,a);

charc;

c=A;

printf("%f,c)

}

三思考题

1编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数和printf函数输出这两

个字符.并思考以下问题:

(1)变量c1,c2应定义为字符型或整型?还是二者皆可?

(2)要求输出c1和c2的ASCII码,应如何处理?用putchar函数还是printf函数?

(3)整型变量和字符型变量是否在任何情况下都可以互相代替?

2设圆半径r二2,圆柱高h=3,求圆周长,圆柱底面积,圆柱体积.用scanf输入数据,用printf输出

计算结果,输出时要求有文字说明,取小数点后两位数字.

实验三逻辑运算和选择结构程序设计

实验目的

1掌握C语言表示逻辑量的方法(0代表“假、1代表“真”);

2学会正确使用逻辑运算符和逻辑表达式;

3熟练掌握if语句和switch语句。

实验内容

1已知三个数a,b,c,找出最大值放在max中。

#include<stdio.h〉

main()

{inta,b,c,max;

printf(w请输入3个整数(中间用逗号分开):");

scanf("%d,%d,%d”,&a,&b,&c);

if(a)=b)max=a;

eIsemax=b;

if(c)max)max=c;

printf("max=%d\nw,max);

}

若输入下列数据,分析程序的执行顺序并写出输出结果。

序号输入的3个整数a、b、c输出max

11,2,3

21,3,2

32,1,3

42,3,1

53,1,2

63,2,1

2输入某学生的成绩,经处理后给出学生的等级,等级如下:

90分以上(包括90):A80~90分(包括80):B

70〜80分(包括70):C60〜70分(包括60):D

60分以下:E

方法一:用嵌套的if语句

#incIude"stdio.h"

main()

{intscore;chargrade;

printf("请输入学生成绩:”);

scanf(w%d”,&score);

if(score>100||score<0)printf("\n输入成绩错误!\n");

else{if(score>=90)grade='A';

elseif(score>=80)grade='Br;

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)

ygx-1(x=0)

[x+1(0<x<10)

要求输入x的值,输出y的值。

分别用:(1)不用嵌套的if语句;(2)用嵌套的if语句;(3)用switch语句编写程序.

2从键盘上输入三个实数,它们分别代表三条线段的长度,请写一个判断这三条线段所组成的三角形属

于什么类型(不等边,等腰,等边或不构成三角形)的C程序;如果能构成三角形,求出三角形的面积(取

小数2位)。

用下面的数据运行程序,记录程序的输出结果:

abc类型三角形面积

1.582.371.58

3o214.255.16

20482.482.48

2o359o283.83

【提示】已知三角形边长a、b、c,计算三角形面积s的公式是:

s=Jp(p_a)(p_b)(p_c)其中p=a'?”

四注意事项:

1if—else语句书写时应采出分层缩进的格式。

2switch语句的句法格式.

实验四循环结构程序设计

一目的和要求

1掌握在设计条件型循环结构时,如何正确地设定循环条件,以及如何正确地控制计数型循环结构的次

数。

2熟悉用while语句,do-whiIe语句和for语句实现循环的方法。

3掌握在程序设计中用循环的方法实现各种算法(如穷举、选代、递推等).

4学握选择结构与循环结构的嵌套。

二实验内容

1有一数列:2/1,3/2,5/3,8/5,…求出这个数列的前10项之和。

#include<stdiooh)

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单步跟踪执行程序,可以在监视窗口设置要观察的变量或表达式,

3^“目|中衿取华气}郎扇日四匚

^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);

U

方Q上下二]NameValue

s3.50900

Namelvalue

S.00000t3

5.00900

b3.00000a

b3.UU0UU

3.50000!1/•二口Nc*

1>卜Axrto人Locals

2程序修改题

给定程中2DI1.C中函数fun的功能是।工面的公式求冗的近似值,直到

最后一项防堵时值小于指定的数(参数nuw)

H111

4357

到如,麒慧瞬雌:研出3.得1414.…利

请改正

注意:

#include〈math,h〉

#incIude(stdio.h>

floatfun(floatnum)

{ints;

floatn,t,pi;

t=1;pi=0;n=1;s=1;

/**************fourid**************/

whiIe(t〉二num)

pi=pi+t;

n=n+2;

s=~s;

/**************found**************/

t二s%n;

)

pi=pi*4;

returnpi;

]

main()

{floatn1,n2;

printf("Enterafloatnumber:");

scanf(w%f",&n1);

n2=fun(r)1);

printf("%6O4f\n",n2);

3计算两个数的最大公约数.

算法:

(1)输入两个整数m、n,并求m除以n的余数k。

(2)当k手0,将除数n作为被除数叫余数k作为除数n,继续求m除以n的余数k;反复做第⑵步,直

到余数为0结束循环。

(3)结束循环后,除数n就是m与n的最大公约数。

请同学们根据算法写出完整的程序,并编译、运行、检查结果的正确性。

三思考题

编写程序:输入6名学生5门课程的成绩,分别统计出每个学生5门课程的平均成绩.

四、注意事项

1while语句的句法格式及用法。

2for语句的正确使用方法。注意它的初始值、终止条件及步长的确定。

3当循环不能停止(出现死循环),应该用Ctrl+break中断程序的运行。

实验五数组

一实验目的

1掌握一维数组和二维数组的定义、赋值和输入输出的方法;

2掌握字符数组和字符串倒数的使用;

3掌握与数组有关的算法(特别是排序算法)

二、实验内容

编程序并上机调试运行。

1、程序填空

#include〈stdio。

函数fun的功能是:逆置数组元茶中的值。例如:若新指数组中的数据依次

为:1、2、3、4、5、6、7、8、9,则逆置后依次为:9、8、7、6、5、4、3、2、h)

1.形参怎合出数组中数据的个数。

请在程序的下划线舜填入正确的内容并把下划线解除,使程序得出正确的结voidfun(inta[],

果。intn)

注名源性序存放在考生文件考下的BLANKLC中.

不停增存或刑行,也不得更改程序的结构।{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++)

printf("%4d",b[i]);

printf(”\n");

)

2、程序填空题

给定程序中,函数fun的功能是;将断指4X练巨阵中第k行的元索与第咯元

素交箱如,有下列矩阵।

123

456

789

101112

若k为2,程序讥行结果为:

789

456

123

101112

请在程序的下划线处填入正确的内容并把下划线解除,便程序得出正确的结

「"注高淳掾底存放在考生文住岩下的BLANK1.C中。

乐施砧或删行,也兴径更改程序的结构

#include<stdiooh>

#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;

)

1

main()

{intx[M][N]={{1,2,3},{4,5,6},{7,8,9},{10,11,12)},i,j;

printf(wThearraybeforemoving:\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]);

printf("\n\n");

}

)

3、程序修改题

给定申1见11.(:中函数fun的功能是;由形参给定n个实数,输出平均值,

并统曲值以上(音平均值)的实数个数。

例如,?n=8时,输入,193.199,195,673,195.757,196.051,196.092,196,596,

196.57%196.763

所存平均值为:195.83875名在平均值以上的震数个数应为:5

清法正硬序中的错误,使襟序熊窥出正确的!吉某

注面不要改动磔in函数,不容僧行或删行,也不得更改程序的结构!

#include(stdio.h>

intfun(doubIex[],intn)

(

/************found************/

intj,c=0,doublexa=0.0;

fur(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,196O092,196。596,196.579,196O

763};

printf("%d\n”,fun(x,8));

J

4按照下面算法编一个程序,将两个字符串连接起来,不能用strcat函数。

(1)定义整型变量i、j,字符串s1、s2

(2)输入字符串s1,S2

(3)当字符串s1尚未结束,改变字符串s1的下标,使之到s1结束处

(4)当字符串s2尚未结束,将字符串s2逐个字符连接到字符串s1的后面

(5)为字符串s1添加结束标志

(6)输出连接后的字符串

三思考题

1将一个数组中的值按逆序重新存放,例如,原来顺序为8,6,5,4,1,要求改为1,4,5,6,80

2最常用的排序方法除了冒泡排序外,还有选择排序.

程序设计思路:设有10个元索a[0]〜a[9],将a[0]与a[l]~a[9]比较,若a[0]比a都

小,则不进行交换,即无任何操作.若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=i

for(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语言中,定义数组时,其长度必须指定且必须用常量表示。

实验六.函数

-实验目的

1掌握定义函数的方法;

2掌握函数实参与形参的对应关系以及“值传递”的方式;

3掌握函数的嵌套调用和递归调用的方法;

4掌握全局变量和局部变量动态变量、者争态变量的概念和使用方法.

二实验内容

1程序填空题

确时鳍黑小函数fun的功能是根据形参i的值返回某个函数的值。当谓用正

xl=5.000000,x2=3.000000,xl*xl+xl*x2=40.000000

请在程序的下划线处填入正确的内容并把下划线邢赊,便程序得出正确的结

#include<stdiooh>

doublef1(doublex)

{returnx*x;]

doublef2(doublex,doubley)

{returnx*y;}

/**********found**********/

_1_fun(inti,doubIex,doubIey)

{if(i==1)

/**********化口向**********/

return_2_(x);

eIse

/**********found**********/

return_3_(x,y);

1

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上机调试下面的程序,记录系统给出的出错信息,并指出错误原因。

main0

{intx,y;

printf("%d\n”,sum(x+y)):

intsum(a,b);

{inta,b;

return(a+b);

}

3程序埴空题

函数fun的功自进行,数.字4字g腔亲换成。‘7'1……,'9'转换成飞',若是其2

’2‘

后的结杲作为函数值返回。

入正确码内容并把下划线删除,使程序得出正确的结

'注面源程序存放在考生文件考二的BLANK1.C中。

不停增存或删行,也不得更改程序的结树

#incIude(stdio.h〉

/**********found**********/

___1___fun(charch)

1

/**********found**********/

if(ch>='O'&&-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(wc1=%cc2=%c\nw,d,c2);

c1二'a';c2=fun(c1);

printf("c1=%cc2=%c\n”,d,c2);

)

4程序填空题

给定县序史,函数fun的功能是:筋计形参s所指字符目的次

数,并有质在必参t所指的变量中,晕后在王函数中输出。的字

符串为,abcdef35adRh3kisdf7*输出结果为,4。

请在程序的下刻则强入正确的内容并把下划线删除,使程序得出正确的结

''注意,源野匠存放在考生文件考下的BLANKLC中。

不羯酷或删帘也不落更改程序的结构!

#incIude(stdiooh)

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(v\nTheoriginalstringis:%s\n”,s);

t=fun(s):

printf("\nTheresultis:%d\n",t);

}三注意事项

1参数是一个函数与外界的接口,其有无、多少,取决于在实现该函数功能时是否需要已知数据,以及

需要多少,它的所需,即为参数.

2注意函数调用返回的特点:返回调用处,而后继续执行下面的语句。

3函数中无return语句时,函数的类型定义为void或int,不可定义为其他。

4当被调函数定义在主调函数之后时,应在主调函数中说明被调函数,否则,调用时将出现错误。

5当一个程序由2个或2个以上的源程序文件组成时,必须将这些源程序文件组织在一个工程一项目

文件中.在编译时,系统会分别对项目文件中的每个文件进行编译,然后将所得到的目标文件连接成一个整体,

再与系统的有关资源连接,生成一个可执行文件,最后执行这个文件。

实验七指针

一实验目的

1了解指针的概念,学会定义和使用指针变量。

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

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

二实验内容

1运行下列程序,写出运行结果。

#include"stdio.hw

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程序修改题

耀福蹲嚼谶望黯髓索督酷董疆㈱

直为3.b电的值为8。

请改正耦龈:峭懿馨篇,也不得更改程序的结构।

注意:

#include(stdio.h)

intfun(int*x,inty)

intt;

/**************found**************/

t=x;x=y;

/**************found**************/

return(y);

1

main()

(

inta=3,b=8;

printf("%d%d\n",a,b);

b=fun(&a,b);

printf("%d%d\n",a,b);

)

3程序修改题

给定崔序J10DILC中函数fun的功能是:/1(那参)个竽生的成分甲统计出低

壬至均分卷*生人数,此人数由函数值返回,#均芬存放在弦参aver阶相的存储单

兀中.

例如若输入8名学生的成绩,83.5607290.59851.58864

则低中耳均分的至生人翦为:4(平均分为:75.5625).

鬻森野擀露嚼髀鹦器出不得更改程序的结科

#incIude<stdiooh)

#defineN20

intfun(float*s,intn,float*aver)

{fIoatave,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(M\nPleaseenterm:");scanf("%d",&m);

printf("\nPIeaseenter%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);

}

4程序填空题

给定程孑中,函数fun的功能是:黄形参$所指物串中班有呼更”值个手里

的字⑥卷〉、戒参t所指字符数组中,形战一个舒串,毛豌计出超条件的字将不数

作为国长值返回。

例如,形参s所指的字符串为,Ab"lx56*,程序执行后t所指字符数组中的字

符串应为:A«156*o

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结

注意:存放在考生文件旁下为BLANK1.C中。

书或删行,也不得更改程序的结枷

#include<stdio.h>

intfun(char*s,char*t)

(intn=0;

while(*s)

(if(*s<97){

/******-A-***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);

prinlf("\nThereare%dIeIlerwhichASCIIcodeislessIha”97:%s\n”,n,l);

1

三思考题

1下面的程序用来实现将一个3X3的矩阵转置。

#include”stdiooh”

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]

温馨提示

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

评论

0/150

提交评论