全国计算机等级考试二级教程c语言程序设计课后答案_第1页
全国计算机等级考试二级教程c语言程序设计课后答案_第2页
全国计算机等级考试二级教程c语言程序设计课后答案_第3页
全国计算机等级考试二级教程c语言程序设计课后答案_第4页
全国计算机等级考试二级教程c语言程序设计课后答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章程序设计基本概念1.1在TRUBOC环境中用RUNia令运彳t一个C程序时,所运行的程序的后缀是。答案:.exe1.2C语言源程序文件的后缀是,经过编译后,生成文件的后缀是,经过连接后,生成文件的后缀是。答案:.c.obj.exe1.3结构化程序由、三种基本结构组成。答案:顺序、选择、循环第二章C程序设计的初步知识一、选择题2.1以下选项中正确的整型常量是A)12.B)-20C)1,000D)456答案:B2.2以下选项中正确的实型常量是A)0B)3.1415C)0.329X10(2)(10的2次方)D).871答案:D2.3以下选项中不正确的实型常量是A)2.607E-1B)0.810

2、3e2C)-77.77D)456e-2答案:B2.4以下选项中不合法的用户标识符是A)abc.cB)fileC)MainD)PRINTF答案:A2.5以下选项中不合法的用户标识符是A)_123B)printfC)A$D)Dim答案:C2.6C语言中运算对象必需是整型的运算符是A)%B)/C)!D)*答案:A2.7可在C程序中用作用户标识符的一组标识符是A)voiddefineWORDB)as_b3_123IfC)For-abccaseD)2cDOSIG答案:B2.8若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7;B)a=7+b+c,a+C)int(12.3%4)D)a=a+7=

3、c+b答案:B2.9以下叙述中正确的是A)a是实型变量,C允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值。B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式。C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0。D)已有a=3,b=5。当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3。答案:B2.10以下叙述中正确的是A)在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。B)C程序由主函数组成。C)C程序由函数组成。D)C程序由函数和过程组成。答案:C2.11TURBO

4、C中int类型变量所占字节数是A)1B)2C)3D)4答案:B2.12不合法的八进制数是A)0B)028C)077D)01答案:B2.13不合法的十六进制数是A)oxffB)0XabcC)0x11D)0x19答案:A二、填空题2.14若k为int整型变量且赋值11。请写出运算k+后表达式的值A)和变量的值B)。答案:11、122.15若x为double型变量,请写出运算x=3.2,+x后表达式的值A)和变量的值B)。答案:4.2、4.22.16函数体由符号开始,用符号结束。函数体的前面是部分,其后是部分。答案:、定义、执行2.17C语言中的标识符可分为、和预定义标识符三类。答案:关键字、用户标

5、识符2.18在C语言程序中,用关键字定义基本整型量,用关键字定义单精度实型变量,用关键字定义双精度实型变量。答案:int、float、double2.19把a1、a2定义成单精度实型变量,并赋初值1的定义语句是。答案:floata1=1.0,a2=1.0;2.20C程序中定义的变量,代表内存中的一个。答案:存储单元2.21表达式3.5+1/2的计算结果是。答案:3.52.22对以下数学式,写出三个等价的C语言表达式、。axbc答案:a*b/c、a/c*b、b/c*a2.23表达式s=10应当读做“''。答案:将10赋给变量s2.24计算机中内存储器的最小存储单位称,其中能容纳的

6、数是。答案:位、0或12.25通常一个字节包含个二进制位。在一个字节中能存放的最大(十进制)整数是,它的二进制数的形式是;最小(十进制)整数是,它的二进制数的形式是。答案:8、255、11111111、-128、100000002.26当计算机用两个字节存放一个整数时,其中能存放的最大(十进制)整数是、最小(十进制)整数是,它的二进制数的形式是。答案:65535、-32768、10000000000000002.27在C语言中整数可用进制数、进制数和进制数三种数制表示。答案:十、八、十六第三章、顺序结构选择题3.1若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是A)a

