《高级语言程序设计》复习题及答案_第1页
《高级语言程序设计》复习题及答案_第2页
《高级语言程序设计》复习题及答案_第3页
《高级语言程序设计》复习题及答案_第4页
《高级语言程序设计》复习题及答案_第5页
已阅读5页,还剩44页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

一、选择题

1.以下叙述正确的是():

A)在C程序中,main函数必须位于程序的最前面

B)C程序的每行只能写一条语句

0C语言使用库函数实现输入输出操作

D)注释中的拼写错误会影响编译结果

2、以下说法中正确的是()

A)C语言程序总是从第一个的函数开始执行

B)C语言程序总是从main。函数开始执行

C)在C语言程序中,要调用的函数必须在main()函数中定义

D)C语言程序中的main()函数必须放在程序的开始部分

3、下列选项种说法正确的是()

A)函数由声明部分和执行部分两部分组成

B)语言中main函数一定在程序的开始部分

C)C语言程序总是从第一个定义的函数开始执行

D)C程序的每行中只能写一条语句

4、设有说明:inta;floatb;charc;doubled;则表达式

1.3*a+2*b*c+d*(int)2.6值的类型为()。

A)doubleB)charC)floatD)int

5、C语言的标识符只能由字母、数字和下划线三种字符组成,且第一个字符

()

A)必须为字母

B)必须为下划线

C)必须为字母或下划线

D)可以是字母、数字和下划线中任一种字符

6、以下不正确的C语言标识符是()。

A)ABCB)abcC)a_bcD)void

7、下列运算符中优先级最高的是()

A)<B)+C)&&D)!二

8、以下选项中属于C语言中合法关键字的是()

A)FloatB)abcC)intD)CASE

9、若x、i、j和k都是int型变量,计算下面表达式后,x的值为()

x=(i=4,j=16,k=32)

A)4B)16C)32D)52

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

A)/B)++O!=D)%

11、若整型变量x的值为8,则下列表达式中值为1的表达式是

A)x+=x-=xB)x%=x-lC)x%=x%=3D)x/=x+x

12、若w=l,x=2,y=3,z=4,则条件表达式“w>x?w:y<z?y:z"的值是()

A)4B)3C)2D)1

13、有以下程序,程序运行后的输出结果是。

main()

{inti=l,j=2,k=3;

if(i++==1&&(++j==3|k++==3))

printf(/z%d%d%d\n”,i,j,k);

}

A)123B)234c)223D)233

14、下面程序的输出结果是

main()

{intx=2,y=-l,z=2;

if(x<y)

if(y<0)z=0;

elsez=-1+x;

printf("%d\n"z);

)

A)3B)2C)1D)0

15、执行下列语句后,a的值为()

main()

{inta=5;

printf(<<%d\nn,(a=3*5,a*4,a+5)):

)

A)65B)20C)15D)10

16、下列程序段中,有错误的行是()

列定行号intx=0,y=10;

2switch(x)

3{case3:

4case-1:y=y-2;break;

5casey+l:x+=5;

6default:printf("%d,%d”,x,y);}

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

0inta[2][2]={{1},2,3};D)inta[2][]={{1,2},{3,4}};

22、若有以下定义:inta[5]={10,20,30,40,50},*p=a;则执行++(*p)

后(*p)++的值是

A)10B)11C)20D)21

23、函数的嵌套调用是指

A)直接调用本函数

B)在定义函数时,又定义另一个函数

0间接调用本函数

D)被调用函数又调用另一个函数

21.下列说法正确的是

A)被调用函数必须先调用,后声明

B)用户自定义函数的类型若未指出,则系统默认为void

0全局变量不能与局部变量同名

D)实参可以是任意表达式

25、以下描述正确的是()

A)continue语句的作用,是结束整个循环语句的执行

B)只能在循环体内和switch语句体内使用break语句

C)在循环体内使用break语句或continue语句的作用相同

D)多层循环嵌套中不可以使用break语句

26、若有说明语句:“inta[3][4];",则对数组元素的正确引用格式是()

