指针大礼包3

2024-01-03 18:35:26

二、程序填空 ??共10题 (共计100分)

第1题 (10.0分) ???????题号:91 ???????难度:难 ???????第8章

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为

??????函数值返回。为便于统计,规定各单词之间用空格隔开。

例如:形参s所指的字符串为:This is a C language program.,函数的返回值为6。

-------------------------------------------------------*/

#include ?<stdio.h>

int fun(char ?*s)

{

????????int ?n=0, flag=0;

????????while(*s!='\0')

????????{

????????????????if(*s!=' ' && flag==0)

????????????????{

/***********SPACE***********/

????????????????????????【?】 ;

????????????????????????flag=1;

????????????????}

????????????????if (*s==' ') ?

/***********SPACE***********/

????????????????????????flag= 【?】 ;

/***********SPACE***********/

????????????????【?】 ;

????????}

????????return ?n;

}

main()

{

????????char ?str[81]; ??

????????int ?n;

????????printf("\nEnter a line text:\n");

????????gets(str);

????????n=fun(str);

????????printf("\nThere are %d words in this text.\n\n",n);

}

第2题 (10.0分) ???????题号:21 ???????难度:难 ???????第8章

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:下列给定程序中,函数fun的功能是:有N×N矩阵,将矩阵的外围元素做顺时针旋转。

??????操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最

??????后一行成为第一列,最后一列成为最后一行,再使临时数组中的元素成为最后一列。

例如:若N=3,有下列矩阵:

??????????????????????????1  2  3

??????????????????????????4  5  6

??????????????????????????7  8  9

??????操作后应为:

??????????????????????????7  4  1

??????????????????????????8  5  2

??????????????????????????9  6  3

-------------------------------------------------------*/

#include ???<stdio.h>

#define ???N ???4

void fun(int ?(*t)[N])

{ ?

????????int ?j ,r[N];

????????for(j=0; j<N; j++) ?

????????????????r[j]=t[0][j];

????????for(j=0; j<N; j++)

/***********SPACE***********/

????????????????t[0][N-j-1]=【?】;

????????for(j=0; j<N; j++)

????????????????t[j][0]=t[N-1][j];

/***********SPACE***********/

????????for(j=N-1; j>=0;【?】 )

????????????????t[N-1][N-1-j]=t[j][N-1];

????????for(j=N-1; j>=0; j--)

/***********SPACE***********/

????????????????t[j][N-1]=【?】;

}

main()

{ ?

????????int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;

????????printf("\nThe original array:\n");

????????for(i=0; i<N; i++)

????????{ ?

????????????????for(j=0; j<N; j++) ?

????????????????????????printf("%2d ?",t[i][j]);

????????????????printf("\n");

????????}

????????fun(t);

????????printf("\nThe result is:\n");

????????for(i=0; i<N; i++)

????????{ ?

????????????????for(j=0; j<N; j++)

????????????????????????printf("%2d ?",t[i][j]);

????????????????printf("\n");

????????}

}

第3题 (10.0分) ???????题号:87 ???????难度:难 ???????第8章

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:给定程序中,函数fun的功能是:将a所指3×5矩阵中第k列的元素左移到第0列,

??????第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。

例如:有下列矩阵:1  2  3  4  5

??????????????????1  2  3  4  5

??????????????????1  2  3  4  5

若k为2,程序执行结果为3  4  5  1  2

??????????????????????3  4  5  1  2

??????????????????????3  4  5  1  2

-------------------------------------------------------*/

#include ?<stdio.h>

#define ??M ??3

#define ??N ??5

void fun(int ?(*a)[N],int ?k)

{

????????int ?i,j,p,temp;

/***********SPACE***********/

????????for(p=1; p<= 【?】; p++)

????????????????for(i=0; i<M; i++)

????????????????{ ?

????????????????????????temp=a[i][0];

/***********SPACE***********/

????????????????????????for(j=0; j< 【?】; j++)

????????????????????????????????a[i][j]=a[i][j+1];

/***********SPACE***********/

????????????????????????a[i][N-1]= 【?】;

????????????????}

}

main( )

{

????????int ?x[M][N]={ {1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5} },i,j;

????????printf("The array before moving:\n\n");

????????for(i=0; i<M; i++)

????????{ ?

????????????????for(j=0; j<N; j++)

????????????????????????printf("%3d",x[i][j]);

????????????????printf("\n");

????????}

????????fun(x,2);

????????printf("The array after moving:\n\n");

????????for(i=0; i<M; i++)

????????{

????????????????for(j=0; j<N; j++)

????????????????????????printf("%3d",x[i][j]);

????????????????printf("\n");

????????}

}

第4题 (10.0分) ???????题号:93 ???????难度:难 ???????第8章

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数

??????值,计算出这些数值的累加和作为函数值返回。

例如,形参s所指的字符串为abs5def126jkm8,程序执行后的输出结果为22。

-------------------------------------------------------*/

#include ?<stdio.h>

#include ?<string.h>

#include ?<ctype.h>

int fun(char ?*s)

{

????????int ?sum=0;

????????while(*s)

????????{

????????????????if( isdigit(*s) )

/***********SPACE***********/

????????????????????????sum+= *s- 【?】 ;

/***********SPACE***********/

????????????????【?】;

????????}

/***********SPACE***********/

????????return ?【?】;

}

main()

{

????????char ?s[81]; ?

????????int ?n;

????????printf("\nEnter a string:\n\n");

????????gets(s);

????????n=fun(s);

????????printf("\nThe result is: ?%d\n\n",n);

}

第5题 (10.0分) ???????题号:40 ???????难度:难 ???????第8章

/*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

题目:下列给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,

??????并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理。

例如:若s所指字符串为"baacda",c中的字符为a,执行后s所指字符串为"baaaacdaa"。

-------------------------------------------------------*/

#include ???<stdio.h>

void fun(char ?*s, char ?c)

{ ?

????????int ?i, j, n;

/***********SPACE***********/

????????for(i=0; s[i]!=【?】 ; i++)

????????????????if(s[i]==c)

????????????????{

/***********SPACE***********/

????????????????????????n=【?】 ;

????????????????????????while(s[i+1+n]!='\0')

????????????????????????????????n++;

????????????????????????for(j=i+n+1; j>i; j--)

????????????????????????????????s[j+1]=s[j];

/***********SPACE***********/

????????????????????????????????s[j+1]=【?】;

????????????????????????i=i+1;

????????????????}

}

main()

{ ?

????????char ?s[80]="baacda", c;

????????printf("\nThe string: ?%s\n",s);

????????printf("\nInput a character: ?");

????????scanf("%c",&c);

????????fun(s,c);

????????printf("\nThe result is: ?%s\n",s);

}

文章来源:https://blog.csdn.net/2301_78235522/article/details/135316540
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。