求几道C语言问题的详细解答过程

求几道C语言问题的详细解答过程,请详细说明一下运算过程,谢谢了各位!!!!!!

1.#include <stdio.h>
main()
{int x=6,a=4,y=2,b=6;
x+=x;
printf("x=%d\n",x);
a=y;
printf("a=%d\n",a);
printf("Li is a \'cat\n。");
}
运行结果为:x=12
a=12
Li is a 'cat

这个程序我不明白最后一个输出的printf("Li is a \'cat\n。");中\'cat是什么意思?怎么能输出来'cat ?

2.#include <stdio.h>
main()
{ int a=0,b=1,c=0,d=20;
if(a)
d=d-10;
else
if(!b)
if(!c)
d=15;
else d=25;
printf("d=%d\n",d);
}
运行结果为:d=20

我不是很明白
if(a)
else
if(!b)
if(!c)这几个是什么意思?以前的程序中if ( ),括号中不是有判断语句么?上述那些怎么判断真假呀?不是很明白!!!

3。#include <stdio.h>
main( )
{ int a=1,b=0;
scanf(“%d”,&a);
switch(a)
{ case 1: b=1;break;
case 2: b=2;break;
default : b=10;}
printf("%d ", b);
}
若键盘输入5,运行结果为:10

这个题的问题是:a赋初值为1,那么输入a=5后,原来的那个初值就没有用了?被改变了么?

4.#include<stdio.h>
func(int x)
{
x=10;
printf(“%d, ”,x);
}
main( )
{ int x=20;
func(x);
printf(“%d”, x);
}
运行结果为:10,20

这个我不是很明白的是,为什么主函数和函数定义的X值不一样,而且还要输出两个数呢?

下面几个是程序填空题,没有写的都是空……
5.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。用输入0来结束输入,用i,j来放统计数,请填空完成程序。
main()
{ 空 n,i=0,j=0;
printf(“input a integer,0 for end\n”);
scanf(“%d”,&n);
while 空
{ if(n>0) i= 空 ;
if(n<0) j= 空 ;
空 ; }
printf(“i=%4d,j=%4d\n”,i,j);
}

2。下面程序的功能是在a数组中查找与x值相同的元素所在位置。数据从a[1]元素开始存放,请填空。
#include <stdio.h>
main()
{ int a[11],i,x;
printf(“input 10 integers:”);
for(i=1;i<=10;i++) scanf(“%d”,&a[i]);
printf(“input the number you want to find x:”);
scanf(“%d”, 空 );
a[0]=x; i=10;
while(x!= 空 ) 空 ;
if( 空 ) printf(“the pos of x is:%d\n”,i);
else printf(“can not find x!\n”);
}
3。下面程序的功能是在a数组中查找与x值相同的元素所在位置。
#include <stdio.h>
main()
{ int a[10],i,x;
printf(“input 10 integers:”);
for(i=0;i<10;i++) scanf(“%d”,&a[i]);
printf(“input the number you want to find x:”);
scanf(“%d”,&x);
for (i=0;i<10;i++)
if(a[i]==x)
空 ;

if( 空 )
printf(“the pos of x is:%d\n”,i+1);
else printf(“can not find x!\n”);
}谢谢各位
希望各位给予详细正确的解答,谢谢了!!!!!!我刚学C语言,不是很懂,呵呵。

我也在学C,说说我的看法,希望我们能相互交流,共同进步。

1、\是转义的意思,除了一些固定的转义字符如\n, \t之外,\后面是什么内容就输出什么。

2、if(a)
d=d-10;
else
if(!b)
if(!c)
d=15;
else
d=25;
这个在VC编译器中显示应该是这样吧,if()内为逻辑判断,即真或假,一个数的话为零即是假,不为零就是真,这里a=0,为假,所以应执行第一个else后的代码,b=20,即!b=0,也为假,所以下面什么都没执行,b=20。

3、赋值语句是这样,后一个赋值当然要覆盖前一个赋值。

