A. c語言關於指針和數組的題
懶得開程序寫
提供點思路吧
先設定兩個整形變數分別用來儲存最大的元素以及其下標
然後用循環語句進行逐一判別大小
使的其中表示元素的大小的變數的值保持最大 同時使下標為對應下標
B. C語言關於指針指向數組的題,拜託詳細講解
應選B,p1+3相當於把p1往後移動三個整型元素的位置,即a[1][3],再用*輸出對應元素的值。
C. C語言選擇題,關於指針數組。求詳解
int a[2][3]; 定義了一個二維函數,每一維數組有三個元素。
int (*pt)[3]; 定義了一個數組指針,也就是定義了一個指向有三個元素的指針,即該指針,每次自加1,地址跳過三個int
pt=a; 就是讓pt指向a[0],注意a[0]是一個數組地址,裡面有三個元素
對於A選項,pt[0][0]是正確的,pt[0][0]等價於a[0][0]
對於B選項,不正確,因為pt+1就是a[1], *(pt+1)[2]相當於a[3][0]不對。
因為運算符優先順序,[]大於*,因此*(pt+1)[2]就是*pt[1+2] 也就是*a[1+2]。而*a[3]就等價於a[3][0]。越界了
改成(*(pt+1))[2]就對了,相當於a[1][2]
對於C選項,正確,*(pt[1]+2) 相當於a[1][2]
對於D選項,正確,*(a[0]+2)相當於a[0][2]
D. c語言指針數組相關的題
選D)編譯出錯。 s="abcd"; 錯了,s是數組名,不能為其整體賦值,只能整體初始化,寫成char s[6]="abcd";才可以。若不初始化,就只能一個一個賦值,如s[0]='a';s[1]='b';s[2]='c';s[3]='d';這樣或用一個循環來完成。
E. c語言指針數組題
A)int *b[ ]={1,3,5,7,9};//錯,指針必須是指向一 個可控的已知內存地址
B)int a[5], *num[5]={&a[0], &a[1], &a[2], &a[3], &a[4]};//正確
C)int a[ ]={1,3,5,7,9}; int *num[5]={a[0],a[1],a[2],a[3],a[4]};//錯,和A一樣
D)int a[3][4], (*num)[4]; num[1]=&a[1][3];錯,num[1]步長為4,代表整行地址,而&a[1][3]是獲取a的每一行第四列的地址,是單一元素的地址
F. C語言指針與數組的題
#include<stdio.h>
#define n 3
#define m 5
void main()
{ int i=0,j=0,k;
char *str;
scanf("%s",str);
j=n+m-2;
for(i=n-1;i<n-1+m/2;i++) //第n個 字元開始,數組、指針第一個地址是從0開始,所以要n-1
{
k=*(str+i);
*(str+i)=*(str+j);
*(str+j)=k;
j--;
}
printf("%s\n",str);
}
G. 求助幾道c語言有關指針數組的題目
答案如下:第二題沒有給出矩陣C的取值方程,所以免答了……
(a)The sky is the limit.
(b) The sky is //前面是25個空
(c) //運行將出錯
(d) //編譯不會過.若"."是'.'的話輸出The sky is the limit
(e)//編譯不會過.若"