A.strcpy(s3,"string1");
B.strcpy(s1,"string2");
C.strcpy(s2,s4);
D.strcpy(s2,s1);
第1题
例如,分别输入下面两个字符串:
FirstString
SecondString
则程序输出:
FirstStringSecondString
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号小填入所编写的若干语句。
试题程序:
include <stdio. h>
include<conio. h>
void fun (char pi[],char p2[])
{
}
main ( )
{
char s1[80],s2[40];
clrscr ();
printf("Enter s1 and s2:\n");
scanf ("%s%s", s1, s2);
printf ("s1=%s\n", s1);
printf("s2=%s\n",s2);
printf("Invoke fun(s1,s2) :\n");
fun(s1,s2);
printf("After invoking:\n");
printf ("%s\n", s1);
}
第2题
include<iostream.h>
include<string.h>
template<class T>
T min(T a,T b)
{
return(a<b? a:b);
}
char*rain(char*a,char*b)
{
______
}
void main( )
{
double a=1.23,b=3.45;
char s1[]="abed",s2[]="efg";
cout<<min(a,b)<<min(s1,s2)<<endl;
}
第3题
若输入“abcdef”“abdef”,下述程序的输出结果为( )。
#include<stdio.h>
#include<string.h>
main
{ int n;
char s1[20],s2[20],*p1,*p2;
scanf("%s",s1);
scanf("%S",s2);
p1=s1;
p2=s2;
n=strcmp(p1,p2);
printf("Vood\n",n);
}
A. -1
B.0
C."abcdef"
D."abdef"
【我提交的答案】: A |
【参考答案与解析】: 正确答案:D |
本题考查字符串比较函数strcmp(s1,s2),若s1>s2,则返回1;若s1=s2,则返回0;若s1<s2,则返回-1。字符串依次比较的是它们字符的ASCIl码值。
不明白为什么输出的是字符串
第4题
第5题
/ * 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分)。
第6题
例如:字符串中的数据为ADFESHDI,则输出应当是 AFESDI。
请改正程序中的错误,使它能得到正确结果。
注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include <conio.h>
include <stdio.h>
include <string.h>
define N 80
/************found*************/
void fun(char s,char t[])
{
int i,j=0;
for(i=0;i<strlen(s);i++)
/*********found*+************/
if(i%2=0 || s[i]%2!=0)
t[j++]=s[i];
t[j]='\0';
}
main()
{
char s[N],t[N];
clrscr();
printf("\nPlease enter string s:");
gets(s);
fun(s,t);
printf("\nThe result is:%s\n",t);
}
第7题
有以下程序
#include<stdio.h>
#include<string.h>
void fun(char *w,int m)
{ char s,*p1,*p2;
p1=w;p2=w+m-1;
while(p1<p2){s=*p1;*p1=*p2;*p2=s;p1++;p2--;}
}
main()
{ char a[]="123456";
fun(a,strlen(a));puts(a);
}
程序运行后的输出结果是A.654321
B.116611
C.161616
D.123456
【我提交的答案】: C |
【参考答案与解析】: 正确答案:A |
解析:strlen函数的作用是计算字符串的长度,不包括'\0'在内。所以形参m的值为6,根据fun函数中pl和p2的赋值一个指向第一个字符'1',一个指向最后一个字符'6'。然后比较大小,且根据条件互换,直到条件为假跳出循环。第一次循环后为623451,第二次653421,第三次654321。即fun函数实现将一个字符串逆序存放。所以答案为A)。
第8题
A.$8
B.@10
C.$9
D.@9
第9题
A.$9
B.@11
C.$10
D.@10
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!