日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

C语言易错题集 第二部

發(fā)布時(shí)間:2025/3/20 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言易错题集 第二部 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

C語(yǔ)言易錯(cuò)題集后續(xù)

  • 一、共用體相關(guān)(union)
  • 二、do,while相關(guān)
  • 三、char溢出相關(guān)
  • 四、printf()相關(guān)
  • 五、++相關(guān)
  • 六、 for語(yǔ)句相關(guān)
  • 七、calloc()相關(guān)
  • 八、define相關(guān)
  • 九、溢出相關(guān)
  • 十、指針常量,常量指針相關(guān)
  • 十一、多重指針相關(guān)
  • 十二、指針相關(guān)
  • 十三、abs()相關(guān)
  • 十四、全局?jǐn)?shù)組、局部數(shù)組賦值相關(guān)
  • 十五、double誤差相關(guān)

一、共用體相關(guān)(union)

問(wèn)題: 共同體變量所占的內(nèi)存長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度。請(qǐng)問(wèn)這句話的說(shuō)法是正確的嗎? 答案: 錯(cuò)誤 共同體類型的特點(diǎn) (1)同一共同體內(nèi)的成員共用一個(gè)存儲(chǔ)區(qū),存儲(chǔ)區(qū)的大小=成員占用字節(jié)長(zhǎng)度最大值。【需要考慮內(nèi)存對(duì)齊】對(duì)齊問(wèn)題:1.一般而言,共用體類型實(shí)際占用存儲(chǔ)空間為其最長(zhǎng)的成員所占的存儲(chǔ)空間; 2.若是該最長(zhǎng)的存儲(chǔ)空間對(duì)其他成員的元類型(如果是數(shù)組,取其類型的數(shù)據(jù)長(zhǎng)度,int a[5]4)不滿足整除關(guān)系,該最大空間自動(dòng)延伸; 延伸到可以整除為止 (2)在任一時(shí)刻,在一個(gè)共同體變量中,只有一個(gè)成員起作用。 (3)共同體類型中的成員類型可為任意已定義的數(shù)據(jù)類型。

二、do,while相關(guān)

