1-1
#include<stdio.h>
int main(void)
{
int n;
int factorial(int n);
scanf("%d",&n);
printf("%d\n",factorial(n));
return 0;
}
int factorial(int n)
{
int i,fact=1;
for(i=1;i<=n;i++)
fact=fact*i;
return fact;
}
2-5
#include<stdio.h>
#include<math.h>
int main(void)
{
int money,year;
double rate,sum;
printf("Enter money:");
scanf("%d",&money);
printf("Enter year:");
scanf("%d",&year);
printf("Enter rate:");
scanf("%lf",&rate);
sum=money*pow(1+rate,year);
printf("sum=%.2f\n",sum);
return 0;
}
2-6
#include<stdio.h>
int main(void)
{
int fahr,lower,upper;
double celsius;
printf("Enter lower:");
scanf("%d",&lower);
printf("Enter upper:");
scanf("%d",&upper);
printf("fahr celsius\n");
for(fahr=lower;fahr<=upper,fahr++){
celsius=(5.0/9.0)*(fahr-32);
printf("%d%6.1f\n",fahr,celsius);
}
return 0;
}
2-7
#include<stdio.h>
int main(void)
{
int i,n,sum;
printf("Enter n:");
scanf("%d",&n);
sum=0;
for(i=1;i<=n;i++){
sum=sum+i;
}
printf("Sum of numbers from 1 to %d is %d\n",n,sum);
return 0;
}
2-8
#include<stdio.h>
int main(void)
{
int denominator,flag,i,n;
double item,sum;
printf("Enter n:");
scanf("%d",&n);
flag=1;
denominator=1;
sum=0;
for(i=1;i<=n;i++){
item=flag*1.0/denominator;
sum=sum+item;
flag=-flag;
denominator=denominator+2;
}
printf("sum=%f\n",sum);
return 0;
}
2-9
#include<stdio.h>
int main(void)
{
int i,n;
double product;
printf("Enter n:");
scanf("%d",&n);
product=1;
for(i=1;i<=n;i++){
product=product*i;
}
printf("product=%.0f\n",product);
return 0;
}
2-10
#include<stdio.h>
#include<math.h>
int main(void)
{
int i,n;
double power;
printf("Enter n:");
scanf("%d",&n);
for(i=0;i<=n;i++){
power=pow(2,i);
printf("pow(2,%d)=%.0f\n",i,power);
}
return 0;
}
2-11
#include<stdio.h>
double fact(int n);
int main(void)
{
int i,n;
double result;
printf("Enter n:");
scanf("%d",&n);
for(i=0;i<=n;i++){
result=fact(i);
printf("%d!=%.0f\n",i,result);
}
return 0;
}
double fact(int n)
{
int i;
double product;
product=1;
for(i=1;i<=n;i++){
product=product*i;
}
return product;
}
3-1
#include<stdio.h>
int main(void)
{
int mynumber=38;
int yournumber;
printf("Input your number:");
scanf("%d",&yournumber);
if(yournumber==mynumber)
printf("Ok!you are right!\n");
else
if(yournumber>mynumber)
printf("Sorry!your number is bigger than my number!\n");
else
printf("Sorry!your number is smaller than my number!\n");
return 0;
}
3-2
#include<stdio.h>
int main(void)
{
int number;
printf("Enter a number:");
scanf("%d",&number);
if(number%2==0){
printf("The number is even.\n");
}
else{
printf("The nuumber is odd.\n");
}
return 0;
}
3-3
#include<stdio.h>
int main(void)
{
int count,i,n;
double grade,total;
printf("Enter n:");
scanf("%d",&n);
total=0;
count=0;
for(i=1;i<=n;i++){
printf("Enter grade #%d:",i);
scanf("%lf",&grade);
total=total+grade;
if(grade<60){
count++;
}
}
printf("Grade average=%.2f\n",total/n);
printf("Number of failures=%d\n",count);
return 0;
}
3-4
#include<stdio.h>
int main(void)
{
double x,y;
printf("Enter x:");
scanf("%lf",&x);
if(x<0){
y=0;
}
else if(x<=15){
y=4*x/3;
}
else{
y=2.5*x-10.5;
}
printf("f(%.2f)=%.2f\n",x,y);
return 0;
}
3-5
#include<stdio.h>
int main(void)
{
double value1,value2;
char op;
printf("Type in an expression:");
scanf("%lf%c%lf",&value1,&op,&value2);
if(op=='+')
printf("=%.2f\n",value1+value2);
else if(op=='-')
printf("=%.2f\n",value1-value2);
else if(op=='*')
printf("=%.2f\n",value1*value2);
else if(op=='/')
printf("=%.2f\n",value1/value2);
else
printf("Unknown operator\n");
return 0;
}
3-7
#include<stdio.h>
int main(void)
{
int digit,letter,other;
char ch;
int i;
digit=letter=other=0;
printf("Enter 10 characters:");
for(i=1;i<=10;i++){
ch=getchar();
if((ch>='a'&& ch<='z')||(ch>='A'&& ch<='Z'))
letter++;
else if(ch>='0'&& ch<='9')
digit++;
else
other++;
}
printf("letter=%d,digit=%d,other=%d\n",letter,digit,other);
return 0;
}
3-8
#include<stdio.h>
int main(void)
{
int choice,i;
double price;
for(i=1;i<=5;i++){
printf("[1]Select crisps\n");
printf("[2]Select popcorn\n");
printf("[3]Select chocolate\n");
printf("[4]Select cola\n");
printf("[0]exit\n");
printf("Enter choice:");
scanf("%d",&choice);
if(choice==0)
break;
switch(choice){
case 1:price=3.0;break;
case 2:price=2.5;break;
case 3:price=4.0;break;
case 4:price=3.5;break;
default:price=0.0;break;
}
printf("price=%0.1f\n",price);
}
printf("Thanks\n");
return 0;
}
3-9
#include<stdio.h>
int main(void)
{
double value1,value2;
char op;
printf("Type in an expression:");
scanf("%lf%c%lf",&value1,&op,&value2);
switch(op){
case'+':
printf("=%.2f\n",value1+value2);
break;
case'-':
printf("=%.2f\n",value1-value2);
break;
case'*':
printf("=%.2f\n",value1*value2);
break;
case'/':
printf("=%.2f\n",value1/value2);
break;
default:
printf("Unknown operator\n");
break;
}
return 0;
}
3-10
#include<stdio.h>
int main(void)
{
int blank,digit,other;
char ch;
int i;
blank=digit=other=0;
printf("Enter 10 characters:");
for(i=1;i<=10;i++){
ch=getchar();
switch(ch){
case' ':
case'\n':
blank++;
break;
case'0':case'1':case'2':case'3':case'4':
case'5':case'6':case'7':case'8':case'9':
digit++;
break;
default:
other++;
break;
}
}
printf("blank=%d,digit=%d,other=%d\n",blank,digit,other);
return 0;
}
3-11
#include<stdio.h>
int main(void)
{
double value1 ,value2;
char op;
printf("Type in an expression:");
scanf("%lf%c%lf",&value1,&op,&value2);
if(op=='+')
printf("=%.2f\n",value1+value2);
else if(op=='-')
printf("=%.2f\n",value1-value2);
else if(op=='*')
printf("=%.2f\n",value1*value2);
else if(op=='/')
if(value2!=0)
printf("=%.2f\n",value1/value2);
else
printf("Divisor can not be 0!\n");
else
printf("Unknown operator!\n");
return 0;
}
4-1
#include<stdio.h>
#include<math.h>
int main(void)
{
int denominator,flag;
double item,pi;
flag=1;
denominator=1;
item=1.0;
pi=0;
while(fabs(item)>=0.0001){
item=flag*1.0/denominator;
pi=pi+item;
flag=-flag;
denominator=denominator+2;
}
pi=pi*4;
printf("pi=%.4f\n",pi);
return 0;
}
4-2
#include<stdio.h>
int main(void)
{
int count,num;
double grade,total;
num=0;
total=0;
count=0;
printf("Enter grades:");
scanf("%lf",&grade);
while(grade>=0){
total=total+grade;
num++;
if(grade<60)
count++;
scanf("%lf",&grade);
}
if(num!=0){
printf("Grade average is %.2f\n",total/num);
printf("Number of failures is %d\n",count);
}
else
printf("Grade average is 0\n");
return 0;
}
4-3
#include<stdio.h>
int main(void)
{
int count,number;
count=0;
printf("Enter a number:");
scanf("%d",&number);
if(number<0)number=-number;
do{
number=number/10;
count++;
}while(number!=0);
printf("It contains %d digits.\n",count);
return 0;
}
4-4
#include<stdio.h>
int main(void)
{
int i,m;
printf("Enter a number:");
scanf("%d",&m);
for(i=2;i<=m/2;i++)
if(m % i==0)
break;
if(i>m/2&&m!=1)
printf("%d is a prime number!\n",m);
else
printf("No!\n");
return 0;
}
4-5
#include<stdio.h>
int main(void)
{
int mynumber=38;
int count=0,yournumber;
for(count=1;count<=5;count++){
printf("Input your number:");
scanf("%d",&yournumber);
if(yournumber==mynumber){
printf("OK! you are right!\n");
break;
}
else
if(yournumber>mynumber)
printf("Sorry! your number is bigger than my number!\n");
else
printf("Sorry! your number is smaller than my number!\n");
}
printf("Game is over!\n");
return 0;
}
4-6
#include<stdio.h>
double fact(int n);
int main(void)
{
int i;
double sum;
sum=0;
for(i=1;i<=100;i++)
sum=sum+fact(i);
printf("1!+2!+...+100!=%e\n",sum);
return 0;
}
double fact(int n)
{
int i;
double result;
result=1;
for(i=1;i<=n;i++)
result=result*i;
return result;
}
4-7
#include<stdio.h>
int main(void)
{
int i,j;
double item,sum;
sum=0;
for(i=1;i<=100;i++){
item=1;
for(j=1;j<=i;j++)
item=item*j;
sum=sum+item;
}
printf("1!+2!+...+100!=%e\n",sum);
return 0;
}
4-8
#include<stdio.h>
int main(void)
{
int i,mark,max,n;
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d marks:",n);
scanf("%d",&mark);
max=mark;
for(i=1;i<n;i++){
scanf("%d",&mark);
if(max<mark)
max=mark;
}
printf("Max=%d\n",max);
return 0;
}
4-8(2)
#include<stdio.h>
int main(void)
{
int mark,max;
printf("Enter marks:");
scanf("%d",&mark);
max=mark;
while(mark>=0){
if(max<mark)
max=mark;
scanf("%d",&mark);
};
printf("Max=%d\n",max);
return 0;
}
4-9
#include<stdio.h>
int main(void)
{
int x;
printf("Enter x:");
scanf("%d",&x);
while(x!=0){
printf("%d",x%10);
x=x/10;
}
return 0;
}
4-10
#include<stdio.h>
#include<math.h>
int main(void)
{
int count,i,m,n;
count=0;
for(m=2;m<=100;m++){
n=sqrt(m);
for(i=2;i<=n;i++)
if(m%i==0)
break;
if(i>n){
printf("%6d",m);
count++;
if(count%10==0)
printf("\n");
}
}
printf("\n");
return 0;
}
4-11
#include<stdio.h>
int main(void)
{
int i,x1,x2,x;
x1=1;
x2=1;
printf("%6d",x1,x2);
for(i=1;i<=8;i++){
x=x1+x2;
printf("%6d",x);
x1=x2;
x2=x;
}
printf("\n");
return 0;
}
4-12(1)
#include<stdio.h>
int main(void)
{
int child,men,women;
for(men=0;men<=45;men++)
for(women=0;women<=45;women++)
for(child=0;child<=45;child++)
if(men+women+child==45&&men*3+women*2+child*0.5==45)
printf("men=%d,women=%d,child=%d\n",men,women,child);
return 0;}
4-12(2)
# include<stdio.h>
int main(void)
{
int child,women,men;
for(men=0;men<=15;men++)
for(women=0;women<=22;women++){
child=45-women-men;
if(men*3+women*2+child*0.5==45)
printf("men=%d,women=%d,child=%d\n",men,women,child);
}
return 0;
}
5-1
#include<stdio.h>
int main(void)
{
double height,radius,volume;
double cylinder(double r,double h);
printf("Enter radius and height:");
scanf("%lf%lf",&radius,&height);
volume=cylinder(radius,height);
printf("Volume=%.3f\n",volume);
return 0;
}
double cylinder(double r,double h)
{
double result;
result=3.1415926*r*r*h;
return result;
}
5-3
#include<stdio.h>
#include<math.h>
int main(void)
{
double e,pi;
double funpi(double e);
printf("Enter e:");
scanf("%lf",&e);
pi=funpi(e);
printf("pi=%f\n",pi);
return 0;
}
double funpi(double e)
{
int denominator,flag;
double item,sum;
flag=1;
denominator=1;
item=1.0;
sum=0;
while(fabs(item)>=e){
item=flag*1.0/denominator;
sum=sum+item;
flag=-flag;
denominator=denominator+2;
}
return sum*4;
}
5-4
#include<stdio.h>
#include<math.h>
int main(void)
{
int count,m;
int prime(int m);
count=0;
for(m=2;m<=100;m++){
if(prime(m)!=0){
printf("%6d",m);
count++;
if(count%10==0) printf("\n");
}
}
printf("\n");
}
int prime(int m)
{
int i,n;
if(m==1)return 0;
n=sqrt(m);
for(i=2;i<=n;i++)
if(m%i==0){
return 0;
}
return 1;
}
5-5
#include<stdio.h>
int main(void)
{
void pyramid(int n);
pyramid(5);
return 0;
}
void pyramid(int n)
{
int i,j;
for(i=1;i<=n;i++){
for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=i;j++)
printf("%d",i);
putchar('\n');
}
}
5-6
#include<stdio.h>
float result_real,result_imag;
int main(void)
{
float imag1,imag2,real1,real2;
void complex_prod(float real1,float imag1,float real2,float imag2);
void complex_add(float real1,float imag1,float real2,float imag2);
printf("Enter 1st complex number(real and imaginary):");
scanf("%f%f",&real1,&imag1);
printf("Enter 2nd complex number(real and imaginary):");
scanf("%f%f",&real2,&imag2);
complex_add(real1,imag1,real2,imag2);
printf("addition of complex is %f+%fi\n",result_real,result_imag);
complex_prod(real1,imag1,real2,imag2);
printf("product of complex is %f+%fi\n",result_real,result_imag);
return 0;
}
void complex_add(float real1,float imag1,float real2,float imag2)
{
result_real=real1+real2;
result_imag=imag1+imag2;
}
void complex_prod(float real1,float imag1,float real2,float imag2)
{
result_real=real1*real2-imag1*imag2;
result_imag=real1*imag2+real2*imag1;
}
5-7
#include<stdio.h>
int x;
int f();
int main(void)
{
int a=1;
x=a;
a=f();
{
int b=2;
b=a+b;
x=x+b;
}
printf("%d%d",a,x);
return 0;
}
int f()
{
int x=4;
return x;
}
5-8
#include<stdio.h>
float cash;
int main(void)
{
int choice;
float value;
void income(float number),expend(float number);
cash=0;
printf("Enter operate choice(0--end,1--income,2--expend):");
scanf("%d",&choice);
while (choice!=0){
if(choice==1||choice==2){
printf("Enter cash value:");
scanf("%f",&value);
if(choice==1)
income(value);
else
expend(value);
printf("current cash:%.2f\n",cash);
}
printf("Enter operate choice(0--end,1--income,2--expend):");
scanf("%d",&choice);
}
return 0;
}
void income(float number)
{
cash=cash+number;
}
void expend(float number)
{
cash=cash-number;
}
5-9
#include<stdio.h>
double fact_s(int n);
int main(void)
{
int i,n;
printf("Input n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
printf("%3d!=%.0f\n",i,fact_s(i));
return 0;
}
double fact_s(int n)
{
static double f=1;
f=f*n;
return(f);
}
6-1
#include<stdio.h>
int main(void)
{
int i;
char ch_lower,ch_upper;
for(i=1;i<=6;i++)
{
scanf("%c",&ch_lower);
if(ch_lower>='a'&&ch_lower<='z')
ch_upper=ch_lower-'a'+'A';
printf("%c->%c->%d\n",ch_lower,ch_upper,ch_upper%10);
}
return 0;
}
6-2
#include<stdio.h>
int main(void)
{
char ch='w';
int a=2,b=3,c=1,d,x=10;
printf("%d",a>b==c);
printf("%d",d=a>b);
printf("%d",ch>'a'+1);
printf("%d",d=a+b>c);
printf("%d",b-1==a!=c);
printf("%d\n",3<=x<=5);
return 0;
}
6-3
#include<stdio.h>
int main(void)
{
char ch='w';
int a=2,b=0,c=0;
float x=3.0;
printf("%d",a&&b);
printf("%d",a||b&&c);
printf("%d",!a&&b);
printf("%d",a||3+10&&2);
printf("%d",!(x==2));
printf("%d",!x==2);
printf("%d\n",ch||b);
return 0;
}
6-5
#include<stdio.h>
int main(void)
{
char ch;
printf("input characters:");
ch=getchar();
while(ch!='\n'){
if(ch>='A'&&ch<='Z')
ch=ch-'A'+'a';
else if(ch>='a'&&ch<='z')
ch=ch-'a'+'A';
putchar(ch);
ch=getchar();
}
return 0;
}
7-1
#include<stdio.h>
int main(void)
{
int count[9];
int i,response;
for(i=1;i<=8;i++)
count[i]=0;
for(i=1;i<=1000;i++){
printf("input your response:");
scanf("%d",&response);
if(response<1||response>8)
printf("this is a bad response:%d\n",response);
else
count[response]++;
}
printf("result:\n");
for(i=1;i<=8;i++)
printf("%4d%4d\n",i,count[i]);
return 0;
}
7-2
#include<stdio.h>
int main(void)
{
int i;
int fib[10]={1,1};
for(i=2;i<10;i++)
fib[i]=fib[i-1]+fib[i-2];
for(i=0;i<10;i++){
printf("%6d",fib[i]);
if((i+1)%5==0)
printf("\n");
}
return 0;
}
7-3
#include<stdio.h>
int main(void)
{
int i,flag,x;
int a[5];
printf("Enter 5 integers:");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
printf("Enter x:");
scanf("%d",&x);
flag=0;
for(i=0;i<5;i++)
if(a[i]==x){
printf("Index is %d\n",i);
flag=1;
break;
}
if(flag==0)
printf("Not Found\n");
return 0;
}
7-4
#include<stdio.h>
int main(void)
{
int i,index,n;
int a[10];
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d integers:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
index=0;
for(i=1;i<n;i++)
if(a[i]<a[index])
index=i;
printf("min is %d\tsub is %d\n",a[index],index);
return 0;
}
7-5
#include<stdio.h>
int main(void)
{
int i,index,k,n,temp;
int a[10];
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d integers:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(k=0;k<n-1;k++){
index=k;
for(i=k+1;i<n;i++)
if(a[i]<a[index]) index=i;
temp=a[index];
a[index]=a[k];
a[k]=temp;
}
printf("After sorted:");
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}
7-6
#include<stdio.h>
int main(void)
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int low,high,mid,n=10,x;
printf("Enter x:");
scanf("%d",&x);
low=0;high=n-1;
while(low<=high) {
mid=(low+high)/2;
if(x==a[mid])
break;
else if(x<a[mid])
high=mid-1;
else
low=mid+1;
}
if(low<=high)
printf("Index is %d\n",mid);
else
printf("Not Found\n");
return 0;
}
7-7
#include<stdio.h>
int main(void)
{
int col,i,j,row;
int a[3][2];
printf("Enter 6 integers:\n");
for(i=0;i<3;i++)
for(j=0;j<2;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++){
for(j=0;j<2;j++)
printf("%4d",a[i][j]);
printf("\n");
}
row=col=0;
for(i=0;i<3;i++)
for(j=0;j<2;j++)
if(a[i][j]>a[row][col]){
row=i;
col=j;
}
printf("max=a[%d][%d]=%d\n",row,col,a[row][col]);
return 0;
}
7-8
#include<stdio.h>
int main(void)
{
int i,j;
int a[3][2];
for(i=0;i<3;i++)
for(j=0;j<2;j++)
a[i][j]=i+j;
for(i=0;i<3;i++){
for(j=0;j<2;j++)
printf("%4d",a[i][j]);
printf("\n");
}
return 0;
}
7-9
#include<stdio.h>
int main(void)
{
int i,j,n,temp;
int a[6][6];
printf("Enter n:");
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
a[i][j]=i*n+j+1;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(i<=j){
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
for(i=0;i<n;i++){
for(j=0;j<n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
return 0;
}
7-11
# include<stdio.h>
int main(void)
{
int i,n,m;
char s[10];
printf("Enter a string:");
i=0;
while((s[i]=getchar())!='\n')
i++;
s[i]='\0';
for(n=0,m=i-1;n<m;n++,m--)
if(s[n]!=s[m])
break;
if(n>=m)
printf("It is a plalindrome\n");
else
printf("It is not a plalindrome\n");
return 0;
}
7-12
#include<stdio.h>
int main(void)
{
int i,number;
char str[10];
printf("Enter a string:");
i=0;
while((str[i]=getchar())!='\n')
i++;
str[i]='\0';
number=0;
for(i=0;str[i]!='\0';i++)
if(str[i]>='0'&& str[i]<='9')
number=number*10+str[i]-'0';
printf("digit=%d\n",number);
return 0;
}
7-13
#include<stdio.h>
int main(void)
{
int count,i;
char str[80];
printf("Enter a string:");
i=0;
while((str[i]=getchar())!='\n')
i++;
str[i]='\n';
count=0;
for(i=0;str[i]!='\0';i++)
if(str[i]<='9'&&str[i]>='0')
count++;
printf("count=%d\n",count);
return 0;
}
7-14
#include<stdio.h>
int main(void)
{
int i,k;
char str1[80],str2[80];
long number;
printf("Enter a string:");
i=0;
while((str1[i]=getchar())!='\n')
i++;
str1[i]='\0';
k=0;
for(i=0;str1[i]!='\0';i++)
if
(str1[i]>='0'&&str1[i]<='9'||str1[i]>='a'&&str1[i]<='f'||str1[i]>='A'&&str1[i]<='F')
{
str2[k]=str1[i];
k++;
}
str2[k]='\0';
number=0;
for(i=0;str2[i]!='\0';i++)
if(str2[i]>='0'&&str2[i]<='9')
number=number*16+str2[i]-'0';
else if(str2[i]>='a'&&str2[i]<='f')
number=number*16+str2[i]-'a'+10;
else if(str2[i]>='A'&&str2[i]<='F')
number=number*16+str2[i]-'A'+10;
printf("New string:");
for(i=0;str2[i]!='\0';i++)
putchar(str2[i]);
printf("\n");
printf("number=%ld\n",number);
return 0;
}
心得
在这个高速发展的时代,计算机已经成为一种人们必备的工具。而作为与计算机交流的语言,C语言又是我们计算机学习者必须要学的一门技能,显然,计算机语言的重要性毋庸置疑。
从就业前景上看,现代的无论是大公司还是小公司,计算机是必不可少的,所以需要的计算机类人才也就不言而喻的多了起来。更诱人的是,与计算机相关的工作相对来说都是比较轻松的,每个人都渴望能有个边工作边喝咖啡的职务,而计算机专业就能实现。相信这也是为什么计算机成为最热门的专业的原因。