c语言期末总复习_第1页
c语言期末总复习_第2页
c语言期末总复习_第3页
c语言期末总复习_第4页
c语言期末总复习_第5页
已阅读5页,还剩38页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

填空题

1、表示"x'y>z”的C表达式是由于(x>=y&&y>=z)

2、getcharO函数只能接收一个(字符).

3、一个C程序总是从(main函数)开始执行。

4、当a=l,b=2,c=3时,执行以下程序段后a=(3).

if(a>c)b=a;

a=c;

c=b;

5、C程序在执行过程中,不检查数组下标是否(越界).

6、若有以卜定义和语句:

inta[5]={l,3,5,7,9},*p;

p=&a[2];

则++(*p)的值是(6).

7、从函数的形式上看,函数分为无参函数和(行参函数)两种类型.

8、有以下结构类型说明和变量定义,且sizeof(int)=2,则变量a在内存所占字节数是(22).

structstud

{charnum[6];

ints[4];

doubleave;

}a,*p;

9、intx=2,y=2,z=0;则表达式x==y>z的值为(0)

10、feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为(1),

否则为(0).

11、表达式3&&0的值是(0)

12、为了避免嵌套条件语句的二义性,C语言规定else与其前面最近的(且未与其它else配对的

if)语句配对.

13、以卜.程序运行的输出结果是(1).

#include<stdio.h>

fun(intx)

{if(x/2>0)

fun(x/2);

printf("%d”,x);

main()

{fun(6);)

14、语句:x++;++x;x=x+l;x=l+x;

执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(y二y+1).

15、已知x=2,y=2则表达式x*=y+8的值为(20).

选择题

1、执行以下程序段后,输出结果和a的值是(B)。

inta=10;

printf("%d”,a++);

A:10和10

B:10和11

C:ll和10

D:ll和11

2、字符串指针变量中存入的是(B)

A:字符串

B:字符串的首地址或者NULL

C:第一个字符

D:字符串变量

3,charh,*s=&h;可将字符H通过指针存入变量h中的语句是(C)«

A:*s=H;

B:*s='H';

C:s=H;

D:s=H'

4、以下程序的输出结果为(B)。

main()

{inti=010,j=10;

printf(〃%d,%d\n〃,++i,j-);

)

A:ll,10

B:9,10

C:010,9

1):10,9

5、判断char型变量cl是否为小写字母正确表达式为(D)

A/a<=cl<=z

B:(cl>=a)&&(cl<=z)

C:Ca>=cl)||Cz,<=cl)

D:(cl>=,a')&&(cl<=,z')

6、语句printf("a\bre\'hiVy\\\bou\n");的输出结果是

(说明:'\b'是退格符)(C)o

A:a\bre\,hi\'y\\\bou

B:a\bre\*hi\,y\bou

C:re'hi'you

D:abre,hi'y\bou

A:inta(10);

B:intn=10,a[n];

C:intn;scanf&n);inta[n];

D:#defineSIZE10(换行)inta[SIZE];

8、staticcharstr[10]="China〃;数组元素个数为(D)。

A:5

B:6

C:9

D:10

9、C语言源程序文件经过C编译程序编译后生成的目标文件的后缀为(B)

A:.c

B:.obj

C:.exe

D:.bas

10、设C语言中,int类型数据占2个字节,则long类型数据占(C)。

A:1个字节

B:2个字节

C:4个字节

D:8个字节

A:非整型返回值的

B:本文件外的

C:main函数

I):本函数下面定义的

12、在C语言中,为了结束由while语句构成的循环,while后一对圆括号

中表达式的值应该为(A)o

A:0

B:1

C:True

D:非0

13、以下关于运算符优先顺序的描述中正确的是(C).

A:关系运算符〈算术运算符〈赋值运算符〈逻辑与运算符

B:逻辑运算符<关系运算符<算术运算符〈赋值运算符

C:赋值运算符<逻辑与运算符:<关系运算符V算术运算符

D:算术运算符<关系运算符〈赋值运算符〈逻辑与运算符

14、若有inta[10]={0,l,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5

的语句为(D)。

A:printf*(a+5));

B:printfp[5]);

