C语言的考试题型

亿点点(就是我见到的不会的题目的一个小合集)
文件的大题分析
认清楚地址和数值的
1.指针纠错在这里插入图片描述
1.**int §[4]表示一个指针指向一个四位的数组
int p[4]表示一个指针数组
int *p[4]; //定义一个指针数组,该数组中每个元素是一个指针,
int (*p)[4]; //定义一个数组指针,该指针指向含4个int型元素的一维数组,
区分int *p[n]; 和int (*p)[n]; 就要看运算符的优先级了。
int p[n];中,运算符[ ]优先级高,先与p结合成为一个数组,再由int说明这是一个整型指针数组。
int (*p)[n]; 中( )优先级高,首先说明p是一个指针,指向一个整型的一维数组。
2、int(*p)[4];------ptr为指向含4个元素的一维整形数组的指针变量(是指针)

在这里插入图片描述

首先要有一个可待的地址才能赋值

在这里插入图片描述

牢牢记住*p就相当于一个数

在这里插入图片描述

链表也是一种线性数据结构,但它最大的优势是可以动态的调整大小。这样,我们再也不用担心应该分配多少空间了。

在这里插入图片描述
在这里插入图片描述

链表在日常开发中通常通过数据结构和指针的方式实现,其中包含一个本数据结构的next指针,用于指向下一个元素,这样指下去,就形成了一个单向链表。

在这里插入图片描述

二维赋初值的方法:char str[][10]几行可以不标注但是每行的限制条件需要有限制

下面讲一下switch语句(大多数同学不太懂格式和写法)

                           switch(表达式){
                          case 值1://1.用:2.case后面的值是整型和字符型
                                    语句体1;
                                    break;
                             case 值2:
                                   语句体2;
                                    break;
                            default://所有的值都不匹配的时候,就执行语句体default;(相当于 else)
                                        语句体n+1;
                                         break;

       }

1
2
3
4
5
6
7
8
9
10
11
12
一般设错的话就是case的问题!!!
在这里插入图片描述

2.文件纠错
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
大题之后再加上,懂了再给大家写上去

3.数组纠错
在这里插入图片描述
在这里插入图片描述

不能引用整个数组,只能一个个的使用下标变量

在这里插入图片描述
在这里插入图片描述
B为字符数组【n】实际上是【n-1】因为\0也会有一个空间的
在这里插入图片描述

这里是有关字符数组和字符串问题(帮助大家进一步理解)
总之字符串的结束语就是\0

在这里插入图片描述

D

4.结构体纠错
在这里插入图片描述

1.一种就是需要补充字符的题,问你多少字节(union 和struct)

#include
int main( )
{
union U
{
char st[4] ;
int i ;
long l ;
} ;
struct A
{
int c ;
union U u ;
} a ;
printf( “%d\n” , sizeof( struct A ) ) ;
return 0 ;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
long 字节为4 union中取最大
struct 字节要补齐,补齐完再相加

在这里插入图片描述

结构体本身不占用空间,相当于int 类型的变量,而结构的里面相当于变量里面的 a,a是占用空间的。

考定义
在这里插入图片描述
在这里插入图片描述

注意

三种定义形式,第三种形式可以省略类型名,结构体变量名是自己最后定义的东西
2.不能对本身递归
3.定义结构体类型,只是说明了该类型的组成情况,并没有给它分配存储空间,就像系统不为int类型本身分配空间一样。只有当定义属于结构体类型的变量时,系统才会分配存储空间给该变量
在这里插入图片描述
第1~4行并没有分配存储空间,当执行到第6行时,系统才会分配存储空间给stu变量。
4.结构体变量占用的内存空间是其成员所占内存之和
5.位运算
位运算的主要概述(看不懂得可以打开连接看看爽爽子也只能做到信息整合)
这篇博客写得挺好得位运算知识点基本涵盖

6.C语言概述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

这个玩意我感觉记住就行,考试前看一看就可

在这里插入图片描述

标识符,关键字
int a 中int是关键字 a是标识符(字母,数字,下划线)

C语言中常数合法表示
在这里插入图片描述
C语言中转义字符格式在这里插入图片描述

在这里插入图片描述
见到&& || !就要注意答案不是1 就是 0!!
而且:“!”(就近原则)所以!(x+y)是0但是不限制后面的数(后面的数只要不是0就是真的,所以两个都是真的再经过&&答案就是“1”)

四舍五入:int 下取整,double float是四舍五入

#include
int main( )
{
int a = 1, b = 10 ;
do
{
b -= a ;
a++ ;
}
while( b-- < 0 ) ;
printf( “a=%d,b=%d\n” , a , b ) ;
return 0 ;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
循环
1.循环()里面只要满足条件就循环
2.do-while要有;

7.杂点
#include//预编译
#define

数据类型,int float double , 4 4 8

运算符:+ - * / %(取余)
赋值运算:=
复合赋值运算符:+=
自增自减运算符:++ --(作用数据变量)(任何数据类型可以自增自减)
宏定义;不做任何语法检查直接替换
宏替换 p33-p35
数据格式化 p48
%g(自动寻找f e 的格式选取简单的哪一种)不输出无意义的0;
putchar getschar(字符)gets(字符串)
选择结构 if if else
switch 后面是整形
逻辑运算符;&& || !
A&&B(AB都是1才为1,如果A计算是0第二个表达式不去计算)
A||B(前一个表达式为非0,运算下一个)
if()
三位运算符
A?B:C(条件运算符)
不同表达式在里面(精确度最大的)p36(靠近食物链顶端的)

C中float类型中小数位数为7位,即可精确到小数点后7位,例如0.123456789,在float类型中只能取到0.1234567,后面的两位有效数字损失掉了;double类型中小数位数为15位,可精确到小数点后15位。

1.一个字节可以表示整数最小0,最大255,一个字节等于8个二进制位(2的八次方256)
2.bit(位)最小单位
3.sizeof是关键字不是函数名
4.赋值运算是有方向性的从右边到左边
5.return是保留字,printf scanf是函数,在stdio.h(主调函数,被调函数)
6.宏常量const double x=3.1415,宏替换# define x 3.1415(直接替换不用考虑是什么量)
7.强制转换(int)x/y(转换的东西放在里面)
8.转义字符:‘\565’,’\xhh’
9.printf输出%o八进制%x 16进制
10.数据结构+算法=程序

8.小小算法
1.闰年 year%40&&year%100!=0||(year%400==0)
2.fabs()绝对值,pow(x,n)次方,sqrt()开根号。
3.小九九打印 for套for
4.最小公倍数,最大公约数
5.兔子繁衍
6.菱形图案 for套for
7.排序 for套for
8.素数
9.时间的问题(到时间需要给前面加一)
10.求最大值和下标(一般会有值来标注)
题型给到这里pta上有的可以自己找一下

你可能感兴趣的:(C语言的考试题型)