C语言例题练习习题A.docx

上传人:b****8 文档编号:10876821 上传时间:2023-02-23 格式:DOCX 页数:24 大小:21.80KB
下载 相关 举报
C语言例题练习习题A.docx_第1页
第1页 / 共24页
C语言例题练习习题A.docx_第2页
第2页 / 共24页
C语言例题练习习题A.docx_第3页
第3页 / 共24页
C语言例题练习习题A.docx_第4页
第4页 / 共24页
C语言例题练习习题A.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

C语言例题练习习题A.docx

《C语言例题练习习题A.docx》由会员分享,可在线阅读,更多相关《C语言例题练习习题A.docx(24页珍藏版)》请在冰豆网上搜索。

C语言例题练习习题A.docx

C语言例题练习习题A

C语言例题、练习、习题

【例1.1】输出一字符串。

 #include"stdio.h"

voidmain()

{

printf("thisisaCprogram.\n");

}

 

程序运行结果为:

thisisaCprogram.

 

【例1.2】求a,b相加的和放在sum中。

#include"stdio.h"

voidmain()

{

inta,b,sum;

a=123;

b=456;

sum=a+b;

printf("sumis%d\n",sum);

}

程序运行结果为:

sumis579   

 

【例1.2】求a,b相加的和放在sum中。

#include"stdio.h"

voidmain()

{

inta,b,sum;

a=123;

b=456;

sum=a+b;

printf("sumis%d\n",sum);

}

程序运行结果为:

sumis579  

 例如:

0x12=1*161+2*160=18(十进制)

*八进制的数码范围为0~7;018

*十六进制的数码除了数字0~9外,

还使用英文字母a~f(或A~F)表示10~15。

如:

0x1e√

 

如VisualC++6.0中,有short(2字节)≤int(4字节)≤long(4字节)

关键字所占位数取值范围

short16-32768~32767(-215~215-1)

unsignedshort160~65535(216-1)

int32-2147483648~2147483647

unsigned320~4294967295

long32-2147483648~2147483647

unsignedlong320~4294967295

 

(1)十进制小数形式:

由数字和小数点组成;

例如:

5.2,4.,.3。

(2)指数形式:

"十进制小数"+"e(或E)"+"十进制数整数"。

例如:

12.5e-6表示12.5×10-6。

小数点不能单独出现;0.√.0√.

e或E的两边必须有数,且其后面必须为整数;

如:

6E0.2e5

 

例如:

字符A的ASCII码为:

65D(十进制)=41H(十六进制)=101Q(八进制)

∴字符A可以表示为‘A’、‘\x41’、‘\101’。

 

【例1.5】符号常量的应用。

#definePI3.14159

#include"stdio.h"

voidmain()

{

intmj,r=5;

mj=PI*r*r;

printf("mj=%d",mj);

}

程序运行结果:

mj=78     

 

【例1.11】字符变量的使用。

 

 #include"stdio.h"

voidmain()

{

charc1,c2;

c1=97;

c2=98;

printf("%c,%c\n",c1,c2);//结果为:

a,b

printf("%d,%d\n",c1,c2);//结果为:

97,98

}

【例1.12】字符变量和整型变量可以相互赋值。

 #include"stdio.h"

voidmain()

{

inti;

charc;

c=97;

i=c;

printf("%c,%d\n",c,c);

printf("%c,%d\n",i,i);

}程序运行结果为:

a,97        a,97

例如

inta=5;floatb=3.5;

!

a(0)!

