有3到C语言程序设计题目不懂,帮帮忙解释一下。。谢谢!!

1,以下程序段的输出结果是:(选B,为什么?)
for(i=4;i>1;i++)
for(j=1;j<i;j++)
putchar('#')
A # B ##### C ## D ###
2,若给定条件表达式(M)?(a++):(a--),则其中表达式M:(选C,为什么?)
A和(M==0)等价 B和(M==1)等价 C和(M!=0)等价 D和(M!=1)等价
在执行胰腺癌程序段时,不能出现的运行结果是:(选C,为什么?解释一下D什么情况出现)
int x;
scanf("%d",&x);
if(x>250) putchar('X');
if(x<250) putchar('Y');
else putchar('X');
A显示X B显示Y C显示XY D显示XX
第一个问题是我打错了.
for(i=4;i>1;i--)
for(j=1;j<i;j++)
putchar('#')
最后选B,就是输出5个#,为什么??解释一下,谢谢!!

1、我估计这题要么是本身有毛病,要么就是你不小心写错了,你再核对一下。
for(i=4;i>1;i++)
for(j=1;j<i;j++)
putchar('#')
这个程序是个死循环,因为外层循环中i>1这个循环终止条件是终止不了程
序的.或者将其改为以下程序就可以了:
for(i=4;i>1;i--)
for(j=1;j<i;j++)
putchar('#')
如果是for循环的嵌套使用不清楚的话,我想最好还是好好看看课本。在此
我强烈推荐你看的书是十分通俗易懂的《C程序设计》(清华大学出版社谭
浩强著)
2、 如果是问号表达式的用法自己不清楚的话,还是好好看看书吧,书上讲的
更严谨些。我觉得你的问题应该不是在问号表达式本身,而是一个很小的
细节。
在说明这道题之前,现让你看两个小程序。
1、#include<stdio.h>
int main()
{
int a;
printf("Please enter the value of a:\n");
scanf("%d",&a);
if(a) printf("Yes!\n");
else printf("No!\n");
}
这个程序的功能是判断输入的数字是否为非零数。如果是,则输出Yes
否则,输出No。
这个程序看得懂吗?
如果不懂,我更改一个地方,你看看怎么样。
if(a) printf("Yes!\n");
改为:
if(a!=0) printf("Yes!\n");
其实改前改后,结果是一样的!应为在C语言中,非零值即为真,零为假
程序中if语句判断的时候a的值如果是非零值,则执行相应的操作。也
可以认为a是a!=0的简写形式。
选C你应该是理解了吧
3、 还是像前两题一样,知识点自己看书。我只在此说明一些可能出现的
细节上的问题:
下面的代码是题目中的代码:
int x;
scanf("%d",&x);
if(x>250) putchar('X');
if(x<250) putchar('Y');
else putchar('X');
将上面的程序和下面的做一对比:
int x;
scanf("%d",&x);
if(x>250) putchar('X');
else if(x<250) putchar('Y');
else putchar('X');
有没有发现不同???
在第二个程序中多了一个else!
在第一个程序中,“if(x>250) putchar('X');”是一个“独立的”
if语句,“if(x<250) putchar('Y');else putchar('X');”在
一起是一个“独立的”if语句。
在第二个程序中,
“if(x>250) putchar('X');
else if(x<250) putchar('Y');
else putchar('X');”在一起作为一个整体是一个if语句。
--------------------------------------------------
下面分别说明两个程序的执行结果:
输入值设为x
程序一:
输入 相应输出
251 ------> XX
250 ------> X
249 ------> Y
* * * * * * * * * * * * * *
程序二:
输入 相应输出
251 ------> X
250 ------> X
249 ------> Y

学习C语言,上机操作很重要的,不要只看书,硬记语法,只有多上机多实践才能学好!
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-08
你第一个好像错了 for(i=4;i>1;i++)是无限循环 应该是i--
第一个 第一次循环i=4 内层j循环在j=1 =2 =3时输出###
第二次i=3 内层j循环在j=1 =2 时输出##
第二次i=2 内层j循环在j=1 时输出#
第二次i=2 内层j循环不输出
第二个

第三个 当x=250 时输出X在第二个if里
当x>250 时输出XX
当x<250 时输出Y
第2个回答  2010-09-08
1.i++改成i--,不然就是无限循环了
main()
{
int i,j;
for(i=4;i>1;i--)
for(j=1;j<i;j++)
putchar('#');
printf("\n");
}

2.
M = 0 时。 m ? (a++) :(a--) 条件为:false,返回 a--
M != 0 时。 m ? (a++) :(a--) 条件为:true,返回 a++

条件 (M != 0) ,
M==0时, M!=0 为 false;
M!=0时, M!=0 为 true;
所以 M 与 M != 0 等价

