《全国计算机等级考试二级教程C语言程序设计》.docx

上传人:b****5 文档编号:7812743 上传时间:2023-01-26 格式:DOCX 页数:106 大小:70.88KB
下载 相关 举报
《全国计算机等级考试二级教程C语言程序设计》.docx_第1页
第1页 / 共106页
《全国计算机等级考试二级教程C语言程序设计》.docx_第2页
第2页 / 共106页
《全国计算机等级考试二级教程C语言程序设计》.docx_第3页
第3页 / 共106页
《全国计算机等级考试二级教程C语言程序设计》.docx_第4页
第4页 / 共106页
《全国计算机等级考试二级教程C语言程序设计》.docx_第5页
第5页 / 共106页
点击查看更多>>
下载资源
资源描述

《全国计算机等级考试二级教程C语言程序设计》.docx

《《全国计算机等级考试二级教程C语言程序设计》.docx》由会员分享,可在线阅读,更多相关《《全国计算机等级考试二级教程C语言程序设计》.docx(106页珍藏版)》请在冰豆网上搜索。

《全国计算机等级考试二级教程C语言程序设计》.docx

《全国计算机等级考试二级教程C语言程序设计》

《全国计算机等级考试二级教程——C语言程序设计》

课后题及参考答案

第一章程序设计基本概念

1.1在TRUBOC环境中用RUN命令运行一个C程序时,所运行的程序的后缀是______。

答案:

.exe

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

答案:

.c  .obj  .exe

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

答案:

顺序、选择、循环

第二章C程序设计的初步知识

一、选择题

2.1以下选项中正确的整型常量是

    A)12.    B)-20    C)1,000    D)4  5  6

    答案:

B

2.2以下选项中正确的实型常量是

    A)0    B)3.  1415    C)0.329×10

(2)(10的2次方)    D).871

    答案:

D

2.3以下选项中不正确的实型常量是

    A)2.607E-1    B)0.8103e  2    C)-77.77    D)456e-2

    答案:

B

2.4以下选项中不合法的用户标识符是

    A)abc.c    B)file    C)Main    D)PRINTF

    答案:

A

2.5以下选项中不合法的用户标识符是

    A)_123    B)printf    C)A$    D)Dim

    答案:

C

2.6C语言中运算对象必需是整型的运算符是

    A)%        B)/        C)!

        D)**

    答案:

A

2.7可在C程序中用作用户标识符的一组标识符是

    A)void    define    WORD

    B)as_b3    _123    If

    C)For    -abc    case

    D)2c    DO    SIG

    答案:

B

2.8若变量已正确定义并赋值,符合C语言语法的表达式是

    A)a=a+7;    B)a=7+b+c,a++    C)int(12.3%4)    D)a=a+7=c+b

    答案:

B

2.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。

    答案:

B

2.10以下叙述中正确的是

    A)在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。

    B)C程序由主函数组成。

    C)C程序由函数组成。

    D)C程序由函数和过程组成。

    答案:

C

2.11TURBOC中int类型变量所占字节数是

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

    答案:

B

2.12不合法的八进制数是

    A)0    B)028    C)077    D)01

    答案:

B

2.13不合法的十六进制数是

    A)oxff    B)0Xabc    C)0x11    D)0x19

    答案:

A

二、填空题

2.14若k为int整型变量且赋值11。

请写出运算k++后表达式的值A)_____和变量的值B)_____。

    答案:

11、12

2.15若x为double型变量,请写出运算x=3.2,++x后表达式的值A)_____和变量的值B)_____。

    答案:

4.2、4.2

2.16函数体由符号____开始,用符号____结束。

函数体的前面是____部分,其后是____部分。

    答案:

{、}、定义、执行

2.17C语言中的标识符可分为____、____、和预定义标识符三类。

    答案:

关键字、用户标识符