C:printf("%d”,*(p+5));

D:printf("%d",*p[5]);

15、一个C程序的执行是从(A)=

A:本程序的main函数开始,到main函数结束

B:木程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C:本程序的main函数开始,到本程序文件的最后一个函数结束

D:本程序文件的第一个函数开始,到本程序main函数结束

16、已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为(C)。

chara="a';a一;

printf("%d,%c\n”,a+'2'O',a+'3'O');

A:b,c

B:a一运算不合法,故有语法错

C:98,c

D:格式描述和输出项不匹配,输出无定值

17、C语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为(C)»

A:void

B:double

C:int

D:char

18、当调用函数时,实参是一个数组名,则向函数传送的是(B)«

A:数组的长度

B:数组的首地址

C:数组每一个元素的地址

D:数组每个元素中的值

19、设有数组定义:chararray[]="China”;则数组array所占的

空间为(C)«

A:4个字节

B:5个字节

C:6个字节

D7个字节

20、C语言的switch语句中case后(B)

A:只能为常量

B:只能为常量或常量表达式

C:可为常量或表达式或有确定值的变量及表达式

D:可为任何量或表达式

21、下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除.请选择填

空.⑻

#include<stdio.h>

main()

{inti=0,j,k;

do{i++;k=316-13*i;}

while([1]);j=k/ll;

printfC316=13*%d十i,j);

A:k/ll

B:k%ll

C:k/ll==O

D:k/ll==0

22设intx=l,y=l;表达式(!x|y一)的值是(B)。

A:0

B:1

C:2

D:-l

23、若有如下定义和语句,且0<=i<5,下面(C)是对数值为3数组元素的引用

inta[]={l,2,3,4,5},*p,i;

P二a;

A:*(a+2)

B:a[p-3]

C:p+2

D:a+3

24、变量的指针,其含义是指该变量的(B)o

A:值

B:地址

C:名

D:一个标志

A:各成员所需内存量的总和

B:结构中第一个成员所需内存量

C:成员中占内存量最大者所需的容量

D:结构中最后•个成员所需内存量

26、函数strcat(strcpy(str1,str2),str3)调用的功能是(B)

A:将串strl复制到串str2中后再连接到串str3之后

B:将串str2复制到串strl中后再将串str3连接到串strl之后

C:将串strl连接到串str2之后再复制到串str3之后

D:将串str2连接到串strl之后再将串strl复制到串str3中

27、在C语言中,要求运算数必须是整型的运算符是(A)。

A:"

B:%

C:!

D:>

28、以下不正确的语句为(A)

A:if(x>y);

B:if(x=y)&&(x!=0)x+=y;

C:if(x!=y)scanf&x);elsescanf("%d",&y);

D:if(x<y){x++;y++;}

29、C语言中,逻辑“真"等价于(B)

A:大于零的数

B:非零的数

C:大于零的整数

D:非零的整数

30、C语言的if语句中,用作判断的表达式为(B)

A:任意表达式

B:逻辑表达式

C:关系表达式

D:算术表达式

31、若有以下定义:chars='\092';则该语句(B)。

A:使s的值包含1个字符

B:定义不合法,s的值不确定

C:使s的值包含4个字符

D:使s的值包含3个字符

32、以下叙述中错误的是(A)

A:用户所定义的标识符允许使用关键字

B:用户所定义的标识符应尽量做到“见名知意”

C:用户所定义的标识符必须以字母或下划线开头

D:用户定义的标识符中,大、小写字母代表不同标识

33、若有条件表达武(exp)?a++:b-,则以下表达式中能完全等价于

表达式(exp)的是(B)o

A:(exp==O)

B:(exp!=O)

C:(exp==l)

D:(exp!=l)

34、以下正确的说法是(B)o

A:用户若需调用标准库函数,调用前必须重新定义

B:用户可以重新定义标准库函数,若如此,该函数将失去原有含义

C:系统根本不允许用户重新定义标准库函数

D:用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件

中,系统自动去调

35、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是

(说明:’\b'是退格符)(C)o

A:a\bre\'hi\'y\\\bou

B:a\bre\*hi\*y\bou

C:re'hi'you

D:abre'hi'y\bou

36、全局变量的定义不可能在(A)。

A:函数内部

B:函数外面

C:文件外面

D:最后一行

37.—为,,划,」,为数■,,上为,型,一下列,值♦句中

不(【)).

A:p=&j,p=pl;

B:p=a;

C:p=&a[j];

D:p=10;

38、设C语言中,一个int型数据在内存中占2个字节,则unsignedint

型数据的取值范围为(Oo

A:0—255

B:0—32767

C:0—65535

D:0—2147483647

39、若有说明:inta[][4]={0,0};则下面不正确的叙述是(D)o

A:数组a的每个元素都可得到初值0

B:二维数组a的第一维大小为1

C:因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1

D:有元素a[0][0]和/0]⑴可得到初值0,其余元素均得不到初值0

40、一个C程序的执行是从(A).

A:本程序的main函数开始,到main函数结束

B:本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C:本程序的main函数开始,到木程序文件的最后一个函数结束

D:本程序文件的第一个函数开始,到本程序main函数结束

41、若从终端输入以下数据,要给变量c赋以283.19,则正确的输入语句是(D)

A:scanfc)

B:scanf("%8.4f〃,&c);

C:scanfC%6.2fz,,&c);

D:scanf&c);