(a

(1)

&&:

只要有一个为假,结果则为假;

a&&b

(1)!

a&&b(0)

||:

只要有一个为真,结果则为真;

a¦¦b

(1)!

a||b

(1)

练一练

inta=5;floatb=3.5;

a&&b!

a&&b

!

a&&!

b!

(a&&b)

&&:

只要有一个为假,结果则为假;

(a0)

||:

只要有一个为真,结果则为真;

(a0)

练一练

inta=5;floatb=3.5;

a&&b

(1)!

a&&b(0)

!

a&&!

b(0)!

(a&&b)(0)

&&:

只要有一个为假,结果则为假;

(a0)(0)

||:

只要有一个为真,结果则为真;

(a0)

(1)

!

算术运算符

关系运算符

&&和||

赋值运算符低

 

例如:

x=(y=12)/4

y值为12,x值为3,表达式的值为3

例如:

a+=b相当于a=a+b

a*=b相当于a=a*b

a*=b+c相当于a=a*(b+c)而不是a=a*b+c

练习

设x为整型变量,值为1,则表达式(x&&1)!

=(x%2)的值为?

若已知a=10,b=20,则表达式!

a

在以下一组运算符中,优先级最高的运算符是()

(A)<=(B)=(C)%(D)&&

4.(!

x)!

=(x==0)的值为?

5.C语言源程序经编译后生成目标程序文件,其扩展名是;连接后生成文件,其扩展名是。

6.C语言规定,标识符必须以_________或_____开头,是_____、数字和_____的序列。

7.以下说法中正确的是()

(A)C语言程序总是从第一个定义的函数开始执行

(B)在C语言程序中,要调用的函数必须在main()函数中定义

(C)C语言程序总是从main()函数开始执行

(D)C语言程序中的main()函数必须放在程序的开始部分

 

答案

0

1

C

0

.obj可执行.exe

字母下划线字母下划线

C

第3章顺序结构程序设计

例3-1:

已知圆半径radius=1.5,求圆周长和圆面积。

#include"stdio.h"/*编译预处理命令:

文件包含*/

voidmain()

{floatradius,length,area,pi=3.1415926;

radius=1.5;

length=2*pi*radius;/*求圆周长*/

area=pi*radius*radius;/*求圆面积*/

printf("radius=%f\n",radius);/*输出圆半径*/

printf("length=%7.2f,area=%7.2f\n",length,area);/*输出圆周长、面积*/

}

程序运行结果如下:

radius=1.500000

length=9.42,area=7.07

 

例3-2.类型转换字符d的使用。

#include"stdio.h"/*编译预处理命令:

文件包含*/

voidmain()

{intnum1=123;

printf("num1=%d,num1=%5d,num1=%-5d,num1=%2d\n",

num1,num1,num1,num1);/*用4种不同格式,输出int型数据num1的值*/

}

程序运行结果如下:

num1=123,num1=□□123,num1=123□□,num1=123

例3-3.类型转换字符f的使用。

#include"stdio.h"/*编译预处理命令:

文件包含*/

voidmain()

{floatf=123.456;

doubled1,d2;

d1=111111111111.111111111;

d2=222222222222.222222222;

printf("%f,%12f,%12.2f,%-12.2f,%.2f\n",f,f,f,f,f);

printf("d1+d2=%f\n",d1+d2);

}

程序运行结果如下:

123.456001,□□123.456001,□□□□□□123.46,123.46□□□□□□,123.46

d1+d2=333333333333.333010

本案例程序的输出结果中,数据123.456001和3333333333333.333010中的001和010都是无意义的,因为它们超出了有效数字的范围。

例3-4:

类型转换字符c的使用。

#include"stdio.h"/*编译预处理命令:

文件包含*/

voidmain()

{charc='A';

inti=65;

printf("c=%c,%5c,%d\n",c,c,c);

printf("i=%d,%c",i,i);

}

程序运行结果如下:

c=A,□□□□A,65

i=65,A

例3-5:

已知圆柱体的底半径为radius,高为high,求其体积。

#include"stdio.h"

voidmain()

{floatradius,high,vol,pi=3.1415926;

printf("Pleaseinputradius&high:

");

scanf("%f%f",&radius,&high);/*从键盘输入两个实数赋给变量r,h*/

vol=pi*radius*radius*high;

printf("radius=%7.2f,high=%7.2f,vol=%7.2f\n",radius,high,vol);

}

程序运行结果如下:

Pleaseinputradius&high:

1.5□2.0↙

radius=□□□1.50,high=□□□2.00,vol=□□14.14

 

例如,

scanf("%c%c%c",&ch1,&ch2,&ch3);printf("ch1=%c,ch2=%c,ch3=%c\n",ch1,ch2,ch3);

假设输入:

A□B□C↙,则系统将字母'A'赋值给ch1,空格'□'赋值给ch2,字母'B'赋值给ch3。

3.3顺序结构程序设计练习

1.输入整数a和b,交换a,b后输出。

#include"stdio.h"

voidmain()

{inta,b,temp;

printf("输入整数a,b?

");

scanf("%d,%d",&a,&b);

temp=a;

a=b;

b=temp;

printf("a=%db=%d\n",a,b);

}

2.输入圆的半径,求周长和面积。

#include

#definePI3.14159

voidmain()

{floatc,s,i;

printf("输入圆的半径:

");

scanf("%f",&i);

c=2.0*PI*i;

s=PI*i*i;

printf("圆的周长:

%f\n",c):

printf("圆的面积:

%f\n",s);

}

3、有以下程序,请写出输出结果。

#include

voidmain()

{inta=3,b=12;

floatx=1.23,y=4.785;

printf("a=%5d,b=%5d\n",a,b);

printf("%5.2f*%5.2f=%5.2f",x,y,x*y);

}

a=□□□□3,b=□□□12

1.23*4.79=5.89

例如,假设num=12,则:

num的值=0,num>=1&&num<=31的值为?

,num||num>31的值为?

答案:

1,1

[案例4-1]输入任意三个整数num1、num2、num3,求三个数中的最大值。

#include

voidmain()

{intnum1,num2,num3,max;

printf("Pleaseinputthreenumbers:

");

scanf("%d,%d,%d",&num1,&num2,&num3);

if(num1>num2)

max=num1;

else

max=num2;

if(num3>max)

max=num3;

printf("Thethreenumbersare:

%d,%d,%d\n",num1,num2,num3);

printf("max=%d\n",max);

}

程序运行情况如下:

Pleaseinputthreenumbers:

11,22,18↙

Thethreenumbersare:

11,22,18

max=22

 

例4-2.判断闰年

#include

voidmain()

{intyear;

printf("Pleaseinputtheyear:

");

scanf("%d",&year);

if((year%4==0&&year%100!

=0)||(year%400==0))

printf("%disaleapyear.\n",year);

else

printf("%disnotaleapyear.\n",year);

}

 

[案例4-3]从键盘上输入一个百分制成绩score,按下列原则输出其等级:

score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。

#include

voidmain()

{intscore,grade;

printf("Inputascore(0~100):

");

scanf("%d",&score);

grade=score/10;/*将成绩整除10,转化成switch语句中的case标号*/

switch(grade)

{

case10:

case9:

printf("grade=A\n");break;

case8:

printf("grade=B\n");break;

case7:

printf("grade=C\n");break;

case6:

printf("grade=D\n");break;

case5:

case4:

case3:

case2:

case1:

case0:

printf("grade=E\n");break;

default:

printf("Thescoreisoutofrange!

\n");

}

}

程序运行情况如下:

Inputascore(0~100):

85↙

grade=B

 

练习

1.以下4个选项中,不能看做一条语句的是:

A.{;}B.a=0,b=0,c=0;

c.If(a>0);D.if(b==0)m=1;n=2;

2.已知字符¡¯A¡¯的ASCII代码值是65,字符变量C1的值是¡¯A¡¯,C2的值是¡¯D¡¯。

执行语句printf(¡°%d,%d¡±,C1,C2-2);后,输出结果为?

练习

2.若inti=11;执行下列程序后,变量i的正确结果是?

switch(i)

{

case0:

i=i+1;

case10:

i=i+1;

case11:

i=i+1;

default:

i=i+1;

}

答案

1.D

2.65,66

3.13

 

[案例5.1]求1~100的累计和。

/*程序功能:

求1~100的累计和*/

#include

voidmain()

{inti,sum=0;/*将累加器sum初始化为0*/

for(i=1;i<=100;i++)sum+=i;/*实现累加*/

printf("sum=%d\n",sum);

}

程序运行情况如下:

sum=5050

for语句和while语句

[案例5.2]求n的阶乘n!

(n!

=1*2*……*n)。

/*程序功能:

求n!

*/

#include

voidmain()

{

inti,n;

longfact=1;/*将累乘器fact初始化为1*/

printf("Inputn:

");

scanf("%d",&n);

for(i=1;i<=n;i++)

fact*=i;/*实现累乘*/

printf("%d!

=%ld\n",n,fact);

}

程序运行情况如下:

Inputn:

5↙

5!

=120

[案例5.3]用while语句求1~100的累计和。

/*程序功能:

求1~100的累计和*/

#include

voidmain()

{inti=1,sum=0;/*初始化循环控制变量i和累计器sum*/

while(i<=100)

{sum+=i;/*实现累加*/

i++;/*循环控制变量i增1*/

}

printf(“sum=%d\n”,sum);

}

程序运行情况如下:

sum=5050

[案例5.4]用do-while语句求解1~100的累计和。

/*程序功能:

求1~100的累计和*/

#include

voidmain()

{

inti=0,sum=0;/*初始化循环控制变量i和累计器sum*/

do

{sum+=i;/*实现累加*/

i++;/*循环控制变量i增1*/

}while(i<=100);

printf("sum=%d\n",sum);

}do-while语句比较适用于处理:

不论条件是否成立,先执行1次循环体语句组的情况。

除此之外,do-while语句能实现的,for语句也能实现,而且更简洁。

5-5:

#include/*打出100-200间的素数,每打10个换一行*/

#include

voidmain()

{

intm,i,k,n=0;

for(m=101;m<=200;m=m+2)

{

k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0)break;

if(i>k){printf("%5d",m);

n=n+1;}

if(n%10==0)printf("\n");

}

}

 

5-6:

#include

/*输出100~200间不能被3整除的数,每行输出5个*/

voidmain()

{

intn,k=0;

for(n=100;n<=200;n++)

{if(n%3==0)

continue;

printf("%d",n);

k++;

if(k%5==0)printf("\n");

}

}

5-7:

输入10个数,求出其中的最大值和最小值。

#include

voidmain()

{

floatx,max,min;

inti;

scanf("%f",&x);

max=min=x;

for(i=2;i<=10;i++)

{

scanf("%f",&x);

if(x>max)max=x;

elseif(x

}

printf("max=%f,min=%f\n",max,min);

}

练习

1、有以下程序

#include

voidmain()

{

inti,s=0;

for(i=2;i<11;i+=2)

s=s+i;

printf("%d\n",s);

}

程序执行后的输出结果是?

(A)自然数1~9的累加和

(B)自然数1~10的累加和

(C)自然数1~9中的奇数之和

(D)自然数1~10中的偶数之和

 

2、有以下程序

#include

voidmain()

{

chark;

inti;

for(i=1;i<3;i++)

{

scanf("%c",&k);

switch(k){

case'0':

printf("another\n");

case'1':

printf("number\n");

}

}

}

程序运行时,从键盘输入:

101<回车>,程序执行后的输出结果是?

3、以下错误的描述是()

(A)break语句不能用于循环语句和switch语句外的任何其他语句。

(B)在switch语句中使用break语句或continue语句的作用相同。

(C)在循环语句中使用continue语句是为了结束本次循环,而不是终止整个循环。

(D)在循环语句中使用break语句是为了使流程跳出循环体,提前结束循环。

答案

1.D

2.number

another

number

3.B

6-1:

#include

intmax(intx,inty){/*函数头*/

intz;/*函数体内部说明*/

z=x>y?

x:

y;

return(z);/*返回值*/

}

voidmain(){

inta,b,c;

scanf("%d%d",&a,&b);

c=max(a,b);

printf("maxis%d",c);

}

 

函数的形参与实参

6-2:

#include

voidmain()

{

inta,b,sum;

a=10;

b=24;

sum=add(a,b);

printf("sum=%d\n",sum);

}

intadd(intx,inty)

{

x=x+y;

return(x);

}

 

6-3:

#include

voidmain()

{voids(intn);/*说明函数*/

intn=100;/*定义实参n,并初始化*/

s(n);/*调用函数*/

printf("n_s=%d\n",n);/*输出调用后实参的值,便于进行比较*/

}

voids(intn)

{inti;

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

当前位置:首页 > PPT模板 > 国外设计风格

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

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