2.18在C语言程序中,用关键字____定义基本整型量,用关键字____定义单精度实型变量,用关键字___定义双精度实型变量。

    答案:

int、float、double

2.19把a1、a2定义成单精度实型变量,并赋初值1的定义语句是____。

    答案:

float  a1=1.0,a2=1.0;

2.20C程序中定义的变量,代表内存中的一个____。

    答案:

存储单元

2.21表达式3.5+1/2的计算结果是____。

    答案:

3.5

2.22对以下数学式,写出三个等价的C语言表达式____、____、____。

    a×b

    ——

        c

    答案:

a*b/c、a/c*b、b/c*a

2.23表达式s=10应当读做“____”。

    答案:

将10赋给变量s

2.24计算机中内存储器的最小存储单位称____,其中能容纳的数是____。

    答案:

位、0或1

2.25通常一个字节包含____个二进制位。

在一个字节中能存放的最大(十进制)整数是____,它的二进制数的形式是____;最小(十进制)整数是____,它的二进制数的形式是____。

    答案:

8、255、11111111、-128、10000000

2.26当计算机用两个字节存放一个整数时,其中能存放的最大(十进制)整数是____、最小(十进制)整数是____,它的二进制数的形式是____。

    答案:

65535、-32768、1000000000000000

2.27在C语言中整数可用____进制数、____进制数和____进制数三种数制表示。

   答案:

十、八、十六

三、上机改错题

2.24【分析与解答】 

第1行的错误:

(1)include是一个程序行,因此在此行的最后不应当有分号(;)。

(2)include程序行中后面的stdio.h是一个文件名,按规定,文件名应当放在一对双引号(″″)内,或放在一对尖括号(<>)内。

第2行的错误:

(1)main()是主函数的起始行,不是语句,因此最后不应当有分号(;)。

(2)在同一行上的/ * mainfunction * /显然是注释;C语言规定:

注释由/*开头,由*/结束,但在*号和/之间不得插入任何空格,而在此处“/ *”和“/ *”之间存在空格,因此,/ * mainfunction * /的写法式是错误的,而应写成:

/* mainfunction */。

第3行的错误:

(1)在主函数的起始行main()的后面是函数体,函数体由左花括号({)开始。

但在函数体的第一行:

float的前面缺少了左花括号({)。

(2)在同一行上的/*/*risradius*/,/*sisareaofcircular*/*/显然是注释;C语言规定:

注释由/*开头,由*/结束,并且开头的/*将去找最近的*/去配对,因此在/*/*risradius*/中,第一个/*与最后的那个*/配上了对,结果紧跟在后面的那个逗号(,)落在了注释的外面,而构成了一个多余符号,为此,在编译时将报告“语法错”。

第6行的错误:

(1)printf(″%f\[KG-*3]n″,s)应当是一条输出语句,但在最后缺少了一个分号。

(2)printf(″%f\[KG-*3]n″,s);是程序的最后一条语句,程序应当结束;但缺少了程序体结束所需的右花括号(});此右花括号可以放在printf(″%f\[KG-*3]n″,s);的后面,也可以放在printf(″%f\[KG-*3]n″,s);的下一行上。

2.25【分析与解答】

第1行的错误:

在include行中的文件名应该是stdio.h,而不是stdio.a。

第2行的错误:

在main的后面缺少一对圆括号。

第4行的错误:

在c=40的后面缺少分号。

第6行的错误:

在printf(″%f\〖KG-*3〗n″,v)的后面缺少分号。

 

 

第三章、顺序结构

一、选择题

3.1若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是

    A)a=b=c=100;    B)d++;    C)c+b;    D)d=(c=22)-(b++);

    答案:

C

3.2以下选项中不是C语句的是

    A){inti;i++;printf("%d\\n",i);}

    B);        C)a=5,c=10        D){;}

    答案:

C

3.3以下合法的C语言赋值语句是

    A)A=B=58    B)k=int(a+b);    C)a=58,b=58    D)--i;

    答案:

