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

Ⅱ C语言程序讲解,一条一条讲

int condition_check(NODE *head){ //检查是否符合条件A
NODE *p; //定义临时结点指针变量p
int tmp; //定义临时整型变量tmp
for(p=head;p;p=p->next){ //将临时结点指针变量指向头结点,然后遍历一遍链表
if(count(head,p->num)>1)return 0;//如果count(head,p->num)返回值大于1,返回0
for(tmp=p->num;tmp>0;tmp>>=1){ //tmp等于指向的结点的num的值,右移一位(右移1位相当于除以2),如果大于0,循环
if(tmp&1 && tmp>1)return 0; //如果tmp&1=1且tmp>1,返回0;
}
}
return 1;//其他情况返回1
}

Ⅲ C语言代码解析

你应该还没学指抄针吧,学了之后这个代码就很好懂了。我先简单说说,你可以把a[100]这个数组看成一个个抽屉,每个抽屉依次有自己的编号。子函数中a+n-1就是a[n-1]的编号值,a即为a[0]的编号,通过编号值找到a[n-1]这个排在最后的抽屉,把它抽出来,然后它之前的抽屉依次后移一格,它再放到第一个,随着抽屉排序的变化,抽屉里存的数的顺序也发生变化。通过m计数,将上述过程重复m次完成。

Ⅳ c语言程序解读

先从主函数main开始,i初始值为0,调用func1,将i值0作为参数传入
在func1中,首先打印st[i],即st[0],即字符串的第一个字符h,向下执行到if条件句,当前i小于3,则执行i+=2, 相当于i=i+2 => i=0+2 => i=2,接着调用func2函数,此时i为2,作为参数传入
在func2中,先打印st[2],即字符串中的第三个字符l,接下来判断if条件,当前i为2小于3满足条件,执行i+=2得到i为4,接着调用func1,将4作为参数传入
在func1中,首先打印st[i],即st[4],即字符串的第5个字符o, 判断if条件,发现此时i大于3不满足条件,不再执行下面的语句。
回到主函数main中,打印换行符后程序结束
最后结果为hlo

Ⅳ 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语言程序

#include"stdio.h"
#define N 8定义N等于八
void main()
{char c[N];定义长度为八的字符串
int i=0;
for(;i<N;c[i]=getchar(),i++);将从键盘输入的字符逐一存入
for(i=0;i<N;i++) putchar(c[i]);将字符逐一输出
printf("\n");}

Ⅶ 求教!!!这个c语言程序的详细讲解!!!每一句是什么意思啊

#include<stdio.h>
intmain()
{
charscore;
scanf("%c",&score);//从键盘输入一个字符,按回车确认,存储到score变量中
printf("yourscore:");//在屏幕上显示yourscore:信息
switch(score)//判断score的值是什么
{
case'A':printf("85~100 ");break;//当score是A字母时,显示85~100,结束。下面同理
case'B':printf("70~84 ");break;
case'C':printf("60~69 ");break;
case'D':printf("<60 ");break;
default:printf("enterdataerror! ");//如果不是A-D,则显示enterdataerror!结束。
}
return0;//结束本函数
}

Ⅷ C语言程序求讲解

这个程序应该是计算一个班级人员排名的小程序.好久没有看过C代码了,只能勉强下了!
#include"stdio.h" //引入stdio.h头文件
#include"string.h" //引入字符类头文件
struct stu //定义结构体stu
{ int num; //结构体变量 num
char name[20]; //结构体变量 字符数组name
int score[3];} //结构体变量 整形数组
a[3];
main() //主方法 main
{int i,j,z=0,s=0;int ave; //定义整形变量
for(i=0;i<3;i++) //循环
{printf("input %d num:",i+1); //循环打印 input 0 num:,input 1 num:,input 2 num:
scanf("%d",&a[i].num); //取得输入的值
getchar(); //从stdio流中读字符,相当于getc(stdin),它从标准输入里读取下一个字符,该函数声明在stdio.h头文件中,使用的时候要包含stdio.h头文件
printf("input name:"); //打印 input name:
gets(a[i].name); //从a[i].name中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。
printf("input score:" ); //打印 input score:
for(j=0;j<3;j++) //循环
scanf("%d",&a[i].score[j]);} //取得输入的值
for(i=0;i<3;i++) //循环
{for(j=0;j<3;j++) //循环
s+=a[i].score[j];
ave=s/3; //求平均数
printf("ave=%d ",ave); //打印平均数
s=0;
if(ave>=85&&ave<=90) //如果平均数>=85且平均数小于90
printf("%d,%s\n",a[i].num,a[i].name);} //打印排名 和 名字
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
if(a[i].score[j]<60) //如果分数小于60
{ z++;
if(z>=2) //如果有两个分数都小于60
{printf("%d ",a[i].num); //打印该排名
if(a[i].score[j]<60) //如果当前的分数小于60
printf("%d ",a[i].score[j]);}} //则打印出当前的分数
z=0; //z重新赋值为0
}
}

Ⅸ c语言程序详解

while(a<15)a++; 出循环时a为15
while(b++<15); b++为后加,当b为15是退出循环,之后因为b++,所以b还会再自加1变为16
所以结果即为15,16

Ⅹ C语言程序解读

问题1:getchar()就是从键盘获得一个字符,!=是不等于的意思。当获得的字母不是回车键时,n+1!你从键盘输入字符串时总是以回车结束输入,所以一旦你按回车n就不再加一!所以实现函数功能!
问题2:a++*2的意思是a乘以2然后a再加1.此程序的意思就是执行“a乘以2然后a再加1”n次!而此n就是你从键盘输入的数字!