42char*sl="hello",*s2;s2=si;则(C)o

A:s2指向不确定的内存单元

B:不能访问"hello”

C:puts(sl);与puts(s2);结果相同

D:sl不能再指向其它单元

43、以下运算符中,优先级最高的运算符是(D)o

A:*=

B:>=

C(类型)

D:+

44、下列程序的输出结果是(B)o

mainO

{charcl=97,c2=98;

printf("%dcl,c2);

)

A:9798

B:97b

C:a98

D:ab

|45、以下叙述中正确的是(B)。|

A:C语言的源程序不必通过编译就可以直接运行

B:C语言中的每条可执行语句最终都将被转换成二进制的机器指令

C:C源程序经编译形成的二进制代码可以直接运行

D:C语言中的函数不可以单独进行编译

46、下面程序的运行结果是:(D)

ttinclude<stdio.h>

main()

{intx,i;

for(i=l;i<=100;i++)

{x=i;

if(++x%2=0)

if(++x%3==0)

if(++x%7==0)

printf(绘d”,x);

)

}

A:3981

B:4284

C:2668

D:2870

47、以下程序的输出结果是(A)。

mainO

{chars[]="123",*p;

P=s;

printf("%c%c%c\n',*p++,*p++,*p++);

}

A:123

B:lll

C:213

D:312

48、以下关于运算符优先顺序的描述中正确的是(C).

A:关系运算符〈算术运算符<赋值运算符〈逻辑与运算符

B:逻辑运算符<关系运算符<算术运算符〈赋值运算符

C:赋值运算符〈逻辑与运算符〈关系运算符〈算术运算符

D:算术运算符<关系运算符<赋值运算符〈逻辑与运算符

49、char*match(charc)是(A)。

A:函数定义的头部

B:函数预说明

C:函数调用

D:指针变量说明

50、为了提高程序的运行速度,在函数中对于整型或指针可以使用(B)型的变量。

A:auto

B:register

C:static

D:extern

51、以下错误的描述是:函数调用可以(D)o

A:出现在执行语句中

B:出现在一个表达式中

C:做为一个函数的实参

D:做为一个函数的形参

52、函数调用:strcat(strcpy(strl,str2),str3)的功能是(D)

A:将串strl复制到串str2中后再连接到串str3之后

B:将串strl连接到串str2之后再复制到串str3之后

C:将串str2连接到串strl之后再将串strl复制到串str3中

D:将串str2复制到串strl中后再将串str3连接到串strl之后

for(i=2;i==0;)printf("%d”,i-);

A:无限次

B:0次

C:1次

D:2次

54、卜面程序的运行结果是:C

ttinclude"stdio.h"

main()

{inti;

for(i=l:i<=5;i++)

{if(i%2)printf("*");

elsecontinue;

printfCr);

)

printf("$");}

A:*#*#$

B:#*#*#*$

C:*#*#*#$

D:#*#*$

55、sizeof(float)是(C).

A:一种函数调用

B:一个不合法的表达式

C:一个整型表达式

D:一个浮点表达式

56、以下程序中,while循环的循环次数是(C)。

main()

(

inti=0;

while(i<10)

(

if(i<l)continue;

if(i==5)break;

i++;

)

A:1

B:4

C:6

D:死循环,不能确定次数

57、以下不能正确定义二维数组的选项是(D)。

A:inta[2][2]={{1},{2});

B:inta[][2]={1,2,3,4};

C:inta[2]=2,3};

D:inta[2][]={{l,2},{3,4}};

58、下面有关for循环的正确描述是(D)

A:for循环只能用于循环次数已经确定的情况

B:for循环是先执行循环体语句,后判断表达式

C:在for循环中,不能用break语句跳出循环体

D:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来

59、若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),

则以下程序段的执行结果是(C)«

ch='a';k=12;printfC%x,%o,ch,ch,k);printf("k=%%d\n”,k);

A:因变量类型与格式描述符的类型不匹配,输出无定值

B:输出项与格式描述符个数不符,输出为零值或不定值

C:61,141,k=%d

D:61,141,k=%12

60、执行以下程序段后,输出结果和a的值是(B)。

inta=10;

printfa++);

A:10和10

B:10和11

C:ll和10

D:ll和11

61、下列程序运行结果为:(B)

itdefineP3

#defineS(a)P*a*a

main()

{intar;

ar=S(3+5);

printf(〃\n%d〃,ar);

)

A:192

B:29

C:27

D:25

A:必须在主调函数中说明此数组的大小

B:实参数组类型与形参数组类型可以不匹配

C:在被调用函数中,不需要考虑形参数组的大小

D:实参数组名与形参数组名必须一致