D

3.4以下程序的输出结果是

    A)0        B)1        C)3        D)不确定的值

    main()

    {

        intx=10,y=3;

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

    }

    答案:

C

3.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);

    答案:

D

3.6若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是

    A)102233    B)10.0,22.0,33.0    C)10.022.033.0    D)102233

    scanf("%f%f%f",&a,&b,&c);

    答案:

B

3.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;

    答案:

C

3.8若变量已正确定义,以下程序段的输出结果是

    A)输出格式说明与输出项不匹配,输出无定值

    B)5.17000    C)5.168000    D)5.169000

    x=5.16894;

    printf("%f\\n",(int)(x*1000+0.5)/(float)1000);

    答案:

D

3.9若有以下程序段,c3中的值是

    A)0        B)1/2        C)0.5        D)1

    intc1=1,c2=2,c3;

    c3=c1/c2;

    答案:

A

3.10若有以下程序段,其输出结果是

    A)0,0,-10    B)0,0,5    C)-10,3,-10    D)3,3,-10

    inta=0,b=0,c=0;

    c=(a-=a-5),(a=b,b+3);

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

    答案:

B

3.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()

    {

        inta;floatb,c;

        scanf("%2d%3f%4f",&a,&b,&c);

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

    }

    答案:

C

3.12以下程序的输出结果是

    A)a=%2,b=%5    B)a=2,b=5    C)a=%%d,b=%%d    D)a=%d,b=%d

    main()

    {  inta=2,b=5;

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

    }

    答案:

D

3.13若int类型占两个字节,则以下程序段的输出是

    A)-1,-1    B)-1,32767    C)-1,32768    D)-1,65535

    inta=-1;

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

    答案:

D

3.14以下程序段的输出是

    A)*496  *    B)*  496*    C)*000496*  D)输出格式符不合法

    intx=496;

    printf("*%-06d*\\n",x);

    答案:

A

3.15以下程序段的输出是

    A)|3.1415|    B)|  3.0|    C)|    3|      D)|    3.|

    floata=3.1415;

    printf("|%6.0f|\\n",a);

    答案:

C

3.16以下程序段的输出是

    A)|2345.67800|    B)|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*

    floata=57.666;

    printf("*%010.2f*\\n",a);

    答案:

C

3.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.12□□9.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键

    答案:

C

3.20以下程序的输出结果是

    A)9  8    B)8  9    C)6  6    D)以上三个都不对

    #include  "math.h"

    main()

    {  doublea=-3.0,b=2;

        printf("%3.0f%3.0f\\n",pow(b,fabs(a)),pow(fabs(a),b));

    }

    答案:

B

二、填空题

3.21若有以下定义,请写出以下程序段中输出语句执行后的输出结果。

(1)____

