C primer 编程练习 (不断更新)
目前在看《C Primer》,以后会经常在这篇博客里更新课后的编程练习题
第二章:编程练习
2.1
#include <stdio.h>
int main(void)
{
printf("Anton Bruckner\n");
printf("Anton\nBruckner\n");
printf("Anton");
printf("Bruckner");
return 0;
}
2.2
#include <stdio.h>
int main(void)
{
printf("姓名:霍义霞\n");
printf("地址:北京电子科技学院\n");
return 0;
}
2.3
#include <stdio.h>
int main(void)
{
int age;
int days;
age = 24;
days = age*365;
printf("my age is %d,that is %d days\n",age,days);
return 0;
}
2.4
#include <stdio.h>
void jolly(void);
void fellow(void);
int main(void)
{
jolly();
fellow();
return 0;
}
void jolly(void)
{
printf("For he's a jolly good fellow!\nFor he's a jolly good fellow!\nFor he's a jolly good fellow!\n");
}
void fellow(void)
{
printf("which nobody can deny\n");
}
2.5
#include <stdio.h>
int main(void)
{
int toes=10;
int toes_double;
int toes_square;
toes_double=toes+toes;
toes_square=toes*toes;
printf("toes=%d,toes_double=%d,toes_square=%d\n",toes,toes_double,toes_square);
return 0;
}
2.6
#include <stdio.h>
void smile_one(void);
int main(void)
{
printf("smile!smile!smile!\n");
printf("smile!smile!\n");
smile_one();
return 0;
}
void smile_one(void)
{
printf("smile!\n");
}
2.7
#include <stdio.h>
void one();
void two();
void three();
int main(void)
{
printf("starting now:\n");
one();
two();
three();
printf("done\n");
return 0;
}
void one()
{
printf("one\n");
}
void two()
{
printf("two\n");
}
void three()
{
printf("three\n");
}
第三章 编程练习
3.1
#include<stdio.h>
int main(void) /*本机使用的是32位系统 */
{
int i=2147483647;
float f_up=1.234567e38;
float f_down=1.234567;
printf("%d\n",i+1); //有符号整型最大表示 2147483647,故溢出
printf("%f\n",f_up*10); //单精度浮点数最大指数为38,故上溢出
printf("%f\n",f_down/10); //单精度浮点保留6位有效数字,故下溢出
return 0;
}
3.2
#include<stdio.h>
int main(void) /*ASCII码和字符的转换*/
{
char a;/*保证输入的只有8位*/
printf("Please enter an ASCII number between 0-127:");
scanf("%d",&a);
printf("the ASCII number means:%c\n",a);
return 0;
}
3.3
#include<stdio.h>
int main(void)
{
printf("\aStartked by the sudden,Sally shouted,\"By the Gteat Pumpkin,what was that!\"\n" );
return 0;
}
3.4
#include<stdio.h>
int main(void)
{
float a;
printf("please input a float number:");
scanf("%f",&a);
printf("the input is %f or %e\n",a,a);
return 0;
}
3.5
#include<stdio.h>
int main(void)
{
int a = 3.156e7;
int age;
printf("please input your age:");
scanf("%d",&age);
printf("the age is %d,that is %e seconds\n",age,age*a);
return 0;
}
3.6
#include<stdio.h>
int main()
{
float k;
printf("Please input the weight:");
scanf("%f",&k);
printf("It includes %e molecules\n",k*950/3.0e-23);
}
3.7
#include<stdio.h>
int main()
{
float height;
printf("Please input your height(cm):");
scanf("%f",&height);
printf("Your height is:%f(inch)\n",height/2.54);
}
第四章 编程练习
4.1
#include <stdio.h>
int main()
{
char f_name[20],l_name[20];
printf("please input your first name and last name:");
scanf("%s %s",f_name,l_name);
printf("%s,%s\n",l_name,f_name);
return 0;
}
4.2
#include <stdio.h>
int main()
{
char name[40];
printf("please input your name:");
scanf("%s",name);
printf("\"%s\"\n",name);
printf("\"%20s\"\n",name);
printf("\"%-20s\"\n",name);
printf("\"%s \"\n",name);
return 0;
}
4.3
#include <stdio.h>
int main()
{
float a = 21.29;
printf("the input is %.1f or %0.1e\n",a,a);
printf("the input is +%.3f or %0.3E\n",a,a);
return 0;
}
4.4
#include<stdio.h>
int main() //
{
char name[20];
float height;
printf("please input your height(inch) and your name:");
scanf("%f %s",&height,name);
printf("%s,you are %.3f feet tall\n",name,height);
printf("please input your height(cm) and your name:");
scanf("%f %s",&height,name);
printf("%s,you are %.3f meters tall\n",name,height/100);
return 0;
}
4.5
#include<stdio.h>
#include "string.h"
int main() //对齐稍有难度,要用到*,*代表宽度,可参考课本p81
{
char f_name[20];
char l_name[20];
short f,l;
printf("please input your first name and last name:");
scanf("%s %s",f_name,l_name);
printf("%s %s\n",f_name,l_name);
f = strlen(f_name);
l = strlen(l_name);
printf("%*d %*d\n",f,f,l,l);
return 0;
}
4.6
#include<stdio.h>
#include <float.h>
int main()
{
double a = 1.0/3.0;
float b = 1.0/3.0;
printf("%.4f %.4f\n",a,b);
printf("%.12f %.12f\n",a,b);
printf("%.16f %.16f\n",a,b);
printf("%f %lf\n",FLT_DIG,DBL_DIG);
return 0;
}
4.7
#include<stdio.h>
#define GALLON_LITRE 3.785
#define MILE_KILOMETRE 1.609
int main()
{
float m,g;
printf("Please input the miles and gallons:");
scanf("%f%f",&m,&g);
printf("That is %f miles/gallon\n",m/g);
printf("That is %f litres/hkm\n",GALLON_LITRE *g/(MILE_KILOMETRE *m*100));
}
第五章编程练习
5.1
#include <stdio.h>
#define H_PER_M 60
int main()
{
long minutes;
long hours;
printf("please input the current_time in minutes:");
scanf("%ld",&minutes);
while(minutes > 0)
{
hours = minutes / H_PER_M;
minutes = minutes % H_PER_M;
printf("that time is %ld hours and %ld minutes\n",hours,minutes);
printf("again:");
scanf("%ld\n",&minutes);
}
return 0;
}
5.2
#include <stdio.h>
int main()
{
int a;
int i =10;
printf("please input the number:");
scanf("%d",&a);
while (i--)
printf("%3d",a++);
printf("%3d\n",a);
return 0;
}
5.3
#include <stdio.h>
#define week 7
int main()
{
int days1;
int days;
int weeks;
printf("please input the days:");
scanf("%d",&days);
while (days > 0)
{
weeks = days/week;
days1 = days % week;
printf("%d days is %d weeks , %d days\n",days,weeks,days1);
printf("input again:");
scanf("%d",&days);
}
return 0;
}
5.4
#include<stdio.h>
#define INCHES_PER_FEET 12
#define INCHES_PER_CM 0.393700
int main()
{
float centimeters,inches;
long feet;
printf("please input a height in centimeters:");
scanf("%f",¢imeters);
while(centimeters>0)
{
inches=centimeters*INCHES_PER_CM;
feet=inches/INCHES_PER_FEET;
inches=inches-feet*INCHES_PER_FEET;
printf("%.1f cm = %ld feet, %.1f inches\n",centimeters,feet,inches);
printf("Enter a height in centimeters(<=0 to quit):");
scanf("%f",¢imeters);
}
printf("Bye\n");
return 0;
}
5.5
#include<stdio.h>
int main()
{
int count,i = 10,sum;
printf("please input 20 integer:\n");
while(i--)
{
scanf("%d",&count);
sum+=count;
}
printf("the sum of the 20 count is : %d\n",sum);
return 0;
}
5.6
#include<stdio.h>
int main()
{
int count,i = 10,sum;
printf("please input 20 integer:\n");
while(i--)
{
scanf("%d",&count);
count=count*count;
sum+=count;
}
printf("the sum of the 20 count is : %d\n",sum);
return 0;
}
5.7
#include<stdio.h>
void cube(float);
int main()
{
float a;
printf("please input a float:");
scanf("%f",&a);
cube(a);
return 0;
}
void cube(float n)
{
printf("the number's cube is %f\n",n*n*n);
}
5.8
#include<stdio.h>
void Temperatures(double);
int main()
{
double fahrenheit;
printf("please input the temperatures(fahrenheit)");
while(scanf("%lf",&fahrenheit))
{
Temperatures(fahrenheit);
printf("input again:");
}
return 0;
}
void Temperatures(double fahrenheit )
{
double celsius;
double kelvin;
double C_F_MULT = 1.8;
double C_F_PLUS = 32.0;
double K_C_PLUS = 273.16;
celsius = C_F_MULT*fahrenheit +C_F_PLUS;
kelvin = celsius + K_C_PLUS;
printf("%.2lf fahrenheit is %.2lf celsius or %.2lf kelvin\n",fahrenheit,celsius,kelvin);
}
第六章 编程练习
6.1
#include<stdio.h>
int main()
{
int i = 0;
char c ='a';
char letter[26];
printf("please input the 26 letters:");
while(c <= 'z')
{
letter[i] = c;
printf("%c ",c);
i++;
c++;
}
printf("\n");
return 0;
}
6.2
#include<stdio.h>
int main()
{
int i,j;
char c = '$';
for (i=0;i< 5;i++)
{
for (j=0;j < i+1;j++)
{
printf("%c",c);
}
printf("\n");
}
return 0;
}
6.3
#include<stdio.h>
int main()
{
int i,j;
char c = 'F';
for (i=0;i<6;i++)
{
for (j=0;j<i+1;j++)
{
printf("%c",'F'-j);
}
printf("\n");
}
return 0;
}
6.4
#include<stdio.h>
int main()
{
char letter;
int i,space,up,down;
printf("please input a capital letter:");
scanf("%c",&letter);
for (i=0;i<=letter-'A';i++)
{
for (space='A';space<letter-i;space++)
{
printf(" ");
}
for (up='A';up<='A'+i;up++)
{
printf("%c",up);
}
for (down=up-2;down>='A';down--)
{
printf("%c",down);
}
printf("\n");
}
return 0;
}
6.5
#include<stdio.h>
int main()
{
int up_limit;
int down_limit;
int square,cube;
printf("enter the down_limitand up_limit:");
scanf("%d %d",&down_limit,&up_limit);
if (down_limit>up_limit)
{
printf("error:\n");
}
else
{
for (;down_limit<=up_limit;down_limit++)
{
square = down_limit*down_limit;
cube=square*down_limit;
printf("%6d%6d%6d\n",down_limit,square,cube);
}
}
return 0;
}
6.6
#include<stdio.h>
#include <string.h>
int main()
{
char word[20];
int n;
printf("Enter a word:\n");
scanf("%s",&word);
n = strlen(word);
for (int i=n-1;i>=0;i--)
{
printf("%c",word[i]);
}
printf("\n");
return 0;
}
6.7
#include<stdio.h>
int main()
{
float a,b;
printf("please input two float numbers:");
while (scanf("%f%f",&a,&b)==2)
{
printf("%f\n",(a-b)/(a*b));
printf("input again\n");
}
return 0;
}
6.8
#include<stdio.h>
float test(float,float);
int main()
{
float first,second;
printf("please input two float numbers:");
while (scanf("%f%f",&first,&second)==2)
{
printf("%f\n",test(first,second));
printf("input again\n");
}
return 0;
}
float test(float f,float s)
{
return (f-s)/(f*s);
}
6.9
#include<stdio.h>
int main() //用循环求平方的和
{
int super,lower,sum;
printf("Enter lower and upper integer limits:");
scanf("%d%d",&lower,&super);
while(lower<super)
{
for(int i=lower;i<=super;i++)
sum+=i*i;
printf("The sums of the squares "
"from %d to %d is %d\n",lower*lower,super*super,sum);
sum=0;
printf("Enter next set of limits:");
scanf("%d%d",&lower,&super);
}
printf("Done\n");
return 0;
}
6.10
#include<stdio.h>
#define SIZE 8
int main()
{
int number[SIZE];
printf("please input eight numbers:");
for(int i=0;i<8;i++)
scanf("%d",&number[i]);
for(int j=SIZE-1;j>=0;j--)
printf("%5d",number[j]);
printf("\n");
return 0;
}