同济大学本专科课程期终考试统一命题纸 A卷 同济大学本科课程期末考试统一命题纸 A卷 2006-2007学年第一学期 课程: C++语言 专业: 考试日期: 课号: 姓名: 班级: 任课老师: 学号: 考查 出考卷教师签名: 教学管理室主任签字: 一、选择填空 (30分) 1) 下列变量名中,( )是合法的。 A、a
void main() { int a=1,b=2; printf("%d,",a>b ? b-- : a ++); printf("%d,",a<=b ? ++b : --a); printf("%d,%d\n",a,b); } 2. #include void main( ) { char x=’x’,y=’y’; int a; a=x9)+(y-x = = 1); printf(“%d\n”,a); } 3. #include void main() { int a,b,c; a=b=c=1; a=++b + ++c; printf("%d,%d,%d\n",a,b,c); a=b++ + c++; printf("%d,%d,%d\n",a,b,c); a=++b + c++; printf("%d,%d,%d\n",a,b,c); printf("%d,%d,%d\n",++a,b++,c++); } 4. #include void main() { int i=1,j=2,k=3,a=10; if(!i) a--; else if(j) if(k) a=5; else a=6; a++; printf("%d\n",a); if(i void func(int *a,int b[]) { b[0]=*a+6; *a=b[1];} void main() { int a,b[5]={2,4,6,8,10}; a=0; func(&a,b); printf("%d,%d \n",a,b[0]); } 6. #include int w=1; void f(int x) { x=w; w+=x; } void main() { w=5; f(w); printf("%d\n",w); } 7. #include void main() { int i,j,x=0; for(i=2;i>0;i--) { x++; for(j=0;j<=3;j++) { if(j%2)continue; x++; } x++; } printf("x=%d\n",x); } 8. #include void swap(int *p1,int *p2) { int *p; p=p1;p1=p2;p2=p; } void main() { int a=7,b=8; swap(&a,&b); printf("%d,%d\n",a,b); } 9. #include int x=3,y=6,z=9; typedef struct { int num; int *p; } ST; ST *ss; ST array[3]={1001,&x,1002,&y,1003,&z}; void main() { ss = &array[0]; for(;ssnum,*(ss->p)); } 10. #include void fun (int *p,int n) { int t; for(int i = 0;i< n/2;i++) { t = *(p+i); *(p+i) = *(p+n-i-1); *(p+n-i-1) = t; } } void main() { int a[5] ={1,3,5,7,9}; fun(a,5); for(int i=0;i<5;i++) printf(“%d\n”,*(a+i)); } 三、编程 (20分) 1) 根据函数原型定义,写出实现矩阵相加的函数程序 #include void Matrix_add(int *,int *,int *,int); //函数声明 void main() { int i,j; int a[3][3]={ {1,2,3}, {4,5,6}, {7,8,9} }; int b[3][3]={ {1,0,0}, {2,2,0}, {3,3,3} }; int c[3][3]={0}; Matrix_add(a[0],b[0],c[0],3); for (i=0; i < 3; i++) { for (j=0; j < 3; j++) printf("%5d",c[i][j]); printf("\n"); } } // 函数程序写在下面空白处 void Matrix_add(int *a,int *b,int *c,int n) { int i,j; for(i=0;i void string_copy(char *,char *); //函数声明 void main() { char str1[]="This is a C program."; char str2[32]; string_copy(str1,str2); printf("str2: %s \n",str2); } // 函数程序写在下面空白处 void string_copy(char *str1,char *str2) { for( ; *str1 != ’\0’; str1++,str2++) *str2 = *str1; *str2 = ‘\0’; }