湖北理工学院C语言实验报告六答案(完整版)

合集下载

计算机C语言实验报告含答案

计算机C语言实验报告含答案

高级语言程序设计(C语言)实验报告。………………………………………………………………………………………………

一、实验题目:语句与顺序结构控制

程序设计

1)编写程序,已知圆半径radius=1.25,求圆周长和面积。

源代码:运行结果:

#include <stdio.h> d=7.853981

#define PI 3.1415926 s=4.908735

void main()

{

float r=1.25,d,s;

d=2.0*PI*r;

s=PI*r*r;

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

printf("s=%f\n",s);

}

2)编写程序完成大写字母的小写转换。

源代码:运行结果:

#include <stdio.h> 请输入一个大写字母:H void main() H h

{

char ch1,ch2;

printf("请输入一个大写字母:");

ch1=getchar();

ch2=ch1+32;

printf("%c %c\n",ch1,ch2);

}

3)任意从键盘输入一个三位整数,要求正确分离出它的个位、十位和百位数,并分别在屏幕上显示。

源代码:运行结果:

#include <stdio.h> 请输入一个整数 :123 void main() b=1,s=2,g=3

{

int a,g,s,b;

printf("请输入一个整数:");

scanf("%d",&a);

b=a/100;

s=(a%100)/10;

g=a%10;

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

C语言实验报告第6章答案

C语言实验报告第6章答案

6.2基础实验

一、程序分析

分析以下程序段完成的功能,填写在序号后的空白处,并运行验证结果。

1. ⊙以下程序的运行结果是:_______s=12345↙____________________。

#include

int main( )

{ inta[]={1,2,3,4,5},i,j=1,s=0;

for(i=4;i>=0;i--)

{ s=s+a[i]*j;

j=j*10;

}

printf(“ s= %d \n” , s );

return 0;

}

2. 以下程序的运行结果是:_____7 5 3______________________。

#include

int main( )

{ int k ;

int a[3][3]={9,8,7,6,5,4,3,2,1};

for(k=0;k<3;k++)

printf(“%d ”,a[k][2-k]);

return 0;

}

3. 以下程序的功能是:____查找最大值元素及下标_________________。

#include

int main( )

{ int i, j ,x =0 ,y = 0 , m ;

int a[3][3] = { 1, -2 , 0 , 4 , -5 , 6 , 2 , 4 };

m = a [0][0] ;

for (i=0 ;i < 3 ;i++)

for (j = 0 ; j<3 ; j++ )

if ( a[ i] [ j ] >m )

{ m = a[ i ][ j ] ;

x = i ;

y = j ;

}

printf(“ ( % d , % d ) = % d \n”, x , y,m );

C语言实验6(附参考答案)

C语言实验6(附参考答案)

实验6:运算符与表达式(5)实验目的:

1、熟悉字符的输入输出和格式化的输出,了解基本规则。

2、进一步熟悉C语言程序的编辑、编译、连接和运行的方法。

实验内容:

1、 getchar函数的作用是从终端输入____1______个字符。

2、如果从键盘输入字符’a’并按回车键,请写出以下程序运

行效果_____a_____。

main()

{

putchar(getchar());

}

3、以下程序的输出结果为

main()

{

char c=‘x’;

printf(“c:dec=%d,oct=%o,ASCII=%c\n”,c,c,c);

}

4、以下程序的输出结果为。

main()

{

int x=1,y=2;

printf(“x=%d y=%d *sum*=%d\n”,x,y,x+y);

printf(“10 Squared is:%d\n”,10*10);

}

5、以下程序的输出结果为____________________。

#include <stdio.h>

main()

{

float a=123.456; double b=8765.4567;

printf(“(1) %f\n”,a);

printf(“(2) %14.3f\n”,a);

printf(“(3) %6.4f\n”,a);

printf(“(4) %lf\n”,b);

printf(“(5) %14.3lf\n”,b);

printf(“(6) %8.4lf\n”,b);

printf(“(7) %.4f\n”,b);

}

二、程序设计题

1、若a=3,b=4,c=5,x=1.2,y=2.4,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下的输出格式和结果,请写出程序(包括定义变量类型和设计输出)。

武汉理工大学C语言程序设计实验精选报告含答案

武汉理工大学C语言程序设计实验精选报告含答案

注:在 Visual C++ 6.0 编译环境中亲身调试经过,但不保证在Turbo C 中经过。实验二选择构造的程序设计

(题目当初没抄下来,这是依据程序整理的)

4 x 8 1 x 0

1. 编程实现分段函数

2

10x 1 0 x 1

y 3x

8x4 3x2 2 x 1 1 x 2

#include<stdio.h>

main()

{

float x,y;

printf("Please input x:");

scanf("%f",&x);

if (x<-1||x>=2)

printf("Data Error\n");

else

{

if (x>=-1&&x<0)

y=4*x-8;

if (x>=0&&x<1)

y=3*x*x+10*x-1;

if (x>=1&&x<2)

y=8*x*x*x*x-3*x*x+2*x-1;

printf("\ny=%f\n",y);

}

}

2.苹果有三个等级,一级 5.50 元 /斤,二级

3.00 元/ 斤,三级 2.50 元 /斤。编写

程序,输入苹果的等级,购置的数目和所付的钱数,

输出等级,购置的数目、对付钱数和找零。

#include<stdio.h>

main()

{

int level;

double weight,pay,money,charge;

printf("Please input the level:");

scanf("%d",&level);

printf("Please input the weight you want:");

C语言实验报告6

C语言实验报告6

实验项目六指针及其应用

一、实验要求

(1)编写函数int search(int list[],int n,int x),在数组list中查找元素x,若找到则返回相应下标,否则返回-1。

实验提示

①在数组list中查找元素x可以用单循环,采用顺序查找的方法实现;

②注意控制循环语句的执行。

二、实验环境

硬件:(1)学生用微机

(2)多媒体实验教室

软件:VC++ 6.0

三、实验结果

#include<StdAfx.h>

int main()

{

int search(int list[],int x);

int a[10],x,i,y;

printf("输入数组元素");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

printf("输入x的值");

scanf("%d",&x);

y=search(a,x);

if(y==-1)printf("Not found");

else printf("%d",y);

return 0;

}

int search(int list[],int x){

int i;

for(i=0;i<10;i++)

if(x==list[i])

return i;

return -1;

}

四、总结

通过这次实验,对指针及其应用有了一个初步的了解,为后续更加好的学习C语言打下

了一定的基础。

《C语言程序设计》实验报告实验六

《C语言程序设计》实验报告实验六

《C语言程序设计》实验报告

实验六使用指针的程序设计

学号姓名

一、实验目的

1、掌握指针的概念,会定义和使用指针变量;

2、能正确使用数组的指针和指向数组的指针变量;

3、熟悉指针作为函数参数的定义和调用方法;

4、能正确使用字符串的指针和指向字符串的指针变量。

二、实验内容

1.分析下面的程序并上机运行程序,要求写出3组以上程序的运行结果。

#include <stdio.h>

void main()

{

int *p1,*p2,*p;

int a,b;

printf("Input a b please");

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

p1=&a;

p2=&b;

if(a>b)

{ p=p1;p1=p2;p2=p;}

printf("*p1=%d, *p2=%d\n",*p1,*p2);

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

}

『运行结果:』

输入1,2得:*p1=1,*p2=2

a=1,b=2

输入2,1得:*p1=1,*p2=2

a=2,b=1

输入56,123得:*p1=56,*p2=123

a=56,b=123

2.下列程序的功能是分别求出数组中所有奇数之和以及所有偶数之和。形参

n给了数组中数据的个数,利用指针odd返回奇数之和,利用指针even 返回偶数之和。请在下面空白处将实现这一功能的函数完善,并且调试运行出结果。

#include <stdio.h>

#define N 10

void fun(int *a,int n,int *odd,int *even)

{

int m;

湖北理工学院14本科C语言实验报告实验一 顺序结构程序设计

湖北理工学院14本科C语言实验报告实验一  顺序结构程序设计

实验一顺序结构程序设计

实验课程名: C语言程序设计

专业班级:14电气工程2班学号:201440210237 姓名:熊帆实验时间: 3.9-3.22 实验地点:K4-208 指导教师:祁文青

说明:

1.电子实验报告填写好后,以学生的学号+实验项目名作为该word文件名保存,例

如某学生学号为20080001,姓名为某某,本次实验名称是:实验一顺序结构程序

设计,则本次实验报告的保存文件名为:01某某实验一.doc。

2.在规定的时间内,学生将本报告提交给实验指导教师。

C实验报告6参考答案

C实验报告6参考答案

《高级语言程序设计》实验报告

班级: 学号: 姓名: 成绩:

实验6 数组程序设计

一、实验目的

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

2. 掌握字符数组和字符串函数的使用。

3. 掌握与数组有关的算法。

二、实验内容

1

(1)下列程序的功能为:为指定的数组输入10个数据,并求这些数据之和。纠正程序中存在的错误,以实现其功能。程序以文件名保存。

#include<>

void main()

{int n=10,i,sum=0;

int a[n]; int a[10];

for(i=0;i<10;i++)

{

scanf("%d",a[i]); scanf("%d",&a[i]);

sum=sum+a[i];

}

printf("sum=%d\n",sum);

}

(2)下列程序的功能为:将字符串b 连接到字符串a 。纠正程序中存在的错误,以实现其功能。程序以文件名保存。

#include<>

void main( )

{ char a[]="wel",b[]="come"; char a[20]="wel",b[]="come";

int i,n=0;

while(!a[n]) n++; while(a[n] != '\0') n++;

for(i=0;b[i]!='\0';i++)

a[n+i]=b[i];

a[n+i]=’\0’;

printf("%s\n",a);

}

(3)下列程序的功能为:找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点。纠正程序中存在的错误,以实现其功能。程序以文件名保存。

C语言 习题六 参考答案

C语言 习题六 参考答案
}for(i=3;i<=100;i=i+4)
s=s-i;
printf(“%d\n”,s);
(3)}
main()
{int s=0,i;
for(i=1;i<=101;i=i+2)
if(i%4==1)s=s+i;
else s=s-i;
printf(“s=%d\n”,s);
}
2、任意输入10个数,计算所有正数的和、负数的和以及这10个的总和。
while(1)
if(fabs(z)>1){x=y;y=x;z=x/y;}
else break;
printf(“%f\n”,y);}
6、以下程序的输出结果是________。(*#*#*#$)
main()
{int i;
for(i=1;i<=5;i++)
{if(i%2)printf(“*”);/*i=1、3、5 输出’*#’*/
}
7、设X数列定义如下:
n n=1,2,3
Xn=
xn-1+xn-2+xn-3n>3
编写程序,对输入的正整数n,输出数列的前n项。
main( )
{ int n, x1, x2, x3, xn, i;
printf(“Enter n:”); scanf (“%d”,&n); if ( n<=3 )

武汉理工大学《C语言程序设计》实验报告

武汉理工大学《C语言程序设计》实验报告

《C语言程序设计》实验报告

实验课程名称C语言程序设计

开课学院计算机科学与技术学院指导教师姓名

学生姓名X X

学生专业班级信息管理与信息系统1101班2012—2013学年第1学期

实验一顺序结构的程序设计

题目一:

程序代码:

题目二:

程序代码:

实验二:选择结构的程序设计题目一:

程序代码:

运行结果:

题目二

程序代码:

运行结果:

实验三循环结构的程序设计题目一

程序代码:

运行结果:

题目二:程序代码:

运行结果:

实验四数据和指针应用的程序设计题目一

程序代码:

运行结果:

运行结果:

程序代码:

运行结果:

实验五函数应用的程序设计程序代码:

运行结果:

程序代码:

运行结果:

湖北理工学院c语言实验报告实验六

湖北理工学院c语言实验报告实验六

实验六指针

实验课程名:高级语言程序设计

专业班级:学号:姓名:

实验时间:12.3-12.9 实验地点:K4-202 指导教师:冯珊

(3)运行结果分析:

用十进制输出i j 的值或地址

2.上机验证以下程序的运行结果

#include <stdio.h>

void main()

{ int i,a[]={1,2,3},*p;

p=a;/*将数组a首地址赋给指针p*/

for (i=0;i<3;i++)

printf("%d,%d,%d,%d\n",a[i],p[i],*(p+i),*(a+i));

}

解答:

(1)源代码:

#include <stdio.h>

void main()

{ int i,a[]={1,2,3},*p;

p=a;/*将数组a首地址赋给指针p*/

for (i=0;i<3;i++)

printf("%d,%d,%d,%d\n",a[i],p[i],*(p+i),*(a+i));

}

(2)运行结果

(3)运行结果分析:

用指针和下标不同形式表示输出

3.调试下列程序,使之具有如下功能:用指针法输入12个数,然后按每行4个数输出。写出调试过程。

#include <stdio.h>

void main()

{ int j,a[12],*p=a;

for(j=0;j<12;j++)

scanf("%d",p++);

p=a;

for(j=1;j<=12;j++)

{ printf("%4d",*p++);

if(j%4 == 0)

printf("\n");

}

}

解答:

【免费下载】湖北理工学院c语言实验报告实验六

【免费下载】湖北理工学院c语言实验报告实验六
void sum(int ,int ,int *); void swap(int * ,int * ); scanf("%d,%d",&a,&b); sum(a,b,p); swap(&a,&b); printf("sum=%d\n",c); printf("a=%d,b=%d\n",a,b);
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

C语言实验报告 实验六 参考答案

C语言实验报告 实验六  参考答案

实验六二维数值数组(参考答案)

(1) 设计程序sy6-1.c,从键盘上输入一个3行3列矩阵各个元素的值,输出其主对角线元素和反向对角线元素之和。

算法分析:

方阵主对角线上的元素,行下标和列下标相同;辅对角线元素,如果行下标为i,列下标就为2-i;参考答案:

# include <stdio.h>

# include <stdlib.h>

# include <math.h>

# include <time.h>

void main()

{

int a[3][3];

int i,j,sum=0;

srand( time( NULL ) );

printf("矩阵:\n");

for(i=0;i<3;i++) //用随机函数生成3行3列的二维数组并按矩阵格式输出

{for(j=0;j<3;j++)

{a[i][j]=rand()%20;

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

}

printf("\n");

}

for(i=0;i<3;i++)

sum=sum+a[i][i]+a[i][2-i];

printf("该矩阵的正、反对角线元素之和为:%d\n",sum);

}

运行结果:

(2) 设计程序sy6-2.c,找出N×N矩阵中每列元素中的最大值,并按顺序依次存放于b数组中。

算法分析:

按列序遍历二维数组,每列用打擂台的方法求最大数,N列则有N个最大值,分别存于b数组的对应元素中。

# include <stdio.h>

# include <stdlib.h>

C实验报告答案完整版

C实验报告答案完整版

C实验报告答案完整版

实验1简单判定性问题求解

⼀、实验学时

完成本实验需4学时。

⼆、实验⽬的

1、阅读程序题

(1)掌握C语⾔数据类型,熟悉如何定义⼀个整型、字符型的变量,以及对它们赋值的⽅法;

(2)掌握不同的类型数据之间赋值的规律;

(3)掌握数据在内存中的存储⽅式;

(4)学会输⼊、输出函数的基本格式和使⽤⽅法;

(5)学会使⽤有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。

2、编程题

(1)如何运⽤if-else判定性结构进⾏程序设计;

(2)如何运⽤switch判定性结构进⾏程序设计。

3、调试题

(1)熟悉C程序的编辑、编译、连接和运⾏的过程。

三、实验指导

为了达到最佳的实验效果,以下提供⼏条适于编程的指导意见,可供参考。

1、阅读程序题应先运⽤⾃⼰在课堂所学的知识,推导出结果,在上机时输⼊计算机,印证⾃⼰推导的结果,注意观察数据在内存中的存储⽅式、含不同种运算符表达式的输出结果。

2、编程题必须⾸先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。要注意简单判定性问题的结构选择。

3、调试题应明确程序的调试、测试是⼀项⾮常烦琐的⼯作,也是⾮常重要的⼯作。对于初学者来说应该建⽴良好的习惯,在调试程序的时候,应该尽可能考虑到程序运⾏时各种可能情况。

四、实验内容

1、阅读程序题

(1)main( )

{ /*定义字符型变量*/

char c1,c2; /*向字符变量赋以整数*/

c1=97;

c2=98;

printf("%c %c\n",c1,c2); /*以字符形式输出*/

printf("%d %d\n",c1,c2); /*以整数形式输出*/

实验六参考答案

实验六参考答案

第一套

1、程序填空题

1)【参考答案】第一处:* 第二处:'Z' 第三处:tt

2)【参考答案】第一处:char 第二处:ch<='9' 第三处:'0'

2、程序改错题

【参考答案】第一处:c=c-32;改为c=c+32; 第二处:c=c-5;改为c=c+5;

2、程序设计题

【参考答案】

void fun(char *s)

{ int i=0;

/*假如s[i]不为字符串结束符,则继续循环,否则退出循环*/

while (s[i]!='\0')

/*假如s[i]为大写字母Z 且在字符串中下标为奇数的位置上,则转换成小写字母z*/

{ if ((s[i]=='Z') && (i%2==1))

s[i]='z';

/*假如s[i]为除大写字母Z 以外的字母,则直接转换成该字母的小写字母状态的下一个字母*/

else if ((s[i]>='A' && s[i]<'Z') && (i%2==1))

s[i]=s[i]+33;

i++;

}

}

【解题思路】

将s 所指字符串中下标为奇数位置上的大写字母转换为字母序列中的下一个小写字母,若该位置上是小写字母,则不转换;若该位置上是大写字母Z,则仅转换成小写字母z。判断字符为大写字母的方法是:判断字符的ASCII 值是否大于A小于Z。判断下标为奇数,用i%2 等于1 来判断。

1、程序填空题

1)【参考答案】第一处:n >0 第二处:n%10+'0' 第三处:str[i]= ′\0′

2)【参考答案】第一处:s[i] >= ′0′ &&s[i]< = ′9′第二处:s[i]- ′0′第三处:n

C语言test6答案

C语言test6答案

1.阅读、调试、运行程序,比较阅读的结果和运行的结果

(1)运行结果:

(2)运行结果:

(3)运行结果:

(4)运行结果:

(5)运行结果:

2. 完善程序,并调试运行

1) (1) s[i]!= (2) || (3) s[j]=s[i];

