Ⅰ c语言代码解析(详细点的,答辩用的。)
初看, 打开c:\book.data,读取里面数据,在输出出来 就是书名,书价 作者, 按格式输出吧
输出出来的应该是
书名 书价 作者
。。 。。。。。 x.x xxx
。。。。。 y.y yyy
... ... ...
完事后,随便输入一个字符,回主菜单了, 回主函数了吧。。。。
Ⅱ C语言深度剖析里面的一个静态变量的问题
赋值和初始化是两回事。静态变量只初始化一次,但因此就误以为静态变量不能赋值完全是错误的想法
直观地看,初始化的格式是
类型变量名=初始值
(由于C语言的声明比较恶心,实际上也可能是int (*p)()=初始值;这种形式)
Ⅲ C语言 二叉树深度,解释一下
叶子节点就是度为0的结点,比度为2的结点多一个,即度2的没有,这样度为1的结点就是11个,故深度为12(1度就是结点连着1个子树,二叉树最多俩子树,即左右子树)
Ⅳ C语言解析,解释一下执行步骤
switch(x)
---------x=1
所以执行
case
1:后面的语句
接着switch(y)
-----------y=0
所以执行
case
0:后面的语句
a++
-----------即a=a+1,这时a=0+1=1
执行break跳出switch语句
因为
switch(x)的
case
1
没有break所以继续执行case2
case2:a++;b++
;-----------a=a+1=1+1=2;b=b+1=0+1=1;
case2后面有break语句所以
跳出switch语句
执行
printf("a=%d,b=%d\n",a,b);
这条语句会在屏幕上打印a=2,b=1【换行】
Ⅳ C语言程序解析
#include<stdio.h>
#include<math.h>
int main()
{
int a[5][5]={0};
int i,j;
//给出租初始化为0
for(i=0;i<5;i++){
for(j=0;j<5;j++){
a[i][j]=1;
}
}
//生成数组矩阵
for(i=0;i<5;i++){
for(j=0;j<i+1;j++){
a[i][j]=i+1-j;
}
}
//把数组显示出来
for(i=0;i<5;i++){
for(j=0;j<5;j++){
printf("%d ",a[i][j]);
}
printf(" ");
}
return 0;
}
Ⅵ 学习C语言
举个例子来说把,3 和 5
逻辑运算符返回真或假(c语言里用0表示假,非0表示真)
3||5 他的值是 真(非0)
3&&0 的值为假(0)
一般用在条件判断中 if(!3),3是真(非0),!3就是假。
位运算符
按位与 3&7,
先转换成二进制 011 & 111
都为1的位结果是1,否则是0,运算后的结果是 011(3).也就是说按位运算的结果仍是一个数字,一般不用在条件判断中。
Ⅶ 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语言基础的几个难点解析
一、整型数据的范围
不同类型的数据在内存中占用的存储单元长度不同,以VC++6.0的编译环境为例,基本整型(int)数据分配4个字节,短整型(short int)数据分配2个字节。我们以short int为例。1个字节为8个二进制位,每个短整型数据分配2个字节,即16位。对于有符号位的短整型(signed short int,默认的),最左面一位作为符号位,0表示正,1表示负。即能存储的最大数为0111111111111111,第一位是0,表示正数,后边15位都是1,转换为十进制为32767;最小数为1000000000000000,转换为十进制为-32768。超出此范围,即为“溢出”。例如:
short int a,b,c,d; a=32767;b=a+1; c=-32768;d=b-1;
printf("b=%d\t",b); printf("d=%d\n",d); 输出结果为b=-32768 d=32767
对于无符号的短整型(unsigned short int),最小为0000000000000000,最大为1111111111111111,范围0~65535。例如:
unsigned short int e=65535,f; f=e+1;
printf("f=%d\n",f); 输出结果为f=0
二、运算符
算术运算符有+,-,*,/,%,++,--。其中,*号在表达式中不可以省略,如b2-4ac,写成表达式为b*b-4*a*c。/和%要区分好,/为商,%为余。如a可以被b整除,表示为a%b==0。++,--的使用方法有两种:一种i++,i--,先使用i原值,再使i的值加或减1;第二种++i,--i,先使i的值加或减1,再使用i的新值。例如:
int i=11; printf("%d\n",i++ * 1/3); 输出结果为3。
int i=11; printf("%d\n",++i * 1/3); 输出结果为4。
自加自减运算符在后边的学习中会经常用到,要好好理解。
逻辑运算符有&&,||,!。在逻辑表达式中,不是所有的逻辑运算符都执行,只在必须执行下一个逻辑运算符才能求出表达式的解的时候,才执行该运算符。a && b只有a为真时,才判断b的值。换句话说,a如果为假,b就不执行。同理,a || b,a如果为真,b就不用执行。例如:
int m=1,n=1,a=1,b=1;
printf(“表达式=%d\t”,(m=a>b)&&(n=a>b)); printf("m=%d,n=%d\n",m,n);
输出结果为 表达式=0 m=0,n=1
常用的运算符的优先级别从高到低排序为:!,算术运算符(++,--高于*,/,%高于+,-),关系运算符(>,>=,<,<=高于==,!=),&&,||,赋值运算符,逗号运算符。
三、比较数的大小
例如:编写程序,输出三个整数的最大值。刚接触C语言的学生,大部分学生上机实践都可以完成这个程序,但是思路不太好。调整算法思路,便于以后程序的编写。
main( )
{ int a,b,c,max; max=a;
if(b>max) max=b; if(c>max) max=c; printf("max=%d\n",max);}
同理,编写程序,输出10个整数的最大值。
main( )
{ int a[10],max,i; for(i=0;i<=9;i++) scanf("%d",&a[i]);
max=a[0]; for(i=1;i<=9;i++) if(a[i]>max) max=a[i];
printf("max=%d",max); }
四、switch语句
处理选择结构有if语句和switch语句。switch语句用于处理多分支选择结构,在使用时有多个注意点,这里强调两点。
1.case后边的常量,不能写成表达式。
例如:编写程序,评判学生成绩score的等级grade,90~100为A,80~90为B,70~80为C,60~70为D,60以下为E。