习题解答.docx

上传人:b****5 文档编号:7430422 上传时间:2023-01-23 格式:DOCX 页数:125 大小:99.53KB
下载 相关 举报
习题解答.docx_第1页
第1页 / 共125页
习题解答.docx_第2页
第2页 / 共125页
习题解答.docx_第3页
第3页 / 共125页
习题解答.docx_第4页
第4页 / 共125页
习题解答.docx_第5页
第5页 / 共125页
点击查看更多>>
下载资源
资源描述

习题解答.docx

《习题解答.docx》由会员分享,可在线阅读,更多相关《习题解答.docx(125页珍藏版)》请在冰豆网上搜索。

习题解答.docx

习题解答

第一部分习题解答

1.1C语言概述

一、选择题

1、一个C语言的源程序中,()。

[A]可以有多个主函数

[B]必须有一个主函数

[C]必须有主函数和其他函数

[D]可以没有主函数

解析:

本题考查的是主函数在C程序中的作用。

一个C程序中必须有且仅有一个主函数,其它函数可有可无。

因此,正确答案为[B]。

2、下列叙述中错误的是()。

(全国计算机二级考试题2007年4月)

[A]计算机不能直接执行用C语言编写的源程序

[B]C程序编译后,生成后缀为.obj的文件是一个二进制文件

[C]后缀为.obj的文件,经连接生成后缀为.exe的文件是一个二进制文件

[D]后缀为.obj和.exe的二进制文件都可以直接运行

解析:

本题考查的是C程序从编写到生成可执行文件的步骤问题。

C程序编写的源程序(.C)经C编译程序编译后生成后缀为.obj的二进制文件,再经过链接库文件后生成后缀为.exe的二进制文件,最终执行的是后缀为.exe的二进制文件。

因此,正确答案为[D]。

3、对于一个正常运行的C程序,以下叙述中正确的是()。

(全国计算机二级考试题2007年4月)

[A]程序的执行总是从voidmain函数开始,在voidmain函数结束

[B]程序的执行总是从程序的第一个函数开始,在voidmain函数结束

[C]程序的执行总是从voidmain函数开始,在程序的最后一个函数结束

[D]程序的执行总是从程序的第一个函数开始,在程序的最后一个函数结束

解析:

本题考查的是C程序的执行过程问题。

C程序中所有函数的地位都是一样的,C程序的执行总是从voidmain函数开始,在voidmain函数结束。

因此,正确答案为[A]。

4、以下叙述中正确的是()。

(全国计算机二级考试题2008年9月)

[A]C语言的基本组成单位是语句

[B]C程序中的每一行只能写一条语句

[C]简单C语句必须以分号结束

[D]C语句必须在一行内完成

解析:

本题考查的是C语言的基本概念。

函数是C语言的基本组成单位,选项A错误。

C语言书写格式自由,一行内可以写多个语句,一个语句可以多行书写,选项B、D错误。

分号是语句结束的标志,任何一条语句都必须以分号结束。

因此,正确答案为[C]。

二、读程序写结果

1、

#include"stdio.h"

voidmain()

{

intx,y,z;

x=100;

y=20;

z=x+y;

printf("sum=%d",z);

}

解:

运行结果为sum=120

2、

#include”stdio.h”

voidmain()

{

intx,y,z;

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

z=x*y;

printf(“result=%d”,z);

}

解:

scanf函数作用是从键盘输入数据,printf函数作用是在终端输出数据,本题若输入为34,则运行结果为12。

三、编程题

1、请参照本章例题,编写一个C语言程序,用于显示以下信息:

**********

hello!

**********

解析:

本题只需输出三行信息,可用3个print函数分别输出

#include/*文件包含,引头文件*/

voidmain()/*主函数*/

