| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 847 人关注过本帖
标题:跪求C语言基础编程题 多谢多谢
只看楼主 加入收藏
wangbaiusi
Rank: 1
等 级:新手上路
帖 子:13
专家分:3
注 册:2009-10-26
结帖率:66.67%
收藏
 问题点数:0 回复次数:4 
跪求C语言基础编程题 多谢多谢
有了结果却不知道怎么得出来的   能帮忙说下具体的步骤么  多谢大哥大姐
第一题  下面程序的运行结果是?  7,1
  
  #i nclude "stdio.h"
main()
{int a,b,d=341;
  a=d/10%9
  b=(9)&&(-1);
  printf("%d,%d",a,b);
}


第二题  当a=1,b=2,c=4,d=3,执行完下面一段程序后X的值是: 3
      
        if(a<b)
          if(c<d)  x=1;
          else
             if(a<c)
                if(b>d)  x=2;
                else  x=3;
              else  x=6;
          else  x=7;


第三题   
#i nclude "stdio.h"
main()
    {float a,b
    scanf("%f",%a);
    if(a<10.0) b=1.0/a;
    else if((a<20.0)&&(a>=15.0))  b=1.0/(a+2.0);
    else if (a<14.0) b=2.0/a;
    else b=10.0;
    print("%f\n",b);
}     
若运行时输入12.0(回车),则此程序输出结果是? 0.166667    可是为什么能得到这个数呢?



第四题  下面程序运行结果是? -4 4 0 4 3  为什么呢?
main()
{ int a[6],i;
  for(i=1;i<6,i++)
  { a[i]=9*(i-2+4*(i>3))%5;
      printf("%2d",a[i]);
      }
}
搜索更多相关主题的帖子: C语言 基础 
2009-10-27 11:16
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
第一题  下面程序的运行结果是?  7,1
  
  #i nclude "stdio.h"
main()
{int a,b,d=341;
  a=d/10%9//优先级除和余是同级所以从左往右算先做(341除10=34)取整,再做取余余7
  b=(9)&&(-1);//&&是逻辑运算符非o即为真(1表示)所以整个式子值为1
  printf("%d,%d",a,b);
}


第二题  当a=1,b=2,c=4,d=3,执行完下面一段程序后X的值是: 3
      
        if(a<b)
          if(c<d)  x=1;
          else
             if(a<c)
                if(b>d)  x=2;
                else  x=3;
              else  x=6;
          else  x=7;
程序改改
if(a<b)
{
    if(c<d)  
        x=1;
    else
    {
        if(a<c)
        {
            if(b>d)  
                x=2;
            else  
                x=3;
        }
              
        else  
            x=6;
    }
}
else  x=7;
这样就清晰了自己分析吧·

第三题   
#include "stdio.h"
main()
    {float a,b
    scanf("%f",%a);
    if(a<10.0) b=1.0/a;//首先12>10所以不满足执行下个判断
    else if((a<20.0)&&(a>=15.0))  b=1.0/(a+2.0);//不满足继续往下(12<20成立,但是12>15不成立所以&&结果为不成立即0)
    else if (a<14.0) b=2.0/a;//满足执行2.0/12=0.16667说白了就是六分之一
    else b=10.0;// 这个就不执行
    print("%f\n",b);
}     
若运行时输入12.0(回车),则此程序输出结果是? 0.166667    可是为什么能得到这个数呢?









ps:以上有错还望高手指点

[ 本帖最后由 jiangwu10057 于 2009-10-27 12:01 编辑 ]
2009-10-27 11:18
xiefeng122
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:126
专家分:139
注 册:2009-4-1
收藏
得分:0 
#i nclude "stdio.h"
main()
{int a,b,d=341;
  a=d/10%9 //先做d/10,都是整型所以结果取整为34,再做34%9取余
  b=(9)&&(-1); //非0即为1,这是bool表达式,是逻辑中的与计算
  printf("%d,%d",a,b);
}
2009-10-27 11:23
xiefeng122
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:126
专家分:139
注 册:2009-4-1
收藏
得分:0 
建议LZ多看教材,比在这问学习效率要高很多,自己找出的答案比问的答案要有用
2009-10-27 11:25
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 

第四题  下面程序运行结果是? -4 4 0 4 3  为什么呢?
main()
{ int a[6],i;
  for(i=1;i<6,i++) //  这句还是错的汗 for(i=1;i<6;i++)
  { a[i]=9*(i-2+4*(i>3))%5;
      printf("%2d",a[i]);
      }
}  
//首先我还没学数组
所以只能讲下目前的见解(我还是有见过的)
a[6]应该是说这个数组含有6个元素(个人认为:套用集合的元素和集合的关系)
for的做法是  
步次    i    条件 (i<6)    运算(i++)结果       运算a[i]=9*(i-2+4*(i>3))%5;(先做i>3这里的i是最前面的i即在第一次运算时为1第一步是为真即为0再做4*0=0在做1-2=-1再做-1+0再做9*(-1)=-9再做被5余等-4之后都类似)
1     1       成立    i=2            -4
2    2    成立        i=3            0
3    3    成立        i=4            4
4    4    成立        i=5            4
5    5    成立        i=6            3
6    6   不成立       i=7     
       我在vc里调试了下
貌似楼主给的结果也是错的
图片附件: 游客没有浏览图片的权限,请 登录注册


ps:
大侠我理解错的地方还望指出谢谢
做这些主要是锻炼自己呵呵
发作业的楼主实在很无语·
作业要自己做才有效果


[ 本帖最后由 jiangwu10057 于 2009-10-27 12:03 编辑 ]
2009-10-27 11:57
快速回复:跪求C语言基础编程题 多谢多谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042693 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved