C語言基礎及答案 9
第九章 指標
一、 選擇題
1、 指標是一種____
A、 識別符號
B、 變數
C、 記憶體地址
D、 運算子
2、 顯示指標變數P中的值,可以使用命令_____
A、 Printf(“%d”,p);
B、 Printf(“%d”,*p);
C、 Printf(“%d”,*p);
D、 Printf(“%d”,p);
3、 為指標變數P輸入整型變數i的地址,可以使用命令____
A、 Scanf(“%p”,&p);
B、 *p=i;
C、 P=&I;
D、 *p=&I;
4、 若有定義void *p;int *q;float *r,
A、 p=q;
B、 q=r;
C、 p=r;
D、 r=p;
5、 若有說明#define m 20 int n=10;下面定義不正確的是______
A、 Float s[m];
B、 Float s[m*10];
C、 Float s[m+n];
D、 Float s[m+10];
6、 若有定義int a[]={1,2,0};請問a[a[a[0]]]=______
A、 0 B、1 C、2 D、3
7、 若有char s[10],*p=s;則下面表示式正確的是_____
A、 s=p+s;
B、 p=s+10;
C、
D、 p=s[0];
8、 定義整型指標變數p和q,下面操作不正確的是_______
A、 Int *p,q=null;
B、 Int *p,q=null,null;
C、 Int *p,*q=null,null;
D、 Int *p,*q=null;
9、 若有定義int a[]={1,2,3},b[3]={1,2,3};,請問a==b_______
A、 不能比較
B、 結果為真
C、 結果為假
D、 結果不確定
二 、填空題
1、 二級指標是存放一級指標的__________
2、 指標變數雖然都是存放指標,但____不同
3、 空指標名稱是_______
4、 函式名和_______名可以作為指標常量
5、 不同型別的指標變數的賦值必須________
一、 程式設計
1、 輸入3個整數,按由小到大的順序輸出。
2、 寫一個函式,求一個字串的長度。在main函式中輸入字串,並輸出其長度。
3、 寫一個函式,將一個3*3的矩陣轉置。
4、 將n個數按輸入順序的逆序排列,用函式實現。
參考答案
一、 選擇題
1、C 2、D 3、C 4、B 5、C 6、A 7、C 8、D 9、D
二、填空題
1、 單元地址
2、 基型別
3、 Null
4、 陣列
5、 顯式型別變換
二、 程式設計題
1、 Main()
{int n1,n2,n3;
Int *p1,*p2,*p3;
Printf(“input three integers n1,n2,n3:”);
Scanf(“%d,%d,%d”,&n1,&n2,&n3);
p1=&n1;
p2=&n2;
p3=&n3;
if(n1>n2) swap(p1,p2);
if(n1>n3) swap(p1,p3);
if(n1>n3) swap(p2,p3);
printf(“now,the order is:%d,%d,%d\n”,n1,n2,n3);
}
Swap(int *p1,int *p2)
{int p;
p=*p1;*p1=*p2;*p2=p;
}
1、 main()
{int len;
Char *str[20];
Printf(“input string:”);
Scanf(“%s”,str);
Len=length(str);
Printf(“The length of string is %d.”,len);
}
Length(char *p)
{int n;
N=0;
While(*p!=’\0’)
{n++;
P++;
}
Return(n);
}
2、 main()
{int a[3][3],*p,i;
Printf(“input matrix:\n”);
For(i=0;i<3;i++)
Scanf(“%d %d %d”,&a[i][0],&a[i][1],&a[i][2]);
p=&a[0][0];
move(p);
printf(“now,matrix:\n”);
for(i=0;i<3;i++)
printf(“%d %d %d\n”,a[i][0],a[i][1],a[i][2]);
}
Move(int *pointer)
{int i,j;
For(i=0;i<3;i++)
For(j=i;j<3;j++)
{t=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=t;
}
}
3、 main()
{int i,n;
Char *p,num[20];
Printf(“input n:”);
Scanf(“%d”,&n);
Printf(“please input these numbers:\n”);
For(i=0;i
Scanf(“%d”,&num[i]);
P=&num[0];
Sort(p,n);
Printf(“now,the sequence is:\n”);
For(i=0;i
Printf(“%d”,num[i]);
}
Sort(char p,int m)
{int i;
Char temp,*p1,*p2;
For(i=0;i
{p1=p+i;
p2=p+(m-1-i);
temp=*p1;
*p1=*p2;
*p2=temp;
}
}