C语言知识点和练习题
Daniel_lmz
这个作者很懒,什么都没留下…
展开
-
C语言知识点十一: 自动类型转换和强制类型转换
一.自动类型转换:在C语言的语句和表达式中应使用类型相同的变量和常量。但是,如果使用混合类型,C语言采用了一套规则进行自动类型转换。1.当类型转换出现在表达式中,无论是unsigned还是signed的char和short都会被自动转换为int,如有必要会被转换为unsigned int(如果short和int的大小相同,unsignedshort就比int大。这种情况下unsigned shor...原创 2018-06-02 17:33:06 · 2302 阅读 · 0 评论 -
C语言知识点十三: C判断
有关C语言if else语句的用法很简单,大致可以分为三种:1.当有多个条件要判断时连续用if语句:if(条件1)if(条件2)if(条件3)……#include<stdio.h>int main(){ int score[5]; int i; printf("Please Enter your five subjects'scores:\n"); ...原创 2018-07-03 19:44:18 · 274 阅读 · 0 评论 -
C语言知识点十四: getchar()和putchar()
对字符输入或输出函数:getchar()和putchar():这里需要说明一下这两个函数通常是定义在stdio.h头文件中,它们通常是预处理宏,而不是真正的函数,后面的知识点会讨论类似函数的宏。其用法就是这两个函数只能每次读取一个字符或输出一个字符。#include<stdio.h>#define SPACE ' 'int main(){ char ch; ch...原创 2018-07-03 20:13:11 · 821 阅读 · 0 评论 -
C语言知识点十五: 条件运算符(?:)的用法
条件运算符的用法如下:max = (a > b) ? a:b;如果a大于b,那么将原创 2018-07-03 20:27:31 · 4320 阅读 · 0 评论 -
C语言知识点二十三: 创建更友好的用户界面
创建更友好的用户界面:一. 使用缓冲输入: 缓冲输入的优点在于在按下Enter键发送输入之前,用户可以任意编辑输入内容。 但是,如果输入的是字符,在按下Enter键之后,这一动作也传送了换行符,程序必须妥善地处理这个换行符。请看下面的示例1://示例1:#include<stdio.h>int main(void){ int gue...原创 2018-07-30 18:01:42 · 2813 阅读 · 0 评论 -
C语言知识点十六: ctype.h系列的字符函数
ctype.h系列的字符函数:ANSI C有一系列标准的函数可以用来分析字符;ctype.h 头文件包含了这些函数的原型。这些函数接受一个字符作为参数,如果该字符属于某特定的种类则返回非零值(真),否则返回零(假)。例如,如果isalpha()函数的参数是个字母,则返回一个非零值。 表一:ctype.h头文件中的字符测试函数函数名 如果是下列函数时,返回值为真 isalnum() 字母或数字 ...原创 2018-07-05 20:55:25 · 643 阅读 · 0 评论 -
C语言知识点十七: iso646.h头文件
iso646.h头文件:使用该头文件,便可用and代替&&等,如下表:传统写法 iso646.h && and || or ! not 显然这个头文件大家或许不会习惯使用原创 2018-07-05 21:06:43 · 1155 阅读 · 0 评论 -
C语言知识点十八: 循环辅助:continue和break
具体用法原创 2018-07-05 22:16:25 · 252 阅读 · 0 评论 -
C语言知识点十九: rand()函数生成随机数
一、rand()rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。rand()会返回一个范围在0到RAND_MAX(32767)之间的伪随机数(整数)。在调用rand()函数之前,可以使用srand()函数设置随机数种子,如果没有设置随机数种子,rand()函数在调用时,自动设计随机数种子为1。随机种子相同...转载 2018-07-05 22:10:09 · 6730 阅读 · 1 评论 -
C语言中最常用标准库函数
标准头文件包括:<asset.h> <ctype.h> <errno.h> <float.h> <limits.h> <locale.h> <math.h> <setjmp.h> <sign转载 2018-07-19 16:20:53 · 63030 阅读 · 2 评论 -
C语言练习题二: 《C Primer Plus》第七章(C控制语句:分支和跳转): 编程练习题与参考答案
1、编写一个程序读取输入,读到#字符停止,然后报告读取空格数,换行符数目以及所有的其它字符数目。#include<stdio.h>int main(void){ int space = 0, line_break = 0, other = 0; char ch; while((ch = getchar()) != '#') { ...原创 2018-07-31 09:15:12 · 943 阅读 · 0 评论 -
C语言知识点二十五: 头文件的使用
头文件的使用://usehotel.c#include<stdio.h>#include "hotel.h"int main(void){ int nights; double hotel_rate; int code; while((code = menu()) != QUIT) { switch(code) { case 1: hotel...原创 2018-08-04 09:49:54 · 429 阅读 · 0 评论 -
C语言知识点二十六: 地址运算符&
《地址运算符&》 一元运算符&可以取得变量的存储地址。假设pooh是一个变量的名字,那么&pooh就是该变量的地址。一个变量的地址可以被看作是该变量在内存中的位置。在下列的程序中,使用地址运算符获得不同函数中具有相同名称的变量的存储地址。#include<stdio.h>void mikado(int);//声明函数int main()...原创 2018-08-05 10:02:40 · 2425 阅读 · 0 评论 -
C语言知识点二十四: 函数
《函数》 1. 如何编写一个好的程序: 使程序模块化。所谓模块化,就是在您的主函数中要实现某种功能时,尽量单独地写一个函数,当您要用此功能时再调用您写的函数即可。前面介绍的printf(), scanf(), getchar(), putchar()以及strlen(),这些函数都是标准的C库函数,并且都被预先定义在C库中。 2. 为什么使用函...原创 2018-08-01 16:29:46 · 291 阅读 · 0 评论 -
C语言知识点二十七: 改变调用函数中的变量
1. 下面的程序是为了互换两个变量的值。#include<stdio.h>void interchange(int u, int v);//声明函数int main(){ int x = 5, y = 10; printf("Originally x = %d and y = %d.\n", x, y); interchange(x,y); ...原创 2018-08-05 11:00:05 · 1498 阅读 · 0 评论 -
C语言知识点二十八: 指针简介
《指针简介》1. 什么是指针? 指针是一个其数值为地址的变量。正如,char类型的变量用字符作为其数值,int类型变量的数值是整数,指针变量的数值表示的是地址。 请看下列语句:int pooh = 5;int * ptr;//定义指针变量ptr,*为间接运算符,下面就要介绍其用法和含义ptr = &pooh;//将pooh的地址赋给ptr对于pt...原创 2018-08-05 17:24:17 · 280 阅读 · 0 评论 -
C语言知识点二十二: 结束键盘输入
结束键盘输入#include<stdio.h>int main(void){ char ch; while((ch = getchar()) != '#') putchar(ch); return 0;} 以上的程序只要输入的字符中不含#, 那么程序在读到#时才会结束。但是,#号也是一个普通的字符,有时不可避免要用到...原创 2018-07-16 18:11:42 · 2858 阅读 · 1 评论 -
C语言知识点二十一: 缓冲区
缓冲区:1.无缓冲(直接)输入:用户输入字符后立即重复打印该字符。2.缓冲输入 : 大部分系统在用户按下Enter键之前不会重复打印刚输入的字符。用户输入的字符被收集并储存在一个被称为缓冲区(buffer)的临时存储区,按下Eenter键后,程序才可使用用户输入的字符。3.为什么要有缓冲区?No.1: 把若干字符作为一个块进行传输比逐个发送这些字符节约时间;No.2: 如果用户打错字符,可以直接通...原创 2018-07-08 21:25:36 · 425 阅读 · 0 评论 -
C语言知识点二十: 多重选择: switch和break
多重选择: switch和break使用条件运算符和if else语句很容易编写二选一的程序。然而,有时程序需要在多个选择中进行选择。可以用if else if ... else 来完成。但是,大多数情况下使用switch语句更方便。switch语句使用格式:switch(整型表达式)//整型表达式的值应该是一个整数值(包括char类型){ case 常量1: 语句...原创 2018-07-08 10:37:01 · 1763 阅读 · 0 评论 -
学习C语言之前,这些要点你知道吗?
学习C语言之前必知:1.如果你是计算机专业学生,我强烈建议你要把C语言学好,因为它是容易入门的(但不代表你容易学透它),并且为你将来学习其它高级语言奠定了基础。不要好高骛远(C语言还学的倒懂不懂的就去学习C++,或者其它高级语言)。计算机高级语言都是相通的,学好了一种高级语言,过渡到另一种语言将会很容易。C语言入门学习和书籍推荐,链接如下:https://mp.weixin.qq.com/s/8C...原创 2018-06-02 23:12:37 · 4258 阅读 · 0 评论 -
C语言知识点十二: C循环
为了使我们的C语言表达的意思更加多元化,我们现在来介绍C循环无论是我们人类的语言还是计算机高级语言,我们都希望能够尽可能地表达我们的意图或想法,让对方理解。计算机也不例外,任何一门计算机高级语言应该提供以下3种形式的控制流:(1) 执行语句系列; //就是一般的单条表达式语句,笔者前面发的程序大部分都是都是由语句序列组成(2) 如果满足某种条件就重复执行语句序列(循环);//靠while,do w...原创 2018-06-05 21:00:06 · 3081 阅读 · 0 评论 -
C语言知识点九: 完整的数据类型和运算符的总结
在这里声明一下C语言中大约有40个运算符,这里列举的是比较常用的运算符1.基本运算符基本运算符 名称 说明 = 赋值运算符 int number; number = 2018; 赋值行为从右往左进行 + 加号运算符 二元运算符 int a; a = 4 + 6; - 减号运算符 二元运算符 int number; number = 20 – 5; -和+ 符号运算符 ...原创 2018-06-02 11:03:11 · 877 阅读 · 0 评论 -
C语言知识点八: printf()的*修饰符
printf()的*修饰符:printf()的*修饰符的用法:如果你不想预先指定字段宽度或精度,希望通过程序来指定,那么可以通过*修饰符代替字段宽度。但还是要用一个参数告诉函数,字段宽度应该是多少。示例:#include<stdio.h> int main(){ int number = 123; float cost = 9.98; ...原创 2018-05-28 22:47:12 · 1049 阅读 · 0 评论 -
C语言知识点七: scanf()函数
scanf()函数:1.scanf(“%d”,&number);不管你开始输入的是空格还是换行,直到你输入数字才会被读入。2.scanf(“%d,%d”,&a, &b);在输入第二个数字前要输入逗号!3.scanf(“%c,%c”,&ch1, &ch2);在读入第二个字符前要加逗号,并且不能有空格输入!4.scanf(“%*d%d”,&a);输入:2...原创 2018-05-27 17:02:32 · 670 阅读 · 0 评论 -
C语言知识点一: 与C语言相恋
第一章 《与C语言相恋》 目录:1.1C语言的诞生1.2相恋C语言的理由1.3相恋C语言的7个步骤1.4目标代码文件,可执行文件和库1.5本章小结 C语言的诞生 1972年,贝尔实验室的丹尼斯里奇(Dennis Ritch)和肯汤普逊(Ken Thompson)在开发UNIX操作系统时设计了C语言。 1.2 相恋C语言的理由 1.设计特性:融合了计算机科学理论和实践的控制特性。C语言的设计理念让...原创 2018-05-17 17:44:47 · 528 阅读 · 0 评论 -
conio.h头文件
conio.h conio.h不是C标准库中的头文件。 conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。 包含的函数 cgets(char ); cprintf(const char , ...); cputs(const char ); ...转载 2018-05-20 23:07:55 · 5016 阅读 · 1 评论 -
区分getchar(),getch(),getche()三个函数:
区分getchar(),getch(),getche()三个函数: 第一行是手动输入的,第二行是printf输出的。 getch()和getche()这两个函数使用时要包含conio.h头文件: getch()函数,也是接收键盘输入的一个字符,但不用回车确认! getche函数,同样接收一个字符,不需要回车确认!但输入时明文显示(回显)。 以上三个函数,请大家亲自上机即可理解,有问题随时留言!...原创 2018-05-20 23:08:43 · 428 阅读 · 0 评论 -
C语言知识点二: 函数strlen()和sizeof的区别
函数strlen()和sizeof的区别:#include<stdio.h>#include<stdlib.h>#include<string.h>#define SENTENCE "It is a cat"int main(){ char name[40]; gets(name); printf("%s\n", name); print...原创 2018-05-27 15:51:56 · 331 阅读 · 0 评论 -
C语言知识点三: #define指令
#define指令:使用#define的标准格式:#define PI 3.14159注意:结尾不加分号(;),也不要写成PI = 3.14159,我们最好用大写表示符号常量/明示常量(PI)。使用#define指令的好处:使代码清晰明了(将我们常用的常量用符号常量代替,同时可以容易知道该变量的含义)。...原创 2018-05-27 15:54:33 · 779 阅读 · 0 评论 -
C语言知识点四: printf()函数的转换说明、修饰符和标记
printf()函数的转换说明、修饰符和标记:表一 转化说明及其打印的输出结果 转换说明 输出%f 浮点数的十进制计数法%e或%E 浮点数的e计数法%a或%A 浮点数的p计数法%c 单个字符%d或%i 有符号十进制整数%u 无符号的十进制整数%o 无符号的八进制整数%x或%X无符号十六进制整数%% 打印百分号 表二 printf()的...原创 2018-05-27 15:55:46 · 1955 阅读 · 3 评论 -
C语言知识点五: const限定符
const限定符:const int month 12;//month在程序中不可更改原创 2018-05-27 15:59:56 · 265 阅读 · 0 评论 -
C语言知识点六: printf()的返回值 、打印较长的字符串
有关printf()函数几个不常见的知识点:1.printf()的返回值:该返回值大小为其打印的字符的个数(包括空格和不可见的换行符)2.打印较长的字符串若printf()语句过长,在频幕上不方便阅读,则需知道以下两的技巧:(1)在换行的地方加\示例:注意:换行的末尾加\,第二行如果不加空格的话靠最左边!(2)在末尾加”,再在第二行加”,不需要像(1)一样靠最左边示例:请注意:Printf(“Th...原创 2018-05-27 16:41:38 · 1307 阅读 · 0 评论 -
C语言知识点十: sizeof运算符和size_t类型
sizeof运算符和size_t类型:这里需要说明一下sizeof也是运算符!C头文件系统使用了typedef把size_t作为unsigned int 或unsigned long的别名。这样,使用size_t类型时,编译器会根据不同的系统替换标准类型。C99中新增了%zd转换说明用于printf()显示size_t类型的值。若系统不支持%zd,那就使用%lu或%u。...原创 2018-06-02 16:44:01 · 558 阅读 · 0 评论 -
C语言练习题一: 《C Primer Plus》第六章 C控制语句:C循环——编程练习题
请先独立完成,再参考答案1. 编写一个程序,创建一个包含 26 个元素的数组,并在其中储存 26 个小写字母。然后打印数组的所有内容。2.使用嵌套循环,按下面的格式打印字符:$$$$$$$$$$$$$$$3.使用嵌套循环,按下面的格式打印字母:FFEFEDFEDCFEDCBFEDCBA注意:如果你的系统不使用ASCII 或其他以数字顺序编码的代码,可以把字符数组初始化为字母表中的字母:char l...原创 2018-06-09 21:06:23 · 2462 阅读 · 1 评论 -
C语言练习题一: 《C Primer Plus》第六章 C控制语句:C循环——编程练习题 参考答案
1. 编写一个程序,创建一个包含 26 个元素的数组,并在其中储存 26 个小写字母。然后打印数组的所有内容。#include<stdio.h>int main(){ char alphabet[26]; int i = 0; char ch; ch = 'a'; for(; i < 26; i++) { alp...原创 2018-06-29 19:49:15 · 7123 阅读 · 3 评论