7、=b=c=100;B)d+;C)c+b;D)d=(c=22)-(b+);答案:C3.2以下选项中不是C语句的是A)inti;i+;printf(''%dn",i);B);C)a=5,c=10D);答案:C3.3以下合法的C语言赋值语句是A)A=B=58B)k=int(a+b);C)a=58,b=58D)-i;答案:D3.4以下程序的输出结果是A)0B)1C)3D)不确定的值main()intx=10,y=3;printf('%dn',y=x/y);答案:C3.5若变量已正确说明为int类型,要给a、b、c输入数据,以下不正确的输入语句是A)read(a

8、,b,c);B)scanf('%d%d%d',a,b,c);C)scanf('%D%D%D',&a,&b,&c);D)scanf('%d%d%d',&a,&b,&c);答案:D3.6若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是A)10<CR>22<CR>33<CR>B)10.0,22.0,33.0C)10.0<CR>22.033.0D)1022<CR>33scanf(

9、9;%f%f%f',&a,&b,&c);答案:B3.7若变量以正确定义,要将a和b中的数进行交换,下面不正确的语句组是A)a=a+b,b=a-b,a=a-b;B)t=a,a=b,b=t;C)a=t;t=b;b=a;D)t=b;b=a;a=t;答案:C3.8若变量已正确定义,以下程序段的输出结果是A)输出格式说明与输出项不匹配,输出无定值B)5.17000C)5.168000D)5.169000x=5.16894;printf('%fn',(int)(x*1000+0.5)/(float)1000);答案:D3.9若有以下程序段,c3中的值是A)0

10、B)1/2C)0.5D)1intc1=1,c2=2,c3;c3=c1/c2;答案:A3.10若有以下程序段,其输出结果是A)0,0,-10B)0,0,5C)-10,3,-10D)3,3,-10inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf('%d,%d,%dn',a,b,c);答案:B3.11当运行以下程序时,在键盘上从第一列开始输入9876543210<CR>(此处<CR代表Enter),则程序的输出结果是A)a=98,b=765,c=4321B)a=10,b=432,c=8765C)a=98,b=765.000000,

11、c=4321.000000D)a=98,b=765,c=4321.0main()inta;floatb,c;scanf('%2d%3f%4f',&a,&b,&c);printf('na=%d,b=%f,c=%fn',a,b,c);答案:C3.12以下程序的输出结果是A)a=%2,b=%5B)a=2,b=5C)a=%d,b=%dD)a=%d,b=%dmain()inta=2,b=5;printf('a=%d,b=%dn',a,b);答案:D3.13若int类型占两个字节,则以下程序段的输出是A)-1,-1B)-1,32767

12、C)-1,32768D)-1,65535inta=-1;printf('%d,%un',a,a);答案: D 3.14 以下程序段的输出是A) *496 * B) * 496* C) *000496* D)输出格式符不合法int x=496; printf('*%-06d*n',x);答案: A 3.15 以下程序段的输出是A) |3.1415| B) | 3.0| C) | 3| D) | 3.|float a=3.1415; printf('|%6.0f|n',a);答案: C 3.16 以下程序段的输出是A) |2345.67800| B)

13、 |12345.6780| C) |12345.67800| D) |12345.678|printf('|%10.5f|n',12345.678);答案: C 3.17 以下程序段的输出是A) *0000057.66* B) * 57.66* C) *0000057.67* D) * 57.67* float a=57.666;printf('*%010.2f*n',a);答案:C 3.18若从终端输入以下数据,要给变量C赋以283.19 ,则正确的输入语句是A) scanf('%f",c); B)scanf('%8.4f',

14、&c); C) scanf('%6.2f',&c); D) scanf('%8',&c); 283.1900<CR> <CR>表示 Enter 键答案:由于印刷错误,本题没有正确答案。改正意见:把选项A改为:scanf("%f",&c);或者把选项D改为:scanf("%8f",&c);则可分别选择A或者D为正确答案。3.19若变量已正确说明,要求用以下语句给a赋予3.12、给b赋予9.0,则正确的输入形式是(口代表空格)A)3.12口9.0<CR>

15、;B)a=3.12b=DDD9<CR>C)a=3.12,b=9<CR>D)a=3.12DD,b=9DDDD<CR>scanf("a=%f,b=%f",&a,&b);<CR表示Enter键答案:C3.20以下程序的输出结果是A)98B)89C)66D)以上三个都不对#include"math.h"main()doublea=-3.0,b=2;printf("%3.0f%3.0fn",pow(b,fabs(a),pow(fabs(a),b);答案:B二、填空题3.21若有以下定义,

