有没有人能帮我讲解一下这个C语言程序的执行过程? 谁来帮我讲解一下这个C语言的程序

作者&投稿:尧广 (若有异议请与网页底部的电邮联系)

#include"stdio.h"

main()

{ char s[80];

int i,j;

gets(s);

for(i=j=0;s[i]!='\0';i++)//这里只有i++,j++在下面,j不随for循环自加1 

if (s[i]!='c') 

s[j++]=s[i];//每有一个不为'c'的单位出现,j自加1;并且该单位的值,重新赋值给数组s,从s[0]开始,因为j初值为0 

else//这加个else便于理解,等价于源代码;该单位的值为'c',就向该单位赋予空值; 

s[j]='\0'; 

puts(s);

}//例如输入abcdec,分别占据s[0]='a',s[1]='b',s[2]='c',s[3]='d',s[4]='e',s[5]='c';

//s[0](j==0),s[1](j==1)还是赋值在原位,

//s[2](这if不成立,j不自加1)s[2]='\0',

//s[3]不为'c'(j==2),所以'd'就赋给了s[2];

//s[4](j==3),'e'赋予s[3],

//s[5]='\0',赋空值; 



我举个例子啊,比如acd,首先从第一个开始,s0=a,不是c,则把a赋值给s0,同时执行j++命令,j=1,数组元素不变,然后s1=c不执行j++命令,则j仍然=1,数组元素不变,最后,s2=d,而此时j=1,所以把d赋值给s1,数组变成add,最后执行j++命令,j=2,执行sj='\0'即s2='\0',最后得到ad'\0'



有没有人能帮我详细的解释一下这个C语言程序的每条语句的作用?~

#include"stdio.h" //因为程序中用到puts函数因此必须包含这个头文件,可百科puts函数了解
main() //应当写成void main()表示没有返回值,否则程序最后要以return 0;结尾
{ int x,j=0; //定义整型变量2个,其中j初始值为0
char a[]="12Bou*nd678le"; //开设数组存放字符串,字符串用双引号括起来,数组正好能放下
char a1[20]; //再开个20个元素的数组,每个元素存放一个字符,为字符型数组,可存放字符串
for(x=0;a[x];x++) //循环条件a[x]!=0,x的起始值0,每次循环加1,循环条件是a[x]不是字符串结尾符(如果是结尾符则结束循环),字符串存放时"12Bou*nd678le"除了这些字符外,最后会多存个0作为结尾符
if(a[x]>='a'&&a[x]='A'&&a[x]='a')&&(a[x]='A')&&(a[x]<='Z')) || (a[x]=='\0') )才对
a1[j++]=a[x]; //a1数组存放满足条件的字符(字母字符),并且a1数组尺寸加1,a1[j]=a[x]; j=j+1;整个循环完成将a数组中所有字母(大写或小写的)存放到a1数组中的功能
puts(a1);} //输出a1字符串到屏幕,但前面应当加一句a1[j]=0;用来结束a1字符串

#include
void zb(int b) //定义函数,变量整型
{
int a[7],i,j=0; //变量定义


a[0]=b/100; // "/"是除 "%"取余,自己看,不难吧,优先级自己查
a[1]=b%100/50;
a[2]=b%100%50/20;
a[3]=b%100%50%20/10;
a[4]=b%100%50%20%10/5;
a[5]=b%100%50%20%10%5/2;
a[6]=b%100%50%20%10%5%2/1;
for (i=0;i<7;i++) //for循环
{
j+=a[i]; //把j+a[i]给j
}
printf("%d
",j); //输出
}
void main() //主函数
{
int x; //定义x为整型
scanf("%d",&x); //输入要计算的金额x
zb(x); //执行函数zb(x);
}

了解C语言的解释下~谢谢
答:随着微型计算机的日益普及,出现了许多C 语言版本。由于没有统一的标准,使得这些C 语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C 语言制定了一套ANSI标准,成为现行的C语言标准。而在这里我们将主要以美国Borland 公司的产品Turbo C2.0作为介绍对象,简要介绍一下C语言...

我是C语言新手。求大神解释一下这一道题,书里没解析的额
答:首先main函数里定义个结构体类型 struct cmplx该结构体包含两个成员变量x和y。cnum是结构体类型的数组,数组中有2个数组元素cnum[0]和cnum[1],每个数组元素都是结构体类型的变量。所以 cnum[0].x=1,cnum[0].y=3;cnum[1].x=2,cnum[1].y=7;则cnum[0].y/cnum[0].x*cnum[1]....

有没有c语言大佬解释一下?
答:根源来自于默认类型。如果不在编译环境特殊指明的话,浮点数默认double型,而即便是同一个浮点数,其single和double的值是不同的,比较必然FALSE。程序中加上强制类型就可以解除(当然也可以修改编译器默认类型设置),如下图所示:

C语言题目不懂啊,谁能帮我解释
答:③x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段宽度用"%mx"格式输出。④u格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出。同样也可以指定字段宽度用“%mu”格式输出。⑤c格式:输出一个字符。⑥s格式:用来输出一个串。有几中用法 s:...

各位大神帮帮忙,谁能给我具体讲解一下,c语言返回值,就是return,这个我...
答:这个原材料就是传说中函数参数,给你的门就是返回值!所以函数调用就是你将你的原始数据托付给一个现有的函数(你自己定义的希望按照你的规则处理,别人写好的,或者标准库里的)并将处理的结果给你。但是在C语言中,你必须声明你将给子函数提供的参数的类型,并声明返回值的类型。举例:int add(int ...

C语言书上例题看不懂,能帮忙看一下吗?
答:我用文字解释一下吧,看看能不能清楚,提问的式子我都进行了加粗,希望能看得出来(图的话我觉得给出的图已经可以参考讲述的,可以结合我的文字看看)这个传递数组名称的函数,输入有两个,一个是数组,一个是数组长度 那么我们知道:如果传递的n是10,数组长度是10的话,它的元素的索引应该是0-9,...

有谁能解释下这个C语言说的是什么意思吗?
答:{ int a,b,c,d;scanf("%d",&a); //a为要分解的偶数 for(b=3;b<=a/2;b+=2) //b为a分解后其中一个小于a/2的一个素数 { for(c=2;c<=sqrt(b);c++) //这个循环是判断b是不是素数,用2-b的开方之间的数去处 if(b%c==0) break; //如果其中有一个数可以整除...

谁能帮我分析一下C语言的这个程序
答:返回值,举个例子:就是编的每一个程序都可以看成一个函数,就是有输入,有输出,这个输出就是返回值的一种。格式是return +结果 C语言中的函数有两种形式:1)有返回值,2)无返回值。有返回值的函数会把执行的结果(也就是你写这个函数的目的)返回到主函数中。没有返回值的函数主要是为了完成...

C语言 ,解释一下
答:int main(){//程序入口 int i=43;//申明整型变量i并赋初值43 printf("%d\n",printf("%d",printf("%d",i)));//打印输出 return 0;//默认返回值 } 难点,printf嵌套 printf()返回一个int值,表示被打印的字符数 第一个printf:i=43,先输出43,第二个printf:43为两个字符,输出2,...

我是初学C语言,看不懂你这题(看不懂的地方我标注了一下啊)
答:!(a>b)=!(3>4)因为(3>4)是错的,所以用0表示,又因为前面!,所以用1表示 (!c)因为c=5,不等于0,所以c是真值,前面加个!,就说明整体是假值,所以最后逻辑值为0 另外,扩展一下,对于这道题中的c,!!c的值应该为1。!!c=!(!c)=(!0)=1。这也是通过上述解释...