A)a[2][4]B)a[l,3]C)a[l+l][0]D)a(2)(1)

27、若有说明:“inta[3][4]={0}/;则下面正确的叙述是()

A)只有元素a[0][0]可得到初值0

B)此数组说明语句不正确

C)数组a中各元素都可得到初值,但其值不一定为0

D)数组a中每个元素均可得到初值0

28、定义数组a和b的语句是:

“chara□二“ABCDEF”;charb□={'A','B',C,D,'E','F'};

则以下叙述正确的是()

A)a和b数组完全相同B)a与b数组元素个数相同

C)a和b中都存放字符串D)a数组比b数组元素个数多

29、语句“int(*ptr)();”的含义是()

A)ptr是指向一维数组的指针变量

B)ptr是指向int型数据的指针变量

Optr是指向函数的指针,该函数返回一个int型数据

D)ptr是一个函数名,该函数返回值是指向int型数据的指针

30、若有定义:"int则标识符p是()

A)一个指向整型变量的指针

B)一个指针数组名

C)一个指针,它指向一个含有四个整型元素的一维数组

D)无效的数组名

31、在C语言中()

A)函数定义可以嵌套,但函数调用不可以嵌套

B)函数定义不可以嵌套,但函数调用可以嵌套

0函数定义和调用都可以嵌套

D)函数定义和条用都不能嵌套

32、下面程序的输出结果是()

ttinclude<stdio.h>

voidmain()

{inti,j,x=0;

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

{x++;

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

{if(j%2)continue;

x++;}

X++;

)

printf("%d\n',x);}

A)4B)6C)8D)12

33、执行下列语句后,m的值为()

intm=l,x=2,y=3,z=4;

m=m<x?m:x;

m=m<y?m:y;

m=m<z?ni:z:

A)1B)4C)2D)3

34、下列程序段是实现给数组所有元素赋值操作,应在下划线上填入的是()

inta[10];

for(i=0;i<=9;i++)scanf(,);

A)aB)&a[i]C)a[i]D)&a[0]

35、下列叙述正确的是()

A)do-while语句构成的循环不能用其它语句构成的循环来代替

B)do-while语句构成的循环只能用break语句退出

C)用do-while语句构成的循环,在while后的表达式为非零时结束循环

D)用do-while语句构成的循环,在while后的表达式为零时结束循环

36、下列程序的输出结果为()

#include"stdio.h"

main()

{inta,b;

for(a=l,b=l;a<=100;a++)

{if(b>=20)break;

if(b%3==l)

{b+=3;continue;}

b+=5;}

printf(u%d,%d",a,b);

)

A)8,20B)8,22C)7,20D)7:22

37、设inta[5]={10,15,20,25,30);

int*p;p=a+2;则表达式++*p的值为()

A)20B)15C)16D)21

38、设w=1,x=2,y=3,z=4,a=5,b=6,则执行一下语句后A)b的值分别为()

(a=w>x)&&(b=y>z);

A)0和0B)5和0C)0和6D)5和6

39、下列语句的输出为()

intx=-l;

printf("%d,%u,%o",x,x,x);

A)-B)-1,32767,-177777

C)-1,32768,177777D)-1,65535,177777

40、下列函数调用语句中的实参个数为()

fun((a+b,x,y),fun(x,(x+z)));

A)2B)3C)4D)5

41、设有数组定义:chararray[]=>,china";则数组array所占的内存空间

为()

A)4个字节B)5个字节C)6个字节D)7个字节

42、以下程序段的运行结果是()。

charc[5]={,b','\0,,,c''\o'

printf(,c);

A)‘a''b'B)abC)abcD)ab

43、若C程序中出现死循则违背了算法的()

A)有效性B)确定性

C)有穷性D)有一个或多个输出

44、设inta=20;则执行表达式:a/=a+a后,a的值是()

A)0B)1C)20D)40

45、intx,y,z,m=5,n=5;则执行下面语句后的z值是()

x=(-m=n++)?―m:++n;