2)(1)i=0 (2)'\0' (3)str1[i]-str2[i] 3)(1)j+=2 (2)a[i]>a[j]

4)(1)i=1(2)a[i-1](3)a[i]

5)(1)&a[i] (2)a[0](3)a[i]

6)(1)a[N] (2)a[i]!=k (3)i

3. 修正程序,并调试运行

(1)修正的程序:

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

else if('0'<=s[i]&&s[i]<='9') /**********found**********/

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

}

(2)修正的程序

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

char a[10];

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

put (s[i]);

(3)修正的程序

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

(1)s1=0,s2=0,s3=0,s4=0

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

(2)s2=s2+a[m-1][j] /**********found**********/ (3)for(i=1;i

/**********found**********/ s=s1+s2+s3+s4

(4)修正的程序

/**********found**********/ for(i=j+1;i<4;i++)

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

for(i=0;i<5;i++)
p[i]= (1) ;
for(i=0;i<5;i++)
{ *(p[i]+ (2) )=1;
*(p[i]+5- (3) )=1;
}wenku.baidu.com
for(i=0;i<5;i++)
{ for(j=0;j<5;j++)
printf("%2d",p[i][j]);
(4) ;
}
}
(1) A.&a[i][0]
运行结果分析:首先要清楚二维数组与指针的结合运用时,注意指针所指向的是数 组的第一个元素的地址;其次要注意数组指针的概念和使用,弄清楚指针指向的是 什么,也要清楚指针使用时的规则。
7、任务名称 源代码:
#include <stdio.h> void main() {
void fun(int *,int *,int ); int a[5]={4,6,8,10,12},s=1,*p=&s; fun(a,p,5); printf("%d\n",s); } void fun(int *a,int *s,int n) { int i; for (i=0;i<n;i++)
scanf("%d%d",&a,&b); sum(a,b,p); swap(&a,&b); printf("sum=%d\n",c); printf("a=%d,b=%d\n",a,b); } void sum(int a,int b,int *c) { *c=a+b; } void swap(int *a,int *b) { int t; t=*a; *a=*b; *b=t; } 运行结果:(需要截图)
运行结果分析: 把数组 a[12]的首地址赋给指针变量 p,指针 p 指向数组 a 的第一个元素。在 for 循环中依次输入 12 个数,最后输出数组中的元素。
4、任务名称 源代码: #include <stdio.h> void main( ) { int a,b,c,*p=&c; void sum(int ,int ,int *); void swap(int * ,int * );
printf("%d,%d,%d,%d\n",a[i],p[i],*(p+i),*(a+i)); } 运行结果:(需要截图)
运行结果分析:把数组 a[3]的首地址 a 存入指针变量 p,所以 a[i]和 p[i],*(p+i), *(a+i)表示数组 a[3]中的元素。
3、任务名称 源代码: #include <stdio.h> void main() { int j,a[12],*p=a; for(j=0;j<12;j++) scanf("%d",p++); p=a; for(j=1;j<=12;j++) { printf("%4d",*p++); if(j%4 == 0) printf("\n"); } } 运行结果:(需要截图)
运行结果分析:函数 lookup 的功能是找到数组 t 中的最小值并把他赋给指针变 量 a 所指向的变量。在主函数中输入是个整数到数组 table[10],调用 lookup 函 数找到最小值,然后输出最小值。
6、任务名称
源代码:
#include <stdio.h>
void main()
{ int a[5][5]={0},*p[5],i,j;
运行结果 :
5
7 -34 -32
-34 5 -32
7
运行结果分析:指针的值与指针指向的变量值的区别。在 VC 环境下,以上运行结 果中的负数是另一个值。
2、任务名称 源代码: #include <stdio.h> void main() { int i,a[]={1,2,3},*p;
p=a; /*将数组 a 首地址赋给指针 p*/ for (i=0;i<3;i++)
实验六 指针
实验课程名:高级语言程序设计(C)
专业班级:
学号:
实验时间:
实验地点:
姓名: 指导教师:
一、实验目的和要求
1. 通过实验进一步掌握指针的概念,会定义和使用指针变量; 2. 能正确使用数组的指针和指向数组的指针变量; 3. 能正确使用字符串的指针和指向字符串的指针变量; 4. 能正确使用指向函数的指针变量; 5. 了解指向指针的指针的概念及其使用方法。
运行结果分析: 输入两个整型数给变量 a,b,指针 p 指向整型变量 c,调用函数 sum,把实参 中的 a,b 传给形参 a 和 b,实参 p 和形参 c 指向同一个变量,把 a,b 之和赋给 p 所指的变量 c。然后调用 swap 函数使变量 a 和 b 的值交换。
5、任务名称 源代码: #include <stdio.h> int table[10]; void lookup(int *t,int *a,int n) { int k; *a=t[0]; for(k=1;k<n;k++) if(*a>t[k]) *a=t[k]; } void main() { int k,min,*p=&min; for (k=0;k<10;k++) scanf("%d",table+k); lookup( table , p ,10); printf("min=%d\n",min); } 运行结果:(需要截图)
B.&a[i][1]
(2) A.0
B.1
(3) A.0
B.1
(4) A.putchar("\n"); B. putchar('\n');
答:A,C,D,B
运行结果:(需要截图)
C.&p[i] C.i C.i C. putchar(\n);
D.&a[0][i] D.(i+1) D.(i+1) D.printf('\n');
二、实验内容
1、任务名称
1.上机验证以下 c70101.c 程序的运行结果
#include <stdio.h> void main() { int i,j,*pi,*pj;
pi=&i; pj=&j; i=5; j=7; printf("\n%d\t%d\t%d\t%d",i,j,pi,pj); printf("\n%d\t%d\t%d\t%d",&i,*&i,&j,*&j); }
*s*=a[i];
} 运行结果:(需要截图)
运行结果分析:指针变量 p 指向变量 s,fun 函数的功能是求出一个数组所有元 素的乘积,并赋给形参 s 指向的整型变量。这样 p 所指的变量 c 的值就是数组 a[5]中元素的乘积。最后输出 c。
三、结论 通过本次实验,我进一步掌握指针的概念,会定义和使用指针变量;.学会了使用数 组的指针和指向数组的指针变量;掌握了字符串的指针的使用方法以及指向字符 串的指针变量和指向函数的指针变量的使用方法了解指向指针的指针的概念及其 使用方法。
相关文档
最新文档