(11)现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:
#include <stdio.h>
#include "myfun.c"
main()
{fun();printf("\n");}
myfun.c文件如下:
void fun()
{char s[80],c; int n=0;
while((c=getchar())!=′\n′) s[n++]=c;
n--;
while(n>=0) printf("%c",s[n--]);
}
当编译连接通过后,运行程序T18时,输入Thank!则输出结果是:【11】。
(12)以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如:str所指字符串为:Hello!,c中的字符为e,则函数返回字符串:ello!的首地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。
char *fun(char *str,char
C.
{ int n=0; char *p=str;
if(p!=NULL)
while(p[n]!=c&&p[n]!=′\0′)n++;
if(p[n]==′\0′) return NULL;
return(【12】);
}
(13)以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。
main()
(int i,j;
for(i=0;【13】;i++)
{j=i*10+6;
if(【14】)continue;
printf("%d",j);
}
}
(14)以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,
否则返回0。请填空
int isprime(int a)
{int i;
for(i=2;i<=a/2;i++)
if(a%i==0)【15】;
【16】;
}
(15)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形
字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下:
A B C D E
F G H I
J K L
M N
O
请填空完成该程序。
main()
{int i,j,n; char ch=′A′;
scanf("%d",&n);
if(n<11)
{for(i=1;i<=n;i++)
{for(j=1; j<=n-i+1;j++)
{printf("%2c",ch);
【17】;
}
【18】;
}
}
else printf("n is too large!\n")
printf("\n");
}
(16)以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表中所有结点中的字符串。请填空完成函数disp。
#include <stdio.h>
typedef struct node/*链表结点结构*/
{char sub[3];
struct node *next;
}Node;
Node fun(char s) /*建立链表*/
{…… }
void disp(Node *h)
{Node *p;
p=h->next;
while(【19】)
{printf("%s\n",P->su
B.; p=【20】; }
}
main()
{Node *hd;
hd=fun();disp(h
D.;printf("\n");
}