16、请写出以下程序段中输出语句执行后的输出结果。(1)(2)(3)inti=-200,j=2500;printf("(1)%d%d",i,j);printf("(2)i=%d,j=%dn",i,j);printf("(3)i=%dnj=%dn",i,j);答案:-2002500i=-200,j=2500i=-200j=25003.22变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时scanf("%d",&i);scanf("%d",&j);scanf("%d

17、",&k);当执行第一个输入语句,从键盘输入:12.3<CR><CR>表示Enter键则变量i、j、k的值分别是、。答案:12、0、03.23复合语句在语法上被认为是。空语句的形式是。答案:一条语句、;3.24C语句的最后用结束。答案:;3.25以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式、。intk;floata;doublex;scanf("%d%f%lf",&k,&a,&x);printf(&q

18、uot;k=%d,a=%f,x=%fn",k,a,x);答案:(1)10025.811.89234(2)10025.81<CR>1.89234(3)100<CR>25.81<CR>1.89234<CR>3.26以下程序段的输出结果是。intx=0177;printf("x=%3d,x=%6d,x=$%6o,x=%6x,x=%6un",x,x,x,x,x);答案:x=127,x=127,x=177,x=7f,x=1273.27以下程序段的输出结果是。intx=0177;printf("x=%-3d,x=%-6

19、d,x=$%-06d,x=$%06d,x=%06dn",x,x,x,x,x);答案:27、x=127,x=127,x=$127,x=$000127,x=%06d3.28以下程序段的输出结果是。doublea=513.789215;printf("a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lfn",a,a,a,a);答案:a=513.789215,a=513.79,a=513.78921500,a=513.78921500第四章、选择结构一、选择题4.1下列运算符中优先级最高的运算符是A)!B)%C)-=D)&&答案:A4.2下

20、列运算符中优先级最低的运算符是A)|B)!=C)<=D)+答案:A4.3为表示关系xyz,应使用的C语言表达式是A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)答案:A4.4设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是A)a&&bB)a<=bC)a|b+c&&b-cD)!(a<b)&&!c|1)答案:D4.5以下程序的输出结果是A)0B)1C)

21、2D)3main()inta=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec+=1;printf("%dn",c);答案:C4.6以下程序的输出结果是A)1B)2C)3D)4main()intw=4,x=3,y=2,z=1;printf("%dn",(w<x?w:z<y?z:x);答案:A4.7若执行以下程序时从键盘上输入3和4,则输出结果是A)14B)16C)18D)20main()inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=

22、b;s*=s;printf("%dn",s);答案:B4.8下面的程序片段所表示的数学函数关系是-1(x<0)A)y=0(x=0)1(x>0)1(x<0)B)y=-1(x=0)0(x>0)0(x<0)C)y=-1(x=0)1(x>0)-1(x<0)D)y=1(x=0)0(x>0)y=-1;if(x!=0)y=1;if(x>0)y=1;elsey=0;答案:本题没有正确答案。程序片段所表示的数学函数关系应该是0(x<0)y=0(x=0)1(x>0)4.9运行以下程序后,输出A)*B)&&&

23、;&C)#&&&&D)有语法错误不能通过编译main()intk=-3;if(k<=0)printf("*n")elseprintf("&&&&n");答案:D4.10若a和b均是正整型变量,以下正确的switch语句是A)switch(pow(a,2)+pow(b,2)case1:case3:y=a+b;break;case0:case5:y=a-b;B)switch(a*a+b*b);case3:case1:y=a+b;break;case0:y=b-a;break;C)s

24、witchadefault:x=a+b;case10:y=a-b;break;case11:x=a*d;break;D)switch(a+b)case10:x=a+b;break;case11:y=a-b;break;答案:没有正确答案。如果C选项改为:switch(a)default:x=a+b;case10:y=a-b;break;case11:x=a*b;break;则答案可以选择C二、填空题4.11C语言中用表示逻辑值“真”,用表示逻辑值“假”。答案:非0、04.12C语言中的关系运算符按优先级别是、。答案:>、<、>=、<=、=、!=4.13C语言中的逻辑运算

