c语言的一道题若有以下程序段:struct st{int n;int *m;};int a=2,b=3,c=5;struct st s[3]=({101,&a},{102,&c},{103,&b}}; main(){struct st *p;p=s;…}则以下表达式中值为5的是( ).A)(p++)->mB)*(p++)->mC)(*p).mD)*(++p)->m

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/26 13:42:19

c语言的一道题若有以下程序段:struct st{int n;int *m;};int a=2,b=3,c=5;struct st s[3]=({101,&a},{102,&c},{103,&b}}; main(){struct st *p;p=s;…}则以下表达式中值为5的是( ).A)(p++)->mB)*(p++)->mC)(*p).mD)*(++p)->m
c语言的一道题
若有以下程序段:
struct st
{int n;
int *m;};
int a=2,b=3,c=5;
struct st s[3]=({101,&a},{102,&c},{103,&b}};
main()
{struct st *p;
p=s;
…}
则以下表达式中值为5的是( ).
A)(p++)->m
B)*(p++)->m
C)(*p).m
D)*(++p)->m
答案是选D 我选的是A,我觉的D选项不能这么用吧,要不就指针变量名->成员名,要不就(*指针变量名).成员名,不能这么用吧,A选项p++->和(p++)->意义一样吗?

c语言的一道题若有以下程序段:struct st{int n;int *m;};int a=2,b=3,c=5;struct st s[3]=({101,&a},{102,&c},{103,&b}}; main(){struct st *p;p=s;…}则以下表达式中值为5的是( ).A)(p++)->mB)*(p++)->mC)(*p).mD)*(++p)->m
做题目一般是用排除法,比较容易.
首先明确几点,p是指向结构体类型的指针,m是指向整形的指针,同时作为指针,想获得c的值即5,A和C可以同时排除:
A中的结果是个指针,不可能是5
C中语法错误,m是指针必须用->来访问
B和D的区别就在前加加和后加加,p是个指针,对指针做加加运算会跳过一个数据位,而数据位大小取决于p的类型,这里会跳过一个st结构体大小,p初始时指向s[0],加加之后会指向s[1],s[1]中的m指向的值正是我们需要的,显然前加加更适合,我们需要的就是加加立即生效.
至于你说的那个p++->和(p++)->的区别,没试过我无法回答你,我只能告诉你没人会这样写,如果需要自加运算,必然会加括号,属于不成文的规范.其实很多时候不用太纠结这些太细的东西.

编写以下框图的C语言程序 一道c语言题:以下程序中,while循环的循环次数是:#includemain(){ int i=0;while(i c语言的一道题若有以下程序段:struct st{int n;int *m;};int a=2,b=3,c=5;struct st s[3]=({101,&a},{102,&c},{103,&b}}; main(){struct st *p;p=s;…}则以下表达式中值为5的是( ).A)(p++)->mB)*(p++)->mC)(*p).mD)*(++p)->m 一道c语言的作业,有以下一个函数,编写一个程序,输入x的值,输出y的值.{x (x 一道c语言题目 求解释以下程序的输出结果是main(){ int x=3,y=4 printf(%d ,x=x/y);} 一道困惑的C语言程序选择题!有以下程序main(){int p[8]={11,12,13,14,15,16,17,18},i=0,j=0;while(i++ 以下程序段的运行结果是( C )for (y=1;y C语言程序填空 打印以下图形/*-------------------------------------------------------【程序填空】---------------------------------------------------------功能:打印以下图形./_____}} 请加以注释该C语言的程序段,形成星号倒三角图形, 如何用C语言程序输出以下图形 // * *** *** * 如何用C语言程序输出以下字母AABCABCDEABCDEF C语言一道题当执行以下程序段后,i的值是()j的值是()k的值是(){int a,b,c,d,i,j,k;a=10;b=c=d=5;i=j=k=0;for(;a>b;++b) i++;while(a>++c) j++;do k++;while(a>d++);5 4 6为什么k的值是6?a>d++是先判断a是否大于d, 若有 int x,y 运行以下程序段后,y 的值为 if (x = 5) { y = 2 * x + 1; } else { y = x*x + 2; }c语言的, C语言:若I,j已定义为int型,则以下程序段中循环体的总的执行次数?for(i=5;i;i- -)for(j=0;j 0在C语言中是整型变量吗?若x是整形变量,以下程序段的输出结果?for(x=3;x<6;x++)printf((x%2)?(''**d''):(''##%d ''),x); 请问一道C语言程序题输出4X4矩阵的四周元素之和 用C 语言编写一道关于随机出现26个英文字母的程序,并且判断正确率~ 帮忙编写一道c语言的程序要求:输入m,n(都