C语言命令问题
1.int、const、char命令有什么作用?2.printf命令中,参数%d与%s有何不同?
3.C语言中,是不是所有的程序都要加上头文件?对头文件有什么具体的规定方法?
4.数字整形变量和浮点型变量各为什么养的变量?有什么不同?
5.怎样判断C语言中的命令来自于哪个关键字?
6.为什么数组和字符型变量需要初始化?如果没有初始化他们会怎样?
7.数组为什么要进行定义?变量为什么要进行定义?
8.请逐行解释如下代码的作用:
int years[12];
years[0] = 2;
int age[5] = {21,20,22,25,25}
int days[] = {1,2,3};
char strings[5] = {'a','b','c','d','e'};
char strs[] ={'a','b','c','d','e'};
char words[] = “hello world !"
words[1] = ‘h’
请高手逐一作答,谢谢
追问:你怎么这么无聊啊?不知道就别回答
答案:1.int、const、char命令有什么作用?
答:int ,char用于定义数据类型,分别是整型和字符型,const是定义为常量(和他们混用)即其值定义后不能改变, 如: int a; char b; const int c=19; const char v=20;(const一般定义时要赋值,不然就不能再给它赋值了哦)
。
2.printf命令中,参数%d与%s有何不同?
答:它们是转义字符,即引号内的其它内容会原样打出,而这些字符不会,%d,是把对应的变量按十进制值打出,而%s是把对应的字符串打出;
如:int a=10; char *s="good"; printf(" x= %d,%s", a, s); <---------- x= 10,good
`
3.C语言中,是不是所有的程序都要加上头文件?对头文件有什么具体的规定方法?
答:一般都要有头文件的,因为C中没有直接与硬件接触的指令(但却有这些函数,他们有的用其它语言或C编写,编译后的*.obj文件加在*.lib文件中,而像函数的声明,宏等就写成头文件)~~但当你用混合编程时,也能达到不用头文件的目的:如:
int main(void) <--------混合编程
{
char c='a'; <-------用C定义
asm mov ah, 2; <-------应用了行内汇编
asm mov dl, c;
asm int 0x21; <-------用汇编语言进行中断
return 0;
}
。
包含头文件的格式: #include <>(或“”,包括自己编写的头文件,而<>只是编译器自带)
`
4.数字整形变量和浮点型变量各为什么养的变量?有什么不同?
答:想简单点,整型变量就是我们说的整数:int a=19,b=-19;
而浮点型变量就是小数啦~~ float c=1.2, t=-1,5, s=1.0;
它们在内存的大小和读取方法是不同的
`
5.怎样判断C语言中的命令来自于哪个关键字?
答:你的该问题难理解哦。。。如果按你第一题说的命令int ,char,那这些也叫关键字(保留字),所以不用
判断什么哦。。。。或者你是想知道sizeof吧? sizeof能知道变量占多大内存,而用int, char , float定义的变量占的内存是一定的,所以你就能粗略估计是那个定义的了哦。。。
`
6.为什么数组和字符型变量需要初始化?如果没有初始化他们会怎样?
答:内存是很多程序共用的,那个程序用完它后并没有清除它在上面的内容,所以如果你定义的变量不赋初值(即初始化),那它的值就是那没被清除的值,你一般无法确定它;所以你的变量定义时可不初始化,但用它时就要初始化了,不然它的值肯定不是你要的那个啦:如
int a=19,a[10]={0} ; <----定义时顺便初始化了,这对数组有好处的,它一下了就能全部元素都赋值,而过了定义后就不能这样给数组的全部元素初始化了: 相当int a[10]; a[0]=0;a[1]=0;a[2]=0……
而int a,s; s = a; 这样是不好的,你不知a是多少啊,没意义
`
7.数组为什么要进行定义?变量为什么要进行定义?
答:C中的数组变量都是要先定义后使用的,这样给它们分配了内存,以便下面的不同运算和使用!!
如果你没有定义,那编译器也不知道它是哪来,占多大内存,它是要如何用啊??
省略 int a; 直接a = 10; <----编译器不知a哪来,要分多在内存给它!
`
8.请逐行解释如下代码的作用:
int years[12]; <---定义一个长度为12*sizeof(int)的字节的数组years
`
years[0] = 2; <------数量组years的第一个元素赋初值2
`
int age[5] = {21,20,22,25,25} <----定义一个长度为5*sizoeof(int)个字节的数组age,同时给各个元素赋了初值,===== age[0]=21,age[1]=20……
`
int days[] = {1,2,3}; <-- 定义了int 型数组days,长度就是里面的3*sizeof(int)个字节,并给对应初值
`
char strings[5] = {'a','b','c','d','e'};<--- 定义了一个字符数组strings,长度为5*sizeof(char)个字节,
并给对应的元素赋了初值,对应关系和上面一样(注意没有'\0'这尾巴,所以它不是字符串哦)
`
char strs[] ={'a','b','c','d','e'}; <----道理一样,只要在定义时有赋值,就能省略它的长度(因为长度通过元素的个数也能知道啊!)
`
char words[] = “hello world !" <----定义了一个字符串了,它等价于:
words[] = {'h','e','l','l','o',' ','w','o','r','l','e','\0'},长度可知,而就比字符数组多了尾巴'\0'
`
words[1] = ‘h' <-----改了上面对应的'e'变为'h',words[0]是'h'哦,words[1]是'e'哦!
希望你能看懂吧!
1.int 是整形变量如1,2,3等,const指常数,可指变量是常型变量(即不可改变的),如const int a;char声明的是字符型变量(如‘a’‘b’‘c’) 其实和int型没什么区别,只是给变量分配的大小不同罢了。
2.printf(“%d”,变量);%?指变量以什么格式输出,%d是整形,%s指字符串
3.所有的文件都要有头文件,一般形式为#includes<>或#include""
4.像1,-20,等等都是整形的,C语言为每个整形变量分配4个字节的空间,像1.245,-12.59等都是浮点型变量,分配大概8个字节的空间(具体多少记不太清了,每个编译器具体分配的都不一样)
5.TC下 你可以把光标移到想要查询的函数上,按ctrl+F1;
6.变量在申明的时候只是把一段内存空间起名为变量名而已,里面装的都是些垃圾,你说为什么要初始化呢
7.像1,2,3,3.1415,等,他在程序中不会变化,所以叫常量,还有种叫变量,他是变化的,可能在某个时刻他为1,但是过一会根据需要,可能付给他不同的值
8
int years[12]; /* 声明一个叫years的整形数组,数组元素个数为12*/
years[0] = 2; /*把数组的第一个元素赋值为2*/
int age[5] = {21,20,22,25,25} /*声明大小为5的age数组,并对数组初始化赋值*/
int days[] = {1,2,3}; /*有时候在定义并初始化的时候可以不写元素个数,系统默认为后面初始化元素个数*/
char strings[5] = {'a','b','c','d','e'};/*和age一样,不过是字符型数组,‘a’为其中一元素*/
char strs[] ={'a','b','c','d','e'}; /*同ages一样*/
char words[] = “hello world !" /*你也可以这样写 char words[] = {'h','e','l','l','o',' ','w','o','r','l','d','','!','\0'}*/
words[1] = ‘h’/*把word数组第二个元素赋值为‘h’*/
建议楼主把书上基本的定义重新看一遍!!我打字好累。。。。
printf命令中,参数%d与%s有何
.%s 字符串
%d 有符号10进制整数
你怎么这么多问题啊?
int years[12];定义years一维数组含有12个元素
years[0] = 2;years数组中第一个元素为2
int age[5] = {}21,20,22,25,25定义数组age含有5个元素,分别为21,20,22,25,25
int days[] = {1,2,3};定义数组days,含有3个元素(int表示整形)
上一个:C语言入门
下一个:C语言函数问题