25、符按优先级别是、。答案:!、&&|4.14C语言中的关系运算符和逻辑运算符的优先级别是、。答案:!、<、>、=、!=、&&|4.15C语言中逻辑运算符的优先级高于算术运算符。答案:!4.16将下列数学式改写成C语言的关系表达式或逻辑表达式A)B)。A)a=b或a<cB)|x|>4答案:A)a=b|a<cB)x>4|x<-44.17请写出以下程序的输出结果。main()inta=100;if(a>100)printf("%dn",a>100);elseprintf("%dn&quo

26、t;,a<=100);答案:14.18请写出与以下表达式等价的表达式A)B)。A)!(x>0)B)!0答案:A)x<=0B)14.19当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为、。if(a>c)b=a;a=c;c=b;答案:3、2、24.20若变量已正确定义,以下语句段的输出结果是。x=0;y=2;z=3;switch(x)case0:switch(y=2)case1:printf("*");break;case2:printf("%");break;case1:switch(z)case1:print

27、f("$");case2:printf("*");break;default:printf("#");答案:*#第五章、循环结构一、选择题5.1以下程序段的输出结果是A)9B)1C)11D)10intk,j,s;for(k=2;k<6;k+,k+)s=1;for(j=k;j<6;j+)s+=j;printf("%dn",s);答案:D5.2以下程序段的输出结果是A)12B)15C)20D)25inti,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m

28、+;printf("%dn",m);答案:C5.3以下程序段的输出结果是A)1098B)987C)10987D)9876intn=10;while(n>7)n-;printf("%dn",n);答案:B5.4以下程序段的输出结果是A)1B)30C)1-2D)死循环intx=3;doprintf("%3d",x-=2);while(!(-x);答案:C5.5以下程序段的输出结果是A)15B)14C)不确定D)0main()inti,sum;for(i=1;i<6;i+)sum+=sum;printf("%dn&qu

29、ot;,sum);答案:C5.6以下程序段的输出结果是A)741B)852C)963D)875421main()inty=10;for(;y>0;y-)if(y%3=0)printf("%d",-y);continue;答案:B5.7若x是int型变量,以下程序段的输出结果是A)*3#4*5B)#3*4#5C)#3*4#5D)*3#4*5for(x=3;x<6;x+)printf(x%2)?("*%d")#%dn"),x);答案:D5.8以下程序的输出结果是A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$main()

30、inti;for(i=1;i<=5;i+)if(i%2)printf("*");elsecontionue;printf("#");printf("$n");答案:A5.9以下叙述正确的是A)do_while语句构成的循环不能用其它语句构成的循环来代替。B)do_while语句构成的循环只能用break语句退出。C)用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。D)用do_while语句构成循环时,只有在while后的表达式为零时结束循环。答案:D5.10以下程序的输出结果是A)3981B)428

31、4C)2668D)2870main()intx,i;for(i=1;i<=100;i+)x=i;if(+x%2=0)if(+x%3=0)if(+x%7=0)printf("%d",x);printf("n");答案:D二、填空题5.11当执行以下程序段后,i的值是、j的值是、k的值是。inta,b,c,d,i,j,k;a=10;b=c=d=5;i=j=k=0;for(;a>b;+b)i+;while(a>+c)j+;dok+;while(a>d+);答案:5、4、65.12以下程序段的输出结果是。intk,n,m;n=10;m=1

