问题
填空题
设有下列程序: #include<stdio.h> #include<string.h> main() { int i; char s[10],t[10]; gets(t); for(i=0;i<2;i++) { gets(s); if(strcmp(t,s)<0) strcpy(t,s); } printf("%s\n",t); } 程序运行后,从键盘上输入(<CR>代表回车符):DEF<CR>BADEF<CR>QTHRG<CR>,则程序的输出结果是______。
答案
参考答案:QTHRG
解析: 函数strcmp(t,s)用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0;若t<s,则函数值小于0。函数strcpy(t,s)的功能是:把字符数组s所指字符串的内容复制到字符数组t所指存储空间中。 本题中,t[10]="CDEF"。第一次循环,s[10]= "BADEF",if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环,s="QTHRG",if语句的控制条件 strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指存储空间中,然后输出字符数组t。