執(zhí)行如下代碼, c 的值是:() int a=0,c=0; do{--c;a=a-1; }while(a>0); 答案 : -1 程序最開(kāi)始執(zhí)行--c,現(xiàn)在c變成了-1,接著執(zhí)行a=a-1,a也變成了-1,再執(zhí)行while語(yǔ)句,while(a>0,判斷為假,退出循環(huán),故c= -1要注意的是: 條件為真,繼續(xù)運(yùn)行。 do-while 語(yǔ)句的一般形式為 :do語(yǔ)句while( 表達(dá)式 ) ; 這個(gè)循環(huán)與 while 循環(huán)的不同在于 : 它先執(zhí)行循環(huán)中的語(yǔ)句 , 然后再判斷表達(dá)式是否為真 , 如果為真則繼續(xù)循環(huán);如果為假 , 則終止循環(huán)。因此 , do-while 循環(huán)至少要執(zhí)行一次 循環(huán)語(yǔ)句 。 使用while語(yǔ)句應(yīng)注意以下幾點(diǎn): 1while 語(yǔ)句中的表達(dá)式一般是關(guān)系表達(dá)或 邏輯表達(dá)式 ,只要表達(dá)式的值為真 (0) 即可繼續(xù)循環(huán)。 2 、循環(huán)體如包括有一個(gè)以上的語(yǔ)句,則必須用 {} 括起來(lái),組成復(fù)合語(yǔ)句。

三、char溢出相關(guān)

#include<stdio.h> int main(void) {char a=101;int sum=200;a+=27;sum+=a;printf("%d\n",sum);return 0; } 問(wèn)輸出什么 ? 答案: 72char類型的范圍是-128---+127,當(dāng)a+=27 ,之后a的值超出可表示范圍會(huì)變?yōu)?span id="ozvdkddzhkzd" class="token operator">-128.200-128=72 我個(gè)人關(guān)于位數(shù)溢出的問(wèn)題,習(xí)慣把它想象為一個(gè)輪回 如下圖

四、printf()相關(guān)

#include<stdio.h> int main() { int a=666,b=888;printf("%d\n",a,b);return 0; } 程序運(yùn)行后的輸出結(jié)果是( )。 A 錯(cuò)誤信息 B 666 C 888 D 666,888 答案 : B printf()函數(shù) 是 從右往左 入棧(計(jì)算表達(dá)式),輸出是從左往右 所以: 該題 printf函數(shù)參數(shù)的入棧順序是從右到左(888先入棧,接著666入棧)。 所以從棧里面讀取一個(gè)數(shù)據(jù)時(shí),只會(huì)讀取最后入棧的數(shù)據(jù),也即666.

五、++相關(guān)

有如下定義#define D 2 int x=5;floaty=3.83; char c=′D′; 則下面選項(xiàng)中錯(cuò)誤的是()。 A x++; B y++; C c++; D D++; 答案: D D是因?yàn)槲覀儾荒軐?duì)宏進(jìn)行取地址操作,而++操作是先從內(nèi)存取值到寄存器 然后寄存器加一后再寫入內(nèi)存中必然涉及如地址操作

六、 for語(yǔ)句相關(guān)

設(shè) m 和 n 都是 int 類型,那么以下 for 循環(huán)語(yǔ)句,___ for(m=0,n=-1;n=0;m++,n++)n++;A 循環(huán)體一次也不執(zhí)行 B 循環(huán)體執(zhí)行一次 C 是無(wú)限循環(huán) D 有限次循環(huán) E 循環(huán)結(jié)束判斷條件不合法 F 運(yùn)行出錯(cuò) 答案: A 上機(jī)測(cè)試,for循環(huán)的條件判斷語(yǔ)句中,如果使用賦值語(yǔ)句或常量值, 當(dāng)值為0時(shí),不執(zhí)行循環(huán)體, 當(dāng)值為非0時(shí),無(wú)限循環(huán)。所以,選A

當(dāng) n為0時(shí):

當(dāng) n為1時(shí):

當(dāng) n為-1時(shí):

當(dāng) n為-2時(shí):

可以看出,當(dāng)n值為非0時(shí),無(wú)限循環(huán)。

七、calloc()相關(guān)

有以下程序 #include<stdio.h> #include<stdlib.h> void fun( double *pl,double *p2,double *s) {s = ( double*) calloc ( 1,sizeof(double));*s = *pl + *(p2+1); } int main(void) {double a[2]={1.1,2.2};double b[2]={10.0,20.0};double *s=a;fun(a,b,s);printf("%5.2f\n",*s);return 0; } 程序的輸出結(jié)果是? 答案: 1.10編譯器編譯時(shí)給指針參數(shù)提供臨時(shí)副本 _p,使得_p=p。 如果函數(shù)體內(nèi)的程序修改了_p指向的內(nèi)容,就導(dǎo)致參數(shù)p指向的內(nèi)容也被做了相應(yīng)的修改,因?yàn)樗麄冎赶蛲粌?nèi)存空間。 在本例中,_p 申請(qǐng)了新的內(nèi)存,只是把_p 所指的內(nèi)存地址改變了,但是p 絲毫未變(即修改了p本身的值而不是_p指向的對(duì)象)

八、define相關(guān)

定義宏#define DECLARE(name, type) type name##_##type##_type, 則DECLARE(val, int)替換結(jié)果為()A int val_int_type B int val_int_int C int name_int_int D int name_int_name 答案 : A##是一種分隔連接方式,它的作用是先分隔,然后進(jìn)行強(qiáng)制連接 “name”和第一個(gè)“_”之間被分隔了, 所以預(yù)處理器會(huì)把name##_##type##_type解釋成4段:“name”、“_”、“type”以及“_type”, name和type會(huì)被替換,而_type不會(huì)被替換

九、溢出相關(guān)

下列代碼的運(yùn)行結(jié)果() short i=65537; int j=i+1; printf(“i=%d,j=%d\n”, i, j);A i=65537,j=65538 B i=1,j=2 C i=-1,j=0 D i=1,j=65538 答案: B short2個(gè)字節(jié) 范圍為 -32768~~32767 65537-32767=32770 按照循環(huán)要向后走32770下 即32770-32768=2 還有最后兩下 0 1 即向后移動(dòng)32770下后到1這個(gè)位置 所以i=1

十、指針常量,常量指針相關(guān)

下面3段程序代碼的效果一樣嗎? int b; (1)const int *a = &b; (2)int const *a = &b; (3)int *const a = &b;A (2)=(3) B (1)=(3) C (1)=(2) D 都不一樣 E 都一樣 答案 C const*的左邊,則指針指向的變量的值不可直接通過(guò)指針改變(可以通過(guò)其他途徑改變);*的右邊,則指針的指向不可變。簡(jiǎn)記為"左定值,右定向"。常量指針: 指針?biāo)赶虻臄?shù)不能改變 例: int const *b; 指針常量: 指針的指向是固定的 例: int *const b;

十一、多重指針相關(guān)

