模拟试题 (一) 1.填空题请补充函数 fun() ,该函数的功能是:把从主函数中输入的字符串str2接在字符串 str1的后面。例如: str1=“How do”,str2=“ you do?”,结果输出: How do you do? 注意: 部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数 fun的横线上填入所编写的若干表达式或语句。试题程序:#include #include #define N 40 void fun(char *str1,char *str2) { int i=0; char *p1=str1; char *p2=str2; while(【1】) i++; for( ;【2】;i++) *(p1+i)=【3】; *(p1+i)='\0'; } main() { char str1[N],str2[N]; clrscr(); printf("*****Input the string str1 & str2*****\n"); printf(" \nstr1:"); gets(str1); printf(" \nstr2:"); gets(str2); printf("**The string str1 & str2**\n"); puts(str1); puts(str2); fun(str1,str2); printf("*****The new string *****\n"); puts(str1); } 答案及评析 :【1】 *(p1+i) 【 2】 *p2 【3】 *p2++【解析】填空1:变量 i 用来记录字符串str1的长度,当指针指到字符串str1结束标志符 ‘\0' 时, while循环结束,变量i 停止累加。填空2:指针 p2 指向字符串 str2 ,通过 for循环将字符串str2接在 str1后面,循环结束的条件是指针p2 所指的字符是字符串结束标志符‘\0' 。填空 3:指针 p2 最初指向字符串str2的首字符,通过自加1,使指针p2 依次向后移动,指向str2的各个字符,实现将字符串str2接在 str1后面的功能。2. 改错题下列给定程序中, 函数 fun() 的作用是:将字符串 tt中的小写字母都改为对应的大写字母,其他字符不变。例如,若输入 " edS,dAd" ,则输出 " EDS,DAD " 。请改正程序中的错误,使它能得到正确结果。注意: 不要改动 main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include #include /**********************found***********************/ char fun(char tt[]) { int i; for(i=0;tt[i];i++) {/**********************found***********************/ if((tt[i]>='A')&&(tt[i]<= 'Z')) tt[i]-=32; } return(tt); } main() { int i; char tt[81]; clrscr(); printf("\nPlease enter a string: "); gets(tt); printf("\...