y=m++;

z=n;

A)5B)10C)6D)7

46、执行下列程序段后,i的正确结果是()

inti=10;

switch(i)

{case9:i+=l;

case10:i++;

case11:++i;

default:i+=i;}

printf(〃%d”,i);

A)10B)11C)12D)24

47、若有定义:则以下表达式中不能代表数组元素a[l]的地址的是

()

A)&a[0]++B)&a[l]C)&a[0]+lD)a+1

48、变量的指针,其含义是指该变量的()

A)值B)地址C)变量名D)一个标志

49、有以下函数定义:

voidfun(intn,doublex)

{…・・・)

若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是

()

A)fun(inty,doublem);B)k=fun(10,12.5);

C)fun(x,n);D)voidfun(n,x);

50、设整型变量n=10,i=4,则赋值运算n猊i+1执行后,n的值是()。

A)0B)1C)2D)3

51、若inta,b;scanf(,,%d%d,/,&a,&b);不可以用()作为输入的分隔

符。

A),B)空格C)回车D)TAB键

52、下面关于运算符优先顺序的描述中正确的是:()

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

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

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

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

53、为了判断两个字符串si和s2是否相等,应当使用()。

A)if(sl==s2)B)if(sl=s2)

C)if(strcpy(si,s2))D)if(strcmp(si,s2)==0)

54、以下对二维数组进行正确初始化的是()。

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

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

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

D)inta[2][]={{1,2},{3,4});

55、若用数组名作为函数调用时的实参,则实际上传递给形参的是()o

A)数组的首地址B)数组的第一个元素值

C)数组中全部元素的值D)数组元素的个数

56、以下错误的描述是()o

A)不同的函数中可以使用相同的变量名

B)形式参数是局部变量

O一个函数内部定义的变量只能在本函数范围内有效

D)在一个函数内部的复合语句中定义的变量可以在本函数范围内

有效

57、下列程序的运行结果是()

main()

{inti=10;

int*p=&i;

i=8;

printf("%d”,*p);

}

A)10B)8C)程序错误,不能运行D)结果不确定

58、C语言中,double类型的数据占字节数为()

A)1B)2C)4D)8

59、可在C程序中用作用户标识符的一组标识符是()

A)as_b3123If

B)For-abccase

C)2cDOSIG

D)voiddefineWORD

60、以下字符中,不正确的C语言转义字符是()

A)'\\‘B)'\018'C)''Xaa'D)'\t'

61、C语言中,数据在内存中都以()形式存放

A)原码B)反码C)ASCII码D)补码

62、下列运算符中,优先级最高的是()

A)&&B)!C)++D)||

63、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的

值为11,b为12,c为13,则从键盘输入数据的正确形式应当是()o

A)111213B)11,12,13

C)a=llb=12c=13D)a=ll,b=12,c=13

64、为表示关系TWxWl应使用的c语言表达式是()

A)TWxWlB)-1=<X&&X=<1

C)-1=<X=<1D)x>=-l&&x<=l

65、若有以下定义:

doublea;intb;

floatc;chard;

则表达式a*b/d+(d-c)值的类型为()

A)floatB)intC)charD)double

66、下列程序输出的结果是()

main()

{inta=18;

a十二a-=;

printf(〃96d〃,a);

)

A)-612B)9C)0D)36

67、break语句()

A)只能出现在if语句中B)只能出现在循环体中

C)可用在循环体和switch语句中D)可用在函数中的任何语句

68>如intk=ll;则执行语句k=l/3*++k;后k取值为()

A)12B)304D)0

69、以下程序的输出结果是()

main()

{intx=12,y=012;

printf("%d%d\n〃,x一,一y);

)

A)129B)ll11Oil12D)1211

70、设intx=l,y=5;表达式(!x||y—||++x)的值是()

A)0B)1C)5D)4

71、如果k为整数,则while循环执行次数()

k=10;

while(O)k=k-l;

A)一次都不执行B)1C)10D)无限次

72、有以下程序()

fun(inta,intb)

