【C程序设计教程实验】基础练习题(一)

代码一: 字符 'A’对应整型为65

已知字母A的ASCII码为65,有如下程序:

#include <stdio.h>
int main()
{
    
    
	char c1,c2;
	c1='A'+'8'-'4'; //65+4=69--->E
	c2='A'+'8'-'5'; //65+3=68--->D(对应int型为68)
	printf("%c,%d\n",c1,c2);		
}

请问输出结果是:

E,68

在这里插入图片描述

代码二: 八进制 自加符 ++

//已知k的初值为八进制数 
#include <stdio.h>
int main(){
    
    
	int k=011; //k=1+8=9
	printf("先使用,k的值为:%d\n",k++); //先使用,后自加,故k的值使用时为9。而后自加,为10 
	printf("后自加,k的值为:%d",k);  //这时,k的值为10 
}

注释中已经有所说明:
在这里插入图片描述

代码三:强制类型转换符

#include <stdio.h>
int main()
{
    
    
	int m;
	m=(int)((double)9/2)-9%2;  //9%2 即9对2取余,结果为1。而后,4.5-1=3.5。因为为int型,所以结果=3。 
	printf("m=%d\n",m); //m=3
	
	printf("------------------------------\n");
	
	printf("原因:\n");
	printf("(double)9/2=%lf\n\n",(double)9/2);
	printf("(int)(double)9/2=%d\n\n",(int)(double)9/2);
	
}

输出:
在这里插入图片描述

代码四:逗号表达式 &&判断符

#include <stdio.h>
int main()
{
    
    
	int i=2,j=3,k=4,a=4,b=5,c=3;
	int m;
	m=(a=i<j)&&(b=j>k)&&(c=i,j,k);//i<j为真,故a=1。j>k为假,故b=0。由于1&&0已经为假,故第三个括号不执行,c仍为原值3. 
	printf("m=%d\n",m);  
	printf("a=%d\n",a);
	printf("b=%d\n",b);
	printf("c=%d\n\n",c);
	
	//上面的逗号表达式本来应当取最后一个值k,即4
	printf("本来,c=%d\n",(c=i,j,k)); 
}

输出:

原因在注释中已经说明啦!
在这里插入图片描述

代码五:|| 符

#include <stdio.h>
int main()
{
    
    
	int a=1,b=2,m=0,n=0,k;
	k=( n=b>a || (m=a<b)); //b>a为真,故n=1。又因为 || 运算符即'或',一真则真,故k=1。后面的括号不再执行,m取值不变,仍为0 
	printf("%d,%d\n\n",k,m);
	
	printf("m=a<b,即m=%d\n",m=a<b);
}

输出:
在这里插入图片描述

代码六: n++ 与++n

#include <stdio.h>
int main()
{
    
    
	int m=12,n=34;
	printf("%d%d",m++,++n); //1235  m先使用,即12。n先自加,故35。 
	printf("%d%d\n",n++,++m);//3514  n先使用 故35。m在上一步中,使用之后自加,为13,此时先自加,故14 
	//故最后输出 12353514 
}

输出:
在这里插入图片描述

代码七:自减运算符,||运算符

#include <stdio.h>
int main()
{
    
    
	int x=1,y=1;
	int m=(!x || y--); //!x取值为0,由||运算符,故还应继续执行,y--取值为1(先使用) 
	printf("m=%d\n\n",m); //故m最终取值为1(0||1,取值应为1) 
	
	printf("--------------\n");
	printf("原因:");
	printf("!x=%d\n",!x);
	printf("此时,y-- = %d\n",y); //此时,y为0 (使用完之后,自减,故为0) 
}

在这里插入图片描述
——————————————————————————————————————————————————————————————————
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

暂时到此,吃完饭之后,继续更新C语言常规基础练习题。

猜你喜欢

转载自blog.csdn.net/qq_44731019/article/details/123576043