有以下程序:#include<stdio.h>#defineN6main{charc[N];inti=0;for(;i<N;c[i]=getchar,i++);for(i=0;i<N;putchar(c[i]),i++);}输入以下3行。每行输入都是在第1列开始,<CR>代表1个回车符:a<CR>b<CR>cdef<CR>则程
A.abcdef
B.abcdef
C.abcd
D.abcdef
A.abcdef
B.abcdef
C.abcd
D.abcdef
第1题
第2题
第3题
/ * 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分)。
第4题
从键盘输入一个字符串,找到其中最大的那个元素,并在该元素的后面插入字符串“(max)”。例如:输入字符串“MyFriend”,输出字符串“My(max)Friend”。 按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include<stdio.h> #define N 40 int main() { char str[N],i,j=0,iMax,max,count; char insertStr[5]={'(','m','a','x',')'}; printf("输入一个字符串:"); gets(str); count=strlen(str); max=str[0]; iMax=0; for(i=1;i<count;i++) if(str[i]>max) { max=str[i]; ____________________; } for(i=count-1;i>iMax;i--) ____________________; for(i=iMax+1;i<=imax+5;i++) { str[i]="insertStr[j];" j++; } ____________________; puts(str); return 0;> A、第1处:iMax=i 第2处:str[i+5]=str[i] 第3处:str[count+5]='\0'
B、第1处:iMax='\0' 第2处:str[i]='\0' 第3处:str[count+5]='\0'
C、第1处:iMax='\0' 第2处:str[i+5]=str[i] 第3处:str[i+5]='\0'
D、第1处:iMax=i 第2处:str[i+5]='\0' 第3处:str[i+5]='\0'
第5题
第6题
A、a∪b∪cdef
B、a
C、a b c d e f
D、a b cdef
第7题
A、a b cdef
B、a
C、a b c d e f
D、a b cdef
第8题
str是一个由数字和‘,:母字符组成的字符串,由变量num传人字符串长度。请补充函数proc,该函数的功能是:把字符串str中的数字字符转换成数字并存放到整型数组bb中,函数返回数组bb的长度。
例如,str="abc3de987f9621",结果为:3987621。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#define M 80
int bb[M];
int proc(char str[],int bb[],int num)
{
int i,n=0;
for(i=0;i<num;i++)
{
if(【1】)
{
bb[n]=【2】:
n++:
}
}
return 【3】 ;
}
void main
{
char str[M];
int mum=0,n,i;
printf("Enter a strin9:\n");
gets(str);
while(str[num])
num++:
n=proc(str,bb,num);
printf("\nbb=");
for(i=0;i<n;i++)
printf("%d",bb[i]);
}
【我提交的答案】:
【参考答案分析】:
【1】str[i]>='0'&&str[i]<='9 '
【2】str[i]-'0'
【3】n
【解析】题目中要求把字箱串str中的数字字符转换成数字并存放到整型数组bb中。首先应判断字符串str中每个字符是否为数字字符,因此【1】填“str[i]>=' 0 ' &&str[i]<='9'”;将每一个数字字符转化为数字放在整型数组bb中,因此【2】填“str[i]-'0'”;由函数proc可知,变量n中存放的是整型数组bb中元素的个数,最后要返回到主函数中,因此【3】填“n”。
数字字符和数字有什么区别吗,为什么还要减去一个48
第9题
下面程序的功能是从输入的十个字符串中找出最长的那个串。请在空白处处填空。 #include <stdio.h> #include <string.h> #define N 10 int main() { char s[N][81], *t; int j; for (j=0;j <n;j++) gets(s[j]); t="*s;" for (j="1;j<N;j++)" ________; 填空 printf("the max length of ten strings is: %d, %s\n", strlen(t), t); return 0;> A、t=s[j]
B、t=&s[j]
C、t=s++
D、t=s[j][0]
第10题
阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。
【程序5说明】
设M叉树采用列表法表示,即每棵子树对应一个列表,列表的结构为:子树根结点的值部分(设为一个字符)和用"()"括起来的各子树的列表(如有子树的话),各子列表间用","分隔。例如下面的三叉树可用列表a(b(c,d),e,f(g,h,i))表示。
本程序输入列表,生成一棵M叉树,并由M叉树输出列表。假定输入无错误。
【程序5】
#include<stdio.h>
#include<stdli
B.h>
#define M 3
typedef struct node{char val;
struct node*subTree[M];
}NODE;
char buf[255],*str=buf;
NODE*d=NULL
NODE*makeTree()/*由列表生成M叉树*/
{int k;NODE*s;
s= (1) ;
s->val=*str++;
for(k=0;k<M;k++)s->subTree[k]=NULL;
if(*str=′(′){
k=0;
do{str++;
s->subTree[k]= (2) ;
if(*str==′)′){str++;break;}
k=k+1;
}while( (3) );
}
return s;
}
void walkTree(NODE*t)/*由M叉树输出列表*/
{int i;
if(t!=NULL){
(4)
if(t->subTree[0]==NULL)return;
putchar(′(′);
for(i=0;i<M;i++){
(5) ;
if(i!=M-1&&t->subTree[i+1]!= NULL)
putchar(′,′);
}
putchar(′)′);
}
}
void main()
{printf("Enter exp:");
scanf("%s",str);
d=makeTree();
walkTree(d);putchar(′\n′);
}
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!