C语言程序写版式Word文件下载.docx

上传人:b****5 文档编号:19197719 上传时间:2023-01-04 格式:DOCX 页数:42 大小:29.89KB
下载 相关 举报
C语言程序写版式Word文件下载.docx_第1页
第1页 / 共42页
C语言程序写版式Word文件下载.docx_第2页
第2页 / 共42页
C语言程序写版式Word文件下载.docx_第3页
第3页 / 共42页
C语言程序写版式Word文件下载.docx_第4页
第4页 / 共42页
C语言程序写版式Word文件下载.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

C语言程序写版式Word文件下载.docx

《C语言程序写版式Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言程序写版式Word文件下载.docx(42页珍藏版)》请在冰豆网上搜索。

C语言程序写版式Word文件下载.docx

if(width<

height)

dosomething();

}

for(initialization;

condition;

update)

//空行

other();

风格不良的代码行示例:

intwidth,height,depth;

//宽度高度深度

X=a+b;

y=c+d;

z=e+f;

height)dosomething();

【建议】尽可能在定义变量的同时初始化该变量(就近原则)

如果变量的引用处和其定义处相隔比较远,变量的初始化很容易被忘记。

如果引用了未被初始化的变量,可能会导致程序错误。

本建议可以减少隐患。

例如:

intwidth=10;

//定义并初绐化width

intheight=10;

//定义并初绐化height

intdepth=10;

//定义并初绐化depth

3.代码行内的空格

【规则3-1】关键字之后要留空格。

象const、virtual、inline、case等关键字之后至少要留一个空格,否则无法辨析关键字。

象if、for、while等关键字之后应留一个空格再跟左括号‘(’,以突出关键字。

【规则3-2】函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别。

【规则3-3】‘(’向后紧跟,‘)’、‘,’、‘;

’向前紧跟,紧跟处不留空格。

【规则3-4】‘,’之后要留空格,如Function(x,y,z)。

如果‘;

’不是一行的结束符号,其后要留空格,如for(i=1;

i<

10;

i++)。

【规则3-5】赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=”“>

=”、“<

=”、“+”、“*”、“%”、“&

&

”、“||”、“<

<

”,“^”等二元操作符的前后应当加空格。

【规则3-6】一元操作符如“!

”、“~”、“++”、“--”、“&

”(地址运算符)等前后不加空格。

【规则3-7】象“[]”、“.”、“->

”这类操作符前后不加空格。

【建议】对于表达式比较长的for语句和if语句,为了紧凑起见可以适当地去掉一些空格,如:

for(i=0;

i<

i++)和if((a<

=b)&

(c<

=d))

代码行内的空格示例:

voidFunc1(intx,inty,intz);

//良好的风格

voidFunc1(intx,inty,intz);

//不良的风格

if(year>

=2000)//良好的风格

if(year>

=2000)//不良的风格

if((a>

=d))//良好的风格

if(a>

=b&

c<

=d)//不良的风格

for(i=0;

i++)//良好的风格

for(i=0;

i++)//不良的风格

for(i=0;

i<

10;

i++)//过多的空格

x=a<

b?

a:

b;

x=a<

b?

a:

b;

//不好的风格

int*x=&

y;

int*x=&

y;

array[5]=0;

//不要写成array[5]=0;

a.Function();

//不要写成a.Function();

b->

Function();

//不要写成b->

Function();

4.对齐

【规则4-1】程序的分界符‘{’和‘}’应独占一行并且位于同一列,同时与引用它们的语句左对齐。

【规则4-2】{}之内的代码块在‘{’右边数格处左对齐。

风格良好的对齐示例:

voidFunction(intx)

…//programcode

if(condition)

else

While(condition)

如果出现嵌套的{},则使用缩进对齐,如:

风格不良的对齐示例:

voidFunction(intx)

{…//programcode}

if(condition){…//programcode}

else{…//programcode}

update)

while(condition){…//programcode}

5.长行拆分

【规则5-1】代码行最大长度宜控制在70至80个字符以内。

代码行不要过长,否则眼睛看不过来,也不便于打印。

【规则5-2】长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符)。

拆分出的新行要进行适当的缩进,使排版整齐,语句可读。

if((very_longer_variable1>

=very_longer_variable12)

(very_longer_variable3<

=very_longer_variable14)

(very_longer_variable5<

=very_longer_variable16))

for(very_longer_initialization;

very_longer_condition;

very_longer_update)

在C语言中,是如何取得这个随机数的?

一个语句:

rand();

它的作用就是随机取0到RAND_MAX之间的任何数。

ANSI标准指出,RAND_MAX值的范围至少是32767,也就是双字节整数的最大值。

下面我们用一个例子来取得从1到6的随机整数:

#include<

stdio.h>

stdlib.h>

main()

{

inti;

for(i=1;

=20;

i++)

printf("

%10d"

1+(rand()%6));

第2行的stdlib.h是rand()函数的头文件,第7行就是实现功能的语句了。

前面我们以经说过函数取的值是介于0到RANDMAX之间的,而我们所要的是1到6之间的整数。

想一想就知道:

任一整数除以6所得的余数是0~5之间的整数,再加一之后就是1到6了,也就是我们的目标。

利用这个原理我们使用%号对随机数进行了缩放。

OK,运行两次程序:

一:

66556511536624262341

二:

66556511536624262341

发现:

两次运行的结果完全一样。

结论:

这算什么随机数。

具有讽刺意味的是,这种重复性是rand的一个重要特点,在调试程序时,这种重复性是必不可少的,因为它可以证明对程序的修改能够正常运行。

实际上,rand函数产生的是伪随机数。

但我们需要的是随机数。

于是,需要对程序进行随机化,这就需要使用标准库函数srand来实现了。

这二个函数的具体工作过程如下:

1)首先给srand()提供一个种子,它是一个unsignedint类型,其取值范围从0~65535;

2)然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间)

3)根据需要多次调用rand(),从而不间断地得到新的随机数;

4)无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。

