for (i=0; i t=*(a+i*N+j); *(a+i*N+j)=*(a+j*N+i); *(a+N*j+i)=t; } return; } int main() { int a[N][N],n,i,j; scanf(\ for(i=0;i scanf(\ mt(&a[0][0],n); for(i=0;i printf(\ } return 0; } 5. 当输入:5 3 2 6 5 8<回车>时,下列程序的输出为_______。 #include int *p,flag,i,n,s; scanf(\ p= (int*)malloc(n*sizeof(int)); for(i=0;i while (flag) { for (i=1;i if (s%*(p+i)!=0) { s+=*p; break; } if(i==n) flag = 0 ; } printf(\ free(p); 《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 6 / 8 } 6. 当输入:100 5 125 18 121 6<回车> 时,下列程序的输出为_______。 #include char *p = \void fun(int n, int m); void main() { int n,m,i; for(i=0; i<3; i++){ scanf(\ fun(n, m); printf(\ } } void fun(int n, int m) { if(n / m) fun(n/m,m); printf(\} 试题四、程序(段)填空题(每空2分,共20分) 1. 已知一个单向链表h。函数KthBackNode(h,k)查找链表h中倒数第k(k>0)个位置上的结点。 若查找成功,返回该结点的data域值,否则返回-1。该程序思路:指针p、q初始均指向第一个结点,p指针先沿链表移动,当与q指针相差k个结点时,p、q指针同步移动。 struct node { int data; struct node *next; }; int KthBackNode( struct node *h, int k ) /*h为表头指针*/ { ___(1)____; int count =0; p = q = h; while ( p!=NULL && count } while ( p!=NULL ) { ___(3)____; q = q->next; } 《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 7 / 8 if ( count < k ) return -1; return ___(4)____; } 2. 下列程序通过命令行参数方式(prog file1 file2)将两个文本文件中的两个从小到大的整数序列 合并为一个从小到大的序列。注:fscanf()函数返回值为读入的整数个数;end1和end2分别用于标记两个文件的整数是否读完(值1代表读完)。例如: 如果file1和file2文件中的内容分别为: 1 2 3 和 0 2 5 6,则输出为:0 1 2 2 3 5 6。 #include int main(int argc, char *argv[]) { ___(5)____; int n, m, end1=0,end2=0; if (___(6)____) { printf(\ file1 file2\\n\exit(0); } if ((fp1=fopen(argv[1], \ (___(7)____)) { printf(\exit(0); } if (fscanf(fp1, \ if (fscanf(fp2, \ while (___(8)____) if (n>m) { printf(\ if (fscanf(fp2, \ } else { printf(\ ___(9)____; } while (!end1) { printf(\ } while (!end2) { printf(\ if (fscanf(fp2, \ } ___(10)____; /*关闭打开的文件*/ return 0; } 《程序设计基础及实验》课程期末考试试卷, 2010年1月27日 8 / 8
C09A试卷-中文(2)
2019-06-02 12:27
C09A试卷-中文(2).doc
将本文的Word文档下载到电脑
下载失败或者文档不完整,请联系客服人员解决!