printf("%d\n”,(int)(2.5+3.0)/3);

A:有语法错误不能通过编译

B:2

C:1

D:0

64、

A:字符A

B:字符a

C:字符e

D:非法的常量

65.■♦卜列亚义,则」♦⑼儿—I勺

inta[5],*p=a;

A:&a[5]

B:p+2

C:a++

D:&a

66、下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是(B)o

A:8

B:23

C:17

D:6

67、下列定义数组的语句中不正确的是(D)。

A:inta[2][3]={l,2,3,4,5,6};

B:inta[2][3]={{l}({4,5}};

C:inta[][3]={{1},{4});

D:inta口□={{1,2,3},{4,5,6}};

68、以下叙述中正确的是(A)。

A:C程序中注释部分可以出现在程序中任意合适的地方

B:花括号“{”和“}”只能作为函数体的定界符

C:构成C程序的基本单位是函数,所有函数名都可以由用户命名

D:分号是C语句之间的分隔符,不是语句的一部分

69、下列说法中错误的是(D)

A:一个数组只允许存储同种类型的变量

B:如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多余的数组元素会被

自动初始化为最后一个给定元素的值

C:数组的名称其实是数组在内存中的首地址

D:当数组名作为参数被传递给某个函数时,原数组中的元素的值可能被修改

70、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(B)

A:地址传递

B:单向传递

C:由实参传给形参,再由形参传回实参

D:传递方式由用户指定

71、inta=l,b=2,c=3;

if(a>c)b=a;a=c;c=b;JS!jc的值为(A)。

A:1

B:2

C:3

D:不一定

72、下面程序段:(C)

x=3;

do

{y=x—;

if(!y){printf(〃x〃);continue;}

printf(,z#z/);

}while(K=x<=2);

A:将输出期

B:将输出##*

C:是死循环

D:含有不合法的控制表达式

73、下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,

并输出m、n中的较大者,请选择填空(C)

#include"stdio.h〃

main()

{intm=0,n=0;

charc;1

while(()!='\n)

{if(c>=A?&&C<=1:)m++;

if(c>=,a&&c<-z)ri++;}

printf(〃%d\n〃,m<n?n:m);}

A:c=scanf(,z%czz,&c)

B:getchar()

C:c=getchar()

D:scanf(〃枇〃,c)

74、当a=l,b=3,c=5,d=4,执行完下面一段程序后x的值是(B)

if(a<b)

if(c<d)x=l;

else

if(a<c)

if(b<d)x=2;

elsex=3;

elsex=6;

elsex=7;

A:1

B:2

C:3

D:0

75、以下错误的描述是:函数调用可以(D)。

A:出现在执行语句中

B:出现在一个表达式中

C:做为一个函数的实参

D:做为一个函数的形参

76、C语言中要求对变量作强制定义的主要理由是(D)o

A:便于移植

B:便于写文件

C:便于编辑预处理程序的处理

D:便于确定类型和分配空间

77、以下字符中不是转义字符的是(C)。

A:'\a'

B:''b'

C:'\c

D/W

78、若w,x,y,z,m均为int型变量,则执行下面语句后的m值是(D)求几个数中的最大值赋给M

w=l;x=2;y=3;z=4;

m=(w<y)?w:x;

m=(m<y)?m:y;

m=(m〈z)?m:z;

A:1

B:2

C:3

D:4

79、以下for循环的执行次数是:(C)

for(x=0,y=0;(y=123)&&(x<4);x++);

A:是无限循环

B:循环次数不定

C:执行4次

D:执行3次

80、判断char型变量ch是否为大写字母的正确表达式是(C).

A:'A'〈=ch<='Z'

B:(ch>=,A')&(ch<=(Z')

C:(ch>='A')&&(ch<='Z')

D:('A'<=ch)ANDCZ'>=ch)

81、亨ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),

则以F程序段的执行结果是(C)。

ch='a';k=12;printf(〃%x,%o,”,ch,ch,k);printf("k二%%d\n〃,k);

A:因变量类型与格式描述符的类型不匹配,输出无定值

B:输出项与格式描述符个数不符,输出为零值或不定值

C:61,141,k=%d

D:61,141,k=%12

82、语句printf("a\bre\'hi\'y\\\bou\n,/);的输出结果是

(说明:'\b'是退格符)(C)o

A:a\brc\'hi\'八\\bou

B:a\bre\,hi\,y\bou

C:re'hi'you

D:abre5hi'y\bou

83、下列四组选项中,均不是C语言关键字的选项是(C)o

A:defineIFtype

B:getccharprintf

C:includescanfcase

D:whilegopow

84、下面程序段的运行结果是(C)

for(y=l;y<10;)y=((x=3*y,x+l),x-l);

printf("x二%d,y=%d",x,y);

A:x=27,y=27

B:x=12,y=13

C:x=15,y=14

D:x=y=27

85、以下函数的类型是_A_o

fff(floatx)

(

return5;

)

A:与参数x的类型相同

B:void类型

C:int类型

D:无法确定

86、sizeof(float)是(B).

A:一个双精度型表达式

B:一个整型表达式

C:一种函数调用

D:一个不合法的表达式

87、下面程序段(D)

for(t=l;t<=100;t++)

{scanf&x);

if(x<0)continue;

printf(〃%3d”,t);}

A:当x<0时整个循环结束

B:x>=0时什么也不输出

C:printf函数永远也不执行

D:最多允许输出100个非负整数

88、以下正确的说法是(B)o

A:用户若需调用标准库函数,调用前必须重新定义

B:用户可以重新定义标准库函数,若如此,该函数将失去原有含义

C:系统根本不允许用户重新定义标准库函数

D:用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件

中,系统自动去调

89、下面程序的运行结果是(C)

main()

{inti,j,a=0;

for(i=0;i<2;i++)

{for(j=0;j<=4;j++)

{if(j%2)break;

a++;}

a++;}

printf("%d\n〃,a);

}

A:4

B:5

C:6

D:7

90、doublex;scanf(〃%lf〃,&x);不可以赋值给x变量的常量是(D)。

A:123

B:100000

C:'A'

D:〃abc〃

程序填空

1、功能:求出二维数组中的最大元素值。

#include<stdio.h>

maxvalue(m,n,array)

/***********SPACE***********/

intm,n,array;

(

inti,j,max;

max=array[0][0];

for(i=0;i<m;i++)

for(j=0;j<n;j++)

/***********SPACE***********/

if(max<array[i][j])

relurn(array[i][j]);

return(max);

}

voidmain()

(

inta[3][4]={{l,3,5,7),{2,4,6,8},{15,17,34,12)};

/***********SPACE***********/

printf("maxvalueis%d\n,z,maxvalue);

}

2、功能:考查字符串数组的应用。输出26个英文字母。

#include<stdio.h>

voidmain(void)

(

charstring[256];

inti;

/***********SPACE***********/

for(i=0;i<26;i++)

/***********SPACE***********/

stringEi]='a,+i;

string[i]=,;

/***********SPACE***********/

printf("thearrarycontains%s\n/z,string);

)

3功能:以下程序的功能如(图1)。注明:x<0,f=|x+l;0<=x<=5,f=2x+l;x>5,f=sin(x)+5

#include<stdio.h>

/***********SPACE***********/

#includo〈malh.h>

mainO

doublex,f;

scanf(〃%f〃,&x);

/***********SPACE***********/

if(x<0)f=fabs(X+1):

/***********SPACE***********/

elseif(xv=5或5>=x或xv6i■戈6>x>戈x>=0&&xv=5u父0v=x&&xv=52■或

x>=0&&5>=xu戈0v=x&&5>=xu或!(x>5))

f=2*x+l;

else

f=sin(x)+5;

/***********SPACE***********/

printf(,zx=%f,y=%f\n,/,x,f);

}

4、功能:利用指向结构的指针编写求某年、某月、某日是第

几天的程序,其中年、月、日和年天数用结构表示。

#include<stdio.h>

^include<stdlib.h>

main()

(

/***********SPACE***********/

structdate

(

inty,m,d,n;

/***********SPACE***********/

)x:

intk,f,a[12]={31,28,31,30,31,30,31,31,30,31,30,31);

printf("date:y,m,d=");

scanf(/z%d,%d,%d”,&x.y,&x.m,&x.d);

f=x.y%4==0&&x.y%100!=0||x.y%400==0;

/***********SPACE***********/

a[l]+=f;

if(x.m<l||x.m>121|x.d<l!|x.d>a[x.m-1])exit(0);

for(x.n=x.d,k=0;k<x.m-l;k++)x.n+=a[k];

/***********SPACE***********/

printf(〃n二%d\n〃,x.n);

)

5、功能:建立一个如下的二维数组,并按以下格式输出。

10001

01010

00100

01010

10001

^include<stdio.h>

voidmain()

inta[5][5]={0},*p[5],i,j;

for(i=0;i<5;i++)

/***********SPACE***********/

p[i>&a[i][0];

for(i=0;i<5;i++)

(

/***********SPACE***********/

*(p[i]+i)=l;

/***********SPACE***********/

*(p[i]+5-(i+l))=l;

}

for(i=0;i<5;i++)

(

for(j=0;j<5;j++)printf(,z%2dz,,p[i][j]);

/***********SPACE***********/

putchar();

)

)

6、功能:输出Fibonacci数列的前15项,要求每行输出5项。

Fibonacci数列:1,1,2,3,5,8,13....

#include<stdio.h>

main()

(

/***********SPACE***********/

intfib[14],i;

fib[O]=l;fib[l]=l;

for(i=2;i<15;i++)

/***********SPACE***********/

for(i=0;i<15;i++)

(

printffib[i]);

/***********SPACE***********/

if((i+l)%5二二0)printfCAnO;

)

)

补充题:

7.(10.0分)题号:11

【程序填空】

功能:求100—999之间的水仙花数

说明:水仙花数是指一个三位数的各位数字的立方和是这个数本身。

例如:153=1八3+5八3+3八3)。

--------------------……-------------------*/

intfun(intn)

{int

m=n;

/………**SPACE**………/

[?];

for(i=1;i<4;i++)

(

/***********2PAeE***********/

[?];

m=(m-j)/10;

k=k+j*j*j;

)

if(k==n)

…SPACE*…*……/

【?】;

else

return(O);}

main()

(

inti;

for(i=100;i<1000;i++)

/………**SPACE*………*/

if([?)==1)

printf(u%disok!\nM,i);

)

答案:

1).k=0

2),j=m%10或j=m-m/10*10或j=m-10*(m/10)

3).return(1)

