假定有以下函数过程:Function Fun(S As String)As StringDim Sl AS StringFor i=1 TO Len(S)sl=U

题目

假定有以下函数过程:Function Fun(S As String)As StringDim Sl AS StringFor i=1 TO Len(S)sl=UCase(Mid(S,i,1))+slNext iFun=s1End Function则Str2= Fun("abcdefg")的输出结果为( )。A. abcdefg B.ABCDEFGC.gfedcba D.GFEDCBA

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

输入hello↙,写出下面程序的运行结果。 #include <stdio.h> #include <string.h> int main() { char s[80],t[200]; int i,sl ; gets(s); sl = strlen(s); for(i=0 ;i<sl ;i++) t[i]=s[sl-i-1] ; for (i=0; i<sl; i++) t[sl+i] = s[i]; t[sl+i]='0' ; puts(t); return 0; }


ollehhello

第2题:

若已包括头文件<string.h>且已有定义char sl [18],s2={"ABCDE")和int i,现要将字符串”ABCDE”赋给sl,下列语句错误的是( )。

A.strcpy(s1,s2)

B.strcpy(s1,"ABCDE");

C.sl="ABCDE";

D.for(i=0;i<6;i++)sl[i]=s2[i]


正确答案:C
数组名sl是代表sl数组首地址的地址常量,因为“=”左边不能出现常量,所以s1="ABCDE"的方法是错误的。

第3题:

已知C源程序如下:

/ * longIntAdd * /

include <stdio. h>

include <string. h>

define LENGTH 81

void addLInt(char sl[],char s2[]); void reverse(char s[]) ; int main()

{

char intstrl[LENGTH],intstr2[LENGTH];

printf("请输入超长整数的被加数和加数:\n")

scanf("%s%s" ,intstrl ,intstr2) ; addLInt(intstrl ,intstr2) j printf("超长整数和为: %s" .intstrl); return 0;

}

void addLInt(char sl[] ,char s2[]) {

int i=0,tmp,c=0;

char s[LENGTH];

if(strlen(s1)<strlen(s2)){ strcpy(s,sl); strcpy(sl,s2); strcpy(s2,s);

}

reverse(sl);reverse(s2);

while(s2[i]! ='\0'){

tmp=sl[i]-'0'+s2[i]-'0'+ c;

sl[i] = tmp%10+,0';

c=tmp/10;

i++; } while(sl[i]! ='\0,&&c){

tmp=sl[i] —'0' + c;

sl[i] = tmp%10+'0';

c=tmp/10;

i++; } If(c){

sl[i++] = c+'0';

sl[i] = '\0'; } reverse(sl);

}

void reverse(cliar s[])

{

inti,j,c;

for(i=0,j = strlen(s) -l;i<j;i++,j--){

c=s[i]; s[i] = s[j]; s[j] = c; } }

(1)画出程序中函数addLInt的控制流程图(10分);

(2)设计一组测试用例,使该程序addLInt函数的语句覆盖率和分支覆盖率均能达到100%。如果认为该函数的语句覆盖率或分支覆盖率无法达到100%,需说明为什么(10分)。


正确答案:×
(1)函数addLInt的控制流程图。 C2)测试用例 a.sl:“111111111111111l”s2:“2222222222222222” b. s1:“123456789” s2:“989” c.s1:“989” s2 :“123456789” d.sl :“999999999999” s2 :“111111” 解析:语句覆盖是指设计若干测试用例,运行被测程序,使得每个可执行语句至少执行一次。 语句覆盖率=被评价到的语句数量/可执行的语句数量×100%。 设计若干测试用例,运行被测程序使得每个判定的取真分支和取假分支至少评价一次。 判定覆盖率=被评价到的判定分支个数/判定分支的总数×100%。 当输入a、b、c、d中的测试用例后,语句覆盖率和分支覆盖率均为100%。

第4题:

假定有以下函数过程:

Function Fun(S As String)As String

Dim sl As String

Fori=1 ToLen(S)

sl=Lease(Mid(S,i,1))+s1

Nexti

Fun=s1

End Function

在窗体上画一个命令按钮,然后编写如下事件过程:

