在C语言中这个程序段中a[i]怎么理解 #include<stdio.h> main() {

在C语言中这个程序段中a[i]怎么理解 #include<stdio.h> main() {,第1张

main()

{

int i,a[10];//定义一个整形变量i和一个整型数组a,a含有十个整形元素

for (i=0;i<10; i++ )//for循环,循环10次

a[i]=i;//使用for循环给数组a赋值,a[0]=0,a[1]=1,a[9]=9;

for (i=9;i>=0;)//循环10次,但是请注意,这里for循环的更新条件缺失i--,会导致程序死循环

printf ("%4d",a[i]);//使用for循环逆序输出数组a的元素

printf("\n");

}

问题补充:pm和(p)m的值是不是一样的???

不一样的

pm是先进行处理,也就是先处理pm,再取,而p是一个地址,所以pm是错误的

(p)m是先取p的内容,再取m成员

选A

A (++p)->m

初始的定义为p=s,

++p是先将p指向下一个成员的地址,也就是s[1]的地址,

而s[1]的m值也就是&b,所以(++p)->m值为2

B (p++)->m

这个和A就一个不同,A中是++p,是先将p指向下一个成员的地址,再代入进行计算,而B这里是,先将p原先的值代入进行计算,再进行++处理。

所以,在这里p仍然指向s,也就是s[0]的地址,而s[0]的m值也就是&a,

所以(p++)->m值为1

C (p)m

初始的定义为p=s,p指向s,也就是s[0]的地址,而s[0]的m值也就是&a,

所以(p)->m值为1

D (p++)->m

这个就不对了,(p++)->m是一个地址值,所以不对

{printf("%3d",x-=2);}

这个就是x=x-2,也就是说x变成1了再输出,输出1

--x就是x=x-1的简便写法,这时候x变成0,!0就是1,所以继续做do这个循环

第二次x再减去2变成-2,所以输出-2

--x再减去1变成-3,!-3为0所以循环做到这就停止了

最后输出

1

-2

(1) for(t=1;t<=100;t++)

(2) {

(3) scanf("%d",&x);

(4) if(x<0)continue;

(5) printf("%3d",t);

(6) }

t=1时,t<=100成立,执行第三行,需要你输入一个整数,存入x。

输入之后,执行第四行,对X进行判断。

当x为小于0的整数,那么,执行continue语句,则直接忽略第五行语句,继续执行第一行语句,但整个循环不会结束,故排除选项D。

当x为不小于0的整数,那么,不执行continue语句,转而执行第五行语句,输出你输入的整数。然后继续执行第一行语句。因此,选项A和选项C可以排除了。

rand()取1至0~RAND_MAX之间的整数。

y=rand()%30+1;是取30的余数(就是0<rand()%30<=29),再加1,所以取值范围为0<y<=30。

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

以上就是关于在C语言中这个程序段中a[i]怎么理解 #include<stdio.h> main() {全部的内容,包括:在C语言中这个程序段中a[i]怎么理解 #include<stdio.h> main() {、C语言程序设计、c语言的问题,程序段如下 int x=3 do{printf("%3d",x-=2);} while(!(--x))等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10130713.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存