当前位置: 首页 > news >正文

专门做高端网站设计的云华设计泰安招聘信息最新招聘2023

专门做高端网站设计的云华设计,泰安招聘信息最新招聘2023,建设公司名字,外贸 企业网站 建设C语言程序设计#xff0c;知识一遍过 #x1f525;温馨提示#x1f525;#xff1a;使用电脑端阅读#xff0c;获取更好体验#x1f680; 【参考】C 语言教程 | 菜鸟教程 (runoob.com) 文章目录 C语言程序设计#xff0c;知识一遍过顺序结构表达式语句字符的输入与输出格…C语言程序设计知识一遍过 温馨提示使用电脑端阅读获取更好体验 【参考】C 语言教程 | 菜鸟教程 (runoob.com) 文章目录 C语言程序设计知识一遍过顺序结构表达式语句字符的输入与输出格式化输入/输出函数 选择结构关系运算符和关系表达式逻辑运算符和逻辑表达式if语句及其构成的选择结构条件运算符构成的选择结构switch语句switch语句和 break 语句组成的选择结构 循环结构while 和 do…while 循环结构for 循环结构循环结构的嵌套continue和break语句 预处理指令宏定义不带参数的宏定义带参数的宏定义 条件编译文件包含C头文件引用头文件的语法引用头文件的操作只引用一次头文件有条件引用 顺序结构 表达式语句 表达式语句在表达式后面添加分号“ ;”构成表达式语句。 执行完表达式语句后表达式的值会被丢弃。因此若表达式不修改操作数的值表达式语句就没有什么实际意义。 复合语甸把多个语句用花括号 “{ }” 括起来所构成的一个语句组。 一个复合语句在语法上视为一条语句。 比如{i1; i; ai;} 空语句只有一个分号 “;” 组成的语句。 比如main() { ; } 其中的分号是一个空语句但程序执行时不产生任何动作。 字符的输入与输出 字符输出函数 putchar() 格式putchar(ch)其作用是向终端输出一个字符。 字符输入函数 getchar( ) 功能是从终端输人一个字符。 getchar() 函数没有参数函数值就是从输入设备得到的字符。 格式化输入/输出函数 输出函数 printf() printf() 函数是C语言提供的标准输出函数它的作用是向终端或系统隐含指定的输出设备按指定格式输出的若干数据。 一般形式printf(格式控制, 输出列表); 格式控制是用双引号括起来的字符串。它包括两种信息 格式转换说明由 “%” 和格式字符组成。 需要原样输出的字符也写在格式控制内。 输出列表需要输出的一些数可以是常量、变量或表达式。输出列表中的各输出项用逗号隔开。 格式控制符描述示例%d 或 %i输出十进制整数printf(%d, 123); 输出 123%u输出无符号十进制整数printf(%u, 456U); 输出 456%o输出八进制整数printf(%o, 0123); 输出 123%x 或 %X输出十六进制整数小写/大写printf(%x, 0xabc); 输出 abc%f输出浮点数默认保留六位小数printf(%f, 123.456); 输出 123.456000%e 或 %E以科学计数法输出浮点数printf(%e, 123.456); 输出 1.234560e02%g 或 %G根据值的大小自动选择 %f 或 %eprintf(%g, 123.456); 输出 123.456%c输出一个字符printf(%c, A); 输出 A%s输出一个字符串printf(%s, Hello); 输出 Hello%%输出一个 % 符号printf(%%); 输出 %%p输出指针的值以十六进制表示int a3,*pa,printf(%p, p); 输出 变量a的地址%zu输出 sizeof 的结果printf(%zu,sizeof(int)); 输出 4 此外printf还允许通过额外的格式说明符来指定字段宽度、精度、对齐方式等例如 %10d输出宽度为10的十进制整数不足部分用空格填充。%-10d输出宽度为10的十进制整数不足部分用空格填充且左对齐。%.2f输出浮点数保留两位小数。%10.2f输出宽度为10的浮点数包括小数点和小数部分总共保留两位小数不足部分用空格填充。 这些格式控制符可以组合使用以满足不同的输出需求。 格式说明与输出项在类型上与个数上保持一致。 输入函数 scanf() 一般形式scanf(格式控制,地址表列); 格式控制同 printf() 函数。 地址表列由若干个变量地址组成既可以是变量的地址也可以是字符串的首地址。 比如scanf(“%d%f%If”,a,b,e)输入整型变量a、单精度型变量b、双精度型变量c 说明 scanf() 函数中的格式说明也是以%开始以一个格式字符结束中间可以加入附加的字符。 对 unsigned 型变量的数据,可以用%d、%o、%x格式输入。 在 scanf() 函数中格式字符前可以用一个整数指定输入数据所占宽度但对于输入实型数则不能指定其小数位的宽度。 在格式控制串中格式说明的个数应该与输入项的个数相等且要类型匹配。 scanf() 函数中的输入项只能是地址表达式而不能是变量名或其他内容。 如果在 格式控制” 字符串中除了格式说明以外还有其他字符则在输入数据时应输入与这些宇符相同的字符。 在用 “%c” 格式输入字符时空格字符和转义字符都可作为有效字符输入。 在输入数据时若实际输入数据少于输入项个数scanf()函数会等待输入直到满足条件或遇到非法字符才结束若实际输入数据多于输入项个数多余的数据将留在缓冲区备用作为下一次输入操作的数据。 在输入数据时遇到以下情况将认为输人结束“空格” “回车” 或 “跳格” ( “Tab” )键上述字符统一可称为“间隔符”。 选择结构 关系运算符和关系表达式 关系运算符 C语言提供了6种关系运算符小于()、小于等于()、大于等于( )、大于()、等于()、不等于(!)。 结合性自左向右。 优先级前4种关系运算符的优先级别相同后2种优先级相同。前4种优先级高于后种。关系运算符的优先级低于算术运算符高于赋值运算符。 关系表达式 由关系运算符构成的表达式称为关系表达式。关系运算符两边的运算对象可以是C语言语句中任意合法的表达式。比如(ab)!c,ab,(a1)(b2)都是合法的关系表达式。 关系运算符的值为 “逻辑值”只有两种可能值整数0或者整数1。关系运算符两边值的类型不一致时系统将自动转换。 逻辑运算符和逻辑表达式 逻辑运算符 C语言提供了3种逻辑运算符逻辑与()、逻辑或(|)、逻辑非(!)。其中“” 和 “||” 是双目运算符而 “!” 是单目运算符要求必须出现在运算对象的左边。 结合性自左至右。 优先级“!” “” “||” 非与或。 “!” 算术运算符 关系运算符 “” “||” 赋值运算符。 逻辑表达式 逻辑表达式由逻辑运算符和运算对象组成。 参与逻辑运算的对象可以是一个具体的值还可以是C语言中任意合法的表达式。 逻辑表达式的运算结果为1(真)或者为0(假)。 AB 运算中只有 A、B 同为真时才为真。同真为真剩余为假一假则假。 A||B 运算中只有 A、B 同为假时才为假。同假为假剩余为真一真则真。 关系运算符不能连用。比如1x5。在数学中可以使用但在这里不能使用可改写成1x x5。 和||的短路原则以为例要使表达式1表达式2结果为真则要求表达式1和表达式2都为真如果表达式1为假则不计算表达式2 if语句及其构成的选择结构 if(表达式) 语句 if是C语言的关键字。表达式两侧的括号不可少,并且只能是圆括号。 紧跟着的语句称为 “子句“如果在 “子句” 中需要多个语句则应该使用大括号把一组语句括起来构成复合语句。 if(表达式) 语句1 else 语句2 上述语句含义是如果表达式成立执行语句1否则执行语句2。 if(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 … else 语句n 上述语句含义是满足表达式1时执行语句1不满足表达式1但满足表达式2时执行语句2表达式1和2都不满足执行语句3如果所有表达式都不成立则执行语句n。 else 必须与 if 配对共同组成 if…else 语句这在程序题中需要注意。例如 #includestdio.h int main() {int a,b;printf(please input a,b: );scanf(%d,%d,a,b);if(a b)printf(ab\n);else if(ab)printf(ab\n);else printf(ab); }为了避免嵌套的if-else语句二义性C语言规定else总是与在其前尚未配对的最近的if组成配对关系。 条件运算符构成的选择结构 条件运算符?: 条件表达式的一般形式表达式1 ? 表达式2 : 表达式3 求解过程先求表达式1 的值当表达式1 的值是非 0 时以表达式2 的值作为整个条件表达式的值当表达式1的值是0时以表达式3 的值作为整个条件表达式的值。 优先级条件运算符高于赋值运算符但低于逻辑运算符、关系运算符和算术运算符。 比如at 1? 2 : 3如果判定 t1为真即非0时条件表达式的值为2并把2赋值给变a如果判定t1为假即为0时条件表达式的值为3并把3赋值给变量a。 switch语句 switch 语句是C语言提供的多分支选择语句用来实现多分支选择结构。 基本格式 switch(表达式) {case 常量表达式: 语句1case 常量表达式: 语句1...case 常量表达式: 语句1default: 语句n1 }说明 switch 后面用花括号括起来的部分是 switch 语句体 switch 后面括号内的 ”表达式”可以是C语言中任意合法表达式但表达式两侧的括号不能省略。 case 与其后面的常量表达式合称 case语句标号常量表达式的类型必须与 switch 后面的表达式的类型相匹配且各 case语句标号的值各不相同不能重复。 default 也是关键字起标号的作用代表除了以上所有 case 标号之外的那些标号default标号可以出现在语句体中任何标号位置上当然也可以没有。 case 语句标号后的语句1、语句2等可以是一条语句也可以是若干条在必要时case语句标号后的语句可以省略不写。 switch语句的执行过程 首先计算紧跟在 switch 后面的一对圆括号中的表达式的值当表达式的值与某一个 case 后面的常量表达式的值相等时就执行此 case 后面的语句体并将流程转移到下一个 case 继续执行直至switch 语句的结束。 若所有的 case中的常量表达式的值都没有与表达式值匹配又存在default则执行default后面的语句直至switch 语句结束。 如果不存在 default 则跳过 switch 语句体什么也不做。 switch语句非常有用但在使用时必须谨慎。 只能针对基本数据类型中的整型类型使用switch这些类型包括int、char等。对于其他类型则必须使用if语句。 switch()的参数类型不能为实型 switch语句和 break 语句组成的选择结构 在 switch语句中 case 之后的语句加上 break语句程序执行到 break 时会立即跳出 switch 语句体。其中break是C语言的关键词。switch语和break语句的联合使用使得switch语句真正起到分支的作用。下面用一段程序说明: #includestdio.h int main() {int x1,a0,b0;switch(x) {case 0: a;case 1:b;case 2:a;b;break; // 试试加不加break的情况下结果是否一致case 3: b;default:x99;}printf(a%d,b%d,x%d,a,b,x);}执行上述程序后输出结果为a1,b2。 程序分析switch后的表达式x的值为1。然后寻找与1相同的case1分支执行其后的语句,此时a0,b1。接着开始执行case2后的语句,执行a;b后,a1,b2。执行到break语句,跳出switch 语句体,开始执行 printf函数。 循环结构 while 和 do…while 循环结构 while 语句 一般形式while(表达式) 循环体 while 是C语言中的关键字表达式是循环条件由它来控制循环体是否执行。 执行过程先对表达式进行条件判断后执行语句 计算while 后括号中表达式的值。当表达式的值非0时执行while语句中的循环体内嵌语句当表达式值为0时跳过该while语句执行该while 结构后的其他语句。 执行循环体内嵌语句。 返回去继续执行while语句直到条件不满足退出循环。 do…while 语句 基本格式: do {循环体语句 } while(表达式);do 是C语言的关键字必须和 while 联合使用不能单独出现。 do…while 循环由 do 开始用 while 结束。 while 后面的圆括号中的表达式可以是C语言中任意合法的表达式由它控制循环是否执行且圆括号不可丢。 在语法上在 do 和 while 之间只能是一条语句如需要执行多条语句时可使用复合语句。 while(表达式)后的分号不可丢。 执行过程先执行循环体一次然后判断循环条件是否成立 先执行一次指定的循环体语句。 执行完后判别 while 后面的表达式的值当表达式的值为非零真时程序流程返回去重新执行循环体语句。 如此反复直到表达式的值等于零为止此时循环结束, for 循环结构 基本格式for(表达式1; 表达式2; 表达式3) 循环体 比如for(i0; i10; i ) { } 圆括号中通常是3个表达式用于for循环的控制。for 语句中的表达式可以部分或者全部省略但两个分号是不可省略的。 各个表达式之间用分号隔开且圆括号不可省略。 按照语法规则循环体只能是一条语句如需要完成多项操作须使用复合语句。 执行过程 求表达式1的值。 求表达式2的值若其值为真(非0)则执行for语句中指定的循环内嵌语句后执行求表达式3的值若其值为假(0)则退出循环执行 for 语句以下的其他语句。 重复步骤2。 循环结构的嵌套 循环嵌套的定义在一个循环体内又完整地包含另一个循环结构。内循环还可以嵌套循环形成多层循环结构。外循环成立的条件下才可以执行内循环。 while 循环、do…while 循环和for循环都可以嵌套但每一层循环在逻辑上必须完整。 continue和break语句 continue 语句 作用结束本次循环即跳过本次循环体中continue语句后面的语句立刻进行下一次的循环条件判断然后决定循环是否继续进行。例如 #includestdio.h int main() {int i, sum 0;for (i 1; i 5; i) {if (i 3) continue;sum sum i;}printf(i%d,sum%d\n, i, sum);return 0; }程序输出结果i6,sum12。 程序分析当程序进行到第三次循环即当i3时由 if语句和 continue 语句可知本次循环结束i的值不加到 sum 中然后接着开始第四次循环,即从i4 开始直到循环结束。 break 语句 作用可以使程序流程跳出 switch 语句体也可用 break语句在循环结构中终止本层循环体从而提前结束本层循环。 当 break 出现在循环体中的 switch 语句体内时其作用只是跳出该 switch 语句体并不能中止循环体的执行。若想强行中止循环体的执行可以在循环体中但并不在switch语句中设break语句满足某种条件则跳出本层循环体。例如 #includestdio.h int main() {int i, sum 0;for (i 1; i 5; i) {if (i 3) break; // 如果i的值为3跳出for循环然后执行printf函数sum sum i; // 把i的值加到sum中}printf(i%d,sum%d\n, i, sum);return 0; }程序输出结果i3sum3。 程序分析当程序进行到第三次循环即当i3时由 i 语句和 break 语句可知此时应跳出依次存 for 循环执行 for 循环后的语句即执行 printf 函数输出语句。 预处理指令 C语言的预处理是编译过程的一个早期阶段它发生在实际的编译之前。预处理阶段主要处理源代码中的预处理指令这些指令以#开头。预处理指令告诉预处理器在实际编译之前如何修改源代码。 C语言提供了三种预处理功能这三种预处理包括宏定义、文件包含、条件编译。 指令描述#define定义宏#include包含一个源代码文件#undef取消已定义的宏#ifdef如果宏已经定义则返回真#ifndef如果宏没有定义则返回真#if如果给定条件为真则编译下面代码#else#if 的替代方案#elif如果前面的 #if 给定条件不为真当前条件为真则编译下面代码#endif结束一个 #if……#else 条件编译块#error当遇到标准错误时输出错误消息#pragma使用标准化方法向编译器发布特殊的命令到编译器中 宏定义 宏定义又称宏代换、宏替换简称宏。 它指的是用一个宏名名字来代表一个字符串或者根据一系列预定义的规则替换一定的文本模式。 宏定义最常见的用法是定义代表某个值的全局符号例如#define PI 3.14159。另一种用法是定义带参数的宏这样的宏可以像函数一样被调用并在调用语句处展开宏用调用时的实际参数来代替定义中的形式参数。 不带参数的宏定义 定义形式#define 宏名 替换文本 或 #define 宏名说明 再define宏名和宏替换文本之间用空格隔开。 同一个宏名不能重复定义。 可以用#undef命令终止宏定义作用域。 在进行宏定义时可以引用已定义的宏名。 宏可以在源代码中多次使用并在预处理阶段被其定义的值替换。 例如 #define PI 3.14159 // 定义一个宏 #undef PI // 取消一个先前定义的宏。带参数的宏定义 带参数的宏定义 定义形式#define 宏名(参数表) 字符串 宏定义不止进行简单的字符串替换话可以进行参数替换。 带参数的宏调用 一般形式宏名(实参列表) 例如 #define total(x) x*xx1 // 宏定义 atotal(2); // 宏调用解析在宏调用过程用实参2取代替形参x经预处理宏展开后的语句为 a2221。 在带参宏定义中不会为形式参数分配内存因此不必指明数据类型。而在宏调用中实参包含了具体的数据要用它们去代换形参因此必须指明数据类型。同时要特别注意实参是表达式时的调用。 比如#define total(x) xx // 宏定义 atotal(xy); // 宏调用 解析经预处理宏展开后的语句为xyxy。 比如#define total(x) (x)(x) // 宏定义 a total(x y); // 宏调用 解析:经预处理宏展开后的语句为(xy)(xy)。 条件编译 条件编译指令允许程序员根据特定的条件包含或排除代码块。这些条件可以是编译时定义的宏、编译器的特定标志或者其他任何可以在预处理阶段确定的条件 条件编译指令用于根据条件包含或排除代码块。。 以下是常用的条件编译指令 #ifdef 和 #ifndef 这两个指令用于检查是否定义了一个特定的宏。如果定义了宏对于#ifdef或者没有定义宏对于#ifndef则编译器会包含随后的代码块直到遇到#endif为止。 #ifdef DEBUG// 这部分代码仅在定义了DEBUG宏时编译 #endif#ifndef NDEBUG// 这部分代码在NDEBUG宏未定义时编译 #endif#if、#elif、#else 和 #endif 这些指令提供了更复杂的条件编译功能类似于C语言中的if-else语句。#if后面可以跟随一个常量表达式如果表达式的值为非零则编译器会包含随后的代码块。#elif相当于else if和#else提供了额外的条件分支。 #if defined(OS_WINDOWS)// Windows平台特有的代码 #elif defined(OS_LINUX)// Linux平台特有的代码 #else// 其他平台共有的代码 #endif#defined #if和#ifdef指令后面都可以使用defined操作符来检查宏是否定义。defined操作符返回一个整数值如果宏定义了则为非零值否则为零。 #if defined(FEATURE_A) !defined(FEATURE_B)// 当FEATURE_A定义了而FEATURE_B未定义时编译 #endif#undef 这个指令用于取消之前定义的宏。这可以用来在特定条件下移除之前定义的宏。 #define MY_MACRO 1 // ... 一些代码 ... #undef MY_MACRO // 取消MY_MACRO的定义#error 当条件编译的某个条件不满足时可以使用#error指令生成一个编译时错误。这有助于在编译阶段捕获配置错误或不支持的平台。 #if !defined(OS_SUPPORTED) #error Unsupported operating system! #endif#line 这个指令可以改变预处理器生成的行号和文件名通常用于复杂的宏定义或代码生成器。 #line 100 newfile.c#pragma 这是一个编译器特定的预处理指令用于向编译器传递额外的信息或指令。不同的编译器可能支持不同的#pragma指令。 #pragma once // 防止头文件被多次包含某些编译器支持这个指令文件包含 C头文件 头文件是扩展名为 .h 的文件包含了 C 函数声明和宏定义被多个源文件中引用共享。有两种类型的头文件程序员编写的头文件和编译器自带的头文件。 在程序中要使用头文件需要使用 C 预处理指令 #include 来引用它。前面我们已经看过 stdio.h 头文件它是编译器自带的头文件。 引用头文件相当于复制头文件的内容但是我们不会直接在源文件中复制头文件的内容因为这么做很容易出错特别在程序是由多个源文件组成的时候。 建议把所有的常量、宏、系统全局变量和函数原型写在头文件中在需要的时候随时引用这些头文件。 引用头文件的语法 使用预处理指令 #include 可以引用用户和系统头文件。它的形式有以下两种 #include file.h这种形式用于引用系统头文件。它在系统目录的标准列表中搜索名为 file 的文件。 #include file.h #include file.c这种形式用于引用用户头文件。它在包含当前文件的目录中搜索名为 file 的文件。 引用头文件的操作 #include 指令会指示 C 预处理器浏览指定的文件作为输入。预处理器的输出包含了已经生成的输出被引用文件生成的输出以及 #include 指令之后的文本输出。例如如果您有一个头文件 header.h如下 char *test (void);和一个使用了头文件的主程序 program.c如下 int x; #include header.hint main (void) {puts (test ()); }编译器会看到如下的代码信息 int x; char *test (void);int main (void) {puts (test ()); }只引用一次头文件 如果一个头文件被引用两次编译器会处理两次头文件的内容这将产生错误。为了防止这种情况标准的做法是把文件的整个内容放在条件编译语句中如下 #ifndef HEADER_FILE #define HEADER_FILEthe entire header file file#endif这种结构就是通常所说的包装器 #ifndef。当再次引用头文件时条件为假因为 HEADER_FILE 已定义。此时预处理器会跳过文件的整个内容编译器会忽略它。 有条件引用 有时需要从多个不同的头文件中选择一个引用到程序中。例如需要指定在不同的操作系统上使用的配置参数。您可以通过一系列条件来实现这点如下 #if SYSTEM_1# include system_1.h #elif SYSTEM_2# include system_2.h #elif SYSTEM_3... #endif 但是如果头文件比较多的时候这么做是很不妥当的预处理器使用宏来定义头文件的名称。这就是所谓的有条件引用。它不是用头文件的名称作为 #include 的直接参数您只需要使用宏名称代替即可 #define SYSTEM_H system_1.h...#include SYSTEM_HSYSTEM_H 会扩展预处理器会查找 system_1.h就像 #include 最初编写的那样。SYSTEM_H 可通过 -D 选项被您的 Makefile 定义。
http://www.zqtcl.cn/news/802682/