(2)____(3)____

    inti=-200,j=2500;

    printf("

(1)%d%d",i,j);

    printf("

(2)i=%d,j=%d\\n",i,j);

    printf("(3)i=%d\\nj=%d\\n",i,j);

    答案:

    -2002500

    i=-200,j=2500

    i=-200

j=2500

3.22变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时

    scanf("%d",&i);scanf("%d",&j);scanf("%d",&k);

当执行第一个输入语句,从键盘输入:

    12.3表示Enter键

则变量i、j、k的值分别是____、____、____。

    答案:

12、0、0

3.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("k=%d,a=%f,x=%f\\n",k,a,x);

    答案:

    

(1)100  25.81  1.89234

    

(2)100  25.811.89234

    (3)10025.811.89234

3.26以下程序段的输出结果是____。

    intx=0177;

    printf("x=%3d,x=%6d,x=$%6o,x=%6x,x=%6u\\n",x,x,x,x,x);

    答案:

x=127,x=  127,x=  177,x=    7f,x=  127

3.27以下程序段的输出结果是____。

    intx=0177;

    printf("x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%%06d\\n",x,x,x,x,x);

    答案:

27、x=127,x=127  ,x=$127  ,x=$000127,x=%06d

3.28以下程序段的输出结果是____。

    doublea=513.789215;

    printf("a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lf\\n",a,a,a,a);

答案:

a=513.789215,a=  513.79,a=  513.78921500,a=  513.78921500

三、编程题和改错题

3.16【分析与解答】     

(1)主函数名main后应有一对圆括号。

(2)变量定义语句中,v的前面缺逗号。

(3)第三行的printf语句用以提示输入,但是原样输出的字符串没有用双引号括起来;另外,从输入的形式看,输入的数据紧跟在提示之后,因此,printf格式串中最后不应该有换行符——\n。

(4)因为输入项a、b、c从定义和计算结果来看都是double类型,因此,第四行scanf语句格式串中的格式说明不应当用%d而应当用%lf;且每一个变量之前应该加地址运算符&。

(5)第七行的printf语句中应当把%d都改成%lf或%f;按输出要求在格式串中应添加相应的原样输出的字符;因为下一个printf的输出从新的一行开始,因此在本输出语句的格式串的最后应当加换行符——\n。

(6)第八行的printf语句中应当把格式串整理合并放在输出项的前面,输出项放在后面,%d都改成%lf或%f;中间的\n删去。

(7)请读者自己写出修改后的程序,并上机调试。

3.17【分析与解答】     

(1)分析:

可用算术式560÷60把分钟换算成小时和分钟,商数就是小时数,余数就是分钟数。

(2)确定变量的名字和定义变量的类型:

在程序中把小时数放在变量h中,把分钟数放在变量m中。

这两个变量的类型可以是整型(本题中采用整型),也可以是实型。

(3)确定所用算法:

求〖SX()560〖〗60〖SX〗〗的商数,在C语言中可以用整除的算法,语句是h=560/60;。

求余数可用求余运算符%:

560%60,其值放入变量m中的语句是:

m=560%60;。

(4)设计输出格式。

若输出的形式定为:

小时:

分钟,则按此形式设计输出语句。

(5)把以上内容放在主函数的一对花括号中。

(6)编写程序如下:

       main()

{   int  h,m;

    h=560/60;

    m=560%60;

    printf(″Theresult:

 %3d:

%3d\n″,h,m); 

运行结果是:

     Theresult:

   9:

 20

3.18【分析与解答】

(1)确定变量的名字和定义变量的类型。

若用a存放1500,用b存放350;用q存放商数,用r存放余数,所有变量应定义成int类型。

(2)设计输入语句从终端输入1500和350;在输入语句之前,应当设计一个输出语句,用以提示输入。

(3)可用整除求商数,结果放在变量q中。

可用求余运算符%求两数之余数,结果放在变量r中。

(4)设计输出语句。

输出a、b、q、r。

(5)把以上内容放在主函数的一对花括号中。

本题的程序与3.30相似,请读者参考上题并根据本题的解释自己编程,并上机调试。

3.19【分析与解答】     

(1)定义4个双精度变量a、b、c和ave,变量a、b、c分别存放读入的3个双精度数,ave存放它们的平均值。

(2)设计输入语句,以及在此之前用于提示输入的(printf)语句。

(3)设计求平均值的算法,把所求得的平均值放入变量ave中。

(4)设计把变量ave中的数,从小数点后第二位数进行四舍五入的算法。

现举例说明:

若ave中的数为123.4644,为了保留此值小数点后一位,可用表达式:

(int)(123.4644*10)/10.0;依次推算,为了保留此值小数点后二位,可用表达式:

(int)(123.4644*100)/100.0;其他依此类推。

(5)若要求对小数点后第二位数进行四舍五入,则可对原数加0.05后再进行以上运算。

如要求保留123.4644小数点后一位且对第二位数进行四舍五入,可用表达式:

(i

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1