{/*主函数起始*/

printf("**********\n");/*输出函数*/

printf("hello!

\n");/*输出函数*/

printf("**********\n");/*输出函数*/

}/*主函数结束*/

2、请参照本章例题,编写一个C语言程序,输出两个数中的最大数。

解析:

通过一条判断语句将两数中的大数输出即可

#include/*文件包含,引头文件*/

voidmain()/*主函数*/

{/*主函数起始*/

inta,b;/*定义整型变量a和b*/

a=3;/*给变量a赋值为3*/

b=5;/*给变量b赋值为5*/

if(a>b)printf("%d",a);/*条件判断语句,条件a>b成立则输出变量a的值*/

elseprintf("%d",b);/*否则不成立则输出变量b的值*/

}/*主函数结束*/

1.2数据类型、运算符与表达式

一、选择题

1、以下选项中,合法的一组C语言用户标识符是()。

(全国计算机二级考试题2007年9月)

 [A] and [B]Date[C]Hi[D]case

_2007 y-m-dDr.TomBig1

解析:

本题考查的是标识符问题。

C语言中标识符的命名规则是由字母、数字、下划线组成,且只能以字母、下划线开头,并且不能使用C语言的关键字。

选项B中出现非法字符-。

选项C中出现非法字符.。

选项D中有C语言的关键字case。

因此,正确答案为[A]。

2、以下选项中,合法的一组C语言数值常量是()。

(全国计算机二级考试题2007年9月)

[A] 028 [B]12.    [C].177 [D]0x8A

.5e-3 0xa23  4e1.510,000

-0xf  4.5e0  0abc 3.e5

解析:

本题考查的是C语言数值常量问题。

C语言中以0开头的数值为八进制数,八进制数由0到7组成,因此028非法,选项A错误。

以0x开关头的数值为十六进制数,十六进制数由0~9及A~F组成。

实型数有十进制小数形式和指数形式两种,指数形式要求e前有数字,e后为整数,因此4e1.5非法,选项C错误。

选项D中10,000非法。

因此,正确答案为[B]。

3、以下选项中不属于字符常量的是()。

(全国计算机二级考试题2008年4月)

[A]'C'[B]"C"[C]'\xCC0'[D]'\072'

解析:

本题考查的是转义字符问题。

由单撇号引起的一个字符为字符常量,选项A正确。

由双引号引起的字符序列为字符串常量,选项B不正确。

选项C和D为十六进制和八进制的转义字符。

因此,正确答案为[B]。

4、以下选项中不能作为C语言合法常量的是()。

(全国计算机二级考试题2008年9月)

[A]‘cd’  [B]0.1e+6  [C]“a” [D]‘\011’

解析:

本题考查的是字符常量、实型常量、字符串常量。

字符常量是一对单引号括起来的一个字符,选项A中单引号内有两个字符。

选项B为实型常量,选项C为字符串常量,选项D为转义字符常量。

因此错误,正确答案为[B]。

5、C语言中的简单数据类型包括()。

[A]整型、实型、逻辑型[B]整型、实型、字符型

[C]整型、字符型、逻辑型[D]整型、实型、逻辑型、字符型

解析:

本题考查的是数据类型问题。

C语言中简单数据类型为整型、实型、字符型,C语言根本没有逻辑型。

因此,正确答案为[B]。

6、C源程序中不能表示的数制是()。

(全国计算机二级考试题2008年9月)

[A]八进制[B]十进制[C]十六进制[D]二进制

解析:

本题考查的是整型常量的三种表示形式。

整型常量分为十进制整型常量、八进制整型常量、十六进制整型常量,唯独没有二进制整型常量,所以源程序中不能表示二进制,因此,正确答案为[D]。

7、以下关于long、int和short类型数据占用内存大小的叙述中正确的是(VisualC++环境)()。

(全国计算机二级考试题2007年9月)

[A]均占4个字节

[B]根据数据的大小来决定所占内存的字节数

[C]由用户自己定义

[D]由C语言编译系统决定

解析:

本题考查的是不同类型数据占用内存大小的问题。

C语言中不同类型的数据占用内存空间不同,而且不同的编译系统也不同,在VisualC++环境下这三种数据类型均占4个字节,因此,正确答案为[A]。

8、以下符合C语言语法的赋值表达式是()。

[A]d=9+e+f=d+9[B]d=9+e,f=d+9

[C]d=9+e+=d+9[D]d=9+e++=d+9

解析:

本题考查的是赋值表达式问题。

C语言只允许向变量赋值,不允许向表达式赋值,因此A、C和D选项不合法,正确答案为[B]。

9、在C语言中,要求运算量必须是整型的运算符是()。

[A]%[B]/[C]<[D]!

解析:

本题考查的是运算符的应用。

%为取余运算符,对左右两侧运算量进行取余运算,要求左右两侧运算量必须为整形数据。

/为除法运算符,若左右两侧运算量都为整数,则进行取整运算,否则为除法运算。

<为关系运算符,!

为逻辑运算符,左右两侧运算量均不要求为整数。

因此,正确答案为[A]。

10、运算符有优先级,在C语言中关于运算符优先级的正确叙述是()。

[A]逻辑运算符高于算术运算符,算术运算符高于关系运算符

[B]算术运算符高于关系运算符,关系运算符高于逻辑运算符

[C]算术运算符高于逻辑运算符,逻辑运算符高于算术运算符

[D]关系运算符高于逻辑运算符,逻辑运算符高于算术运算符

解析:

本题考查的是运算符的优先级问题。

C语言中运算符的优先级顺序由高到低为算术运算符、关系运算符、逻辑运算符,因此,正确答案为[B]。

11、设有定义:

intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。

(全国计算机二级考试题2007年4月)

[A]k++[B]k+=1[C]++k[D]k+1

解析:

本题考查的是运算符表达式问题。

选项A中k++表达式的值为k的值,即0,运算完后k的值加1,选项B中k+=1表示k=k+1结果为1,而选项C中++k表示先把k的值加1,然后k的值为整个表达式的值,即结果为1,选项D中k+1结果为1。

因此,正确答案为[A]。

12、有以下程序段

charch;intk;

ch='a';k=12;

printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);

