• 往期复习以及大纲

      计算机网络复习题

      计算机网络考试大纲

      贯通培养C语言程序设计样题

      第一章自测题

      第二章自测题

      第三章自测题

      第四章自测题

      第五章自测题

      第六章自测题

      第七章自测题

      第八章自测题

      第九章自测题

      期中自测题

      期末自测题

      第一章 C语言的基础知识

      1.开发过程

      编辑(.c) 编译(obj) 链接(exe) 运行

      2.程序结构

      (1)一个C余元的源程序(项目或者工程)可以由一个或多个源文件组成

      (2)美观源文件是由一个或多个函数组成的(函数是C余元源文件的基本组成单位)

      (3)一个源程序不论有多少个源文件组成,有且只有一个main函数,main函数是程序的入口

      (4)main函数的位置任意

      (5)#include预处理命令<stdio.h>是库文件

      (6)main():是函数,包括函数首部和函数体

      (7)语句:必须以;结束

      第二章 数据类型和表达式

      1.标识符合关键字

      (1)标识符命名规则:

      只能有字母、数字、下划线组成

      数字不能开头

      严格区分大小写

      不能用关键字

      (2)关键字:

      被C语言本身使用的那些字,比如:include,int,return

      2.数据类型

      包含基本(简单)数据类型、复合(复杂、构造)数据类型

      基本数据类型包括整形(整数)、浮点型(实数)、字符型(单个字符)。

      (1)整形:

      6个:

      有符号数:short(2)、int(2/4)、long(4)

      无符号数:unsigned short、unsigned int、unsigned log

      bit/b 1byte=8b 1KB=1024byte 1GB=1024MB 1TB=1024GB

      (2)浮点:

      单精度:float(4)

      双精度:double(8)

      (4)字符型:

      char(1)

      3.常量

      (1)整形常量

      十进制、八进制、十六进制三种表示方法

      100 0100 0x100

      例如:048是错误八进制是0-7

      0x23EF是十六进制

      (2)浮点型常量

      十进制、指数形式两张表示方法

      (3)字符型常量

      表示单个字符,使用‘’单引号界定

      转译字符:回车‘/n’ Tab制表符位'/t' '/'

      (4)字符串常量:

      表示一串字符,使用“”双引号界定

      “Hello Word”

      (5)符号常量:

      #define 符号 常量

       

      4.变量

      定义变量的格式:

      数据类型 变量名 [=初始]

      变量的三要素:变量的数据类型、变量的名、变量的值

      可以同时定义多个变量

       

      5.运算符

      符号、运算规则、使用规则

      (1)算数运算符

      符号:+ - * / % ++ --

      运算规则:%求模运算(取余数)5%3(=2)

      ++和--:自增自减,自己+1或自己-1;++/--的运算规则和所在位置有关系

      使用规则:

      /:如果两个操作数都是整形的,结果是整形的(商);只要有一个操作数是浮点型的,那么结果就是浮点型的。

      %:两个操作数都必须是整形的

      (2)赋值运算符

      符号:=

      运算规则:把=右边的数据赋值给左边的变量

      (3)关系运算符

      符号:> >= < <= == !=

      使用规则:关系表达式的值是逻辑值(true/false),但是C语言是不是没有布尔类型,因此C语言规定true=1、false=0表示

      例如:5>6(结果为0) 4!=5(结果为1)

      (4)逻辑运算符

      符号:&(&&) |(||) !

      运算规则:true & true = true;true & false=false;false & true=false;false & fales = false;

      true | true =true; true | false = true; false | true = true; false | false = false

      ! true = false; !false = true;

      使用规则:逻辑运算的操作应该是布尔类型,但是C语言没有布尔类型。C语言规定,非0或者非控制为true,0或空位false。

      &&、||:短路与/或;当&&的第一个操作数为false将发生短路效应,即不再计算第2个操作数

      (5)逗号运算符

      (6)条件运算符

      三目运算符(3个操作数)

      符号:? : 表达式1?表达式2:表达式3

      运算规则:

      if(表达式1){

      表达式2;

      }

      else{

      表达式3;

      }

      例如:int a=3,b=4,c; c=(a>b)?a:b; 结果c=4

      (7)位运算符:

      二进制的运算

      运算符:

      &|~^<<>>>>>>
      按位与按位或按位求反按位异或按位左移按位右移按位算数右移

      运算规则:

      0&0=0;0&1=0;1&0=0;1&1=1

      0|0=0;0|1=1;1|0=1;1|1=1

      ~0=1;~1=0

      0^0=0;0^1=1;1^0=1;1^1=0

      5<<2 0000010100

      5>>2 0000000101

       

      第三章 顺序结构

      1.三大变成结构:

      顺序结构、选择结构、循环结构

      2顺序结构:

      从上自下顺序执行每一条语句

      3.格式化输入和输出:

      (1)格式化输出:printf

      printf("格式字符串",输出列表);

      格式字符串:用""括起来

      普通字符:原样输出

      格式符:%+字母(%d-整数,%f-实数,%c-字符,%s-字符串)

      输出列表:输出项之间用,号隔开

      注意:输出列表中的输出项要一一对应前面的格式符(个数、类型、内容)

      (2)格式化输入:scanf

      scanf("格式字符串",输出地址列表);

      求地址运算符:&

      格式字符串:用""括起来

      普通字符:原样输入

      格式符:%+字母(%d-整数,%f-实数,%c-字符,%s-字符串)

      输入地址列表:用,号隔开

      注意:多个数值类型数据输入的时候,如果没有指定分隔符,使用默认的分隔符(空格、回车、tab)

      多个字符型数据输入的时候,如果没有指定分隔符,不需要使用默认的分个数,编译器会按照字符是的顺序自动接收

      2026年3月3日练习题

      键盘输入练习

      例题求圆的面积和周长

      练习公差运算

       

      第四章 选择结构(分支结构)

      选择结构:根据某个条件的判断结果,来控制程序的流程。

      实现选择结构:if语句、switch语句

      1.if语句

      (1)单分支:

      当某个条件满足的时候,执行语句块a;不满足的时候不执行

       

      (2)双分支:

      当某个条件满足的时候,执行语块a,不满足的时候执行语块n

       

      (3)多分支:

      当条件1满足的时候,执行语块a;否则,条件2满足的时候,执行语块b,否则条件3满足的时候,执行语块c.....

      2.swtich语句(开关语句);多分支

      (1)语法格式

      switch(条件)

      {

      case 条件的结果1(整型):语句块1;

      case 条件的结果2(整型):语句块2;

      case 条件的结果3(整型):语句块3;

      .......

      case 条件的结果n(整型):语句块n;

      default: 语句块n+1;

      }

      说明:

      switch语句的条件和if语句的条件不一样

      if语句的条件可以是任意表达式

      switch只能是整形表达式,例如:int a; switch(a){....}

      case是入口,按照整型表达式的结果进行顺序匹配。因此,case的值都是唯一的

      break语句,作用是结束switch语句。break不是switch语句必须有的一部分。

      default:如果整型表达式的结果和所有的case都无法匹配,那么就会执行default后面的语句块。

      2026年3月4日练习题

      输入一个三位数,分别输出个位,十位,百位

      输入总秒数,输入格式HH:SS:MM

      输入一个字符输出为ACSII编码

      2026年3月10日练习题

      判断y的值

      image-20260310092952846

      判断是否是闰年

      输入xyz的值,判断x+y是否等于z

      输入两个实数,返回较小的数

      输入三个实数,排序后输出,从小到大

      交互式选择计算面积

      多层if嵌套判断成绩

      switch语法练习

       

      2026年3月17日练习题

      使用if判断判断风速等级

      使用switch判断灯泡亮度

      使用if判断一元二次方程的解

      使用if判断某员工的实发工资

      bbe86ff2-6099-4cc6-8923-5b5e4c0c46f6

      第五章 循环结构

      循环的四个部分:循环变量的初始值;判断循环的条件;执行语句(循环内容);增量表达式(循环的两个要素:循环条件、循环体)

      循环类型:for、while、do....while

      修改循环的关键字:break、continue

      1.for循环

      (1)语法:

      for(表达式1;表达式2;表达式3){

      循环体;

      }

      表达式1:初始化(只执行一次)

      表达式2:控制表达式(用来控制循环什么时候结束)

      表达式3:调节器(调整循环变量的值)

      (2)执行过程:

      第一步,先执行表达式1

      第二步,执行表达式2(判断是否符合循环的条件);

      如果表达式2满足,执行循环体;执行第三步

      如果表达式2不满足,循环结束。

      第三步,执行表达式3,跳到第二步

      2.while循环

      (1)语法:

      循环变量初始化;

      while(循环条件){

      循环体;

      增量表达式;

      }

      (2)执行过程:

      第一步,先执行循环变量初始化

      第二步,进行循环条件判断

      如果条件满足,执行循环体,执行第三步

      如果条件不满足,循环结束

      第三步,执行增量表达式,跳到第二步。

      3.do....while循环

      (1)语法:

      循环变量初始化;

      do{

      循环体;

      增量表达式;

      }while(循环条件)

      (2)执行过程:

      第一步,先执行循环变量初始化

      第二步,执行循环体

      第三步,执行增量表达式

      第四部,判断条件

      如果条件满足,跳到第二步

      如果条件不满足,循环结束

      4.循环的嵌套

      循环体又是一个循环结构

      两层循环:外层循环和内层循环

      5.控制语句

      (1)break:终止break所在的这一层循环

      (2)continue:终止continue所在的这一层循环的一次

      代码练习

      计算1到100的和

      计算1到10的称

       

      2026年3月18日练习题

      计算1-2+3-4+5-6+7....100

      依次输出n的幂

      英寸厘米转换表疏忽粗6in的间隔的转换表

      编写一个循环显示人口数每年增加10%,并且确定多少年人口超过3w人;

       

      2026年3月24日练习题

      编写一个100到200之间可以被三和五整除的数

      输入一个字母,输出该字母的acsii编码

      输出一个三位数,判断它的个位,十位,百位的和是否等于15

      输出1~99之间所有与7有关的数

      重点一定会考使用循环打出正三角,倒三角,菱形

      第六章函数

      函数的概念

      1.定义:将常用的代码以固定的格式封装成一个独立的模块。

      2.C语言的函数分为两类:库函数(C语言自带的),自定义函数(自己开发的)

      函数的定义

      定义的格式

      数据类型 函数名([形式参数列表])

      {

      具体实现功能的代码;

      }

      例如:

      int main()

      {

      ........

      }

      说明:

      (1)数据类型:函数的返回值(函数结果)的数据类型。如果没有返回值,那么返回数据类型应该写成void

      (2)形式参数列表:形式参数就是函数运算所需要用到的数据。简称形参,形参可以有0个(即便没有形参,函数名后面的括号也不能省略)或多个。

      形参列表的格式:数据类型 形参1,数据类型 形参2,......

      (3)函数体:一般包括变量的声明、实现功能的语句

      (4)函数不能嵌套定义

      (5)重要的原则:函数定义后,不能自动运行,必须带调用函数,才能实现相应的功能

      (6)返回值:即运算结果,需要return返回

      函数练习

      编写一个函数,实现两个整数的求最大值的功能,结果:两个整数的最大值,所以结果是整形

      函数的调用

      1.函数调用的格式

      实际参数列表:调用函数实现功能需要用到的具体数据。简称实参

      2.形参和实参

      (1)函数定义的时候是形参,函数调用的时候是实参

      (2)形参在定义的时候是不分配内存的,只有调用的时候才会分配内存。一旦函数运行结束,立即释放内存。

      (3)函数调用的时候,实参会复制给形参(传递).因此,实参必须有明确的值

      (4)实参和形参需要在数量、类型、顺序上保持严格的一致.

      (5)实参和形参可以同名

      3.返回值

      函数调用的时候,会返回结果

      说明:return语句可以有多个,但是只有一个被执行

      练习题

      定义一个函数:判断一个年份是否是闰年

      求三角形的面积

      判断一个数是否为素数

      求两个整数的最大公约数

      函数的嵌套调用

      原则:函数不能嵌套定义,但是可以嵌套调用

      例如:

      int_max(int a,int b){

      ........}

      int_min(int x,int y){

      ........}

      int twomax(int a,int b){

      ........}

      int fourmax(int a,int b,int c,int d){

      ........}

      twomax(twomax(int a,int b),twomax(int c,int d)){

      ........}

      练习题

      函数的递归调用

      在一个函数的调用过程中,又调用了这个函数自身。

      例如:求N的阶乘

      分析: n=5

      5! => 5*4!

      4! => 4*3!

      3! => 3*2!

      2! => 2*1!

      1!是已知条件1!=1

      递归算法:

      (1)如果计算的问题是已知情况,那么直接出结果

      (2)如果计算的问题不是已知的情况,进行分解。

      变量的作用域

      有效范围

      1.变量分为局部变量和全局变量

      局部变量:作用域是所在的函数或者语句块内

      全局变量:作用域是变量定义后到结束的区域。

      2.变量的存储类型(没有指明的变量都是auto变量)

      (1)自动变量auto

      (2)外部变量extern 作用域是全局

      (3)静态变量static 静态变量只初始化一次

      (4)寄存器变量register

      变量的定义格式: 存储类型 数据类型 变量名[=初始值]

      自定义函数代码练习

      image-20260331142224758

      image-20260331142306121

      第七章数组

      数组:符合数据类型(构造数据类型,复杂数据从类型)

      定义:多个,相同类型,有序

      一、一维数组

      1.定义

      数据类型 数组名[长度]

      例如:int a[10]; //定义一个整形的数组,有10个整数。

      说明:

      (1)数组名是数组的首地址

      (2)数组里的数据叫元素

      (3)长度是一个常量表达式

      比如,int a[3+4]

      #definde N 9

      int a[N]

      2.引用

      数组的元素都是有顺序的。所以,每个元素都有一个编号,这个编号就索引或者下表都是从0开始的

      元素的引用方式:数组名[索引]

      比如: int a[10]; a[0]-a[9];

      3.初始化

      定义数组的时候进行赋值

      (1)全部元素赋值:int a[10]={1,3,5,7,9,2,4,6,8,10};

      int a[10]={0};//数组的10个元素为0

      (2) 部分元素赋值

      int a[10] = {3,4,5}; //a[0]=3 a[1]=4 a[2]=5

      4.操作

      原则:一般操作是针对元素进行的。不能够对数组进行操作

      例如:int a[5]=a[4]+10

      练习题

      image-20260331150741053

      image-20260401133242599

      数组冒泡法排序

      从左往右,两两相比,大的往后移动,小的往前移动,最后最末尾为最大数

      练习

       

      二、二维数组

      1.定义

      数据类型:数组名[行数] [列数]

      说明:行数和列数分别表示行和列各有多少个元素,一定是常量表达式

      2.引用

      数组名[行下标] [列下表]

      说明:从0开始的

      3.初始化

      (1)全部元素赋值:

      int a=[3] [4]={{1,2,3,6},{5,6,7,8},{2,4,6,8}};

      int a=[3] [4]={1,2,3,4,5,6,7,8,2,4,6,8};

      int a=[] [4]={1,2,3,4,5,6,7,8,2,4,6,8};//行下表可以省略

      (2)部分赋值:

      int a=[3] [4]={{1,2},{5},{2,4,6}};//没有赋值的为0

      4.操作

      二维数组的操作一般需要结合两层的循环

      练习

      三、字符数组

      1.定义

      char 数组的名字[字符的个数];

      2.引用

      数组的名字[数组的下标]

      3.初始化

      (1)用字符常量进行初始化

      char ch[5]={'h','a','p','p','y'};

      (2)使用字符串进行初始化

      char ch[6]='happy'; 或者 char ch[6] = {"happy"};

      //字符串"happy"在内存中占6个字节,字符串长度为5个字节

      注意:用字符串进行初始化的时候,字符串本身是有一个结束符("\0"),所以,数组的长度要比用字符常量进行初始化的时候+1;

      4.输入输出

      (1)输入输出

      逐个字符的输入输出

      char ch[6]="china";

      for(int i=0;i<=6;i++){

      printf("%c",ch[i]);}

      (2)将整个字符串一次性输入输出

      char ch[6]="china";

      printf("%s",ch);

      (3)使用字符串输入输出函数

      puts();

      gets();

      例如:char ch[6];

      ch = gets();

      puts(ch);

      5.字符串处理函数

      string.h

      (1)字符串连接

      strcat(ch1.ch2)

      例如:char ch1[11]="china",ch2[2]="A"

      strcat(ch1,ch2); //ch1中的内容变为"chinaA"

      (2)字符串复制

      strcopy(ch1,ch2)

      例如:char ch[11]="china",ch2[2]="A";

      strcopy(ch1,ch2); //ch1中的内容变为"A"

      (3)字符串比较

      strcmp(ch1,ch2);ch1>ch2,函数结果为正整数;ch1<ch2,结果为负整数;ch1=ch2,结果为0

      (4)求字符串的长度

      strlen(ch);

      注意:结束符("\0")不算长度

      (5)大小写转换

      strlwr(ch);变成小写

      strupr(ch);变成大写

      贯通培养C语言程序设计样题

      有三个整数 a,b,c,由键盘输入,输出其中最大者

      编写一个程序,将一个数组{4,7,2,3,9,1,0,8,6,5}按从小到大的顺序排列, 程序需要打印出排序前和排序后的结果。

      有一个 2 乘 3 的矩阵,要求编程序求出其中值最大的那个元素的值,以及其 所在的行号和列号。

      编写程序,判断某一年是否是闰年。(闰年的条件是:能被 4 整除,但是不能 被 100 整除,或者可以被 400 整除。)

      利用循环输出以下图形

       

      期中

      输入圆的半径,计算周长和面积,并输出计算结果,结果保留两位小数

      输入三角形的三条边,输出三角形的类型(等边、等腰、一般)

      输入员工的原工资,输出调整后的工资

      image-20260415092930473

      有一个分数序列2/1、3/2、5/3、8/5、13/8.......求出这个序列的前20项之和

      输入一个大于2的整数m,计算并输出不大于m的最大素数

       

      期末

      有下列分段函数,写一个程序,输入x的值,输出y的值

      image-20260415093920980

      编程求1!+2!+3!+4!+5!.....10!的值

      12个裁判对某选手打分,去掉一个最高分和一个最低分,剩下的10个实型分数的平均分作为选手的最后得分最后结果保留两位小数

      编写程序,计算一个4行5列的二维数组中的每行的最大值的和,二维数组从键盘输入

      编写自定义函数fun,用于计算两个整数的最小公倍数,主函数负责两个数的输入,并调用fun函数。