c语言程序分析
A. c语言程序分析
通过word的变化,来控制num是否自加,当word等于1时,num自加。当遇到空格时,就把word变成0,直到再出现下一个字符时,world变回1,num加1,这样说你懂了吗
B. C语言程序解析
#include<stdio.h>
const int c=2009;
int main()
{
int n,p,s,i,j,t;
scanf("%d%d",&n,&p);//输入2个数字11和2,存入变量n和p中.
s=0;t=1;//t的初始值为1
for(i=1;i<=n;i++)//循环1,循环运算 t=t*p%c运算式 n遍.
{
t=t*p%c; //t乘以p的积,对2009求余.并将得到的值赋给t.//注:求余的意思就是只取余数位.比如10%3,则求余就得到的是1.
for(j=1;j<=i;j++)//循环2,循环运算( s=(s+t)%c)
s=(s+t)%c;
}
printf("%d\n",s);
return 0;
}
//当i=1时,t=1*2%2009,得t=2.然后进入循环2循环1次,得到s=(0+2)%2009,得s=2;
//当i=2时,t=2*2%2009,得t=4,然后进入循环2循环2次:第一次得到s=(2+4)%2009,即s=6;第二次s=(6+4)%2009,得s=10;
//当i=3时,t=4*2%2009,得t=8,然后进入循环2循环3次...
//...以此类推执行n次循环1,即11次.循环2执行了(1+2+3+..+11)次,最后得到s.
C. 请问这个C语言程序怎么分析,答案怎么得到的
#include<stdio.h> int main() { int a,b,c,x=35; a=b=c=0; if(!a) x--; else if(b); //到这,一个if 结构结束,不过,这样有点不符合规范,但编译能通过,只是有警告。 if(c) //这个if 跟
D. c语言程序解析
c=(a+=a-=5), (a=b, b+3)
+=、-=优先级相同,自右结合,
1 a-=5 , a=a-5 a=-5
2 a+=-5 , a=a+(-5) a=-10
c=-10
,表达式表示并列,结果取最后一个,故右边
(a=b, b+3)
a=b ,a=0
b+3=4
得4
即c=-10, a=0,b=0
E. C语言 分析一段程序
#include
<stdio.h>
//调用标准库
#include
<windows.h>
//调用WINDOWS库
void
main()
{
char
end[MAX_PATH][MAX_PATH]={0};//定义END[260]260]个字符,并初始为0
printf("%c\n",end[0]);//以单个字符输出END[0]的内容.不同的机子在VC++中运行得到的、结果都不一样.原因这句写法有问题,正确写法是printf("%s\n",end[0]);输出整行字符或printf("%c\n",end[0][0]);输出单个字符
}
F. C语言程序分析
程序的分析,都从main()函数说起:
main函数开始定义了5个变量a,b,c,d,p;
puts表示输入提示,第一个输入的是a,第二个输入的是b;
do表示循环大括号内的内容;现在进入大括号内部:
输出 :input operation:
getchar()表示输入一个字符,编译器用字符规则去判定;输入的字符复制给p
if 表示判断语句 :如果……
if(p=='+') add(a,b,c):如果输入的符号是加号“+”则执行add(a,b,c)函数。这里面add是函数调用,它代表了一组功能,具体的功能在上面的add里面写得很清楚了。是将a+b的值给c 最后输出c
同理if(p=='-') minus(a,b,c);else :如果输入的符号是“-”,执行minus(a,b,c)函数,具体函数功能见minus(a,b,c)函数,c=a-b 并把c输出
if(p=='*') multiplication(a,b,c);else…………
if(p=='/') div(a,b,d)………………
一个道理。
总结:
这个程序完成的是四则运算,首先输入两个数字,再输入一个运算符,程序会根据输入的运算符进行相应的运算;如果输入的运算符不是加、减、乘、除中的一个,则提示“没有注册这个运算符号”;当输入为0时,程序退出。
G. 一个关于C语言的程序,怎么分析结果
应该是把数组里面的1,2,23,32求和,然后输出结果。continue是跳过此次循环,进行下一次,而break是中断循环,直接跳出。因为a[1][1]=0,所以里面的直接跳出,进入到a[2],以此类推。我的理解就是这样,如果有哪不清楚,可以一起讨论。希望可以帮到你。
H. c语言中,程序段分析
同学,第一个答案确是是"y=0"原因如下,首先我们要说自增和自减运算符“++”和“--”,如果该运算符的位置在操作数之前,则操作数在进行任何计算之前就已经发生改变,如果运算符在操作数后面,则操作数在完成表达式的计算之后才发生改变,例如int
a=5,b=8,c;c=a++*b;
//"++"在操作数a后面,先计算a*b=40,赋值给c,然后a++,a值为6,c的值为40c=++a*b;
//"++"在操作数a前面,先a++,a=7,再a*b,c=56然后我们来看你给的程序,因为是y--,"--"在y后面,则先判断while的条件,此时y=1,即true,为真,然后y--,y=0,然后输出y:y=0;然后再判断while,因为此时y=0,为假,跳出循环,结束。要注意顺序,先判断whlie,然后y--,若while条件为真,则执行while的语句。
若改成"--y"的话,则先计算"--y",y=0,再判断while的条件,此时y=0,即false,为假,直接跳出循环,即什么都不做,结束。
第二题,你要注意的是while的条件不是"k==1"而是"k=1",不是一个判断语句,而是一个赋值语句。即while的条件永远都是“k被赋值为1,然后k作为条件”进行判断,此时k是1,即true,为真会永远进行下去。
I. C语言简单程序分析
for(k=0;k<strlen(a+81*i);k++)
{
........;
k--;
}
死循环
gets是输入字符串函数,不是字符。所以不需要循环
J. C语言程序解析
1.
#include "stdio.h"
main()
{
printf("
%d,%d
",20/7,-20/7);
printf("%f,%f
",20.0/7,-20.0/7);
}
运行截图
分析:
i++ 表示先使用i,然后i的值加1
++i 表示先把i的值加1,再使用i