已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是()。

(全国计算机二级考试题2008年4月)

[A]因变量类型与格式描述符的类型不匹配输出无定值

[B]输出项与格式描述符个数不符,输出为零值或不定值

[C]a,97,12k=12

[D]a,97,k=12

解析:

本题考查的是printf函数的应用。

printf函数根据前面的格式控制符控制后面输出项的输出,一般要求前后个数一致,类型一致,且位置一一对应,若不一致则以格式控制为主。

对于字符型数据可以转换成数值型数据,依据是转换成相应的ASCII码。

因此,正确答案为[D]。

13、若有表达式(w)?

(--x):

(++y),则其中与w等价的表达式是()。

(全国计算机二级考试题2008年9月)

[A]w==1 [B]w==0  [C]w!

=1[D]w!

=0

解析:

本题考查的是逻辑表达式问题。

题中若w为任何非0数,则表达式w表示真。

若w为0,则表达式w表示假。

因此,正确答案为[D]。

二、填空题

1、若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值:

a=7

b=9

请完成输入语句:

printf(“_______”,a,b);(全国计算机二级考试题2008年9月)

解析:

本题考查的是数据的输出格式,printf函数格式为printf(格式控制,输出项表列);’\n’为回车换行,因此,正确答案为a=%d\nb=%d\n

2、已知:

charw;intx;intx;floaty;doublez;则表达式w*x+z-y的结果类型是_______。

解析:

本题考查的是不同类型的数据之间的混合运算问题。

char类型必须转换成int类型,float类型必须转换成double类型,int类型和double类型运算时会转换成double类型,因此,正确答案为double类型。

3、设变量a和b已正确定义并赋初值。

请写出与a-=a+b等价的赋值表达式_______。

(全国计算机二级考试题2008年9月)

解析:

本题考查的是复合赋值表达式的运算,原表达式等价于:

a=a-(a+b),即a=-b。

因此,正确答案为a=-b。

4、已知:

intx=6;则执行x+=x-=x*x;语句后,x的值为_______。

解析:

本题考查的是复合赋值运算符问题。

复合赋值运算符的优先级相对较低,结合性为右结合性,此式等价于x=x+(x=(x-(x*x))),因此,正确答案为-60。

5、已知:

inti=6,j;则执行语句j=(++i)+(i++);后的j值是_______。

解析:

本题考查的是自增运算符问题。

(++i)表示先使i的值增1,i的值为表达式的值(7),(i++)表示用i的值作为表达式的值(7),然后i的值增1,因此,正确答案为14。

6、以下程序的功能是:

输出a、b、c三个变量中的最小值。

请填空。

(全国计算机二级考试题2007年9月)

