1. 下面程序要利用指针变量作为形参实现两个变量的值互换,请在下面的下划线处填入正确的程
序代码,完成程序功能。 #include using namespace std; int main() {
void swap(int *,int *); int i=5,j=8; [1] ;
cout<
void swap(int *p1,int *p2) {
int temp; temp=*p1; [2] ; [3] ; }
2. 下面的函数Fun将一个整数字符串转换为一个整数。 # include # include using namespace std; int Fun (char *str) {
int num, digital, len; [1] ;
len=strlen(str); while (*str!=NULL) {
digital=*str-'0';
for (int i=0; [2] ; i++) [3] ; len--; str++;
num+=digital; }
return num; }
3. 以下程序求二维数组的最大值及其行列下标并打印。 #include #include using namespace std;
void find( int a[3][4], int *maxi, int *maxj ) { int i, j;
*maxi=0; *maxj=0; for (i=0; i<3; i++) for (j=0; j<4; j++)
if (a[i][j] [1] a[*maxi][*maxj]) *maxi=i, *maxj=j; }
void main() {
int a[3][4]={{3,8,9,5},{0,-1,1,-2},{3,7,6,3}}, maxp, minp, i, j; find( [2] );
cout<<\cout<<\
cout<<\}
4. 下面程序要利用形参实现两个变量的值互换,请在下面的下划线处填入正确的程序代码,完成
程序功能。
#include using namespace std; int main() {
void refswap(int &,int &); int a=15,b=18;
[1] ; //实参是变量的地址
cout<void refswap(int &a,int &b) {
int temp; temp=a; [2] ; [3] ; }
5. 下面的Max函数用于求给定矩阵a中的最大元素值,以及其所在的行号和列号。 #include using namespace std;
void Max(int *a,int m,int n) {
if (m<=0 || n<=0) return; int i,j,row=0,column=0,max; max=*a;
for (i=0;imax= [2] ; row=i; column=j; }
cout<<\}
int main() {
int a[3][4]={{5,12,23,56},{19,28,37,46},{-12,128,6,8}};
Max( [3] , 3, 4); getchar(); return 0; }
1.[1] swap(&i,&j) [2] *p1=*p2 [3] *p2=temp 2.[1] num=0 [2] i3.[1] > [2] a,&maxp,&minp [3] a[maxp][minp] 4.[1] refswap(a,b) [2] a=b [3] b=temp
5.[1] *(a+i*n+j)>max [2] *(a+i*n+j) [3] &a[0][0] 五、程序填空题
1. 假设学生链表中的结点结构及含义定义如下: struct Student {
long number; //学号
Student *next; //指向下一个结点的指针 };
下面的函数Delete()是从链表中将指定学号的学生结点删除,它有两个参数:head是学生链
表的链首指针,number是被删除结点的学生学号,请完成该函数。 void Delete(Student *head, long number) {
Student *p;
if( [1] ) return;
if(head->number == number) { [2] ;
head=head->next; delete p; return; }
for(Student *s=head; s->next; [3] ) {
if( [4] ) {
p=s->next;
s->next=p->next; delete p; [5] ; } }
cout<2. 下面的函数rotate()实现将二维数组m参数表示的方阵进行顺时针旋转90°。例如,它将数组