4).fun(i)

8.10.0分)题号:427

【程序填空】

功能:百鸡问题:100元买100只鸡,公鸡一只5元钱,母鸡一只3

元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡

各多少只?

-----------------------------……-------------------------*/

#include<stdio.h>

main()

(

intcocks,hens,chicks;

cocks=0;

while(cocks<=19)

(

/★**********2PAOE***********/

[?]=0;

/**********★SPACE***********/

while(hens<=[?])

(

chicks=100.0-cocks-hens;

if(5.0*cocks+3.0*hens+chicks/3.0==100.0)

printf(n%d,%d,%d\n",cocks,hens,chicks);

/***********^p^CE***********/

[?];

)

/***********SPACE***********/

【?】;

)

)

答案:

1).hens

2).33

3).hens++或++hens或hens=hens+1

4).cocks++或++cocks或cocks=cocks+1或cocks=cocks+1

9.10.0分)题号:22

【程序填空】

功能:打印以下图形。

............................................*/

main()

(

chara[5][9]={"

inti,j;

for(i=0;i<5;i++)

/………**SPACE**..........***/

for(j=i;[?];j++)

a[i][j]='*';

/*………*SPACE**..........***/

for([?];i<5;i++)

(

for(j=0;j<9;j++)

/***********SPACE***********/

printf("%c",[?]);

/*…**…**SPACE***…**…/

【?】;

答案:

1).jvi+5或i+5>j或j<=i+4或i+4>j

2).i=0

3).a[i][j]

4).printf("\n")

10.(10.0分)题号:31

【程序填空】

功能:用冒泡法对数组a进行由小到大的排序。

-..........................................................................*/

voidfun(inta[],intn)

intij,t;

/*****★*****2pAOE***********I

for(j=0;[?];j++)

SPACE***……**/

for(i=0;[?];i++)

/………**SPACE*…**…**/

if([?])

(

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

)

)

main()

(

inti,a[10]={3,7,5,1,2,8,6,4,10,9};

/***……**SPACE***********/

[?];

for(i=0;i<10;i++)

printf("%3d",a[i]);

)

答案:

1).j<=n-1或n-1>=j或j<=-l+n或-1+n>=j或j<n或n>j或j<n-1

2).i<n-j-1或n-j-1>i或i<n-1-j或n-1-j>i或iv=n-j-2或iv=n-2-j

