c语言习题14章.docx
- 文档编号:30309719
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:17
- 大小:19.82KB
c语言习题14章.docx
《c语言习题14章.docx》由会员分享,可在线阅读,更多相关《c语言习题14章.docx(17页珍藏版)》请在冰豆网上搜索。
c语言习题14章
习题1
1.C语言的主要特点是什么?
答:
◆C语言是具有低级语言功能的高级语言;
◆C语言简洁、紧凑,使用方便、灵活;
◆运算符丰富,表达能力强;
◆数据结构丰富,便于数据的描述与存储;
◆C语言是结构化、模块化的编程语言;
◆编译预处理;
◆允许直接访问物理地址,对硬件进行操作;
◆可移植性好;
◆书写格式自由;
◆C程序的执行总是从main函数开始,并在main函数中结束;
◆main函数可以调用其他任何函数;
◆C语言本身没有输入输出语句。
2.请参照本章例题,编写一个c程序,输出以下信息:
Thisismyfirstprogram.
答#include“stdio.h”
main()
{
printf(“Thisismyfirstprogram./n”);
renturn0;
}
3.C语言源程序文件、目标文件和可执行文件的扩展名是什么?
答;源程序文件.c
目标文件.obj
可执行文件.exe
4.用TurboC2.0或VisualC++6.0调试本章的三个程序。
习题2
一、选择题
1.下列变量定义中合法的事(C)
A.int_a=.e1;B.doubleb=1+1e1.1;
C.longx=2.5;D.float2_and=1-e-3;
2.运算符有优先级,在C语言中关于运算符优先级的正确叙述是(B)
A.逻辑运算符高于算术运算符,算术运算符高于关系运算符;
B.算术运算符高于关系运算符,关系运算符高于逻辑运算符;
C.算术运算符高于逻辑运算符,逻辑运算符高于关系运算符;
D.关系运算符高于逻辑运算符,逻辑运算符高于算术运算符。
3.C语言并不是非常严格的算法语言,在以下关于C语言不严格的叙述中,错误的是(D)。
A.任何不同数据类型都不可以同用
B.有些不同类型的变量可以在一个表达式中运算
C.在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D.同一个运算符在不用的场合可以有不同的含义
4.以下选项中属于C语言的数据类型是(C)。
A.复数型B.逻辑型C.双精度型D.集合型
5.设有说明语句:
charc=’\101’;,则变量c(A)
A.包含1个字符B.包含2个字符C.包含3个字符D.说明不合法
6.下列常数中不能作为c语言常量的是(D)。
A.OxA5B.2.5e-2C.3e2D.0582
7.在C语言中,数字091是一个(D)
A.八进制数B.十六进制数C.十进制数D.非法数
8.下列可以正确表示字符型常量的是(B)
A.”a”B.’\t’C.”\n”D.\168
9.已知inti;floatf;,正确的语句是(D)
A.int(f)%2.0;B.int(f)%i;
C.int(f%i);D(int)f%i;
10.设有以下变量定义,并已赋确定的值:
charc;inti;floatf;doubled;
则表达式c+i+f/d值的数据类型为(D)。
A.charB.intC.floatD.double
11.已知inti,a;,执行语句i=(a=6,a*5),a+6;后,变量i的值是(C)
A.6B.12C.30D.36
12.下列程序的输出结果是(D)
#include<stdio.h>
voidmain()
{
floatd=2.2;intx,y;
x=6.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A.4B.4.4C.2D.0
二、阅读程序题
1.下面程序的输出是(10,10,9,10).
#include<stdio.h>
voidmain()
{
inta=10,b=10;
printf("%d,%d,%d,%d\n",a--,a,--b,b);
}
2.下面程序的输出是(2,12,21,21,110,6).
#include<stdio.h>
voidmain()
{
inti=1,j,k;
j=i++;printf("j=%d,i=%d\n",j,i);
k=++i;printf("k=%d,i=%d\n",k,i);
j=i--;printf("j=%d,i=%d\n",j,i);
k=--i;printf("k=%d,i=%d\n",k,i);
i=j=5;
printf("i+j=%d,++j=%d\n",i+j,++j);
}
结果:
j=2,i=1
k=2,i=2
j=1,i=2
k=1,i=1
i+j=10,++j=6
习题3
1.若x,y,z都定义是int类型且初值为0,则以下不正确的赋值语句是(D)
A.x=y=z+10;B.x+=y+2;C.z++;D.x+y+z;
2.下面不是C语言语句的是(C)
A.inti;B.;C.a=1,b=5D.{;}
3.以下合法的c语言赋值语句是(D)
A.a=b=58B.k=a+b
C.a=58,b=58D.--i
4.运行下面的程序;
#include
Voidmain()
{
Inta=5,b=3;
printf(“%d\n”,a=a/b);
}
则输出结果是(B)
A.5B.1C.3D.2
5若变量以说明为int类型,要给a、b、c输入数据,以下正确的输入语句是(A)
Ascanf(“%d%d%d”,&a,&b,&c);
Bscanf(“%d%d%d,”a,b,c);
Cscanf(“%D%D%D”,&a;&b,&c);
Dscanf(“%d%d%d”,&a,&b,&c);
6已知a、b、c为float类型,执行语句:
scanf(“%f%f%f”,&a,&b,&c);使得a为10,b为20,c为30,则以下不正确的输入形式是(B)
A10
B10.0,20.0,30.020.030.0
C10.030
D1020
7.若变量已定义,现要将a和b中的数据进行交换,下面不正确的是(C)。
A.a=a+b,b=b-a,a=a-b;
B.t=a,a=b,b=t;
C.a=t;t=b;b=a;
D.t=b;b=a;a=t;
8.执行下面的程序:
#include
Voidmain()
{
inta=1,b=2,c=3;
c=(a+=a+2),(a=b,b+3);
printf(“%d,%d,%d\n”,a,b,c);
}
则输出结果是(A)
A.2,2,4B.4,2,3C.4,2,5D.5,5,3
9.执行下面的程序:
#include
voidmain()
{
inta;
floatb,c;
scanf(“%2d%3f%4f”,&a,&b,&c);
printf(“\na=%d,b=%.1f,c=%.1\n”,a,b,c);
}
运行时,从键盘上输入,则输出结果是(C)
A.a=12,b=345,c=6543
B.a=12,b=123,c=1234
C.a=12,b=345.0,c=6543.0
D.a=12.0,b=345.0,c=6543.0
10.执行下面的程序:
#include
voidmain()
{
inta=3,b=7;
printf(“a=%%d,b=%%d\n”,a,b);
}
则输出结果是(B)
A.a=%3,b=%7B.a=%d,b=%d
C.a=%%d,b=%%dD.a=3,b=7
二、阅读程序,写出程序运行结果
1.#include
voidmain()
{
floatd,f;
longk;inti;
i=f=k=d=20/3;
printf(“%3d%3ld%5.2f%5.2f%5.2f\n”,i,k,f,d);
}
答案:
666.006.00
2.#include
voidmain()
{
intx=0177;
floaty=123.4567;
printf(“x=%2d,x=%6d,x=%o,x=%x\n”,x,x,x,x);
printf(“y=%8.4f,y=%8.2f,y=%.5\n”,y,y,y);
}
答案:
x=127,x=127,x=177
y=123.4567,y=123.46,y=123.45670
3
#include
voidmain()
{
Inta=1,b=2;
a+=b;b=a-b;a-=b;
Printf(“%d,%d\n”,a,b);
}
答案:
2,1
4
#include
voidmain()
{
Inta=1234;
Printf(“%2d\n”,a);
}
答案:
1234
5
#include
voidmain()
{
Intx=3,y=5;
Printf(“%d,%d\n”,(x--,--y),x++);
}
答案:
4,3
6
#include
voidmain()
{
Inta=3;
Printf(“%d,%d\n”,a,(a-=a*a));
}
答案:
-6,-6
三,程序设计题
1,编程求方程2x^2-3x-6=0的根。
#include
#include
main()
{
floata,b,c,d,x1,x2;
a=2,b=-3,c=-6;
d=b*b-4a*c;
x1=(-b+sqrt(d))/(2*a);
x2=(-b+sqrt(d))/(2*a);
printf(“x1=%.2f,x2=%.2f\n”,x1,x2);
}
2,已知正方体的棱长为3.2,求正方体的体积和表面积(保留2位小数)。
#include
main()
{
Floata,v,s;
Scanf(“%f”,&a);
V=a*a*a;
S=6*a*a;
printf(“s=%.2f,v=%.2f\n”,s,v);
}
3、输入三个整数a、b、c、,编程交换它们的值,即把a中的值给b,把b中的值给c,把c中的值给a。
4、编程将任意输入的小写字母转化成大写字母并输出。
习题4
一、选择题
1、若x为int类型,则下面与逻辑表达式!
x等价的C语言关系表达式是(C)。
A.x==1B.x!
=1C.x==0D.x!
=0
2、能正确表示逻辑关系a≥5或a≤-1的C语言表达式是(D)。
A.a>=5ora<=-1
B.a>=5|a<=-1
C.a>=5&&a<=-1
D.a>=5||a<=-1
3、if语句的控制条件是(D)。
A.只能用关系表达式
B.只能用关系表达式或逻辑表达式
C.只能用逻辑表达式
D.可以用任何表达式
4、设intx=2,y=1;,则表达式(!
x||y--)的值是(B)。
A.0B.1C.2D.-1
5.与y=(x>0?
1:
x<0?
-1:
0);功能相同的if语句是(A)。
A.if(x>0)y=0;B.if(x)
elseif(x<0)y=-1;if(x>0)y=1;
elsey=0;elseif(x<0)y=-1;
elsey=0;
C.y=-1;D.y=0;
if(x)if(x>=0)
if(x>0)y=1;if(x>0)y=1;
elseif(x==0)y=0;elsey=-1;
elsey=-1;
6.假定w、x、y、z、m均为整型变量,且w=1,x=2,y=3,z=4,则执行语句m=(w w: x;m=(m m: y;m=(m m: z;后,m的值是(D)。 A.4B.3C.2D.1 7.有如下程序段: inta=14,b=15,x; charc=’A’; x=(a&&b)&&(c<’B’); 执行该程序段后,x的值为(D) A.tureB.falseC.0D.1 8.设x、y、t均为int型变量,则执行语句x=y=2;t=++x||++y;后,y的值为(B)。 A.不确定B.2C.3D.1 9.若有定义: floatw;inta,b;,则合法的switch语句是(c) Aswitch(w) {case1.0: printf("*\n"); case2.0: printf("**\n"); } B: switch(a); {case1: printf("*\n"); case2: printf("**\n"); } C: switch(b) {case1: printf("*\n"); default: printf("\n") case1+2: printf("**\n"); } D: switch(b); {case1: printf("*\n") case2: printf("**\n") default: printf("\n") } 10.有如下程序: #include Voidmain() {intx=1,a=0,b=0; switch(x) {case0: b++;case1: a++;case2: a++;b++; } Printf(“a=%d,b=%d\n”,a,b); ) 该程序的输出结果是(A) A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2 11.有如下程序: #include main() {inta=3,b=-1,c=1; if(a if(b<0)c=0; else++c; printf("%d\n",c); } 该程序的输出结果是(B) A.0B.1C.2D.3 12.若变量c为char类型,能正确判断出c为大写字母的表达式是(D) A.‘A’<=c<=‘Z’ B.(c>=‘A’)‖(c<=‘Z’) C.(‘A’<=c)and(‘Z’>=c) D.(c>=‘A’)&&(c<=‘Z’) 13.运行下列程序: #include voidmain() { intn=‘c’; Switch(n++) { case‘a’: case‘A’: case‘b’: case‘B’: printf(“good”); Break; case‘c’: case‘C’: printf(“pass”); case‘d’: case‘D’: printf(“warn”); Default: printf(“error”);break; } } 则输出结果是(D) A.goodB.passC.warnD.passwarn 14设a、b、c、d、m、n均为整型变量,且a=5,b=7,c=3,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为(C)。 A.0B.1C.2D.3 15.以下程序的输出结果是(A)。 #include voidmain() { inta,b; for(a=1,b=1: a<=100;a++) { if(b>=10)break; if(b%3==1) {b+=3;continue;} } printf(“%d\n”,a); } A.101B.3C.4D.5 16.运行下列程序 #include Voidmain() {inta=0,b=1,c=2,d; d=! a&&! (--b)||! c++; printf(“%d\n”,c); } 则输出结果是(B) A.3B.2C.1D.0 17.运行下列程序 #include Voidmain() {intx; Scanf(“%d”,&x); f(x>60)printf(“%d”,x); if(x>40)printf(“%d”,x); if(x>30)printf(“%d,x); } 若从键盘输入58,则输出结果是(B) A.B.5858C.585D.58 18.运行下列程序 #include Voidmain() {inta=16,b=21,m=0; Switch(a%3) {case0: m++;break; Case1: m++; Switch(b%2) {default: m++; Case0: m++;break; } } Printf(“%d\n”,m); } 则输出结果是(C) A.1B.2C.3D.4 二、阅读程序题 1、有如下程序: #include Voidmain() { Intx=1,a=0,b=0; switch(x) { case0: b++; case1: a++; case2: a++;b++; } Printf(“a=%d,b=%d\n”,a,b); } 该程序的输出结果是a=2,b=1 2、有如下程序: #include Voidmain() { Inta=3,b=-1,c=1; If(a If(b<0)c=0; elsec++; printf(“c=%d\n”,c); } 该程序的输出结果是c=1 三、程序设计题 1、设计一个简单的计算机程序,用户输入运算数和四则运算符(+、—、*、/),输入计算的结果。 2、根据输入X的值求Y的值,当X大于0时,y=(x+1)/(x-2);当x等于0或2时,y=0;当x小于0时,y=(x-1)/(x-2)。 3、编写程序,从键盘输入学生成绩,输入对应的等级(100分为A,90~99分为B,80~89分为C,70~79分为D,60~69分为E,小于60分为F) 4、编写程序,输入一个不多于4位的正整数,判断它是几位数。 如输入168,则输出3。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题 14