以下是一个产生随机数的例子

unsigndeseed;

Enteraseed:

"

);

scanf("

%u"

&

seed);

srand(seed);

for(i=1;

程序的运行结果是当我们输入不同的SEED时,产生不同组的随机数。

这句话的意思有两个:

当输入相同的SEED时,产生的同组随机数;

每次运行我们都要输入一个SEED。

如果我们希望不用每次输入SEED值,而且每次运行时SEED值都是不同的,我们可以用下面语句代替上面的第三块的三个语句:

srand(time(NULL));

这会使计算机自动读取自己的时钟以获得SEED值。

于是我们就获值了每次运行都会改变的SEED,同样也就获得了真正的随机数。

下面是两个使用随机数的例子。

例1:

输出10个在[60-100]之间随机的整数。

利用公式rand()%(b-a)+a,就会产生在[a,b]之间的一个随机数

time.h>

{intmagic,i;

{magic=rand()%40+60;

magic);

\n"

例2:

输出5个在[4-30]之间随机的整数。

{magic=rand()%(30-4)+4;

例3:

猜数游戏(范围:

10-100)

#include<

{intmagic,num;

intcount;

magic=rand()%(100-10)+10;

count=0;

while

(1)

printf("

pleaseguessthenum:

scanf("

%d"

num);

count++;

if(num>

magic)printf("

big"

elseif(num<

small"

else{printf("

right"

count=%d"

count);

break;

3顺序题

方法不是唯一的,仅供参考。

题目4:

#include"

stdio.h"

{floatf,c;

inputf:

"

%f"

f);

c=5*(f-32)/9;

c=%6.2f\n"

c);

题目5:

{charc1,c2,b,d;

pleaseinputasmallletter:

%c"

c1);

c2=c1-32;

b=c2-1;

d=c2+1;

thebigletteris%c\n"

c2);

beforeis%c,lateris%c\n"

b,d);

题目6:

{intx,y,h,f;

%d%d"

h,&

x=2*h-f/2;

y=f/2-h;

x=%d,y=%d\n"

x,y);

题目7:

{floatx,y,h,s;

%f%f%f"

x,&

y,&

h);

s=(x+y)*h/2;

s=%f\n"

s);

题目8:

{charx,y;

pleaseinputtwoletter:

%c,%c"

y);

theloweris%c,%c\n"

x+32,y+32);

theasciiis%d,%d\n"

题目9:

math.h"

{floatx,y,z;

%f%f"

z=sqrt(y)+pow(x,5)/2;

z=%f\n"

z);

选择题

题目1:

{inta,b,c,max;

inputthreeinteger:

%d%d%d"

a,&

b,&

c);

if(a<

b)

if(b<

c)

max=c;

else

max=b;

else

if(a<

max=a;

max=%d"

max);

题目2:

{intx,y;

inputx:

x);

if(x<

1)

{y=x;

x=%d,y=x=%d"

elseif(x<

10)

{y=2*x-1;

x=%d,y=2x-1=%d"

{y=3*x-11;

x=%d,y=3x-11=%d"

题目3:

floatscore;

chargrade;

pleaseinputascore:

score);

switch((int)(score/10))

case10:

case9:

grade='

A'

;

break;

case8:

B'

case7:

C'

case6:

D'

case5:

case4:

case3:

case2:

case1:

case0:

grade='

E'

score:

%5.1f,grade:

%c\n"

score,grade);

题目5:

{inta,b,x,y;

inputa,b:

b);

x=a*a+b*b;

if(x>

100)

{y=x/100;

y);

a+b);

题目6:

{charch;

pleaseinputachar:

ch=getchar();

if(ch<

32)

\nThecharisacontrolchar.\n"

elseif(ch>

='

ch<

Z'

\nThecharisacaptalchar.\n"

elseif(ch>

a'

z'

\nThecharisalowerchar.\n"

1'

9'

\nThecharisadigitchar.\n"

\nThecharisanotherchar.\n"

operator

break

default

说明:

g格式符:

以f格式或e格式输出实数,且不输出无意义的零。

选择f格式或e格式的原则是:

那种格式输出时所占宽度较小,即使用其为g格式符的输出形式。

题目9:

#include"

{inta,b,c,t,min;

%d,%d,%d"

t=(abs(a)<

abs(b))?

min=(abs(t)<

abs(c))?

t:

c;

min);

题目10:

{intm,n,x;

m,&

n,&

if((x%n==0&

x%m==0)&

(n%x==0&

m%x==0))

既是公约数,又是公倍数\n"

elseif(x%n==0&

x%m==0)

公倍数\n"

elseif(n%x==0&

m%x==0)

公约数\n"

既不是公约数,又不是公倍数\n"

题目11:

{inta,b;

%d,%d"

if(sqrt(a*a+b*b)<

15)

in"

elseif(sqrt(a*a+b*b)==15)

on"

out"

题目12:

intm;

ch=getchar();

switch(ch)

{case'

:

m);

(1):

10to16---%x"

m);

case'

2'

:

(2):

10to8---%o"

3'

%o"

(3):

8to10---%d"

m);

4'

quit"

循环试题

实验题

sn=sn+tn

tn=tn+a

(1)

{inti,j,k,m;

for(i=100;

=999;

{

j=i/100;

k=i/10-j*10;

m=i%10;

if(i==j*j*j+k*k*k+m*m*m)

%5d"

i);

(2)

{inti,j,k,n,m;

=9;

for(j=0;

j<

j++)

for(k=0;

k<

k++)

{m=i*100+j*10+k;

n=i*i*i+j*j*j+k*k*k;

if(m=

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

当前位置:首页 > 求职职场 > 社交礼仪

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

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