编程题:
6.请编写一个函数void fun(char a[],char b[],int n),其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。
例如,输入一个字符串World,然后输入3,则调用该函数后的结果为Word。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
# include <stdio.h>
# include <conio.h>
# define LEN 20
void fun(char a[], char b[], int n)
{
}
main()
{
char str1[LEN],str2[LEN];
int n;
clrscr() ;
printf(“Enter the string:n”);
gets(str1);
printf(“Enter the position of the string deleted:”);
scanf(“%d”,&n);
fun(str1, str2, n);
printf(“The new string is:%sn”,str2);;
}
31.请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为ABCDEFG123456,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是246。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include <conio.h>
#include <stdio.h>
#include <string.h>
void fun(char *s, char t[])
{
}
main()
{
char s[100], t[100];
clrscr();
printf(“nPlease enter string S:”);
scanf(“%s”, s);
fun(s, t);
printf(“nThe result is : %sn”, t);
}
改错题:
63.下列给定程序中,函数fun的功能是:将字符串p中的所有字符复制到字符串b中,
要求每复制三个字符之后插入一个空格。例如,在调用fun函数之前给字符串a输入
ABCDEFGHIJK,调用函数之后,字符串b中的内容则为ABC DEF GHI JK。
请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
void fun(char *p, char *b)
{
int i, k=0;
while(*p)
{
/********found********/
i=1;
/********found********/
while( i<3||*p )
{
b[k]=*p;
k++;
p++;
i++;
}
/********found********/
if(*p)
{
b[k]=’ ‘ ;
}
}
b[k]=’’;
}
main()
{
char a[80],b[80];
printf(“Enter a string: “);
gets(a);
printf(“The original string: “);
puts(a);
fun(a,b);
printf(“nThe string after insert space: “);
puts(b);
printf(“nn”);
}
69.下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成
大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如,若输入I am a student to take the examination,则应输出I Am A Student To Take The Examination。
请改正程序中的错误,使程序能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include <ctype.h>
#include <string.h>
#include <stdio.h>
/********found********/
upfst ( char p )
{
int k=0;
for ( ; *p; p++ )
if ( k )
{
if ( *p==’ ‘ )
k=0;
}
else
if ( *p!=’ ‘ )
{
k=1;
*p = toupper( *p );
}
}
main( )
{
char chrstr[81];
clrscr();
printf(“nPlease enter an English text line: ” );
gets( chrstr );
printf(“nnBefore changing:n %s”, chrstr );
upfst( chrstr );
printf(“nAfter changing:n %sn”, chrstr );
}