C語言的考試題型

暴躁的阿姐³發表於2020-12-30

億點點(就是我見到的不會的題目的一個小合集)
檔案的大題分析
認清楚地址和數值的
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<stdio.h>
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<stdio.h>
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上有的可以自己找一下

相關文章