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语言,上机操作很重要的,不要只看书,硬记语法,只有多上机多实践才能学好!
温馨提示:答案为网友推荐,仅供参考