ZLC语言总1.docx

上传人:b****5 文档编号:29630907 上传时间:2023-07-25 格式:DOCX 页数:16 大小:221.47KB
下载 相关 举报
ZLC语言总1.docx_第1页
第1页 / 共16页
ZLC语言总1.docx_第2页
第2页 / 共16页
ZLC语言总1.docx_第3页
第3页 / 共16页
ZLC语言总1.docx_第4页
第4页 / 共16页
ZLC语言总1.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

ZLC语言总1.docx

《ZLC语言总1.docx》由会员分享,可在线阅读,更多相关《ZLC语言总1.docx(16页珍藏版)》请在冰豆网上搜索。

ZLC语言总1.docx

ZLC语言总1

C语言总结

1如果定义的变量是字符char,记住加单引号,如:

’x’(或者输其ASCII值)

2字符数组初始化时,未赋值的将自动初始化为空字符

整型数组初始化时,未赋值的将自动初始化为0

3以空格作为字符时,必须在单引号间键入空格键,如‘空格’

为了保持整齐的格式,每次程序结束时都不能忽略换行符:

\n

4scanf函数执行时遇到空格时将会终止,而gets函数执行时遇到回车键才会终止!

(在读取字符串时)

5puts()括号中内容比printf()括号中简介许多,但是却无法进行格式整理。

如s==a[]

且puts函数只能输出字符串(所输出的字符串必须含有结束符’\0’!

6printf("%s\n%s\n",strlwr(f),strupr(f));其中,只能有一个函数。

或是strlwr()或是strupr()

7.else{k=-1;i=0;}

else

if(k==1)return(j-i);

if(t[i]=='\0'&&k==-1)return-1;

额..为什么会显示不是所有控制路径都返回一个值,改怎么改呢....

满意答案

∙和睦太守

∙向TA提问

∙采纳率:

42.9%满意答案:

87

∙擅长:

通信网络电脑常识编程

和睦太守2011-03-19

1、编译器没那么智能,知道你考虑了所有情况

2、不要条件后return,最后加个独立return就不会了

追问:

哦,对了。

那么是不是任何情况下C++中不能条件后return?

回答:

不是说不能条件后return,而是说最后加个独立return,让编译器知道一个显式的结束

补充:

建议像你这个程序一样,不要太多条件后return,其实这样虽然代码感觉很少,但编译器效率更低,你可以考虑用个变量来代替,最后返回变量

8.我第一张图是等待输入状态,没有结束

bITeM 2014/12/14 12:

43:

49

之前也遇到这个问题,搜索之后似乎是 scanf时按下的回车被下一个scanf接收,所以提前结束,加个getchar()接收回车可以解决,似乎是这样,有错请各位大神指出

12:

45:

26

宇宙的一粒尘埃… 2014/12/14 12:

45:

26

原来如此

,大神,太感谢你了!

bITeM 2014/12/14 12:

45:

28

不加getchar()是这样的

bITeM 2014/12/14 12:

46:

00

我是C渣..不客气

12:

49:

01

bITeM 2014/12/14 12:

49:

01

但是这个解释好像解释不了单个输入时候的情况..

12:

53:

19

bITeM 2014/12/14 12:

53:

19

明白了,

下一个scanf是char类型,可以接收回车,才回把上面的回车给收了。

13:

15:

56

宇宙的一粒尘埃… 2014/12/14 13:

15:

56

果然是这样的,我把getchar( )去掉后,让scanf读取一个int型,也能达到同样的效果

9.for(i=2;i

{

if(x%i==0)//if只是一个语句不是,一个循环,而break是退出当前所在循环,即退出for循环!

{

printf("xisnotaprimrnumber\n");

break;

}

if(x%i!

=0&&i==x-1)

printf("xisaprimenumber\n");

}

10.

voidmain()

{

intx;

printf("pleaseenteraninteger:

");

scanf("%d",&x);

primeNum(x);

//主函数加不加返回语句return,要看返回值类型是否为空,如该程序类型是void,所以不加return语句

//当用'//'来进行注释时,注释语句只能在同一行上,不能跨行

}

11.要判断三个数的最大值与最小值是,要运用两次语句:

a>b?

a:

b;

12.for(i=min;i>=1;i--)//不能把>=换成=>!

if(a%i==0&&b%i==0)returni;//return能直接跳出for循环!

13.//(指针),onthebasisofthe"for"sentence.outputthecharacterofcharacterstring

#include

voidmain()

{

char*x="hello";/*相当于把"hello"的第一个元素地址赋给了x,同时x也相当于字符串数组"hello"的首地址(即第一个元素的地址)

即把x当数组名用*/

for(;x[4];x++)//第一个;前可留空格也可不留。

同时该语句仅仅决定下行语句执行次数,不影响其值!

printf("%c\n",*x);

}

14.

//usethepointertooutputtheallelementofthearray

#include

voidmain()

{

inta[2][3]={1,2,3,4,5,6};

int*p;

for(p=a;p<=*a+2*3;p++)//为何把*a+2*3换为&a[2][3]后运行结果不一样呢?

printf("%d\n",*p);

15.

读取与输出二维数组的几种方式:

指针:

int*p数组:

a[m][n]

@1:

for(p=*a;p<*a+m*n;p++)

scanf("%d",p);或者是printf(“%d”,*p);

@2:

for(i=0;i

for(j=0;j

scanf(“%d”,&a[i][j]);或printf(“%d”,a[i][j]);

@3:

for(i=0;i

Scanf(“%d”,p+i);或printf("%d",*(p+i));

@4:

for(p=&a[0][0];p<&a[m][n];p++)

Scanf(“%d”,p);或printf(“%d”,*p);

16.

二维数组中,

a[i]+j==&a[i][j]

a[i]==&a[i][0]

a[0]==&a[0][0]==a==*a

例如:

for(p=a[0];p

*p=0;//对第一行清零

for(p=&a[1][0];p<&a[1][3];p++)

*p=1;//对第二行全部赋值为1

printf("新数组为:

");

for(p=a[0];p

{

printf("%d",*p);a

s+=(*p);

}.//9.用语句输出新数组并求和

printf("\n和为s=%d\n",s);

}

17.

满意答案

從(_鈊ゞ開始  2009-12-18

%d十进制有符号整数 

%u十进制无符号整数 

%f浮点数 

%s 字符串 

%c单个字符 

%p指针的值 

%e指数形式的浮点数 

%x,%X无符号以十六进制表示的整数 

%0无符号以八进制表示的整数 

%g自动选择合适的表示法

追问:

顺便再说一下长整型有多长,短整型又是多长的吧谢谢

还有关于小数位数的~

回答:

类型说明符

数的范围

字节数

int

-32768~32767即-215~(215-1)

2

unsignedint

0~65535即0~(216-1)

2

shortint

-32768~32767即-215~(215-1)

2

unsignedshortint

0~65535即0~(216-1)

2

longint

-2147483648~2147483647即-231~(231-1)

4

unsignedlong

0~4294967295即0~(232-1)

4

18

在printf中使用"%g"格式,可用来显示实数最精简的表达方式。

意思就是在"%f"格式(实型的小数形式)和"%e"格式(实型的指数形式)当中,选择比较简短的表达方式,并且不显示小数点后面结尾的一些0。

输出实数,根据数值大小,自动选f或e格式不输出无意义的零

19比较简单的历遍字符串数组元素的方法:

voidlow_upp(char*p)

{

for(*p;*p!

='\0';p++)

*p=(*p)-32;

}

20.

voidsort_string(char*y[],intm)

{

inti,j;

char*tem;

for(i=0;i

for(j=0;j

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次方之间。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1