首页 > 软件开发 > C语言 >

如何备考C语言二级考试之程序运行结果分析篇

来源:互联网 2023-03-16 19:11:46 335

在C语言二级考试中,给出C语言小程序,让考生分析运行结果的题目比较多,相对来说这方面的题目比较简单,只要细心推导,得出结果不难。下面就由电仔谈谈这方面的解题经验,主要是把我解题的过程写出来,而不是讲解理论。qRB办公区 - 实用经验教程分享!

工具/原料

  • 历年C语言二级考试真题

方法/步骤

  • 1

    程序:qRB办公区 - 实用经验教程分享!

    #include stdio.h>qRB办公区 - 实用经验教程分享!

    int main(int argc,char **argv)qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    int x=10,y=20,t=0;qRB办公区 - 实用经验教程分享!

    if(x==y)t=x;x=y;y=t;qRB办公区 - 实用经验教程分享!

    printf(“%d %d\n”,x,y);qRB办公区 - 实用经验教程分享!

    return 0;qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    分析程序运行结果为?qRB办公区 - 实用经验教程分享!

    qRB办公区 - 实用经验教程分享!

    电仔的解题步骤:qRB办公区 - 实用经验教程分享!

    把 if(x==y)t=x;x=y;y=t; 语句这样书写qRB办公区 - 实用经验教程分享!

    if(x==y)qRB办公区 - 实用经验教程分享!

    t=x;qRB办公区 - 实用经验教程分享!

    x=y;qRB办公区 - 实用经验教程分享!

    y=t;qRB办公区 - 实用经验教程分享!

    或者干脆这样书写qRB办公区 - 实用经验教程分享!

    if(x==y)qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    t=x;qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    x=y;qRB办公区 - 实用经验教程分享!

    y=t;qRB办公区 - 实用经验教程分享!

    可以看出 x==y 为假, t=x; 语句不执行qRB办公区 - 实用经验教程分享!

    x=y,也就是x=20,t不变,也就是t=0qRB办公区 - 实用经验教程分享!

    那么 printf(“%d %d\n”,x,y ); 语句打印输出qRB办公区 - 实用经验教程分享!

    20 0qRB办公区 - 实用经验教程分享!

    图为在Linux系统下编程验证,图中黑色部分为程序输出结果qRB办公区 - 实用经验教程分享!

    如何备考C语言二级考试之程序运行结果分析篇qRB办公区 - 实用经验教程分享!

  • 1该信息非法爬取自百度经验
  • 2

    程序:qRB办公区 - 实用经验教程分享!

    #include stdio.h>qRB办公区 - 实用经验教程分享!

    main()qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    int i,n[5]={0};qRB办公区 - 实用经验教程分享!

    for(i=1;i=4;i );qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    n[i]=n[i-1]*2 1; printf("%d",n[i])qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    printf("\n");qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    则程序输出结果是?qRB办公区 - 实用经验教程分享!

    qRB办公区 - 实用经验教程分享!

    电仔的解题步骤:qRB办公区 - 实用经验教程分享!

    for(;14;i );qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    n[1]=n[1-1]*2 1; printf("%d",n[1]);qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    上面是第一次循环,n[1]=0*2 1=1,则 printf("%d",n[i]); 输出1qRB办公区 - 实用经验教程分享!

    qRB办公区 - 实用经验教程分享!

    for(;24;i );qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    n[2]=n[2-1]*2 1; printf("%d",n[2]);qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    上面是第二次循环,n[2]=n[1]*2 1=3,则 printf("%d",n[i]); 输出3qRB办公区 - 实用经验教程分享!

    qRB办公区 - 实用经验教程分享!

    for(;34;i );qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    n[3]=n[3-1]*2 1; printf("%d",n[3]);qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    上面是第三次循环,n[3]=n[2]*2 1=3,则 printf("%d",n[i]); 输出7qRB办公区 - 实用经验教程分享!

    qRB办公区 - 实用经验教程分享!

    for(;4==4;i );qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    n[4]==n[4-1]*2 1; printf("%d",n[4]);qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    上面是第四次循环,n[4]=n[3]*2 1=3,则 printf("%d",n[i]); 输出15qRB办公区 - 实用经验教程分享!

    结束循环后执行 printf("\n"); 输出换行qRB办公区 - 实用经验教程分享!

    最后我们可以看到的输出为qRB办公区 - 实用经验教程分享!

    13715qRB办公区 - 实用经验教程分享!

    图为在Linux系统下编程验证,图中黑色部分为程序输出结果qRB办公区 - 实用经验教程分享!

    如何备考C语言二级考试之程序运行结果分析篇qRB办公区 - 实用经验教程分享!

  • 3

    程序:qRB办公区 - 实用经验教程分享!

    #includestdio.h>qRB办公区 - 实用经验教程分享!

    main()qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    char c1,c2;qRB办公区 - 实用经验教程分享!

    scanf(“%d”,(int *)&c1);qRB办公区 - 实用经验教程分享!

    c2=c1 9;qRB办公区 - 实用经验教程分享!

    printf(“%c%c\n”,c1,c2);qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    字符0的ASCII码值为48,若程序运行时从键盘输入48后回车,则输出结果为?qRB办公区 - 实用经验教程分享!

    qRB办公区 - 实用经验教程分享!

    电仔的解题步骤:qRB办公区 - 实用经验教程分享!

    执行完 scanf(“%d”,(int *)&c1); 后,c1的值为48,对应的ASCII码为字符0qRB办公区 - 实用经验教程分享!

    执行完 c2=c1 9; 后,c2的值为57,对应的ASCII码为字符9(0 9)qRB办公区 - 实用经验教程分享!

    那么执行 printf(“%c%c\n”,c1,c2); 输出qRB办公区 - 实用经验教程分享!

    09qRB办公区 - 实用经验教程分享!

    图为在Linux系统下编程验证,图中黑色部分为程序输出结果qRB办公区 - 实用经验教程分享!

    如何备考C语言二级考试之程序运行结果分析篇qRB办公区 - 实用经验教程分享!

  • 4

    程序:qRB办公区 - 实用经验教程分享!

    #include stdio.h>qRB办公区 - 实用经验教程分享!

    main( )qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    int a=1, b=0;qRB办公区 - 实用经验教程分享!

    if( !a ) b ;qRB办公区 - 实用经验教程分享!

    else if( 0==a) if(a) b =2;qRB办公区 - 实用经验教程分享!

    else b =3;qRB办公区 - 实用经验教程分享!

    printf( "%d\n",b );qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    程序运行的输出结果是?qRB办公区 - 实用经验教程分享!

    qRB办公区 - 实用经验教程分享!

    电仔的解题步骤:qRB办公区 - 实用经验教程分享!

    qRB办公区 - 实用经验教程分享!

    为了方便理解,我把主函数整理为等效的布局和表达形式qRB办公区 - 实用经验教程分享!

    main( )qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    int a=1, b=0;qRB办公区 - 实用经验教程分享!

    if( !a ) qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    b ;qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    else if( a==0)qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    if(a)qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    b=b 2;qRB办公区 - 实用经验教程分享!

    } qRB办公区 - 实用经验教程分享!

    elseqRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    b=b 3;qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    printf( "%d\n",b );qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    这样就容易看出, !a 为假, a==0 也为假,所有条件语句括号内的语句都得不到执行,变量b的值不变所有 printf( "%d\n",b ); 输出qRB办公区 - 实用经验教程分享!

    0qRB办公区 - 实用经验教程分享!

    对这题还不能理解的读者欢迎在评论中提出,图为在Linux系统下编程验证,图中黑色部分为程序输出结果qRB办公区 - 实用经验教程分享!

    如何备考C语言二级考试之程序运行结果分析篇qRB办公区 - 实用经验教程分享!

  • 5

    程序:qRB办公区 - 实用经验教程分享!

    #include stdio.h>qRB办公区 - 实用经验教程分享!

    main( )qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    int a=1, b=2;qRB办公区 - 实用经验教程分享!

    while( a6 ) { b =a; a =2; b%=10; }qRB办公区 - 实用经验教程分享!

    printf( "%d, %d\n",a, b );qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    则程序的运行结果是?qRB办公区 - 实用经验教程分享!

    qRB办公区 - 实用经验教程分享!

    电仔的解题步骤:qRB办公区 - 实用经验教程分享!

    同理,我也把main函数整理一下qRB办公区 - 实用经验教程分享!

    main( )qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    int a=1, b=2;qRB办公区 - 实用经验教程分享!

    while( a6 ) { b=b a; a=a 2; b=b; }qRB办公区 - 实用经验教程分享!

    printf( "%d, %d\n",a, b );qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    接着推导while循环何时结束qRB办公区 - 实用经验教程分享!

    while( 16 ) { b=2 1; a=1 2; b=3; }qRB办公区 - 实用经验教程分享!

    上面是第一循环,最后 b=3 ,a=3qRB办公区 - 实用经验教程分享!

    while( 36 ) { b=3 3; a=3 2; b=6; }qRB办公区 - 实用经验教程分享!

    上面是第一循环,最后 b=6 ,a=5qRB办公区 - 实用经验教程分享!

    while( 56 ) { b=6 5; a=5 2; b=11; }qRB办公区 - 实用经验教程分享!

    上面是第一循环,最后 b=1,a=7qRB办公区 - 实用经验教程分享!

    while( 16 )qRB办公区 - 实用经验教程分享!

    条件不成立,循环结束执行 printf( "%d, %d\n",a, b ); 输出qRB办公区 - 实用经验教程分享!

    7, 1qRB办公区 - 实用经验教程分享!

    图为在Linux系统下编程验证,图中黑色部分为程序输出结果qRB办公区 - 实用经验教程分享!

    如何备考C语言二级考试之程序运行结果分析篇qRB办公区 - 实用经验教程分享!

  • 6

    程序:qRB办公区 - 实用经验教程分享!

    #include include>qRB办公区 - 实用经验教程分享!

    main( )qRB办公区 - 实用经验教程分享!

    {qRB办公区 - 实用经验教程分享!

    char s[ ]="rstuv";qRB办公区 - 实用经验教程分享!

    printf( "%c\n",*s 2 );qRB办公区 - 实用经验教程分享!

    }qRB办公区 - 实用经验教程分享!

    电仔的解题步骤:qRB办公区 - 实用经验教程分享!

    这题牵涉到指针数组,有时间我再写个指针数组的专题qRB办公区 - 实用经验教程分享!

    *s 2 等效为 (*s) 2qRB办公区 - 实用经验教程分享!

    也就是 'r' 2 ,换句话说取出字符ASCII的码值加2,刚好是 t 的码值qRB办公区 - 实用经验教程分享!

    输出和"rstuv"的‘t’没有一点关系, *s 2 要是理解为 *(s 2) 输出也是 tqRB办公区 - 实用经验教程分享!

    但是这样理解是错的,比如把对应该语句改为 char s[ ]="rsuuv";qRB办公区 - 实用经验教程分享!

    那么输出结果是 t 而不是uqRB办公区 - 实用经验教程分享!

    图为在Linux系统下编程验证,图中黑色部分为程序输出结果qRB办公区 - 实用经验教程分享!

    如何备考C语言二级考试之程序运行结果分析篇qRB办公区 - 实用经验教程分享!

  • 注意事项

    • 这是个人的解题思路,读者如果有更好更快的步骤欢迎反馈
    • 文中可能存在的错误,读者如果发现请务必指出

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!qRB办公区 - 实用经验教程分享!


    标签: 备考C语言

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码