A WORLD,LO,SAYHI,EW B WORLD,LO,HI,NEW C NEW,LO,SAYHI,EW D WORLD,LO,HI,EW 答案: D 答案:D; 第一個(gè)printf:由于char***cpp,可以讀成cpp為一個(gè)指向char**類型的指針,并且初始化為cp, 而cp是一個(gè)指針數(shù)組,數(shù)組里面存儲(chǔ)的類型為char**,也就是cpp指向cp[0],故*cpp=cp[0]; 因此++cpp使得cpp指向cp[1],故*++cpp=cp[1];而cp[1]是一個(gè)指向c[2]的指針,因此*cp[1] = c[2], 故**++cpp=*cp[1]=c[2],故輸出WORLD;第二個(gè)printf:由優(yōu)先級(jí)可得知,單目運(yùn)算符高于算術(shù)運(yùn)算符;而*++是單目運(yùn)算符,+是算術(shù)運(yùn)算符, 又cpp本身是指向的cp[1],故++cpp使得cpp指向cp[2],故*++cpp則為cp[2],而此時(shí)的cp[2]是一個(gè)指向c[1]的地址, 故對(duì)指向c[1]的指針cp[2]進(jìn)行--,故使得cp[2]指向的是c[0],故*--*++cpp+3=*--cp[2]+3=c[0]+3, 而這里的c[0],其實(shí)存放的是指向HELLO字符串的指針故c[0]+3,使得該指針指向HELLO中的第二個(gè)L的位置,故輸入LO;第三個(gè)printf:由于cpp目前指向的是cp[2],而cpp[-2]是等于*(cpp-2),而在第二個(gè)printf時(shí)cpp指向cp[2], 則*(cpp-2) = cp[0](注:這里cpp-2后,cpp本身的指針地址沒(méi)有改變,因此在第四個(gè)printf中,cpp依舊是指向cp[2]), 又cp[0]是一個(gè)指向c[3]的指針,對(duì)cp[0]進(jìn)行*運(yùn)算,使得*cp[0]=c[3],故**(cpp-2)=*cpp[-2]=c[3], 同時(shí)c[3]是一個(gè)指向SAYHI的指針,故c[3]+3,使得指向H的位置,故輸出HI;第四個(gè)printf:在第三個(gè)printf并沒(méi)有改變cpp的地址,故cpp依舊是指向cp[2],又cpp[-1][-1]+1=*(*(cpp-1)-1)+1, 故cpp-1,則cpp指向cp[2],故*(cpp-1)=cp[1];此時(shí)的cp[1]是一個(gè)指針,指向c[2],故cp[1]-1是從指向c[2]的指針地址-1, 故是指向c[1],則*(*(cpp-1)-1)=*(cp[1]-1)=c[1],故cpp[-1][-1]+1=*(*(cpp-1)-1)+1=c[1]+1,此時(shí)的c[1]同樣是一個(gè)指針, 故c[1]+1是指向NEW中的E的位置,故輸出EW。 故答案是D。

十二、指針相關(guān)

有以下程序段: char *p, *q; p = (char *)malloc(sizeof(char) * 20); q = p; scanf(%s %s”, p, q); printf(%s %s\n”, p, q); 若從鍵盤輸入:abc def↙,則輸出結(jié)果是( ) A def def B abc def C abc d D d d 答案 : A p和q是指向同一地址,故答案肯定是輸出一樣的字符串,輸入字符串后,p q最開(kāi)始指向abc , 當(dāng)輸入def后,開(kāi)始的地址被覆蓋,一起指向def

十三、abs()相關(guān)

math.h的abs返回值() A 不可能是負(fù)數(shù) B 不可能是正數(shù) C 都有可能 D 不可能是0 答案: Cc中的函數(shù)申明為 int abs(int num); 正常情況下, num為0或正數(shù)時(shí),函數(shù)返回num值; 當(dāng)num為負(fù)數(shù)且不是最小的負(fù)數(shù)時(shí)(不要問(wèn)我最小的int類型負(fù)數(shù)是多少), 函數(shù)返回num的對(duì)應(yīng)絕對(duì)值數(shù),即將內(nèi)存中該二進(jìn)制位的符號(hào)位取反,并把后面數(shù)值位取反加一; 當(dāng)num為最小的負(fù)數(shù)時(shí)(即0x80000000),由于正數(shù)里int類型32位表示不了這個(gè)數(shù)的絕對(duì)值,所以依然返回該負(fù)數(shù)。 這就是設(shè)計(jì)這個(gè)庫(kù)函數(shù)的時(shí)候?yàn)槭裁窗逊祷刂翟O(shè)置為int而不是unsigned的原因 ,當(dāng)然如果把返回值設(shè)置為unsigned是不是更加合理呢,這個(gè)也許有更好的解釋,期待...

十四、全局?jǐn)?shù)組、局部數(shù)組賦值相關(guān)

