四、阅读理解题(阅读下列程序或程序段,写出运行结果,每小题4分,共20分) 1.以下程序段的输出结果是______。 int k=10; while (k=0) k=k-1; printf(″%d #″,k); 2.以下程序的输出结果是______。 # include main() { int k; for (k=4;k>=1;k--)fun(); } fun() { static int m=0; m++; printf(”%d#”,m); } 3.以下程序的输出结果是______。 # include int c; func(int *a,int b) { c=(*a)*b; *a=b-1;b++; return(*a+b+1); } main() { int a=4,b=2,p=0; p=func(&b,a); printf(″%d,%d,%d,%d#″,a,b,c,p); } 4.若输入afds2008b3c<回车>,则以下程序的输出结果是______。 # include void main() { int n; char ch; do{ ch=getchar(); }while(ch<′0′||ch>′7′); n=0; do{ n++; ch=getchar(); }while(ch>=′0′&&ch<=′7′); printf(″%d#″,n); } 5.若head是node类型的全程量,以head为头指针的链表各节点的值如下图所示,则调用fun(head)返回值是______。 struct node{ int num; struct node *next; } int fun(struct node *p) { int k=0; struct node *pp=p; while (pp!=NULL){ if((pp->num)%2==0) k+=pp->num; pp=pp->next; } return(k); } 五、程序填空题(阅读程序,在______处填入适当的内容,使程序变得完整,第1小题6分,第2小题4分,共10分) 1.读入n(n<=10)个整数并放入一个数组r中,统计并输出比相邻元素小的数组元素的个数。 # include ″stdio.h″ void main() { int k,count,n,r[10]; scanf(″%d″,&n); for(k=0;kscanf(″%d″,&r[k]); ______; for(k=1;kif(______)count++; if(______)count++; if(r[n-1]printf(″count=%d\n″,count); } 2.统计当前目录下文本文件data.txt中数字字符(‘0’到‘9’)出现的次数。 # include void main() { ______; char ch;int count=0; if((fp=fopen(″data.txt″,″r″))==NULL){ printf(″不能打开文件data.txt!\n″); exit(0); } while((ch=______(fp))!=EOF) if(ch<=’9’&&ch>=’0’)count++; printf(″%d″,count); fclose(fp); } |