实验函数指针结构体Word文档下载推荐.docx
《实验函数指针结构体Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验函数指针结构体Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
如果函数首部以int开头,则该函数属于:
整型类;
如果函数首部以float开头,则该函数属于:
实型类;
3、写出满足如下要求函数的函数首部:
①函数名为hypo,为了求一个字符,需要两个参数,分别是整型和字符型:
charhypo(intx,hypoy);
②函数名为fun2,操作类函数,需要两个整型参数:
voidfun2(intx,inty);
③函数名为baoy,判断类函数,需要一个字符型参数和两个整型参数:
intbaoy(charx,inty,intz);
一、实验内容
1、编写一个函数求的值,x作为形参,用主函数调用此函数求:
#include"
stdio.h"
math.h"
floatfun(floatx)
{
floaty;
y=x*x-5*x+4;
return(y);
}
voidmain()
floata,y1,y2,y3;
printf("
输入a的值:
"
);
scanf("
%f"
&
a);
y1=fun(a);
y2=fun(a+15);
y3=fun(sin(a));
y1=%f\n"
y1);
y2=%f\n"
y2);
y3=%f\n"
y3);
2、编写函数,给定一个字符和一个整数,将该字符输出整数次。
voidoutput(chara,intx)
inti;
for(i=1;
i<
=x;
i++)
putchar(a);
main()
charb;
inty;
请输入一个字符:
\n"
%c"
b);
请输入次数:
%d"
y);
output(b,y);
\n"
3、编写函数,输出所有的“水仙花”数。
intsx(intx)
inta,b,c;
a=x%10;
b=x/100;
c=(x-b*100)/10;
if(a*a*a+b*b*b+c*c*c==x)
return1;
elsereturn0;
for(i=100;
1000;
if(sx(i))
printf("
%d"
i);
printf("
五、实验结果
要求写出运行界面并输出运行结果
(1)
(2)
(3)
实验8函数与数组
1、掌握数组作为参数的函数编写与调用方法
2、掌握数组作为参数的特殊性
3、掌握字符串作为参数的函数编写与调用方法
二、知识要点
1、地址传递的概念及使用
2、数组元素和数组名作为函数参数的特点与区别
3、字符串作为参数的特点:
‘\0’字符的使用
三、实验预习(要求做实验前完成)
1、数组作为函数参数时,其特殊性是参数之间的数据传递方式不是值传递,而是地址传递
2、定义字符数组作为参数的函数时,通常需要提供长度作为参数;
而定义
整形或实形数组作为参数的函数时,通常不需要提供长度参数
①函数名为fmax,求一个实型数组的最大元素值:
fmax(floata[10],floatmax)
②函数名为scount,求一个字符串中大写字母的个数:
scount(chara[10],intn)
③函数名为delf,删除一个字符串的第一个字符:
delf(chara[10],charb[10])
四、实验内容
1、编写一个函数,其功能是将字符串中的大写字母改为小写字母,其它字符不变。
string.h"
voidexchange(chara[])
for(i=0;
strlen(a);
if(a[i]>
='
A'
&
a[i]<
Z'
)
a[i]+=32;
charb[20],k;
请输入一个字符串:
gets(b);
exchange(b);
puts(b);
2、编写一个函数,求出给定的二维数组中每一行最大的元素,并显示出来。
voidmax(inta[3][3])
inti,j,max[3];
3;
max[i]=a[i][0];
for(j=0;
j<
j++)
if(a[i][j]>
max[i])
max[i]=a[i][j];
第%d行最大值:
%d\n"
i+1,max[i]);
inti,j,b[3][3];
输入一个3行3列的数组:
for(j=0;
scanf("
b[i][j]);
数组元素为:
for(i=;
{
%d"
b[i][j]);
}
max(b);
3、在主函数中输入N个人的某门课程的成绩,分别用函数求:
(1)平均分、最高分和最低分;
(2)分别统计90-100分的人数、80-89分的人数、70-79分的人数、60-69分的人数及59分以下的人数。
结果在主函数中输出。
doubleave(intx[15],floataveg,intmax,intmin);
doublegrade(intx[15],inta,intb,intc,intd,inte);
intx[15],n,min,max,a,b,c,d,e;
floataveg;
aveg=0;
for(n=0;
n<
15;
n++)
x[n]);
ave(x,aveg,max,min);
grade(x,a,b,c,d,e);
平均成绩:
%f\n最高分:
%f\n最低分:
%f\n"
aveg,max,min);
小于60:
%d\n60~70:
%d\n70~80:
%d\n80~90:
%d\n90~100:
%d\n"
a,b,c,d,e);
doubleave(intx[15],floataveg,intmax,intmin)
inti:
max=x[0];
min=x[0];
{aveg=aveg+x[i];
if(max<
x[i]);
max=x[i];
elseif(min>
min=x[i];
aveg=aveg/40
return(aveg,min,max);
doublegrade(intx[15],inta,intb,intc,intd,inte)
intj;
a=0;
b=0;
c=0;
d=0;
e=0;
{if(x[j]<
60)e=e+1;
elseif(x[j]<
70)d=d+1;
80)c=c+1;
90)d=d+1;
100)e=e+1;
return(a,b,c,d,e);
(3)
实验9指针及其应用
一、实验目的
1、掌握指针的概念
2、掌握指针变量的定义和基本使用方法
3、掌握使用指针操作数组元素的方法
4、掌握使用指针操作字符串的方法
1、变量的直接访问和间接访问的概念
2、指针和指针变量的概念
3、简单变量的指针及指向简单变量的指针变量的定义、赋值及使用
4、数组的指针及指向数组的指针变量的定义、赋值及使用
5、字符串的指针及指向字符串的指针变量的定义、赋值及使用
1、写出一个C语句,使得指针变量u指向变量x:
*p=&
x;
2、写出一个C语句,输出“指针变量p指向的整型变量”的值:
int*p;
3、把“指针变量u所指向的变量”的值变为40,其语句是:
*u=40;
4、定义三个变量,其中x1是整型变量;
y1、y2是指向整数的指针变量:
intx1,*y1,*y2
5、若有语句:
chart[20]=“abcdefgh”,*p;
则使p指向字符串的第一个字符的语句是:
p=t;
四、实验内容(以下题目要求使用指针方法完成)
1、已知一个整型数组x[4],它的各元素值分别为3、11、8和22.使用指针表示法编程序,求该数组各元素之积。
#include"
charstr1[30],str2[20],str3[50],*p,*q,*s;
intn,i;
请插入原始字符串:
gets(str1);
请输入需要插入的字符串:
gets(str2);
请输入需要插入的位置:
n);
p=str1;
q=str2;
s=str3;
for(i=0;
n;
*(s+i)=*(p+i);
strlen(str2);
*(s+n+i)=*(q+i);
strlen(str1);
*(s+n+strlen(str2)+i)=*(p+n+i);
puts(str3);
2、编写程序,输入10个整数至一数组,将其中最小的数与第一个数对调,把最大的数