int a[10] = {2,3,5}, 請(qǐng)問(wèn)a[3]及a[3]之后的數(shù)值是什么?()A 不確定的數(shù)據(jù) B 5 C 0 D 0xffffffff 答案: C1、未初始化的全局?jǐn)?shù)組為02、未初始化的局部數(shù)組為隨機(jī)值; 3、初始化部分的全局?jǐn)?shù)組與局部數(shù)組,初始化部分為初始化值,未初始化部分都為0;(不管全集還是局部)

十五、double誤差相關(guān)

以下數(shù)字在表示為double8字節(jié)的雙精度浮點(diǎn)數(shù))時(shí)存在舍入誤差的有()。 A 2的平方根 B 1030次方 C 0.1 D 0.5 E 100 答案: A B CA. 2的平方根,本身就是無(wú)限小數(shù),因此肯定有舍入誤差 B. 1030次方,明顯超出了double的數(shù)據(jù)存儲(chǔ)范圍,故有舍入誤差 C. 0.1不能用2的負(fù)整數(shù)次方來(lái)表示,因此有誤差 D. 0.5 = 2^(-1),因此沒(méi)有誤差 E. 100的二進(jìn)制表示是:0110 0100,因此沒(méi)有誤差總結(jié):小數(shù)點(diǎn)后的位權(quán)應(yīng)該是2的負(fù)數(shù)次方才沒(méi)有誤差,其它的情況都有誤差

總結(jié)

以上是生活随笔為你收集整理的C语言易错题集 第二部的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 激情五月婷婷久久 | 日本天堂网在线 | 久久天天躁狠狠躁夜夜躁2014 | 中文字幕一区二区久久人妻 | 91精品国产91久久久久久吃药 | 欧美成人a交片免费看 | 久久露脸国语精品国产91 | 五月激情丁香网 | 一级特毛片 | 国产精品三级在线观看无码 | 色爱亚洲 | sese欧美| 一区二区国产精品精华液 | 国产在线麻豆精品观看 | 亚洲天天操 | 超碰97国产精品人人cao | 波多野结衣在线免费视频 | 午夜天堂精品久久久久 | 久久中文字幕在线 | 激情视频在线观看免费 | 精品视频导航 | 男人天堂导航 | 中文字幕免费观看 | 色涩网站 | 亚洲国产精品久久久久久6q | 欧美精品在欧美一区二区 | 福利视频免费 | 人妻一区二区三区在线 | 麻豆精品| 天天影视色 | 伊人网国产 | 国产一区99| 老妇女玩小男生毛片 | 久久r视频 | 91麻豆精品国产91久久久无需广告 | 成人精品一区二区三区视频 | 1000亚洲裸体人体 | 91精品国产99 | 欧美肥老妇视频九色 | 国产一二三区免费视频 | 日韩精品五区 | 国产免费福利视频 | 欧美亚洲激情 | 亚洲黄a | 新婚之夜玷污岳丰满少妇在线观看 | 少妇被粗大猛进进出出s小说 | 国产毛片一区二区三区va在线 | 欧美在线日韩在线 | 香港三级韩国三级日本三级 | 国内毛片毛片毛片毛片毛片 | 日韩夜色| 污网在线看 | 日韩怡春院 | 亚洲精品免费在线观看 | 大尺度激情吻胸视频 | 美女扒开尿口给男人看 | 少妇丰满尤物大尺度写真 | 日韩中文字幕一区 | 美女又爽又黄免费 | 毛茸茸free性熟hd | 轮乱| 日韩一区久久 | 久久天天东北熟女毛茸茸 | 雷电将军和丘丘人繁衍后代视频 | 成年女人毛片 | 国产一区二区三区免费观看视频 | 亚洲免费网站 | 91av在| 成人三级做爰av | 少妇2做爰bd在线意大利堕落 | 午夜久久久久久久久 | 西西大胆午夜视频 | 无码人妻丰满熟妇啪啪欧美 | 水蜜桃久久 | 久久成人福利 | 东北老女人av | 裸体av淫导航 | 欧美精品久久久久久久自慰 | 欧美交换国产一区内射 | 蜜桃视频无码区在线观看 | 已满十八岁免费观看全集动漫 | 国产av无码专区亚洲a∨毛片 | 双性懵懂美人被强制调教 | 久久久久亚洲视频 | 国产高清一区二区三区 | 欧美精品乱码久久久久久按摩 | 日韩精品视频中文字幕 | 亚洲欧洲成人精品久久一码二码 | 姐姐你真棒插曲快来救救我电影 | 精品国产乱码 | 精品一区二区三区免费看 | 久草视频在线观 | 免费久草视频 | 亚洲第一免费视频 | 天天噜日日噜 | 我们俩电影网mp4动漫官网 | 成年人视频在线观看免费 | 女人被男人操 | 永久免费观看av |