数组元素的引用问题12.若有语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则( )不是对

lajidyz0072022-10-04 11:39:541条回答

数组元素的引用问题
12.若有语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则( )不是对a数组元素的正确引用(其中0≤i

已提交,审核后显示!提交回复

共1条回复
破碗 共回答了21个问题 | 采纳率95.2%
选B
A.绝对正确.因为p指向的就是a[0]的位置,与a本身指向的位置一样.完全可以等同a一样使用下标引用元素
B.*(a+i)指向a[i]存的那个值,假设i=1,则等于a[1]=1,再求1所指向的地址的值,能求吗?
C.a[p-a]=a[0],因为p指向a[0],地址是一样的,相减得0,即指向a[0]
D.&a[i]是a[i]这个位置的地址,*(&a[i])即把这个地址中存放数值取出来,即等于a[i]
1年前

相关推荐

语句dim arr(-3 to 5,2 to 6)as integer定义的数组元素有
2485615621年前1
baomin 共回答了22个问题 | 采纳率95.5%
45个
-3 -2 -1 0 1 2 3 4 5 共9个
2 3 4 5 6 共5个
5*9=45个
若已定义,int a[3][2]={1,2,3,4,5,6};,值为6的数组元素是
不见不散最终版1年前1
wxpeter 共回答了16个问题 | 采纳率87.5%
a[2][1] = 6
首先,c/c++语言中,下标是从0开始;
则 存储情况如下:
[0] [1]
[0] 1 2
[1] 3 4
[2] 5 6
所以答案为:a[2][1]
用dimensiona(3,5)命令定义了一个数组a,则该数组的下标(数组元素)数目是() A.15 B.24 C.8
用dimensiona(3,5)命令定义了一个数组a,则该数组的下标(数组元素)数目是() A.15 B.24 C.8 D.10
你比我大13岁1年前1
daphant 共回答了12个问题 | 采纳率91.7%
A dimensiona 定义了构件的高度和宽度,数组元素个数是15,下标范围是0-14,共15个
用指针将数组元素循环右移,最后一个元素移到开头
用指针将数组元素循环右移,最后一个元素移到开头
如 :0 1 2 3 4 5 6 7 8 9移动后 :9 0 1 2 3 4 5 6 7 8
相视无语0011年前1
helpwoba 共回答了9个问题 | 采纳率88.9%
#include
main()
{int a[10],i,t;
for(i=0;i0;i--)
a[i]=a[i-1];
a[i]=t;
for(i=0;i
设有一个含n个元素的数组,数组元素为自然数,写出一个算法,将所有值为素数的元素排在所有值为奇数的元素之前,将所有值为奇数
设有一个含n个元素的数组,数组元素为自然数,写出一个算法,将所有值为素数的元素排在所有值为奇数的元素之前,将所有值为奇数的元素排在所有值为偶数的元素之前,要求该算法的时间复杂度为O(n).
iiii1年前1
ak6g 共回答了12个问题 | 采纳率100%
根据自然数的类型(素数,奇数,偶数)分成三个桶,然后用桶排序就可以了
从键盘输入一个整数n(n≤10)和n个整数,存入数组a中,先依次输出各个数组元素的值,然后找出最大值,并输
心末1年前1
ww的老鼠 共回答了21个问题 | 采纳率100%
int n,a[10],i,j,t;
coutn;
cout
14、有以下语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则对a数组元素的引用不正确的是
14、有以下语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则对a数组元素的引用不正确的是( )其中0≤i≤9.
A、 a[p-a]
B、 *(&a[i])
C、 p[i]
D、 *(*(a+i))
御影清凌1年前1
tegoshi43xk 共回答了17个问题 | 采纳率88.2%
答案是D,
D的正确形式应该为:*(a+i)
前面多了个星号.
A:a[0]
B:a[i]
C:p[i]
定义一个大小为10,数组元素在【20,100】范围内产生的整数;求出该数组中最大值,最小值.平均值
dudiao1年前1
qkhh555 共回答了10个问题 | 采纳率90%
写代码?HI我
java,c/c++一道程序计算题,数组元素选择问题
java,c/c++一道程序计算题,数组元素选择问题
第一大组:
(1)03,06,07,08,09,10,12,14,19,20,24,25,28,30,32,33
(2)01,02,04,05,11,13,15,16,17,18,21,22,23,26,27,29,31
第二大组:
(3)01,03,04,07,08,09,11,12,15,19,20,21,22,24,26,28,29,30
(4)02,05,06,10,13,14,16,17,18,23,25,27,31,32,33
第三大组:
(5)01,03,04,05,06,07,08,09,11,12,17,18,22,23,25,27,28,30,31,33
(6)02,10,13,14,15,16,19,20,21,24,26,29
用上面这六组数字, 求出 6 个数字.使其满足如下条件:
A: 6个数字中, 上面这六组数字,每组都包含有 3 个. 如果不能包含3个的,尽量使其包含2个
liaodh1年前1
cshdqd2005 共回答了21个问题 | 采纳率100%
现在只想到遍历算法,用java写的,改改就能用在C++上
package baiduhelp_1;
public class Main
{
public static void main(String[] args)
{
new Solve1();
}
}
class Solve1
{
int[][] data;
int[] num;
int sum;
Solve1()
{
data=new int[6][];
int[] data1={3,6,7,8,9,10,12,14,19,20,24,25,28,30,32,33};
int[] data2={1,2,4,5,11,13,15,16,17,18,21,22,23,26,27,29,31};
int[] data3={1,3,4,7,8,9,11,12,15,19,20,21,22,24,26,28,29,30};
int[] data4={2,5,6,10,13,14,16,17,18,23,25,27,31,32,33};
int[] data5={1,3,4,5,6,7,8,9,11,12,17,18,22,23,25,27,28,30,31,33};
int[] data6={2,10,13,14,15,16,19,20,21,24,26,29};
data[0]=data1;
data[1]=data2;
data[2]=data3;
data[3]=data4;
data[4]=data5;
data[5]=data6;
sum=0;
int i,j;
num=new int[6];
for(i=0;i
C语言.下面对数组元素不正确的引用的是?
C语言.下面对数组元素不正确的引用的是?
定义float a[3][4];
A)a[i][j]
B)*(a[i]+j)
C)*(*(a+i)+j)
D)*(a+i*4+j)
龙卷风之灵1年前1
hhc082 共回答了20个问题 | 采纳率95%
A:是正确的,比如a[0][0]
B:是正确的,a[i]+j是a[i][j]的地址,在用*指向也是引用了这个地址
C:是正确的,*(a+i)表示a[i][0]的地址*(a+i)+j是a[i][j]的地址*(*(a+i)+j)也是使用了他
D:是错误的,因为他只指向了一次,就是a[i*4+j]的地址.
第一题、 编写程序:对100个数组元素依次赋值为:0, 2, 4……198,要求按逆序输出,并且每行输出10个数字。
第一题、 编写程序:对100个数组元素依次赋值为:0, 2, 4……198,要求按逆序输出,并且每行输出10个数字。
第二题、 编写程序:采用冒泡排序,对序列6, 5, 9, 4, 13, 1, 8按从大到小的顺序排列输出,要求每个数占6位,并且左对齐输出。
第三题、 有如下数列:
1, 3, 4, 7, 11……
该数列有一特点:前两项的值分别为1和3,从第三项开始,每一项的值为前两项之和。该序列被称为Fibonacci数列。请输出该数列的前12项,要求每行输出4个数。
第四题、 对第三题中的程序进行修改,去掉第一行的空行,

第一题的图

3915358551年前1
有故事的人 共回答了26个问题 | 采纳率84.6%
/* 对100个数组元素依次赋值为:0, 2, 4……198,要求按逆序输出,并且每行输出10个数字 */
#include "stdio.h"
void main()
{
int arr[100];
int i;
for(i=0; i=0; i--)
{
printf("%4d", arr[i]);
if(i%10 == 0)
printf("n");
}
}
/* 采用冒泡排序,对序列6, 5, 9, 4, 13, 1, 8按从大到小的顺序排列输出,要求每个数占6位,
并且左对齐输出 */
#include "stdio.h"
void BubbleSort(int arr[], int len)
{
int i, j;
int temp;
for(i=0; i
12.已有定义int x[3][2],以下能正确引用数组元素的选项是( ) a.x[2][2] b.x[1][2] c.
12.已有定义int x[3][2],以下能正确引用数组元素的选项是( ) a.x[2][2] b.x[1][2] c.x[2][1] d.x[0][2]
12.已有定义int x[3][2],以下能正确引用数组元素的选项是( )
a.x[2][2]
b.x[1][2]
c.x[2][1]
d.x[0][2]
Zertyuuhgfdswxc1年前1
lqq1979 共回答了17个问题 | 采纳率82.4%
答案:c
注释:
1.int x[m][n] ,其中的 m,n表示的是二维数组的长度;
2.C 语言的访问顺序是从 0 开始的,因此最大访问支持 x[m-1][n-1]
数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素_____的值为6.
数组定义为 int a[3][2]={1, 2, 3, 4, 5, 6},数组元素_____的值为6.
A、a[3][2] B、a[2][1] C、a[1][2] D、a[2][3]
九天魔十地妖1年前1
edyzz 共回答了17个问题 | 采纳率94.1%
B、a[2][1]
若有int a[7]={1,2,3,4,5,6,7},*p=a则不能表示数组元素的表达式是:( C ) A.*p B.*
若有int a[7]={1,2,3,4,5,6,7},*p=a则不能表示数组元素的表达式是:( C ) A.*p B.*a C.a[7] D.a[p-a]
若有int a[7]={1,2,3,4,5,6,7},*p=a则不能表示数组元素的表达式是:( C )
A.*p
B.*a
C.a[7]
D.a[p-a]
莉之CACA1年前1
yangkai007 共回答了18个问题 | 采纳率100%
分析:
int a[7]={1,2,3,4,5,6,7},*p=a,
等价于
int a[7]={1,2,3,4,5,6,7};
int *p=a;
所以:
A.*p = a[0];
B.*a = a[0];
D.p-a=0,原式=a[0];
C.数组维数由0算起,故最大只能a[6],显然越界了!
假定a为一个一维字符数组名,则引用数组元素a[k]的正确形式
假定a为一个一维字符数组名,则引用数组元素a[k]的正确形式
A.a+K
B.&a+k
C.*(a+k)
D.*a+k
为什么不是A.可以每个选项都解释一遍吗?
syqy55881年前1
xiaxiang01 共回答了26个问题 | 采纳率100%
C语言里面数组名是数组第一个元素对应的指针
A的意思是a[k]的地址
B的意思同A一样
C是取第k个元素地址里的内容
D是把a[k]的值加k
关于数组元素计算的问题数组是在有规则的结构中包含一种数据类型的一组数据,也称作数组元素变量。数组变量由变量名和数组下标构
关于数组元素计算的问题
数组是在有规则的结构中包含一种数据类型的一组数据,也称作数组元素变量。数组变量由变量名和数组下标构成,通常用Dim语句来定义数组,定义格式为:Dim 数组名([下标下限 to] 下标上限) 缺省情况下,下标下限为0,数组元素从"数组名(0)"至"数组名(下标上限)";如果使用to选项,则可以安排非0下限。例如:Dim A(5,5)As Integer,B(1 To 3,10 to 20,2),则A有36个元素,而B则有3*11*3=99个元素。本题中二维数组A(2 to 5,5)的元素个数为4*6=24个元素。
-------------求讲解
千彩眼1年前1
olliandarkchen 共回答了22个问题 | 采纳率100%
A(5,5)={(0,0),(0,1),(0,2),(0,3),(0,4),(0,5)
(1,0),(1,1),(1,2),(1,3),(1,4),(1,5)
......
(5,0),(5,1),(5,2),(5,3),(5,4),(5,5)};
A(2 to 5,5)={(2,0),(2,1),(2,2),(2,3),(2,4),(2,5)
(3,0),(3,1),(3,2),(3,3),(3,4),(3,5)
......
(5,0),(5,1),(5,2),(5,3),(5,4),(5,5)};
有多少个元素数数也就能算出来了。
这是根据你DIM给的定义来做的。
c语言不是这样的,int A(5,5)是5*5,也就是下标从0到4,B语言是0到5(根据题目中DIM的解释)
若有说明 int a[3][4],则对 a 数组元素的正确引用是
若有说明 int a[3][4],则对 a 数组元素的正确引用是
(A) a[2][4] (B) a[1,3] (C) a (2)(1) (D) a[1][3]
为什么D对A错?
stooop1年前1
阳光男孩ab 共回答了12个问题 | 采纳率91.7%
a[2][4]越界了
最后一个元素a[2][3]
引用时下标从0开始
第一行a[0][0] a[0][1]...
第三行a[2][0] a[2][1]...
若有定义:int t [3][2];能正确表示t 数组元素地址的是D A .&t [3][2]
若有定义:int t [3][2];能正确表示t 数组元素地址的是D A .&t [3][2]
若有定义:int t [3][2];能正确表示t 数组元素地址的是D
A .&t [3][2] B .t [3] C .&t [1] D .t [2]
为什么?
海叶1年前1
随风_往事 共回答了20个问题 | 采纳率85%
D .t [2] 正确.它 等于 &t[2][0].
A .&t [3][2] 下标超界
B .t [3] 下标超界
C .&t [1] 多了 &.如果是 &t[1][0] 有两项[][] 就对了.
假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在________之间.
假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在________之间.
假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在________之间
yhsbht1年前1
sandallevi 共回答了13个问题 | 采纳率100%
行下标的范围是0到M-1
各行各列的引用下标如下
第一行a[0][0]-a[0][N-1]
第二行a[1][0]-a[1][N-1]
.
第M行a[M-1][0]-a[M-1][N-1]
前面那个是行下标,后面那个是列下标
请教一道C语言题目,谢谢1.在C 语言中,引用数组元素时,其数组下标的数据类型允许是 。A)整型常量 B)整型表达式C)
请教一道C语言题目,谢谢
1.在C 语言中,引用数组元素时,其数组下标的数据类型允许是 。
A)整型常量 B)整型表达式
C)整型常量或整型表达式 D)任何类型的表达式
S19921年前1
dinolovek 共回答了21个问题 | 采纳率85.7%
单选的话就是C了。
因为你应该见过 a[2] a[i]
这两种。
设有如下定义及语句,则对数组元素的引用中错误的是
设有如下定义及语句,则对数组元素的引用中错误的是
int a[5],n=3;
a[2]=n;
x05
A) a[0]=1; B)a[5]=2;x05C)a[n]=3; x05D)a[a[2]]=4;
scorpio39501年前1
无所谓的海 共回答了23个问题 | 采纳率87%
B
a只有5个元素,下标分别是0~4,B越界了,肯定是错了
A没问题了
C相当于a[3]也没问题
D相当于a[3]也没问题
若有定义int a[][3]={1,2,3,4,5,6,7,8,9,10},数组元素a[i][j]的下标i,j的取值范围
若有定义int a[][3]={1,2,3,4,5,6,7,8,9,10},数组元素a[i][j]的下标i,j的取值范围是()0≦i≦3,0≦j≦2,为什么
sunnyjeff19801年前1
zjm2601843 共回答了21个问题 | 采纳率85.7%
这是个二维数组.int a【】【】第一个中括号表行数,从0开始;第二个代表列,也从0开始;数组初始化没有给出初值的数组元素被编译器自动赋值为0;
int a[][3]={1,2,3,4,5,6,7,8,9,10}实际为:
int a[][3]={1,2,3,4,5,6,7,8,9 ,10,0,0} 四行三列.
数组元素做函数实参与数组名做函数实参的含义不同
青橄榄枝1年前1
老刘炒菜 共回答了20个问题 | 采纳率85%
数组名是地址,传递的是地址
数组元素是值,当然不同了
13.若有定义:int x[10],*p=x;,则*(p+5)表示( ).A.数组元素x[5]的地址 B.数组元素a[5
13.若有定义:int x[10],*p=x;,则*(p+5)表示( ).A.数组元素x[5]的地址 B.数组元素a[5]的值 C.数
just-ok-girl1年前1
ii婆爱蘑菇 共回答了12个问题 | 采纳率83.3%
//int x[10],*p=x;,则*(p+5)表示( ).
int x[10],*p=x:表示定义了一个数组,让p 指向了x 这个数组,数组名是地址常量,把地址常量保存在指针变量里边了.
而这时候指针可以写成数组,数组也可以写成指针:x[i]=p[i]=*(x+i)=*(p+i);因此*(p+5)=x[5]
栈中元素个数问题假设一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,
栈中元素个数问题
假设一个长度为50的数组(数组元素的下标从0到49)作为栈的存储空间,栈底指针bottom指向栈底元素,栈顶指针top指向栈顶元素,如果bottom=49,top=30(数组下标),则栈中具有________个元素.
我认为是:49-30+1=20个.
但是为什么在计算机二级考试中标答却是19?
空中楼阁的1年前1
forobert 共回答了23个问题 | 采纳率100%
这个栈有意思,一般都是
栈底指针为0.然后++top,压栈,这个则是--top;
bottom-top+1为栈中元素个数,
49-30+1=20,是对的,如果
bottom=49,top=49,很明显栈中
49-49+1=1个元素.
这种题目其实没什么意思,它没有说清,如果是19个也可以说明白,就是说它栈顶指针指向的是一个没有存储位置,就是时候实现的时候,是top++,当然也可以指向栈顶元素.那就是++top,哎这种题目其实对理解数据结构也没啥帮助,如果就像题目中出的栈底指向栈底元素,栈顶指向的就是已经存储的栈顶的元素,那就是20个,19的意思是说,栈顶指针指向的是一个还没有存储位置.
2.有定义 int a[ ]={2,5,6,},*p=a; 则*(p+1)所代表的数组元素是( ).
2.有定义 int a[ ]={2,5,6,},*p=a; 则*(p+1)所代表的数组元素是( ).
A.a[3] B.a[2] C.a[1] D.a[0]
3.已知有定义int a[5] ; a数组中最后一个元素的地址可表示为( ).
A.&a+4 B.a+5 C.a+4x05x05x05D.&a[5]
wjch19811年前1
看啥说你呢 共回答了25个问题 | 采纳率92%
2: C.a[1]
3: C.a+4
若有以下程序段,且0≤i<4,0≤j<3,则不能正确访问a数组元素的是(  )。 int
若有以下程序段,且0≤i<4,0≤j<3,则不能正确访问a数组元素的是(  )。 int i,j,(*p)[3]; int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; p = a;  A. *(*(a+i)+j)  B. p[i][j]  C. (*(p+i))[j]  D. p[i]+j 为什么选d
冷老师1年前1
wlgk 共回答了13个问题 | 采纳率92.3%
若有定义 int a[3][4],*p; 则对数组元素a[i][j](0
有一整数数组x(正序排列),判断是否有数组元素 x[i]=i 的情况发生
有一整数数组x(正序排列),判断是否有数组元素 x[i]=i 的情况发生
#include
int index_search(int x[],int n)
{
int first = 0;
int last = n-1;
int middle,index;
index = -1;
while (first = 0)
printf("nnYES,x[%d] = %d has been found.",answer,answer);
else
printf("nnNO,there is no element with x[i] = i");
}
3应该填啥
闭上你的眼清1年前2
___慧 共回答了19个问题 | 采纳率84.2%
answer = index_search(x,n)
.int a[]={1,2,3,4,5,6,7,8,9,10},*p=a.i; 则下列能够正确表示数组元素地址的是( )
.int a[]={1,2,3,4,5,6,7,8,9,10},*p=a.i; 则下列能够正确表示数组元素地址的是( )
A、&(a+1) B、a++ C、&p D、&p[i]
xiademiao200021年前1
wupex 共回答了15个问题 | 采纳率93.3%
答案是D
p[ i ]是数组a[ ]的第i+1个元素,&p[ i ] 即取数组a[ ] 的第i + 1个元素的地址,故&p[ i ]表示数组元素地址.
A 错,a+1本身就是数组第二个元素的地址,再取地址编译报错
B 错,a是数组名,存储在静态区,不能进行自增++运算,只有变量才可以++
C 错,p本身就是指向数组的首元素a[0],&p表示指针变量p的地址.
c程序语言,数 组,求编程实现1.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。要求:(1)数组为整型
c程序语言,数 组,求编程实现
1.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。
要求:
(1)数组为整型数组(10个元素)。
(2)使用scanf函数实现数组元素的输入。在输入前给出必要的提示。
(3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。
(4)如果现改为20个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。如果需要数组元素不断改变,应怎样修改程序?
2.编程实现:在给定的字符串中查找满足条件的第一个字符。
要求:
(1)字符串采用初始化的方式处理。
(2)通过scanf函数读入一个任意字符。
(3)在字符串中查找该字符,如果存在该字符,输出该字符在字符串中的位置以及相应的说明。如果不存在该字符,则要给出相应的信息。
3.编程实现:首先任意输入一个大于2且小于10的整数n,再输入一个由n决定的二维整型数组(n n),形成n n阶矩阵,将矩阵中最大元素所在的行和最小元素所在的行对调后,再输出该矩阵(注意:数组不允许动态定义)。
要求:
(1)本题中所涉及到的循环都采用for语句。
(2)在输入/输出时进行必要的说明。
(3)对输入的2~10之间的整数(例如4)以n=4的格式输出。
(4)输入一个n n矩阵(假定最大值与最小值不在同一行上),输出原始矩阵数据(按上述矩阵形式)。
(5)查找最大值与最小值,将矩阵中最大元素所在的行和最小元素所在的行对调,输出对调后的矩阵数据。
(6)修改程序,对最大值与最小值可能出现在一行上的情况做出说明。
(7)对n为3,4,5时,输入数组元素是要注意哪些问题?执行程序,检查程序的正确性。
要求:
(1)设定一个数组存放20个数据,用赋初值的方法在程序中给出(假设这些数据已排序)。
(2)用scanf函数输入一个要找的数。
(3)对查找的结果给出相应的说明,如果找到该数,则给出该数是数组中第几个元素。如果该数不在数组中,则输出“无此数”信息。
(4)任意输入一些数据,检查程序的正确性。
(5)修改程序,设定输入的数据是无序的,采用scanf函数的形式输入,首先要对这些无序的数据进行排序,然后再采用“折半查找”。最后通过测试几组差别较大的数据检查程序的正确性。
(6)修改程序,改为函数调用的形式。编写一个选择法排序函数,对无序数据进行排序;编写一个查找函数对已排好序的数据进行查找。在主函数中输入数据(无序),调用上述函数,输出结果。
5.编程实现:三个学生、五门课程的成绩分别存放在4×6矩阵的前3×5列,计算出每个学生的平均成绩存放在该数组的最后一列的对应行上。计算单科的成绩总和存放在最后一行的对应列上,并输出单科成绩的平均分
要求:
(1)数组类型为实型,输入成绩由scanf函数实现。
(2)输出已输入的原始成绩数据(3×5)。
(3)计算每个学生的平均成绩以及单科的成绩总和并按要求填入到数组中,输出填入结果后的数组(4×6)。
(4)j计算单科平均成绩后输出。
6.编写函数catStr(char str1[],char str2[])用于进行两个字符串的连接,编写函数lenStr()用于统计一个字符串的长度。编写函数cmpStr()用于判断两个字符串的大小。
要求:
(1)不允许使用字符处理库函数。
(2)在主函数以初始化的方式输入两个字符串str1、str2。调用函数lenStr()计算字符串的长度。
(3)调用函数cmpStr()判断两个字符串的大小,如果str1大于等于str2,调用函数catStr()进行两个字符串的连接,将str1连接在str2后,否则,将str2连接在str1后,调用函数lenStr()统计连接后的字符串长度。
(4)在主函数中输出两个原始字符串和各自的长度以及处理后字符串及其长度。
發泄1年前1
刘泽炎 共回答了9个问题 | 采纳率100%
第一题:
考虑到第四小问 程序用宏定义
#include
#define N 10 //定义数组元素个数
void fun(int a[ ])
{
int max=0,min=0;
for(i=0;ia[max])
{
max=i;
}
if(a[i]
C语言用指针引用数组元素如下所示定义,对数组a中元素的正确引用是() Cint a[2][3], (*p)[3];p =
C语言用指针引用数组元素
如下所示定义,对数组a中元素的正确引用是() C
int a[2][3], (*p)[3];
p = a;

A、(p+1)[0]
B、*(*(p+2)+1)
C、*(p[1]+1)
D、p[1]+2
这个(*p)[3]经过赋值之后是个什么东西,是几维数组了.为什么选择C啊
这个(*p)[3]没赋值前是个3维数组指针.赋值之后变成2维数组指针了对嘛?
hh8081年前1
张艳霞1 共回答了25个问题 | 采纳率96%
(*p)[3]是定义一个指向一维数组的指针,数组元素为三.也就是说p指向的其实是a[0],a[1],a[2]这样的形式.
p=a;其实就是把第0行的首地址赋值给p.
所以答案C中p[1]即是把第1行的首地址给p,在此基础上向后移一位,取出地址中的元素数值. *(p[1]+1)相当于a[1][1].所以是对的.
B的形式是对的,但是它相当于a[2][1],超出界限所以为错.剩下的两个格式就不对.
c语言关于指针的选择题 急急急下列说法中错误的是得分/总分A.指针指向数组元素时,指针算术运算才是有意义的。B.当指针变
c语言关于指针的选择题 急急急

下列说法中错误的是

得分/总分

  • A.

    指针指向数组元素时,指针算术运算才是有意义的。

  • B.

    当指针变量指向一维数组的时候,sizeof(数组名)和sizeof(指针变量名)的计算结果是不相同的。

  • C.

    指针的算术运算允许通过对指针变量重复自增来访问数组的元素。

  • D.

    char *country[] = {"French", "England", "Japan", "China", "Finland"};

    这条语句定义了一个字符指针数组country,并将初始化列表中的字符串保存到字符指针数组中。


cbxjan1年前1
wudi21888 共回答了13个问题 | 采纳率92.3%
A 错误,指针也是一个变量啊,变量赋值就可以运行啊,对于指针变量,注意:赋的值必须是已经映射的虚拟地址,根指向什么数组元素没有必然关系。
B正确, sizeof (数组名)是计算的数组容量,就是数组元素个数*每个元素字节数,sizeof (指针变量名),计算的指针变量类型的的size,结果是4.
C 正确,int a[5];int *p=a; *p++,*(p++),*(++p)是可以的
D正确,数组country[]元素存放的每个字符串的首地址。
若有以下定义,则正确引用数组元素的是()为什么?
若有以下定义,则正确引用数组元素的是()为什么?
int a[5],*p=a;
A *&a[5] B *a+2 C *(a+2) D *(p+5)
门口ww以内机1年前1
fdpdbfv 共回答了13个问题 | 采纳率92.3%
首先明确下a[5]表示5个元素的数组,是a[0]到a[4].
A &取地址后再加指针还是它自己,但是a[5]超出范围了,所以错
B *a就是a[0],所以就是a[0]+2
C 就是a[2]
D 实际也是a[5],超范围了
所以严格来说只取数组中数据的只有C
若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3
若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3
若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 该数组的元素中,数值最大的元素的下标值是多少?
f7ozlws1年前1
城外红尘_zz 共回答了19个问题 | 采纳率100%
a[2]=12,12是最大的,故下标为2
17).若有说明:int a[5][5]; 则对数组元素的正确引用是______.
17).若有说明:int a[5][5]; 则对数组元素的正确引用是______.
A) a[3+2][3] B) a[0,3] C) a[4][1+2] D) a[ ][2]
lxhlxh11年前1
motoocat 共回答了20个问题 | 采纳率100%
有两个答案吧:A和C
若有定义:int a[5],*p=a;则不能正确表示数组元素a[i]的是 A.*(a+i) B.*(p+i) C.p[i
若有定义:int a[5],*p=a;则不能正确表示数组元素a[i]的是 A.*(a+i) B.*(p+i) C.p[i] D.*p[i]
hfxw1年前1
Sasha86 共回答了15个问题 | 采纳率93.3%
答案是D
a[i]=*(a+i)
本题目中p=a
那么上面a换成p就有
p[i]=*(p+i)
若有定义int a[5],则下列对a数组元素或地址的引用错误的有().
若有定义int a[5],则下列对a数组元素或地址的引用错误的有().
A)&a[5]
B)a[2]
C)a++
D)*a
E)a[0]
baichengshi1年前1
白金哈密瓜 共回答了17个问题 | 采纳率88.2%
答案AC
A越界 ,
C很明显嘛,数组名是什么,是一个地址,是常量,常量可以自增么,当然不可以,lz见过2++的么,这个是错的
D和E一个意思,只不过表达起来不同而已
1.设有一个含n个元素的数组,数组元素为自然数,写出一个算法,将所有值为素数的元素排在所有值为奇数的元素之前,将所有值为
1.设有一个含n个元素的数组,数组元素为自然数,写出一个算法,将所有值为素数的元素排在所有值为奇数的元素之前,将所有值为奇数的元素排在所有值为偶数的元素之前,要求该算法的时间复杂度为O(n).
2.编写一个算法判断无向连通图中是否有回路.
小屁L1年前1
zhengkuan0203 共回答了14个问题 | 采纳率92.9%
题1,
遍历数组,如素数添加到素数链表,如奇数添加到奇数链表,如偶数添加到偶数链表,最后合并三个链表
判断素数时 可以先定义好允许范围内足够大的素数表,先查表判断,如超出表的范围,则从表中尝试选取例如50或100个不同的数利用费马小定理判断
题2,
设有i个节点,用2维数组V(i,i)表示图,用一维数组A(i)表示每个节点是否被访问,用队列L表示待访问列表
=>任选一个起始节点a,标记为已访问
=>将所有连通a的节点标记为已访问,并压入队列L,L中需要记录待访问节点名及其前溯(此处即a)
循环以下步骤:
从L中取出节点p,找到与p连通的非前溯节点,如这些节点已被访问,则存在回路跳出;
否则将这些节点标记为已访问并压入队列L(并记录其前溯p),直至队列为空
VB随机产生一个M×N二维数组(M,N缺省为4,数组元素为100以内的正整数),计算其
VB随机产生一个M×N二维数组(M,N缺省为4,数组元素为100以内的正整数),计算其
随机产生一个M×N二维数组(M,N缺省为4,数组元素为100以内的正整数),计算其所有元素中0-9出现的次数.
Forever_kk1年前1
小妖妖精 共回答了23个问题 | 采纳率95.7%
一下代码!你参考一下!
Private Sub Command1_Click()
Cls
Dim a() As Integer '定义一个动态数组
Dim b(10) As Integer '用于统计
Randomize
n = 4:m = 4
ReDim a(m,n) '重定义数组
For i = 1 To m
For j = 1 To n
a(i,j) = Rnd * 100 '赋值
Print a(i,j);
Next
Print
Next
For i = 1 To m
For j = 1 To n
For t = 0 To 9 '数组元素中查找0~9的数字
If a(i,j) = t Then b(t) = b(t) + 1
Next
Next
Next
For i = 0 To 9
Print m; "*"; n; "的数组中"; i; "出现"; b(i); "次"
Next
End Su
14、若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m 数组元素的引用中错误的是( ).
14、若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m 数组元素的引用中错误的是( ).
14、若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m 数组元素的引用中错误的是( ).
A.m[--i] B.m[2*2]
C.m[m[0]] D.m[m[i]]
raozhangwen1年前1
geimj 共回答了21个问题 | 采纳率81%
选C.
数组m的可引用范围是m[0]——m[4]
a选项等价于m[3]
b选项等价于m[4]
c选项等价于m[5]
d选项等价于m[1]
所以选择C.
若有说明 int a[3][4];则a数组元素的非法引用是
若有说明 int a[3][4];则a数组元素的非法引用是
A.x05a[0][2*1]
B.x05a[1][3]
C.x05a[4-2][0]
D.x05a[0][4]
选D为什么
小陪1年前1
archie281 共回答了17个问题 | 采纳率94.1%
对于 a[3][4],
有a[x][y],
其中x范围[0,1,2],y范围[0,1,2,3].
显然D不对
已知:int x[]={1,3,5,7,9,11},*p=x;则能正确引用数组元素的语句是
已知:int x[]={1,3,5,7,9,11},*p=x;则能正确引用数组元素的语句是
A x B *(--p) C x[6] D*(++p)
帮我每个选项分析下
B D感觉不是类似吗?我选的时候首先就把B D给排除了
mangochan1年前1
woshijojo 共回答了25个问题 | 采纳率96%
A.x是数组名.数组名代表数组首元素的地址,是一个指明针型常量.B.*(--P)是P先自减,再取所指向的元素.但p原先指向首元素x[0],自减后越界了.C.当一个数组x[]省略了中括号里的数(用来指定数组长度)时,说明花括号里为全...
设有定义int a[10],*p=a;下列对数组元素a[1]的引用中,错误的是
设有定义int a[10],*p=a;下列对数组元素a[1]的引用中,错误的是
a.p[1]
b.*(++a)
c.*(++p)
d.*(a+1)求详细解释
eddyjane1年前1
竺夜清 共回答了14个问题 | 采纳率92.9%
是错的;
这对新手应该是个很隐蔽的错误,
这里定义了int a[10];
那么这里指针a是个常量,不能用于自加
也就是说a 的值时不能改变的,不能像 a++这样
怎么求数组地址?若二维数组arr[1..M,1..N】的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则
怎么求数组地址?
若二维数组arr[1..M,1..N】的首地址为base,数组元素按列存储且每个元素占用K个存储单元,则元素arr[i,j]在该数组空间的地址为 (21)。(21) A. base+((i-1)*M+j-1)*K B.base+((i-1)*N+j-1)*KC.base+((j-1)*M+i-1)*K D.base+((j-1)*N+i-1)*K
为什么选C?
hdcwlqz1年前1
痴心娃娃 共回答了19个问题 | 采纳率89.5%
楼主你好
抓住题目的关键信息:数组元素按列存储
说明数组的存储方式是按列的 就是说:列优先与行
二维数组arr[1..M,1..N】的首地址为base
--> &arr[1,1]=base
--> 一列由M个元素
--> arr[i,j]位于第j列 的 第i个元素
--> &arr[i,j]=(j-1)*M + i-1
希望能帮助你哈
多选题 设有定义:int a[2][3];下面关于数组元素引用正确的有(   )
多选题 设有定义:int a[2][3];下面关于数组元素引用正确的有(   )
A. a[0][3]
B. a[0][0]
C. a[2][1]
D. a[1][2]
E. a[2][3]
xiangl20001年前1
liuting99999 共回答了12个问题 | 采纳率83.3%
BD
int a[ ]={1,2,3,4,5,6,7,8,9,10};则a[a[8]-a[2]*a[1]]引用的数组元素是
int a[ ]={1,2,3,4,5,6,7,8,9,10};则a[a[8]-a[2]*a[1]]引用的数组元素是
A、a[2]
B、a[3]
C、a[4]
D、a[5]
C B
nn小子1年前1
多少年以后工 共回答了12个问题 | 采纳率91.7%
编译一边结果
int a[ ]={1,2,3,4,5,6,7,8,9,10};
System.out.println(a[a[8]-a[2]*a[1]]);
答案是4 也就是a[3]
应该是答案错了
以下关于数组元素的描述,正确的是()
以下关于数组元素的描述,正确的是()
A.数组中的每一个元素具有不同的名称,不同的下标.
B.每个数组元素不可以作为单个变量来使用
C.数组中的每一个元素具有同一个名称,不同的下标.
D.数组中的每一个元素具有相同的名称,相同的下标.
an88nie1年前1
老头老太 共回答了19个问题 | 采纳率84.2%
C
若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},p=a; 则不能表示a数组元素的表
若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},p=a; 则不能表示a数组元素的表达式是( ) A) *p B)
若有以下定义和语句:
int a[10]={1,2,3,4,5,6,7,8,9,10},p=a;
则不能表示a数组元素的表达式是( )
A) *p B) a[10] C)*a D) a[p-a]
浪子野人_zz1年前1
tyccc 共回答了16个问题 | 采纳率93.8%
不能表示a数组元素的表达式是( B) a[10] )----因为数组a的最大下标只能是9,即a[9],
a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],一共10个元素
14、若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m 数组元素的引用中错误的是( ).
14、若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m 数组元素的引用中错误的是( ).
14、若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m 数组元素的引用中错误的是( ).
A.m[--i] B.m[2*2]
C.m[m[0]] D.m[m[i]]
我是老二哥1年前1
feiniao2002002 共回答了15个问题 | 采纳率86.7%
A:先对i进行自减1得3 m[3]=2
B:先得2*2=4 m[4]=1
C:先得m[0]=5 m[5] 其中索引值5已大于边界值4(在c中数组索引值从0开始.这里共5个元素,最大索引值为4)
D:先得m[i]=m[4]=1 m[1]=4