0
点赞
收藏
分享

微信扫一扫

C语言入门——编程题

kiliwalk 2022-03-12 阅读 68

1、输出不同整形数据类型在内存中占用多少字节?

首先明确整形数据有哪些:

(无符号)字符型:(unsigned)char

(无符号)短整型:(unsigned)short

(无符号)整形数据:(unsigned)int

(无符号)长整型数据:(unsigned)long

另:基本数据类型(四种):

整形:int short long

浮点型:float double

字符型:char

布尔型:bool

#include<stdio.h>


int main()
{

	printf("sizeof(char)= %ld byte\r\n",sizeof(char));	
	printf("sizeof(short)= %ld byte\r\n",sizeof(short));	
	printf("sizeof(int)= %ld byte\r\n",sizeof(int));	
	printf("sizeof(long)= %ld byte\r\n",sizeof(long));	
	printf("sizeof(double)= %ld byte\r\n",sizeof(double));	
	printf("sizeof(float)= %ld byte\r\n",sizeof(float));	
	printf("sizeof(_Bool)= %ld byte\r\n",sizeof(_Bool));	
	


return 0;
}

运行结果:

 -------------------------------------------------------------------------------------------------------------------------------

2、我们处理的整数通常用十进制表示,在计算机内是以二进制补码形式存储,但通常二级制表示的整数比较长,为了便于在程序设计中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数表达的特点。请输出十进制整数“1234”对应的八进制和十六进制。

额外知识:

进制:十进制——逢十进一;八进制——逢八进一;十六进制——逢十六进一;二进制——逢二进一

二进制 源码:用第一位表示符号,其余位表示值

二进制 反码:正数的反码是其本身;负数的反码是符号位不变,其余位取反

二进制 补码:正数的补码是其本身;负数的补码是其反码+1

#include<stdio.h>


int main()
{

	int num = 1234;

	printf("十进制=%d\r\n",num);
	printf("八进制=%o\r\n",num);
	printf("十六进制=0x%x\r\n",num);
		


return 0;
}

运行结果:(没有二进制格式控制符)

 -------------------------------------------------------------------------------------------------------------------------------

3、十六进制转十进制:(0xabcdef)

#include<stdio.h>


int main()
{

	int num = 0xabcdef;

	printf("十进制=%d\r\n",num);
	printf("十六进制=0x%x\r\n",num);
		


return 0;
}

运行结果:

  -------------------------------------------------------------------------------------------------------------------------------

4、printf函数是有返回值的,求printf的返回值。

#include<stdio.h>


int main()
{


	printf("printf(A\\r\\n)的返回值为:%d\r\n",printf("A\r\n"));
	printf("printf(AB\\r\\n)的返回值为:%d\r\n",printf("AB\r\n"));
	printf("printf(ABC\\r\\n)的返回值为:%d\r\n",printf("ABC\r\n"));
		


return 0;
}

运行结果:(printf的返回值是:输出字符的个数) 

  -------------------------------------------------------------------------------------------------------------------------------

5、输入三科成绩,然后把三科成绩输出(数据范围:0~100)

#include<stdio.h>


int main()
{

	unsigned int grade[3]={0};
	for(int i=1;i<=3;)
	{
	
		printf("\r\n请输入科目%d成绩:",i);	
		scanf("%u",&grade[i-1]);
		if(grade[i-1] < 0 || grade[i-1] > 100)
		{
			printf("%d输入错误,请重新输入0~100之间的数据\r\n",grade[i-1]);
		}
		else i++;	
	}
	
	
	for(int i=0;i<sizeof(grade)/sizeof(int);)

		printf("科目%d成绩为:%d\r\n",++i,grade[i]);	


return 0;
}

输出结果:(不能输入字符数据,否则程序异常退出[未想出解决办法];成绩排序,后面学)

-------------------------------------------------------------------------------------------------------------------------------

 

举报

相关推荐

0 条评论