假定输入的字符串中只包含字母和*号。请编写函数proc(),它的功能是:除了尾部的*号之外,将字符串中
假定输入的字符串中只包含字母和*号。请编写函数 fun(),它的功能是:使字符串中前部的*号不得多余n个;若多余n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。
例如,字符串中的内容为****A*BC*DEF*G*******,若 n的值为2,删除后,字符串中的内容则应当是 **A*BC*DEF*G*******;若n的值为4,则字符串中的内容仍为****A*BC*DEF*G******。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。
试题程序:
include <stdio.h>
include <conio.h>
void fun (char Aa, int n)
{
}
main ()
{ char s[81];int n;
printf ("Enter a string : \n") ;gets (s);
printf ("Enter n : "); scanf ("%d", &n);
fun(s,n );
printf("The string after deleted :\n");
puts (s);
}
请编写一个函数void fun(char*ss),其功能是:将字符串 ss中所有下标为偶数位置上的字母转化为大写(若该位置上不是字母,则不转换)。
例如,若输入abc4Efg,则应输出AbC4EfG。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include<conio. h>
include<stdio. h>
void fun (char *ss)
{
}
main ()
{
char tt[51];
clrscr ();
printf("Please enter an character string
within 50 characters:\n");
gets (tt);
printf ("\n\nAfter changing, the string\n
%s", tt);
fun (tt);
printf("\nbecomes\n \%s",tt);
}
#include <stdio.h>
#include <ctype.h>
main()
{ int num[26]={0},i; char c;
while((_[16]_______ )!='#')
if(isupper(c)) num[c- ' A ' ]+= _[17]_______ ;
for(i=0;i<26;i++)
Printf("%c:%d\n",i+'A',num[i]);
}
A.1200H
B.12FCH
C.38D8H
D.88F9H
阅读以下说明Visual Basic代码,回答问题1~2,将解答填入对应的栏内。
[说明]
本程序实现的功能是判断指定的文本文件中是否包含指定的字符串,并且如果包含则返回其第一次出现的位置(行号、列号)。程序运行界面如下图所示,用户只要通过驱动器列表框、目录列表框选定文件夹,文件列表框会自动列出该文件夹下所有文本文件名称,选中其中某个文件,再输入目标字符串并且单击“查找”按钮,就能看到查找的结果。
在开发过程中,驱动器列表框名为Drive1,目录列表框名为Dirl,文件列表框名为File1,目标字符串输入框名为Text1,“查找”按钮名为Command1。
[Visual Basic 代码]
Private Sub Drivel_Change()
Dirl. Path=(1) '更新目录列表框的路径
End Sub
Private Sub Dirl_Change()
(2)= Dirl. Path '更新文件列表框的路径 End Sub
Private Sub Commandl_Click()
Dim fso, a As Object
Dim i, j As Integer
If (3) = "" Then '判断是否已经选中某个文件
MsgBox "请选择一个文件文件!"
(4) '退出事件过程
End If
'创建文件系统对象以及文本流对象
Set fso = CreateOhjecl("Scripting. FileSystemOhject" )
Set a = fso. OpenTextFile(Dirl. Path & "/" &(3))
i=1
Do While (5)<> True '逐行读取文件,直至文件末尾
strLine = a. ReadLine
j = InStr(1,(6))'返回目标字符串在文件这一行中的位置
If j > 0 Then '如果目标字符串在这一行出现,则返回其位置
MsgBox "字符串第一次出现的位置是" & "(" & i & "," &j & "),,"
(4) '退出事件过程
End If
i:i+l
Loop
MsgBox "字符串在文件中不出现,"
End Sub
●试题四
请补充函数fun(),该函数可以统计一个长度为n的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:asd ascasdfg asd as asd mlosd,子字符串为asd,则应输出4。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
int fun(char *str,char *substr)
{
int n;
char *p,*r;
(1) ;
while(*str)
{
p=str;
r=substr;
while(*r)
if((2) )
{
r++;
p++;
}
else
break;
if((3) )
n++;
str++;
}
return n;
}
main()
{
char str[81],substr[3];
int n;
clrscr();
printf("输入主字符串:");
gets(str);
printf("输入子字符串:");
gets(substr);
puts(str);
puts(substr);
n=fun(str,substr);
printf("n=%d\n",n);
}
请补充函数fun(),该函数的功能是:从‘a’到‘z’统计一个字符串中所有字母字符各自出现的次数,结果保存在数组aIf中。注意:不区分大小写,不能使用字符串库函数。
例如,输入: “A=abc+5*c”,结果为:a=2, b=l,c=2。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数run的横线上填入所编写的若干表达式或语句。
试题程序:
include<conio.h>
include<stdio.h>
define N 100
void fun(char *tt,int alf[])
{
int i
char *p=tt;
for(i=0;i<26;i++)
【 】;
while(*p)
{
if(*p>='A'&&*p<='z')
【 】;
if(*p>='a'&&*p<='Z')
alf[*p-'a']++;
【 】;
}
}
main()
{
char str[N];
char a='a';
int alf[26],k;
clrscr();
printf("\nPlease enter a char string:");
scanf("%S",str);
printf("\n**The original string**\n");
puts(str);
fun(str,alf);
printf("\n**The number of letter**\n");
for(k:0;k<26;k++)
{
if(k%5==0)
printf(“\n”);
printf(“%c=%d”,a+k,alf[k]);
}
printf(“\n”);
}
VB中有3个键盘事件:KeyPress、KeyDown、KeyUp,若光标在Text1文本框中,则每输入一个字母()。
A.这3个事件都会触发
B.只触发KeyPress事件
C.只触发KeyDown、KeyUp事件
D.不触发其中任何一个事件