#include“stdio.h”

voidmain()

{

inta,b,c,t1,t2;  

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

t1=a

 _______;    

t2=c

_______;      

 printf("%d\n",t2);   

}

解析:

本题考查的是条件运算符问题。

条件运算符的功能是:

若表达式1成立,则结果为表达式2的值,否则结果为表达式3的值。

本题要输出三个变量中的最小值,先通过一个条件表达式求出两个数中的最小数,赋值给变量t1,再通过一个条件表达式求出t1和第三个数中的最小数,赋值给变量t2。

因此,正确答案为a:

b和c:

t1。

三、读程序写结果

1、有以下程序

#include"stdio.h"

voidmain()

{

intx=10,y=3;

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

}

解析:

/为除法运算符,若左右两侧运算量都为整数,则进行取整运算,否则为除法运算,%为取余运算符,对左右两侧运算量进行取余运算,所以运行结果为3,1。

2、有以下程序

#include"stdio.h"

voidmain()

{

intx=10,y=10;

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

}

解析:

++为自增运算符,--为自减运算符。

若为后置(运算符在变量之后),则表示用变量的原值进行表达式的计算,再作自增(减)运算,若为前置(运算符在变量之前),则表示先做变量的自增(减)运算,然后再进行表达式的计算,若在表达式中同一变量即有前置又有后置,则仍按上述原则进行计算。

所以本题运行结果为10,9。

3、有以下程序

#include"stdio.h"

voidmain()

{

inta=2;

a%=4-1;

printf("%d,",a);

a+=a*=a-=a*=3;

printf("%d",a);

}

解析:

%=为复合赋值运算符,其优先级低于算术运算符,所以a%=4-1等价于a=a%(4-1),即a=2%(4-1),结果为2。

a+=a*=a-=a*=3尽管表面上很复杂,计算时注意变量的值被不停的更新,就很容易得出正确结果,复合赋值运算符的结合性为右结合性,计算时从右往左算,先算a*=3,a的值为6,再算a-=6,a的值为0,后面的就不用计算了,结果为0,所以本题运行结果为2,0。

四、编程题

1、输入长方形的长和宽,求长方形的面积和周长并输出,用浮点型数据处理。

解析:

本题可以用scanf函数输入长方形的长和宽,通过数学运算计算出长方形的面积和周长,然后用printf函数输出结果。

#include"stdio.h"

voidmain()

{

doublelength,width,area,perimeter;/*定义变量*/

printf("enterlengthandwidth");/*提示用户输入长和宽*/

scanf("%lf%lf",&length,&width);/*接收用户输入的长和宽*/

area=length*width;/*计算面积*/

perimeter=2*(length+width);/*计算周长*/

printf("areaofrectangleis%lf\n",area);/*输出面积*/

printf("perimeterofrectangleis%lf\n",perimeter); /*输出周长*/

}

2、编写程序,实现从键盘输入学生的三门成绩,计算并输出其总成绩sum,平均成绩ave和总成绩除3的余数rem。

解析:

用scanf函数输入三门成绩,计算总成绩sum,平均成绩ave和总成绩除3的余数rem,注意取余运算符要求左右两侧运算量均为整数,因此先用强制类型转换运算符将sum转换成整数,然后用printf函数输出结果。

#include"stdio.h"

voidmain()

{

doublex,y,z,sum,ave,rem;/*定义变量*/

printf("enterthreedouble");  /*提示用户输入三门浮点数成绩*/

scanf("%lf%lf%lf",&x,&y,&z);/*接收用户输入的三门课程的成绩*/

sum=x+y+z;/*计算总成绩*/

ave=sum/3;/*计算平均成绩*/

rem=(int)sum%3;/*计算余数,%运算符要求左右两侧运算量均为整数*/

printf("sum=%lf,ave==%lf,rem=%d",sum,ave,rem);/*输出总成绩,平均成绩,余数*/

}

1.3顺序结构程序设计

一、选择题

1、已知:

intx=10,y=3,z;则下列语句的输出结果是()

printf(“z=%d”,z=(x%y,x/y));

[A]z=1[B]z=0[C]z=4[D]z=3

解析:

本题考查的是数据的输出问题。