4、这是变量的作用域的原因,因为x是在函数内定义的(无论主函数还是被调函数)都是局部变量(全局变量在函数外定义),局部变量只在定义它的函数内起作用,这里的两个x是在不同函数中定义的,所以即是两个不同的变量, 换句话说两个x的值存储在不同的内存单元,函数调用只是把主函数中x的值赋给被调函数中的x,被调函数中修改的它自己的x值,当然不会影响到主函数中的x值了,然后两个依次输出各自的x值。如果被调函数传递的参数为指针就不一样了,即被调函数是这样:
#include<stdio.h>
func(int * x) //指针接收
{
*x=10; //这里x是指针,指针只能接收地址,所以赋10时要在x前加
//* 号,*x表示取出x指针中的值,上面我们已经把主函数中的
//x地址赋给了被调函数的指针x,所以这里的10其实是赋到
//了主函数中的x中去了,
printf("%d,",*x); //这里输出用 *x 跟上面一样是把主函数的x值
//拿来输出
}
main( )
{
int x=20;
func(&x); //传递地址
printf("%d", x);
}
这时运行结果就是:10,10 了,在这里虽然两个x仍然是局部变量,只作用在其定义函数中,但主函数却把它的x的地址传递给了被调函数的x,也就是说func函数中的指针x存储了main函数中x的内存单元,所以两个函数中任何一个x被修改了也就修改了存储它的内存单元的值,所以两个都是10了。

5.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。用输入0来结束输入,用i,j来放统计数,请填空完成程序。
main()
{ int n,i=0,j=0;
printf(“input a integer,0 for end\n”);
scanf(“%d”,&n);
while(n) //这里跟第2题中if(a)一样,n为零才为假
{ if(n>0) i=i+1;
if(n<0) j=j+1;
scanf(“%d”,&n); //循环输入,输一个判断一个,直到输入n为零
}
printf(“i=%4d,j=%4d\n”,i,j);
}

6、下面程序的功能是在a数组中查找与x值相同的元素所在位置。数据从a[1]元素开始存放,请填空。
#include <stdio.h>
main()
{
int a[11],i,x;
printf(“input 10 integers:”);
for(i=1;i<=10;i++)
scanf(“%d”,&a[i]);
printf(“input the number you want to find x:”);
scanf(“%d”, &x);
a[0]=x; i=10;
while(x!=a[i])
i--; //这里是从后往前比较
if(i>0)
printf(“the pos of x is:%d\n”,i);
else
printf(“can not find x!\n”);
}

7、下面程序的功能是在a数组中查找与x值相同的元素所在位置。
#include <stdio.h>
main()
{
int a[10],i,x;
printf(“input 10 integers:”);
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
printf(“input the number you want to find x:”);
scanf(“%d”,&x);
for (i=0;i<10;i++)
if(a[i]==x)
break; //这里是从前往比较
if(i<10)
printf(“the pos of x is:%d\n”,i+1);
else
printf(“can not find x!\n”);
}

