1、全国计算机等级考试二级教程C语言程序设计题目及解答第二章C程序设计的初步知识一、选择题2.1以下选项中正确的整型常量是A)12. B)-20 C)1,000 D)456答案:B2.2以下选项中正确的实型常量是A)0 B)3.1415 C)0.32910(2)(10的2次方)D).871答案:D2.3以下选项中不正确的实型常量是A)2.607E-1 B)0.8103e2 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)
2、Dim答案:C2.6C语言中运算对象必需是整型的运算符是A)% B)/ C)!D)*答案:A2.7可在C程序中用作用户标识符的一组标识符是A)voiddefineWORD B)as_b3_123If C)For-abccase D)2cDOSIG答案: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
3、=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.11TURBOC中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)
4、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.17C语言中的标识符可分为_、_、和预定义标识符三类。答案:关键字、用户标识符2.18在C语言程序中,用关键字_定义基本整型量,用关键字_定义单精度实型变量,用关键字_定义双精度实型变量。答案:int、float、double2.19把a
5、1、a2定义成单精度实型变量,并赋初值1的定义语句是_。答案:floata1=1.0,a2=1.0;2.20C程序中定义的变量,代表内存中的一个_。答案:存储单元2.21表达式3.5+1/2的计算结果是_。答案:3.52.22对以下数学式,写出三个等价的C语言表达式_、_、_。abc答案:a*b/c、a/c*b、b/c*a2.23表达式s=10应当读做“_”。答案:将10赋给变量s2.24计算机中内存储器的最小存储单位称_,其中能容纳的数是_。答案:位、0或12.25通常一个字节包含_个二进制位。在一个字节中能存放的最大(十进制)整数是_,它的二进制数的形式是_;最小(十进制)整数是_,它的二
6、进制数的形式是_。答案:8、255、11111111、-128、100000002.26当计算机用两个字节存放一个整数时,其中能存放的最大(十进制)整数是_、最小(十进制)整数是_,它的二进制数的形式是_。答案:65535、-32768、10000000000000002.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)inti;i
7、+;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)1C)3 D)不确定的值main()intx=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“, D)scanf(“%d%d%d“,答案:D3.6若变量已
8、正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是A)102233 B)10.0,22.0,33.0C)10.022.033.0 D)102233scanf(“%f%f%f“,答案: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.168000 D)5.169000x=5
9、.16894;printf(“%fn“,(int)(x*1000+0.5)/(float)1000);答案:D3.9若有以下程序段,c3中的值是A)0 B)1/2 C)0.5 D)1intc1=1,c2=2,c3;c3=c1/c2;答案:A3.10若有以下程序段,其输出结果是A)0,0,-10 B)0,0,5 C)-10,3,-10 D)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(此处代表Enter),则程序的输出结果是A
10、)a=98,b=765,c=4321B)a=10,b=432,c=8765C)a=98,b=765.000000,c=4321.000000D)a=98,b=765,c=4321.0main()inta;floatb,c;scanf(“-?O“,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=%dmain()inta=2,b=5;printf(“a=%d,b=%dn“,a,b);答案:D3.13若int类型占两个字节,则以下程序段的输出是A)-1,-1 B
11、)-1,32767 C)-1,32768 D)-1,65535inta=-1;printf(“%d,%un“,a,a);答案:D3.14以下程序段的输出是A)*496* B)*496* C)*000496* D)输出格式符不合法intx=496;printf(“*%-06d*n“,x);答案:A3.15以下程序段的输出是A)|3.1415| B)|3.0| C)|3| D)|3.|floata=3.1415;printf(“|%6.0f|n“,a);答案:C3.16以下程序段的输出是A)|2345.67800| B)|12345.6780| C)|12345.67800| D) |12345.
12、678|printf(“|.5f|n“,12345.678);答案:C3.17以下程序段的输出是A)*0000057.66* B)*57.66* C)*0000057.67* D) * 57.67* floata=57.666;printf(“* 0.2f*n“,a);答案:C3.18若从终端输入以下数据,要给变量C赋以283.19,则正确的输入语句是A)scanf(“%f“,c);B)scanf(“%8.4f“, C)scanf(“%6.2f“, D) scanf(“%8“,283.1900表示Enter键答案:由于印刷错误,本题没有正确答案。改正意见:把选项A改为:scanf(“%f“,或
13、者把选项D改为:scanf(“?“,则可分别选择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=9scanf(“a=%f,b=%f“,表示Enter键答案:C3.20以下程序的输出结果是A)98 B)89 C)66 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
14、二、填空题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=%dnj=%dn“,i,j);答案:-2002500i=-200,j=2500i=-200j=25003.22变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时scanf(“%d“,scanf(“%d“,scanf(“%d“,当执行第一个输入语句,从键盘输入:12.3表示Enter键则变量i、j、k的值分别是
15、_、_、_。答案:12、0、03.23复合语句在语法上被认为是_。空语句的形式是_。答案:一条语句、;3.24C语句的最后用_结束。答案:;3.25以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式_、_、_。intk;floata;doublex;scanf(“%d%f%lf“,printf(“k=%d,a=%f,x=%fn“,k,a,x);答案:(1) 100 25.81 1.89234 (2) 100 25.811.89234 (3) 100 25.811.892343.26以下程序段
16、的输出结果是_。int x=0177;printf(“x=,x=m,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=$d,x=%dn“,x,x,x,x,x);答案:27、x=127,x=127,x=$127,x=$000127,x=d3.28以下程序段的输出结果是_。double a=513.789215;printf(“a=%8.6f,a=%8.2f,a=.8f,a=.8lfn“,a,a,a,a);答案:a=513.789215,a=513.79,a=513.78921500,a=513.78921500