c语言复习资料2.docx
- 文档编号:5951910
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:36
- 大小:37.89KB
c语言复习资料2.docx
《c语言复习资料2.docx》由会员分享,可在线阅读,更多相关《c语言复习资料2.docx(36页珍藏版)》请在冰豆网上搜索。
c语言复习资料2
二.练习
㈠.填空题:
1.在TURBOC环境中用RUN命令运行一个C程序时,所运行的程序的后缀是.exe。
2.C语言源程序文件的后缀是.c,经过编译后,生成文件的后缀是.obj,经过连接后,生成文件的后缀是.exe。
3.结构化程序由顺序、选择(分支)、循环三种基本结构组成。
4.若k为整型变量且赋值11。
请写出运算k++后表达式的值11和变量的值12。
5.若x为double型变量,运算x=3.2,++x后表达式的值4.2和变量的值4.2。
6.函数体由符号{开始,用符号}结束。
函数体的前面是定义部分,其后是执行部分。
7.C语言中的标识符可分为关键字、用户标识符和预定义标识符三类。
8.在C语言程序中,用关键字int定义基本整型变量,用关键字float定义单精度实型变量,用关键字double定义双精度实型变量。
9.把a1、a2定义成单精度实型变量,并赋初值1的定义语句是floata1=1.0,a2=1.0;。
10.C程序中定义的变量,代表内存中的一个存储空间。
11.表达式3.5+1/2的计算结果是3.5。
12.写出数学表达式
三个等价的C语言表达式a*b/(c*d)、a/(c*d)*b、b/(c*d)*a。
13.通常一个字节包含8个二进制位。
14.当计算机用两个字节存放一个整数时,能存放的最大(十进制)整数是216-1(65535)、最小(十进制)整数是-215(-32768)。
15.在C语言中整数可用十进制数、八进制数和十六进制数三种数制表示。
16.C语言中,int型数据占2个字节,long型数据占4个字节,unsignedint型数据占2个字节,short型数据占2个字节,float型数据占4个字节,double型数据占8个字节,char型数据占1个字节。
㈡.选择题:
1.组成C语言程序的是()(C)。
A.子程序B.过程C.函数D.主程序和子程序
2.以下叙述中正确的是()(C)。
A.在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。
B.C程序由主函数组成。
C.C程序由函数组成。
D.C程序由函数和过程组成。
3.以下选项中正确的整型常量是()(B)。
A.12.B.-20C.1,000D.456
4.以下选项中正确的实型常量是()(D)。
A.0B.3.1415C.0.329╳102D..871
5.以下选项中不合法的用户标识符是()(C)。
A._123B.printfC.A$D.Dim
6.C语言中运算对象必须是整型的运算符是()(A)。
A.%B./C.!
D.*
7.可在C程序中用作用户标识符的一组标识符是()(B)。
A.voidB.as_b3C.ForD.2c
define_123-abcDO
WORDIfcaseSIG
8.若变量已正确定义并赋值,符合C语言语法的表达式是()(B)。
A.a=a+7;B.a=7+b+c,a++C.int(12.3%4)D.a=a+7=c+b
9.不合法的八进制数是()(B)。
A.0B.028C.077D.01
10.不合法的十六进制数是()(A)(零X)。
A.oxffB.0XabcC.0x11D.0x19
㈢.程序设计题:
1.编写一个C程序,输入a、b、c三个数,输出其中最大者。
#include
voidmain()
{inta,b,c,max;
printf(“input3num:
\n”);
scanf(“%d%d%d”,&a,&b,&c);
max=a;
if(b>max)max=b;
if(c>max)max=c;
printf(“%d”,max);
}
二.练习
㈠.填空题:
1.以下程序段执行后的输出结果是:
⑴-2002500⑵i=-200,j=2500⑶
。
inti=-200,j=2500;
printf(“⑴%d%d”,i,j);
printf(“⑵i=%d,j=%d\n”,i,j);
printf(“⑶i=%d\nj=%d\n”,i,j);
2.复合语句在语法上被认为是一条语句。
空语句的形式是;。
3.C语句的最后用;结束。
4.以下程序段的输出结果是x=127,x=177,x=7f,x=127。
intx=0177;printf(“x=%6d,x=%6o,x=%6x,x=%6u\n”,x,,x,x,x);
5.以下程序段的输出结果是a=513.789215,a=513.79,a=513.78921500,a=531.78921500。
doublea=513.789215;
printf(“a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lf\n”,a,a,a,a);
6.以下程序段的输出结果是8,3。
a=3+5,a*4;x=11/3;printf(“%d,%%d\n”,a,x);
7.以下程序输入三个整数值给a、b、c,程序把b中的值给a,把c中的值给b,把a中的值给c,交换后输出a、b、c的值。
请填空:
#include
main()
{inta,b,c,m;
printf(“Entera,b,c:
”);
scanf(“%d,%d,%d”,&a,&b,&c);
m=a;a=b;b=c;c=m;
printf(“a=%d,b=%d,c=%d\n”,a,b,c);}
8.以下程序不借助任何变量把a、b中的值进行交换。
请填空:
#include
main()
{inta,b;
printf(“Inputa,b:
”);
scanf(“%d,%d”,&a,&b);
a+=b;b=a-b;a=a-b;
printf(“a=%d,b=%d\n”,a,b);}
㈡.选择题:
1.若a、b、c、d都是int型变量且初始值为0,下列不正确的赋值语句是()(C)。
A.a=b=c=100;B.d++;C.c+b;D.d=(c=22)-(b++);
2.以下选项中不是C语句的是()(C)。
A.{inti;i++;printf(“%d\n”,i);}B.;C.a=5,c=10D.{;}
3.以下合法的C语言赋值语句是()(D)。
A.a=b=58B.k=int(a+b);C.a=58,b=58D.--i;
4.以下程序的输出结果是()(C)。
A.0B.1C.3D.不确定的值
main()
{intx=10,y=3;printf(“%d\n”,y=x/y);}
5.若变量已正确说明为int类型,要给a、b、c输入数据,正确的输入语句是()D。
A.read(a,b,c);B.scanf(“%d%d%d”,a,b,c);
C.scanf(“%D%D%D”,&a,&b,&c);D.scanf(“%d%d%d”,&a,&b,&c);
6.若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句组是()C。
A.a=a+b,b=a-b,a=a-b;B.t=a,a=b,b=t;
C.a=t;t=b;b=a;D.t=b;b=a;a=t;
7.若变量已正确定义,以下程序段的输出结果是()D。
A.输出格式说明与输出项不匹配,输出无定值
B.5.1700C.5.16800D.5.16900
x=5.16894;printf(“%f\n”,(int)(x*1000+0.5)/(float)1000);
8.执行以下程序段后,c3中的值是()A。
A.0B.1/2C.0.5D.1
intc1=1,c2=2,c3;c3=c1/c2;
9.执行以下程序段后,其输出结果是()B。
A.0,0,-10B.0,0,3C.-10,3,-10D.3,3,-10
inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%d\n”,a,b,c);
10.以下程序的输出结果是()D。
A.a=%2,b=%5B.a=2,b=5C.a=%%d,b=%%dD.a=%d,b=%d
main()
{inta=2,b=5;printf(“a=%%d,b=%%d\n”,a,b);}
11.若int型占两个字节,以下程序段的输出是()D。
A.-1,-1B.-1,32767C.-1,32768D.-1,65535
inta=-1;printf(“%d,%u\n”,a,a);
12.以下程序段的输出结果是()C。
A.|3.1415|B.|3.0|C.|3|D.|3.|
floata=3.1415;printf(“|%6.0f|\n”,a);
13.以下程序段的输出结果是()B。
A.98B.89C.66D.以上三个都不对
#include
main()
{doublea=-3.0,b=2;
printf(“%3.0f%3.0f\n”,pow(b,fabs(a)),pow(fabs(a),b));}
14.若a为整型变量,则以下语句()B。
A.赋值不合法B.输出值为-2C.输出为不确定值D.输出值为2
a=-2L;printf(“%d\n”,a);
15.若有定义chars=‘\092’;则该语句()B。
A.使s的值包含1个字符B.定义不合法,s的值不确定
C.使s的值包含4个字符D.使s的值包含3个字符
16.若k、g均为int型变量,则下列语句的输出为()D。
A.15B.16C.15D.16
6f70716f
k=017;g=111;printf(“%d\n”,++k);printf(“%x\n”,g++);
17.已知字母a的ASCII十进制代码为97,执行下列语句后的输出为()C。
A.b,cB.a--运算不合法,故有语法错误
C.98,cD.格式描述和输出项不匹配,输出无定值
chara=‘a’;a--;printf(“%d,%c\n”,a+‘2’-‘0’,a+‘3’-‘0’);
18.下列程序的输出为()A。
A.27.000000B.27.500000C.28.000000D.28.500000
#include
main()
{intm=7,n=4;floata=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;printf(“%f\n”,x);}
19.下列程序的输出结果是()C。
A.18B.9C.-18D.-9
main(){inta=9;a+=a-=a+a;printf(“%d\n”,a);}
20.下列程序的输出结果是()A。
A.0B.5C.1D.不确定值
main(){inta=7,b=5;printf(“%d\n”,b=b/a);}
21.下列程序的输出结果是()C。
A.12B.11C.10D.9
main(){inta=011;printf(“%d\n”,++a);}
㈢.程序设计题:
用N—S图表示下列问题:
1.有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换。
编写程序
2.依次将10个数输入,要求将其中最大的数打印出来。
#include
main()
{
inti,a,max;
scanf("%d",&max);
for(i=1;i<=9;i++)
{
scanf("%d",&a);
if(a>max)max=a;
}
printf("%d",max);
}
3.有3个数a、b、c,要求按从大到小的顺序把它们打印出来。
main()
{
floata,b,c,t;
scanf("%f,%f,%f",&a,&b,&c);
if(a>b)
{t=a;a=b;b=t;}/*实现a和b的互换*/
if(a>c)
{t=a;a=c;c=t;}/*实现a和c的互唤*/
if(b>c)
{t=b;b=c;c=t;]/*实现b和c的互换*/
printf("%5.2f,%5.2f,%5.2f\n",a,b,c);
}
4.求1+2+3+……+100。
(重点看)
#include
intmain()
{
inti,sum=0;
i=1;
while(i<=100)
{
sum=sum+i;
i=i+1;
}
printf(“%d”,sum);
}
5.判断一个数n能否同时被3和5除。
#include
main(void)
{
int n;
scanf("%d",&n);
if(n%3 == 0 && n%5 == 0)
printf("%d能否同时被3和5整除\n",n);
else
printf("%d不能否同时被3和5整除\n",n);
return 0;
}
6.将100~200之间的素数打印出来。
#include
intisPrime(intn)
{
inti;
for(i=2;i*i<=n;i++)
if(n%i==0)
return0;
return1;
}
intmain()
{
inti;
for(i=100;i<=200;i++)
{
if(isPrime(i))
printf("%d\n",i);
}
}
7.求两个整数m和n的最大公约数和最小公倍数。
main()
{
inta,b,num1,num2,temp;
printf("pleaseinputtwonumbers:
\n");
scanf("%d,%d",&num1,&num2);
if(num1{temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!
=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("gongyueshu:
%d\n",a);
printf("gongbeishu:
%d\n",num1*num2/a);
}
8.求方程ax2+bx+c=0的根
#include
#include
voidmain()
{
floata,b,c,x1,x2,p,q,m;
scanf("%f%f%f",&a,&b,&c);
if((a==0.0)&&(b==0.0)&&(c!
=0.0))
printf(“novalue!
");
elseif((a==0.0)&&(b==0.0)&&(c==0.0))
printf("anyvalue!
");
elseif((a==0.0)&&(b!
=0.0))
printf("x1=x2=%f",-c/b);
else
{m=b*b-4.0*a*c;
if(m>=0)
{x1=(-b+sqrt(m))/(2.0*a);
x2=(-b-sqrt(m))/(2.0*a);
printf("x1=%f\n",x1);
printf("x2=%f\n",x2);
}
else
{p=-b/(2.0*a);
q=sqrt(-m)/(2.0*a);
printf("x1=%f+%fi\n",p,q);
printf("x2=%f-%fi\n",p,q);
}
}}
9.编写程序,输入两个整数1500和350,求出它们的商和余数并进行输出。
#include
#inclued
voidmain()
{inta;
intb;
intc,d;
a=1500,b=350;
c=a/b;//商数
d=a%b;//余数
pritf("商数为:
%d\n",c);
printf("余数为:
%d\n",d);
return0;
}
10.编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,对小数点后第二位数进行四舍五入,最后输出结果。
#include
main()
{doublea,b,c,d;
printf("输入三个双精度数\n");
scanf("%lf%lf%lf",&a,&b,&c);
d=(a+b+c)/3;
printf("%.1f\n",d);
}
11.求三角形的面积:
a,b,c是边长,p是半边长,s是面积,则s=[p(p-a)(p-b)(p-c)]1/2
(C++考过这个)
#include
#include
main()
{floata,b,c,p,s;
printf("input3num:
");
scanf("%f%f%f",&a,&b,&c);
p=(a+b+c)/2;
s=p*(p-a)(p-b)(p-c);
s=pow(s,0.5);
printf("s=%f",s);
}
12.输入一个华氏温度,要求输出摄氏温度。
公式为:
c=5(f-32)/9。
#include
main()
{doubletem_c,tem_f;
puts("=====华氏温度至摄氏温度转换程序=====");
printf("请输入华氏温度:
");
scanf("%lf",&tem_f);
tem_c=(tem_f-12)*5.0/9.0;
printf("%f对应的摄氏温度为%.2f",tem_f,tem_c);
renturn0;
}
二.练习
㈠.填空题:
1.C语言中用非0表示逻辑值“真”,用0表示逻辑值“假”。
2.C语言中的关系运算符按优先级别是、、、、、。
答案:
>、<、>=、<=、==、!
=
3.C语言中的逻辑运算符按优先级别是、、。
答案:
!
、&&、||
4.C语言中的关系运算符和逻辑运算符的优先级别是、、、、、
、、、。
!
、>、<、>=、<=、==、!
=、&&、||
5.C语言中逻辑运算符的!
优先级高于算术运算符。
6.将下列数学式改写成C语言的关系表达式或逻辑表达式:
a=b或a
7.下列程序的输出结果1。
main()
{inta=100;
if(a>100)printf(“%d\n”,a>100);elseprintf(“%d\n”,a<=100);}
8.若已知a=10、b=15、c=1、d=2、e=0,请分别给出下列表达式的运算结果:
⑴a*b&&c1⑵a+b>10||a+b<01⑶e0⑷c==b>e1
⑸!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习资料