3).a[i]>a[i+1]或a[i+1]<a[i]

4).fun(a,10)

11.(10.0分)题号:405

【程序填空】

功能:要求输出结果为:

A,B

65,66

--------------------——----------------------------------*/

#include<stdio.h>

voidmain()

(

/***********SPACE***********/

chara,[?];

/***********2PACE***********f

a=[?];

b='b';

a=a-32;

/***★*******2PAeE***********/

b=b-[?];

printf("%c,%c\n%d,%d\n,',a,b,a,b);

答案:

1).b

2).'a'或97

3).32

12.功能:计算圆周率的近似值,圆周率计算公式为:

PI=4*(1-1/3+1/5-1/7+1/9-……),要求最后一项大于le-6。

........................................-*/

#include<stdio.h>

#include<math.h>

main()

ints;

/***********SPACE***********/

floatn,[?];

doublet;

t=l;pi=0;n=1;s=1;

/*********************/

while([?]>=Ie-6)

pi+=t;n+=2;s=-s;t=s/n;

)

********

pi*=[?1;

printf("pi=%.6f\n",pi);

)

答案:

1).pi

2).fabs(t)

3).4

13.【程序填空】

功能:打印出如下图案(菱形)

#include<stdio.h>

main()

int

/***********SPACE***********/

for(i=0;[?];i++)

