C语言:菜鸟教程经典100例题(1 您所在的位置:网站首页 100例经典炒菜视频教学 C语言:菜鸟教程经典100例题(1

C语言:菜鸟教程经典100例题(1

2024-06-13 15:14| 来源: 网络整理| 查看: 265

C语言经典100例 注:以下答案与原文不完全相同

实例51-100

实例1

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

#include int main(void) { int i, j, k; int n = 0; for (i = 1; i for (k = 1; k printf("%d%d%d\n", i, j, k); n++; } } } } printf("count:%d\n", n); return 0; } /* 123 124 132 134 142 143 213 214 231 234 241 243 312 314 321 324 341 342 412 413 421 423 431 432 count:24 */ 实例2

企业发放的奖金根据利润提成。 利润(I)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%; 20万到40万之间时,高于20万元的部分,可提成5%; 40万到60万之间时高于40万元的部分,可提成3%; 60万到100万之间时,高于60万元的部分,可提成1.5%; 高于100万元时,超过100万元的部分按1%提成。 从键盘输入当月利润I,求应发放奖金总数?

#include #define r1 0.1 #define r2 0.075 #define r3 0.05 #define r4 0.03 #define r5 0.015 #define r6 0.01 int main(void) { double l; double bonus; printf("Please enter monthly profit:\n"); scanf("%lf", &l); do { if (l 10 && l 20 && l = 40 && l = 60 && l 0); printf("Done.\n"); return 0; } /* Please enter monthly profit: 12 Your bonus is 1.150000 Please enter monthly profit: 22 Your bonus is 1.850000 Please enter monthly profit: 52 Your bonus is 3.110000 Please enter monthly profit: 82 Your bonus is 3.680000 Please enter monthly profit: 102 Your bonus is 3.980000 Please enter monthly profit: 0 Done. */ 实例3

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

#include /* i + 100 = n² i + 100 + 168 = m² m² - n² = 168 = (m + n)(m - n) 13 * 13 = 169 m >= 13 n >= 1 m + n 为偶数 m - n 为偶数 m - n >= 2 m + n for (int n = 1; n i = n * n - 100; printf("i = %d\n", i); } } } return 0; } /* i = -99 i = 21 i = 261 i = 1581 */ 实例4

输入某年某月某日,判断这一天是这一年的第几天?

#include /* #include int main(void) { int y; printf("请输入年份,回车结束\n"); scanf("%d",&y); if((y % 4== 0 && y % 100 != 0) || ( y % 400 == 0 && y % 3200 != 0)|| y % 172800 == 0) printf("%d是闰年\n",y); else printf("%d是平年\n",y); return 0; } */ int main(void) { int year, month, day, sum; int leap = 0; int D[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; printf("Please enter date:(eg:1997 12 26)\n"); scanf("%d %d %d", &year, &month, &day); while (year > 0) { switch (month) { case 1: sum = 0; break; case 2: sum = D[1]; break; case 3: sum = D[1] + D[2]; break; case 4: sum = D[1] + D[2] + D[3]; break; case 5: sum = D[1] + D[2] + D[3] + D[4]; break; case 6: sum = D[1] + D[2] + D[3] + D[4] + D[5]; break; case 7: sum = D[1] + D[2] + D[3] + D[4] + D[5] + D[6]; break; case 8: sum = D[1] + D[2] + D[3] + D[4] + D[5] + D[6] + D[7]; break; case 9: sum = D[1] + D[2] + D[3] + D[4] + D[5] + D[6] + D[7] + D[8]; break; case 10: sum = D[1] + D[2] + D[3] + D[4] + D[5] + D[6] + D[7] + D[8] + D[9]; break; case 11: sum = D[1] + D[2] + D[3] + D[4] + D[5] + D[6] + D[7] + D[8] + D[9] + D[10]; break; case 12: sum = D[1] + D[2] + D[3] + D[4] + D[5] + D[6] + D[7] + D[8] + D[9] + D[10] + D[11]; break; } if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0 && year % 3200 != 0) || year % 172800 == 0) { printf("%d is leap\n", year); leap = 1; } else printf("%d is not leap\n", year); if (leap == 1 && month > 2) sum = sum + 1; sum = sum + day; printf("This is the %dth day of %d\n\n", sum, year); printf("Please enter date:(eg:1997 12 26)\n"); scanf("%d %d %d", &year, &month, &day); } printf("Done.\n"); return 0; } /* Please enter date:(eg:1997 12 26) 1997 12 26 1997 is not leap This is the 360th day of 1997 Please enter date:(eg:1997 12 26) 2004 12 26 2004 is leap This is the 361th day of 2004 Please enter date:(eg:1997 12 26) 0 0 0 Done. */ 实例5

输入三个整数x,y,z,请把这三个数由小到大输出。

//该方法太复杂 #include int main(void) { int x, y, z; int i,j,k; printf("Please enter 3 integers:(x y z)\n"); scanf("%d %d %d", &x, &y, &z); if (x i = x; if (z j = y; k = z; } } else { j = x; i = y; k = z; } } else { if (x > z) { k = x; if (z > y) { j = z; i = y; } else { j = y; k = z; } } else { k = z; j = x; i = y; } } printf("%d %d %d\n", i, j, k); return 0; } /* Please enter 3 integers:(x y z) 9 3 7 3 7 9 */ #include int main(void) { int x, y, z; int t; printf("Please enter 3 integers:(x y z)\n"); scanf("%d %d %d", &x, &y, &z); if (x > y) { t = x; x = y; y = t; } if (x > z) { t = z; z = x; x = t; } if (y > z) { t = y; y = z; z = t; } printf("%d %d %d\n", x, y, z); return 0; } /* Please enter 3 integers:(x y z) 9 3 7 3 7 9 */ 实例6

用*号输出字母C的图案。

#include int main(void) { printf(" * * \n"); printf(" * * \n"); printf("* \n"); printf("* \n"); printf("* \n"); printf(" * *\n"); printf(" * * \n"); return 0; } /* * * * * * * * * * * * */ 实例7

输出特殊图案,请在c环境中运行,看一看,Very Beautiful!

#include /* 字符共有256个。不同字符,图形不一样。 VC6.0下出现中文乱码(原因+解决方法): 176的16进制是B0,219的16进制是DB,0xB0DB是"佰"字的内码,所以输出的就是"佰"了。 主要原因是文件信息的代码页不同,我们所使用的操作系统中文状态下的代码页,要显示扩展的ASCII码需要在437 OEM-美国这个下面显示,这样就可以显示出你所希望的。具体修改控制台的默认代码页步骤如下: 1.点击运行界面左上角标题栏图标【c:\】,选择默认值一项 2.修改默认代码页,936(ANSI/OEM-简体中文GBK)为437 OEM-美国 3、关闭后重新运行一下即可 */ int main() { char a = 176, b = 219; printf("%c%c%c%c%c\n", b, a, a, a, b); printf("%c%c%c%c%c\n", a, b, a, b, a); printf("%c%c%c%c%c\n", a, a, b, a, a); printf("%c%c%c%c%c\n", a, b, a, b, a); printf("%c%c%c%c%c\n", b, a, a, a, b); return 0; } 实例8

输出9*9口诀。

#include int main() { for (int i = 1; i printf("%d * %d = %-2d ", i, j, i*j); } printf("\n"); } printf("\n"); return 0; } /* 1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 1 * 6 = 6 1 * 7 = 7 1 * 8 = 8 1 * 9 = 9 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 7 * 8 = 56 7 * 9 = 63 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81 */ #include int main() { for (int i = 1; i printf("%d * %d = %-2d ", j, i, i*j); } printf("\n"); } printf("\n"); return 0; } /* 1 * 1 = 1 1 * 2 = 2 2 * 2 = 4 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81 */ 实例9

要求输出国际象棋棋盘。

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include int main() { int i,j; for(i=0;i int i,j; printf("\1\1\n"); /*输出两个笑脸*/ for(i=1;i int i = 1; int j = 1; int k = 0; int m = 1; for (m = 1; m int i, j; int n = 1; for (i = 101; i if (i % j == 0) { break; } else { if (j == (int)(sqrt(i))) { printf("%d ", i); n++; } } } } return 0; } /* 01 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 */ 实例13

打印出所有的"水仙花数", 所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

#include int main() { int i; int x, y, z; for (i = 100; i int n, i; printf("请输入整数:"); scanf("%d", &n); printf("%d = ", n); for (i = 2; i printf("%d ", i); n = n / i; if (n != 1) printf("* "); } } printf("\n"); return 0; } /* 请输入整数:90 90 = 2 * 3 * 3 * 5 */ 实例15

利用条件运算符的嵌套来完成此题: 学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

//(a>b)?a:b这是条件运算符的基本例子。

#include int main() { int score; char grade; printf("Enter your score: "); scanf("%d", &score); while (score > 0) { grade = (score >= 90) ? 'A' : (score >= 60 && score =b, 令r=a mod b 设a=kc,b=jc,则k,j互素,否则c不是最大公约数 据上,r=a-mb=kc-mjc=(k-mj)c 可知r也是c的倍数,且k-mj与j互素,否则与前述k,j互素矛盾, 由此可知,b与r的最大公约数也是c,即gcd(a,b)=gcd(b,a mod b),得证。 2)算法描述: 第一步:a ÷ b,令r为所得余数(0≤r ) 第二步:互换:置 a←b,b←r,并返回第一步。 #include int main() { int x, y; int t; int r; int n; printf("Enter 2 integers:(x y)\n"); scanf("%d %d", &x,&y); while (x > 0) { if (x x = y; y = r; r = x % y; } printf("gcd = %d, lcm = %d\n\n", y, n / y); printf("Enter 2 integers:(x y)\n"); scanf("%d %d", &x, &y); } printf("Done.\n"); return 0; } /* Enter 2 integers:(x y) 12 26 gcd = 2, lcm = 156 Enter 2 integers:(x y) 3 4 gcd = 1, lcm = 12 Enter 2 integers:(x y) 0 0 Done. */ 实例17

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

#include int main() { char c; int letters = 0, spaces = 0, digits = 0, others = 0; printf("Enter:\n"); while ((c = getchar()) != '\n') { if ((c >= 'a'&&c = 'A'&&c = '0'&&c if (isalpha(c)) letters++; else if (isdigit(c)) digits++; else if (isspace(c)) spaces++; else others++; } printf("letters = %d, digits = %d, spaces = %d, others = %d\n", letters, digits, spaces, others); return 0; } /* Enter: hello,123!love you hahaha letters = 18, digits = 3, spaces = 2, others = 2 */ 实例18

求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

#include int main() { int a, n; int sum = 0; int t; printf("Enter the number and times: \n"); scanf("%d %d", &a, &n); t = a; while (n > 0) { sum = sum + t; a = a * 10; t = a + t; n--; } printf("sum = %d\n", sum); return 0; } /* Enter the number and times: 2 5 sum = 24690 */ 实例19

一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如6=1+2+3.编程找出1000以内的所有完数。

#include int main() { int i, j, k, n, sum; int a[256]; for (i = 2; i if (i%j == 0) { sum = sum + j; a[++k] = j; } } if (i == sum) { printf("%d=%d", i, a[0]); for (n = 1; n sum = 1; for (j = 2; j float h = 100; float s; s = 100; for (int i = 2; i int sum = 0; int i = 1; int day; for (day = 9; day > 0; day--) { i = 2 * i + 2; sum = i; } printf("sum = %d\n", sum); return 0; } /* sum = 1534 */ 实例22

两个乒乓球队进行比赛,各出三人。 甲队为a,b,c三人,乙队为x,y,z三人。 已抽签决定比赛名单。 有人向队员打听比赛的名单。 a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include #include int main() { char i,j,k; for(i='x';i if(i!=j) { for(k='x';k if(i!='x'&&k!='x'&&k!='z') { printf("顺序为:a--%c\tb--%c\tc--%c\n",i,j,k); } } } } } } } //顺序为:a--z b--x c--y 实例23

打印出如下图案(菱形)。

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include int main() { int i,j,k; for(i=0;i printf(" "); } for(k=0;k for(j=0;j printf("*"); } printf("\n"); } } /* * *** ***** ******* ***** *** * */ 实例24

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

#include int main() { float x = 2, y = 1; float n = 0; float t; int a = 1; while (a long double sum = 0; long double s = 1; for (int i = 1; i s = s * j; } sum = sum + s; } printf("sum = %lf\n", sum); return 0; } /* sum = sum = 2561327494111820288.000000 */ 实例26

利用递归方法求5!。

#include int mul(int i) { if (i == 1) return i; else return i * mul(i - 1); } int main() { int i; i = mul(5); printf("%d", i); return 0; } /* 120 */ 实例27

利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

#include void func(int n); int main() { printf("please input 5 numbers:"); func(5); return 0; } void func(int n) { if (n char next = getchar(); func(n - 1); putchar(next); } } 实例28

有5个人坐在一起,问第五个人多少岁? 他说比第4个人大2岁。 问第4个人岁数,他说比第3个人大2岁。 问第三个人,又说比第2人大两岁。 问第2个人,说比第一个人大两岁。 最后问第一个人,他说是10岁。 请问第五个人多大?

#include int main() { int a = 10; for (int i = 1; i if (n == 1) return 10; else return age(n - 1) + 2; } int main(void) { int n; n = age(5); printf("%d\n", n); return 0; } /* 18 */ 实例29

给一个不多于5位的正整数, 要求: 一、求它是几位数, 二、逆序打印出各位数字。

#include int main(void) { int a, b, c, d, e, x; printf("Please enter:"); scanf("%ld", &x); while (x > 0 && x int a, b, c, d, e, x; printf("Please enter:"); scanf("%d", &x); while (x > 9999 && x char i, j; printf("Please enter the first letter:\n"); scanf("%c", &i); getchar(); //第二次是读入的一个换行符,而不是输入的字符 //因此需要加一个getchar()吃掉换行符 switch (i) { case 'm': printf("Monday\n"); break; case 't': printf("Please enter the next letter : \n"); scanf("%c", &j); if (j == 'u') { printf("Tuesday\n"); break; } else if (j == 'h') { printf("Thursday\n"); break; } case 'w': printf("Wednesday\n"); break; case 'f': printf("Friday\n"); break; case 's': printf("Please enter the next letter : \n"); scanf("%c", &j); if (j == 'u') { printf("Sunday\n"); break; } else if (j == 'a') { printf("Saturday\n"); break; } default: printf("error\n"); break; } return 0; } /* Please enter the first letter: s Please enter the next letter : a Saturday */ 实例32

删除一个字符串中的指定字母,如:字符串 “aca”,删除其中的 a 字母。

#include #include int main(void) { char ch; char str[32] = ""; char strs[32] = ""; char s[2] = ""; s[1] = 0; printf("Please enter a string:\n"); gets_s(str,32); printf("Please enter a letter that you want to delete:\n"); scanf("%c", &ch); int l; l = strlen(str); for (int i = 0; i s[0] = str[i]; strcat(strs, s); } } printf("%s\n", strs); return 0; } /* Please enter a string: helloworld Please enter a letter that you want to delete: o hellwrld */ 实例33

判断一个数字是否为质数。

#include int main(void) { int num; int n = 0; printf("Please enter a integer:\n"); scanf("%d", &num); while (num != 0) { for (int i = 2; i printf("No.\n\n"); break; } else if (num % i != 0) n++; } if (n == num - 2) printf("Yes.\n\n"); printf("Please enter a integer:\n"); scanf("%d", &num); n = 0; } printf("Done.\n\n"); return 0; } /* Please enter a integer: 88 No. Please enter a integer: 401 Yes. Please enter a integer: 53 Yes. Please enter a integer: 99 No. Please enter a integer: 397 Yes. Please enter a integer: 0 Done. */ 实例34

练习函数调用。

#include void prime(int num) { int n = 0; for (int i = 2; i printf("No.\n\n"); break; } else if (num % i != 0) n++; } if (n == num - 2) printf("Yes.\n\n"); } int main(void) { int num; printf("Please enter a integer:\n"); scanf("%d", &num); while (num != 0) { prime(num); printf("Please enter a integer:\n"); scanf("%d", &num); } printf("Done.\n\n"); return 0; } /* Please enter a integer: 88 No. Please enter a integer: 401 Yes. Please enter a integer: 53 Yes. Please enter a integer: 99 No. Please enter a integer: 397 Yes. Please enter a integer: 0 Done. */ 实例35

字符串反转,如将字符串 “www.runoob.com” 反转为 “moc.boonur.www”。

#include #include int main(void) { char ch; char str[32] = ""; char strs[32] = ""; char s[2] = ""; s[1] = 0; printf("Please enter a string:\n"); gets_s(str, 32); int l; l = strlen(str); for (int i = l - 1; i >= 0; i--) { s[0] = str[i]; strcat(strs, s); } printf("%s\n", strs); return 0; } /* Please enter a string: hello,world! !dlrow,olleh */ 实例36

求100之内的素数。

#include int main(void) { int x = 0; int n = 0; for (int num = 2; num if (num % i == 0) break; else if (num % i != 0) n++; } if (n == num - 2) { printf("%-3d", num); x++; if (x % 5 == 0) printf("\n"); } } return 0; } /* 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 */ 实例37

对10个数进行排序。

#include int main(void) { int num[10]; int t; printf("Please enter 10 numbers(with " "):\n"); scanf("%d %d %d %d %d %d %d %d %d %d", &num[0], &num[1], &num[2], &num[3], &num[4], &num[5], &num[6], &num[7], &num[8], &num[9]); for (int i = 0; i if (num[min] > num[j]) min = j; if (min != i) { t = num[min]; num[min] = num[i]; num[i] = t; } } } printf("%d %d %d %d %d %d %d %d %d %d", num[0], num[1], num[2], num[3], num[4], num[5], num[6], num[7], num[8], num[9]); return 0; } /* Please enter 10 numbers(with ): 2 7 3 2 8 9 11 6 5 4 2 2 3 4 5 6 7 8 9 11 */ 实例38

求一个3*3矩阵对角线元素之和。

#include int main(void) { int mat[3][3]; int sum = 0; printf("Please enter a 3*3 matrix:\n"); for (int i = 0; i 1,3,5,7,9,12,15,19,22,26 }; int n; int t,x; int i; printf("Please enter a integer:\n"); scanf("%d", &n); for (i = 0; i t = num[i]; num[i] = n; break; } } for (int j = i + 1; j int num[10]; int now[10]; printf("Please enter 10 numbers(with " "):\n"); scanf("%d %d %d %d %d %d %d %d %d %d", &num[0], &num[1], &num[2], &num[3], &num[4], &num[5], &num[6], &num[7], &num[8], &num[9]); for (int i = 0, j = 9; i = 0; i++, j--) now[i] = num[j]; for (int i = 0; i int i=0; static int static_i=0; printf("i=%d\n",i); printf("static_i=%d\n",static_i); i++; static_i++; } /* i=0 static_i=0 i=0 static_i=1 i=0 static_i=2 */ 实例42 - auto

学习使用auto定义变量的用法。

auto被解释为一个自动存储变量的关键字,也就是申明一块临时的变量内存。 具有自动存储期的变量在进入声明该变量的程序块时被建立,它在该程序块活动时存在,退出该程序块时撤销。 在函数内部定义的变量成为局部变量。 在某些C语言教材中,局部变量称为自动变量,这就与使用可选关键字auto定义局部变量这一作法保持一致。

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include int main() { int i,num; num=2; for(i=0;i auto int num=1; printf("内置模块 num 变量为 %d \n",num); num++; } } return 0; } /* num 变量为 2 内置模块 num 变量为 1 num 变量为 3 内置模块 num 变量为 1 num 变量为 4 内置模块 num 变量为 1 */ 实例43 - static

学习使用static的另一用法。

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include int main() { int i,num; num=2; for(i=0;i static int num=1; printf("内置模块 num 变量为 %d\n",num); num++; } } return 0; } /* num 变量为 2 内置模块 num 变量为 1 num 变量为 3 内置模块 num 变量为 2 num 变量为 4 内置模块 num 变量为 3 */ 实例44 - external

学习使用external的用法。

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include int a,b,c; //全局变量 void add() { int a; a=3; c=a+b; } int main() { a=b=4; add(); printf("c 的值为 %d\n",c); return 0; } //c 的值为 7 实例45 - register

学习使用register定义变量的方法。

https://blog.csdn.net/ccjoe/article/details/44756395?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

在C语言中的register修饰的变量表示将此变量存储在CPU的寄存器中,由于CPU访问寄存器比访问内存快很多,可以大大提高运算速度。 但在使用register时有几点需要注意: 1.用register修饰的变量只能是局部变量,不能是全局变量。CPU的寄存器资源有限,因此不可能让一个变量一直占着CPU寄存器。 2.register变量一定要是CPU可以接受的值。 4.不可以用&运算符对register变量进行取址。 5.register只是请求寄存器变量,不一定能够成功。

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include int main() { register int i; int tmp=0; for(i=1;i printf("\n请输入数字:"); scanf("%d",&num); printf("该数字的平方为 %d \n",SQ(num)); if(num>=50) again=TRUE; else again=FALSE; } return 0; } /* 如果值小于 50 程序将终止。 请输入数字:100 该数字的平方为 10000 请输入数字:5 该数字的平方为 25 */ 实例47 - #define

宏#define命令练习2。

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include #define exchange(a,b) { int t;t=a;a=b;b=t;}//注意放在一行里 int main() { int x=10; int y=20; printf("x=%d; y=%d\n",x,y); exchange(x,y); printf("x=%d; y=%d\n",x,y); return 0; } //x=10; y=20 //x=20; y=10 实例48 - #define

宏#define命令练习3。

// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #define LAG > #define SMA int a=10,b=20; #ifdef MAX printf("更大的数字是 %d\n",MAXIMUM(a,b)); #else printf("更小的数字是 %d\n",MINIMUM(a,b)); #endif #ifndef MIN printf("更小的数字是 %d\n",MINIMUM(a,b)); #else printf("更大的数字是 %d\n",MAXIMUM(a,b)); #endif #undef MAX #ifdef MAX printf("更大的数字是 %d\n",MAXIMUM(a,b)); #else printf("更小的数字是 %d\n",MINIMUM(a,b)); #endif #define MIN #ifndef MIN printf("更小的数字是 %d\n",MINIMUM(a,b)); #else printf("更大的数字是 %d\n",MAXIMUM(a,b)); #endif return 0; } /* 更大的数字是 20 更小的数字是 10 更小的数字是 10 更大的数字是 20 */ 实例50 - #include

#include 的应用练习。

//test.h #define LAG > #define SMA


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有