请C语言高手帮忙下 若有以下程序段,则不能正确引用数组元素a[1][2]的是为什么是 D

作者&投稿:征易 (若有异议请与网页底部的电邮联系)
若有以下程序段,则不能正确访问数组元素a[1][2]的是( )。 int (*p)[3]; int a[][3]={1,2,3,4,5,6,7,8,9}~

D

选D。
一个二维数组可以被认为是一个带有 x 行和 y 列的表格。下面是一个二维数组,包含 2 行和 3列:

因此,数组中的每个元素是使用形式为 a[ i , j ] 的元素名称来标识的,其中 a 是数组名称,i 和 j 是唯一标识 a 中每个元素的下标。i最大值为1,j最大值为2,超出此范围则表示错误。

扩展资料:
数组使用规则:
1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:static int a[10]={0,1,2,3,4};表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。
2.只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为:static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;(请注意:在C、C#语言中是这样,但并非在所有涉及数组的地方都这样,数据库是从1开始。)
3.如不给可初始化的数组赋初值,则全部元素均为0值。
4.如给全部元素赋值,则在数组说明中, 可以不给出数组元素的个数。例如:static int a[5]={1,2,3,4,5};可写为:static int a[]={1,2,3,4,5};动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。
参考资料:
百度百科-数组

因为D的表达本身就是错误滴哈。。没这种表示方法呢。。特别是在有关二维数组指针时一定要多注意定义滴是行指针还是列指针哟。。而你这个题目滴定义是定义为*p是行指针,因此在用行指针表示二维数组元素时的形式有:p[ i ][ j ](如同A选项),*(*(p + i)+ j) (注意:最里面的 “ * ” 号是把行指针转换为列指针),(*(p + i))[ j ] (同C选项)。。希望你能弄懂哈。。如果不了解的话,请再多看看指针表示二维数组滴相关知识哈。。


吉县19114787140: 请C语言高手帮忙下 若有以下程序段,则不能正确引用数组元素a[1][2]的是为什么是 D -
寇蝶锋珠: 因为D的表达本身就是错误滴哈..没这种表示方法呢..特别是在有关二维数组指针时一定要多注意定义滴是行指针还是列指针哟..而你这个题目滴定义是定义为*p是行指针,因此在用行指针表示二维数组元素时的形式有:p[ i ][ j ](如同A选项),*(*(p + i)+ j) (注意:最里面的 “ * ” 号是把行指针转换为列指针),(*(p + i))[ j ] (同C选项)..希望你能弄懂哈..如果不了解的话,请再多看看指针表示二维数组滴相关知识哈..

吉县19114787140: 以下有一段c语言程序 请高手详细解释一下 -
寇蝶锋珠: #include"stdio.h" //声明:标准输入输出函数库 main() //主函数 {char bell; //定义一个char型的变量bell bell=7; //bell被赋值为七 putchar(bell); //把bell输出,在ASCII码中码值为7的,是声音“滴”,所以输出就是一个声音“滴” }//)这里错了...

吉县19114787140: 求c高手帮忙,帮我分析一下下面的程序段,最好是每一行的含义都解释一下,先给20分,回答得好再加!#ifndef - DFS - BILLSVR - WORKER - H - #define - ... -
寇蝶锋珠:[答案] 从一开始到最后就是一个条件编译命令(C语言预处理命令):#ifndef 宏名语句段#endif作用:如果再此之前没有定义这样的宏名,则编译语句段;即第一行:#ifndef _DFS_BILLSVR_WORKER_H_,如果定义了宏名 DFS_BILLSVR_WOR...

吉县19114787140: (急)求高手编写以下几个c语言的程序,感激不尽.
寇蝶锋珠: 程序1: #include <stdio.h> void main() { int i,year,month,day,sum_day; printf("please inpute a date(yyyy/mm/dd):"); scanf("%d/%d/%d",&year,&month,&day); sum_day=day; for(i=1;i<month;i++) switch (i) { case 1: case 3: case 5: case 7: case 8: ...

吉县19114787140: 一套c语言题目...请高手帮忙做下.谢了 -
寇蝶锋珠: 1.A2.B3.A4.A5.D6.A7.D8.B9.B10.C 这题很难!一般认为y是double型,所以y=3/2应该等于1.5,但实际上c在计算3/2时并不知道结果是赋给一个double型变量,而3和2都是整数型,所以3/2的实际按整除运算结果是1,然后再赋值给y变量的. 假如...

吉县19114787140: C语言程序设计题,请知道的帮忙解答下,谢谢 -
寇蝶锋珠: 1、赋值的格式应为“X=什么什么”,所以B和D是错的,A和C中之所以选C是因为A里面的取余运算符“%”要求两边都是整型数据.2、此题无答案,举个例子,令X=50.00,那么要将x...

吉县19114787140: 急!!!寻求C语言高手帮忙解答!!
寇蝶锋珠: 1、下列程序段的功能是,计算输入的10个整数中正数的个数及平均值. main() { int i , n ,a; float s = 0 ; printf(“请输入10个整数:\n”); for ( n=0 ,i=0 ; i<10 ; i++) { scanf (“%d” ,&a); if(a<=0) continue; s+=a; ++n; } printf (“共有%d个正数,其平均...

吉县19114787140: C语言 以下这两段代码都比较简单 实在看不出哪儿有问题 高手帮忙看下!! -
寇蝶锋珠: while(a<=200) {if(a%3==0){}else{printf("%d ",a);}a++; }

吉县19114787140: 求高手帮忙写一段C语言程序
寇蝶锋珠: int a[4][4]={{1,2,3,4},{12,13,14,5},{11,16,15,6},{10,9,8,7}}; for(int i=0;i<4;i++){ for(int j =0;j<4;j++){ printf("%d ",a[i][j]); } printf("\n"); }

吉县19114787140: 我有一个C语言作业不知道 请高手帮下忙
寇蝶锋珠: 答案为C:6 程序执行语句 if(m++>5) ,m先用后加即m=5,所以句子的值为false,之后m的值为6,再执行else什么都不做,最后输出m--:还是和前面一样,先用后减即m=6.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网