已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全国计算机等级考试二级教程C语言程序设计课后题及参考答案目 录第一章、第二章、第三章、第四章、第五章、第六章、第七章、第八章、第九章、第十章、第十一章、第十二章、第十三章、第十四章、第十五章、第十六章第一章 程序设计基本概念1.1 在TRUBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是_。答案:.exe1.2 C语言源程序文件的后缀是_,经过编译后,生成文件的后缀是_,经过连接后,生成文件的后缀是_。答案:.c .obj .exe1.3 结构化程序由_、_、_三种基本结构组成。答案:顺序、选择、循环第二章 C程序设计的初步知识一、选择题2.1 以下选项中正确的整型常量是 A)12. B)-20 C)1,000 D)4 5 6 答案:B2.2 以下选项中正确的实型常量是 A)0 B)3. 1415 C)0.32910(2)(10的2次方) D).871 答案:D2.3 以下选项中不正确的实型常量是 A)2.607E-1 B)0.8103e 2 C)-77.77 D)456e-2 答案:B2.4 以下选项中不合法的用户标识符是 A)abc.c B)file C)Main D)PRINTF 答案:A2.5 以下选项中不合法的用户标识符是 A)_123 B)printf C)A$ D)Dim 答案:C2.6 C语言中运算对象必需是整型的运算符是 A)% B)/ C)! D)* 答案:A2.7 可在C程序中用作用户标识符的一组标识符是 A)void define WORD B)as_b3 _123 If C)For -abc case D)2c DO SIG 答案:B2.8 若变量已正确定义并赋值,符合C语言语法的表达式是 A)a=a+7; B)a=7+b+c,a+ C)int(12.3%4) D)a=a+7=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.11 TURBO C中int类型变量所占字节数是 A)1 B)2 C)3 D)4 答案:B2.12 不合法的八进制数是 A)0 B)028 C)077 D)01 答案:B2.13 不合法的十六进制数是 A)oxff B)0Xabc C)0x11 D)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.17 C语言中的标识符可分为_、_、和预定义标识符三类。 答案:关键字、用户标识符2.18 在C语言程序中,用关键字_定义基本整型量,用关键字_定义单精度实型变量,用关键字_定义双精度实型变量。 答案:int、float、double2.19 把a1、a2定义成单精度实型变量,并赋初值1的定义语句是_。 答案:float a1=1.0,a2=1.0;2.20 C程序中定义的变量,代表内存中的一个_。 答案:存储单元2.21 表达式3.5+1/2的计算结果是_。 答案:3.52.22 对以下数学式,写出三个等价的C语言表达式_、_、_。 ab c 答案:a*b/c、a/c*b、b/c*a2.23 表达式s=10应当读做“_”。 答案:将10赋给变量s2.24 计算机中内存储器的最小存储单位称_,其中能容纳的数是_。 答案:位、0或12.25 通常一个字节包含_个二进制位。在一个字节中能存放的最大(十进制)整数是_,它的二进制数的形式是_;最小(十进制)整数是_,它的二进制数的形式是_。 答案:8、255、1111 1111、-128、1000 00002.26 当计算机用两个字节存放一个整数时,其中能存放的最大(十进制)整数是_、最小(十进制)整数是_,它的二进制数的形式是_。 答案:65535、-32768、1000 0000 0000 00002.27 在C语言中整数可用_进制数、_进制数和_进制数三种数制表示。 答案:十、八、十六第三章、顺序结构一、选择题3.1 若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是 A) a=b=c=100; B) d+; C) c+b; D) d=(c=22)-(b+); 答案:C3.2 以下选项中不是C语句的是 A) int i; i+; printf(%dn, i); B) ; C) a=5,c=10 D) ; 答案:C3.3 以下合法的C语言赋值语句是 A) A=B=58 B) k=int(a+b); C) a=58,b=58 D) -i; 答案:D3.4 以下程序的输出结果是 A) 0 B) 1 C) 3 D)不确定的值 main() int x=10,y=3; printf(%dn, y=x/y); 答案:C3.5 若变量已正确说明为int类型,要给a、b、c输入数据,以下不正确的输入语句是 A) read(a,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 22 33 B) 10.0,22.0,33.0 C) 10.0 22.0 33.0 D) 10 22 33 scanf(%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.17000 C) 5.168000 D) 5.169000 x=5.16894; printf(%fn,(int)(x*1000+0.5)/(float)1000); 答案:D3.9 若有以下程序段,c3中的值是 A) 0 B) 1/2 C) 0.5 D) 1 int c1=1,c2=2,c3; c3=c1/c2; 答案:A3.10 若有以下程序段,其输出结果是 A) 0,0,-10 B) 0,0,5 C) -10,3,-10 D) 3,3,-10 int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf(%d,%d,%dn,a,b,c); 答案:B3.11 当运行以下程序时,在键盘上从第一列开始输入9876543210(此处代表Enter),则程序的输出结果是 A) a=98,b=765,c=4321 B) a=10,b=432,c=8765 C) a=98,b=765.000000,c=4321.000000 D) a=98,b=765,c=4321.0 main() int a; float b,c; scanf(%2d%3f%4f,&a,&b,&c); printf(na=%d,b=%f,c=%fn,a,b,c); 答案:C3.12 以下程序的输出结果是 A) a=%2,b=%5 B) a=2,b=5 C) a=%d,b=%d D) a=%d,b=%d main() int a=2,b=5; printf(a=%d,b=%dn,a,b); 答案:D3.13 若int类型占两个字节,则以下程序段的输出是 A) -1,-1 B) -1,32767 C) -1,32768 D) -1,65535 int a=-1; printf(%d,%un,a,a); 答案:D3.14 以下程序段的输出是 A) *496 * B) * 496* C) *000496* D)输出格式符不合法 int x=496; printf(*%-06d*n,x); 答案:A3.15 以下程序段的输出是 A) |3.1415| B) | 3.0| C) | 3|D) | 3.| float a=3.1415; printf(|%6.0f|n,a); 答案:C3.16 以下程序段的输出是 A) |2345.67800| B) |12345.6780| C) |12345.67800| D) |12345.678| printf(|%10.5f|n,12345.678); 答案:C3.17 以下程序段的输出是 A) *0000057.66* B) * 57.66* C) *0000057.67* D) * 57.67* float a=57.666; printf(*%010.2f*n,a); 答案:C3.18 若从终端输入以下数据,要给变量C赋以283.19,则正确的输入语句是 A) scanf(%f,c); B) scanf(%8.4f,&c); C) scanf(%6.2f,&c); D) scanf(%8,&c);283.1900 表示Enter键 答案:由于印刷错误,本题没有正确答案。改正意见: 把选项A改为:scanf(%f,&c);或者把选项D改为:scanf(%8f,&c);则可分别选择A或者D为正确答案。3.19 若变量已正确说明,要求用以下语句给a赋予3.12、给b赋予9.0,则正确的输入形式是(代表空格) A) 3.129.0 B) a=3.12b=9 C) a=3.12,b=9 D) a=3.12,b=9 scanf(a=%f,b=%f,&a,&b); 表示Enter键 答案:C3.20 以下程序的输出结果是 A) 9 8 B) 8 9 C) 6 6 D) 以上三个都不对 #include math.h main() double a=-3.0, b=2; printf(%3.0f %3.0fn,pow(b,fabs(a),pow(fabs(a),b); 答案:B二、填空题3.21 若有以下定义,请写出以下程序段中输出语句执行后的输出结果。(1)_(2)_(3)_ int i=-200,j=2500; printf(1) %d %d,i,j); printf(2) i=%d, j=%dn,i,j); printf(3) i=%dn j=%dn,i,j); 答案: -200 2500 i=-200, j=2500 i=-200 j=25003.22 变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时 scanf(%d,&i); scanf(%d,&j); scanf(%d,&k);当执行第一个输入语句,从键盘输入: 12.3 表示Enter键则变量i、j、k的值分别是_、_、_。 答案:12、0、03.23 复合语句在语法上被认为是_。空语句的形式是_。 答案:一条语句、 ;3.24 C语句的最后用_结束。 答案:;3.25 以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式_、_、_。 int k; float a; double x; scanf(%d%f%lf,&k,&a,&x); printf(k=%d,a=%f,x=%fn,k,a,x); 答案: (1) 100 25.81 1.89234 (2) 100 25.811.89234 (3) 100 25.81 1.892343.26 以下程序段的输出结果是_。 int x=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 以下程序段的输出结果是_。 int x=0177; printf(x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%06dn,x,x,x,x,x); 答案:27、x=127,x=127 ,x=$127 ,x=$000127,x=%06d3.28 以下程序段的输出结果是_。 double a=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 下列运算符中优先级最低的运算符是 A) | B) != C) =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&b B) a=b C) a|b+c&b-c D) !(ab)&!c|1) 答案:D4.5 以下程序的输出结果是 A) 0 B) 1 C) 2 D) 3 main() int a=2,b=-1,c=2; if(ab)if(b0) c=0; else c+=1; printf(%dn,c); 答案:C4.6 以下程序的输出结果是 A)1 B) 2 C) 3 D) 4 main() int w=4,x=3,y=2,z=1; printf(%dn,(wx?w:zy?z:x); 答案:A4.7 若执行以下程序时从键盘上输入3和4,则输出结果是 A) 14 B) 16 C) 18 D) 20 main() int a,b,s; scanf(%d%d,&a,&b); s=a; if(ab) s=b; s*=s; printf(%dn,s); 答案:B4.8 下面的程序片段所表示的数学函数关系是 -1(x0) 1(x0) 0(x0) -1(x0) y=-1; if(x!=0) y=1; if(x0) y=1; else y=0; 答案:本题没有正确答案。程序片段所表示的数学函数关系应该是 0(x0)4.9 运行以下程序后,输出 A) * B) & C) #& D) 有语法错误不能通过编译 main() int k=-3; if(k、=、=、=、!=4.13 C语言中的逻辑运算符按优先级别是_、_、_。 答案:!、&、|4.14 C语言中的关系运算符和逻辑运算符的优先级别是_、_、_、_、_、_、_。 答案:!、=、!=、&、|4.15 C语言中逻辑运算符_的优先级高于算术运算符。 答案:!4.16 将下列数学式改写成C语言的关系表达式或逻辑表达式A)_B)_。 A)a=b或a4 答案:A)a=b|a4|x100) printf(%dn,a100); else printf(%dn,a0) B) !0 答案:A) xc) b=a; a=c; c=b; 答案:3、2、24.20 若变量已正确定义,以下语句段的输出结果是_。 x=0; y=2; z=3; switch(x) case 0: switch(y=2) case 1: printf(*); break; case 2: printf(%); break; case 1: switch(z) case 1: printf($); case 2: printf(*); break; default : printf(#); 答案:*# 返回 第五章、循环结构一、 选择题5.1 以下程序段的输出结果是 A) 9B) 1C) 11D) 10 int k,j,s; for(k=2; k6; k+,k+) s=1; for(j=k; j6; j+) s+=j; printf(%dn, s); 答案:D5.2 以下程序段的输出结果是 A) 12B) 15 C) 20 D) 25 int i,j,m=0; for(i=1; i=15; i+=4) for(j=3; j7) n-; printf(%dn, n); 答案:B5.4 以下程序段的输出结果是 A) 1B) 3 0C) 1 -2D) 死循环 int x=3; do printf(%3d,x-=2); while(!(-x); 答案:C5.5 以下程序段的输出结果是 A) 15B) 14C) 不确定D) 0 main() int i,sum; for(i=1; i0; y-)if(y%3=0) printf(%d, -y); continue; 答案:B5.7 若x是int型变量,以下程序段的输出结果是 A) *3 #4 *5 B) #3 *4 #5 C) #3 *4#5 D) *3#4 *5 for(x=3; x6; x+) printf(x%2)?(*%d):(#%dn),x); 答案:D5.8 以下程序的输出结果是 A) *#*#*#$B) #*#*#*$C) *#*#$ D) #*#*$ main() int i; for(i=1; i=5; i+) if(i%2) printf(*);else contionue;printf(#); printf($n); 答案:A5.9 以下叙述正确的是 A) do_while语句构成的循环不能用其它语句构成的循环来代替。 B) do_while语句构成的循环只能用break语句退出。 C) 用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。 D) 用do_while语句构成循环时,只有在while后的表达式为零时结束循环。 答案:D5.10 以下程序的输出结果是 A) 39 81B) 42 84C) 26 68D) 28 70 main() int x,i; for(i=1; ib; +b) i+; while(a+c) j+; do k+; while(ad+); 答案:5、4、65.12 以下程序段的输出结果是_。 int k,n,m; n=10; m=1; k=1; while(k=n) m*=2; printf(%dn,m); 答案:死循环5.13 以下程序的输出结果是_。 main() int x=2; while(x-); printf(%dn,x); 答案:-15.14 以下程序段的输出结果是_。 int i=0,sum=1; do sum+=i+; while(i5); printf(%dn,sum); 答案:115.15 有以下程序段: s=1.0; for(k=1; k=n; k+) s=s+1.0/(k*(k+1); printf(%fn,s);请填空,使下面的程序段的功能完全与之等同。 s=0.0; _; k=0; do s=s+d; _; d=1.0/(k*(k+1); while(_); printf(%fn,s); 答案:d=1.0、k+、kamax) amax=x;if(_)amin=x;scanf(%f,&x); printf(namax=%fnamin=%fn,amax,amin); 答案:x=0、xamin- 作者:考试虫- 发布时间:2004-5-18 18:21:00 返回 第六章、字符型数据一、选择题6.1 C语言中的简单数据类型有 A) 整型、实型、逻辑型B) 整型、实型、字符型 C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型 答案:B6.2 C语言中,字符(char)型数据在微机内存中的存储形式是 A) 反码 B) 补码 C) EBCDIC码 D) ASCII码 答案:D6.3 设有语句char a=72;,则变量a A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法 答案:A6.4 C语言中不合法的字符常量是 A) 0xff B) 65 C) & D) 028 答案:本题A)和D)选项都是不合法的字符常量。若A)选项改为xff,则正确。6.5 C语言中不合法的字符串常量是 A) 121 B) y= C) nn D) ABCDx6d 答案:B6.6 判断char型变量c是否为大写字母的最简单且正确的表达式是 A) A=c=A)&(c=Z) C) (A=c) D) (c=A)&(c=A&x=Z)?(x+32):x; printf(%cn,x); 答案:B6.9 以下程序的输出结果是 A) 67,CB) B,CC) C,DD) 不确定的值 main() char ch1,ch2; ch1=A+5-3; ch2=A+5-3; printf(%d,%cn,ch1,ch2); 答案:A6.10 对以下程序,从第一列开始输入数据:2473,代表Enter。程序的输出结果是 A) 668977B) 668966C) 66778777D) 6688766 #include stdio.h main() int c; while(c=getchar()!=n) switch(c-2) case 0 : case 1 : putchar(c+4); case 2 : putchar(c+4); break; case 3 : putchar(c+3); default : putchar(c+2); break;printf(n); 答案:A6.11 若变量已正确说明,要求用以下语句给c1赋予字符%、给c2赋予字符#、给a赋予2.0、给b赋予4.0,则正确的输入形式是(代表空格) A) 2.0%4.0# B) 2.0%4.0# C) 2%4# D) 2%4 scanf(%f%c%f%c,&a,&c1,&b,&c2); (代表Enter键) 答案:B二、填空题6.12 EOF的十进制值是_。 答案:-16.13 C语言中,字符占内存_个字节。 答案:16.14 调用C语言对字符处理的库函数时,在#include命令行中应包括的头文件是_。 答案:string.h6.15 若输入字符A,在以下while语句执行后ch的值是_。while(ch=getchar()=A); 答案:16.16 若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入10、20、30、40,正确的输入形式是_,请用代表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,从键盘正确输入数据的形式是_。 char c1,c2; float a1,a2; scanf(%f%f,&a1,&a2); scanf(%c%c,&c1,&c2); 答案:7.29101.298AB6.18 若有以下说明和输入语句,要求给c1、c2输入字符A和B,给a1、a2输入7.29和101.298,从键盘正确输入数据的形式是_。 char c1,c2; float a1,a2; scanf(%c%f%c%f,&c1,&a1,&c2,&a2); 答案:A7.29B101.2986.19 若有以下说明和输入语句,要求给c1、c2、c3输入字符A、B和C,请写出各种从键盘正确输入数据的形式。 char c1,c2,c; scanf(%4c,&c1); scanf(%4c,&c2); scanf(%4c,&c3); 答案:ABC 返回 第七章、函数一、选择题7.1 以下说法中正确的是 A) C语言程序总是从第一个定义的函数开始执行 B) 在C语言程序中,要调用的函数必须在main函数中定义 C) C语言程序总是从main函数开始执行 D) C语言程序中的main函数必须放在程序的开始部分 答案:C7.2 以下函数的类型是 A) 与参数x的类型相同B) void类型C) int类型D) 无法确定 fff(float x) printf(%dn,x*x); 答案:C7.3 以下函数调用语句中,含有的实参个数是 A) 1B) 2C) 4D) 5 func( (exp1,exp2),(exp3,exp4,exp5); 答案:B7.4 以下程序的输出结果是 A) 11B) 20C) 21D) 31 fun(int a,int b) int c; c=a+b; return c; main() int x=6,y=7,z=8,r; r=func(x-,y+,x+y),z-); printf(%dn,r); 答案:C7.5 以下程序的输出结果是 A) -1B) 0C) 1D) 2 main() int i=2,p; p=f(i,i+1); printf(%d,p); int f(int a, int b) int c; c=a; if(ab) c=1; else if(a=b) c=0; else c=-1; return(c); 答案:A7.6 以下程序的输出结果是 A) 0B) 1 C) 6D) 无定值 fun(int a,int b,int c) c=a*b; main() int c; fun(2,3,c); printf(%dn,c); 答案:D7.7 以下程序的输出结果是 A) 5.500000 B) 3.000000 C) 4.000000 D) 8.25 double f(int n) int i; double s; s=1.0; for(i=1; i=n; i+) s+=1.0/i; return s; main() int i,m=3; float a=0.0; for(i=0; ieps; n+) s+=t;t=n*t/(2*n+1); return (2.0*_); 答案:n=1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大理州南涧县供排水有限责任公司考核招聘工作人员(4人)考试参考题库及答案解析
- 2026年甘肃兰州皋兰县教育系统招聘教师10人考试参考试题及答案解析
- 2026广东广州花山镇华侨初级中学招聘水电工1人考试备考题库及答案解析
- 2026广东江门鹤山市址山镇专职消防员招聘1人考试参考试题及答案解析
- 2026福建福州市马尾医疗保障局劳务派遣工作人员招聘2人考试参考试题及答案解析
- 2026云南昭通中药材贸易有限公司招聘行政专员3人考试参考题库及答案解析
- 2026陕西西安长安大学工程设计研究院有限公司招聘考试备考题库及答案解析
- 2026年天津市北辰区妇幼保健计划生育服务中心招聘高层次专业技术人员1人考试参考试题及答案解析
- 2026年台州市椒江区章安街道中心幼儿园保健医生招聘1人笔试模拟试题及答案解析
- 2026上海复旦大学附属肿瘤医院胸外科大学科团队招聘3人考试备考试题及答案解析
- 小学数学新课标的教学资源开发心得体会
- 黔南州 2024-2025学年度第一学期期末质量监测九年级道德与法治
- 我国十大类再生废品资源回收现状和行情分析
- 2024北京朝阳四年级(上)期末数学(教师版)
- 【MOOC】人工智能导论-浙江工业大学 中国大学慕课MOOC答案
- 心梗病人护理病例讨论
- DB51-T 3201-2024 锂离子电池电极材料生产节能技术规范
- 大学采购印刷服务项目 投标方案(技术方案)
- 医疗质量管理委员会职责制度
- 四川省绵阳市2023-2024学年高一上学期期末检测英语试题(解析版)
- NB-T31007-2011风电场工程勘察设计收费标准
评论
0/150
提交评论