包括 stdio h main int a 8 , p printf 为 p a p a 8 p 扫描 d ,p 输入 8 位数字

发布于 科技 2024-04-02
12个回答
  1. 匿名用户2024-01-27

    White Mouseybz,我对这个问题有一个疑问:为什么 scanf 在这里要求 9 个条目? 不应该是8次吗?

    #include

    int main()

    int a[8], p;

    printf("输入 8 个数字:");

    for (p=a; pfor (p=a; preturn 0;

    在我修改后的程序中,循环次数相同,但是 printf 打印了 8 个数字,而 scanf 必须输入 9 次,这是什么原因?

    我明白了原因 - 问题不在于循环次数,而是 - scanf("%d ", p);这里有一个空间! Scanf 跳过空格来读取下一个字符,因此您必须输入另一个数字。 此处的空格包括:

    空格、制表符、换行符、回车符和分页符。 只需删除空格即可。

  2. 匿名用户2024-01-26

    找到另一个原因,你的程序没有错!

    有一点需要注意,你说的是输入8个数字,但是p关于输入9个数字的问题,双为什么是对的,他的意见!

  3. 匿名用户2024-01-25

    您给出的 C 程序有错误,*p='\0';p 应为小写,并应更改为 *p='\0';

    更正程序的结果是 C51

    完整的程序和运行过程分析如下。

    #include

    void main()

    int a=28,b;

    char s[10],*p;

    p=s;do

    b=a%16;

    if(b<10) *p=b+48;

    else *p=b+55;

    p++;a=a/5;

    while(a>0);

    p='\0';

    puts(s);

    <>进程解析。

    因为 a==28,p=s,p 指向 s[0],进入 while 循环,b=28%16=12,b>10,*p=12+55=67,所以 s[0]==c'(ASCII 代码 67),p++,p 指向 s[1],a=a 5=5

    a==5,a>0,继续while循环,b=5%16=5,b<10,*p=5+48=53,所以s[1]==5'(ASCII 代码 53),p++,p 指向 s[2],a=5 5=1

    a==1,a>0,继续while循环,b=1%16=1,b<10,*p=1+48=49,所以s[2]==1'(ASCII 代码 49),p++,p 指向 s[3],a=1 5=0

    a==0,退出 while 循环,*p='\0',所以 s[3]==0'(string terminator),输出字符数组 s,所以结果是 c51

  4. 匿名用户2024-01-24

    **为:int main()

    最初,m=9,进入for循环,确定m>0,然后执行循环语句。

    如果 9%3==0 为 true,则运行 printf 语句,首先 --m 得到 8,然后将 m 的值打印为

    m--进入下一个循环到7,确定m>0,执行循环语句。

    如果 judgment, 7%3=1≠0, m--输入下一个循环为 6,判断 m>0,执行循环语句。

    如果 6%3==0 为 true,则运行 printf 语句,首先 --m 得到 5,然后将 m 的值打印为

    m--输入下一个循环为4,确定m>0,执行循环语句。

    如果 judgment, 4%3=1≠0, m--进入下一个循环为 3,判断 m>0,执行循环语句。

    如果 3%3==0 为 true,则运行 printf 语句,首先 --m 得到 2,然后将 m 的值打印为

    m--输入下一个循环为1,确定m>0,执行循环语句。

    如果判断,1%3=1≠0,m--进入下一个循环为0,判断m>0不成立,跳出循环,程序结束。

    所以最终的输出是:852

    请注意,首先执行 --m--,然后返回 m 的值; m--首先返回 m 的值,然后执行 --; 看

  5. 匿名用户2024-01-23

    总结。 你好亲爱的,如果 n = 0,则返回第一个元素的数组 x,例如。

    你好亲爱的,如果 n = 0,则返回第一个元素的数组 x,例如。

    问题 3. 答案是

    你好,是的。

    为什么。 为什么错了。

    你好,因为 c 没有 ()。

  6. 匿名用户2024-01-22

    ASCII 代码按顺序列出。

    例如,小写字母顺序:a、b、c、d、e、f、g,..x、y、z,相邻字母之差为1,从a递增至z

    例如,大写的顺序回答:a、b、c、d,..x、y、z,相邻字母之间的差值为 1,从 a 到 z 递增

    你不需要记住他们的代码是什么,你只需要知道顺序。

    int x='f';

    x-'a'就是这样'f' - 'a' 。按 A、B、C、D、E、F、ASCII 码差 5 的顺序,'f' - 'a'等于 5。

    x-'a'+1 等于 6。

    a'+ 6 到 a、b、c、d、e、f、g、h、i、j,第 6 个字母的右边是 g。

    A、G

  7. 匿名用户2024-01-21

    你好! 非常乐意为您解答。

    源输出为 a, g:

    #include

    main()

  8. 匿名用户2024-01-20

    运行 m=a>b,如果条件为 false,则 m=0;&&& 前面是 0,n=c>d 不执行,所以 n=2

  9. 匿名用户2024-01-19

    你的程序相当于下面的程序,我稍微改了一下,看得更清楚:

    #include

    #include

    void fun (char*w,int m)}main()

    按照你的意图,我会把我评论的两个陈述移到循环的末尾。 即:

    虽然 (p1 是在你原来的基础上改变的,但这就是它被改变成这样的:

    而(P1 楼层主参考。

    祝你好运!

  10. 匿名用户2024-01-18

    第一:看程序执行:

    初始值为 a=1,b=2

    1<8 所以 b=b+a=2+1=3

    a=a+2=1+2=3

    然后在 for 语句中执行 a++, a=4

    4<8 所以 b=b+a=3+4=7

    a=a+2=4+2=6

    然后在 for 语句中执行 a++, a=7

    7<8 所以 b=b+a=7+7=14

    a=a+2=7+2=9

    然后在 for 语句中执行 a++,a=10

    如果 10 不小于 8,则执行 for 语句。 结果 10,14Second:在 for 语句中将 a++ 更改为 ++a,与上面的输出相同。 因为 A++ 和 ++A 是在

    是一样的,不影响后续的判断和结果输出。

    第三:以我的拙见,你认为输出结果是9,14是因为你不理解clear for语句的执行吗? 而不是误会。

    A++ 与 ++A。

  11. 匿名用户2024-01-17

    我认为改为 ++a 后,b 的值发生了变化,a 仍然保持不变。

  12. 匿名用户2024-01-16

    稍微了解一下:先用a++,再加; +a 使用前添加。

相关回答