函数String(n,"strsdfsdfsdf")的功能是()
第1题:
请编写函数fun(),该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间有若干个空格隔开,一行的开始没有空格。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include<string. h>
include<stdio, h>
define N 80
int fun (char *s)
{
}
main ( )
{
char line [N];
int num=0;
printf ("Enter a string: \n ");
gets (line);
num=fun (line);
printf ("The number of word is: %d\n\n ",
num);
}
第2题:
函数Rdata()实现从文件IN.dat中读取一篇英文文章存入字符串数组string中,请编写函数SortCharA(),其功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字爷串数组string中。最后调用函数Wdata(),把结果string输出到OUT.dat文件中。
例如,原文:dAe, BfC.
CcbbAA
结果:,. ABCdef
AACbbc
原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。
注意:部分源程序已经给出。请勿改动主函数main()、读数据函数Rdata()和输出数据函数Wdata()的内容。
include <stdio.h>
include <string.h>
include <conio.h>
char string [50] [80];
int maxline = 0; /* 文章的总行数 */
int Rdata (void);
void Wdata (void);
void SortCharA(void)
{
}
void main ()
{ if (Rdata ())
{ printf("数据文件 IN. dat 不能打开! \n\007");
return;
}
SortCharA ();
Wdata ( );
}
int Rdata (void)
{ FILE *fp;
int i = 0;
char *p;
if ((fp = fopen("IN. dat", "r")) == NULL)
return 1;
while (fgets(string[i], 80, fp) != NULL)
{ p = strchr(string[i], '\n');
if (p)
*p = 0;
i++;
}
maxline = i;
fclose (fp);
return 0;
}
void Wdata (void)
{ FILE *fp;
int i;
fp = fopen("OUT. dat", "w");
for (i=0; i<maxline; i++)
{ printf("%s\n", string[i]);
fprintf(fp, "%s\n", string[i]);
}
fclose (fp);
}
第3题:
●试题三
请补充函数fun(),该函数的功能是:只保留字符串中的大写字母,删除其他字符,结果仍保存在原来的字符串中,由全局变量m对删除后字符串的长度进行保存。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<conio.h>
int m;
void fun(char *s)
{
int i=0,j=0;
char *p=s;
while(*(p+i))
{
if(*(p+i)>=′A′&&*(p+i)<=′Z′)
{
(1) ;
}
(2) ;
}
s[j]=′\0′;
(3) ;
}
main()
{
char str[80];
clrscr();
printf("\nEnter a string:");
gets(str);
printf("\n\nThe string is:\%s\n",str);
fun(str);
printf("\n\nThe string of changing
is:\%s\n",str);
printf("\n\nThe length of changed string
is:\%d\n",m);
}
●试题三
【答案】(1)s[j++]=*(p+i)(2)i++(3)m=j
【解析】填空1:将大写字母存于原字符串中,数组下标j自加1,为下一次存放做准备。填空2:为了判断字符串中的下一个字符是否为大写字母,变量i自加1。填空3:最后将大写字母的个数,即删除后字符串的长度赋给全局变量m。
第4题:
请补充main函数,该函数的功能是:从键盘输入一组字符串,以‘*’结束输入,并显示出这个字符串。
例如,输入abcdefghi*,结果显示adcdefghi。
注意:部分源程序给出如下.
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio. h>
define N 80
main ()
{
iht i=-l, j=0;
char str IN];
clrscr ();
printf("\n Input a string \n");
do
{
i++;
scanf(【 】);
}while(【 】);
printf ("\n**display the string** \n");
while (j<i)
{
printf (【 】);
j++;
}
}
第5题:
请编写函数fun(),该函数的功能是:移动字符串中的内容,移动的规则是把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。
例如,字符串中原有的内容为ABCDEFGHIJK,m的值为 3,移动后,字符串中的内容应该是DEFGHIJKABC。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include <stdio. h>
include <string.h>
define N 80
void fun (char *w, int m)
{
}
main ( )
{
char a[N]= "ABCDEFGHIJK";
int m;
printf ("The origina string : \n");
puts (a);
printf("\n\nEnter m: ");
scanf ("%d", &m);
fun (a, m);
printf (" \nThe string after moving : \n");
puts (a);
printf ("\n\n");
}
第6题:
请补充main函数,该函数的功能是:把字符串str中的字符向前移动一位,原来的第一个字符移动到字符串尾,结果仍然保存在原字符串中。
例如,输入“how do you do?”,则结果输出“ow do you do?h”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。
试题程序:
include <stdio. h>
define N 80
main()
{
char str[N], ch;
int i;
clrscr ();
printf("\n Input a string:In");
gets (str);
printf("\n*** original string ***In");
puts (str);
ch=str [0];
for (i=0;【 】; i++)
str [i]=str [i+1];
【 】;
printf("\n *** new string ***\n");
puts (str);
}
第7题:
请补充函数fun(),该函数的功能是:返回字符数组中指定子符的个数,指定字符从键盘输入。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include <stdio.h>
define N 80
int fun (char s[],char ch)
{
int i=0, n=0;
while(【 】)
{
if(【 】)
n++;
i++;
}
【 】;
}
main ( )
{
int n;
char str[N], ch;
clrscr ();
printf ("\nInput a string: \n");
gets (str);
printf ("\nInput a charactor: \n" ;
scanf ("%c", &ch);
n=fun (str, ch);
printf("\nnumber of %c:%d", ch, n);
}
第8题:
请补充函数fun(),该函数的功能是:依次取出字符串中所有的小写字母以形成新的字符串,并取代原字符串。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<stdio.h>
include<conio.h>
void fun(char *s)
{
int i=0;
char *p=s;
while(【 】)
{
if (*p>='a'&&*p<='z')
{
s[i]=*p;
【 】;
}
p++;
}
s[i]=【 】;
}
main()
{
char str[80];
clrscr();
printf("\nEnter a string:");
gets(str);
printf("\n\nThe string is:\%s\n",str);
fun(str);
printf("\n\nThe string of changing
is:\%s\n",str);
}
第9题:
请补充函数fun(),该函数的功能是:把字符串str中的字符按字符的ASCⅡ码降序排列,处理后的字符串仍然保存在原串中,字符串及其长度作为函数参数传入。
例如,如果输入“cdefgh”,则输出为“hgfedc”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include <stdio.h>
define N 80
void fun (char s [], int n)
{
int i, j;
char ch;
for (i=0; i<n; i++)
for(j=【 】;j<n;j++)
if (s[i]<s [j])
{
ch=s [j];
【 】;
s [i] =ch;
}
main ( )
{
int i=0, strlen=0;
char str [N];
clrscr ();
printf ("\nInput a string: \n");
gets (str);
while (str [i] !=' \0')
{
strlen++;
i++;
}
fun (str, strlen);
printf ("\n***display string ***\n");
puts (str);
}
第10题:
下列给定程序中,函数fun()的功能是:从N个字符串中找出最长的那个中,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <string.h>
include <stdio.h>
define N 5
define M 81
/*************found**************/
fun(char (*sq) [N])
{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);
}