首页 > 其他分享 >我的第七次C语言练习

我的第七次C语言练习

时间:2023-08-01 15:37:36浏览次数:31  
标签:练习 return int void 第七次 C语言 char printf main

今天学习了char类型。一个字符的char类型是占8个位的,如果给的字符超过了一个并且打的是单引号,那么系统会自动储存最后一个字符。

//int main(void)
//{
//	char a = 'FATE';
//	char b[] = "FATE";
//	printf("%c\n", a);//E
//	printf("%s", b);//FATE
//	return 0;
//}

就例如上面这个代码,a只打印出来了E,而b却打印出了完整的FATE。其中b是属于字符串,在声明是要在b后面加上一个[]才能说明这是一个字符串,并且字符串的声明不能像单字符或整形那样分行引入参数,必须写在一行,打印时也只写b而不写b[]。

//int main(void)
//{
//	printf("\a");
//	return 0;
//}
//int main(void)
//{
//	printf("\007");
//	return 0;
//}

我的第七次C语言练习_单引号

接下来是转移序列,但是根据ASCII码我不是很懂为什么\007会发挥和\a一样的作用,而且ASCII里面是没有7的,a对应的应该是97,书上说\007是八进制,但007八进制对应的还是7呀,跟a有什么关系。

//int main(void)
//{
//	int a;
//	a = '\014';
//	printf("%d", a);//12
//	return 0;
//}

然后我就开始研究八进制,十六进制是不是这么表示,刚开始的时候是对的,'\014'对应的事12。

//int main(void)
//{
//	char a, b;
//	a = 65;
//	b = '\65';//5,看不懂
//	printf("%c,%c", a, b);
//	return 0;
//}
//int main(void)//完全看不懂
//{
//	printf("\x65");//e
//	printf("\065");//5
//	return 0;
//}

但是后面这两个我就完全看不懂了,'\65'八进制对应的应该是53,但打印出来的却是5,就像最开始的字符串塞进单引号中只取最后的值一样,但是我的是转义序列呀。后来的就更离谱了,一个八进制,一个十六进制就没有一个是对的上的,不理解。

//int main(void)
//{
//	char a = 97;
//	char b = '97';
//	char c[] = "97";
//	printf("%c", a);//a
//	printf("%c", b);//7
// 	printf("%s", c);//97
//	return 0;
//}

之后是数字和数字字符的区别,直接输数字,出现的会是这个数字ASCII值对应的字符,只有打单引号的才是输出数值。

//int main(void)
//{
//	char a;
//	printf("The code for ");
//	scanf("%c", &a);//会分行
//	printf("is %d.\n", a);
//	return 0;
//}
//int main(void)
//{
//	char ch;
//	scanf("%c", &ch);
//	printf("The code for %c is %d.\n",ch,ch);
//	return 0;
//}

通过上述代码就可以知道字符对应的ASCII值,第一种在用scanf时会在输完后自下一行开始,不美观。而第二种就是将scanf给提到最前面避免了这种问题。根据书中对char的讲解,char其实也算是一种整形,所以是可以用%d来打印的,只不过打印出来的结果是该字符对应的ASCII值,这里也就是运用这个技巧来实现字符与ASCII值互换的。

标签:练习,return,int,void,第七次,C语言,char,printf,main
From: https://blog.51cto.com/u_16187763/6922640

相关文章

  • C语言概述
    C语言是一种通用的、高级的程序设计语言,由贝尔实验室的DennisRitchie在1972年首次开发。它在计算机编程领域得到了广泛应用,被认为是现代计算机编程的基础之一。C语言具有简洁的语法、高效的执行速度和强大的底层编程能力,因此在系统级编程、嵌入式开发、操作系统和编译器设计等领域......
  • C语言中EOF的意义与用法
    EOF,为EndOfFile的缩写,通常在文本的最后存在此字符表示资料结束。在微软的DOS和Windows中,读取数据时终端不会产生EOF。此时,应用程序知道数据源是一个终端(或者其它“字符设备”),并将一个已知的保留的字符或序列解释为文件结束的指明;最普遍地说,它是ASCII码中的替换字符(Contr......
  • 怎么学习C语言,才能快速掌握?
    有多年软件行业经验,期间参与过多个C语言项目。要掌握一门编程语言,仅仅投入时间学习是不够的,关键在于实际项目经验。在没有真正实战经验之前,不宜轻易声称掌握某种编程语言,因为编程是积累性的工作,理论知识重要但实践更为关键。学习任何编程语言都需要先掌握理论基础,然后通过项目实战......
  • C语言---malloc(0)会产生什么结果,真的是空指针吗?
    前言(1)几天前在一个交流群中看到有人说,面试问malloc(0)会怎么样是真的恶心。(2)这个突然激起了我的好奇心。居然还可以malloc(0)?!(3)经过测试最后,发现是可行的。经过互联网的查找,肯哥的交流群以及自己的理解,梳理成这篇博客。(4)肯哥博客主页:架构师李肯;(5)感慨一下,群里面的大佬们不愧是有......
  • 数组复习片+练习题
    数组的遍历定义一个数组,求和int[]arr={1,2,3,4,5,6,7};intsum=0;for(inti=0;i<arr.length;i++){sum=sum+arr[i];}System.out.println(sum);定义一个数组,统计数组里面一共有多少能够被3整除的数字:in......
  • 练习回—编译安装nginx
    练习回练习,编译安装nginx。1、yum安装依赖环境 yum-yinstallpcre-develzlib-develgccgcc-c++make2、“下载”安装包再解压可用利用xshell直接拖拽文件包 wgethttp://nginx.org/download/nginx-1.18.0.tar.gz#也可以用命令去下载 tarxfnginx-1.18.0.tar.gz3......
  • 我的第六次C语言练习
    //复习//intA(intx,inty);//intB(intx,inty);//intmain(void)//{// inta,b,c,d,f;// a=0;// b=0;// scanf("%d%d",&a,&b);// c=A(a,b);// d=A(b,c);// f=B(c,d)+a*B(a,c);// printf("end=%d\n",f)......
  • 【ACM专项练习#01】基本输入输出,如何加减
    关于ACM,牛客其实也有专门的模拟练习:https://ac.nowcoder.com/acm/contest/5657#question做这个也可以关于while(cin>>n)在处理输入时,cin>>n;while(n--)和while(cin>>n)是两种常见方法这里说一下区别cin>>n;while(n--)当你预先知道迭代次数,并希望根据该次数执......
  • 【ACM专项练习#02】整行字符串、输入vector、打印图形、处理n组数据以及链表操作等
    输入整行字符串平均绩点题目描述每门课的成绩分为A、B、C、D、F五个等级,为了计算平均绩点,规定A、B、C、D、F分别代表4分、3分、2分、1分、0分。输入有多组测试样例。每组输入数据占一行,由一个或多个大写字母组成,字母之间由空格分隔。输出每组输出结果占一行。如果输入的大......
  • 初识c语言
    一、数据类型char字符型short短整型int整型long长整型longlong更长整型float单精度浮点数double双精度浮点数下面是对每个数据类型所占字节的确定:#include<stdio.h>intmain(){ printf("%d\n",sizeof(int)); printf("%d\n",sizeof(double)); printf("%d\n",sizeof(......