收藏 分销(赏)

期末复习C语言知识点归纳.doc

上传人:天**** 文档编号:4580562 上传时间:2024-09-30 格式:DOC 页数:48 大小:206.51KB 下载积分:12 金币
下载 相关 举报
期末复习C语言知识点归纳.doc_第1页
第1页 / 共48页
期末复习C语言知识点归纳.doc_第2页
第2页 / 共48页


点击查看更多>>
资源描述
期末复习C语言知识点归纳 一、概述 1.一个C语言源程序可以由一个或多个函数组成,有且只有1个main()函数,可以放在程序中的任何位置. 2.一个C程序不论有几个函数,都是从main()函数开始执行. 3. 标识符 按照C语言所定义的规则来命名的符号。 规则: 由字母、数字、下划线组成,但第一个字符必须 是字母或下划线。 例如: area、a234、_1234为合法标识符 456P、a-b、a+b为非法标识符 注意: 标识符区分大小写。 例如: PAGE和page是两个不同的标识符。 4.c语言有32个关键字,关键字不能用作用户标识符。 5. C源程序文件的扩展名".c" 。 6.VC++6.0下c 语言程序的完整实现过程包括4个基本步骤: l 编辑源程序 l 编译源程序 l 构建(链接)形成可执行文件(.exe) l 运行可执行文件. 二、数据类型、表达式 1.c语言中,整型、字符型、实型是最基本的数据类型. 2. 常量 指在程序运行中,其值不能被改变。 分为整型常量、实型常量、字符常量、字符串常量。 l 整型常量 C语言中主要有十进制、八进制、十六进制等。 十进制 例如 12、-3、32767等。 八进制 用数字0开头,由0-7这8个数字组成。 例如 010、016为合法八进制数 127、018为非法八进制数 十六进制 用数字0和字母x或X开头,用0-9表示前10 个数字,字母A-F(可小写)表示后6个数字。 例如 0xAF、0x10、0x34为合法十六进制数 100、ABC、0xAFH为非法十六进制数 注意: C语言中只有十进制数可以为负数。 l 实型常量 表示方式有两种: 小数形式和指数形式。 小数形式 例如: 0.123、.123、123. 都是合法形式。 指数形式 例如: 2.3026可用以下任何一种指数表示 0.23026E1、2.3026e0、23.026E-1 但下面的指数形式为非法 E3、.5e3.6、2.3e -2(e和-2间有空格) l 符号常量 用符号名来表示一个常量。 格式: #define 符号名 常量值 例: 已知圆的半径为5.0,计算圆的面积(圆周率取3.14)。 #include <stdio.h> #define PI 3.14 main() { double r, s; r=5.0; s=PI*r*r; printf(“s=%f\n”,s); } C语言中整型常量的3种表示: 8进制以0引导,16进制以0x或0X引导,十进制不能以0开头. l 实型(float或double型)常量在程序中只能用十进制数,不能用其他进制表示。2种表示形式,普通的和指数形式,如3e5或者3E5, 三者不可省略任何一部分. l 一个字符常量占一个字节存储空间.用单引号限定 ,如: ’A’ ’\0x41’ (为转义字符,表示以十六进制数41为ASCII码值的字符,即’A’的转义字符形式). ‘\0’ ( 表示空字符,在字符串中用作字符串的结束标志) 11.字符串常量用英文双引号括起来. 如:”hello\n” l 字符串中的字符个数称为字符串的长度.空字符串长度为0. l 字符串存储中每个字符占一个字节,字符串结尾自动加一个结束标志符’\0’,所以字符串存储的时候,占用的空间长度要比串的实际长度多1. 如: char ch[ ]={“Hello”}; 实际串的长度为5,但数组空间长度为6。 l 变量 指在程序运行过程中其值可以改变的量。 变量的命名必须符合标识符的命名规则,且不能和C语言 中关键字同名。(例如: main是关键字) 例如: a、b、ab为合法变量 define、printf为非法变量 注意: ab是一个整体,含义不同于a乘以b。 l 有符号整型变量用英文singned表示,存储时最高一位是符号位,无符号整型变量用英文unsigned表示. l 字符型变量的数据类型标识符是符号char,每个字符型变量只能存储一个字符. 例如: ‘A’、’c’、’5‘都是合法的字符常量。 ”A”、’abc’都是非法的字符常量。 l 常见的转义字符: \n 回车换行 \\ 反斜杠 \’ 单引号 \”双引号 \ddd 三位八进制 \xhh 二位十六进制 \0 空值 例1: ‘\n’表示回车换行 ‘\’’表示一个单引号 例2: ‘\101’表示字符’A’ ‘\x41’表示字符’A’ l 字符变量 用关键字char定义,可以同时赋初值。 例1 定义两个字符变量ch1和ch2。 char ch1,ch2; 例2 定义两个字符变量a和b,初值分别为’1’和’2’。 char a=’1’, b=’2’; l getchar函数和putchar函数 分别用来输入字符和输出字符。 l 字符的输入和输出 使用scanf和printf时,格式符均为%c。 例1 从键盘上输入一个字符保存在ch中。 char ch; ch=getchar(); 例2 char c1=’A’, c2; c2=c1+1; putchar(c2); 输出结果是’B’。 例3 输出一个回车换行符。 putchar(‘\n’); 例: 从键盘上输入一串字符,最后以’!’为结束标志。分别 统计大写字母,小写字母、数字出现的次数。 #include<stdio.h> main() { char ch; int n1=0,n2=0,n3=0; printf(“请输入一串字符以!结束:\n”); ch=getchar(); while(ch!='!') { if(ch>='A' && ch<='Z') n1++; if(ch>='a' && ch<='z') n2++; if(ch>='0' && ch<='9') n3++; ch=getchar(); } printf("大写字母出现次数是%d\n",n1); printf("小写字母出现次数是%d\n",n2); printf(“数字出现次数是%d\n",n3); } l VC++ 6.0 下,int 型数据占4个字节,float型数据占4个字节, double型数据 占8个字节,.char型数据 占1个字节. l 算术运算符 +、-、*、/、%(求余数) 例如: 3+2 1.2*3.2 5%3 1/2 求余运算符%只能用于整型数据的相除求余数,结果为整数. 如: 7%2.0 为非法表达式,7/2结果为3, 7%2 结果为1 运算规则 1)如果运算数类型一致,则结果为运算数的类型。所有实数运算都是以双精度进行. 2)如果运算数类型不一致,则系统自动转换,使运算符 两边类型一致后再进行运算。 char 和short参与运算先转换成同int . 赋值运算中,赋值号右侧量的类型将转换成左侧的类型. 例1 1.0/2.0结果为0.5 例2 1/2结果为0 例3 15/3.0结果为5.0 l 强制类型转换 格式: (类型名)(表达式) 例4 (int)3.234结果为3 例5 (float)(10%3)结果为1.000000 l 关系运算符 >,>=,<,<=的优先级相同且高于==,!=的优先级. 关系运算符的优先级低于算术运算符高于赋值运算符. 关系运算符是左结合性. l 关系表达式的值为真则是1,假为0. l 逻辑运算符!高于&&,和||,高于算术运算符.&&和||是左结合的,!是右结合的. l 注意&&及||运算的短路现象。 && 的短路运算: (表达式1)&& (表达式2),若(表达式1)的值为0,则表达式2将不被计算,整个&&的结果为0。 || 的短路运算: (表达式1)|| (表达式2),若(表达式1)的值为1,则表达式2将不被计算,整个||的结果为1。 l 数学关系式0<x<10在C语言中的表达: (0<x) && (x<10) 或 0<x && x<10 l 赋值表达式 格式: 变量名=表达式 例如: a=10 a=a+1 a=b=7+1为合法表达式 a+b=8 a=7+1=b为非法表达式 整个表达式的值等于最左边变量的值。 例如: a=b=c=8*8 整个表达式最后的值为64 l 复合赋值表达式 复合运算符: +=、-=、*=、/=、%= 例如: n=n+1表达式可写成n+=1 n=n%3表达式可写成n%=3 n*=m+3表达式可写成n=n*(m+3) 例1 假设变量a初值为9,计算下列表达式。 a+=a-=a+a 解答: 1) 计算a+a,结果为18,a值未变。 2) 计算a-=18,即a=a-18,结果为-9,a值变为-9。 3) 计算a+=-9,即a=a+(-9),结果为-18,a值变为-18。 整个表达式最后结果为-18,a最后值为-18。 注意: a=a+1为赋值表达式,而a=a+1; 为赋值语句。 l 自加和自减运算符 自加和自减只适用于整型变量. 例如: a++和++a等价于a=a+1 b--和--b等价于b=b-1 a++和++a的区别: 假设a的初值为5 表达式a++值为5,最后a值为6。 表达式++a值为6,最后a值为6。 l 逗号表达式 格式: 表达式1,表达式2,…..,表达式n 从左至右依次计算每个表达式,最后一个表达式的值即为 整个逗号表达式的值。 例如: 表达式i=3,++i,i+5最后结果为9,i最后值为4。 l 条件运算由"?"和":"构成,它是根据条件从两个表达式中选择一个进行计算取值的操作,优先级高于赋值运算符,低于算术运算和关系运算. 三、输入输出函数 l 数据输出 printf 格式: printf(格式符,输出项1,输出项2,….) 格式符 功能 %c 输出一个字符 %d 输出十进制整数 %f 输出小数形式浮点数 %e 输出指数形式浮点数 %s 输出一个字符串 数据宽度说明: 1)在%和格式字符之间插入一个整数来指定输出宽度。 例如: %4d、%5c 2)对于float和double类型的实数,可以用n1.n2形式 n1指定输出数据的宽度(包括小数点),n2指定小数 点后小数的位数。 例如: %12.3f、%12.0f 例1 输出整型变量a和b的值,数据宽度均为4。 printf(“%4d%4d”,a,b); 例2 输出单精度变量k的值,保留2位小数。 printf(“%.2f”,k); l 数据输入 scanf 格式: scanf(格式符,输入项1,输入项2,…) 格式符 功能 %c 输入一个字符 %d 输入十进制整数 %f 输入单精度数 %lf 输入双精度数 %s 输入一个字符串 例1 从键盘上输入两个整数,保存在变量a和b中。 scanf(“%d%d”,&a,&b); 例2 从键盘上输入一个双精度数,保存在变量data中。 scanf(“%lf”,&data); 此处两例中&是C语言运算符,表示取变量地址。 l 复合语句 格式: {语句1 语句2 …. 语句n} 例1 用复合语句将变量a,b,c依次赋值为最小素数。 { a=2; b=3; c=5; } 例2 用复合语句实现变量a和b的值的交换。 { k=a; a=b; b=k; } l 不带参数的宏 #define  PI  3.14159  意思是用符号常量PI(宏名)代替3.14159(宏体),注意:宏定义不是c语句,后面不加分号. l 带参数的宏. #define  m(x)  x*x*x*x 意思是m(x)代替x的4次方,x 不用定义,可以在使用中换成需要的字母. 带参数的宏的展开,如: #define  m(x)  x*x*x*x printf("%d", m(1+1)); m(1+1)的宏展开式为: 1+1*1+1*1+1*1+1 计算结果为5 再如: #define  m(x)  (x)*(x)*(x)*(x) printf("%d", m(1+1)); m(1+1)的宏展开式为: (1+1)*(1+1)*(1+1)*(1+1) 计算结果为16 l include命令是编译预处理的文件包含命令,形式为了#include <文件名>或者 #include"文件名",调用标准函数中的输入输出函数,#include "stdio.h" ,如果调用数学函数(如 sqrt函数、fabs函数等),则应加上#include  "math.h " 或者#include <math.h> 四、分支结构 l 关系运算符 >、<、>=、<=、==、!= 关系运算的结果只有两种: 真或假 C语言中用1表示真,用0表示假。 例1 6>=6 ‘a’>’A’ ‘5’>’ ‘ 结果均为真,值为1 例2 6!=6 ‘D’==’d’ ‘9’>’F’ 结果均为假,值为0 l 逻辑运算符 &&(与) ||(或) !(非) 优先级: 非运算>与运算>或运算 非运算规则 操作数 结果 真 假 假 真 与运算规则 操作数1 操作数2 结果 真 真 真 真 假 假 假 真 假 假 假 假 或运算规则 操作数1 操作数2 结果 真 真 真 真 假 真 假 真 真 假 假 假 例1 若变量a值为10,变量b值为16,计算表达式。 a>b || a>sqrt(b) && b>=16 最后结果为真,表达式的值为1 l if语句的一般形式: 单分支结构: if(表达式) 语句 若表达式为真,则执行语句;否则if语句结束。 二选一结构: if(表达式)    {语句组1} else {语句组2} 表达式的值非0才执行语句组1,否则执行语句组2. 例1 从键盘上输入两个整数,输出较大的数。 #include <stdio.h> main() { int x,y; printf(“请输入两个整数:\n”); scanf(“%d%d”,&x,&y); if (x>y) printf(“%d”,x); else printf(“%d”,y); } l 条件运算符 格式: 表达式1? 表达式2: 表达式3 若表达式1为真,结果为表达式2;否则为表达式3。 例如: x的初值为5,执行以下语句 y=++x>6?100:200; 最后y的值为200 l if语句可嵌套,在花括号里继续使用. 多选一结构: if(表达式1) {语句组1} else if(表达式2) {语句组2} else if(表达式3) {语句组3} else {语句组n} 例1 根据输入的学生成绩,大于或等于90分为A,60 分以下等级为E,其余每10分一个等级。 #include <stdio.h> main() { int g; printf(“请输入一个整数:\n”); scanf(“%d”,&g); if (g>=90) printf(“A\n”); else if(g>=80) printf(“B\n”); else if(g>=70) printf(“C\n”); else if(g>=60) printf(“D\n”); else printf(“E\n”); } l switch(表达式) // switch表达式通常为整型或字符型值 { case常量1:语句组1 //case后面必须是常量    case常量2:语句组2 ......... default:语句组 //也可省略该语句 } 可以使用中break 来中止后面语句的执行. l switch表达式通常为整型或字符型值,case中的常量类型与之对应,case后面的表达式可以是常量或常量表达式,不能为变量表达式. switch语句 格式: switch(表达式) { case 常量表达式1: 语句1 case 常量表达式2: 语句2 …… case 常量表达式n-1: 语句n-1 default: 语句n } 若表达式的值与表达式1相等,则执行语句1;若与表达 式2相等,则执行语句2……若均不相等则执行语句n。 例1 用switch语句重写学生等级程序。 #include <stdio.h> main() { int g; printf(“请输入一个整数:\n”); scanf(“%d”,&g); switch(g/10) { case 10: printf(“A\n”); break; case 9: printf(“A\n”); break; case 8: printf(“B\n”); break; case 7: printf(“C\n”); break; case 6: printf(“D\n”); break; default: printf(“E\n”); } } 程序中break表示跳过后面的分支。 五、循环结构   l while循环 格式: while(表达式) 循环体 若表达式为真,则执行循环体。再判断表达式,若仍为真 则重复执行循环体直到表达式为假时循环结束。 例1 编程计算S=1+2+……100。 #include<stdio.h> main() { int k=1,s=0; while (k<=100) { s=s+k; k=k+1; } printf(“%d”,s); } l do-while循环 格式: do 循环体 while(表达式); 先执行循环体,然后判断表达式。若为真则重复执行 循环体直到表达式为假时循环结束。 例1 用do-while循环计算10! #include<stdio.h> main() { int k=1; long s=1; do { s=s*k; k++; } while (k<=10); printf(“%ld”,s); } 注意: while循环和do-while循环的区别 while循环是先判断表达式,因此循环体有可能一次也不执行。do-while循环是先执行一次循环体,再判断表达式,所以不论表达式为真为假,循环体至少要执行一次。 l for循环 格式: for(表达式1;表达式2;表达式3) 循环体 先执行表达式1,然后判断表达式2,若为真则执行 循环体。然后执行表达式3,再判断表达式2,若仍 为真则重复执行循环体直到表达式2为假时结束。 例1 用for循环计算S=1+2+…100。 #include<stdio.h> main() { int k,sum=0; for(k=1;k<=100;k++) sum=sum+k; printf(“%d”,sum); } 例2 若一个三位数个位、十位、百位的立方和等于它本身 则称这个数为水仙花数。例如153是一个水仙花数。编程输出所有的水仙花数。 #include<stdio.h> main() { int a,b,c,i; for(i=100;i<=999;i++) { a=i/100; b=i%100/10; c=i%10; if(a*a*a+b*b*b+c*c*c==i) printf("%d\n",i); } } l break语句 适用的场合是switch语句中,及循环语句中。 用在循环体内表示强行退出循环。 例1 计算S=1+2+3+…n,直到累加和大于5000为止。 #include <stdio.h> main() { int i,s=0; for(i=1; ;i++) { s=s+i; if(s>5000) break; } printf(“%d”,s); } 注意: 当有多重循环时,break只能退出最内层循环。 l continue语句 用在循环体中用来跳过本次循环余下的语句,立即开始 下一轮循环,整个循环并未结束。 例1 写出下列程序运行结果。 int i, k=0, s=0; for(i=1;i<=5; i++) { s=s+i; if(s>5) { printf(“i=%d,s=%d,k=%d\n”,i,s,k); continue; } k=k+s; printf(“i=%d,s=%d,k=%d\n”,i,s,k); } 运行结果: i=1,s=1,k=1 i=2,s=3,k=4 i=3,s=6,k=4 i=4,s=10,k=4 i=5,s=15,k=4 六、数组 l 数组是包含多项相同类型数据的一种数据结构,它使用同一个名字命名,再用下标进行分量标识. 数组元素的下标从0开始,数组长度为n时,最末元素的下标是 n-1. 定义一维数组 格式: 类型名 数组名[元素个数] 例1 定义一个包含4个整数的数组a int a[4]; 例2 定义一个包含3个双精度数的数组b double b[3]; 注意: C语言中数组的下界从0开始计数。 例如: a[4]的4个元素分别为a[0]、a[1]、a[2]、a[3] l 数组有一维数组,二维数组,和多维数组.数组中的每一个分量称为一个数组元素。 l 一维数组定义格式 数据类型 数组名[数组长度]; //数组长度指数组中可以存放的数据元素的个数,用整数常量表示,也可用代表一个正整数的符号常量表示 例如: int array[10]; C语言规定只能逐个使用数组元素,而不能一次使用整个数组。 l 数值型一维数组的初始化, 用一对大括号将数组的初值括起来。 例如:int a[6]={10,20,30,40,50,60}; 注意:C语言中,不允许初值个数多于数组定义的长度。 int a[ ]={10,20,30,40,50,60}; 给初值的情况下,数组的长度可省略,系统以初值的个数作为数组的长度。 l 对部分元素的初始化,例如:int a[6]={10,20,30}是对前3个元素的赋值. 例1 int a[3]={1, 2, 3}; 此例中a[0]值为1、a[1]值为2、a[2]值为3 例2 int a[5]={0}; 此例中数组a的全部元素值均为0 例3 int a[3]={1, 2, 3, 4}; 此例中由于初值个数多于数组元素个数,所以非法。 例4 int a[ ]={0, 0, 0, 0}; 此例中省略数组元素个数,初值为4个0 等价于int a[4]={0}; 注意: 数组名是一个常量值,不能对它赋值。 例如: int a[3]; a=5; 此语句非法,应改为a[0]=5; l 一维数组应用 例1 从键盘上输入10个整数,输出最大数和最小数。 #include<stdio.h> main() { int a[10],i,max,min; printf("请输入10个整数:\n"); for(i=0;i<=9;i++) scanf("%d",&a[i]); max=a[0]; min=a[0]; for(i=1;i<=9;i++) { if(a[i]>max) max=a[i]; if(a[i]<min) min=a[i]; } printf("最大数是%d\n",max); printf("最小数是%d\n",min); } 例2 斐波数列的定义如下: 1、1、2、3、5、8、13、…… 编程输出斐波数列的第40项值。 #include<stdio.h> main() { long a[40]; int i; a[0]=1; a[1]=1; for(i=2;i<=39;i++) a[i]=a[i-1]+a[i-2]; printf("%ld",a[39]); } l 字符型一维数组中每1个元素存放一个字符常量. 如: char ch[]={'\x10', '\x21', '\x1f', '\x5a'}; 该数组中的初值字符为转义字符。 l 字符串 用双引号将一串字符括起来称字符串。 C语言中用一维数组来存放,并以’\0’作为结束标志。 ‘\0’就是0,占用空间但不计入串的实际长度。 例如: 字符串”student”的长度为7,占用空间为8 通常利用字符数组存放字符串。如: char str[20]={ "hello"}; 该字符串的实际长度为5个字符,占用的数组空间长度为20 '\0'是字符串的结束标志. 系统在存放一个字符串时,会在串的最后一个字符后添加'\0'。 l 任何一个一维数组在内存中都占用一段连续的空间. l 用"%s"格式输入字符串时,遇到回车键结束,但获得的字符中不包含回车键本身,而是在字符串末尾添加'\0'. l 使用一个一维scanf()函数使用"%s"格式输入多个字符串时,输入的各字符串之间要以空格键分隔. 如: char ch[20]; scanf(“%s”,ch); //从键盘输入一个字符串存入数组ch l 用%s格式符为一个字符数组输入字符串时,只有第一个空格之前的字符串被读入到字符数组中. 如:对上面的ch数组,输入“Hello world!”则只有空格前面的“Hello”被存入数组。 l gets()函数和 puts()函数专门用于字符串的输入输出,而且只能对一个字符串进行操作. gets()函数格式为:  gets(字符数组名); 如:char str[20]; gets(str); /*从键盘输入一个字符串存入数组ch,输入时以回车键作为结束符.*/  puts()使用格式与gets()相同. puts(str); //输出str数组中存放的字符串 l 字符串常用函数 使用下列函数时要包含头文件<string.h> 1)字符串拷贝函数 strcpy(s1,s2) 表示将s2复制到s1中。 2)字符串连接函数 strcat(s1,s2) 表示将s2连接到s1后面形成一个新字符串。 3)字符串长度函数 strlen(s) 计算出s的实际长度不包括’\0’。 4)字符串比较函数 strcmp(s1,s2) 若s1>s2,函数返回值大于0 若s1=s2,函数返回值等于0 若s1<s2,函数返回值小于0 l 字符串应用 例1 从键盘上输入一个字符串,输出它的长度。 #include<stdio.h> #include<string.h> main() { char* p, str[100]; p=str; printf("请输入一个字符串:\n"); gets(p); printf("%d",strlen(p)); } l 定义二维数组 格式: 类型名 数组名[一维上界][二维上界] 例1 定义一个2行2列的整型数组a int a[2][2]; 此例中数组a共有4个元素,分别是a[0][0]、a[0][1]、a[1][0]、a[1][1]。 例2 定义一个4行4列的整型矩阵a int a[4][4]; l 二维数组的初始化 用嵌套的大括号将数组初值括起来。 例1 int a[4][3]={ {1,2,3}, {4,5,6}, {7,8,9}, {10,11,12} }; 例2 int a[4][3]={ {1,2}, {4,5}, {7}, {10} }; 此例中系统自动给空缺的地方补0 例3 int a[4][3]={ {1,2}, {4,5} }; 系统自动给后面的行补初值0 例4 int a[4][3]={1, 2, 4, 5}; 此例中数组a的第一行中元素和第二行的第一个 元素依次为1,2,4,5其余全部为0 l 定义二维数组大小 例1 int a[ ][3]={ { 1,2,3}, {4,5}, {6}, {8} }; 有4个行花括号,因此说明是4行3列。 例2 int a[ ][3]={1, 2, 3, 4, 5};表示一个2行3列数组。 l 定义并初始化二维数组时,数组的列数不能省略。如: int a[2][]={{1,2},{3,4,5}}; 是错误的。 l 二维数组应用 例:从键盘上输入5个学生3门课程的成绩,分别计算 每个学生的平均分和每门课程的平均分。 #include<stdio.h> #define M 5 #define N 3 main() { int a[M][N],i,j,sum; printf("请输入15个分数(0-100):\n"); for(i=0;i<=M-1;i++) for(j=0;j<=N-1;j++) scanf("%d",&a[i][j]); printf("每个学生的平均分\n"); for(i=0;i<=M-1;i++) { sum=0; for(j=0;j<=N-1;j++) sum=sum+a[i][j]; printf("%4d",sum/N); } printf("\n"); printf("每门课程的平均分\n"); for(i=0;i<=N-1;i++) { sum=0; for(j=0;j<=M-1;j++) sum=sum+a[j][i]; printf("%4d",sum/M); } } 七、函数 l 带返回值的函数 格式: 类型名 函数名(参数列表) { 语句 return 返回值 } 例1 已知F(X)=2*X+3,计算F(1)+F(2)+….F(10)的值。 #include<stdio.h> int f(int x) { return 2*x+3; } main() { int i,sum=0; for(i=1;i<=10;i++) sum=sum+f(i); printf("%d",sum); } 例2 编程输出2至100之间所有的素数之和。 #include<stdio.h> int isprime(int num) { int i; for(i=2;i<=num-1;i++) if(num%i==0) return 0; return 1; } main() { int i,sum=0; for(i=2;i<=100;i++) if(isprime(i)==1) sum=sum+i; printf("%d",sum); } 例3 从键盘上输入两个整数,分别输出它们的最大公约数 和最小公倍数。 #include<stdio.h> int getmax(int a,int b) { int result; result=a<b?a:b; while(a%result!=0 || b%result!=0) result=result-1; return result; } int getmin(int a,int b) { int result=1; while(result%a!=0 || result%b!=0) result=result+1; return result; } main() { int a,b; printf("请输入两个整数:\n"); scanf("%d%d",&a,&b); printf("最大公约数是%d\n",getmax(a,b)); printf("最小公倍数是%d\n",getmin(a,b)); } l
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服