if(strcmp(y[j],y[j+1])>0)
//此时,y[j],y[j+1]相当于两个字符串数组进行比较,所以只比较数组名即可
{
tem=y[j];y[j]=y[j+1];y[j+1]=tem;//相当于把数组(首地址)赋给指针,所以无*号
}
}
21
exit()和return的区别:
按照ANSIC,在最初调用的main()中使用return和exit()的效果相同。
但要注意这里所说的是“最初调用”。
如果main()在一个递归程序中,exit()仍然会终止程序;但return将
控制权移交给递归的前一级,直到最初的那一级,此时return才会终止程序。
return和exit()的另一个区别
在于,即使在除main()之外的函数中调用exit(),它也将终止程序。
22
C语言中从floatx=3.6f到后来是什么意思?
求详解
表示这个3.6是float类型的,
在c语言中代码中出现像3.6这样的常数(字面量),默认的类型是double,如果加f则显示说明这是一个float,防止一些编译器生成“将double赋值给float”之类的警告
23
关于类型转换
谭浩强的c语言程序设计中给出了一个图示
double←float
↑
long
↑
unsigned
↑
int←char、short
横向的箭头表示必须转换的,也就是说在一个表达式中只要出现float数据就转换成double型。
只要出现short和char类型数据就转换成int类型;
纵向的箭头表示在两者相遇时才转换,例如表达式中同时出现int数据和double数据,要把int数据转换成double数据,然后再进行表达式运算。
但是注意一点,纵向的转换中不是一级一级转换的,是直接转换的,例如int不是先转换为unsigned,在转换为long,在转换为double,而是直接转换
24
c语言,下面四个选项中,均是合法整形常量的是?
A160——-0xffff——011
B-0xcdf——01a——0xe
C-01——986,012——0668
D-0x48a——2e5——0x
A合法,三个分别是十进制十六进制八进制
B不合法,第二个八进制中出现一个十六进制数A
C不合法,第二个数中有逗号
D不合法,0x不正确
其他数字都是对的
0开头是8进制,0x开头是十六进制!
0x表示16进制,0~9,字符a到f,没有h
25
请问“00”与00是合法的整型常量吗?
00是合法的整型常量
“00”不是整形常量,但是是字符串常量,大小是3个字节,内容是两个asc值为48的数字0和一个结束符'\0'
26
-0x48a2e50x这三个数中那个不是合法整型常量?
.
答:
前两个合法。
0x是不合法的。
0x代表该数字是十六进制的。
2e5是科学计数法。
表示2*10^5值。
0x后面没有数字,所以非法。
27
字符中,反斜杠加上数字默认为8进制,反斜杠加上x加数字才为16进制
\后面的是八进制数字,表示对应ascii码值的字符
\后面如果是字母的话就是转义序列,如\t\n\v当然字母必须是合法的转义序列。
28
转义字符
\101代表字符:
A\X41代表字符:
A这个是怎么算出来的,能给我说得详细点吗?
转义字符可以用1~3位八进制数,也可以用16进制数
\101是用3位8进制转义序列
\x41是16进制转义序列
在ASCII码中,八进制数101和16进制数41都表示'A'
3.特殊字符:
就3个
\":
双引号
\':
单引号
\\:
反斜线
4.控制字符:
5个
\'单引号字符
\\反斜杠字符
\r回车
\n换行
\f走纸换页
\t横向跳格
\b退格
29
如何判断字符或字符串常量是否合法
1字符常量只能是一个字符。
如'ab'就不是字符常量。
2字符常量要用单引号括起来。
如"a"不是字符常量。
3用ASCII码表示时,数值要合法。
如'\68'表示ASCII码是八进制68的字符,但八进制中没有字符8,因此它也不是字符常量。
30
C语言中如何判断是不是合法转义字符?
以下是实例:
\a响铃
\b退格
\f换页
\n换行
\r回车
\t水平制表
\v垂直制表
\\反斜线字符''\'
\?
问号“?
”
\'单引号(撇号)字符
\"双引号字符
\0空字符(NULL)
\ddd三位八进制
\xhh二位十六进制
总的转义符就这些啦,
所谓合法的,就是符合以上形式的转义符,除此之外的均不是,比如\ba,这就是先退格再让a覆盖在上面,而不是先退格再响铃,凡是碰到反斜杠“\”就要警惕了,看看有没有以上所述的转义,若没有基本上是错的
还要注意的是如果输入的是\其他英文字母(不在上述之列),输出的会是ASCII码(具体参见ASCII码对照表)
31
blacksheep|分类:
编程2011-04-24
C语言中的实数默认是float类型的还是double类型的。
C里面实数默认是Double类型的,所有的Float都会被提至double来计算,然后再缩小成float,这样做是为了减少误差.
32
33
实型数据分两类:
单精度(float)和双精度(double)
float和double在内存中占用的字节:
float占用4个字节,double占用8个字节。
前一个能表示的数的有效范围在-10的38次方到10的38次方之间,后一个能表示数的有效范围在-10的308次方到10的308次方之间。