C语言的问题 谁能帮我做下
发布网友
发布时间:2022-04-22 13:32
我来回答
共6个回答
热心网友
时间:2023-10-02 15:16
第1题、B
char p[]="ABC\0ABCD\0ABCDE",p[0]=A, p[1]=B;p[2]=C;p[3]='\0'因此p[4]就指向第二个A,也就是p+4就能输出第二个D,同理p+9能输出第三个D
第2题 B
for(a=0, b=1;a<=b+2;a+=2, b--)
第一次a<=0+2成立,第二次a=a+2=2; b=0;条件a<=0+2=2因为a=2条件成立,执行
第三次a=4; b=-1条件不成立,所以循环两次
第3题 B
字符B的ASCII是十进制的66,十六进制的42,因此答案B是错误的
第4题 B
char p[]="AB\0CD\0E";
可以看到p[1]='A'; p[1]='B'; p[2]='\0'; ...类推
所以&p[0]能输出AB遇到'\0'结束,p+3指向字符C的地址,因此能输出CD遇到'\0'结束,同理p+6指向的是字符E,因此能输出字母E,这样就能输出ABCDE了
第5题 D (很明显的数组越界)
答案A,没有错,因为p的地址与a的地址相同,p-a的结果为0,因此a[p-a]=a[0];答案B &a[i]表示a[i]的地址,*(&a[i])就表示的是a[i]。答案C很明显正确,不解释
第6题:C
因为后缀++是先求表达式再自加,因此j=-i++;先计算j=-i,因为i=1所以j=-1,然后变量i再自加,因此i=2
第7题:D
因为第一次循环会执行if(b%3==1)这个语句,得到b=b+3=4,这时continue执行,直接跳到条件语句a++,这时a=2,然后再执行if(b%3==1)因为b=4所以执行这个,这时b=7,再a++,这时a=3;再执行if(b%3==1)这时b=10,再执行a++,这时a=4,这次执行if (b>=10) 跳出循环,所以a=4;
第8题 A
因为 for(x=1;x<10;x++)
for(x=10;x<10;x++)
第二个for执行后x=10,这时第二个循环条件不成立,这时x=10再判断第一个for的条件x<10同样不成立,因此循环中的语句一条都没执行,所以y的值为初值0
第9题 D
对于*数组用户必须指定除最左边的容量以外的所有容量,因此最后一个错误
第10题 本人认为选B。这个题本人答不出来,因为不知道FORTRAN是什么语言,但估计C比FORTRAN语言快,因为好像到目前为止只听过除了汇编比C快之外,还没听说其他语言比C快。
热心网友
时间:2023-10-02 15:17
1、B
2、B
3、A
4、B
5、C
6、C
7、C
8、B
9、D
10、D
以上是我做的答案,希望多LZ有用---有答案的话,做错了,希望LZ可以跟我交流,我们互相学习,谢谢!
热心网友
时间:2023-10-02 15:17
1、遇到 \0结束,+4代表从第一个\0后面的A开始读 很明显答案是 B
下面答案这么多 不说了。。
热心网友
时间:2023-10-02 15:18
bcBAD CDBAC
热心网友
时间:2023-10-02 15:18
B C B A D C D B A Co()^))o 唉
热心网友
时间:2023-10-02 15:19
这么多 。。