更多"串对(对联)"的相关试题:
[简答题]什么是对联的“正对”、“反对”和“串对”
[判断题]对联的出句与对句不是孤立的,在内容上相联、相关,可分为正对、反对和串对。( )
[简答题]我国对联史上第一副对联是什么内容,出现于何时
[简答题]编写一个函数,输入n个字符串,串与串之间以回车键分隔,找出最短字符串中第一个字符串,传回该串地址(用一个新串“*”作为结束输入的标志)。
注意:部分源程序已给出。
请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
char*fun(char(*s)[100],int num)
main( )
char str[10][100],*min;
int n,i=0;
FILE*out:printf("input strings with’*’asend:");
gets(str[i]);
strcpy(str[3],"some");
strcpy(str[4],"tool!";
fprintf(out,"%s",fun(str,5));
puts(str[i]);
while(!strcmp(str[i],"*")==0)
i++;
gets(str[i]);
puts(str[i]);
n=1;
min=fun(str,n);
printf("/nmin=%s/n",min);
out=open("outfile.dat","w");
strepy(str[0],"just,");
strcpy(str[1],"a");
strcpy(str[2],"test");
fclose(out);
[填空题]下列程序能将字符串s1中的所有与字符串str1相同的子串替换成字符串sb2,并将替换后的新串存于字符数组s2中。
#include<stdio. h>
void replace(s1,s2,str1,str2)
char *s1,*s2,*str1,*str2;
char *t0,*t1,*t2,*x,*y;
x=s1;y=s2;
while( 【8】 )
for(t0=s1,t1=str1; ((*t1!=’/O’&& 【9】 ;t0++,t1++);
if(*t1!=’/0’) *s2++= 【10】 ;
else
for(t1=str2;*t1!=’/0’;) *s2++= 【11】 ;
【12】 ;
*s2=’/0’;
main ( )
static char s1[]="abcdef ababcd abab.",s2125];
replace (s1, s2, "abc", "XYZ");
printf("%s/n",s2);
[简答题]已知串S=‘(xyz)*’,t=‘(x+z)*y’,试利用串的基本运算将s串转化为t串,t串转化为s串。
[单项选择]“新年纳余庆,佳节号长春”这幅对联据说是中国最早的对联,作者是( )。
A. 盂昶
B. 梅尧臣
C. 苏轼
D. 黄庭坚
[简答题]有n个字符的字符串,判断字符串是否对称。如xyzzyx和xyzyx都是中心对称的字符串。字符串放在单链、表中,并实现利用栈的入栈和出栈完成判断。
[简答题]
【程序功能】
统计一个字符串中包含的字母串个数并找出其中最长的字母串。
所谓字母串是指一个连续的字母序列(不区分大小写),字母串之间用非字母字符分隔。函数count的功能是统计p指向的字符串中包含的字母串个数,找出的最长字母串存放在pmax指向的数组中,函数返回字母串的个数。
【测试数据与运行结果】
测试数据:you are teaeher234too.
屏幕输出:a=you are teacher234too.
number is 4
max string is:teacher
【含有错误的源程序】
#include
#include
#include
int count(char p[],char pmax[])
{ int j=0,k,m=0;
char temp[100];
while(*p)
{ while((!isalpha(*p)) && *p) p++;
k=0;
if(*p!=’/0’) m++;
while(isalpha(*p))
temp[k++]=*p++;
temp[k]="/0";
if(k { j=k;
pmax=temp;
}
}
return m;
}
void main( )
{ char a[100]="you are teacher234too.",max[100];
int i;
i=count(a[],max[]);
if(i==0)
printf("a=%S: No letter strings!/n",a);
else
prinff("a=%s/nnumber is %d/nmax string
[单项选择]在对联的写作中出句与对句之间存在递进、转折、条件等关系的对联形式叫作( )。
A. 正对
B. 串对
C. 反对
D. 合掌
[简答题]【说明】
设串s和串t采用顺序存储结构,编写函数实现串s和串t的比较操作,要求比较结果包括大于、小于和等于3种情况。
【函数】
int StrCompare(SStrType s, SStrType t)
int n=s.length, m= (1) , i,j,tag;
i=0; j=0;
while( (2) )
if( (3) )
i++;
j++;
else if(s.str[i]>t.str[j])
tag=1;
return tag;
else
tag=-1;
return tag;
if(n==m)
tag=0;
else if( (4) )
tag=1;
else if(n<m)
tag=-1;
(5) ;
[简答题]常用字符串函数strcat(s1,s2)可将字符串s2添加到字符串s1的末端,但其使用必须保证字符串s1足够大,以便保存它自己的内容和字符串s2中的内容。请编写一个函数char*append(char*s1,char*s2),其可将字符串s2添加到字符串s1的末端,而且不受s1空间大小的限制。请利用常用字符串函数实现。
常用字符串函数说明:
strcpy(to,form):将form字符串复制到to字符串;
strcat(s1,s2):将字符串s2添加到字符串s1的末端,但必须保证字符串s1足够大;
strlen(s):返回字符串s的长度;
注意:部分源程序已存在文件test4_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数append的花括号中填写若干语句。
输出结果如下:
this is a string.
文件test4_2.cpp的内容如下:
#include<iostream.h>
#include<string.h>
char *append(char *s1,char *s2)
void main( )
char *s,*s1,*s2;
s1="this is ";
s2=",a string.";
s=append(s1,s2);
cout<<s<<endl;
[简答题]【说明】
本程序可以将字符串s1中出现的所有s2子串替换成s3,形成一个新串,但不破坏字符串s1。
【代码】
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char*replace(char *s1, char *s2,char *s3)
{ char *p, *q, *r, *s; int |2,|3, i=0;
|2=strlen(s2);
|3=strlen(s3);
p=s1;
while((p=strstr(p,s2))!=NULL)
{ i++; /* 统计s2串出现的次数*/
(1) ;
}
i= (2) ;
s=r=(char*)malloc(i); /*分配动态内存存放新字符串*/
p=s1;
while(1)
{ q=strstr(p, s2); /* s2串是否在s1中出现,q是首次出现的位置*/
if(q!=NULL)
{ i=q-p;
(3) ;
r+=i;
(4) ;
r+=|3;
p=q+|2; /*将指向s1串的指针移到s2子串出现的位置后,
为下一次循环做好准备*/
}
else /*q为空,表示剩余的s1串中已经没有s2*/
{ (5) ;
break; /*终止循环*/
}
}
return(s); /*返回指向所形成的新串的指针*/
}
void main( )
{ char *a="sabcababde", *b="ab", *c="efg", *d;
d=replace(a, b, c); printf("result=%s/n", d); free(d);
}