gets(a); gets(b);
for(i=0;a[i]!='\\0';i++)
{ for(j=0;b[j]!='\\0';j++) if(a[i+j]!=b[j]) break; if(b[j]=='\\0') break; }
if (a[i]!='\\0') printf(\else printf(\}
实验9 函数的基本应用
一、实验目的
1)掌握定义函数的方法。
2)掌握函数实参与 参的对应关系,以及“值传递”的方式。 3)掌握函数的嵌套调用和递归调用的方法。
4 )掌握全局变量和局部变量、动态变量、静态变量的概念和使用方法。
二、实验内容
[题目1059:函数定义]
下面是使用辗转相除法,求最大公约数的程序,请补充完整程序中函数的定义与调用。
#include \
int f(int m, int n) {
int r;
while ((r=m%n)!=0) { m=n; n=r; }
return n; }
main() {
int a, b, n;
scanf(\printf(\ f(a, b) );
}
[题目1083:编写函数计算阶乘]
下面程序实现由键盘读入整数n,计算并输出n !,请补充完整计算阶乘的函数。
long fanc(int a) { long i,n=1;
for(i=1;i<=a;i++) n=n*i; return n; }
void main() { int n;
scanf(\
printf(\}
[题目1124:函数中的变量] 写出下面程序的运行结果: int f1(int x)
{ static int z=3,y=0; y++; z++;
return(x+y+z); }
main()
{ int a=1,k;
for(k=0;k<3;k++) printf(\}
程序运行结果为: 6 8 10
*[题目1084:编写递归调用函数,实现十进制数转二进制数]
下面程序,实现由键盘输入一个正整数(不大于100000000),输出其对应的二进制数 原码表示)。
请填空:
#include \void fun( int i ) { if (i>1) fun(i/2) ;
printf(\}
main() { int n;
scanf(\fun(n) ; }
实验10 指针与结构体
一、实验目的
1)通过实验进一步掌握指针的概念,会定义和使用指针变量。 2)能正确使用数组的指针和指向数组的指针变量。 3)能正确使用字符串的指针和指向字符中的指针变量。 4 )掌握结构体类型变量的定义和使用。
二、实验内容
[题目1091:交换两数,由大到小输出]
下面程序,交换两数,使两数由大到小输出,请填空 #include \
void swap( int *p1, int *p2 ) { int temp; temp=*p1; *p1=*p2; *p2=temp; }
int main()
{ int a,b; int *pa,*pb; scanf(\pa=&a; pb=&b;
if(a
[题目1065:数组中的指针] 设有如下数组定义:
int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};
计算下面各项的值 设数组a 的首地址为2000,一个int 类型数占四个字节)。注意:地址则输出地址,
变量则输出变量值;要求一行一个答案,不允许多余空行及空格。
1)a[2][1] 2)a[1] 3)a 4 )a+1
5)*a+1 6)*(a+1) 7)a[2]+1 8)*(a+1)+1 9)*(*(a+2)+2 )
参考程序:
#include \main()
{ printf(\printf(\printf(\printf(\printf(\printf(\printf(\printf(\printf(\}
[题目1092:函数实现求字符串长度]
下面程序以指针方式传递参数,由函数实现求字符串长度,请填空完成 #include \#include \int f(char *p)
{ return strlen(p); }
int main()
{ char s[80]; int i;
scanf(\i=f(s);
printf(\}
[题目1125:定义结构体类型]
要求定义一个名为student 的结构体类型,其包含如下成员: 1)字符数组name,最多可存放10 个字符; 2)字符变量sex,用于记录性别;
3)整数类型变量num,用于记录学号; 4 )float 类型变量score,用于记录成绩; 并使下列代码完整。 /*定义结构体类型*/ struct student
{ char name[20]; char sex; int num;