《C语言程序设计教程》例题源码
更新时间:2023-09-07 08:27:01 阅读量: 教育文库 文档下载
《C语言程序设计教程》例题源码
练习一
【例1.1】打印“常熟理工学院”的汉语拼音。
程序源码如下:
void main()
{
printf(“chang shu li gong xue yuan!”);
}
【例1.2】求任意两个整数的积。
程序源码如下:
#include<stdio.h>
int mul(int a,int b);
void main()
{
int x,y,z;
printf("input two numbers:\n");
scanf("%d%d",&x,&y);
z=mul(x,y);
printf("mul=%d",z);
}
int mul(int a,int b)
{
int c;
c=a*b;
return c;
}
【例1.3】求整数a、b的和。
程序源码如下:
void main()
{
int a,b;
int sum;
scanf(“%d,%d”,&a,&b);
sum=a+b;
printf(“%d”,sum);
}
练习二
【例2.1】转义字符的使用。
程序源码如下:
void main()
{
printf("\x4f\x4b\x21\n");
printf("\112\112\132\104\n");
}
【例2.2】符号常量的使用。
程序源码如下:
#define PI 3.14159265
void main()
{
float r,m,s;
r=1.2;
m=2*PI*r;
s=PI*r*r;
printf("%f,%f",m,s);
}
【例2.3】整型变量的定义与使用。
程序源码如下:
void main()
{
int x,y,m;
unsigned u,n;
x=30;y=18;u=32800;
m=x+y;n=y+u;
printf("x+y=%d,y+u=%d\n",m,n);
}
【例2.4】整型变量的定义与使用。
程序源码如下:
void main()
{
int a,b,c,d;
long x,y;
x=7;
y=8;
a=9;
b=10;
c=x+a;
d=y+b;
printf("c=x+a=%d,d=y+b=%d\n",c,d); }
【例2.5】整型数据的溢出。
程序源码如下:
void main()
{
int x,y;
x=32767;
y=x+1;
printf("%d,%d\n",x,y);
}
【例2.6】实型变量的定义和应用举例。程序源码如下:
void main()
{
float x,y,z,a,b;
x=1234.2345;
a=0.02;
y=1111111.11111111111;
z=x+y;
b=a+y;
printf("%f\n%f\\n",z,b);
}
【例2.7】字符型变量的定义与使用举例。程序源码如下:
void main()
{
char c1,c2;
c1=97;c2=98;
printf("%c%c",c1,c2);
printf("%d%d\n",c1,c2);
c1=c1-32;
c2=c2-('a'-'A');
printf("%c%c\n",c1,c2);
}
【例2.8】变量初始化举例。
程序源码如下:
void main()
{
int c1,c2,c3,c4;
c1=7;c2=7;
c3=3;c4=4;
printf("%d%d",c1,c2);
printf("%d%d\n",c3,c4);
}
等效于void main()
{
int c1=7,c2=7,c3=3,c4=4;
printf("%d%d",c1,c2);
printf("%d%d\n",c3,c4);
}
【例2.10】强制类型转换。
程序源码如下:
void main()
{
float m=6.5;
int n;
n=(int)m;
printf("%f,%d",m,n);
}
练习三
【例3.1】关系表达式实例。
程序源码如下:
#include<stdio.h>
int void main()
{
int true,false;
true=(3>2);
false=(3==2);
printf("true=%d;false=%d\n",true,false);
return0;
}
【例3.2】逻辑运算符实例。
程序源码如下:
void void main()
{
char c='k';
int i=1,j=2,k=3;
float x=3e+5,y=0.85;
printf("%d,%d\n",!x*!y,!!!x);
printf("%d,%d\n",x||i&&j-3,i<j&&x<y);
printf("%d,%d\n",i==5&&c&&(j=8),x+y||i+j+k); }
【例3.3】自增、自减运算符实例。
程序源码如下:
#include<stdio.h>
void void main()
{
int i=8;
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i++);
printf("%d\n",-i--);
}
【例3.4】自增、自减运算符实例。
程序源码如下:
#include<stdio.h>
void void main()
{
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++);
q=(++j)+(++j);
printf("%d,%d,%d,%d",p,q,i,j);
}
【例3.5】输出两个数中的大数。
程序源码如下:
#include<stdio.h>
void void main()
{
int a,b,max;
printf("\n input two numbers:");
scanf("%d%d",&a,&b);
printf("%d",max=a>b?a:b);
}
【例3.6】逗号运算符实例。
程序源码如下:
#include<stdio.h>
void void main()
{
int a=2,b=4,c=6,x,y;
y=((x=a+b),(b+c));
printf("y=%d,x=%d",y,x);
}
练习四
【例4.5】求1×2×3×4×5的算法,用C语言表示。程序源码如下:
#include<stdio.h>
void main()
{
int i,t;
t=1;
i=2;
while(i<=5)
{
t=t*i;
i=i+1;
}
printf(“%d”,t);
}
【例4.6】printf函数使用实例。
程序源码如下:
#include<stdio.h>
void void main()
{
int a=88,b=89;
printf("%d%d\n",a,b);
printf("%d,%d\n",a,b);
printf("%c,%c\n",a,b);
printf("a=%d,b=%d",a,b);
}
【例4.7】printf函数应用实例。
程序源码如下:
#include<stdio.h>
void void main()
{
int a=15;
float b=138.357620;
double c=35648256.3645287;
char d='p';
printf("a=%d,%5d,%o,%x\n",a,a,a,a);
printf("b=%f,%lf,%5.4lf,%e\n",b,b,b,b);
printf("c=%lf,%f,%8.4lf\n",c,c,c);
printf("d=%c,%8c\n",d,d);
}
【例4.8】printf函数应用实例。
程序源码如下:
#include<stdio.h>
void main()
{
int i=8;
printf("%d\n%d\n%d\n%d\n%d\n%d\n",++i,--i,i++,i--,-i++,-i--); }
【例4.9】printf函数应用实例。
程序源码如下:
#include<stdio.h>
void main()
{
int i=8;
printf("%d\n",++i);
printf("%d\n",--i);
printf("%d\n",i++);
printf("%d\n",i--);
printf("%d\n",-i++);
printf("%d\n",-i--);
}
【例4.10】putchar函数应用实例。
程序源码如下:
#include<stdio.h>
void void main()
{
char a='B',b='o',c='k';
putchar(a);putchar(b);putchar(b);putchar(c);putchar('\t');
putchar(a);putchar(b);
putchar('\n');
putchar(b);putchar(c);
}
【例4.11】scanf函数应用实例。
程序源码如下:
#include<stdio.h>
void void main()
{
int a,b,c;
printf("input a,b,c\n");
scanf("%d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
}
【例4.12】格式字符串应用实例。
程序源码如下:
#include<stdio.h>
void void main()
{
char a,b;
printf("input character a,b\n");
scanf("%c%c",&a,&b);
printf("%c%c\n",a,b);
}
【例4.13】格式字符串应用实例。
程序源码如下:
#include<stdio.h>
void void main()
{
char a,b;
printf("input character a,b\n");
scanf("%c%c",&a,&b);
printf("\n%c%c\n",a,b);
}
【例4.14】输入一个小写字母,输出其ASCII码和对应的大写字母。程序源码如下:
#include<stdio.h>
void void main()
{
char a;
printf("input a character:\n");
a=getchar();
printf("%d\n",a);
putchar(a-32);
}
【例4.15】输入三角形的三边长,求三角形面积。
程序源码如下:
#include<stdio.h>
#include<math.h>
void main()
{
float a,b,c,s;
double area;
scanf(“%f,%f,%f”,&a,&b,&c);
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s);
printf(“area=%7.2f\n”,area);
}
练习五
【例5.1】输入两个数到变量x和y中,如果x>y则输出x。
程序源码如下:
#include<stdio.h>
void main()
{
int x,y;
printf("please input x,y:");
scanf("%d,%d",&x,&y);
if(x>y)
printf("x>y\n");
printf("%d,%d\n",x,y);
}
【例5.2】某应用软件的登录密码是123,用户从键盘输入密码,如果正确则显示“欢迎使用本软件”的字样,如果密码错误则显示“密码错,请重新输入!”的字样。
#include<stdio.h>
void main()
{
int password;
printf("请输入密码:\n");
scanf("%d",&password);
if(password==123)
printf("欢迎使用本软件!");
else
printf("密码错,请重新输入!");
}
注意:本题要启动中文DOS运行环境,否则程序中的汉字将显示为乱码,以下例题如有汉字输入输出均与此相同,不再多述。
【例5.3】编程实现以下问题求解:给出一百分制成绩,要求输出成绩等级A、B、C、D、E。设90分以上为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
程序源码如下:
#include<stdio.h>
void main()
{
int score;
printf("请输入成绩:");
scanf("%d",&score);
printf("score=%d:",score);
if(score>=90)
printf("A\n");
else if(score>=80)
printf("B\n");
else if(score>=70)
printf("C\n");
else if(score>=60)
printf("D\n");
else
printf("E\n");
}
【例5.4】从键盘上输入3个实数a、b、c,求出其中的最小值并输出。
程序源码如下:
#include<stdio.h>
void main()
{
float x,y,z,min;
printf("请输入x,y,z:");
scanf("%f,%f,%f",&x,&y,&z);
if(x<y)
{
if(x<z)min=x;
else min=z;
}
else
{
if(y<z)min=y;
else min=z;
}
printf("min=%f\n",min);
}
【例5.5】从键盘上输入一个字母,如果这个字母是小写字母就将它转换成大写字母。
程序源码如下:
#include<stdio.h>
void main()
{
char x;
printf("请输入一个字母:");
scanf("%c",&x);
x=(x>=’a’&&x<=’z’)?(x-32):x;/*大小写字母ASCII码值相差32*/
printf("转换成大写为:%c\n",x);
}
【例5.6】设计一个程序,要求输入数字1,显示Monday,输入数字2,显示Tuesday……,一直到输入数字7,显示Sunday,除此以外,显示error。
程序源码如下:
#include<stdio.h>
void main()
{
int x;
printf("input integer number:");
scanf("%d",&x);
switch(x)
{
case1:printf("Monday\n");break;
case2:printf("Tuesday\n");break;
case3:printf("Wednesday\n");break;
case4:printf("Thursday\n");break;
case5:printf("Friday\n");break;
case6:printf("Saturday\n");break;
case7:printf("Sunday\n");break;
default:printf("error\n");
}
}
【例5.7】编程序实现输入不同的月份输出相应的季节。按农历一般规定1~3月为春季,4~6月为夏季,7~9月为秋季,10~12月为冬季。
程序源码如下:
#include<stdio.h>
void main()
{
int month;
printf("\n请输入月份:");
scanf("%d",&month);
switch(month)
{
case1:
case2:
case3:printf("春季!\n");break;
case4:
case5:
case6:printf("夏季!\n");break;
case7:
case8:
case9:printf("秋季!\n");break;
case10:
case11:
case12:printf("冬季!\n");break;
default:printf("输入的数据非法!\n");
}
}
【例5.8】编程实现一个能进行加减乘除运算的简易计算器程序。
程序源码如下:
#include<stdio.h>
void main()
{
float a,b;
char ch;
printf("input expression:a+(-,*,/)b\n");
scanf("%f%c%f",&a,&ch,&b);
switch(ch)
{
case‘+’:printf("result is%f\n",a+b);break;
case‘-’:printf("result is%f\n",a-b);break;
case’*’:printf("result is%f\n",a*b);break;
case‘/’:if(b!=0)printf("result is%f\n",a/b);
else printf("除数为0!\n");
break;
default:printf("input error\n");
}
}
练习六
【例6.1】利用if-goto循环结构求解1到100的累加和。程序源码如下:
#include<stdio.h>
void main()
{
int n=1,s=0;
loop:s=s+n;n++;
if(n<=100)goto loop;
printf("s=%d\n",s);
}
【例6.2】用for循环解决1到100的累加问题。
程序源码如下:
#include<stdio.h>
void main()
{
int i,s=0;
for(i=1;i<=100;i++)
s=s+i;
printf("s=%d\n",s);
}
【例6.3】求数学公式的和:s=1+3+5+ (99)
程序源码如下:
#include<stdio.h>
void main()
{
int s=0,i;
for(i=1;i<=99;i=i+2)
{
s=s+i;
printf("i=%d\t s=%d\n",i,s);
}
}
【例6.4】求n的阶乘n!(n!=1*2*……*n)。
程序源码如下:
#include<stdio.h>
void main()
{
int i,n;
long result=1;
printf(“input n:”);
scanf(“%d”,&n);
for(i=1;i<=n;i++)
result=result*i;
printf("%d!=%ld\n",n,j);
}
【例6.5】从键盘上输入10个数,求其平均值。
程序源码如下:
#include<stdio.h>
void main()
{
int i;
float f,sum;
for(i=1,sum=0.0;i<11;i++)
{
scanf("%f",&f);
sum=sum+f;
}
printf("average=%f\n",sum/10);
}
【例6.6】从键盘上输入若干正整数,求其中最大数和最小数,输入的数以0为中止标记。
程序源码如下:
#include<stdio.h>
void main()
{
int x,max,min;
scanf("%d",&x);
max=min=x;
for(;x!=0;)
{
if(x<min)min=x;
if(x>max)max=x;
scanf("%d",&x);
}
printf("max=%d min=%d\n",max,min);
}
【例6.7】国际象棋棋盘有64格,若在第1格放1粒谷;第2格放2粒谷;第3格放4粒谷;第4格放8粒谷……如此一直放到第64格。假设2000000粒谷有一吨重,问需要多少吨谷才够放?
程序源码如下:
#include<stdio.h>
void main()
{
int i;
float n,s;
i=1;
n=1.0;
s=1.0;
for(i=2;i<=64;i++)
{
n=n*2;
s=s+n;
}
printf("s=%f\n",s/2000000);
}
【例6.8】用while语句求1到100的累加和。
程序源码如下:
#include<stdio.h>
void main()
{
int i=1,s=0;
while(i<=100)
{
s=s+i;
i++;
}
printf(“s=%d\n”,s);
}
【例6.9】用do-while语句求1到100的累加和。
#include<stdio.h>
void main()
{
int i=1,s=0;
do
{
s=s+i;
i++;
}
while(i<=100);
printf(“s=%d\n”,s);
}
【例6.10】从键盘上连续输入若干个字符(以回车换行符为结束标记),统计字符个数(不含回车换行符)。
程序源码如下:
#include<stdio.h>
void main()
{
int n=0;
char c;
while((c=getchar())!='\n')
n++;
printf("number of character=%d\n",n);
}
程序运行结果如下:
Ruruweuiopjsbhcvgasfdugsdfg↙
number of character=27
【例6.11】对比例10,用do-while循环结构解决相同问题。即从键盘上连续输入若干个字符(以回车换行符为结束标记),统计字符个数(不含回车换行符)。
程序源码如下:
#include<stdio.h>
void main()
{
int n=-1;
char c;
do
n++;
while((c=getchar())!='\n');
printf("number of character=%d\n",n);
}
【例6.12】输入一个正整数(短整型),计算并输出该数的各位数字之和。反复执行直到输入为0时停止。
程序源码如下:
#include<stdio.h>
void main()
{
int x,x1,x2,x3,x4,x5;
scanf("%d",&x);
while(x!=0)
{
x5=x%10;
x=x/10;x4=x%10;
x=x/10;x3=x%10;
x=x/10;x2=x%10;
x1=x/10;
printf("%d\n",x1+x2+x3+x4+x5);
scanf("%d",&x);
}
}
【例6.13】令s=1+2+3+4+……+n,求出使得s的值最接近999的n值。
程序源码如下:
#include<stdio.h>
void main()
{
int s=0;
int n=1;
while(s<=999)
{
s=s+n;
n++;
}
n--;
printf(“n=%d\n”,n);
}
【例6.14】要输出五行10个星号的图形,可以用一重循环的for语句来实现。程序源码如下:
#include<stdio.h>
void main()
{
int i,k;
for(k=1;k<=5;k++)
{
for(i=1;i<=10;i++)
{
printf("*");
}
printf("\n");
}
}
【例6.15】打印所有水仙花数(水仙花数是各位数字立方和等于该数本身的三位正整数)。
程序源码如下:
#include<stdio.h>
void main()
{
int i,j,k,m,n;
for(i=1;i<=9;i++)
for(j=0;j<=9;j++)
for(k=0;k<=9;k++)
{
m=i*i*i+j*j*j+k*k*k;
n=100*i+10*j+k;
if(m==n)printf("%d\n",m);
}
}
【例6.16】从键盘上接收字符并显示出来,当按Tab键时结束输入。
程序源码如下:
#include<stdio.h>
void main()
{
char ch;
for(;;)
{
scanf("%c",&ch);
if(ch==’\t’)
break;
else
printf("%c",ch);
}
}
【例6.17】设有一张厚0.1mm而面积足够大的纸,如果将它不断地对折,问对折多少次后,其厚度可达到或超过珠穆朗玛峰的高度(8848.130米)。
程序源码如下:
#include<stdio.h>
void main()
{
float h=0.1;
int n=0;
while(h<=8848130)
{
h=h*2;
n++;
}
printf("it needs%d times!\n",n);
}
【例6.18】对除了是3的倍数以外的1~100的数求和。程序源码如下:
#include<stdio.h>
void main()
{
int s,i;
s=0;
for(i=1;i<=100;i++)
{
if(!(i%3))
continue;
s=s+i;
}
printf("s=%d",s);
}
【例6.19】检查输入的一行字符中有无相邻两字符相同。程序源码如下:
#include<stdio.h>
void main()
{
char a,b;
printf("input a string:");
b=getchar();
while((a=getchar())!=’\n’)
{
if(a==b)
{
正在阅读:
《C语言程序设计教程》例题源码09-07
庆祝70周年行走的阅读征文600字06-17
运维移交管理办法模板04-12
医院消防人员误区对策调研报告精品工作报告 - 图文09-12
MATLAB在信号处理中的应用04-22
办公室规范作业管理规定04-24
国民经济行业分类(gb-t4754-)05-25
春天的玉河作文400字07-05
第五讲 中国服务贸易05-17
高三语文上学期期末考试试题附答案11-02
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 例题
- 程序设计
- 源码
- 语言
- 教程