论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

C语言习题_经典习题_C语言教程

文章类别:C语言程序设计 | 发表日期:2010-10-18 8:52:02

C语言习题_经典习题_C语言教程

 

学了这么多语言,发现有好多习题在每种语言的学习中都会有,这些题不仅常考,实践中也经常用到,希望刚学习语言的各位学弟学妹能够熟练掌握。以后我们可以来这里讨论一些更深入的编程技巧,那才是编程快乐的源泉。
举几个例子,难免挂一漏万,请各位前辈指教。

了解语言面貌
helloworld

判断的使用
求一元二次方程的根
判断闰年
输入三个整数,把这三个数由小到大输出

循环的使用
判断素数
找出1000以内的水仙花数
找出1000以内的所有完数
求两个数的最大公约数和最小公倍数(用辗转相除法或辗转相减法)
分解质因数
输出9*9口诀
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
猜数游戏(计算机给出随机数,由用户来猜。)

字符的处理
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

文件的处理
将两个文本文件合并成一个新的文本文件

/*helloworld*/

#include

void main()
{
printf(hello world!);
}

/*功能:求一元二次方程的解。*/
#include math.h
main()
{float a,b,c,disc,x1,x2,p,q;
scanf(“%f,%f,%f”, &a, &b, &c);
disc=b*b-4*a*c;

if (fabs(disc)<=1e-6) /*fabs():求绝对值库函数*/
printf(“x1=x2=%7.2f\n”, -b/(2*a)); /*输出两个相等的实根*/
else
{ if (disc>1e-6)
{x1=(-b+sqrt(disc))/(2*a); /*求出两个不相等的实根*/
x2=(-b-sqrt(disc))/(2*a);
printf(x1=%7.2f,x2=%7.2f\n, x1, x2);
}
else
{p=-b/(2*a); /*求出两个共轭复根*/
q=sqrt(fabs(disc))/(2*a);
printf(“x1=%7.2f + %7.2f i\n“, p, q); /*输出两个共轭复根*/
printf(”x2=%7.2f - %7.2f i\n“, p, q);
}
}
}

/*功能:判断闰年*/

main()

{int year,leap=0; /* leap=0:预置为非闰年*/

printf(Please input the year:);

scanf(%d,&year);

if (year % 4==0) {if (year % 100 != 0) leap=1;}
else {if (year%400==0) leap=1; }
if (leap) printf(%d is a leap year.\n,year);
else printf(%d is not a leap year.\n,year);
}

利用逻辑运算能描述复杂条件的特点,可将上述程序优化如下:

main()
{int year;
printf(Please input the year:);
scanf(%d,&year);
if ((year%4==0 && year%100!=0)||(year%400==0))
printf(%d is a leap year.\n,year);
else
printf(%d is not a leap year.\n,year);
}

/*功能: 输入任意三个整数num1、num2、num3,求三个数中的最大值。*/
main()
{int num1,num2,num3,max;
printf(Please input three numbers:);
scanf(%d,%d,%d,&num1,&num2,&num3);
if (num1>num2)
max=num1;
else
max=num2;
if (num3>max)
max=num3;
printf(The three numbers are:%d,%d,%d\n,num1,num2,num3);
printf(max=%d\n,max);
}

main()
{ int i=11, j, counter=0;
for( ; i<=100; i+=2) /*外循环:为内循环提供一个整数i*/
{ for(j=2; j<=i-1; j++) /*内循环:判断整数i是否是素数*/
if(i%j= =0) /*i不是素数*/
break; /*强行结束内循环,执行下面的if语句*/
if(counter%10= =0) /*每输出10个数换一行*/
printf(“\n”);
if( j >= i ) /*整数i是素数:输出,计数器加1*/
{ printf(“%6d”,i);
counter++;
}
}}

将两个文本文件合并成一个新的文本文件

这倒有个现成的(十年历史以上):

/*
** ATTACH.C
**
** 将第一个文件(虱子)加放在第二个文件(狗)的尾后。
** 若然第二个文件不存在,就自行起个新的。
** wing1978@sohu.com
*/
#define ATTACH_BUFFER_SIZE 32768 // 64KB 以下

/*--------------------------------- Includes --------------------------------*/
#include // exit()
#include
#include // toupper()

/*----------------------------- Global Variables ----------------------------*/
FILE *Flea, *Dog; // 将虱子放在狗身上
unsigned int BlockSize;
unsigned int ReadSize;
int Quiet = 0; // 没人反对便开口说话
char DogMode[3] = {'a', 'b', '\0'}; // 没指示便加长文件
unsigned char p[ATTACH_BUFFER_SIZE];

/*------------------------ Local function prototypes ------------------------*/
static void Exit (int);

/*------------------------------ Main Function ------------------------------*/
int main (int ArgC, char *ArgV[])
{
char Option;

if (ArgC < 3) {
printf( \n\n用法 : %s 虱子 狗儿 [q/Q]\n, *ArgV[0]);
printf( \n我们是要将虱子放在狗儿身上。\n);
printf( q/Q 不动声息地\n);
printf( o/O 不作声还把狗儿也去掉,只剩下虱子。\n);
return 1;
}
if (ArgC > 3) {
Option = (char)toupper( *ArgV[3]);
if ('Q' == Option)
Quiet = 1;
else if ('O' == Option) {
Quiet = 1;
DogMode[0] = 'w';
}
}
if (NULL == (Flea = fopen( ArgV[1], rb)))
Exit( 2);
if (NULL == (Dog = fopen( ArgV[2], DogMode)))
Exit( 3);

BlockSize = ATTACH_BUFFER_SIZE;

if (!Quiet) {
printf( 缓冲区大少是 %u bytes.\n, BlockSize);
printf( ... %s 狗儿跑得还不慢呢 ..., ArgV[2]);
}

while (0 < (ReadSize = fread( p, 1, BlockSize, Flea))) {
fwrite( p, ReadSize, 1, Dog);
}

fclose( Flea);
fclose( Dog );

if (!Quiet ) {
printf( 叮上了。\n);
}
Exit( 0);
return 0; // make ANSI checker happy
} // main ()

/*
** Exit()
*/
static void Exit (int Rc)
{
if (!Quiet) {
switch (Rc) {
case 2:
printf( \n虱子太小 (第一份文件开不成)\n);
break;
case 3:
printf( \n狗儿太快 (第二份文件开不成)\n);
break;
case 4:
printf( \n狗儿没毛 (malloc 说没内存了)\n);
break;
}
}
exit( Rc);
} // Exit()

 

我想看C语言视频教程

视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058