C程序设计教程第二版Code_第1页
C程序设计教程第二版Code_第2页
C程序设计教程第二版Code_第3页
C程序设计教程第二版Code_第4页
C程序设计教程第二版Code_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

例1.1在计算机的屏幕上显示welcome字样的C程序。

#include"stdio.h"

voidmain()

(

printf("welcome");

I

例1.2在屏幕上显示“欢迎你”字样。

/*_______________________________________________*/

/*Aprogramtoprintwelcome------------------------------------*/

#include"stdio.h"

voidmain()

(

printf(”欢迎你,

)

例L3假设每个月有线电视的费用是18元,请将1年需要交纳的费用显示在屏幕上。

/*--------求有线电视一年的费用----------------------------*/

#include"stdio.h"

voidmain()

{inta,b,total;/*变量定义*/

a=18;/*每个月的费用*/

b=12;/*一年12个月*/

total=a*b;/*计算*/

printf("一年的费用是%d元.5”,total);/*输出*/

}

例1.4计算有线电视3年的费用,并在屏幕上显示结果。

/*........求有线电视n年的费用*/

#include"stdio.h"

voidmain()

{show(3);/*计算有线电视3年的费用*/

prinif("Seeyou!\n");

)

voidshow(intyear)/*(自定义)函数定义*/

{inta,b,total;/*变量定义*/

a=18;/*每个月的费用*/

b=12;/*一年12个月*/

total=a*b*year;/*计算*/

printf("%d年的费用是%d7C.\n'.year,total);/*输出*/

}

例2.1计算并输出两个数的和。

#include"stdio.h"

voidmain()

{inta=100000,b=200000;/*定义两个整型变量,并赋值”

printf("a+b=%d\n\a+b);/*输出两个数的和*/

例2.2计算并输出两个数的乘积(错误的)。

#includc"stdio.h"

voidmain()

{inta=IO()(X)O,b=2O(X)()O;/*定义两个整型变量,并赋值*/

printf(,,a*b=%d\n,',a*b);/*输出两个数的乘积*/

例2.3计算并输出两个数的乘积(正确的)。

#include"stdio.h"

voidmain()

{floata=100000,b=200000;/*定义两个单精度浮点型变量,并赋值*/

printf(,,a*b=%f\n",a*b);/*输出两个数的乘积*/

例2.4假设有线电视每个月的费用涨了5角钱,如何计算有线电视的费用呢?将程序修改为

下面的程序行吗?(注意,该程序是错误的)。

#include"stdio.h"

voidmain()

{inta,b,total;/*变量定义*/

a=18.50;/*每个月的费用*/

b=12;/*一年12个月*/

total=a*b;/*计算一年的费用*/

primf("一年的费用是%d元刈二^⑸);

include"stdio.h"

voidmain()

{floata,b,total;/*变量定义*/

a=18.50;/*每个月的费用*/

b=12;/*一年12个月*/

total=a*b;/*计算一年的费用*/

printf("一年的费用是%£元.\11”,total);

例2.5接收用户从键盘输入的单个字符,输出对应的恺撒密码(密钥为1)。

#includc"stdio.h"

voidmain()

{charc;/*变量定义*/

prinlf("请输入一个小写字符:\n");/*提示用户输入字符*/

scanf("%c",&c);/*接收用户输入的字符*/

printf("%c-%c,,,c,(c-,a'+1)%26+'a');/*输出字母和其对应的恺撤密码*/

)

例2.6输出十进制数100的八进制、十六进制结果。

#include"stdio.h"

voidmain()

{unsignedintz=100;

printf("十进制数%(1的八进制Jft%oAn",z,z);

primf("十进制数%d的十六进制是%x.\n”,z,z);

例2.7输出十六进制数1000的八进制、十进制结果。

#include"stdio.h"

voidmain()

{unsignedz=0xl000;

printf("十六进制数%x的八进制是%o.\n",z,z);

primfT十六进制数%x十进制是%&\P00);

(

例2.8输入两个普通整型数,计算并输出它们的和。

#include"stdio.h"

voidmain()

intx,y,sum;/*定义变量可

primff请输入两个整数:”);/*提示用户输入两个整数*/

scanf("%d%d",&x,&y);/*接收输入*/

sum=x+y;产计算*/

printf("%d+%d=%d\n",x,y,sum);/*输出号

例2.9输入格式与键盘输入的匹配。

#includc"stdio.h"

voidmain()

intx,y,sum;/*定义变量*/

primf("\n请以a+b=的形式输入两个整数\n");/*提示用户输入两个整数*/

/*同时提示了输入的格式*/

scanf("%d+%d=",&x,&y);/*接收输入*/

sum=x+y;/*计算*/

printf("%d\n",sum);/*输出*/

例2.10输入两个普通八进制整数,计算并输出它们的和。

#include"stdio.h"

voidmain()

intx,y,sum;/*定义变量*/

printf("\n请输入两个八进制整数:\n");/*提示用户以八进制输入两个整数列

scanf(',%o%o",&x,&y);/*接收输入*/

sum=x+y;产计算*/

printf("0%o+0%o=0%o\n",x,y,sum);/*输出力

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

例2.11显示时整数增加域宽和左对齐。

#include"stdio.h"

voidmain()

intx,y,sum;

prinif("请输入两个整数:\n”);

scanf("%d%d,,,&x,&y);

sum=x+y;

printf("%4d+%4d=%4d\n",x,y,sum);

printf("%-4d+%-4d=%-4d\n",x,y,sum);

)

例2.12输出字符a。

#include"stdio.h"

voidmain()

(

intc三";/*定义变量的同时赋值

putchar(c);/*输出c*/

)

例2.13getchar函数的用法。

#include"stdio.h"

voidmain()

{charc;

printf("请输入一个字符:\n");

c=getchar();

putchar(c);

putchar('\n');

}

例2.14从键盘接收一个字符,输出该字符的按字典排列顺序的下一个字符,例如,输入a,

输出bo

include"stdio.h"

voidmain()

(

charc;

primf("请输入一个字符:\nM);

c=getchar();

putchar(c+1);

putchar('\n');

}

例2.15用putchar和getchar函数完成"恺撒密码"问题。

#include"stdio.h"

voidmain()

{charc;/*变量定义*/

printf("\n请输入一个字符:\nH);/*提示用户输入字符*/

c=getchar();/*接收用户输入的字符*/

putchar((c-'a'+l)%26+'a');/*输出字母和其对应的恺撤密码*/

putchar('\n');

)

例2.16修改例2.15,使用printf和scanf函数完成操作,并且密钥k可以由用户输入。

#includc"stdio.h"

voidmain()

charc,key=6;/*变量定义*/

printf(“请用户输入密钥人n");/*提示输入密钥*/

scanf("%d",&key);/*接收密钥*/

printf("\n-用户输入明文:\n”);/*提示输入明文*/

c=getchar();/*跳过一个空格*/

scanf("%c",&c);/*接收明文*/

c=(c-,a,+key)%26+'a';/*计算密文*/

printf("密文是一%c\n",c);/*输出密文*/

例2.17输入两个浮点数,输出它们的和。

#include"stdio.h"

voidmain()

/

t

floatx,y;/*变量定义*/

floatsum;/*变量定义*/

printf("请输入两个实数:\n");/*提示用户输入*/

,/*接收输入*/

scanf("%f%f>&x,&y);

sum=x+y;/*计算*/

printf(',%f+%f=%f\n",x,y,sum);/*输出*/

\

i

例2.18输出浮点数据。

#include"stdio.h"

voidmain()

floatx;

doubley;

x=12.3456789;y=987654.321098;①

printf("\n%e,%le",x,y);②

printf("\n%f,%lf',x,y);③

printf("\n%.3f,%3ir,x,y);④

printf(',\n%14.3f.%14.31f;x,y);⑤

printf("\n%・14.3f,%・14.31f\x,y);⑥

printf("\n%8.3f,%8.31f',x,y);

printf("\n%14f,%141f\n",x,y);⑦

I

例2・19算术运算符的使用。

#includc"stdio.h"

voidmain()

{printf("%d%d%d\n",7/4,8/2,12/34);

printf("%f%f%f\n",7/4,8/2,12/34);

例2.2()求各种有数据类型在内存中所占的字节数。

#include"stdio.h"

voidmain()

printfC'char=%d字节\n",sizeof(char));/*输出字符型数据所占的字节数

*/

printf("shortint=%d字节n",sizeof(shortint));/*输出短整型数据所占的字节数*/

printfC'int=%d字节\n”,sizeof(10));/*输出普通整型数据所占的字节数

*/

prinif("longint=%d字节\n”,sizeof(10L));/*输出长整型数据所占的字节数*/

printf("float=%d字节\iT,sizeof(float));/*输出单精度浮点型数据所占的字节数

*/

printf("double=%d字节\n",sizeof(2.3));/*输出双精度浮点型数据所占的字节数*/

printf(',Vchina\"=%d字节\n”,sizeof(”china"));/*输出字符串"china”所占的字节数*/

例2・21计算表达式在内存中所占的字节数,从而验证自动转换规则。

#includc"stdio.h"

voidmain()

charc='a';

shortm=10;

intx=20;

floaty=30.0;

doublez=40000.0;

printf("\n%d字节\n”,sizeof(c));

printf("%d字节\n",sizeof(c+c));

printf("%d字节\n”,sizeof('a'));

printf(H%d字节\n”,sizeofa,));

printf("%d字节\n",sizeof(m+x));

printf("%d字节\n",sizeof(10+y));

printf("%d字节\n”,sizeof(x+y));

printf("%d字节\n",sizeof(y+y));

printf("%d字节n\\sizeof(2.0));

printf("%d字节n\”,sizeof(x+z));

(

例2.22字符赋值给整型变量。

#include"stdio.h"

voidmain()

intc;/*定义,也可以使用chare;*/

c二B;/*赋值*/

pr血f("\nc=%c\n",c+'a'-'A,);/*输出*/

例2.23短整型变量赋值给长整型变量。

#includc"stdio.h"

voidmain()

{longc;/*定义long类型变量*/

shortinta;/*定义short类型变量*/

a=32763;/*赋值*/

c=a;/*赋值*/

printf("c=%Id\n",c);/*输出*/

例2.24float类型的数赋值给double类型的变量。

#includc"stdio.h'1

voidmain()

floatx;/*定义floai类型变量*/

doubley;/*定义double类型变量*/

x=1.234567E+37;/*赋值*/

y=x;/*赋值*/

printf(,,y=%le\n”,y);/*输出*/

i

1

例2.25整数表达式赋值给字符变量。

#include"stdio.h"

voidmain()

(

charc;

inti=0x3241;

printf("\ni=%c",i);①

c=i;

printf("\nc=%d",c);②

printf(u\ni=%dH,i);③

i

i

例2.26表达式变量赋值给整型变量。

#include"stdio.h"

voidmain()

(

longc;/*定义long类型变量号

shortinta;/*定义short类型变量*/

c=-45678L;/*使用给长整型变量赋值*/

a=c;/*使用长整型变量赋值给短整型变量*/

pnnif("\na=%d",a);/*输出短整型变量的值曾

例2.27float变量赋值给整型变量。

#include"stdio.h"

voidmain()

floatx;/*定义float变量*/

inty;/*定义int变量*/

x=7.23e+37;/*给x赋值*/

y=x;/*给y赋值*/

printf("y=%d\nu,y);/*输出*/

I

例2.28无符号整数赋值给整型变量

#include"stdio.h"

voidmain()

{

unsignedinti=4294967295;/*定义unsigned变量*/

inta;/*定义int变量*/

a=i;/*赋值*/

printf(,,a=%d\n",a);/*按整型输出*/

printf(',i=%d\n'\a);

printf("a=%u\n”,a);/*按无符号输出*/

printf("i=%u\n",a);

)

例2.29将无符号整型数赋值给整型数。

#includc"stdio.h"

voidmain()

(

unsignedinti=32767j=32768;/*定义unsigned变量*/

longa.b;/*定义long变量*/

a=i;b=j;/*赋值*/

printf(n\na=%Id",a);/*按长整型输出*/

printf("\nb=%ld",b);

1

例2.30分析下面两个程序的运行结果。

#include"stdio.h"

voidmain()

(

longdata,y,*pointer;

data=7;

pointer=&data;

y=*pointer;

printf("\ny=%ld",y);

}

例2.31分析下面程序的运行结果。

#include"stdio.h"

voidmain()

{

intbcta=10;/*定义整型变量*/

int*pointer,*q;/*定义指针变量*/

pointer=β/*使pointer指向beta*/

*pointer=20;/*将20赋值给pointer所指的单元*/

beta=*pointer+30;/*将pointer所指的单元的值与30相加,

赋值给beta*/

q=β/*使q指向beta*/

printf("*q=%d\n\*q);/*输出号

)

例2.32指针作为scanf函数的参数。

#include"sidio.h"

voidmain()

intx,y,sum,*p;/*定义变量*/

p=&x;/*p指向x*/

prinif("\nPleaseentertwointegers:\n");

scanf(',%d%d",p,&y);/*接收用户输入*/

sum=x+y;/*计算*/

printf("\n%d+%d=%d",x,y,sum);/*输出*/

1

例2.33变量没有定义的错误程序。

#includc"stdio.h"

voidmain()

{intCounter;

prinlf("请输入一个整数:”);

scanf("%d",&counter);/*counter未定义,错误语句叼

printf("%d",counter);rcounter未定义,错误语句叼

例2.34使用scanf缺少取地址符的错误程序。

#include"stdio.h"

voidmain()

intx;/*定义变量*/

printf("\n请输入一个整数:\n");/*提示输入*/

,,,,/*接收输入,错误语令I

scanf(%dfx);

printf(',%d*%d=%d\n",x,x,x*x);/*输出*/

)

例2.35指针使用的错误程序。

#include"stdio.h"

voidmain()

intx;/*定义变量x*/

int*p=&x;/*指针变量p*/

printf("\n请输入一个整数:\nH);/*提示输入*/

scanfC'W.&p);华接收输入,错误语令I

printf("%d*%d=%d\n',,*p,*p,(*p)*(*p));/*输出*/

例3.1输出100以内的正偶数,每行输出10个数。

#include"stdio.h"/*第1行*/

voidmain()/*第2行*/

{intx;/*第3行*/

x=l;/*第4行*/

fbr(;x<=100;x++)/*第5行*/

{if(x%2==0)/*第6行*/

printf("%4d",x);/*第7行号

if(x%20!=0)/*第8行*/

/*第9行*/

else/*第10行*/

printf("\n");/*第11行*/

)/*第12行*/

return;/*第13行*/

)/*第14行*/

例3.2编写程序输入长方形的长和宽,求长方形的面积和周长并输出,用浮点数据处理。

#include"sidio.h"

voidmain()

doublelength,width,area;产定义变量*/

printf("请输入长方形的长/*提示用户输入长方形的长*/

scanf("%lf',&length);浮接收输入可

printf(“请输入长方形的宽:");/*提示用户输入长方形的宽为

scanf("%lf',&width);/*接收输入*/

area=length*width;/*计算长方形的面积为

prinlfC长方形的面积=%lf;area);/*输出长方形的面积*/

printf("长方形的周长二%lf',2*(length+width));

/*输出长方形的周长*/

例3.3编写程序,输入x和y,交换它们的值,并输出交换前后接收输入。

/*----------------------------swapxandy-----------------------------------------*/

include"sldio.h"

voidmain()

{

intx,y,temp;

prinlf("请输入两个整数:");/*提示用户输入两个整数*/

scanf("%d%d",&x,&y);/*接收输入列

prinlf("交换以前x=%3dy=%3d\n",x,y);/*输出交换以前x和y的内容*/

temp=x;

x=y;

y=temp;

printf("交换以后x=%3dy=%3d",x,y);/*输出交换以后x和y的内容*/

}

例3.4编写程序,接收用户输入的x和y,输出这两个数中大的那个数。

/*-------------------比较大小----------------------------*/

#include"stdio.h"

voidmain()

intx,y;/*变量定义*/

prinlf("请输入两个整数/*提示用户输入两个整数*/

scanf("%d%d",&x,&y);/*接收输入*/

if(x>y)/*如果x大于y*/

printf("max=%d\n",x);/*输出X*/

else/*否则*/

printf("max=%d\n",y);/*输出y*/

例3.5输入1086,判断下列程序的运行结果。

/*-------------------比较大小----------------------------♦/

#include"stdio.h"

voidmain()

(

intx,y,z;/*变量定义刃

printf("请输入两个整数:");/*提示用户输入两个整数*/

scanf("%d%d%d",&x,&y,&z);雄接收输入号

if(x>y>z)/*错误语句*/

printfC最大值二%d\n”,x);/*输出X*/

)

例3.6输入1086,判断下列程序的运行结果。

/*-------------------比较大小-------

#include"stdio.h"

voidmain()

(

intx,y,z;/*变量定义*/

printf("请输入两个整数:");/*提示用户输入两个整数*/

scanf("%d%d%d",&x,&y,&z);/*接收输入*/

if(x>y&&y>z)/*正确*/

printff最大值=%d\n'x);/*输出X*/

例3.7编写程序,输入报名者的岁数,如果大于等于18岁,允许参加比赛(只分•组

/*------------比赛报名处理1--------------------*/

#include"stdio.h"

voidmain()

(

intage;/*定义整型变量记录岁数*/

printf("请输入年龄(0<=年龄v=150):“);

scanf("%d”,&age);/*接收岁数*/

if(age>=18)尸判断岁数是否大于等于18力

printf(”允许参加\n");/*如果是输出“允许参加”*/

例3.8编写程序,输入报名者的岁数,如果大于等于18岁,分在“成人”组;否则,分在

“儿童”组。

/*------------比赛报名处理2......................*/

#includc"stdio.h"

voidmain()

intage;/*定义整型变量记录岁数*/

printf(”请输入年龄(0<=年龄<=150):");

scanf("%d",&age);/*接收岁数*/

if(age>=18)/*判断岁数大于等于18*/

printf("参加成人组\n”);/*参加成人组*/

else

printf("参加儿童组\n”);/*参加儿童组*/

}

本例使用的是ifelse形式的选择结构。

例3.9编写程序,输入报名者的岁数,小于18岁分儿童组,18岁到45岁之间分在青年组,

45到55岁之间分在中年组,55岁以上的分老年组。

/*--------------比赛报名处理3----------------------*/

#include"stdio.h"

voidmain()

(

intage;/*定义整型变量记录岁数*/

printf(”请输入年龄(0<=年龄v=150):");

scanf("%d”,&age);/*接收岁数*/

if(age<18)

printf(“参加儿童组\n”);/*岁数小于18参加儿童组”*/

elseif(age<45)

printf("参加青年组\n”);/*岁数小于45输出参加青年组*/

elseif(age<55)

printf,参加中年组\n”);/*岁数小于55输出参加中年组*/

else

printf("参加老年组\n”);/*参加老年组为

例3.10使用if形式编写程序:输入x,求出并输出x的绝对值。

#include"stdio.h"

/*-----------------abs(x)------------------------------*/

voidmain()

intx;/*变量定义*/

printf("请输入一个整数/*提示*/

scanf("%dM,&x);芦接收输入

if(x<0)/*如果x小于0*/

/*x取负*/

printf("|x|二%d\n",x);/*输出结果*/

}

例3.11使用if形式编写程序:若a>b将两个数的位置调换;否则,保持不变。

#inciudc"stdio.h"

•swapaandb-*/

voidmain()

{inta,b,temp;/*变量定义*/

printf("请输入两个整数/*提示*/

scanf("%d%d",&a,&b);/*接收输入*/

if(a>b)/*如果a小于b*/

{temp=a;/*a与b做交换*/

a=b;

b=temp;

printf("%d,%d\n",a,b);/*输出a和b*/

例3.12请判断下面程序的执行结果,并解释该程序的功能。

#include"stdio.h"

voidmain()

(

inta=10,b=20,x;

x=a;

if(a<b)

x=b;

printf("%d\n\x);

)

例3.13用if形式求3个数中的最大数。

include"stdio.h"

/*............求3个数中的最大数......................*/

voidmain()

{inta,b,c;产变量定义*/

printf("请输入三个整数:");/*提示*/

scanf("%d%d%d",&a,&b,&c);/*接收输入*/

if(a>b&&a>c)/*如果a>b并且a>c*/

printf("%d最大\n",a);/*输出a*/

if(b>a&&b>c)/*如果b>a并且b>c*/

printf("%d最大\n”,b);/*输出b*/

if(c>a&&c>b)/*如果c>a并且c>b*/

printf("%d最大\n",c);/*输出c*/

例3.14将输入字符的大写字符转换成小写字符输出,小写字符原样输出。

#includenstdio.h"

/*-------------------lowercase....................................*/

voidmain()

intc;/*变量定义*/

c=getchar();/*接收输入*/

if(c>='A'&&c<='Z')/*若字母大写*/

putchar(c+32);/*输出小写*/

else

putchar(c);/*输出原字符*/

例3.15编写程序:输入两个数,求两个数的商,要求除数不为零时输出商,除数为零时,

提示用户输入有误。

include"stdio.h"

/*.........................adividedbyb...................................*/

voidmain()

{inta,b;

printfC请输入两个整数

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

if(b==0)

printf("不能被0除!\n");

else

printf("%f'J.O*a/b);

}

例3.16编写程序:输入两个数,用指针指向两个数中大的那个数,输出指针所指的数。

include"stdio.h"

voidmain()

(

inta=30,b=20,*x;/*定义变量*/

if(a>b)

x=&a;/*a大于b时,指针x指向a*/

else

x=&b;/*否则,指针x指向a*/

printf("最大值是%d.\n",*x);/*输出指针x指向的存储单元的内容*/

}

例3.17用elseif形式解决上面的求3个数中的最大数。

include"stdio.h"

/*.............求3个数中的最大数........................*/

voidmain()

{inta,b,c;/*变量定义*/

pr血f(”请输入三个整数:");/*提示可

scanf("%d%d%d",&a,&b,&c);/*接收输入*/

if(a>b&&a>c)/*如果a>b并且a>c*/

printf("%d最大\n”,a);/*输出a*Z

if(b>a&&b>c)/*否则如果b>a并且b>c*/

printf("%d最大\n”,b);/*输出b*/

if(c>a&&c>b)/*否则如果c>a并且c>b*/

printf(H%d最大\n”,c);/*输出c*/

例3.18分析下列程序,并在横线处填入对输入的整数的性质进行描述的术语,术语可以从

下面挑选。

A.“正偶数”B.“正奇数”C.“负偶数”D.“负数”

#includc"stdio.h'1

voidmain()

{intx;

printR"请输入一个整数华;

scanf("%d",&x);

if(x>0)

if(x%2==0)

printf("_>");

printf(".

例3.19假设花店里有四种花:玫瑰(rose)、百合(lily)、康乃馨(carnation)和兰花(orchid),

其单价分别是4.50、20.00、2.00和6.00。编写程序,首先显示一个简易菜单,将花店里有

的花列出来,请用户选择,然后请用户输入要买的数量,计算用户应付的费用并输出。

#includc"stdio.h"

voidmain()

(

intkind,amount;/*变量定义

doublefee;

printf("\n###欢迎你!###"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论