c语言 cstring “+”: 运算符不起任何作用;应输入带副作用的运算符_国家计算机二级考试C语言选择题高频考点汇总,干货满满...
【考點1】C語言的構成
1.源程序由函數構成,每個函數完成相對獨立的功能。
2.每個源程序中必須有且只能有一個主函數,可以放在任何位置,但程序總是從主函數開始執行。
3.函數體:在函數后面用一對花括號括起來的部分。
4.每個語句以分號結束,但預處理命令,函數頭之后不能加分號。
5.注釋:括在“/*”與“*/”之間,沒有空格,允許出現在程序的任意位置。
【考點2】C程序的生成過程
(1)C程序是先由源文件經編譯生成目標文件,然后經過連接生成可執行文件。
(2)源程序的擴展名為.c,目標程序的擴展名為.obj,可執行程序的擴展名為.exe
【考點3】標識符
(1)標識符的命名規則
①標識符只能由字母,數字或下劃線組成
②第一個字符必須是字母或下劃線,不能是數字
③區分字母的大小寫
(2)標識符的分類
①關鍵字:C語言規定專用的標識符,它們有固定的含義,不能更改
②預定義標識符:和關鍵字一樣也有特定的含義
③用戶標識符:由用戶根據需要定義的標識符,命名應注意做到“見名知意”且不能與關鍵字相同。
【考點4】常量
(1)整型常量
①表示形式:十進制整型常量、八進制整型常量、十六進制整型常量
②書寫形式:
<1>十進制整型常量:基本數字范圍為0~9
<2>八進制整型常量:以0開頭,基本數字范圍為0~7
<3>十六進制整型常量:以0x開頭,基本數字范圍為0~15,其中10~15寫為A~F或a~f
(2)實型常量
①表示形式:小數形式、指數形式
②書寫形式:
十進制小數形式:小數點兩邊必須有數字
<2>指數形式:e前必須有數字,e后必須為整數
(3)字符常量
一個字符常量代表ASCII碼字符集里的一個字符,在程序中用單撇號括起來,區分大小寫。
特殊的字符常量:即轉義字符。其中“”是轉義的意思,后面跟不同的字符表示不同的意思。
<1>:換行
<2>:反斜杠字符“”
<3>ddd:1~3位八進制數所代表的一個ASCII字符
<4>xhh:1~2位十六進制數所代表的一個ASCII字符
(4)字符串常量
字符串常量是用雙撇號括起來的一個或一串字符
(5)符號常量
符號常量是由預處理命令“#define”定義的常量,在C程序中可用標識符代表一個常量
【考點5】變量
定義:值可以改變的量
·變量要有變量名,在使用前必須先定義
·在內存中占據一定的存儲單元,不同類型的變量其存儲單元的大小不同。
·存儲單元里存放的是該變量的值
(1)整型變量
基本型: int
短整型: short int 或 short
長整型: long int 或 long
無符號型: unsigned int,unsigned short,unsigned long
(2)實型變量
①分類:單精度型(float)和雙精度類型(double)
②定義方法:float a;double m
③所占字節:float型在內存中占4個字節(32位),double型占8個字節(64位)
。單精度實數提供7位有效數字,雙精度實數提供15~16位有效數字
④實型常量:不分float型和double型,一個實型常量可以賦給一個float型或double型變量,但變量根據其自身類型截取實型常數中相應的有效數字。
(3)字符變量
作用:用來存放字符常量
定義:用關鍵字char定義,每個字符變量中只能存放一個字符
定義形式:char cr1,cr2;
賦值:cr1='m',cr2='n';
存儲方法:存儲字符對應的ASCII碼到內存單元中
【考點6】類型的自動轉換和強制轉換
(1)類型的自動轉換
①當同一表達式中各數據的類型不同時,編譯程序會自動把它們轉變成同一類型后再進行計算。
②轉換優先級為char
③在做賦值運算時,若賦值號左右兩邊的類型不同,則賦值號右邊的類型向左邊的類型轉換;當右邊的類型高于左邊的類型時,則在轉換時對右邊的數據進行截取。
(2)類型的強制轉換
表示形式:(類型)(表達式)
【考點7】逗號運算和逗號表達式
逗號表達式:用逗號運算符將幾個表達式連接起來
一般形式:表達式1,表達式2,表達式3,……,表達式n
求解過程:先求解表達式1,然后依求解表達式2,直至表達式n的值。表達式n的值就是整個逗號表達式的值。
【考點8】自加,自減運算符
++i:在i使用前,先使i的值加1,再使用此時的表達式的值參加運算;
--i:在i使用前,先使i的值減1,再使用此時的表達式的值參加運算;
i++:i的值先參與表達式運算,再執行自增1;
i--:i的值先參與表達式運算,再執行自減1
【考點9】賦值運算符合賦值表達式
“=”稱作fu賦值運算符,作用是將一個數值賦給一個變量,或將一個變量的值賦給另一個變量。由賦值運算符組成的表達式稱為賦值表達式。
一般形式:變量名=表達式
注意:
①賦值運算符的優先級高于逗號運算符
②賦值運算符“=”和等于運算符“==”有很大的差別,二者不能混為一談
③賦值運算符的左側只能是變量,而不能是常量或表達式,右側可以是表達式,包括賦值表達式
④規定最左邊變量所得到的新值就是某個賦值表達式的值
【考點10】C語言提供的6種位運算符
1.按位與“&”:若兩個相應的二進制數都為1,則按位的結果為1(有0出0,全1出1)
2.按位或“|”:有1出1,全0出0
3.按位異或“^”:若兩個二進制位相同,則結果為0,否則為1
4.按位求反“~”:0變1,1變0
5.左移“<
6.右移“>>”:將一個數的二進制位全部右移若干位
【考點11】單個字符的輸入與輸出
1)字符輸入函數getchar()
getchar()函數的作用是接收終端輸入一個字符
geichar()函數沒有參數,函數值就是從輸入設備得到的字符
2)字符輸出函數putchar()
putchar()函數的作用是向終端輸出一個字符
【考點12】格式化輸出函數printf()
printf()函數是C語言提供的標準輸出函數,它的作用是向終端按指定格式輸出若干個數據。
(1)printf()函數的一般形式:printf(格式控制,輸出表列);
<1>“格式控制”:用雙引號括起來的字符串是“格式控制”字符串,它包括兩種信息:
①格式轉換說明,由“%”和格式字符組成
②需要原樣輸出的字符也寫在格式控制內
<2>輸出表列:需要輸出的一些數據,可以是常量,變量或表達式。輸出表列中的各輸出項用逗號隔開。
(2)格式字符
可在“%”與格式字符之間插入“寬度說明”,左對齊符號“-”,前導零符號“0”等
d:用來對十進制數進行輸入輸出
o:以八進制數形式輸出整數
x:以十六進制數形式輸出整數
u:輸出unsigned型數據,即輸出無符號的十進制數
c:輸出一個字符
s:輸出一個字符串
f:輸出實數,以小數形式輸出,使整數部分全部輸出
e:以指數形式輸出實數
g:輸出實數
(3)使用printf()函數時的注意事項
①在格式控制串中,格式說明與輸出項從左到右在類型上必須一一匹配
②在格式控制串中,格式說明與輸出項個數要相等。
③在格式控制穿中,可以包含任意的合法字符,這些字符在輸出時將被“原樣輸出”
④如果要輸出“%”,則應該在格式控制串中用兩個連續的百分號“%%”來表示
【考點13】格式化輸入函數scanf()
(1)scanf()函數的一般形式
scanf(格式控制,地址表列)
其中scanf是函數名,“格式控制”的含義同printf()函數,“地址表列”由若干個變量地址組成,既可以是變量的地址,也可以是字符串的首地址。
(2)格式說明
scanf()函數中的格式說明也是以%開始,以一個格式字符結束,中間可以加入附加的字符。
①對unsigned型變量的數據,可以用%d,%o,%x格式輸入
②在scanf()函數中格式字符前可以用一個整數指定輸入數據所占寬度,但對于輸入實型數則不能指定其小數位的寬度
③在格式控制串中,格式說明的個數應該與輸入項的個數相等,且要類型匹配。
(3)使用scanf()函數時的注意事項
①scanf()函數中的輸入項只能是地址表達式,而不能是變量名或其他內容
②如果在“格式控制”字串中除了格式說明以外還有其他字符,則在輸入數據時應輸入與這些字符相同的字符
③在用“%c”格式輸入字符時,空格字符和轉義字符都可作為有效字符輸入
④在輸入數據時,若實際輸入數據少于輸入項個數,scanf()函數會等待輸入,直到滿足條件或遇到非法字符才結束;若實際輸入數據多余輸入項個數,多余的數據將留在緩沖區備用,作為下一次輸入操作的數據。
⑤在輸入數據時,遇到以下情況時認為輸入結束:空格,“回車”或“跳格”(“TAB”),上述字符統一可稱為“間隔符”
【考點14】關系表達式
(1)定義:由關系運算符連城的表達式。關系運算符的兩邊可以是C語言中任意合法的表達式。
(2)關系運算符的結果是一個整數值——“0或者非零”,用非零值來表示“真”,用零值來表示“假”
【考點15】if語句的幾種形式
(1)if(表達式)語句
if是C語言的關鍵字
表達式兩側的括號不可少,并且只能是圓括號
緊跟著的語句稱為if子句,如果在if子句中需要多個語句,則應該使用大括號{ }把一組語句括起來構成復合語句。
(2)if(表達式) 語句1
else 語句2
(3)if(表達式1) 語句1
else if(表達式2) 語句2
……
else if(表達式m) 語句m
else 語句n
【考點16】條件運算符構成的選擇結構
(1)條件運算符:?:
(2)條件表達式的一般形式:表達式1?表達式2:表達式3
(3)求解過程:先求解表達式1的值,當表達式1的值是非0時,以表達式2的值作為整個條件表達式的值;當表達式1的值是0時,以表達式3的值作為整個條件表達式的值。
【考點17】switch語句
switch語句是C語言提供的多分支選擇語句,用來實現多分支選擇結構。
一般形式:
switch(表達式)
{
case 常量表達式1:語句1
case 常量表達式2:語句2
……
case 常量表達式n:語句n
default:語句n+1
}
switch后面用花括號括起來的部分是switch語句體
switch后面括號內的“表達式”,可以是C語言中任意合法表達式,但表達式兩側的括號不能省略
default也是關鍵字,起標號的作用,代表除了以上所有case標號之外的那些標號,default標號可以出現在語句體中的任何標號位置上。當然,也可以沒有。
【考點18】while循環語句
(1)一般形式
while(表達式) 循環體
while是c語言的關鍵字
循環體只能是一條可執行語句,當多項造作需要多次重復做時,可以使用復合語句
(2)執行過程
第一步:計算緊跟while后括號中表達式的值,當表達式的值為非時,則接著執行while語句中的內嵌語句;當表達式的值為時,則跳過該while語句,執行該while結構后的其他語句。
第二步:執行循環體內嵌語句
第三步:返回去去執行步驟(1),直到條件不滿足,即表達式的值為0時,退出循環,while結構結束
(3)特點
先對表達式進行條件判斷,后執行語句
【考點19】do……while語句
(1)一般形式
do{
循環體語句
}while(表達式);
do是C語言的關鍵字,必須和while聯合使用
do···while循環由do開始,用while結束
while(表達式)后面的分號不能丟
(2)執行過程
先執行一次指定的循環體語句
執行完后,判別while后面的表達式的值,當表達式的值為真(非零)時,程序流程返回,去重新執行循環體語句。
如此反復,直到表達式的值等于零為止,此時循環結束
【考點20】for語句
(1)一般形式
for(表達式1;表達式2;表達式3)
各個表達式之間要用";"隔開,且圓括號不可省略
(2)執行過程
①求表達式1的值
②求表達式2的值,若其值為真(非0),則執行for語句中指定的內嵌語句,然后執行③;若其值為假,則退出循環,執行for語句以下的其他語句。
③求表達式3的值
④重復執行②
【考點21】break語句
在break后面加上分號就可以構成break語句,break語句還可用于從循環體內跳出,即提前結束循環。
break語句只能出現在循環體內及switch語句內,不能用于其他語句。
當break出現在循環體中的switch語句體內時,其作用只是跳出該switch語句體。
當break出現在循環體中,但并不在switch語句體內時時,則在執行break后,跳出本層循環,當然也不再去進行條件判斷。
【考點22】continue語句
(1)一般形式為:continue
(2)左永剛:結束本次循環,即跳過循環體中下面尚未執行的語句,而轉去重新判定循環條件是否成立,從而確定下一次循環體是否繼續執行
【考點23】一維數組的定義
一維數組是指數組中的每個元素只帶有一個下標的數組。
定義方式為:
類型說明符 數組名[常量表達式];
【考點24】一維數組元素的引用
數組元素的引用形式為:數組名[下標表達式];
一個數組元素實質上是一個變量名,代表內存中的一個存儲單元,一個數組占據的是一連串連續的存儲單元
數組必須先定義后使用
只能逐個引用數組元素而不能一次引用整個數組
【考點25】一維數組的初始化
當數組定義后,系統會為該數組在內存中開辟一串連續的存儲單元,但這些存儲單元中并沒有確定的值。可以在定義數組時為所包含的數組元素賦初值。
例如:int a[6]={0,1,2,3,4,5};
所賦初值放在一對花括號中,數值類型必須與所說明類型一致
所賦初值之間用逗號隔開,系統將按這些數值的排列順序,從a[0]元素開始依次給數組a中的元素賦值
不能跳過前面的元素給后面的元素賦初值,但是允許為前面元素賦值為0
當所賦初值個數少于所定義數組的元素個數時,將自動給后面的其他元素補處置0
可以通過賦初值來定義一維數組的大小,定義數組時的一對方括號中可以不指定數組的大小。
【考點26】二維數組的定義
在C語言中,二維數組中元素排列的順序是:按行存放,即在內存中先順序存放第一行的元素,再存放第二行的元素。二維數組元素的存儲總是占用一塊連續的內存單元。
一般形式為:
類型說明符 數組名[常量表達式1][常量表達式2];
數組的下標可以是整型表達式
數組元素可以出現在表達式中,也可以被賦值
【考點27】二維數組的初始化
可以在定義二維數組的同時給二維數組的各元素賦初值
全部初值放在一對花括號中,每一行的初值又分別括在一對花括號中,之間用逗號隔開
當某行一對花括號內的初值個數少于改行中元素的個數時,系統將自動地給后面的元素賦初值0
不能跳過每行前面的元素而給后面的元素賦初值
【考點28】字符串和字符串結束標志
在C語言中,將字符串作為字符數組來處理。為了測定字符串的實際長度,C語言規定了一個字符串結束標志,以字符“0”代表。
【考點29】字符數組的輸入輸出
字符數組的輸入輸出有以下兩種方法:
用“%c”格式符,將字符逐個輸入或輸出
用“%s”格式符,將整個字符串一次輸入或輸出
【考點30】形式參數
在定義函數時,函數名后面括號中的變量稱為形式參數
【考點31】實際參數
在主調函數中,函數名后面括號中的參數稱為“實際參數”
【考點32】函數的返回值
(1)定義:函數的返回值就是通過函數調用使主函數能得到一個確定的值
(2)表達形式:return 表達式;
或return(表達式)
或return
(3)說明
return語句中的表達式值的類型必須與函數首部所說明的類型一致。若類型不一致,則以函數值的類型為準,由系統自動進行強制轉換。
【考點33】函數調用的一般形式
函數名(實參表列)
函數的調用可分為調用無參函數和調用有參函數兩種
調用無參函數:不用“實參表列”,但括號不能省略
調用有參函數:若實參表列中有多個實參,各參數間用逗號隔開。實參與形參要求類型一致。
【考點34】指針變量的定義
定義指針變量的一般形式:
類型名 *指針變量名1,*指針變量名2,···;
例如:int *p,*t;
【考點35】指針變量的引用
指針變量中只能存放地址(指針),與指針相關的兩個運算符是“&”(取地址運算)和“*”(指針運算符)
【考點36】指針變量作為函數參數
指針類型數據可以作為函數參數來進行傳遞
作用:將一個變量的地址傳送到另一個函數中,參與該函數的運算。
【考點37】指向數組元素的指針
C語言規定數組名代表數組的首地址,也就是數組中第0號元素的地址
定義指向數組元素的指針變量的方法與定義指向變量的指針變量相同
【考點38】通過指針引用數組元素
如果指針變量p已指向數組中的一個元素,則p+1指向同一數組中的下一個元素。
【考點39】指向函數的指針
指針變量可以指向一個函數,編譯時,一個函數將被分配給一個入口地址,這個入口地址就稱為該函數的指針。因此,可以通過使用一個指向函數的指針變量調用此函數。
說明:
1.指向函數的指針變量的一般定義形式為:數據類型(*指針變量名)()
2.在給函數指針變量賦值時,只需給出函數名而不必給出參數用函數指針變量調用函數時,只需將(*s)代替函數名即可,在(*s)之后的括號中根據需要寫上實參
3.對指向函數的指針變量,有些運算,如++s,--s,s++等都是沒有意義的
【考點40】指針數組的概念
若在一個數組中,其元素均為指針類型數據,這樣的數組稱為指針數組
一維指針數組的定義形式為:
類型名 *數組名[數組長度]
【考點41】指向指針的指針
指向指針數據的指針變量,簡稱為指向指針的指針,通常稱為二級指針。
定義一個指向指針數據的指針變量的形式:
類型名 **a;
【考點42】不帶參數的宏定義
(1)定義形式:
#define 宏名 替換文本
或#define 宏名
(2)說明
1.在define宏名和宏替換文本之間要用空格隔開
2.在進行宏定義時,可以引用已定義的宏名
3.同一個宏名不能重復定義
【考點43】帶參數的宏定義
(1)定義形式:
#define 宏名(參數表) 字符串
宏定義不只進行簡單的字符串替換,還可進行參數替換
(2)執行過程
如果程序中有帶實參的宏,則按#define 命令行中指定的字符串從左到右進行置換
如果字符串中包含宏中的形參,則將程序語句中相應的實參代替形參
如果宏定義中的字符串中的字符不是參數字符,則保留
【考點44】malloc()函數
函數原型為:
void * malloc(unsigned int size);
函數的作用:
系統自動在內存的動態存儲區中,分配長度為size的一段連續空間。若此函數執行成功,則函數返回值為指向被分配域的起始地址的指針。若該函數執行失敗,則函數返回值為空指針(NULL)
【考點45】結構體數據類型
(1)聲明一個結構體類型的一般形式為
struct 結構體名
{成員表列};
(2)結構體類型可以用以下形式說明:
struct 結構體標識名
{
類型名1 結構體成員名表1;
類型名2 結構體成員名表2;
···
類型名3 結構體成員名表3;
};
【考點46】結構體數組
(1)一般形式
struct 結構體變量名 {成員表列} 數組名{常量表達式};
(2)結構體數組的初始值應順序地放在一對花括號中
【考點47】指向結構體變量的指針
“->”稱為指向運算符
“結構體變量,成員名”
等價于
“(*結構體指針變量名).成員名”
等價于
“結構體指針變量名->成員名”
【考點48】鏈表的概念
(1)定義:鏈表是一種常見的重要的數據結構,它是動態地進行存儲單元分配的一種結構。
(2)說明:
鏈表中的各元素在內存中不一定是連續存放的;
一個節點中應包含一個指針變量,用它存放下一節點的地址
鏈表最后一個節點的指針域置成‘0’(NULL)值,標志著鏈表的結束
每一個鏈表都用一個“頭指針”變量來指向鏈表的開始,稱為head指針。在head指針中存放了鏈表第一個節點的地址。
【考點49】C語言文件的概念
C程序把文件分為ASCII文件和二進制文件。ASCII文件又稱為文本文件
在C語言中,文件是一個字節流或二進制流,也就是說,對于輸入輸出的數據都按“數據流”的形式進行處理
文件輸入輸出方式也稱“存取方式”。C語言中,文件有兩種存取方式:順序存取和直接存取。
【考點50】文件類型指針
可以用該結構體類型來定義文件類型的指針變量,一般形式為:
FILE *fp
fp是一個指向FILE結構體類型的指針變量
【考點51】fopen()函數
(1)調用形式
fopen(文件名,文件使用方式);
(2)常用文件使用方式
“r”:為讀而打開文本文件
"rb":為讀而打開一個二進制文件
"w":為寫而打開文本文件
"wb":為寫而打開一個二進制文件
"a":為在文件后面添加數據而打開文本文件
"ab":為在文件后面添加數據而打開一個二進制文件
"r+":為讀和寫而打開文本文件
"rb+":為讀和寫而打開一個二進制文件
【考點52】fcolse()函數
調用形式:fclose(文件指針)
當執行了關閉操作后,成功則函數返回0,否則返回非0
【考點53】文件的定位
rewind(fp)
該函數的功能是使文件的位置指針重新返回到文件的開頭,其中fp為文件指針,且該函數沒有返回值。
以上就是國二C語言考試中選擇題常考的考點總結了,都是筆者一個字一個字打上去的,也花費了很長很長的時候,里面難免可能會有打錯字等等,還請讀者在下方評論區給出指正。喜歡的話歡迎收藏點贊,給為期5天的晝夜打字一點小小的鼓勵,感謝您的閱讀,祝你輕松精通C語言,毫無難度拿下國二考試。
總結
以上是生活随笔為你收集整理的c语言 cstring “+”: 运算符不起任何作用;应输入带副作用的运算符_国家计算机二级考试C语言选择题高频考点汇总,干货满满...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android studio证件照代码,
- 下一篇: 使用react实现select_Reac