差不多就这样了,填空题不知道你有什么地方不清楚,所以说得也不详细
希望我的回答对你有所帮助
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-06
第一个\'cat的问题,由于'符号是C语言中的标识符,参与程序,为了区别,如果'作为单独的字符显示输出要在前面加\。
第二个,所谓的真假判断,就是判断里面的值是1还是0,1为真,0为假,由于a=0,if(a)就是if(0),为假,不执行,其他类似,!是非运算符
第三个,对,由于a是变量,最后的有效赋值才是有效地,所以a=5,执行default语句,b=10
第四个,主函数中有一个输出语句,子函数还有一个输出语句,在主函数中调用子函数时,就执行了子函数中的输出语句,输出了10,之后主函数中有执行了自己的输出语句,输出了20,所以最后输出两个数。
程序题第一个:这个只有写goto语句才能实现你所描述的功能
main()
{label:int n,i=0,j=0;//i是大于0的个数,j是小于0的个数
printf(“input a integer,0 for end\n”);
scanf(“%d”,&n); //输入一个整数
while (n!=0) //判断是否为0
{ if(n>0) i=i+1;//大于0 i+1
if(n<0) j=j+1;//小于0 j+1
goto label; }// 回到程序开头处,再次进行输入操作
printf(“i=%4d,j=%4d\n”,i,j);// 输入结束,输出i和j的值
}
第二个:
#include <stdio.h>
main()
{ int a[11],i,x;
printf(“input 10 integers:”);
for(i=1;i<=10;i++) scanf(“%d”,&a[i]);//给数组a赋值 printf(“input the number you want to find x:”);// 给x赋值
scanf(“%d”, &x );
a[0]=x; i=10;//把x的值放到a[0]
while(x!=a[i]) i--; //查找是否有和x相等的值
if(i!=-1) printf(“the pos of x is:%d\n”,i);//有,输出位置
else printf(“can not find x!\n”);//没有,输出未找到
}
第三个:
#include <stdio.h>
main()
{ int a[10],i,x;
printf(“input 10 integers:”);//前面和上个程序一样
for(i=0;i<10;i++) scanf(“%d”,&a[i]);
printf(“input the number you want to find x:”);
scanf(“%d”,&x);
for (i=0;i<10;i++) //这个是用for循环判断,如果找到相等的,跳出循环
if(a[i]==x)
break;

if(i!=10)
printf(“the pos of x is:%d\n”,i+1);//找到了,输出位置
else printf(“can not find x!\n”);//没有,提示未找到 }
第2个回答  2010-06-06
1." \' "就是输出一个" ' "
2.if(a) 因为a=0 所以下面的语句 d=d-10 不执行
else if(!b) 因为b=1 所以!b=0 所以if(!c) 也不执行所以下面的d=15;else d=25;不执行
所以最后输出是d=20
3.输入的5给了a,所以原来的1被5给覆盖了,执行缺省值default b=10 所以最后输出b=10
4.局部变量的作用域,局部变量是函数内或者复合语句内定义的变量或者形参,作用范围为当前的函数,所以func()函数里x只在func()里面生效,外部的x=20是main()变量,在main的整个函数内生效
5.
main()
{ <int> n,i=0,j=0;
printf(“input a integer,0 for end\n”);
scanf(“%d”,&n);
while (1)
{ if(n>0) i= i+1 ;
if(n<0) j= j+1 ;
break ; }
printf(“i=%4d,j=%4d\n”,i,j);
}

2.
#include <stdio.h>
main()
{ int a[11],i,x;
printf(“input 10 integers:”);
for(i=1;i<=10;i++) scanf(“%d”,&a[i]);
printf(“input the number you want to find x:”);
scanf(“%d”,&x);
a[0]=x; i=10;
while(x!=a[i] ) i-- ;
if( x==a[i] ) printf(“the pos of x is:%d\n”,i);
else printf(“can not find x!\n”);
}

3.
#include <stdio.h>
main()
{ int a[10],i,x;
printf(“input 10 integers:”);
for(i=0;i<10;i++) scanf(“%d”,&a[i]);
printf(“input the number you want to find x:”);
scanf(“%d”,&x);
for (i=0;i<10;i++)
if(a[i]==x)
break ;
if(i<10)
printf(“the pos of x is:%d\n”,i+1);
else printf(“can not find x!\n”);
}
第3个回答  2010-06-07
具体运行过程如下:

所谓的真假判断,就是判断里面的值是1还是0,1为真,0为假,由于a=0,if(a)就是if(0),为假,不执行,其他类似,!是非运算符
第4个回答  2010-06-06
不错,有问题才有进步!不喜欢帮懒人或不上进的人
1.\是转义字符的意思,因为有些组合有特别的含义,比如\n是换行!要输出'的话就要用\' 输出\就要用\\
2.if(a) c语言中,a代表非零为真,零为假
3.是,a的值改变了
4.因为传过去的是值,不是指针,所以值不一样,两次输出当然是打印2个了

暂时就答有问题的,该做的东西自己做

强烈建议看下书,把基础学好

几道C语言的入门问题,给过程,在线等
1、C A选项表示8进制的1;B选项表示十六进制的1;C选项错误,0开头的表示八进制的整数常量,范围是0-7,08显然超过了8进制的表示范围;D选项表示十进制的8;2、B f表示单精度,不写的话默认都是双精度;3、0X10;两个十六进制的数进行按位与运算,首先把两个十六进制数化成二进制OX14:0010 0...

c语言问题 若int x=6;则x+=x-=x*x表达式最后x的值是( )。 要详细的解 ...
计算过程如下:1、由题意:x-=x*x,得:x=6-6*6=-30;2、由题意:x+=x,得:x=(-30)+(-30)=-60;3、得出x的值是-60;一、函数原型:1、int(x=0)2、int(x, base=10),base缺省值为10,也就是说不指定base的值时,函数将x按十进制处理;二、参数 1、x -- 字符串或数字。

C语言入门题目,求详细易懂的解答过程。
答案为第一行:Tony。解答:for循环共循环2次,然后strcpy(a,b)比较两串字符大小,如果strcpy值大于0,则a大于b。具体的比较是看字符串的字母的ASCII码的大小,如果相同,再继续比较第二个,这个不赘述。主要看一下name[],对于一维数组来讲,它是元素,对于二维数组来讲,它不是具体的元素,而是代...

求C语言解答过程
<1>首先完成二位数组的初始化(这里应该没什么难度)<2>求各行元素之和 分析:如果定义的数组是a[i][j],求各行元素之和,这里相对没变的元素是数组的行,变化的则是列,这 里用一个for循环实现每行的元素之和 这里先求第一行元素之和:int row_sum[5] = { 0 };\/\/行和数组,用来求每...

...第二张图第四题,第三张图四,五题。求解答过程
第一问:x=5,x%=x 式子为:x=x%x,x除以x取余为0;所以答案为0。第二问:m=a\/b=25.5\/3.0=8(m为长整型,保留整数位),n=m+i\/j=m+(-1.6)(i,j为整型,保留整数为负一)=7;所以答案为7.第三问:n++为:n=n+1;所以答案为:65536。

几道c语言题目 菜鸟望高手解答
第一道题:输出的是:0 1 3 4 \/\/因为for循环 i从0到4 但是当i等于2的时候执行了continue,也就是直接跳转到下一次循环,所以2没有输出 第二题:t为2 因为 if-else 结构中的else是和最近一个if相匹配的,又因为if(x<y)不成立,所以直接执行输出语句,即输出2 第三题:3 6 9 因为x被...

C语言题目,求详细解答。
答案是:x=5,y=4,a=1;过程:当x=3,y=6时 执行while(x(3)++!=(y=5))a+=1; (a=1);if(y<x) break; (因为y=5,x=4,所以不成立,因此不执行)注意:这时x因为(x++)所以,x=4;继续执行while(x++(4)!=(y=4))(因为上面y通过想减已经为5了,再减一,等4,与x...

几个简单的c语言小问题 解决一题给十分
一。 d=20 if(a) d=d-10; a=0 if条件语句为假不执行 else if(!b) 不执行 if(!c) d=15; else d=25;是 else if(!b)下的语句 也不执行 二。 x=1 y=z=x; 赋值语句 x先赋给z 再赋给y x=y==z 先判断条件语句 y==z 是真 的...

C语言基础题,请懂的人解答
第一题,因为x,y是整型,所以x=1,y=4\/5=0(对于int型而言,此处x,y都是截取整数部分)所以,不论d是多少,最后d*y肯定是0 第二题,从最右边开始ⅹ=ⅹ*y=-4 y=y-ⅹ=2+4=6 y=y+y=6+6=12

C语言问题:概率问题, C++怎么算?
概率C上3下5是一个组合,解答过程如下:组合计算公式如下:根据组合计算公式可得:C(5,3)=5!\/[3!×(5-3)!]其中:5!=5×4×3×2×1=120。3!×(5-3)!=3!×2!=(3×2×1)×(2×1)=12。故:C(5,3)=10。意思是从m个不同元素中,任取n(n≤m)个元素并成一组,...

相似回答