成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

程序員考試筆記二:C語言數據類型(連載中)

企業動態
程序員考試筆記連載:C語言數據類型

 因為前天老師摸到我們的底的關系,所以今天要補一補前面的基礎部份。他先是列出一個數據類型的表,如下:
 

  上面這個表,基本類型是我們平常用得最多的,包括整型、字符型、實型(浮點型),就從這里最常用的數據類型說起吧。
  說起C語言的數據內容就要說說計算機里存放的數據是究竟怎么一回事,大家應該都知道計算機只可以處理二進制的數吧,因為是硬件的關系(二態器件),這些只能有兩種表示的狀態,所以運用到計算機里就顯得特別有用了。從現在開始我們要知道計算機處理的所有數據都是二進制數,那么他究竟是怎么運算的呢?老師先給一些十進制數轉換為二進制數的幾道題我們做,這些小兒科當然是沒問題啦,很簡單的就做了出來。老師當然知道我們是會做的了,但是其實是想我們在做這些題目的時候找出更簡單的轉換方法。例:
10111012 =
9310 很簡單的就可以計算出來了,我的方法就是傳統的計算方法。它們都有自己的位權,第一位就是20,第二位是21,跟著的都如些類推,將有1的地方乘上該位的數跟著相加起來就等于93了。這里說說其實二進制的次方特別好算,就像我們的內存一樣階梯上去的,1-2-4-8-16-32-64-128-256-512-1024……你知道這規律嗎,如果知道是不是計算起來特別別好辦呢!
  不過老師在這里提出了一個更好的方法,起碼比一個一個加上去也快多了。就是將那個要轉換的數變為全都是1111111,你知道這個數是多少嗎?其實就是有一技巧在里面,把它看成10000000 1吧!那么是不是很快就知道10000000是多少呢,沒錯就是128嘛,再減1就是127了,在些基礎上試著將原來的那個二進制數位為零的那兩個數求出來,第一個零在第二位,所以是2,第二個零在第六位,所以是32,將其加起來被127減去就可以得出93了,是不是很簡單方便呢(學到東西快交學費啊,哈哈~!)。你知道計算機里二進制有什么幾種運算嗎?我在這里告訴你,其實就只有這么的一種,就是加法運算(你不要告訴我你連二進制的加法也不會運算,其實就是蓬二制一嘛)。為什么這樣說呢?其實二進制也有減法運算和乘除,但是計算機里有一種叫補碼的方法,可以將減法運算變為加法運算,至于怎么實現教師也沒有再深入講下去了(在些補充,乘法也是利用移位來實現轉為加法的)。
  現在轉入到C語言的整型數據里,C語言的整型數據是2字節的,就是16位,最多可以存儲65536,他的范圍是 -32768 32767 C語言里分有符號類型和無符號類型,如果是沒有符號的整數類型的范圍就是0 65535 了。關于字符型數據,如果嚴格來說C語言里根本沒有字符這種類型,因為他所存儲的是它的ASCII碼。直接可以用來和其它的數據類型運算,比如:

main()
{
  char s='A';
  
int i=2;
  
s=s+i;
  printf("%d",s); /*這里可以直接輸出其ASCII
*/
  printf("%c",s); /*這里的結果因為上面的語句改變了字符s的字符,輸出的是
'C'*/
}
  那么更不要說字符串了,所以字符串在C語言里也只是用數組來表示,和其它的高級語言不同,有其的字符串類型,而且還是字符和字符串結合在同一種類型里。現在該說一下實型數據了,字型類型通常用在有小數位的一些數據。就像這題一樣:

S=1/1+1/3-1/5+1/7……1/2n-1