{if(a>b)returnb:

elsereturnb;

)

main()

{intx=3,y=8,z=6,r;

r=fun(x,y+z);

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

程序运行后的输出结果是()

A)3B)6C)8D)14

73、若有说明:intn=17,*p=&n,*q=p;,则以下非法的赋值语句是()

A)p=q;B)*p=*q;C)n=*q;D)p=n;

74、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位

学生的平均分并输出,程序如下:

main()

{intn,k;

floatscore,sum,ave;

sum=0.0;

for(n=l;n<=10;n++)

{for(k=l;k<=4;k++)

{scanf(,&score);sum+=score;}

ave=sum/4.0;

printf("N0%d:%f\n”,n,ave);

)

)

上述程序运行后结果不正确,调试中发现有一条语句出现在程序中的位置

不正确。这条语句是()

A)sum=0.0;B)sum+=score;

C)ave=sun/4.0;D)printf(aN0%d:%f\n,>,n,ave);

75、数组定义为chara[10]={'a,,'b,,'c'};该数组包括的元素个数是

()

A)3B)9C)4D)10

76、下面程序的输出结果是()

main()

{intx=2,y=-1,z=2;

if(x<y)

if(y<0)z=0;

elsez=-l+x++;

printf("%d\n”,z++);)

A)3B)2C)1D)0

77、有以下程序

main()

inta[]={0,1,2,3,4,5,6,7,8,9),*p;

for(p=&a[9];p>=a;p-)

printf(〃%d,〃,*p);

)

程序运行后的输出结果是()

A)0123456789

B)2,3,4,5,6,7,8,9,10,1

C)0,1,2,3,4,5,6,7,8,9,

D)9,8,7,6,5,4,3,2,1,0,

78、执行循环语句:for(x=y=0;y!=2501|x<4;x++)y+=50;

其循环体执行的次数为()

A)5B)4C)3D)2

79、如intx=14;下列求商y(需小数结果)的表达式哪一个不对()

A)y=x/(5+.0)B)y=x/5.C)尸l.*x/5D)y=x/5*l.0

80、设有以下程序段()

intx=0,s=0;

while(!x!=0)s+=++x;

printfs);

则:A)运行程序段后输出0B)运行程序段后输出1

C)程序段中的控制表达式是非法D)程序无法运行

81、有以下程序,程序运行后的输出结果是()

#include〃stdio.h〃

voidmainO

{inti=0,j=2,m=3,n;

n=i++<=1&&j>=2&&m++;

printf("%d,%d,%d,%d\n〃,i,j,m,n);

)

A)2,2,4,1B)2,2,3,1C)1,2,4,1D)2,1,3,1

82、下面程序的输出结果是()

#include<stdio.h>

voidmain()

{inti,x=l,y=0,a=0,b=0;

switch(x)

{casel:b++;

case2:a++;b++;break;

case3:a++;b++;

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

)

A)2,1B)2,201,2D)4,2

二、程序分析及填空

1.C语言的基本数据类型中,有两种实数类型变量,一种是float型,另一

种是()型。

2.若程序中有语句“scanf("a=%d,b=%d",&a,&b);”,在执行程序时,要输

入3和5两个数,应该键入()o

3,包含数学类库函数的头文件名称是()。

4.字符串“ab\034\\\x79”的长度为()。

5.数组元素作函数参数进行的是传递,数组名作函数参数进行的是—传

递。

6.设有函数调用语句f(xl,xl+x2,fl(xl,x2));则函数f()实参的数

目宥_个。

7.在数组intscoreE10]={l,2,3,4,5,6}中,元素定义的个数有个,

其中score[8]的值为。

8.C语言源程序文件的后缀是经过编译后,生成文件的后缀是,经过连接后,

生成文件的后缀是。

结构化程序由、、三种基本结构组成。

9、C语言提供的三中逻辑运算符是、、

10、若a=l,b=4,c=3,则表达式!(a<b)||!C&&1的值是

11、在C语言中,若对函数类型未加说明,则函数的隐含类型为类型。