(

for(j=0;j<=4-i;j++)

printf(Mn);

/********★************/

for(k=1;k<=[?];k++)

printf(H*H);

printf(H\n");

)

/***********2PAeE***********/

for([?];j<3;j++)

(

for(k=0;k<j+3;k++)

printf(1,u);

for(k=0;k<5-2*j;k++)

printf(…);

printf("\nu);

)

答案:

1).i<=3或i<4或3>=i或4>i

2).2*i+1或i*2+l或1+2巧或l+i*2

3).j=0

14.【程序填空】

功能:卜面的程序是求1!+3!+5!+.+n!的和。

--------------------------------------------------------*/

main()

(

longintf,s;

intij,n;

/*★*********2PAeE***********/

【?】;

scanf(n%d",&n);

/***********SPACE***********/

for(i=1;i<=n;[?])

(

f=1;

/***********SPACE***********/

for(j=1;[?];j++)

/***********SPACE***********/

[?];

s=s+f;

)

printf(,'n=%d,s=%ld\n',,n,s);

)

答案:

1).s=0

2).i+=2或i=i+2或i++,i++

3).j<=i或i>=j或j<i+1或i+1>j

4).f=f*j

程序设计

1、功能:编写函数求表达式的和(n的值由主函数输入)。

1-1/2+1/3-1/4+.........+l/m

例如:当n=20时,表达式的值为0.668771。

#include<stdio.h>

voidwwjt();

doublesum(intn)

(

/**********Program**********/

floats=0:

inti,k=1;

for(i=1;iv=n:i++)

s=s+k*1.0/i;

k=-k;

retum(s);

/**********End**********/

)

main()

(

intn;

scanf(〃%d〃,&n);

printf(〃sum=%f\n〃,sum(n));

wwjt();

}

voidwwjt()