這個程序是我寫的:
main()
{
  int n,i,s;
  
int r=1;
  
printf("please input: ";
  
scanf("%d",&n);
  
for(i=1;i<=n;i++)
  
{
    
s=s+r/(2*i-1);
    
r=-1*r;
  
}
  
printf("%d",s);
}#p#

這個是考試里的:
void fun(float *sn, int n)
{
  float s=0.0,w,f=-1.0;
  
int i=0;
  
for(i=0;i  {
    f=___*f; /*這里填
-1 */
    
w=f / (2*i+1);
    
s+=w;
  
}
  ____=s; /*這里填
*sn */
}

  考試里的兩個空我都做對了,可是自己寫的那個程序就有大問題了,就是答案用了整型數據,從答可知答案應該是小數啊,真的一時的糊涂就可以至命啊!我們幾乎所有人都是錯了這點,當然也要另類的錯法,就是用回來以前QB的一些運算符,^ 這個是QB里的次方運算符,這可真的鬧出笑話了。之后是要我們編一個主函數來調用這個函數。

我是我做的
main()
{
  float s;
  
int n;
  
printf("please input:";
  
scanf("%d",&n);
  
fun(&s,n);
  
printf("%f",s);
}

  這是這么幾條簡單的語句,不過就難道了幾乎所有人(除了我)。你知道他們的答案嗎?讓我給大家展示出來吧

main()
{
  
float *ss;
  
int n;
  
printf("Please input:";
  
scanf("%d",&n);
  fun(*ss,n); /*這里出了問題*

  printf("%f",*ss);
}

  他可以還沒有了解到C語言里的函數參數的問題吧,既沒有定義一個可以存放結果的變量,參數方面也用錯了,如果真的要用指針也得要指針指向一個存儲單元才行吧。而且還不是傳了地址,他而是試圖傳一個指針指向單元進函數里,這是絕對錯誤的。因為該調用的函數是地址,好了,下面給他的程序更正一下。如下:

main()
{
  float *ss,s; /*這里多定義一個單精度的變量
*/
  
int n;
  
ss=&s;
  
printf("Please input:";
  
scanf("%d",&n);
  fun(*ss,n); /*這里出了問題
*
  
printf("%f",*ss);
}

  好了,就這樣這條程序就完全正確了,不過要是為了節省空間就用我寫的那條吧,因為不要多開消一個指針變量。今天寫得特別的長,也特別的嗅,望大家見諒了。

【專題鏈接】

  1. 程序員考試筆記一:C語言字符比較函數填空題(連載中)
責任編輯:丁小雨 來源: 菊花論壇
相關推薦

2009-01-10 23:38:16

程序員考試筆記

2009-01-19 19:18:44

程序員考試筆記

2009-01-08 21:21:45

程序員筆記

2009-01-08 21:25:51

程序員筆記

2009-01-16 19:49:49

程序員考試數組指針

2009-01-07 21:03:53

程序員循環語句

2009-01-07 21:00:05

2012-03-06 09:22:46

程序員

2010-01-14 18:07:30

C++語言

2013-11-28 11:29:39

2013-01-17 10:18:02

程序員

2011-05-24 17:20:57

程序員

2010-01-14 13:24:49

CC++語言

2012-11-08 09:49:30

C++Java程序員

2025-04-03 12:30:00

C 語言隱式類型轉換代碼

2013-12-13 13:38:32

C程序員

2013-04-28 11:03:41

編程語言程序員私有云

2011-08-04 15:14:39

Objective-C 數據類型

2016-03-25 11:57:23

Java程序員C++

2010-01-20 09:54:27

C++數據類型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕日韩欧美一区二区三区 | 国产成人免费 | 黄网站在线播放 | 久久久www成人免费无遮挡大片 | 久久久久高清 | 精品国产欧美一区二区三区成人 | 日本五月婷婷 | 99自拍视频| 四虎在线观看 | 久久99精品久久久97夜夜嗨 | 亚洲精品一| 九九亚洲 | 中文字幕一区二区三区四区五区 | 国产亚洲一区二区精品 | 国产一区不卡 | 91精品国产综合久久精品图片 | 欧美另类视频在线 | 欧美一区二区在线视频 | 国产欧美日韩 | 国产中文原创 | 国产精品久久久久久久久图文区 | 五十女人一级毛片 | 欧美日韩手机在线观看 | 中文字幕伊人 | 日本高清不卡视频 | 日本高清中文字幕 | 91九色在线观看 | 国产精品一区二区三区四区 | 国产1页| 黄色大片在线视频 | 91视视频在线观看入口直接观看 | 欧区一欧区二欧区三免费 | 91视频在线看 | 中文字幕97 | 欧美乱人伦视频 | 国产精品久久久久久久久免费相片 | 精品综合 | 日本三级在线 | 欧美日韩网站 | 久久之精品 | 欧美精品国产精品 |