本文主要是介绍指针大礼包5,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
三、程序改错 共10题 (共计100分)
第1题 (10.0分) 题号:72 难度:中 第8章
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------
题目:下列给定程序中,函数fun实现的功能是:统计一个无符号整数中各位数字值
为0的个数,通过形参传回主函数,并把该整数中各位上最大的数字值作为函
数值返回。
例如:若输入无符号整数30800,则数字值为0的位的个数为3,各位上数字值最大的是8。
-------------------------------------------------------*/
#include <stdio.h>
int fun(unsigned n,int *zero)
{
int count=0,max=0,t;
do
{
t=n%10;
/***********FOUND***********/
if(t=0)
count++;
if(max<t)
max=t;
n=n/10;
}
while(n);
/***********FOUND***********/
zero=count;
return max;
}
main()
{
unsigned n;
int zero,max;
printf("\nInput n(unsigned): ");
scanf("%d",&n);
max=fun(n,&zero);
printf("\nThe result: max=%d\n zero=%d\n",max,zero);
}
第2题 (10.0分) 题号:79 难度:中 第8章
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------
题目:下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改
成大写,然后输出此文本行(这里"单词"是指由空格隔开的字符串)。
例如:若输入"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>
#include <string.h>
/***********FOUND***********/
void upfst(char p)
{
int k=0;
for ( ;*p;p++)
if (k)
{
if (*p==' ')
k=0;
}
else
{
if (*p!=' ')
{
k=1;
*p=toupper(*p);
}
}
}
void main()
{
char chrstr[81];
system("CLS");
printf("\nPlease enter an English text line: ");
gets(chrstr);
printf("\nBofore changing:\n %s",chrstr);
upfst(chrstr);
printf("\nAfter changing:\n %s\n",chrstr);
}
第3题 (10.0分) 题号:53 难度:中 第8章
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------
题目:下列给定程序中函数fun的功能是:求出s所指字符串中最后一次出现的t所指
字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;
若未找到,则函数值为NULL。
例如:当字符串中的内容为"abcdabfabcdx",t中内容为"ab"时,输出结果应是"abcdx"。
当字符串中的内容为"abcdabfabcdx",t中内容为"abd"时,则程序输出未找
到信息"not be found!"。
-------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
char * fun (char *s, char *t )
{
char *p , *r, *a;
/***********FOUND***********/
a == Null;
while ( *s )
{
p = s;
r = t;
while ( *r )
/***********FOUND***********/
if ( r == p )
{
r++;
p++;
}
else break;
if ( *r == '\0' )
a = s;
s++;
}
return a ;
}
main()
{
char s[100], t[100], *p;
printf("\nPlease enter string S :");
scanf("%s", s );
printf("\nPlease enter substring t :");
scanf("%s", t );
p = fun( s, t );
if ( p )
printf("\nThe result is : %s\n", p);
else
printf("\nNot found !\n" );
}
第4题 (10.0分) 题号:24 难度:中 第8章
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------
题目:下列给定程序中函数fun的功能是:从N个字符串中找出最长的串,并将其地址作
为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。
-------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
#define N 5
#define M 81
/***********FOUND***********/
fun(char (*sq)[M])
{
int i; char *sp;
sp=sq[0];
for(i=0;i<N;i++)
if(strlen( sp)<strlen(sq[i]))
sp=sq[i] ;
/***********FOUND***********/
return sq;
}
main()
{
char str[N][M], *longest; int i;
printf("Enter %d lines :\n",N);
for(i=0; i<N; i++)
gets(str[i]);
printf("\nThe %d string :\n",N);
for(i=0; i<N; i++)
puts(str[i]);
longest=fun(str);
printf("\nThe longest string :\n");
puts(longest);
}
第5题 (10.0分) 题号:55 难度:中 第8章
/*-------------------------------------------------------
【程序改错】
---------------------------------------------------------
题目:下列给定程序中函数fun的功能是:从p所指字符串中找出ASCII码值最大的
字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。
例如:调用fun函数之前给字符串输入"ABCDeFGH",调用后字符串中的内容应为"eABCDFGH"。
-------------------------------------------------------*/
#include <stdio.h>
void fun( char *p )
{
char max,*q; int i=0;
max=p[i];
while( p[i]!=0 )
{
if( max<p[i] )
{
max=p[i];
/***********FOUND***********/
q=p+i
}
i++;
}
/***********FOUND***********/
while(q<p )
{
*q=*(q-1);
q--;
}
p[0]=max;
}
main()
{
char str[80];
printf("Enter a string: ");
gets(str);
printf("\nThe original string: ");
puts(str);
fun(str);
printf("\nThe string after moving: ");
puts(str); printf("\n\n");
}
这篇关于指针大礼包5的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!