c语言教材答案.docx
《c语言教材答案.docx》由会员分享,可在线阅读,更多相关《c语言教材答案.docx(22页珍藏版)》请在冰豆网上搜索。
c语言教材答案
c语言教材答案
【篇一:
c语言基础练习题及答案】
t>第一章c语言基础知识
1.1选择题
1.以下不是c语言的特点的是(d)。
a、语言简洁紧凑
b、能够编制出功能复杂的程序
c、c语言可以直接对硬件操作
d、c语言移植性好
2.下列字符序列中,不可用作c语言标识符的是(b)。
a.abc123b.no.1c._123_d._ok
3.正确的c语言标识符是(a)。
a._buy_2b.2_buyc.?
_buyd.buy?
4.请选出可用作c语言用户标识符的一组标识符(c)。
a.voidb.a3_b3c.ford.2a
define_123-abcdo
wordifcasesizeof
5.下列符号中,不属于转义字符的是(b)。
a.\\b.\0xaac.\td.\0
6.不属于c语言关键字的是(d)。
a.intb.breakc.whiled.character
7.是c语言提供的合法关键字的是(b)。
a.floatb.signedc.integerd.char
8.以下不能定义为用户标示符的是()。
a.scanfb.voidc._3com_d.int
9.一个c程序是由()。
a.一个主程序和若干子程序组成
b.一个或多个函数组成
c.若干过程组成
d.若干子程序组成
10.c语言程序的基本单位是()。
a.程序行b.语句c.函数d.字符
11.下列说法中,错误的是()。
.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号
b.每个函数都有一个函数头和一个函数体,主函数也不例外
c.主函数只能调用用户函数或系统函数,用户函数可以相互调用
d.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数
12.以下说法中正确的是()。
a.c语言程序总是从第一个定义的函数开始执行
b.在c语言程序中,要调用的函数必须在main()函数中定义
c.c语言程序总是从main()函数开始执行
d.c语言程序中的main()函数必须放在程序的开始部分
13.c编译程序是()。
a.c程序的机器语言版本
b.一组机器语言指令
c.将c源程序编译成目标程序
d.由制造厂家提供的一套应用软件
14.以下选项中,合法的用户标识符是()。
a.longb._2abcc.3dmaxd.a.dat
15.以下选项中,合法的实型常数是()。
a.5e2.0b.e-3c.2e0d.1.3e
16.已知大写字母a的ascii码值是65,小写字母a的ascii码是97,则用八进制表示的
字符常量’\101’是()。
a.字符ab.字符ac.字符cd.非法的常量
17.以下选项中,合法转义字符的选项是()。
a.’\\’b.’\018’c.’xab’d.’\abc’
18.以下选项中,正确的字符常量是()。
a.”f”b.’\\’’c.’w’d.’’
19.以下选项中可作为c语言合法整数的是
a.10110bb.0386c.0xffad.x2a2
20.下列变量定义中合法的是
a.short_a=1-.le-1;b.doubleb=1+5e2.5;
c.longdo=0xfdal;d.float2_and=1-e-3;
21.与数学式子对应的c语言表达式是()。
2x?
1
a.9*x^n/(2*x-1)b.9*x**n/(2*x-1)
c.9*pow(x,n)*(1/(2*x-1))d.9*pow(n,x)/(2*x-1)
3ab22.若有代数式,则不正确的c语言表达式是()。
cd
a.a/c/d*b*3b.3*a*b/c/d
c.3*a*b/c*dd.a*b/d/c*3
23.已知各变量的类型说明如下:
intm=8,n,a,b;
unsignedlongw=10;
doublex=3.14,y=0.12;
则以下符合c语言语法的表达式是()。
a.a+=a-=(b=2)*(a=8)b.n=n*3=18
c.x%3d.y=float(m)
24.以下符合c语言语法的赋值表达式是()。
a.a=9+b+c=d+9b.a=(9+b,c=d+9)
c.a=9+b,b++,c+9d.a=9+b++=c+99xn
25.已知字母a的ascii码为十进制数65,且s为字符型,则执行语句s=’a’+’6’-’3’;
后,s中的值为()。
a.’d’b.68c.不确定的值d.’c’
26.在c语言中,要求运算数必须是整型的运算符是()。
a./b.++c.*=d.%
27.若有说明语句:
chars=’\72’;则变量s()。
a.包含一个字符
b.包含两个字符
c.包含三个字符
d.说明不合法,s的值不确定
28.若有定义:
intm=7;floatx=2.5,y=4.7;则表达式x+m%3*(int)(x+y)%2/4的值是()。
a.2.500000b.2.750000c.3.500000d.0.000000
29.在c语言中,char型数据在内存中的存储形式是()。
a.补码b.反码c.原码d.ascii码
30.设变量x为float类型,m为int类型,则以下能实现将x中的数值保留小数点后两位,
第三位进行四舍五入运算的表达式是()。
a.x=(x*100+0.5)/100.0
b.m=x*100+0.5,x=m/100.0
c.x=x*100+0.5/100.0
d.x=(x/100+0.5)*100.0
31.表达式13/3*sqrt(16.0)/8的数据类型是()。
a.intb.floatc.doubled.不确定
32.设以下变量均为int类型,则值不等于7的表达式是()。
a.(m=n=6,m+n,m+1)
b.(m=n=6,m+n,n+1)
c.(m=6,m+1,n=6,m+n)
d.(m=6,m+1,n=m,n+1)
33.假设所有变量均为整型,则表达式(x=2,y=5,y++,x+y)的值是()。
a.7b.8c.6d.2
34.已知s是字符型变量,下面不正确的赋值语句是()。
a.s=’\012’;b.s=’u+v’;
c.s=’1’+’2’;d.s=1+2;
35.已知s是字符型变量,下面正确的赋值语句是()。
a.s=’abc’;b.s=’\08’;
c.s=’\xde’;d.s=”\”;
36.若有以下定义,则正确的赋值语句是()。
intx,y;
floatz;
a.x=1,y=2,b.x=y=100
c.x++;d.x=int(z);
37.设x、y均为float型变量,则不正确的赋值语句是()。
a.++x;b.x*=y-2;
c.y=(x%3)/10;d.x=y=0;
38.下列语句中符合c语言的赋值语句是()。
a.a=7+b+c=a+7;b.a=7+b++=a+7;
c.a=7+b,b++,a+7d.a=7+b,c=a+7;
39.putchar函数可以向终端输出一个()。
a.整型变量表达式值。
b.字符串
c.实型变量值。
d.字符或字符型变量值。
40.以下程序段的输出结果是()。
inta=12345;printf(”%2d\n”,a);
a.12b.34c.12345d.提示出错、无结果
41.若x和y均定义为int型,z定义为double型,以下不合法的scanf()函数调用语句为
()。
a.scanf(”%d%lx,%le”,x,y,z);
b.scanf(”%2d*%d%lf”,x,y,z);
c.scanf(”%x%*d%o”,x,y);
d。
scanf(”%x%o%6.2f”,x,y,z);
42.有如下程序段:
intx1,x2;
chary1,y2;
scanf(”%d%c%d%c”,x1,y1,x2,y2);
若要求x1、x2、y1、y2的值分别为10、20、a、b,正确的数据输入是()。
(注:
└┘代表空格)
a.10a└┘20bb.10└┘a20b
c.10└┘a└┘20└┘bd.10a20└┘b
43.若变量已正确说明为float类型,要通过语句scanf(”%f%f%f”,a,b,c);给a赋予10.0,
b赋予22.0,c赋予33.0,不正确的输入形式为()。
a.10回车b.10.0,22.0,33.0回车
22回车
33
c.10.0回车d.1022回车
22.033.0回车33回车
44.有如下程序,若要求x1、x2、y1、y2的值分别为10、20、a、b,正确的数据输入是()。
(注:
└┘代表空格)
intx1,x2;
chary1,y2;
scanf(”%d%d”,x1,x2);
scanf(”%c%c”,y1,y2);
a.1020abb.10└┘20└┘abc
c.10└┘20d.10└┘20ab
ab
45.已有定义inta=-2;和输出语句:
printf(”%8lx”,a);以下正确的叙述是()。
a.整型变量的输出格式符只有%d一种
b.%x是格式符的一种,它可以适用于任何一种类型的数据
c.%x是格式符
d.%8lx不是错误的格式符,其中数字8规定了输出字段的宽度
46.有如下程序段,对应正确的数据输入是()。
floatx,y;
scanf(”%f%f”,x,y);
printf(”a=%f,b=%f”,x,y);
a.2.04回车b.2.04,5.67回车
5.67回车
c.a=2.04,b=5.67回车d.2.055.67回车
47.有如下程序段,从键盘输入数据的正确形式应是()。
(注:
└┘代表空格)
floatx,y,z;
scanf(―x=%d,y=%d,z=%d‖,a,y,z);
a.123b.x=1,y=2,z=3
c.1,2,3d.x=1└┘y=2└┘z=3
48.以下说法正确的是()。
a.输入项可以为一个实型常量,如scanf(”%f”,3.5);
b.只有格式控制,没有输入项,也能进行正确输入,如scanf(”a=%d,b=5d”);
c.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(”%4.2f”,f);
d.当输入数据时,必须指明变量的地址,如scanf(”%f”,f);
49.根据定义和数据的输入方式,输入语句的正确形式为:
()。
(注:
└┘代表空格)
已有定义:
floatx,y;
数据的输入方式:
1.23回车
4.5回车
a.scan(”%f,%f”,x,y);b.scanf(”%f%f”,x,y);
c.scanf(”%3.2f└┘%2.1f”,x,y);d.scanf(”%3.2f%2.1f”,x,y);
50.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为()。
#include”stdio.h”
main()
{chars1,s2,s3;
输入语句;
printf(”%c%c%c”,s1,s2,s3);
}
输入形式:
a└┘b└┘c回车(注:
└┘代表空格)
输出形式:
a└┘b
a.scanf(”%c%c%c”,s1,s2,s3);
b.scanf(”%c└┘%└┘c%c”,s1,s2,s3);
c.scanf(”%c,%c,%c”,s1,s2,s3);
d.scanf(”%c%c”,s1,s2,s3);
51.以下程序的执行结果是:
()。
#include”stdio.h”
main()
{intx=2,y=3;
printf(”x=%%d,y=%%d\n”,x,y);
}
a.x=%2,y=%3b.x=%%d,y=%%d
c.x=2,y=3d.x=%d,y=%d
52.以下程序的输出结果是()。
(注:
└┘代表空格)
#include”stdio.h”
main()
{printf(”\nstring1=%15s*”,”programming”);
printf(”\nstring2=%-5s*‖,”boy”);
printf(”string3=%2s*‖,”girl”);
}
【篇二:
c语言课本习题答案】
/p>1.顺序结构、选择(分支)结构和循环结构。
2.
(1)
(2)
3.编辑、编译、连接和运行
二、填空题
1.
ctrl+f9;alt+f5;f2。
2.
main(主)
3.
main(主)
4.
任意
5.
/**/不
6.
;
7.原程序:
includestudio.h
main{}
/*thisprogramprintsthenumberofweeksinayear./*
(
ints
s:
=52;
print(therearesweeksinayear);
改正程序:
#includestudio.h
main()
/*thisprogramprintsthenumberofweeksinayear.*/
{
ints;
s=52;
printf(thereare%dweeksinayear,s);
}
习题二
一、选择题
1、c2、b,d,f,g3、c4、a5、c6、b
二、填空题
1、声明;使用。
2、整型、浮点型(实型)、字符型。
3、hat_1,cat1,all,dollar,piece_f,sin,_,true,false.
4、a(字符),005(整型八进制),3e0(实型),”a”(字符串),\\(字符),\05(字符),1.2e+5(实型),0xf12(整型十六进制)。
5、
(1)6+(4+5)*(4+5)/(2+3)
(2)sin(a+b)*sin(a+b)/(4*2)/(3*2)+2
三、读程题
1.若x为float型,其原值为5,a=2,b=4.7。
写出下列表达式运算后x的值。
(1)x=(int)(b-a)%3*a/4-a
(2)x=(x=b+1)+(int)(b)%10/2.0
(3)x+=x
(4)x-=x
(5)x*=x+x
(6)x/=x+x
(7)x+=x-=x*=x
(8)x%=x
(9)x=3*4,5*6
答案:
(1)-1.0,
(2)7.7,(3)10.,(4)0.,(5)50.,(6)0.5,(7)0.,(8)非法,(9)
12.。
2.写出下面程序的运行结果。
#includestdio.h
voidmain()
{
inta=2;
printf(abcdefghijk\n);
printf(lmnop/n);
printf(iama/nbeginnerofc!
);
printf(iama\nbeginnerofc!
);
printf(%d+%d=%d,a,a,a);
}
答案:
abcdefghijk
lmnop/niama/nbeginnerofc!
iama
beginnerofc!
2+2=2
习题三
一、选择题
1、d2、c3、a4、b5、d
二、简答题
1、p482、表达式语句后有“;“3、p504、i=10,j=20
三、读程题
1、
56
56
67.856400,-789.124023
67.856400,-789.124023
67.86,-789.12,67.8564,-789.1240,67.856400,-789.124023
6.78564e+1,-7.9e+2
a,65,101,41
1234567,4553207,d687
65535,177777,ffff,-1
computer,com
2、10,9
3、8,7,7,8
4、6,0,6
5、0
四、编程题
1、弧度换算成角度值(度、分、秒)
#includestdio.h
【篇三:
华农c语言教材习题参考答案】
期还款:
#includestdio.h
#includemath.h
intmain()
{
doubled,p,r;
scanf(%lf%lf%lf,d,p,r);
printf(%.1f,log10(p/(p-d*r))/log10(1+r));return0;
}
计算分段函数函数值:
#includestdio.h
intmain()
{
doublex;
scanf(%lf,x);
if(x1)printf(%.2f,x);
elseif(x=1x10)printf(%.2f,2*x-1);elseprintf(%.2f,3*x-11);
}
成绩等级评分:
#includestdio.h
#includemath.h
intmain()
{
intscore;
scanf(%d,score);
if(score100||score0)
printf(error);
elseif(score=90)
printf(a);
elseif(score=80)
printf(b);
elseif(score=70)
printf(c);
elseif(score=60)
printf(d);
else
printf(e);
return0;
}
20秒后时间:
#includestdio.h
#includestdlib.h
intmain()
{
inth,m,s;
scanf(%d:
%d:
%d,h,m,s);
s=s+20;
if(s59)
{
s=s%60;
m++;
if(m59)
{
m=m%60;
h++;
if(h23)
h=0;
}
}
printf(%02d:
%02d:
%02d\n,h,m,s);return0;
}
分期还款(加强版):
#includestdio.h
#includemath.h
intmain()
{
doubled,p,r;
scanf(%lf%lf%lf,d,p,r);
if(d==0)
printf(0.0\n);
elseif(d*(1+r)-pd)
printf(god\n);
else
{
printf(%.1f,log10(p/(p-d*r))/log10(1+r));}
return0;
}
字母分类统计:
#includestdio.h
#includemath.h
intmain()
{
charch;
intnl=0,nn=0,ns=0,no=0;
while((ch=getchar())!
=\n)
{
if(ch=ach=z||
ch=ach=z)
nl++;
elseif(ch=0ch=9)nn++;
elseif(ch==)
ns++;
else
no++;
}
printf(%d%d%d%d\n,nl,nn,ns,no);return0;
}
计算数列和:
#includestdio.h
main()
{inti,n;
doublea=2,b=1,s=0;
scanf(%d,n);
for(i=1;i=n;i++)
{s=s+a/b;
a=a+b;
b=a-b;
}
printf(%.4f\n,s);
}
自由落体:
#includestdio.h
#includemath.h
intmain()
{
doublesum=-100,d=100;
inti,n;
scanf(%d,n);
for(i=1;i=n;i++)
{
sum+=2*d;
d/=2;
}
printf(%.3f%.3f,sum,d);
return0;
}
迭代法求平方根:
#includestdio.h
#includemath.h
intmain()
{
doublea,x0,x1=1;
scanf(%lf,a);
do
{
x0=x1;
x1=1.0/2*(x1+a/x1);
}while(fabs(x1-x0)=1e-5);
printf(%.4lf\n,x1);
return0;
}
打印三角形:
#includestdio.h
#defineabs(x)((x)=0?
(x):
-(x))
intmain()
{
intn,i,j;
scanf(%d,n);
for(i=-(n-1);i=(n-1);i++)
{
for(j=0;jabs(i);j++)
printf();
for(j=0;jn-abs(i);j++)
printf(*);
printf(\n);
}
return0;
}
勾股数:
#includestdio.h
#includemath.h
intmain()
{
inti,j,k,n;
scanf(%d,n);
for(i=1;i=n;i++)
for(j=i;j=n;j++)
{
k=(int)sqrt(i*i+j*j);
if(k*k==i*i+j*jk=n)printf(%d%d%d\n,i,j,k);}
return0;
}
插入数据:
intn,i;
scanf(%d,n);
for(i=14;i=0;i--)
if(a[i]n)a[i+1]=a[i];
elsebreak;
a[i+1]=n;
输出不同的数:
#includestdio.h