书上例题
例2.1
#include "stdafx.h"
int main(int argc, char* argv[])
{
int x = 200, *y;
y = &x;
*y = 300;
printf("%x: %d, %d\n", y, x, *y);
return 0;
}
image.png
例2.2
#include "stdafx.h"
int main(int argc, char* argv[])
{
int a = 4, k, j = 2;
k = ++a;
j++;
printf("a = %d\nk = %d\nj = %d\n", a, k, j);
j = 2;
k = a++;
++j;
printf("\na = %d\nk = %d\nj = %d\n", a, k, j);
return 0;
}
image.png
例2.3
#include "stdafx.h"
int main(int argc, char* argv[])
{
int x = 19;
long y = 9098;
float m = 10.5f;
double n = 10.5;
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(short));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(x));
printf("%d\n", sizeof(y));
printf("%d\n", sizeof(m));
printf("%d\n", sizeof(n));
printf("%d\n", sizeof(x+=y));
printf("%d\n", x);
return 0;
}
image.png
例2.4 系统自动数据类型转换
#include "stdafx.h"
int main(int argc, char* argv[])
{
int x = 15, m;
char c = 'A';
double y = 12.3;
m = x + c + y;
printf("%f\n", x + c + y);//'A'=65
printf("%d\n", m);
return 0;
}
image.png
例2.5 强制数据类型转换
#include "stdafx.h"
int main(int argc, char* argv[])
{
int a = 11, b;
double c, d;
b = a/2;
c = (double)a/2;
d = double(a/2);
printf("a = %d, b = %d, c = %.2lf, d = %lf\n", a, b, c, d);
return 0;
}
image.png
例2.6 圆面积
#include "stdafx.h"
#define PI 3.14
int main(int argc, char* argv[])
{
int r;
scanf("%d", &r);
printf("%lf", PI * r * r);
return 0;
}
例2.7判断闰年
#include "stdafx.h"
int main(int argc, char* argv[]){
int r;
scanf("%d", &r);
if(r % 4 == 0 && r % 100 != 0 || r % 400 == 0)
printf("yes");
else
printf("no");
return 0;
}
例2.8查星期
#include "stdafx.h"
int main(int argc, char* argv[]){
int r;
scanf("%d", &r);
switch(r){
case(1):
printf("Monday");
break;
case(2):
printf("Tuesday");
case(3):
printf("Wednesday");
break;
case(4):
printf("Thursday");
break;
case(5):
printf("Friday");
break;
case(6):
printf("Saturday");
break;
case(7):
printf("Sunday");
break;
default:
printf("error");
}
return 0;
}
例2.9 求n!
#include "stdafx.h"
int main(int argc, char* argv[]){
int n;
scanf("%d", &n);
int sum = 1;
while(n){
sum *= n;
n--;
}
printf("%d\n", sum);
return 0;
}
例2.10 求反序数
#include "stdafx.h"
int main(int argc, char* argv[]){
int n;
scanf("%d", &n);
int temp;
int s = 0;//反序数
while(n){
temp = n % 10;
s = s * 10 + temp;
n /= 10;
}
printf("%d\n", s);
return 0;
}
例2.11 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱, 用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱?
#include "stdafx.h"
int main(int argc, char* argv[]){
int i, j, k;
for(i = 0; i < 20; i++){
for(j = 0; j < 33; j++){
k = 100 - i -j;
if(5 * i + 3 * j + k / 3 == 100 && k % 3 == 0)
printf("%d, %d, %d\n", i, j, k);
}
}
return 0;
}
例2.12-2.15 printf输出示例
#include "stdafx.h"
int main(int argc, char* argv[]){
int i = 5, j = 6;
printf("%d, %0*d\n", i, i, j);// *号用签一个数指定后一个数输出的宽度
float x =345.3567f;
double y = 222.345678;
printf("%-8.2f, %f\n", x, x);//左对齐,8位宽保留两位小数
printf("%-8.2lf, %lf\n", y, y);
char ch = 'a';
int k = 65;
printf("%c, %3c, %d\n", ch, ch, ch);
printf("%c, %3c, %d\n", k, k, k);
printf("%s\n", "Hello");
printf("%3s, %5.3s\n", "Hello", "Hello", "Hello");//对于字符串,.3标识输出前三位字符串
return 0;
}
image.png
例2.16-2.18 scanf输入示例
int a, b, c;
printf("%d\n", scanf("%3d-%2d-%4d", &a, &b, &c));//scanf的返回值是正确取得数据的个数
printf("%d, %d, %d\n", a, b, c);
char x, y;
scanf("%c%c", &x, &y);
printf("%c, %c\n", x, y);
char c1, c2;
c1 = getchar();
c2 = c1 + 32;
putchar(c2);
例2.19-2.22 数学类函数库math.h和stdlib.h
#include "stdafx.h"
#include <math.h>
#include <stdlib.h>
int main(int argc, char* argv[]){
double a = -3.14;
printf("|a| = %lf", fabs(a));//abs()求int型,fabs()求double型
return 0;
}
#include "stdafx.h"
#include <math.h>
#include <stdlib.h>
int main(int argc, char* argv[]){
double x = 12.5, y = 3.4;
printf("%d\n", 13 % 5);//%只能对整型取余
printf("%lf\n", fmod(x, y));//输出2.300000,fmod用于对浮点型取余
return 0;
}
#include "stdafx.h"
#include <math.h>
#include <stdlib.h>
int main(int argc, char* argv[]){
double x = 30, y;
y = x * 3.14159 /180;//转为度
printf("sin(%.0lf) = %lf", x, sin(y));
return 0;
}
//double sin(double x);
//double cos(double x);
//double tan(double x);
double exp(double x);//e的x次方
double pow(double x, double y);x的y次方
double log(double x);//ln(x)
double log10(double x);//lg(x)
double sqrt(double x);//平方根
课本习题:程序阅读题
#include "stdafx.h"
int main(int argc, char* argv[]){
int i, j, m, n;
i = 8;
j = 10;
m = ++i;
n = j++;
printf("%d, %d, %d, %d\n", i, j, m, n);
return 0;
}
image.png
#include "stdafx.h"
int main(int argc, char* argv[]){
char c1 = 'a', c2 = 'b', c3 = 'c', c4 = '\101', c5 = 116; //'\101'是八进制
printf("a%cb%c\tc%c\tabc\n", c1, c2, c3);
printf("\t\b%c %c\n", c4, c5);
return 0;
}
image.png
#include "stdafx.h"
int main(int argc, char* argv[]){
int x = 0, y = -1, z = -1;
x += -z---y;//-(z--)-y
printf("%d, %d, %d\n", x, y, z);
return 0;
}
image.png
#include "stdafx.h"
int main(int argc, char* argv[]){
int x = -3;
x += x -= x*x;//从右往左结合
printf("%d\n", x);
return 0;
}
image.png