对于printf函数来说%d格式为输出十进制整型数据,计算得知表达式x%y,x/y的值为3。

因此,正确答案为[D]。

2、以下程序的运行结果是(),其中%u表示按无符号整数输出。

(全国计算机二级考试题2007年4月)

#include"stdio.h"

voidmain()

{unsignedintx=0xFFFF;/*x的初值为十六进制数*/

printf("%u\n",x);

}  

[A]-1[B]65535[C]32767[D]0xFFFF

解析:

本题考查的是整型数据的输出问题。

0xFFFF表示十六进制整数,而且是最大的整数,以u格式输出表示输出无符号整数,无符号整数的范围是0到65535。

因此,正确答案为[B]。

3、以下四个程序中,完全正确的是(全国计算机二级考试题2006年4月)

 [A]#include “stdio.h”           [B] #include “stdio.h”

   voidmain();                           voidmain()

   {/*programming*/                  {/*/programming/*/

    printf("programming!

\n");}        printf("programming!

\n");}

 [C]#include“stdio.h”            [D]include “stdio.h”

   voidmain()                            voidmain()

   {/*/*progmmmfug*/*/               {/*programming*/

   printf("programming!

\n");}        printf("programming!

\n");}

解析:

本题考查的是C程序结构及注释问题。

选项A中主函数后不应有分号,选项C中/*遇到第一个*/注释语句就结束了,后面的*/非法,选项D中include前少#。

因此,正确答案为[B]。

4、执行语句:

printf(“Theprogram\’snameisc:

\\tools\book.txt”);后的输出是。

[A]Theprogram’snameisc:

toolsbook.txt

[B]Theprogram’snameisc:

\toolsbook.txt

[C]Theprogram’snameisc:

\\toolsbook.txt

[D]Theprogram’snameisc:

\toolook.txt

解析:

本题考查的是数据输出函数及转义字符问题。

C语言库函数中printf函数双引号中除%和转义字符外其它字符原样输出,本题包含多个转义字符,包括\’、\\、\b,分别表示’、\、退格,因此,正确答案为[D]。

5、若变量已正确定义为int型,要通过语句scanf(“%d,%d,%d”,&a,&b,&c);给a赋值1,给b赋值2,给c赋值3,以下输入形式中错误的是()。

(ㄩ代表一个空格符)(全国计算机二级考试题2008年9月)

[A]ㄩㄩㄩ1,2,3<回车>     [B]ㄩ2ㄩ3<回车>

[C]1,ㄩㄩㄩ2,ㄩㄩㄩ3<回车>[D]1,2,3<回车>

解析:

本题考查的是scanf输入函数的格式说明问题。

输入函数的输入控制(双引号之间的内容),除%外,如果含有其它字符,则在输入数据时一定要一一对应输入这些字符,本题双引号之间含有逗号,因此输入数据之间必须输入逗号。

此外,还要注意逗号不是分隔符,如果双引号之间没有逗号,输入数据时就不能用逗号。

因此,正确答案为[B]。

6、若在定义语句:

inta,b,c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。

[A]scanf("%d",&a,&b,&c);     [B]scanf("%d%d%d",&a,&b,&c);  

[C]scanf("%f",&a);          [D]scanf("%c%d",&a,&b);

解析:

本题考查的是scanf输入函数的格式说明问题。

输入函数的输入控制(双引号之间的内容)与后面的输入项表列要类型一致、个数一致、位置一一对应,因此,正确答案为[B]。

7、以下说法正确的是()。

[A]输入项可以为一个实型常量,如scanf(“%f”,3.5);

[B]只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”);

[C]当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);

[D]当输入数据时,必须指明变量的地址,如scanf(“%f”,&f);

解析:

本题考查的是实型数据的输入问题。

C语言规定scanf函数中必须有输入项,且输入项必须是变量,实型数据在输入时不必规定精度。

因此,正确答案为[D]。

8、已知:

inta,b;用语句scanf(“%d%d”,&a,&b”);输入a、b的值时,不能作为输入数据分隔符是。

[A],[B]空格[C]回车[D]tab

解析:

本题考查的是数据输入函数scanf的使用问题

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

当前位置:首页 > 农林牧渔 > 林学

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

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