问题 填空题

当运行以下程序时,从键盘输入abcdabcdef<CR>
cde<CR>
(<CR>表示回车),则下面程序的运行结果是 【15】
#include<stdio.h>
main()
int a;char s[80],t[80];
gets(s);gets(t);
a=fun(s,t);
printf("a=%d\n",a);
fun(char*p,char*q)
int i;
char*p1=p;
char*q1;
for(i=0;*p!=’\0’;p++,i++)
p=p1+i;
if(*p!=*q)continue;
for(q1=q+1,p=p+1;*p!=’\0’&&*q1!=’\0’;q1++,p++)
if(*p!=*q1) break;
if(*q1==’\0’) return i;
return(-1);

答案

参考答案:a=6

解析:[命题目的] 考查了一维字符数组做函数实参,函数中通过字符指针来引用字符数组中字符元素的操作。
[解题要点] 字符指针p++使指针向后移动一个字符的位置,而*p则是取得指针p所在位置的字符元素。

单项选择题
问答题 简答题