12、在C语言中,唯一的一个三目运算符是。

13、以下程序运行后的输出结果是o

#include<stdio.h>

voidmain()

{intm=5;

if(miO5)printf(z,%d\nz,,m);

elseprintf(,,%d\n,,»m--):)

14、以下程序运行后的输出结果是。

ttinclude<stdio.h>

voidmain()

{intx=15;

while(x>10&&x<50)

{x++;

if(x/3){x++;break;}

elsecontinue;

)

printf("%d\n",x);}

15、下面程序的运行结果是:。

tfinclude"stdio.h〃

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

}

voidmain()

{intx=3,y=5,*p=&x,*q=&y;

swap(p,q);

printfC%d%d\nz,,*p,*q);

)

16、在执行以下程序时,如果从键盘上输入:AdEf〈回车》,则输出为

#include,zstdio.h〃

voidmain0

{charch;

while((ch=getchar())!=,\n)

{if(ch>='A'&&ch<='Z')ch=ch+32;

elseif(ch>='a'&&ch<='z')ch=ch-32;

printf(级c〃,ch);

printf(〃\n〃);}

17.设有以下宏定义,则执行赋值语句a=PP*20;(a为int型变量)后,a

的值是。

ftdefinePR100

#definePPPR+400

18、下列程序段的输出结果为

intx=10,y=l;

y二y-I|x++;

printf("%d,%d”,(y,x++),y);

19、有以下程序

#include〃stdio.h〃

voidmain()

(

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

inti,s=0;

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

s+=a[i][i];

printf("%d\n”,s);

}

程序运行后的输出结果是

程序的功能为

20、有以下程序

ftinclude<stdio.h>

voidmain()

{intp=2,t=l;

while(p<=5)

t=t*p++;

printf(〃%d\n〃,t);}

该程序运行后变量P和t中的值分别为。

21、有以下程序

#include<stdio.h>

voidmain()

{inta,b,c=221;

a=c/100%3;

b=a&&-l;

printf("%d,%d”,a++,b--);}

该程序运行后的输出结果是

22、以下程序的输出结果为

#include<stdio.>

main()

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

*(p+3)+=2;

printf(u%d,刎”,*p,*(p+3));}

23、以下程序的输出结果为。

#include〃stdio.h〃

intxl=40,x2=70;

voidmain()

{intx3=50,x4=60;

intsub(intx3,intx4);

printf(〃%d,%d\n,z,xl,x2);

voidsub(intx,inty)

{xl=x;x2=y;}

24、下面C程序的输出是

main()

{intm=6;

if(m一<6)printf(〃%d\n〃,++m);

elseprintf(,,%d\n,,,一m);

}

25、下面C程序的输出是:

^include〃stdio.h〃

mainO

{inta=5,*p=&a;

*p=a+*p;

printf(〃a=%d\n〃,a);}

26、下面C程序的输出是j

ttinclude"stdio.h〃

voidf(intn)

{printf(,z%3d,z,n%10);

if(n>0)

f(n/10);}

voidmain()

(六⑵;}

27、以下程序的输出结果是j

#include"stdio.h〃

voidmain()

{inty;

for(y=6;y>0;y--)

if(y%3=0)

{printf(级d”,--y);continue;}}

28、在数组intscore[10]={l,2,3,6}中,score[7]的值为

29、程序运行后的输出结果是

ttinclude"stdio.h〃

voidmain()

{inta=l,b=2;

printf(级d〃,(a++,++b,(a++)+b))

30、以下程序运行后的输出结果是

ttinclude<stdio.h>

voidmain()

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

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

printf("%d",x[i][2-i]);}

31.以下程序运行后的输出结果是

#include<stdio.h>

main()

{inta=5,b=7,c;

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

)

32.以下程序运行后的输出结果是

ftinclude〃stdio.h〃

main()

{inti,j,k=0,m=0;

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

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

k++;k-=j;

)

m=i+j;

printf("k=%d,n=%d\n〃,k,m):

)

33.以下程序运行后的输出结果是

#includez,stdio.h〃

swap(int*pl,int*p2)

{intp;

p=*pl;*pl=*p2;*p2=p;

}

main()

inta=12,b=13;

int*pointer_l,*pointer_2;

pointer_l=&a;pointer_2=&b;

if(a<b)swap(pointer_l,pointer_2);

printf("\n%d,%d\n/z,a,b);

}

34.以下程序运行后的输出结果是

#include〃stdio.h〃

main()

{inti,*p,a[7]={l,2,3,4,5,6,7);

P=a+2;

for(i=O;i<3;i++,p++)

printf(〃%d〃,*p);

)

35.以下程序运行后的输出结果是

main()

{intn;

for(n=l;n<=10;n++)

if(n%2)continue;

elseprintf(a%d\tw,n);

)

36.以下程序运行后的输出结果是

main()

{charch[]="aB12cd##78EF%@”;

intj,k;

j=k=O;

while(ch[k]!=,\0')

{if(ch[k]>=,A'&&ch[k]<=,V\|ch[k]>=,a'&&ch[k]<=,zf)

ch[j++]=ch[k];

k++;

)

ch[j]=>\0J;

printf("%s”,ch);

)

37、以下程序运行后的输出结果是。

ttinclude<stdio.h>

voidswap(int*a,int*b)

{int*t;

t=a;a=b;b=t;

)

voidmain()

{intx=5,y=9,*p=&x,*q=&y;

swap(p,q);

printf%d\n,\*p,*q);

)

38、有以下程序,该程序运行后的输出结果是

ttinclude<stdio.h>

voidmain()

{inta,b,c=222;

a=c/100%3;

b二-1&&-1;

printf(^%d,%d?,,a,b);}

三、补全程序题

1、输入三个整数x,y,z,把这三个数由小到大输出。

Main()

{intx,y,z,t;

scanf(,&x,&y,&z);

if(x>y)

{}/*交换x,y的值*/

if(x>z)

{}/*交换x,z的值*/

if(y>z)

{}/*交换z,y的值*/

printf(usmalltobig:%d%d%d\n”,x,y,z);

)

2、求圆的面积和周长,请补全下面程序:

SdefinePI3.14159

voidmain()

{floatr,s,y;/*r表示半径;s表示面积;y表示周长*/

scanf(”,&r);

s=PI*;

y=2*;

printf("s=%f,y=fv,s,y);}

3、函数al的功能是求一维数组中所有元素的平均值并返回给主调函数。请

补全下面程序:

floatal()

floatb[10],sum=,aver;inti;

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

scanf(u%f,&b[i]);

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

sum+二;

aver=sum/10;

return;}

4、从键盘上输入10个数,输出最大、最小元素的值以及它们的下标。

ttinclude<stdio.h>

voidmain()

{inti,j,k,max,min,a[5];

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

*

9

max=min=a[0];

j=k=0;

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

{if(max<a[ij)

{;;}

if()

{min=a[i];k=i;}

)

printf(amax:a[%d]=%d,min:a[%d]=%dw,j,max,k,min);}

5、以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数

个数。用输入零来结束输入,程序中用i统计大于零的个数,用变量J

统计小于零的整数。请填空。

voidrnainO

{intn,i,j;

printf(uEnterINTnumbers,with0toend\n");

i=j=0;

scanf(,&n);

while

{ifIn>oy;

if(n<0)一;

scanf("%d",&n);

}

printf(ai=%4dj=%4d\n",i,j):

}

6、输入一个3位正整数,反序输出。

#include<stdio.h>

voidmain()

{intx,xl,x2,x3,y;

printf("pleaseinputx:");

scanf("%3d”,&x);

xl=;

x2=x/10%10;

x3=;

y=x3*100+x2*10+xl;

printf(uy=%d\n,\y);

}

7、计算s=l!+2!+3!+....+n!

ttinclude<stdio.h>

longf(intn)

{inti;

longt=l;

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

}

voidmain()

{inti,n;

*

scanf(&n);

for(;;)

s=s+f(i);

printf(as=%ld\n,\s);

)

8.输入两个数并判断两数是否相等,如果相等输出a=b,不相等输出a!=bo

^include<stdio.h>

main()

{inta,b;

printf(z,Enterintegeraandb:〃);

scanf(〃%d/d〃,);

printf(〃a==b\n〃);

else

printf(〃a!=b\n〃);

)

9.输出半径从1到10的圆面积,当面积大于100时停止

#definePI3.14159

main()

{

intr;

floatarea;

for(r=l;r<=10;r++)

{area=;

if(area>100);

printf(,zr=%d,area=%.2f\n〃,r,area);

I

)

10.以下程序以每行输出8个数据的形式输出a数组。

#include<stdio.h>

voidmain()

{inta[50],i;

for(i=0;i<50;i++)scanf(;

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

{

ifO;

printf(“烧d",);

})

11、以下程序的功能是:从键盘上输入20个学生的成绩,统计计算出平均

成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。

main()

{floatx[20],sum=0.0,ave,a;

intn=0,i;

printf(z,entermark:\nz,);

scanf&a);

while(a>=0&&n<20)

{sum+=;x[n]=____;

n++;

scanf(级f\n〃,&a);

}

ave=;

printf("Output;\n〃);

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

}

12.不用其它变量做为中间变量,交换a,b的值,请填空:

main()

{inta,b;

scanf(〃/d%d〃,&a,&b);

printf(〃a=%d,b=%d\n〃,a,b);

a=;b=;a=;

printf(〃a=%d,b=%d\n〃,a,b);}

13、用递归法求n!,递归公式如下,补全下面程序

[1(n=0或n=1)

n!【

n*(nT)(n>=2)

longfun(intn)

{longt;

if(n==0|n==1)t=l;

elset=;

return(t);}

14、函数al的功能是求一维数组中所有元素的平均值并返回给主调函数。

请补全下面程序:

floatal()

(

floatb[10],sum=0,aver;inti;

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

scanf("%f,&b[i]);

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

sum+=;

aver=sum/10;

return;}

15、把100--200之间的能被3和7整除的数输山,请补全下面程序:

viodmain()

{intn;

for(n=100;n;n++)

{if()continue;

Printf("%5d”,n);

})

16、下面程序的功能是输出1000以内的个位数为6,且能被3整除的所有

数.

main()

{inti,j;

for(i=0;;i++)

{j=i*10+6;

if()countinue;

printf(〃%d〃,j):

))

17、有以下程序段:

s=l.0;

for(k=l;k<=n;k++)

s=s+L0/(k*(k+l));

printf(〃%f\n〃,s);

填空完成下述程序,使之与上述程序的功能完全相同。

s=0.0;

k=0;

do

{s=s+d;

;d=1.0/(k*(k+l));}

while();

printf(级f\n〃,s);

18、输入一个3位正整数,反序输出。

#include<stdio.h>

voidmain()

{intx,xl,x2,x3,y;

printf("pleaseinputx:");

scanf(“%3d”,&x);

xl=;

x2=x/10%10:

x3二;

y=x3*100+x2*10+xl;

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

)

四、程序改错

1.[程序说明]以下程序的功能是在主程序中输入一个整数,在子程序中得

到该数的绝对值,并在主函数中输出该数的绝对值。

include"stdio.h"

main()

{inta;

scanf(“服1”,a);

printf("%d\n",ABSB、);}

abs(intx);

{if(x>=0)

return(x);

else

return(x);}

2、用Fibonacci数列前20个数,以四行五列显示。

main()

{inti;

intf[20]=(l,1);_

for(i=l;i<=20;i++)—

f[i]=f[i-2]+f[i-l]:

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

{if(i/4=0)

printf(\n);_

printf(,z%12d,z,f[i]);

})

3.voidmain()

{

intx,y=z二5

intaver;

x=7

AVER=(x+y+z)/3;

printf(uAVER=%d\nv,aver);

})

4.下面程序希望实现的功能是:定义两个字符数组STR1、STR2,在键盘上

输入STR2的值,然后将STR2连接到STR1后面,最后打印两个数组。划

线部分存在错误,请将改正后的结果填入右侧对应的横线

#includestring,h

main()

(

charstrl[100]=/zabcz,,str2[];

scanf("%s"&str2);

for(i=0;strl[i]!=>\0*;i++)

for(j=0;str2[j]!-\0,;j++)

strl[i]=str2[j];

printf("%c",strl);

puts(str2);

)

5.请将改正后的结果填入右侧对应的横线

ttinclude"stdio.h〃,

Voidmain

{longintd;

floatx;

Scanf("%d\n",d);

x=l/2*SIN(d*pi/180.0);

printf(ax=%f\n,\x)

五、编写程序

1、定义求m"的函数intf(intm,intn)o并求解5、

2、编程实现1,2,3,4,5这5个数的乘积,并输出结果。

3、有一分段函数:Px-1(x<0)

y:=x(x=0)

x+1(x>0)

编写一程序,输入一个x的值,输出对应的y值。

4、编写程序求出100到200之间的所有素数

5、从键盘上输入10个数,输出最大、最小元素的值及它们的下标。

6、输入两个整数m和n,求其最大公约数和最小公倍数。

7、计算s=l!+2!+3!+……+n!

8、输出1000以内的个位数为6,且能被3整除的所有数

9.从键盘输入3名学生的5门课的成绩,分别统计出每个学生的平均分(要求:

用数组实现)。。

10、编程实现1,2,3,……50这50个数的和,并输出结果。

11、求4义4的二维数组主对角线上的所有数据之和及平均值,并将大于平均值

的数进行输出。

12.一个包含10个元素的整型数组,编写程序求出该数组中的最大数和最小数,

并判断这两个数是否为互质数(互质数的判断条件是:除了1之外这两个数

再也没有其他的公约数)。

13.求出100以内能够同时被3和5整除的这些数的和。

14.用函数将数组a中的n个整数按相反顺序存放。

15.从键盘上输入一个字符串,统计其中包含的英文字母、空格、数字符号各有

多少个,输出统计结果。

16.从键盘上任意一个正整数,判断它是否素数。若是素数,输出“Itisaprime

number.",

若不是素数,输出“Itisnotaprimenumber.一、选择题

题12345678910

答CBAACDBCCB、D

题11121314151617181920

答BBDBCBBDC

题21222324252627282930

答DDDBCDDCB

题31323334353637383940

答BDABDBDADA

题41424344454647484950

答CBCADDABCA

题51525354555657585960

答ACDBADBDAB

题61626364656667686970

答DB、CDDDACDAB

题71727374757677787980

答ADDADBDADB

题8182

答CC

二、程序分析及填空

1、double

2、a=3,b=5

3、math.h

4、5

5、值地址

6、3

7、100

8、.C.obj.exe顺序选择循环

9、!&&II

10、0

11、int

12、?:

13、6

14、17

15、35

16^aDeF

17、1OOOO

18、11,0

19、23求整型4*4矩阵主对角线元素之和

20、6,120

21、2,1

22、1,6

23、40,70

24、4

25^a=10

26、空格空格2空格空格1空格空格0

27、52

28、0

29、4

30、357

31、0

32^k=O,m=3

33、13,12

34、345

35、2->4->6->8->10(注:每一个箭头代表七个空格)

36、aBcdEF

37、5,9(注:该题和15题类似,但数据和输出形式均不同)

38、2,1(注:该题和21题基本相同,差别在于数据分别为222和221)

三、补全程序题

1、t=x,x=y,y=t

t=x,x=z,z=t

t二y,y=z,z=t

2、r*r

PI*r

3、0或0.0或0.或.0等形式

b[i]

aver

4、scanf(,&a[i])

max=a[i]

j二i

min>a[i]

5、(n!=0)

i++

j++

6、x/100

x%10

7、t*二i

温馨提示

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

评论

0/150

提交评论