一、程序改错题。
gc22.c程序是输入一个字符串, 将此字符串中最长的单词输出,程序在注释行附近有两个错误,请试调试改正,但调试改正中不得增删语句。
int alph(char c) {
if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) return(1); else
return(0); /* find 1 */ }
int longest(char *str) {
int len=0,i,length=0,flag=1,point,place; for(i=0;i<=strlen(str);i++)
if(alph(str[i])) if(flag) {
flag=0; point=i; } else len++;
else /* Find 2 */ {
flag=1; if(len>length) { length=len; place=point; len=0; } }
return(place); }
main( ) { int i;
char line[100];
printf(\ gets(line);
printf(\
for(i=longest(line);alph(line[i]);i++) printf(\ printf(\ }
二、程序填空题
tk22.c是打印出杨辉三角形,在空白处将程序补充完整,运行得出正确结果。
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 . . .
#define N 11 main( ) {
int I,j,a[N][N]; for (I=1; I a[I][1]=1; // } for (I=3;I a[I][j]=a[I-1][j-1]+a[I-1][j]; for (I=1;I printf(\ } 一、程序改错题(20分)。 下列程序是建立一个包含学生有关数据的单向链表。但该程序有2个错误,错误出现在每个注释行附近,请调试改正。调试改正中,不得改变程序结构,也不得增删语句。 #define NULL 0