(

FILE*IN,*OUT;

intn;

inti[10];

doubleo;

IN二fopen("in.dat",〃r〃);

if(IN=二NULL)

(

printf(/zReadFILEError");

)

OUT二fopen(〃out.dat","w〃);

if(OUT二二NULL)

(

printf("WriteFILEError");

}

for(n=0;n<5;n++)

fscanf(IN,&i[n]);

for(n=0;n<5;n++)

(

o=sum(i[n]);

fprintf(OUT,z,%f\nz/,o);

)

fclose(IN);

fclose(OUT);

)

2、功能:从键盘输入一个大于3的整数,调用函数fun判断

其是否素数,然后在main函数中输出相应的结论

信息。

例如:7是素数,8不是素数。请编写fun函数。素数是

仅能被1和自身整除的数

------------------------------------------------*/

ttinclude<stdio.h>

voidwwjt();

intfun(intn)

(

/**********Program**********/

inti:

inti;

k-L

for(i=2:i<n:i++)

(if(n%i==O)i=0:

L

returni;

/**********End**********/

)

main()

(

intm,flag;

printf('"inputaninteger:");

scanf("%d",&m);

flag=fun(m);

if(flag)

printf(〃%disaprime.\n〃,m);

else

printf(/z%disnota.prime.\n,z,m);

wwjt();

}

voidwwjt()

FILE*IN,*OUT;

intilN,iOUT,i;

IN=fopen("5.IN","r");

if(IN==NULL)

(

printf(//P1easeVerifyTheCurrerntDir..itMayBeChanged");

)

0UT=fopen("5.out","w");

if(OUT==NULL)

{

printf("PleaseVerifyTheCurrentDir..itMayBeChanged");

)

for(i=0;i<10;i++)

{

fscanf(lN,"%d”,&iIN);

iOUT=fun(iIN);

fprintf(OUT,"%d\n”,iOUT);

)

fclose(IN);

fclose(OUT);

3、功能:计算n门课程的平均值,计算结果作为函数值返回。

例如:若有5门课程的成绩是:92,76,69,58,88,

则函数的值为76.600000„

^include<stdio.h>

voidwwjt();

floatfun(inta[],intn)

/**********Prograni**********/

inti;

floatv=0:

for(i=0:i<n;i++)

y+=a[i]:

y=y/n:

/**********End**********/

mainO

(

inta[]={92,76,69,58,88};

printf("y=%f\n”,fun(a,5));

wjt();

}

voidwwjt()

(

FILE*IN,*OUT;

intiIN[10],i,j;

floatfOUT;

IN=fopen("in.dat","r");

if(IN==NULL)

(

printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");

)

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("PleaseVerifyTheCurrentDir..itMayBeChanged");

)

for(j=0;j<5;j++)

(

for(i=0;i<5;i++)

fscanf(IN,W;&iIN[i]);

fOUT=fun(iIN,5);

fprintf(OUT,"%f\n",fOUT);

}

fclose(IN);

fclose(OUT);

)

补充题:

4.【程序设计】

功能:用do・while语句求1〜100的累计和。

#include<stdio.h>

longintfun(intn)

Program*

/**********Fnd**********/

)

voidmain()

(

inti=100;

printf("1~1OO的累加和为:%ld\n",fun(i));

wwjt();

)

wwjt()

(

FILE*IN,*OUT;

inti;

intilN;

longintiOUT;

IN=fopen(,,in.dat",,,rn);

if(IN==NULL)

(

printfC*PleaseVerifyTheCurrerntDir..ItMayBeChanged");

)

OUT=fopen("out.dat”,”w“);

if(OUT==NULL)

(

printf(HPleaseVerifyTheCurrentDir..ItMayBeChanged");

)

for(i=0;i<5;i++)

(

fscanf(IN,n%d",&ilN);

iOUT=fun(ilN);

fprintf(OUT;,%ld\n,',iOUT);

)

fclose(IN);

fclose(OUT);

)

答案:inti=1,sum=0;

do

{sum=sum+i;

i++;

}while(i<=n);

returnsum;

5.【程序设计】

功能:调用函数fun判断一个三位数是否"水仙花数"。

在main函数中从键盘输入一一个三位数,并输

出判断结果。请编写fun函数。

说明:所谓"水仙花数”是指一3位数,其各位数字立方和

等于该数本身。

例如:153是一个水仙花数,因为153=1+125+27。

#include"stdio.h"

intfun(intn)

(

/*…*…**Program****……

/………*揄………*/

)

main()

(

intn,flag;

scanf("%d",&n);

flag=fun(n);

if(flag)

printf("%d是水仙花数\n",n);

else

printf("%d不是水仙花数\n",n);

getch();

yzj();

)

yzj()

(

FILE*IN,*OUT;

intilN,i;

intiOUT;

IN=fopen("in.dat","r");

if(IN==NULL)

(

printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged**);

)

OUT=fopen(”out.dat"Jw");

if(OUT==NULL)

(

printf(MPleaseVerifyTheCurrentDir..ItMayBeChanged'*);

)

for(i=0;i<10;i++)

(

fscanf(IN,"%du,&ilN);

iOUT=fun(ilN);

fprintf(OUT,"%d\n',,iOUT);

)

fclose(IN);

fclose(OUT);

)

答案:----------------

intbw,sw,gw;

bw=n/100;sw=(n-bw*100)/10;gw=n%10;

if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return1;

elsereturn0;

6.【程序设计】

功能:求♦个四位数的各位数字的立方和

#include"stdio.h"

intfun(intn)

/***……*Program**********

/****……End………*/

main()

(

intk;

k=fun(1234);

printf("k=%d\n",k);

河);

)

yzj()

(

FILE*IN,*OUT;

intilNJOUTJ;

IN=fopen(,'22.inn,"r");

if(IN==NULL)

(

printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

)

OUT=fopen("22.out","w");

if(OUT==NULL)

(

printf("PleaseVerifyTheCurrentDir..ItMayBeChanged");

)

for(i=0;i<10;i++)

(

fscanf(IN,"%d",&ilN);

iOUT=fun(ilN);

fprintf(OUT,"%d\n",iOUT);

)

fclose(IN);

fclose(OUT);

)

答案:一.....—.......

intd,k,s=0;

while(n>0)

{d=n%10;

s+=d*d*d;

n/=10;

)

returns;

7.【程序设计】

功能:求出二维数组周边元素之和,作为函数值返回。二

维数组的值在主函数中赋予。

#defineM4

#defineN5

#include"stdio.h"

intfun(inta[M][N])

(

/**********program**********

/**********End**********i

main()

(

inta[M][N]={{1,3,5,7,9},{2,4,6,8,10},{2,345,6},{4,5,6,7,8}};

inty;

y=fun⑻;

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

yzj();

)

yzj()

(

FILE*IN,*OUT;

intilN[M][N],iOUT;

inti,j,k;

IN=fopen("14.in","r");

if(IN==NULL)

{printf("PleaseVerifyTheCurrerntDir..ItMayBeChanged");

)

OUT=fopen("14.out","w");

if(OUT==NULL)

{printf(HPleaseVerifyTheCurrentDir..ItMayBeChanged");

)

for(k=0;k<10;k++)

{for(i=0;i<M;i++)

for(j=0;j<N;j++)

fscanf(IN,"%d",&ilN[i][j]);

iOUT=fun(ilN);

fprintf(OUT,"%d\nn,iOUT);

)

fclose(IN);

fclose(OUT);

)

答案:................

ints=0;

intij;

for(i=0;i<M;i++)

s=s+a[i][0]+a[i][N-1];

for(j=1;j<N-1;j++)

s=s+a[0][j]+a[M-1][j];

returns;

8.【程序设计】

功能:编写函数fun求1!+2!+3!+——+n!的和,在main函

数中由键盘输入n值,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论