习题解答文档格式.docx

上传人:b****5 文档编号:20541397 上传时间: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

#include"

stdio.h"

voidmain()

{

intx,y,z;

x=100;

y=20;

z=x+y;

printf("

sum=%d"

z);

}

解:

运行结果为sum=120

2、

#include”stdio.h”

scanf(“%d%d”,&

x,&

y);

z=x*y;

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

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

三、编程题

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

**********

hello!

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

#include<

stdio.h>

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

voidmain()/*主函数*/

{/*主函数起始*/

**********\n"

);

/*输出函数*/

\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("

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。

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

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非法。

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

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

[A]'

C'

[B]"

C"

[C]'

\xCC0'

[D]'

\072'

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

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

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

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

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

[A]‘cd’ 

[B]0.1e+6 

 

[C]“a” 

[D]‘\011’

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[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]!

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

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

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

<

为关系运算符,!

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

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

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

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

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

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

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

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

11、设有定义:

intk=0;

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

[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。

12、有以下程序段

charch;

intk;

ch='

a'

;

k=12;

%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码。

13、若有表达式(w)?

(--x):

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

[A]w==1 

[B]w==0 

[C]w!

=1[D]w!

=0

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

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

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

二、填空题

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;

floaty;

doublez;

则表达式w*x+z-y的结果类型是_______。

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

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

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

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

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

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三个变量中的最小值。

请填空。

#include“stdio.h”

voidmain()

inta,b,c,t1,t2;

scanf("

%d%d%d"

&

a,&

b,&

c);

t1=a<

b?

_______;

t2=c<

t1?

_______;

%d\n"

t2);

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

条件运算符的功能是:

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

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

因此,正确答案为a:

b和c:

t1。

三、读程序写结果

1、有以下程序

#include"

{

intx=10,y=3;

%d,%d\n"

x/y,x%y);

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

2、有以下程序

intx=10,y=10;

%d,%d\n"

x--,--y);

}

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

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

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

3、有以下程序

inta=2;

a%=4-1;

%d,"

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

%=为复合赋值运算符,其优先级低于算术运算符,所以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函数输出结果。

doublelength,width,area,perimeter;

/*定义变量*/

enterlengthandwidth"

/*提示用户输入长和宽*/

%lf%lf"

length,&

width);

/*接收用户输入的长和宽*/

area=length*width;

/*计算面积*/

perimeter=2*(length+width);

/*计算周长*/

areaofrectangleis%lf\n"

area);

/*输出面积*/

perimeterofrectangleis%lf\n"

perimeter);

 /*输出周长*/

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

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

doublex,y,z,sum,ave,rem;

enterthreedouble"

  /*提示用户输入三门浮点数成绩*/

%lf%lf%lf"

y,&

z);

/*接收用户输入的三门课程的成绩*/

sum=x+y+z;

/*计算总成绩*/

ave=sum/3;

/*计算平均成绩*/

rem=(int)sum%3;

/*计算余数,%运算符要求左右两侧运算量均为整数*/

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。

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

{unsignedintx=0xFFFF;

/*x的初值为十六进制数*/

%u\n"

x);

}  

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

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

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

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

[A]#include 

“stdio.h” 

[B] 

#include 

“stdio.h”

voidmain();

voidmain()

{/*programming*/ 

{/*/programming/*/

programming!

[C]#include“stdio.h” 

[D]include 

voidmain() 

{/*/*progmmmfug*/*/ 

{/*programming*/

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

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

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赋值1,给b赋值2,给c赋值3,以下输入形式中错误的是()。

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

[A]ㄩㄩㄩ1,2,3<

回车>

[B]ㄩ2ㄩ3<

[C]1,ㄩㄩㄩ2,ㄩㄩㄩ3<

[D]1,2,3<

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

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

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

6、若在定义语句:

inta,b,c;

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

[A]scanf("

&

[B]scanf("

%d%d%d"

[C]scanf("

%f"

a);

[D]scanf("

%c%d"

b);

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

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

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

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

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

f);

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

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

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

8、已知:

inta,b;

用语句scanf(“%d%d”,&

a,&

b”);

输入a、b的值时,不能作为输入数据分隔符是。

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

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

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

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

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

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