关于一个简单的C语言程序分析,求输出的内容。

作者&投稿:才天 (若有异议请与网页底部的电邮联系)
求分析一个简单的C语言程序~

先对数组遍历赋值(a[i]=i),再倒序输出

sizeof是求字节大小的意思,stra的大小HelloWorld的字节数+1,strb是指针,++后还是指针,指针的大小一般是4

第一部分:

  *p的值是: i

  *p的值是: n

  *p的值是: g

  *p的值是: z

  *p的值是: i

第二部分:

  *p的值是: s

  *p的值是: d

  *p的值是: d

  *p的值是: d

  *p的值是:



*p的值是: s
*p的值是: d
*p的值是: d
*p的值是: d
*p的值是: 空格

你这程序错误一堆。

自己看吧。因为p++ ;在前。


 

因为你循环五次,但是字符串只有5个,所以第五次越界了,内存中为空。但是如果原本这块内存有东西,那么就不一定是什么了。



首先说一下代码错误的地方:1、include前面要#;2、main()前面最好加int;3、i还没有定义,在for之前定义吧。
然后,输出的内容是“sddd ”,因为*p指向a,for循环进去后先p++了,这时候的p指向a的第二位,也就是s,for循环输出5位,所以是“sddd ”


教你如何使用C语言编写简单小游戏
这样学习程序设计,就不会是一件艰苦 ,枯燥的事,它变得象电脑游戏一样充满好奇,富有乐趣. 1, 总是从Hello,world开始 学习编程的第一个程序,一般就是打印一个亲切的词语——"Hell o,world!".让我们来看看这个最简单的C程序:#incolude \/*把输入输出函数的头文件包含进来*\/int main(){printf("...

c语言一道很简单的题,但代码运行了多次都正确,一题交就错,求一个代码...
如果你写C,请尽量将拓展名改为.c 错误更正:你的思路应该是:①输入;②枚举,如果和下一个一样就变为0;③把0去掉;④冒泡排序;⑤输出;如果相同的数字不挨着呢(尽管样例中相同数字挨着,但题面并没有说),比如:5 9 2 5 5,只有倒数第二个5会被删掉,因此应该先排序,①④②③⑤;②...

用c语言写一个简易数独的思路。要代码
尚待计算的未知数字填写0。该代码的思路很简单,就是从第一行第一列开始依次填入数字,检查是否是在同一行、同一列、同一宫有没有填入重复数字,如果没有就继续填入下一个数字,如果有就返回。虽然效率稍低,但原理简单、表述直白、易于理解,更有效率的代码是使用十字链表完成,如有兴趣可继续深入 ...

C语言:很简单的一个程序,输出结果不对怎么回事
楼主估计的有点问题:对于int型,的确可以用while(n)这种用法,但是。。。double型的精度太高了 比如改为printf("%.21lf\\n",n);我们可以发现:0.2890000000000000300000.0390000000000000350000.0390000000000000350000.0390000000000000350000.0077500000000000346000.0077500000000000346000.0077500000000000346000....

C语言编写一个程序,实现如下功能:从键盘输入一个三位数,求各位数字之...
include "stdio.h"void main(){ int n,sum=0;printf("请输入一个三位数:");scanf("%d",&n);sum=n\/100+n%100\/10+n%10;\/\/百位数+十位数+个位数 printf("这个三位数各位数字之和是%d\\n",sum);} 结果:

