请编写函数fun(),该函数的功能是:将s所指字符串中 ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为ABCDEFGl2345,其中字符B的ASCⅡ码值为偶数、…、字符2的ASCⅡ码值为偶数、…,都应当删除,其他依次类推。最后t所指的数组中的内容应是ACEGl35。
注定:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序;
include <stdio. h>
include<string.h>
include<conio. 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 :%s\n",t);
}
第1题
例如,输入“abcdef”,输出“ace”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
inc lude< stdio, h>
define N 80
【 】
{
int i, j;
【 】
for (i=0;i<n;i++)
{
if (s [i] %2!=0)
s [j++]=s [i];
}
【 】;
}
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);
}
第2题
#include<stdio.h>
void fun(char t[])
{
char c;
int i,j;
for(i=0;______;i++)/*第一空*/
for(j=i+1;j<=strlen(t);j++)
if(______)/*第二空*/
{
c=t[j];
t[j]=t[i];
t[i]=c;
}
}
main()
{
char s[81];
print f("Please enter a char acter string:\n");
gets(s);
print f("\n\nBefore sorting:\n%s",s);
______;/*第三空*/
print f("\nAfter sorting decreasingly:\n%s\n",s);
}
第3题
以下MyReplace函数的功能是将一个字符串(保存在变量S中)中的子字符串(保存在变量
OldS中)用新的字符串(保存在变量NewS中)代替,编写以下程序:
PublicFunctionMyReplace(s$,OldS$,NewS$)AsString
Dimc%,lenOldS%
lenOldS=Len(OldS)
c=InStr(s,OldS)
DoWhilec>0
s=Left(s,c-1)+NewS+Mid(s,c+lenOldS)
c=InStr(s,olds)
Loop
MyReplace=s
EndFunction
PrivateSubCommand1_Click()
dimold,newasstring
old=inputbox("请输入要替换的字符")
new=inputbox("请输入替换后新的字符")
PrintMyReplace("VisualBasic程序设计教程5.0版",old,new)
EndSub
当程序运行单击命令按钮后先后分别输入" 5.0"和" 6.0",程序的运行结果为( )
A."VisualBasic程序设计教程5.0版"
B."VisualBasic程序设计教程6.0版"
C."VisualBasic程序设计教程6版"
D."VisualBasic程序设计教程"
第4题
A.abederg
B.ABCDEFG
C.gfedcba
D.GFEDCBA
第5题
Function Fun(S As String)As String
Dim s1 As String
For i=1 To Len(S)
s1=LCase(Mid(S, i, 1))+s1
Next i
Fun=s1
End Function
在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Command1_Click( )
Dim Str1 As String, Str2 As String
Str1=InputBox("请输入一个字符串")
Str2=Fun(Str1)
Print Srt2
End Sub
程序运行后,单击命令按钮,如果在输入对话框中输入字符串“abcdefg”,则单击“确定”按钮后在窗体
上的输出结果为( )。
A)ABCDEFG
B)abcdefg
C)GFEDCBA
D)gfedcba
第6题
[说明] 从键盘输入一个字符ch,输出该字符在文本文件input.txt 的每一行中出现的次数。(必须调用函数鳋统计ch的出现次数,函数ff (str,ch)的功能是统计并返回字符ch在字符串str 中出现的次数。)。
例如:如果文件input. txt 中存放了下列数据:
every
121
I am a student
运行程序,并输入e后,输出:
2
0
1
int ff( char * str, char ch)
{ int count =0;
while ((1)) {
if( *str= =ch) count++;
str ++;
}
return count;
}
include < stdio. h >
include < stdlib. h >
void main( )
{ char ch, c, s [80];
int k;
FILE *fp;
if((2)){
printf( “打不开文件!n”); return;
}
ch = getchar( );
k=0;
while( ! feof(fp) ) {
c = fgete(fp);
if (3)
s[k++ ] =c;
else {
s[k]= ";
printf ( "%dn" ,ff(s, ch) );
k=0;
}
}
(4)
printf( "% dn", ff( s, ch ) );
}
第7题
阅读以下说明和c++码,将应填入(n)处的字名写在对应栏内。
[说明] 从键盘输入一个字符ch,输出该字符在文本文件input.txt 的每一行中出现的次数。(必须调用函数鳋统计ch的出现次数,函数ff (str,ch)的功能是统计并返回字符ch在字符串str 中出现的次数。)。
例如:如果文件input. txt 中存放了下列数据:
every
121
I am a student
运行程序,并输入e后,输出:
2
0
1
int ff(char * str, char ch)
{ int count =0;
while ((1)) {
if(*str= =ch) count++;
str ++;
}
return count;
}
include < stdio. h >
include < stdlib. h >
void main()
{ char ch, c, s [80];
int k;
FILE *fp;
if((2)){
printf(“打不开文件!n”); return;
}
ch = getchar();
k=0;
while(! feof(fp) ) {
c = fgete(fp);
if (3)
s[k++ ] =c;
else {
s[k]= ";
printf ("%dn" ,ff(s, ch) );
k=0;
}
}
(4)
printf("% dn", ff(s, ch ) );
}
第8题
[说明]
下面程序用来将打乱的单词还原为原来的次序,比如将rty还原为try。单词的原来次序存储于wordlist.txt文件中,原则上可用穷举法(rty对应的穷举为:rty、ryt、try、tyr、ytr、yrt),但考虑到破译速度,采用如下方法。
注意到单词列表中不存在组成字符完全相同的单词(如Hack12与Hack21包含完全相同的字符),因此将单词中的字符进行重组再进行比较,例如,try单词重组为rty(按ASCⅡ码顺序),这样不管打乱的单词是什么顺序,只要是由r、t、y三个字母组成的均破译为try,大大提高破译速度。程序中借助二叉排序树以进一步提高查找效率,二叉排序树左子树(如果有)上的节点对应的值均小于根节点的值,右子树(如果有)上的节点对应的值均大于根节点的值。
函数中使用的符号定义如下:
#define NumberofWords 1275//单词总数
#define MaxLength 10//最长单词所含字符数
char WordList[NumberofWords][MaxLength];//存储单词列表
int cmp(Node *q,Node *p);//q与p比较。p小,返回负值;P大返回正值:相等,返回0
typedef struct Node(//二叉树节点
char *eleLetters;//重组后的字符串
int index;//对应单词表中的下标
struct Node *lChiId,*rChiid;//左右子节点
}Node;
[C代码]
void reCompose(Node *p,char *temp)
//重纰,亦即将temp字符串中的字符升序排序,存储于p节点中
//采用直接插入排序法
{
char c;
strcpy(p->eleLetters,temp);//
int len=strlen(temp);
int i,j,k;
for(i=0;i<len-1;i++){
k=i;
for(j=i+1;j<lan;j++){
if(p->eleLetters[j]<P->eleLetters[k])k=J;
}
if( (1) ){
C=P->eleLetters[i];
P->eleLetters[i]=P->eleLetters[k];
P->eleLetters[k]=c;
}//if
}//for
};
int find(Node &root,char *temp)
//在二叉排序树root中查找与temp匹配的单词。
//若匹配返回相应单词在WordList中下标;若查找失败,返回-1
{
Node *P,*q;
int flag;
P=(2);//临时存储
reCompose(p,temp);//将temp重组
q=&root;
while((flag=(3))&&q !=NULL){
if(flag<0){//搜索左子树
q=q->lChiid;
}else(//搜索右子树
q=q->rChild;
}
}//while
if(flag==0){//找到匹配的,保存下标
return (4);
}
}
if( (5) ){//查找失败
printf("cant unscramble the following word:%s",temp);;
return -1;
}
};
(1)
第9题
A、cvalue = 10 - cvalue
B、cvalue = cvalue - 10
C、c = cvalue - 10
D、c = 10 - cvalue
E、cvalue = 10 + cvalue
F、c = 10 + cvalue
第10题
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!