32、;k=1;while(k<=n)m*=2;printf("%dn",m);答案:死循环5.13以下程序的输出结果是。main()intx=2;while(x-);printf("%dn",x);答案:-15.14以下程序段的输出结果是。inti=0,sum=1;dosum+=i+;while(i<5);printf("%dn",sum);答案:115.15有以下程序段:s=1.0;for(k=1;k<=n;k+)s=s+1.0/(k*(k+1);printf("%fn",s);请填空,使下面的程序

33、段的功能完全与之等同。s=0.0;k=0;dos=s+d;d=1.0/(k*(k+1);while();printf("%fn",s);答案:d=1.0、k+、k<=n5.16以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。main()floatx,amax,amin;scanf("%f",&x);amax=x;amin=x;while()if(x>amax)amax=x;if()amin=x;scanf("%f",&x);printf("

34、;namax=%fnamin=%fn",amax,amin);答案:x>=0、x<amin第六章、字符型数据一、选择题6.1 C语言中的简单数据类型有A)整型、实型、逻辑型B)整型、实型、字符型C)整型、字符型、逻辑型D)整型、实型、逻辑型、字符型答案:B6.2C语言中,字符(char)型数据在微机内存中的存储形式是A)反码B)补码C)EBCDIC码D)ASCII码答案:D6.3设有语句chara=''72'';,则变量aA)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法答案:A6.4C语言中不合法的字符常量是A)'&#

35、39;0xff''B)'''65''C)"&"D)''028''答案:本题A)和D)选项都是不合法的字符常量。若A)选项改为''xff'',则正确。6.5C语言中不合法的字符串常量是A)"121"B)''y=''C)"nn"D)"ABCDx6d"答案:B6.6判断char型变量c是否为大写字母的最简单且正确的表达式是A)''A'

36、9;<=c<=''Z''B)(c>=''A'')&(c<=''Z'')C)(''A''<=c)AND(''Z''>=c)D)(c>=''A'')&&(c<=''Z'')答案:D6.7以下程序的输出结果是A)因输出格式不合法,无正确输出B)65,90C)A,YD)65,89main()charc1=

37、9;'A'',c2=''Y''printf("%d,%dn",c1,c2);答案:D6.8以下程序段的输出结果是A)AB)aC)ZD)zmain()charx=''A''x=(x>=''A''&&x<=''Z'')?(x+32):x;printf("%cn",x);答案:B6.9以下程序的输出结果是A)67,CB)B,CC)C,DD)不确定的值main()charch1,ch2

38、;ch1=''A''+''5''-''3''ch2=''A''+''5''-''3''printf("%d,%cn",ch1,ch2);答案:A6.10对以下程序,从第一列开始输入数据:2473<CR>,<CR>弋表Enter。程序的输出结果是A)668977B)668966C)66778777D)6688766#include"stdio.h&quo

39、t;main()intc;while(c=getchar()!=''n'')switch(c-''2'')case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;printf("n");答案:A6.11若变量已正确说明,要求用以下语句给c1赋予字符给c2赋予字符#、给a赋予2.0、给b赋予4.0,则正确的输入形式是(口代表空格)A)2.0口%O4.0D#<CR>B)

40、2.0%4.0#<CR>C)2%口D4#<CR>D)2口%O4D<CR>scanf("%f%c%f%c",&a,&c1,&b,&c2);(<CR玳表Enter键)答案:B二、填空题6.12EOF的十进制值是。答案:-16.13C语言中,字符占内存个字节。答案:16.14调用C语言对字符处理的库函数时,在#include命令行中应包括的头文件是。答案:string.h6.15若输入字符A,在以下while语句执行后ch的值是。while(ch=getchar()="A'');答

41、案:16.16若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入10、20、30、40,正确的输入形式是,请用<CR玳表Enter键。scanf("%d%c%d%c%d%c%d%c'',&w,&a,&x,&b,&y,&c,&z,&d);答案:10A20B30C40D6.17若有以下说明和输入语句,要求给c1、c2输入字符A和B,给a1、a2输入7.29和101.298,从键盘正确输入数据的形式是。charc1,c2;floata1,a2;scanf('%f%

42、f',&a1,&a2);scanf('%c%c',&c1,&c2);答案:7.29<CR>101.298<CR>AB6.18若有以下说明和输入语句,要求给c1、c2输入字符A和B,给a1、a2输入7.29和101.298,从键盘正确输入数据的形式是。charc1,c2;floata1,a2;scanf('%c%f%c%f',&c1,&a1,&c2,&a2);答案:A7.29B101.2986.19若有以下说明和输入语句,要求给c1、c2、c3输入字符A、B和C,请写出

43、各种从键盘正确输入数据的形式。charc1,c2,c;scanf('%4c',&c1);scanf('%4c',&c2);scanf('%4c',&c3);答案:a口ub口口acnaa第七章、函数一、选择题7.1以下说法中正确的是A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main函数中定义C)C语言程序总是从main函数开始执行D)C语言程序中的main函数必须放在程序的开始部分答案:C7.2以下函数的类型是A)与参数x的类型相同B)void类型C)int类型D)无法确定fff(fl

44、oatx)printf("%dn",x*x);答案:C7.3以下函数调用语句中,含有的实参个数是A)1B)2C)4D)5func(exp1,exp2),(exp3,exp4,exp5);答案:B7.4以下程序的输出结果是A)11B)20C)21D)31fun(inta,intb)intc;c=a+b;returnc;main()intx=6,y=7,z=8,r;r=func(x-,y+,x+y),z-);printf("%dn",r);答案:C7.5以下程序的输出结果是A)-1B)0C)1D)2main()inti=2,p;p=f(i,i+1);prin

45、tf("%d",p);intf(inta,intb)intc;c=a;if(a>b)c=1;elseif(a=b)c=0;elsec=-1;return(c);答案:A7.6以下程序的输出结果是A)0B)1C)6D)无定值fun(inta,intb,intc)c=a*b;main()intc;fun(2,3,c);printf("%dn",c);答案:D7.7以下程序的输出结果是A)5.500000B)3.000000C)4.000000D)8.25doublef(intn)inti;doubles;s=1.0;for(i=1;i<=n;i+

46、)s+=1.0/i;returns;main()inti,m=3;floata=0.0;for(i=0;i<m;i+)a+=f(i);printf("%fn",a);答案:A二、填空题7.8以下程序的输出结果是。unsignedfun6(unsignednum)unsignedk=1;dok*=num%10;num/=10;while(num);returnk;main()unsignedn=26;printf("%dn",fun6(n);答案:127.9以下程序的输出结果是。doublesub(doublex,doubley,doublez)y-

47、=1.0;z=z+x;returnz;main()doublea=2.5,b=9.0;printf("%fn",sub(b-a,a,a);答案:9.0000007.10以下程序的输出结果是。fun1(inta,intb)intc;a+=a;b+=b;c=fun2(a,b);returnc*c;fun2(inta,intb)intc;c=a*b%3;returnc;main()intx=11,y=19;printf("%dn",fun1(x,y);答案:47.11下面pi函数的功能是,根据以下公式返回满足精度£要求的兀的值。请填空。兀/2=1+1

48、/3+(1/3)*(2/5)+(1/3)*(2/5)*(3/7)+(1/3)*(2/5)*(3/7)*(4/9)+.doublepi(doubleeps)doubles=0.0,t=1.0;intn;for(;t>eps;n+)s+=t;t=n*t/(2*n+1);return(2.0*);答案:n=1、s7.12以下函数用以求x的y次方。请填空。doublefun(doublex,inty)inti;doublez;for(i=1;i;i+)z=;returnz;答案:<=y、z*x7.13以下程序的功能是计算s=0!+1!+2!+3!+.+n!。请填空。longf(intn)i

49、nti;longs;s=;for(i=1;i<=n;i+)s=;returns;main()longs;intk,n;scanf("%d",&n);s=;for(k=0;k<=n;k+)s=s+;printf("%ldn",s);答案:1L、s*i、0、f(k)第八章指针第九章数组一、选择题8.1若有定义:intx,*pb;则以下正确的赋值表达式是A)pb=&xB)pb=xC)*pb=&xD)*pb=*x答案:A8.2以下程序的输出结果是A)因变量无定义输出不定值B)0C)-1D)1#include<stdio.

50、h>main()printf("%dn",NULL);答案:B8.3以下程序的输出结果是A)5,2,3B)-5,-12,-7C)-5,-12,-17D)5,-2,-7voidsub(intx,inty,int*z)*z=y-x;main()inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%dn",a,b,c);答案:B8.4以下程序的输出结果是A)4B)6C)8D)10main()intk=2,m=4,n=6;int*pb=&k,*pm=&

51、;m,*p;*(p=&n)=*pk*(*pm);printf("%dn",n);答案:C8.5已知指针p的指向如图8.5所示,则执行语句*p+;后,*p的值是A)20B)30C)21D)31答案:B8.6已知指针p的指向如图8.5所示,则表达式*+p的值是A)20B)30C)21D)31答案:B8.7已知指针p的指向如图8.5所示,则表达式+*p的值是A)20B)30C)21D)31答案:C8.8以下程序的输出结果是A)23B)24C)25D)26voidprtv(int*x)printf("%dn",+*x);main()inta=25;prt

52、v(&a);答案:D8.9以下程序的输出结果是A)运行出错B)100C)a的地址D)b的地址main()int*k,*ab=100;a=&b;k=&a;printf("%dn",*k);答案:B8.10以下程序的输出结果是A)4,3B)2,3C)3,4D)3,2voidfun(float*a,float*b)floatw;*a=*a+*a;w=*a;* a=*b;*b=w;main()floatx=2.0,y=3.0;float*px=&x,*py=&y;fun(px,py);printf("%2.0f,%2.0fn&quo

53、t;,x,y);答案:C8.11以下程序的输出结果是A)9.000000B)1.500000C)8.000000D)10.500000voidsub(floatx,float*y,float* z)*y=*y-1.0;*z=*z+x;main()floata=2.5,b=9.0,*pa,*pb;pa=&a,pb=&b;sub(b-a,pa,pa);printf("%fn",a);答案:C8.12以下四个程序中不能对两个整形值进行交换的是A)main()inta=10,b=20;swap(&a,&b);printf("%d%dn&qu

54、ot;,a,b);swap(int*p,int*q)int*t,a;t=&a;*t=*p;*p=*q;*q=*t;B)main()inta=10,b=20;swap(&a,&b);printf("%d%dn",a,b);swap(int*p,int*q)intt;t=*p;*p=*q;*q=t;C)main()int*a,*b;*a=10,*b=20;swap(a,b);printf("%d%dn",*a,*b);swap(int*p,int*q)intt;t=*p;*p=*q;*q=t;D)main()inta=10,b=20;

55、int* x=&a,*y=&b;swap(x,y);printf("%d%dn",a,b);swap(int*p,int*q)intt;t=*p;*p=*q;*q=st;答案:C二、填空题8.13以下程序段的输出结果是。int*var,ab;ab=100;var=&ab;ab=*var+10;printf("%dn",*var);答案:1008.14以下程序的输出结果是。intast(intx,inty,int*cp,int*dp)*cp=x+y;*dp=x-y;main()inta,b,c,d;a=4;b=3;ast(a,b,&

56、amp;c,&d);printf("%d%dn",c,d);答案:718.15若有定义:charch;(1)使指针p可以指向变量ch的定义语句是。答案:char*p=&ch;(2)使指针p可以指向变量ch的赋值语句是。答案:p=&ch;(3)通过指针p给变量ch读入字符scanf函数调用语句是。答案:scanf("%c",*p);(4)通过指针p给变量ch的赋字符的语句是。答案:ch=*p;5)通过指针p输出ch中字符的语句是。答案:printf("%c",*p);8.16若有如图8.5所示五个连续的int类型

57、的存储单元并赋值如图,且p和s的基类型皆为int,p已指向存储单元a1o(1)通过指针p,给s赋值,使其指向最后一个存储单元a4的语句是o答案:s=p+3;(2)用以移动指针s,使之指向中间的存储单元a2的表达式是。答案:s=s-2;(3)已知k=2,指针s已指向存储单元a2,表达式*(s+k)的值是。答案:50(4)指针s已指向存储单元a2,不移动指针s,通过s引用存储单元a3的表达式是。答案:*(a+1)5)指针s已指向存储单元a2,p指向存储单元a0,表达式s-p的值是。答案:26)若p指向存储单元a0,则以下语句的输出结果是。for(i=0;i<5;i+)printf("

58、;%d",*(p+i);printf("n");答案:1020304050第九章数组一、选择题9.1若已定义:inta=0,1,2,3,4,5,6,7,8,9,*p=a,i;其中0ViV则对a数组元素的引用不正确的是A)ap-aB)*(&a)C)pD)*(*(a+i)答案:D9.2以下程序段给数组所有元素输入数据,应在下划线处填入的是A)a+(i+)B)&a(i+1)C)a+iD)&a+imain()inta10,i=0;while(i<10)scanf("%d",);.答案:D9.3以下程序的输出结果是A)3B)

59、4C)1D)2main()inta10=1,2,3,4,5,6,7,8,9,10,*p=a;printf("%dn",*(p+2);答案:A9.4、以下程序的输出结果是A)不确定的值B)3C)2D)1main()intn2=0,i,j,k=2;for(i=0;i<k;i+)for(j=0;j<k;j+)nj=n+1;printf("%dn",nk);答案:A9.5以下程序的输出结果是A)17B)18C)19D)20main()inta=2,4,6,8,10,y=1,x,*p;p=&a1;for(x=0;x<3;x+)y+=*(p

60、+x);printf("%dn",y);答案:C9.6以下程序的输出结果是A)6B)8C)4D)2main()inta10=2,4,6,8,*p=a,i;for(i=0;i<4;i+)a=*p+;printf("%dn",a2);答案:A9.7以下程序的输出结果是A)720B)120C)24D)6f(intb,intn)inti,r=1;for(i=0;i<=n;i+)r=r*b;returnr;main()intx,a=2,3,4,5,6,7,8,9;x=f(a,3);printf("%dn",x);答案:B9.8以下程

61、序中若第一个printf语句输出的是194,则第二个printf语句的输出结果是A)212B)204C)1a4D)1a6main()inta=1,2,3,4,5,6,7,8,9,0,*p;p=a;printf("%xn",p);printf("%xn",p+9);答案:D9.9以下程序的输出结果是A)0987654321B)4321098765C)5678901234D)0987651234fun(int*s,intn1,intn2)inti,j,t;i=n1;j=n2;while(i<j)t=*(s+i);*(s+i)=*(s+j);*(s+j)

62、=t;i+;j-;main()inta10=1,2,3,4,5,6,7,8,9,0,*p=a,i;fun(p,0,3);fun(p,4,9);fun(p,0,9);for(i=0;i<10;i+)printf("%d",*(a+i);答案:C9.10以下程序的输出结果是A)44B)22C)24D)46main()inta5=2,4,6,8,10,*p,*k;p=a;k=&p;printf("%d",*(p+);printf("%dn",*k);答案:C9.11当运行以下程序时输入三行,每行都是在第一列上开始,<CR

63、玳表Enter键:a<CR>b<CR>cdef<CR>则程序的输出结果是A)abcdefB)aC)aD)abbbccdcdefdef#include"stdio.h"#defineN6main()charcN;inti=0;for(i=0;i<N;i+)c=getchar();for(i=0;i<N;i+)putchar(c);答案:C9.12若有定义和语句:intc45,(*cp)5;cp=c;则对c数组元素的引用正确的是A)cp+1B)*(cp+3)C)*(cp+1)+3D)*(cp+2)答案:D9.13若已定义:inta

64、43=1,2,3,4,5,6,7,8,9,10,11,12,(*prt)3=a,*p=a0;则能正确表示数组元素a12的表达式是A)*(*prt+1)2B)*(*(p+5)C)(*prt+1)+2D)*(*(a+1)+2)答案:D9.14若有定义和语句:inta43=1,2,3,4,5,6,7,8,9,10,11,12,(*prt)3=a,*p4,i;for(i=0;i<4;i+)p=a;则不能够正确表示a数组元素的表达式是A)a43B)p00C)prt22D)(*(p+1)1答案:A9.15以下程序的输出结果是A)23B)26C)33D)36main()intaa33=2,4,6,i,

65、*p=&aa00;for(i=0;i<2;i+)if(i=0)aai+1=*p+1;else+p;printf("%d",*p);printf("n");答案:A9.16以下程序的输出结果是A)60B)68C)99D)108main()inta34=1,3,5,7,9,11,13,15,17,19,21,23;int(*p)4=a,i,j,k=0;for(i=0;i<3;i+)for(j=0;j<2;j+)k+=*(*(p+i)+j);printf("%dn",k);答案:A9.17以下程序的输出结果是A)1,5,9,B)1,4,7,C)3,5,7,D)3,6,9,main()inti,x33=1,2,3,4,5,6,7,8,9;for(i=0;i<3;i+)printf(&

温馨提示

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

评论

0/150

提交评论