用简单的C语言实现:输入一个小于1万的正数,将其转换为大写数字_百度知 ...
\/\/零壹贰叁肆伍陆柒捌玖拾 void pos(int n,int m){ int x,y;x = n\/4; \/\/用来判断万、亿。。y = n%4;if(m !=0){ switch(y){ case 2:printf("拾");break;case 3:printf("百");break;case 0:printf("千");break;} } switch(x){ case 1:if (y==1){ printf("...

c语言程序设计:输入两个数和一个运算符,计算其结果。
一个简单的C语言小程序就可以满足要求,需要用到switch-case语句,先上代码:include int main(){ double a, b, answer;\/*两个数a、b及其计算结果answer,由于下面会有除法,可能使answer出现小数,所以定义double类型变量*\/ char op;\/\/运算符op scanf("%lf%c%lf",&a,&op,&b);switch(op){...

用C语言做一个计算器,能实现加减乘除混合运算
用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器的方法:1、打开visual C++ 6.0-文件-新建-文件-C++ Source File;2、输入预处理命令和主函数:include<stdio.h> \/*函数头:输入输出头文件*\/ void main()\/*空类型:主函数*\/ 3、定义变量:int a,b,d; \/*定义变量的数据类型为...

C语言设计一个用简单的加密程序,即用字母替换的方式加密,程序运行中发 ...
原因就是char是1个字节的,你不能超过127(hi,楼上的,不是128哦,是-128~127不要误人子弟),你到后面的vwxyz已经溢出,所以是乱码。我的解决方法就很简单,就是换成unsigned char 数组,这样取值范围增大到(0~255)就可以了,既简单又不破坏原有的结构 还有 else if(str[i]<'a'){ str[i...

一个C语言的简单题目
\/\/第一个header-print.h#ifndef print#define print\/\/double n; \/\/ 这行不要,去掉void print(double n)#endif\/\/第二个函数文件 print.cpp#include <stdio.h>#include "print.h"void print(double n) \/\/ 这里要写上double{double a;a = n*2; printf("The result is %d\\n", a...

长寿区17070035142: 一段简单C语言代码求分析 -
重战博利: main() { struct date { int year,month,day;}today;//定义了一个结构,叫做date,这个结构有3个成员,int类型的year,month和day; 并且定义了一个date类型的变量,today printf("%d\n",sizeof(struct date));//输出结构date所占的字节大小 }

长寿区17070035142: 求一个简单的C语言循环输出结果题..求详细过程.. -
重战博利: 程序有点输出错误,改正如下 #include<stdio.h> void main() { int i, j, sum=0;for( i=1; i<=4 ; i++){for(j=1; j<=1;j++){ sum=i*j;if(sum>=6)break;}printf(" i=%d\t j=%d\t sum=%d\n", i , j , sum);} 使用VC6.0运行结果如下 i=1 j=2 sum=1 //下次循...

长寿区17070035142: 简单C语言程序求解释 -
重战博利: #include int main() { int a,b,c,d,e,f,g,h; if(scanf("%d",&a)==1) /// 这里 { for(b=1;b { scanf("%d %d %d",&c,&d,&e); f=c+d; g=c+e; h=d+e; if(f>e && g>d && h>c) printf("YES\n"); else printf("NO\n"); } } return 0; }

长寿区17070035142: 求解一个简单的C语言程序 -
重战博利: 按你的代码修改如下#include void main() { float cos(float x); float u,p; printf("u="); scanf("%f",&u); p=cos(u); printf("%f\n",p); getch(); } float cos(float x) { float A=0,c; long m,b; for(m=1;m<=1000;m++) { c=1; for(b=1;b<=2*m;b++)c*=(x/b...

长寿区17070035142: 一段C语言程序,求结果求解析. -
重战博利: 好吧,你们老师和我一样比较无聊,喜欢show自己的语法有多好,但是啊,很明显他没有实际编译过这个代码啊,有错啊(虽然原理是很正确的) 应该是main(){char *a="main(){char *a=%c%s%c;printf(a,34,a,34);}"; printf(a,34,a,34);} 写作一...

长寿区17070035142: 一个关于C语言的程序,怎么分析结果 -
重战博利: 应该是把数组里面的1,2,23,32求和,然后输出结果.continue是跳过此次循环,进行下一次,而break是中断循环,直接跳出.因为a[1][1]=0,所以里面的直接跳出,进入到a[2],以此类推.我的理解就是这样,如果有哪不清楚,可以一起讨论.希望可以帮到你.

长寿区17070035142: 一个简单计算机c语言程序的分析 -
重战博利: 第一个不同,导致将自身包含到了循环中,改成for (j=i-1; j>=i-5; j--)试试 第二个不同,导致只要数组中的数为偶数,并且其前面5个数中只要有一个数小于该数,则记录该数.这和其前面5个数都小于该数完全不同,当然会导致重复统计.原代码中的flag正是为了记录前面5个数都小于该数,如果有一个数大等于该数,flag就为0,那么就不记录这个数.这才是正确的做法

长寿区17070035142: 求这个简单C语言程序的输出结果和原因,真的很简单的,求帮忙 -
重战博利: 这个程序没有任何输出C语言程序都是从main函数开始执行if (1>2) { cout << "World"; } 第一句话是if(1>2),如果1大于2的话,才走...

长寿区17070035142: 分析C语言的一个简单程序
重战博利: #include<stdio.h>main(){int i;for(i=0;i<3;i++)因为你没在case的语句后面加break跳转语句 switch就相当于跳转语句(个人理解) 而每个case语句就相当于标示符 当switch判断了i的值之后就跳转到相应的case语句块 运行了case语句块之后如果不加上break跳出switch语句那么它就会一直执行接下来的case语句 因为case就相当于标示符 呃...不好意思本来想给你改下程序的 但后来又没改,而删只删了一半 所以造成了上面的后果

长寿区17070035142: C语言 分析下列程序的运行结果 -
重战博利: 1、输出为:1 if条件语句中,当()中的值为零时,条件为假,非零时条件为真; 由于逻辑运算2&&3结果为1,故条件为真,程序执行a=1语句; 最终输出为1 2、输出为:7 运行switch(1)时,将执行case(1)语句,并接着往下执行直至遇到break...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网