Private Sub Commandl Click(、

Dim Str1 As String.Str2 As String

Strl=InputBox(”请输入一个字符串”)

Stf2=Fun(Strl)

Print Str2

End Sub

程序运行后,单击命令按钮,如果在输入对话框中输入字符串“abcdefg”,则单击“确定”按钮后在窗体上的输出结果为

A.ABCDEFG

B.abcdefg

C.GFEDCBA

D.gfedcba


正确答案:D
解析:此题主要考核Mid函数、LCASE函数,MID返回文本字符串中从指定位置开始的特定数目的字符,其格式为:MID(text,start_num,nnm_chars),Text包含要提取字符的文本字符串。Start_num文本中要提取的第一个字符的位置。文本中第一个字符的star_num为1,以此类推。Num—chars指定希望MID从文本中返回字符的个数。LCASE函数则将大写字母转换成小写字母。

第5题:

下列给定程序中函数fun()的功能是;先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。例如:当s中的字符串为ABCDE时,则t中的字符串应为EDCBAABCDE。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <conio.h>

include <stdio.h>

include <string.h>

void fun (char *s, char *t )

{

int i,sl;

sl=strlen(s);

for (i=0;i<sl;i++)

t[i]=s[sl-1];

for (i=0; i<sl; i++)

/*************found**************

t [sl+i]=s [i];

t [2*sl]-'\0';

}

main ( )

{ char s[100], t[100];

clrscr();

printf("\nPlease enter string s: ");

scanf ("%s", s);

fun (s,t);

printf ("The result is: %s\n",t);

}


正确答案:错误: t[i]=s[s1-1]; 正确: t[i]=s[s1-1-i];
错误: t[i]=s[s1-1]; 正确: t[i]=s[s1-1-i]; 解析:该题也是几个循环语句的嵌套使用,难度并不大,重要的足要读懂程序,题目中赋值语句t[i]=s[]s1-1;并不能完成累计循环,所以正确的应该是t[i]=s[s1-1-i];。

第6题:

阅读以下函数 fun(char *sl,char *s2) { int i:0; while(sl[i]==s2[i]&&s2[i]!='\0') i++; return(sl[i]=='\0'&&s2[i]=='\0'); } 此函数的功能是

A.将s2所指字符申赋给s1

B.比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0

C.比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为o

D.比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为o


正确答案:C
解析:在函数fun()中有两个字符型指针变量s1和s1,在函数中程序执行while循环,该循环退出条件有两个:一个是s1[i]!=s2[i](两个字符串不相等);第二个是sl[i]和s2[i]相等均为“\0”(两个字符串相等)。循环退出后,执行return语句,即两个字符串相等则返回1,不相等则返回0。所以,C选项为所选。

第7题:

下列给定程序中函数fun()的功能是:将长整型数中每一位上为偶数的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如当s中的数为25846513时,t中的数为6482。 请改正函数fun()中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <stdio.h>

include <conio.h>

void fun(long S,long *t)

{

int d;

long sl=l,i=1;

*t=0;

while(s/i>0)

i=i*10;

i=i/10;

while(s>0)

{

d=s/i

/*************found*************/

if(d%2!=0)

{

/*************found*************/

t=d*sl+t;

sl*=l0;

}

S=S%i;

i=i/10;

}

}

main()

{

long S,t;

clrscr();

printf("\nPlease enter S:");

scanf("%ld",&s);

fun(S,&t);

printf("The result is:%ld\n",t);

}


正确答案:(1)错误:if(d%2!=0) 正确:if(d%2==0) (2) 错误:t=d*s1+t; 正确:*t=d*s1+*t;
(1)错误:if(d%2!=0) 正确:if(d%2==0) (2) 错误:t=d*s1+t; 正确:*t=d*s1+*t; 解析:错误1:偶数是能被2整除,而奇数是不能被2整除,题目要求找出偶数。错误2:t为指针类型,所以进行运算时要加‘*’号。

第8题:

假定有以下函数过程: Function Fun(S As String) As String Dim sl As String For i=1 To Len(S) s1=UCase (Mid(S,i,1))+s1 Next i Fun=s1 End Function则Str2=Fun("abcdefg”)的输出结果为( )。

A.abcdefg

B.ABCDEFG

C.gfedcba

D.GFEDCBA


正确答案:D

第9题:

阅读以下函数fun(char *sl,char *s2){ int i=0;while(sl[i]==s2[i]&&s2[i]!='\0') i++;return(sl[i]=='\0'&&s2[i]=='\0');}此函数的功能是

A.将s2所指字符串赋给s1

B.比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0

C.比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0

D.比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0


正确答案:C