题目内容

下列程序中的函数 strcpy2() 实现字符串两次复制 , 即将 t 所指字符串复制两次到 s 所指内存空间中 ,合并形成一个新的字符串。例如,若 t 所指字符串为 efgh ,调用 strcpy2 后, s 所指字符串为 efghefgh 。请填空。
#include <stdio.h>
#include <string.h>
void strcpy2(char *s,char *t)
{ char *p=t;
while(*s++=*t++);
s= 【 1 5 】 ;
while(【 1 6 】 =*p++);
}
main()
{ char str1[100]="abcd",str2[]="efgh";
strcpy2(str1 ,str2); printf("%s\n",str1);
}

查看答案
更多问题

有以下程序
int a=4;
int f(int n)
{ int t=0; static int a=5;
if(n%2) {int a=6; t+=a++;}
else {int a=7 ;t +=a++ ; }
return t+a++ ;
}
main()
{ int s=a , i=0 ;
for(; i 〈 2 ; i++) s+=f(i);
printf ("%d\n",s);
}
程序运行后的输出结果是

A. 24
B. 28
C. 32
D. 36

有以下程序段
typedef struct node { int data; struct node *next; } *NODE;
NODE p;
以下叙述正确的是

A. p 是指向 struct node 结构变量的指针的指针
B. NODE p ;语句出错
C. p 是指向 struct node 结构变量的指针
D. p 是 struct node 结构变量

38) 有以下程序:
#include <stdio.h>
void fun(char *t,char *s)
{ while(*t!=0) t++;
while((*t++=*s++)!=0);
}
main()
{ char ss[10]= " acc " ,aa[10]= " bbxxyy " ;
fun(ss,aa);
printf(" %s,%s\n " ,ss,aa);
}
程序运行结果是

A. accxyy,bbxxyy
B. acc, bbxxyy
C. accxxyy,bbxxyy
D. accbbxxyy,bbxxyy

有以下程序
#include <stdio.h>
#include <string.h>
void fun(char s[][10],int n)
{ char t;int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
/* 比较字符串的首字符大小,并交换字符串的首字符 */
if (s[i][0] > s[j][0]) {t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;}
}
main()
{ char ss[5][10]={"bcc","bbcc","xy","aaaacc","aabcc"};
fun(ss,5); printf("%s,%s\n",ss[0],ss[4]);
}
程序运行结果是

A. xy,aaaacc
B. aaaacc,xy
C. xcc,aabcc
D. acc,xabcc

答案查题题库