习题解答文档格式.docx
- 文档编号:20541397
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:125
- 大小:99.53KB
习题解答文档格式.docx
《习题解答文档格式.docx》由会员分享,可在线阅读,更多相关《习题解答文档格式.docx(125页珍藏版)》请在冰豆网上搜索。
#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的使用问题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 习题 解答
![提示](https://static.bdocx.com/images/bang_tan.gif)