收藏 分销(赏)

C语言学习笔记.docx

上传人:二*** 文档编号:4513067 上传时间:2024-09-26 格式:DOCX 页数:38 大小:57.93KB 下载积分:5 金币
下载 相关 举报
C语言学习笔记.docx_第1页
第1页 / 共38页
本文档共38页,全文阅读请下载到手机保存,查看更方便
资源描述
1 .第一个C程序: # include "stdio. h"/*该行是文件包含命令*/niain() { printf ("test") ;/*函数调用:printf将内容输出到显示器*/} 注:C语言区分大小写;程序中必须含有一个且只有一个名字为main的主函数; 每行程序必须以〃;“结尾;/* ... */是注释内容。 2.引申例题:计算任意半径圆的面积和周长。 ftinclude "stdio. h"mciinO { float r, 1, area;/*定义 float 类型变量*/scanf (飞f",&r);/*调用获取键盘输入函数*/ 1 = 2*3.14*r;area = 3.14*r*r; printf C\n l=%f, area=%f\n,z, 1, area);) 注:r, 1, area是float类型的变量,程序运行中可改变,float是c语言中的一种 数据类型。 3求两个数的和。 ttinclude "sldio. h"mciinO { int i, j, sum; int Add(int m, int n) ;/*声明函数*/ 0,01,0,0 0, 1,0逻辑或运算符例子代码: ttinclude “stdio. h"main() { int m, n; int k; k=(m=0)||(m=l);或运算的计算规那么*/ printf ("%d, %d\n”, in, k); k=(m=l) | | (m=0); printf (“为d, %d\n”, m, k); k=(m=2)||(m=l)||(m=0);算的规那么测试*/ printf ("与d,与d\n”, m, k); m=0, k=0; n=++m||++k; printf ("%d, %d, %d\n”, k, m, n); m=0, k=0; n=++k||++m; printf (*%d, %d, %d\n*, k, m, n);++m||++k+*/ }程序运行结果: /*逻辑/*多层逻辑或运 /*测试表达式++k |++m与1, 1 1,12,1 0, 1, 11,0, 1 逻辑与和逻辑或混合运算例子代码: #include “sldio. h" mainO { int m, k; /*表达式理解为(m=0) I I ((m=l )&&(m=2))*/ printf (,z%d, %d\n,,, rn, k); k=(m=2)||(m=0);(m=2)| ((m=l)&&(m=0))*/ printf ("%d, %d\n”, m, k); k=(m=2)&&(m=l) | | (m=0); ((m=2)&&(m=l))||(m=0)*/ printf (“为d, %d\n”, m, k); k=(m=0)&&(m=l) | | (m=2);((m=0)&&(m=1))||(m=2)*/ printf (“为d, %d\nz,, m, k); /*表达式理解为 /*表达式理解为 /*表达式理解为 程序运行结果: 2,12,1 1,12, 1 4条件运算符和条件表达式4.1条件运算符〃?「是C语言中唯一的的三目运算符,优先级高于赋值运算 表达式语法:表达式1?表达式2:表达式3其执行顺序是:先求解表达式1,假设为1那么执行表达式2,否那么执行表达式3。 例子代码: ttinclude "stdio. h"main() { charch; scanf ("枇",&ch);/*输入一个字符,赋给变量ch*/ ch=(ch>= AJ &&ch<=, Z') ? (ch+, a'」A'): ch;/* 当字符为大写字母时,将其变为小写字母*/ printf (,/\n%c,,» ch);) 5sizcof运算符5. Isizeof是C语言的一种单目运算符,运算对象是变量名、表达式或数据类型标 示符。功能是以字节形式给出操作数的存储大小。 5. 2语法格式:sizeof (表达式)或sizeof表达式 或sizeof (数据类型)6取地址运算符 6.1取地址运算符的运算对象只能是变量,运算结果为变量的存储地址。 7几种运算混合运用例子代码: ttinclude "stdio. h"main() { int x, y=l, z; x= ((9+6)%5>=9%5+6%5) ?l:0;/*((9+6)%5> =9%5+6%5)等价于(((9+6) %5)>=(9%5 + 6%5))其值为 0*/ printf(* x=%d\n”,x); y+=z=x+3;/* y+=z=x+3 等价z=x+3, y=y+z*/ printf(* y=%d\t z=%d\n”, y, z); x=y=z=l; -xa&++y| |z++;/*混合的逻辑与和逻辑或运算*/ printf C x=%d\t y=%d\t z=%d\n”, x,y,z);} 程序运行结果: x=0 y=4z=3 x=0 y=l z=2摘自letthinking的专栏 c语言学习笔记(五)一顺序程序设计 1语句概述L1普通表达式语句:表达式后加分号就是•个表达式语句,语句与表达式不同, 是无值的,而表达式是有值的。 1.2流程控制语句:流程控制语句主要用来控制程序执行走向,以实现程序的各种 结构方式,它有特定的关键字等,主要分为分支和循环两种。 分支流程控制语句:if、switch0循环流程控制语句:for、while、do while。 1. 3跳转语句:跳转语句的作用主要是让程序从止常执行的走向中跳转到其它局部, 常见跳转语句如下间断语句:break、continue。 转向语句:goto。 Return 语句:return。 L4复合语句:由一些语句组成,放在一个大括号中形成一个整体,句型如下: (语句1; 语句2: 语句n: C语言语法规定,复合语句作为•条语句来处理。 例子代码: ttinclude "stdio. h"main() { int a=I1, b=21, c=31; printf ("a=与d\tbKd\tc=%d\n”, a, b, c); /*复合语句开始*/ /*复合语句结束*/ (int b=22; float c=3. 3; printf (,/a=%d\tb=%d\tc=%f\n/,, a, b, c); a二 b; } printf (,/a=%d\tb=%d\tc=%d\n/,, a, b, c);) 输出结果如下: a=l1 b=21 c=31a=ll b=22 c=3. 300000 a=22 b=21 c=31上面的代码可以和下面的代码比照运行: ftinclude "stdio. h"ma in() { int a=ll, b=21, c=31; printf (/,a=%d\tb=%d\tc=%d\n,/, a, b, c); { int a=l;int b=22; int b=22; /*复合语句开始*/ float c=3. 3; printf("a=%d\tb=%d\tc=%f\n”,a,b,c); a=b; /*复合语句结束*/ printf (,/a=%d\tb=%d\tc=%d\n,,, a, b, c);程序运行结果: a=ll b=21 c=31a=l b=22 c=3. 300000 a=ll b=21 c=31可以看到,在复合语句中声明的变量只在复合语句中起作用。 1.5 空语句:空语句一般指只有一个分号占位,一般用在程序设计初期,表示待编 写的函数或代码。 1.6 各种语句整体介绍: ttincludc "stdio. h"/*声明语句*/ /*控制语 /*复合 /*表达式语 /*声明语句*/ /*控制语 /*复合 /*表达式语 main() { int a=10, b=20, c; if (b>a)句 */ {;语句 */ c=a+b;;句 */ /*函数调用语 printf (飞d”, c); ) else ;/*空语句*/ }2库函数的调用与输入输出的关系 2.1 标准的库函数是存放在函数库中的,因此使用时必须要告知计算机,说明函数 库属于哪个库,此过程为函数的声明,例如: ft include "math, h" /*标准数学函数的声明*/Main() { y=sin(x); /*库函数的调用*/ )Include是C语言中的特定字,是包含的意思,包含的文件一般为.h,称头文件。 2. 2在C语言中提供了一些输入输出的标准库函数,例如printf和scanf,使用时 必须将函数库的头文件stdio.h包含进程序中。 3格式化输出Iprintf函数:它的作用是向终端输出数据。 函数格式:printf ("格式控制语句:输出项1,输出项2);例如:printf("%f”,j);输出浮点类型的变量j, %f为控制符。 常见的格式控制符:: 刎一十进制整型,%o一-八进制无符号整型,%f输出实数,%s一字符串,猊一输出 单个字符等。 4字符输出1字符输出可以利用putchar函数,在stdio. h中已经定义。 例子代码: ftinclude "stdio. h"mciinO { char a, b, c; a=' C'; b=' A'; c='T'; putchar(a); putchar(b); putchar(c); putchar (? \n ); putchar (J \10T ); putchar (* B'); putchar (J c );} 注:该函数不能输出两个或两个以I:的字符数据。 5格式化输入 5. Iscanf函数:作用是从键盘获取数据,格式化后再赋值给变量。 调用形式:scanf (格式控制语句,输入项);/********************************************************************* 6字符输入6. IgetchO和getcheO函数:功能都是读入一个字符。 两者的区别是:getch()函数不将读入的字符回显到屏幕上,getcheO却显示。 例子代码: #include<stdio. h>ma i n() char c, ch;c=getch(); /*从键盘上读入一个字符不回显送给字符变量c*/ ch=getche();/*从键盘上带回显的读入一个字 符送给字符变量ch*/putchar(c); /*输出该字符*/putchar(ch); 6. 2getchar()函数:作用是从终端输入一个字符。getchar函数将空格符、制表符、和换行符都作为有效字符录入。 例子代码: ftinclude "stdio. h" scanf(*%d sum = Add(i, j);/*调用函数*/ printf (^Xn sum=%d \n,,» sum);} int Add(int m, int n) {/*函数*/ return m + n;} 注:scanf C%d %d", &i,&j);中的&是取地址运算符。 通过以上三个例子的总结: 1. 一个c语言源程序可以由一个或多个源文件组成,每个源文件可以由一个或多个 函数组成,一个源程序无论有多少个源文件或函数,都只能有一个且只能有一个 mian函数。 由引入的指令为预处理指令。 4常见语法规范。 标示符:程序中的变量名、函数名、标号等统称为标示符。C语言规定标示符只能 由字母、数字和下划线组成,并且第一个字符必须是字母或下划线。 1常见数据类型Int、short、long^ unsigned% float、double、char、enum、void、指针类型、数 组类型、struct、union 等。 基本数据类型:Int> short^ long、unsigned、float、double、char^ enum 都属 于基本类型。特点是其值不可再分。 2常量。 常量定义方式:fidofino标示符常量main () { char cl,c2; cl=getchar(); c2=getchar(); putchar(cl); putchar(c2);} ***********************************************************************/7顺序程序设计 例一:计算一元二次方程的根。 代码: #include "math, h” main() ( double a, b, c; double xl,x2,p; printf (z,pleaseinputa, b, c:"); scanfr%lf%lf%ir, &a, &b, &c); printf('\n"); p=b*b-4*a*c; */ xl=(-b+sqrt (p))/(2*a); x2=(-b-sqrt(p))/(2*a); printf("xl=%f, x2=%f\n”, xl, x2); } 例二:两位整数倒序。 /*声明系数*/ /*输入系数*/ /*P存放判别式的值 /*计算方程的根方 /*输出结果*/ 代码: ftinclude <stdio. h> mainO( int m, n; printfCinputm (10-99); scanf("%d", &m); printf('\n"); n=ifi%10; m=n*10+m/10; printf("m=%d'n”, m);} c语言学习笔记(六)一分支程序设计 1使用if语句设计选择程序:if语句一般分为两种方式:单条件单分支、和单条 件双分支if语句。 1. 1单条件单分支的if语句一般语法: If (表达式A){语句B; 语句执行流程:首先执行表达式A,如果表达式A的值非0,那么执行语句序列B,然 后流程继续往下执行。 例子代码: ft include “stdio. h"mainO { double score;printf("input the score:"); scanf&score);i f (score〉=60) /*成绩开始判断*/ printf (,/\npass!\n,/);printf (''programming is over!\n") ;/*和判断语句并列的下一条语句*/ }1.2单条件双分支的语法格式: If (表达式A) {语句B; }else{语句C; )语句执行流程:首先执行表达式A的运算,如果表达式A的值非0,那么执行语句B, 条件不成立那么执行Co 例子代码: i nclude "stdio. h"mainO (double score; printf(,zinput the score:");scanf (“机f”, &score); if (score>=60) /*成绩开始判断*/printf ("\npass!\n") ;/*及格说明分支*/ elseprintf (*fail! \n"); printf (,zprogramming is over!\n") ;/*和判断语句并列的下一条语句*/ }2嵌套的if语句 2. 1嵌套常用格式: 第一种: If(表达式){语句} else if(表达式){语句} 第二种: If(表达式){语句} else if(表达式)语句 else语句 例子代码: #include stdio. h#include "math, h” void main(){int a; scanf("%d", &a); if(abs(a)<10) printf (线dis one bit. \n",a); else if(abs(a)<100)printf (",%dis two bit. \nz,, a); else if(abs(a)<1000)printf(,z%dis three bit. \n",a); else if(abs(a)<10000)printf (z,%d is four bit. \n", a); else if(abs(a)<32767) printf(w%dis five bit. \n",a);else printf (,/thenumberistoolarge\n,z);3.用switch分支设计选择程序 3. 1语法形式: Switch(表达式){case整型常量表达式1:语句;[break;] case整型常量表达式1:语句;[break;]case整型常量表达式1:语句;[break;] Ldefaul t]:语句;注:口里是可省略的。 3.2语句的执行流程:根据switch表达式的值,确定语句的执行入口,自上而下用 表达式的值与case的值比拟,相等就执行case后面的语句,如果语句结尾含有 break,就中断switch,否那么就继续执行下一个case,如果没有与表达式相匹配的 值,就执行default后的语句。 switch的表达式可以为任意类型,但运算结果必须是整型或字符型。 例子代码: ttinclude "stdio. h"main() {int score; printf("score="); scanf("兆d”, &scorc);switch((int) (score/10))/*整型量之间的除法,结果 仍为整型*/( case 10: case 9:printf (^YourgradeisA\n,/);break; case 8:printf (/,YourgradeisB\n,/);break; case 7:printf (/,YourgradeisC\n,/);break; case 6:printf (z,YourgradeisD\n,z);break; default:printf("YourgradeisE'n");switch语句也可以嵌套,break只能让程序跳出它所在的switch分支。 例如: switch(nl) { switch(n2) {; )case 2:; )4.分支程序设计实例 4.1 判断年份是否为闰年。 用include "stdio.h"mainO { int year;printf(,zinput the year:"); scanf&year);if((year%4 == 0) && (year%100 != 0)) printf ("该年是闰年\n"); else if(year%400 == 0)printf ("该年是闰年\n"); elseprintf ("该年是平年\n"); }4. 2计算天数: ftinclude,zstdio. h" main()( int day, month, year, sum, leap; printf ('Anplease input year, month, day\n,z); scanf (,/%d%d%d,,> &year, &month, &day); switch(month)/*先计算某月以前月份的总天数*/ ( case 1:sum=0;break; case 2:sum=31;break; case 3:sum=59;break; case 4:sum=90;break; case 5:sum=120;break; case 6:sum=151;break; case 7:sum=181;break; case 8:sum=212;brcak; case 9:sum=243;break; case 10:sum=273;break; case 11:sum=304;break; case 12:sum=334;break; default:printf("data error");break; ) sum=sum+day; /*再加上某天的天数*/ if (year%400==01 I (year%4==0&&year%l00! =0))/*判断是不是闰年*/ leap=l; else leap=0; if (leap-l&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ sum++; printf (,zIt is the %dth day. ”, sum);} 1循环语句1循环语句主要包括三种:while、do-while> for。 2while语句处理循环Iwhi le语句基本形式: While (表达式){循环体语句} 2. 2执行流程:首先计算while表达式的值,当非零时执行循环体内的语句,执行 完之后继续判断while表达式的值,如果非零,继续执行循环体,直到表达式值为 零时,跳出循环,执行后续的语句。 例子代码: <span style=,,font-size: 18px;include “stdio. h"main () { int i, sum; i=l; sum=0; while ( i<=100 )/*累加的数i小于或等于终止数n就循环累加,否那么结束循环*/ { sum=sum+i;i++; printf ("sum=%d\n”, sum);}</span> 注:使用sum和i时一定要赋初始值。 2. 3while语句使用注意: 循环体要是多条语句必须使用符合语句形式;在循环体表达式中一定要有控制循环趋向结束的语句,否那么循环将无限进行;循环体可为空; 2. 4whilc 实例:a+aa+aaa+.... 代码: <span style="zfont-size: 18px;include “stdio. h"main() ( int a, x; long sum=0, n=l, tn ; sccinf &a, &x); tn=a; while(n<=x)/*n 超过 x 那么中止*/ {sum+=tn; tn=tn*10+x; n++; ) printf(^result is %ld”, sum);}</span> 思考问题:求阶乘。 3do while语句处理循环常量分为:直接常量和符号常量。 例题:求任意圆的周长和面积,使用常量定义:n。 ttinclude "stdio. h"ftdefine PI 3.1415926 ma in() {float r,1,area; scanf ("%f", &r);1 = 2*PI*r; area = Pl*r*r;printf(*Xn l=%f area=%f \n”, 1, area); )注:常量值不能被修改;习惯上常量名大写,变量名小写: 整型常量(整型): 1 .十进制整常数:0~9数字,无前缀等,也就是整常数。例如:237、-783、65535;.八进制正常数:以0为前缀,数值为0、7,八进制通常是无符号数。例如:023; 2 .十六进制整常数:前缀为0X或Ox,由0〜9, a~f或A~F组成(不区分大小写), 例如:0X23A、OXAA、OxFFFO; 3 .长整型常量:使用L或小写1作为后缀,例如:123L (十进制123)、0121 (八 进制10) > 0xl5L (十六进制 21)。 3. Ido while语句基本形式: do (循环体语句}while(表达式); 3. 2执行流程:先执行do后面的循环体,然后计算while里的表达式值,当值非零 时继续执行do的循环体,当值为零时,跳出循环。 例子代码: <span style=wfont-size: 18px;include "stdio. h"main ()( int i, sum; i=2; sum=0; do /*先执行循环*/ ( sum+=i; i+=2; )while(i<=100);/*判断条件*/ printf ("sum=/d\n”, sum );}</span> 3. 3while和do while的区别:就是while首先要判断while的表达式是否成立再 执行循环体,而do while是无论while的表达式是否成立,都会先执行一次do的 循环体。 4for语句处理循环4.1基本语法形式: for (表达式1;表达式2;表达式3) 循环体;注:for是C语言关键字,括号里的3个表达式可以是任意的表达式,当循环体内 有多条语句时,注意使用复合语句。 4. 2先计算表达式1,表达式1只执行一次,一般是赋值语句,用于初始化变量;然 后求解表达式2,假设值为零,那么退出循环,假设非零,那么执行循环体;接着执行表达 式3,然后继续判断表达式2,再执行循环体,直到表达式2不成立。 例子代码: <span style="zfont-size: 18px;include “stdio. h"main() (int i,sum; sum=0;for( i=l; i<=100; i++) sum+=i;printf("sum=%d”, sum); }</span>3for语句的特点:表达式1、2、3都可以省略,但“;”分号不能省略;表达式 可以是任意形式的表达式;循环体可以为空;for的括号里可以使用多个控制循环 的变量。 判断素数例子代码: <span style=,/font-size: 18px;include “stdio. h"^include "math, h” mainO (int n, m, flag; flag=l; 为素数,否那么不是素数。初值为1*/ printf(,z\n enter n:"); scanf &n); for(m=2;m<n&&flag;m++) ^include "math, h” mainO (int n, m, flag; flag=l; 为素数,否那么不是素数。初值为1*/ printf(,z\n enter n:"); scanf &n); for(m=2;m<n&&flag;m++) 除*/ if (n%m-0) flag=0; 是素数*/ if(flag==l) 没有变化,那么为素数*/ printf (^\n%d is a prime number./,, n); else printf(^Xn %d is not a prime number. ”, n); }</span> /*flag变量为旗帜变量,值为1那么n /*输入n*/ /*判断n能否被2〜n-1之间的数整 /*n不 /*假设flag的值 4思考问题: 1 .求阶乘。 2 .输出斐波那契数歹h.输出水仙花数。 3 .输出如下列图形: ***** *** ** *5流程控制语句 有时我们在执行循环的过程中,可能需要在中途中断循环或者跳过本次循环,这时 我们就需要使用流程控制语句。 4. 1 break:在switch语句中我们常使用break用来跳出switch分支,其实break 同样也可以使用在循环语句中用来跳出循环。在循环中使用break让循环语句可以 有多个出口,使程序变的更加灵活。 break语句可以使循环在未到达结束条件时提前跳出循环。 例子代码: for(i=0;i<10;i++){printfi); if(i—O) break;} 思考问题:使用break语句修改判断素数问题。 5. 2continue:在循环过程中使用continue可以根据条件判断是否执行本次循环, 使用continue之后,后面的代码就不再执行,直接执行下次循环。但是不像break 既可以用在分支也可以用在循环中,continue只能用在循环结构中。 例子代码: for(i=0;i<10;i++){ if (i==0) continue; /*当 i=0 时不执行循环*/ printfi); ) 思考练习:使用continue实现求1000内能被3、5、7整除的数。 ,******************************************************************** 6. 3goto:也叫无条件转向语句. 它的一般格式为:goto标号; 例子代码: <span style=,/font-size: 18px;z/>#include <stdio. h> main() {int i,s=0; i=l;loop: if (i<=100) {/*标号,表示出goto语句转向的位置*/ s+=i;i++; goto loop;printf("1+2+3+…100=%d\n”, s); }</span> 在结构化程序设计中不提倡使用goto语句,但有时使用goto却比拟方便,比方在 一个多层的循环体中,要跳出到最外层的循环就要使用多个break,但使用got。直 接就可以实现******************************************************************************/ 附录资料:不需要的可以自行删除SHA算法的实现 C语言程序: #includc <iostrcam> #include <vector> 〃定义 vector 数组 #include <string> 〃记录消息using namespace std; const int NUM = 8; 〃一个字由32比特(或者8个16进制数) const int BIT = 512; 〃消息认证码要以512比特一组 〃字常量 string HO = ”67452301”; string Hl 二"EFCDAB89”; string H2 = "98BADCFE”; string H3 = "10325476"; string H4 = "C3D2E1F0”; 〃定义SHA1(平安哈希算法)类 class SHA1 ( public: 〃将一个字符串形式的字转化为vector数组 vector<int> hex_inlo_dec(string word); 〃将vector转化为string字符串形式 string num_into_mcssagc(vcctor<int> A); 〃两个字X和Y的逻辑”和“ vector<int> word_AND(vector<int> A,vector<int> B); //两个字X和Y的逻辑”或“ vector<int> word_OR(vector<int> A,vector<int> B); 〃两个字X和Y的逻辑“异或” vector<int> word_XOR(vector<int> A,vector<int> B); 〃两个字X和Y的逻辑“补” vector<int> word_COMPLEMENT(vector<int> A); 〃两个字X和Y的摸2八32整数加 vector<int> word_ADD(vector<int> A,vector<int> B); 〃将字X循环左移s个位置 vector<int> ROTL(vector<int> A,ini s); //SHA-1的填充方案,我们设定msg由ASCII码组成 vector<vector<int> > SHA_l_PAD(string msg); 〃将SHA-1压成以字为单位 vector<vector<vector<int> > > compress(vector<vector<int> > result); 〃定义ft函数,每个ft函数都有B,C,D三个字作为输入,并产生一个字作 为输出 vector<int> Ft(int t,vector<int> B,vector<int> C,vector<int> D); 〃定义字常数K vector<int> K(int t); 〃开始进行SHA-1(平安Hash算法)的加密 vector<vector<int> > SHA_1 (string msg); 〃将vector转化为string字符串形式 string SHAl::num_into_mcssage(vector<int> A) ( int i; string msg = for(i = 0;i < A.size();i++) (if(A[i] >=0&&A[il <= 9) msg += 'O' + AliJ;else if(A[il >= 10 && A[i] <= 15) msg += 'A' + (A[i] - 10); ) return msg; 〃将一个字符串形式的字转化为vector数组 vector<int> SHA1 ::hex_into_dec(string word) ( int i; vector<int> result(NUM,O); for(i = 0;i < NUM;i++) (if(word[i] >= 'O' && word[i] <= '9') (result[i] = word[i] - *0*; )else if(wordfi] >= 'A1 && word[i] <= 'F) (resultfil = 10 + wordfil - 'A'; ) ) return result; I //两个字X和Y的逻辑”和“ vector<int> SHA 1 ::word_AND(vector<int> A,vector<int> B) ( vector<int> result(NUM,O); int i; for(i = 0;i < NUM;i++) |result[i]=A[i]&B[i]; ) return result;) //两个字X和Y的逻辑”或“ vector<inl> SHA 1 ::word_OR(vector<int> A,vector<int> B) { vector<int> result(NUM,O); int i; for(i = 0;i < NUM;i++) return result;〃两个字X和Y的逻辑“异或” vector<int> SHA 1 ::word_XOR(vector<int> A,vector<int> B) ( vector<int> result(NUM,O); int i; for(i = 0;i < NUM;i++) (result[i] = A[i] A B[i]; } return result;) 〃两个字X和Y的逻辑“补” vector<int> SHA1 ::vvord_COMPLEMENT(vector<int> A) ( vector<int> result(NUM,O); int i; for(i = 0;i < NUM;i++) (result[i] = 15-A[i]; I return r
展开阅读全文

开通  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 

客服