相关文章:

  • 网站开发维护运维室内设计师怎么找
  • 网站建设如何增加二级页面学网络工程好找工作吗
  • 网站设计的研究方法有哪些wordpress样式路径
  • 网站建设与网页设计...南通网站seo报价
  • 网站开发毕业设计说明书范文关键词排名代做
  • 本地环境建设网站南通网站制作怎样
  • 注册公司多少钱不用交税南昌seo网站推广费用
  • 网站建设与运营的论文的范本wordpress弹框登陆
  • 阿里云做的网站空间动画制作器
  • 徐州企业网站建设做视频网站需要多少上传
  • 记事本做网站怎么加背景图网站开发需要哪些人怎么分工
  • 南宁网站建设找哪家网站被k换域名
  • spring mvc 网站开发网站开发与管理所对应的职位及岗位
  • 国内做视频的网站有哪些宁波网站制作与推广
  • 织梦软件展示网站源码建设工程竣工验收消防备案网站
  • 网站里面的链接怎么做漳州建设网站
  • 有什么网站建设类岗位企业门户网站设计论文
  • 外贸公司如何做公司网站集团网站建设建站模板
  • 嘉兴云推广网站贵州毕节网站建设
  • 班级网站模板青岛哪里有做网站公司的
  • 建设工程设计招标信息网站.制作一个聊天软件需要多少钱
  • 校园网站建设的意见新闻聚合网站开发 技术
  • 网站推广公司兴田德润电话多少wordpress 弹框
  • 大连网站建设谁家好软件开发需要什么技术
  • 广州网站建设哪家便宜成都电商app开发
  • 网站qq访客统计青岛网站设计定制
  • 山东嘉祥做网站的有哪几家销售外包
  • 怎么做网站_旅游网站定位
  • 湛江seo推广公司aso优化渠道
  • 网站设计培训机构内蒙古网上办事大厅官网