指针大礼包6

发布时间:2024年01月06日

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

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

【程序改错】

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

题目:下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构

??????成一个新数放在t中。高位仍在高位,低位仍在低位。

例如:当s中的数为87653142时,t中的数为7531。

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

#include <stdio.h>

void fun (long ?s, long *t)

{

????????int ??d;

????????long ?sl=1;

/***********FOUND***********/

????????t = 0;

????????while ( s > 0)

????????{

????????????????d = s%10;

/***********FOUND***********/

????????????????if (d%2 == 0)

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

????????????????????????*t = d * sl + *t;

????????????????????????sl *= 10;

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

????????????????s /= 10;

????????}

}

main()

{ ?

????????long s, t;

????????printf("\nPlease enter s:");

????????scanf("%ld", &s);

????????fun(s, &t);

????????printf("The result is: %ld\n", t);

}

第7题 (10.0分) ???????题号:60 ???????难度:中 ???????第8章

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

【程序改错】

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

题目:下列给定程序中,函数fun的功能是:实现两个整数的交换。

例如:给a和b分别输入60和65,输出为:a=65 b=60。

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

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

/***********FOUND***********/

void fun(int a,b)

{

????????int t;

/***********FOUND***********/

????????t=b;b=a;a=t;

}

void main()

{

????????int a,b;

????????system("CLS");

????????printf("Enter a, b: ");

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

????????fun(&a, &b);

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

}

第8题 (10.0分) ???????题号:17 ???????难度:中 ???????第8章

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

【程序改错】

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

题目:下列给定程序中函数fun的功能是:将长整型数中各位上为偶数的数依次取出,构

??????成一个新数放在t中。高位仍在高位,低位仍在低位。

例如:当s中的数为87653142时,t中的数:8642。

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

#include <stdio.h>

void fun (long ?s, long *t)

{

????????int ??d;

????????long ?sl=1;

????????*t = 0;

????????while ( s > 0)

????????{

????????????????d = s%10;

/***********FOUND***********/

????????????????if (d%2=0)

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

????????????????????????*t=d* sl+ *t;

????????????????????????sl *= 10;

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

/***********FOUND***********/

????????????????s \= 10;

????????}

}

main()

{ ?

????????long ??s, t;

????????printf("\nPlease enter s:");

????????scanf("%ld", &s);

????????fun(s, &t);

????????printf("The result is: %ld\n", t);

}

第9题 (10.0分) ???????题号:61 ???????难度:中 ???????第8章

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

【程序改错】

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

题目:下列给定程序中,函数fun的功能是:求出数组中的最大数和次最大数,并把最

??????大数和a[0]中的数对调、次最大数和 a[1] 中的数对调。

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

#include ??<conio.h>

#include ??<stdio.h>

#define ???N ??20

/***********FOUND***********/

void fun(int a,int n);

{

????????int ?i, ?m, t, k;

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

????????{

/***********FOUND***********/

????????????????m=0;

????????????????for(k=i+1; k<n; k++)

????????????????????????if(a[k]>a[m])

????????????????????????????????m=k;

????????????????????????t=a[i];

????????????????????????a[i]=a[m];

????????????????????????a[m]=t;

????????}

}

main()

{

????????int b[N]={11,5,12,0,3,6,9,7,10,8},n=10,i;

????????system("CLS");

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

????????????????printf("%d ",b[i]);

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

????????fun(b,n);

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

????????????????printf("%d ", b[i]);

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

}

第10题 (10.0分) ???????题号:64 ???????难度:中 ???????第8章

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

【程序改错】

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

题目:下列给定的程序中,fun函数的功能是:将p所指的字符串中每个单词的最后一个字

??????母改成大写(这里的"单词"是指有空格隔开的字符串)。

例如:若输入:"I am a student to take the examination",

??????则应输出:"I aM A studenT tO takE thE examinatioN"。

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

#include ?<stdlib.h>

#include ?<string.h>

#include ?<conio.h>

#include ?<ctype.h>

#include ?<stdio.h>

void fun(char *p)

{

????????int k=0;

????????for ( ;*p;p++)

????????????????if (k)

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

????????/***********FOUND***********/

????????????????????????if (p==' ') ?

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

????????????????????????????????k=0;

????????????????????????/***********FOUND***********/

????????????????????????????????*p=toupper( *(p-1));

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

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

????????????????else

????????????????????????k=1;

}

void main()

{

????????char ?chrstr[64];

????????int d;

????????system("CLS"); ???

????????printf("\nPlease enter an English sentence within 63 letters: ");

????????gets(chrstr);

????????d=strlen(chrstr); ???

????????chrstr[d]=' ';

????????chrstr[d+1]=0;

????????printf("\nBofore changing:\n ?%s",chrstr);

????????fun(chrstr);

????????printf("\nAfter changing:\n ?%s",chrstr);

}

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