3.同时显示XY 的条件永远不可能出现,即没有一个整数即大于250又小于250.
D 出现为输入大于250的数。即输入 >=251 时。就出现XX
第3个回答  2010-09-08
1 。无限循环 哪个都不对。 要不是你程序打错了,要不就是题有问题。
2. 选择C 正确。分析如下:
M = 0 时。 m ? (a++) :(a--) 条件为:false,返回 a--
M != 0 时。m ? (a++) :(a--) 条件为:true,返回 a++
这个不用多说了吧。
条件 (M != 0) ,
M=0 时 , M!=0 为 false;
M!=0时, M!=0 为 true;
所以 M 与 M != 0 等价
3.同时显示XY 的条件永远不可能出现,即没有一个整数即大于250又小于250.
D 出现为输入大于250的数。即输入 >=251 时。就出现XX

有3到C语言程序设计题目不懂,帮帮忙解释一下。。谢谢!!
1、我估计这题要么是本身有毛病,要么就是你不小心写错了,你再核对一下。for(i=4;i>1;i++)for(j=1;j1这个循环终止条件是终止不了程 序的.或者将其改为以下程序就可以了:for(i=4;i>1;i--)for(j=1;j

C语言程序设计 我是C语言初学者,有一道看程序的题我有些弄不懂,还请...
答案:C A:是如果a>b,则一程序一直执行到“b=c;”,效果是换a与b的值;B:是如果a>b,则执行{ }里的语句,效果是交换a与b的值;C:是如果a>b,则执行c=a; 无论a是否大于b,c的值都要给a,a-b;没什么作用;D:是如果a>b,则效果是交换a与b的值,c相当于中转站,a-b;没什么作...

大学c语言程序设计问题
看了下面的回答,虽然没错,但提问者看起来好像还不是很熟悉C语言,所以我想详细地解释一下。x+=5意思是x=x+5;x-=3的意思是x=x-3。我把你的代码敲好了,每行代码右边的绿字是注释,黑色窗口里是x和y的最终结果:整个过程一共循环了四次,下面是每次循环要执行的过程。第一次循环:x=1,...

关于C语言程序设计的几道题。学霸们帮一下忙吧。
printf("所输入的字符串不是回文字符串\\n");return 0;} printf("所输入的字符串是回文字符串\\n");} 第五题:include <stdio.h> include <string.h> int main(){ int a[3][4];int b[4][3];int i,j;for(i=0;i<3;i++)for(j=0;j<4;j++){ scanf("%d",&a[i][j]);b...

C语言的一道题,看了3个钟我都不知道错在哪~急死了,哥们帮帮忙~感激...
1. C 在 C89 中,main( ) 是可以接受的。Brian W. Kernighan 和 Dennis M. Ritchie 的经典巨著 The C programming Language 2e(《C 程序设计语言第二版》)用的就是 main( )。不过在最新的 C99 标准中,只有以下两种定义方式是正确的:int main( void )int main( int argc, char *argv[...

关于c语言程序设计的问题求大神帮忙!万分感谢!
(1)编辑(把程序代码输入,交给计算机)(2)编译(成目标程序文件.obj)编译是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析、语法分析、语义检查和中间代码生成、代码优化、目标代码...

...个c语言课程设计 现在给出三道 希望大家 帮帮忙 编写一个工资管理的...
程序要求主函数是一个功能选择菜单,... 这边的是第二和三题编写一个学生成绩管理的程序。由键盘输入数据(最好要考虑输入数据输入的格式及输入数据的有效性),然后进行以下的功能实现。程序要求主函数是一个功能选择菜单,其它各功能都用各自的函数实现。要求至少有20个学生的原始数据。原始数据如下:学号 姓名 C程序...

C语言程序设计题,请知道的帮忙解答下,谢谢
第2个看不懂 6 A B中指数必须用整数表示; C中do为关键字,不能用作变量;D中变量不能以数字开头。7 D 语句以分号结尾,D中有两个分号。其他的都正确

帮忙讲一下这几道C语言的题,要过程啊,谢了 算的我都有点蒙了
第一题 1main( ){int x=1,a=0,b=0; \/\/初始定义 switch(x){ \/\/switch选择 ...SWITCH语句后面是不带{}这个玩意的 case0:b++ ---加个;case1:a++ ---加个;case2:a++;b++;} printf("a=%d,b=%d",a,b)---加个;} 正确的结果是a=2 b=1 先运行了CASE1 由于没B...

C语言高手帮忙做这三道题,要详解 谢谢拉!!
x"的值为0时。所以就是x==0.2、C 这题和上题一样,就是(m)表达式为真时,执行a++;为假时,执行a-。表达式m的真假与表达式m!=0一样,所以选C。3、C define是宏定义,这里的效果就是把s(m,n)替换成m\/n,所以s(4+2,2+1)进行替换后就成了4+2\/2+1=4+1+1=6。所以选C ...

相似回答