《C语言程序设计》实验指导书答案 下载本文

while(*p++) i++;

printf(\你输入的字符串长度是:%d\\n\ system(\}

8.//编写一个程序求一个子串在一个字符串中出现的次数,如果该字符不出现则返回0。

#include #include #include

int index(char *s,char *t,int i) {

int j=0;

while((i

if (s[i]==t[j] ) {

++i; ++j; // 相同继续比较后继字符 } else {

i= i-j+1 ; j = 0; } }

if(j>strlen(t)-1)

return i-strlen(t);//匹配成功 else

return 0;// 失败返回0 }

int Count(char *s,char *t) {

int i=0,count=0; do

{ i=index(s,t,i); printf(\ if(i)

{ count++; i+=strlen(t); } }while(i); return count; }

main()

{

char s[20],t[20]; char s_a[20],t_a[20]; int i=0,num=0;

printf(\请输入一个字符串(1至20个):\\n\ gets(s);

printf(\请输入一个子串(1至20个):\\n\ gets(t);

/* for(i=0;i

for(i=0;i

for(i=1;i<=strlen(t);i++) printf(\ printf(\

printf(\ printf(\ system(\}

实验八(第8章实验二)

实验目的:

1. 掌握指向二维数组的指针变量的使用。 2. 掌握指针数组的定义、初始化和引用。 实验内容:

1.输入2行3列的矩阵元素值,存入二维数组;再按行列格式输出。

2.输入一个3×6的二维整数数组,输出其中最大值、最小值及其所在的行列下标。 3.设有3个学生,4门功课,编写2个函数分别实现如下功能:(1)求每个学生的平均分;(2)找出一门以上课程不及格的学生。

4.设计一个函数把两个整数形参中较大的那个数的地址作为函数值返回,并写主函数实现调用。

5.输入5个字符串,从中找出最大的字符串并输出。要求用二维字符数组存放这5个字符串。 实验过程:

实验结果:1.//输入2行3列的矩阵元素值,存入二维数组;再按行列格式输出。 #include #include #define M 2 #define N 3

main() {

int a[M][N]; int i,j;

for(i=0;i

for(j=0;j

printf(\ printf(\ }

system(\}

2. //输入一个3×6的二维整数数组,输出其中最大值、最小值及其所在的行列下标。 #include #include #define M 3 #define N 6

main() {

int a[M][N]; int i,j;

for(i=0;i

int max=-32768; int min=32767;

int maxrow=0,maxcol=0,minrow=0,mincol=0; for(i=0;i

for(j=0;j

if(*(a[i]+j)>max) {

max=*(a[i]+j); maxrow=i; maxcol=j; }

if(*(a[i]+j)

min=*(a[i]+j); minrow=i; mincol=j; } } }

printf(\ printf(\ system(\}

3. //设有3个学生,4门功课,编写2个函数分别实现如下功能: //(1)求每个学生的平均分;(2)找出一门以上课程不及格的学生。 #include #include main() {

void average(float (*p)[4],float aver[3]); int seek( float (*pnt_row)[4] ); int i;

float score[3][4]={{20,67,70,60},{80,87,90,81},{90,99,100,98}}; float aver[3];

average(score,aver); for(i=0;i<3;i++) printf(\ seek(score);

system(\}

void average(float (*p)[4],float *aver) {

int i,j; float sum;

for(i=0;i<3;i++) { sum=0.0;

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

sum=sum+*(*(p+i)+j); aver[i]=sum/4; } }

void seek( float (*p)[4] ) {

int i,j;

float unpass; for(i=0;i<3;i++) for(j=0;j<4;j++)