国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

南京郵電大學(xué)通達(dá)學(xué)院 高級(jí)語言程序設(shè)計(jì)(C語言) 題庫(kù)選擇、填空、讀程序題答案及解析、程序填空答案、編程題答案及代碼作用的概括性說明

這篇具有很好參考價(jià)值的文章主要介紹了南京郵電大學(xué)通達(dá)學(xué)院 高級(jí)語言程序設(shè)計(jì)(C語言) 題庫(kù)選擇、填空、讀程序題答案及解析、程序填空答案、編程題答案及代碼作用的概括性說明。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

關(guān)于概念的問題不做解析,都是死東西,也解析不了

選擇題(94題)

 1 、以下關(guān)于源程序與目標(biāo)程序的關(guān)系,不正確的是 (  ) 。
     A 、  用機(jī)器語言編寫的源程序就是目標(biāo)程序
     B 、  用匯編語言編寫的源程序需要經(jīng)過匯編程序匯編為目標(biāo)程序
     C 、  用 C 語言編寫的源程序需要經(jīng)過編譯程序編譯為目標(biāo)程序
     D 、  C 語言與 Pascal 等其他高級(jí)語言的編譯器是完全一樣的。
     答案:D

?

 2 、以下敘述不正確的是 (  ) 
     A 、一個(gè) C 源程序可由一個(gè)或多個(gè)函數(shù)組成
     B 、一個(gè) C 源程序必須包含一個(gè) main 函數(shù)
     C 、C 程序的基本組成單位是函數(shù)
     D 、在 C 程序中, 自定義函數(shù)的定義需要在主函數(shù) main 體內(nèi)定義
     答案:D
     解析:這是一個(gè)算“1~100的和”的程序,可以看到,自定義函數(shù)sum的定義沒有在main里。
           #include<stdio.h>
           int sum();
           int main()
           {
       	       int S = sum();
         	   printf("1~100的和為:%d",  S);
    	       return 0;
           }
           int sum()
           {
               int a = 1, sum = 0;
         	   for ( a=1;a <= 100; a++)
       	       {
       		      sum += a;
        	   }
         	   return sum;
           }

?

 3 、“程序存儲(chǔ)思想”的提出者是 (  ) 。
     A 、Dennis M. Ritchie                 B 、Alan Turing
     C 、John Von Neumann                  D 、Ken Thompson
     答案:C`

?

 4 、  計(jì)算機(jī)直接能識(shí)別的是 (  ) 的代碼。
     A 、二進(jìn)制     B 、八進(jìn)制      C 、十進(jìn)制     D 、十六進(jìn)制
     答案:A

?

 5 、  計(jì)算機(jī)存儲(chǔ)的都是二進(jìn)制信息,信息存儲(chǔ)的最小單位是 (  ) 。
     A 、字節(jié) (byte )           B 、二進(jìn)制位 (bit)
     C 、字 (word)              D 、雙字
     答案:B

?

 6 、若計(jì)算機(jī)有 32 根地址總線,則其存儲(chǔ)器的最大存儲(chǔ)容量可達(dá) (  ) 。
     A 、32MB          B 、32GB            C 、4GB          D 、8GB
     答案:C
     解析:存儲(chǔ)個(gè)數(shù)=2^地址線個(gè)數(shù)
           1根地址總線是2B,32根就是:2^32=(2^10)^3 * 4
                                         =4 * (1024B)^3
                                         =4 * 1024MB
                                         =4G

?

 7 、下列數(shù)據(jù)表達(dá)的數(shù)值與十進(jìn)制77 不相等的是 (  ) 。   
     A 、0x4D          B 、0x4B            C 、0115          D 、1001101  
     答案:B
     解析:A:這是16進(jìn)制,0x4D=4*16+13=77
           B:這是16進(jìn)制,0x4B=4*16+11=75
           C:這是8進(jìn)制,0115=1*8^2+1*8+5=77
           D:這是2進(jìn)制,1001101=1*2^6+1*2^3+1*2^2+1=77

?

 8 、以下選項(xiàng)中不屬于字符常量的是 (  ) 。
     A 、/C/        B 、”C”          C 、/\x0C/        D 、/\072/
     答案:B
     解析:“C”用的是雙引號(hào),是字符串

?

 9 、在 C 語言中,不同數(shù)據(jù)類型占用內(nèi)存的字節(jié)長(zhǎng)度是 (  ) 。
     A 、相同的  B 、由用戶自己定義的  C 、任意的  D 、與編譯環(huán)境有關(guān)的 
     答案:D

?

 10 、C 語言中,“\x5d ”在內(nèi)存中占用的字節(jié)數(shù)是 (  ) 。
     A 、2          B 、5          C 、4          D 、 1
     答案:A
     解析:用" "括起來的說明它是一個(gè)字符串,任何一個(gè)合法字符串都是以'\0'結(jié)尾的,
           第一個(gè)字節(jié)是"\x5d"的ASCII碼字符,第二個(gè)字節(jié)是字符串結(jié)束符'\0',
           '\0'是系統(tǒng)自動(dòng)加上去的。

?

 11、C 語言 short 型數(shù)據(jù)占 2 個(gè)字節(jié),則 unsigned short 型數(shù)據(jù)的取值范圍是 (  ) 。
     A 、2~255        B 、0~65535            C 、-256~255          D 、-32768~32767
     答案:B

?

 12 、下列哪個(gè)選項(xiàng)屬于 C 語言中的合法字符串常量 (  ) 。
     A 、how are you      B 、”china”          C 、/hello/        D 、$abc$
     答案:B
     解析:”china”用的是雙引號(hào),是字符串

?

 13 、以下哪一個(gè)可以作為正確的變量名 (   ) 。
     A 、3*X                         B 、 filename                      
     C 、for                         D 、  $X
     答案:B
     解析:1.一個(gè)變量名稱可以由數(shù)字、字母、下劃線、美元符號(hào)($) 組成
           2.嚴(yán)格區(qū)分大小寫
           3.不能由數(shù)字開頭,不要使用中文漢字命名
           4.不能是保留字或者關(guān)鍵字
           5.不能有空格

?

 14 、有如下輸入語句:scanf(“x=%d,y=%d”,&x,&y);為使變量 x 的值為 10 ,y 的值為 20, 
      從鍵盤輸入數(shù)據(jù)的正確形式是 (  ) 。
     A 、10 20<回車>                           B 、10 ,20<回車>
     C 、x= 10 ,y=20<回車>                    D 、x= 10 y=20<回車>       
     答案:C
     解析:按照scanf中" "內(nèi)定義的格式輸入

?

 15 、如有下列程序,輸入數(shù)據(jù):12345 678<CR>后,程序輸出的結(jié)果是 (  ) 。
       #include<stdio.h>
       int main( )
       {
           int x;
           double y;
           scanf(“%3d%f”,&x,&y);
           printf(“%d,%f\n ”,x,y);
           return 0;
       }
     A 、12345 ,678.000000                B 、123 ,45.000000
     C 、123 ,不確定的隨機(jī)數(shù)              D 、345 ,678.000000
     答案:B
     解析:"%3d"表示以3位的固定寬度輸出整型數(shù)。
                不足3位,在前面補(bǔ)空格; 超過3位,按實(shí)際位數(shù)輸出
           "%f"表示單精度浮點(diǎn)型,即float,有效位數(shù)為7位,小數(shù)點(diǎn)后6位
     補(bǔ)充:"%lf"表示雙精度浮點(diǎn)型,即double,有效位數(shù)為16位,小數(shù)點(diǎn)后15位。

?

 16 、下列關(guān)于外部變量的說法,正確的是 (   ) 。
     A 、外部變量是在函數(shù)外定義的變量,其作用域是整個(gè)程序
     B 、全局外部變量可以用于多個(gè)模塊,但需用 extern 重新在各模塊中再定義一次 
     C 、全局外部變量可以用于多個(gè)模塊,extern 只是聲明而不是重新定義
     D 、靜態(tài)外部變量只能作用于本模塊,因此它沒有什么實(shí)用價(jià)值
     答案:C

?

 17 、下列 4 組數(shù)據(jù)類型中,C 語言允許的一組是 (    ) 。
     A 、整型、實(shí)型、邏輯型、雙精度型
     B 、整型、實(shí)型、字符型、空類型
     C 、整型、雙精度型、集合型、指針類型
     D 、整型、實(shí)型、復(fù)數(shù)型、結(jié)構(gòu)體類型
     答案:B

?

 18 、下列哪一個(gè)是合法的實(shí)型常量 (   ) 。
     A 、  8E3. 1                     B 、E5                     
     C 、234.                         D 、234
     答案:C
     解析:實(shí)型常量有兩種形式:
           1、小數(shù)形式:小數(shù)形式是由數(shù)字和小數(shù)點(diǎn)組成的一種實(shí)數(shù)表示形式,
                        例如0.123、.123、123.、0.0等。
                        小數(shù)形式表示的實(shí)型常量必須要有小數(shù)點(diǎn)。 
           2、指數(shù)形式:這種形式類似數(shù)學(xué)中的指數(shù)形式。
                        在數(shù)學(xué)中,一個(gè)可以用冪的形式來表示,如2.3026可以表示為0.23026×10^1。
                        在C語言中,則以“e”或“E”后跟一個(gè)整數(shù)來表示以“10”為底數(shù)的冪數(shù),
                                   2.3026可以表示為0.23026E1。
                        字母e或E之前必須有數(shù)字,且e或E后面的指數(shù)必須為整數(shù),
                                                如e3、5e3.6、.e、e等都是非法指數(shù)形式。
                        在字母e或E的前后以及數(shù)字之間不得插入空格。  

?

 19 、設(shè)有說明;char z ;int w ;float y;double x ;則表達(dá)式 w-x +z-y 值的數(shù)據(jù) 類型為 ____。
     A 、  float          B 、char          C 、  int          D 、  double
     答案:D
     解析:兩個(gè)不同類型的運(yùn)算,要轉(zhuǎn)化成同類型的,
            轉(zhuǎn)換從低到高 char-->float-->short-->int-->double

?

 20 、下列運(yùn)算符中,優(yōu)先級(jí)最高的是(  )
     A 、  ()            B 、*    
     C 、==              D 、+=
     答案:A

?

 21 、設(shè) a 、b 、c 都是 int 型變量,且 a=3,b=4,c=5 ,則下列表達(dá)式中值為 0 的是 (   ) 。 
     A 、  ‘a(chǎn)’&&‘b ’                  B 、a<b              
     C 、a||b+c&&b-c                   D 、!(a<b&&!c||1)
    答案:D
    解析:首先要了解一點(diǎn),c語言中,錯(cuò)誤是0,正確是非0。
          邏輯與(&&)要求均為正確(非0)才是正確(非0),否則為錯(cuò)誤(0)
          邏輯或(||)要求有一個(gè)正確(非0)即為正確(非0)
          這東西出題的話一般比較亂,如果沒懂一定要耐心理解
          A:我也沒看懂這是的啥,這打了個(gè)單引號(hào),不知道是不是想表達(dá)這是個(gè)字符的意思,反正是錯(cuò)的
          B:"a<b"是正確的,值為非0
          C:"a||b+c"是兩個(gè)非0量通過邏輯或(||)鏈接,是非0.
             然后"非0"與"b-c"這個(gè)非0量通過邏輯與(&&)鏈接,也是非0
          D:"a<b"為非0; "c"是非0,則"!c"是非"非0",即"0"。
             "非0"與"0"通過邏輯與(&&)鏈接,則為"0"。
             "0"與"1"(非0)通過邏輯或(||)鏈接,則為“非0”,
             之后由于"!"使得"非0"變?yōu)榉?非0",即"0" 

?

 22 、表達(dá)式(int)((double)7/2)-7%2 的值是 (   ) 。
     A 、1                        B 、1.0                         
     C 、2                        D 、2.0
     答案:C
     解析:(double)7/2=3.5
           (int)((double)7/2)-7%2=(int)3.5-1
                                 =3-1
                                 =2

?

 23 、若 d 是 double 型變量,表達(dá)式”d=1,d=5,d++”的值是(  )。
     A 、1.0                        B 、2.0                         
     C 、5.0                        D 、6.0
     答案:C
     解析:逗號(hào)表達(dá)式從左到右執(zhí)行,取最后一個(gè)表達(dá)式的值,
           d++是先用后自增,在表達(dá)式結(jié)束前不起作用,所以d仍為5

?

 24 、以下程序的運(yùn)行結(jié)果是(  ) 
     void main()
     {
         int k=4,a=3,b=2,c= 1;
         printf(“\n%d\n”,k<a?k:c<b?c:a);
     }
     A 、4                        B 、3                        
     C 、2                        D 、 1
     答案:D
     解析:"k<a"錯(cuò)誤,所以計(jì)算"c<b?c:a"。
           "c<b"正確,所以計(jì)算"c",由于c=1,所以結(jié)果為1

?

 25 、表達(dá)式 !(m>0&&n>0)  等價(jià)于(  )
     A 、!(m>0)||!(n>0)                B 、!m>0||!n>0       
     C 、!m>0&&!n>0                    D 、!(m>0)&&!(n>0)
     答案:A
     解析:!(m>0&&n>0)等價(jià)于!(m>0)||!(n>0)

?

 26 、語句 while(!E) ;中的表達(dá)式!E 等價(jià)于(  ) 
     A 、E= =0                                     B 、E!= 1
     C 、E!=0                                     D 、E= = 1
     答案:A
     解析:c語言中除0以外的為非0
               E!=0,所以!E=0

?

 27 、關(guān)于 switch 語句,下列說法中不正確的是 (  ) 。
     A 、case 語句必須以 break 結(jié)束                B 、default 分支可以沒有
     C 、switch 后面的表達(dá)式可以是整型或字符型     D 、case 后面的常量值必須唯一 
     答案:A

?

 28 、若要求在 if 后一對(duì)圓括號(hào)中表示 a 不等于 0 的關(guān)系,則能正確表示這一關(guān)系的表達(dá)式為(  )
     A 、  a<>0                   B 、  !a              
     C 、  a=0                    D 、  a
     答案:D
     解析:a本來就是非0,不需要其他修飾

?

 29 、以下程序的輸出結(jié)果是(  )
      #include<stdio.h>
      void main()
      {
          int x= 10,y= 10;
          printf("%d %d\n",x--,--y);
      }
     A 、 10 10                    B 、  9 9              
     C 、 9 10                     D 、  10 9
     答案:D
     解析: "x--"是先用后自減,在表達(dá)式結(jié)束前不起作用,所以x仍為10
            "--y"是先自減后用,當(dāng)場(chǎng)就起作用,所以y為10-1=9

?

 30 、設(shè)有如下定義:  int x= 10,y=3,z; 則語句printf("%d\n",z=(x%y,x/y)); 的輸出結(jié)果是(  )
     A 、  1                     B 、  0                   
     C 、  4                     D 、  3
     答案:D
     解析:z=(x%y,x/y)等價(jià)于z=(1,3)
           逗號(hào)運(yùn)算符從左往右,所以z=3

?

 31 、為表示關(guān)系 x ≥y≥z,應(yīng)使用 C 語言表達(dá)式(  )
     A 、  (x>=y)&&(y>=z)                        B 、  (x>=y)AND(y>=z) 
     C 、  (x>=y>=z)                             D 、  (x>=y) & (y>=z)
     答案:A
     解析:"x ≥y≥z"的意思是"x ≥y"并且"y≥z",c語言沒有"x>=y>=z"這種寫法

?

 32 、C 語言中非空的基本數(shù)據(jù)類型包括(  )
     A 、  整型,實(shí)型,邏輯型         B 、  整型,實(shí)型,字符型
     C 、  整型,字符型,邏輯型       D 、  整型,實(shí)型,邏輯型,字符型
     答案:B

?

 33 、若 x 和 y 都是 int 型變量,x= 100,y=200,且有下面的程序片段:    
      printf("%d",(x,y)); 上面程序片段的輸出結(jié)果是(  )
     A 、200                                        B 、100
     C 、  100 200                                  D 、  輸出格式符不夠,輸出不確定的值
     答案:A
     解析:逗號(hào)運(yùn)算符,從左向右,%d先是代表x,之后x又被y頂替

?

 34 、閱讀下面的程序 
      #include<stdio.h>
      void main()
      {
           char ch;
           scanf("%3c",&ch);
           printf("%c",ch);
      }

      如果從鍵盤上輸入
      abc<回車>
      則程序的運(yùn)行結(jié)果是(  )
     A、 a                              B、 b                
     C、 c                              D、  程序語法出錯(cuò)
     答案:A
     解析:"char ch"輸入的是字符,輸入三個(gè)字符,輸出一個(gè)字符,"abc"輸出就是"a"

?

 35 、閱讀下面的程序 
      #include<stdio.h> 
      void main()
      {
           int i,j;
           i=010;
           j=9;
           printf("%d,%d",i-j,i+j);
      }
      則程序的運(yùn)行結(jié)果是(  )
     A 、  1, 19              B 、  - 1, 19            
     C 、  1, 17              D 、  - 1, 17
     答案:D
     解析:"i=010"是一個(gè)八進(jìn)制的數(shù),所以i=1*8^1+0=8
           所以i-j=8-9=-1;i+j=8+9=17

?

 36 、閱讀下面的程序 
      #include<stdio.h> 
      void main()
      {
           int i,j,m,n;
           i=8;j=10;
           m=++i;
           n=j++;
           printf("%d,%d,%d,%d",i,j,m,n);
      }
     程序的運(yùn)行結(jié)果是(  )
     A 、  8, 10,8, 10                         B 、  9, 11,8, 10
     C 、  9, 11,9, 10                         D 、  9, 10,9, 11
     答案:C
     解析:先定義"i=8;j=10;",之后"m=++i;",由于自增(++)在前,先加后用,所以m=8+1=9,同時(shí)i=8+1=9
           然后"n=j++;",由于自增(++)在后,先用后加,所以n=10,同時(shí)j=10+1=11

?

 37 、若已定義 int a,則表達(dá)式 a= 10,a+ 10,a++的值是(  )
     A 、  20                  B 、10                   
     C 、  21                  D 、11
     答案:B
     解析:逗號(hào)運(yùn)算符從左向右看,首先"a= 10",定義a 的值
           然后"a+ 10"雖然值為10+10=20,但是a值本身不變
           最后"a++"由于自增(++)在后,先用后加,"a++"的值仍然是10,這行代碼結(jié)束,a的值才為11

?

 38 、閱讀下面的程序 
      #include<stdio.h> 
      void main()
      {
           int i,j;
           scanf("%3d%2d",&i,&j);
           printf("i=%d,j=%d\n",i,j);
      }
     如果從鍵盤上輸入 1234567<回車>,則程序的運(yùn)行結(jié)果是(  )
     A 、  i=123,j=4567                  B 、  i=1234,j=567
     C 、  i=1,j=2                       D 、  i=123,j=45
     答案:D
     解析:i取3位,j取2位,輸入1234567,則i=123,j=45

?

 39 、下面程序的輸出結(jié)果是(  )
      #include<stdio.h>
      void main()
      {
           int a=-1, b=4, k;
           k=(++a<=0)&&(b--<=0);
           printf("%d,%d,%d\n",k,a,b);
      }
     A 、  1, 1,2            B 、  1,0,3       
     C 、  0, 1,2            D 、  0,0,3
     答案:D
     解析:"++a<=0",a先加后用,是對(duì)的;"b--<=0",b先用后減,是錯(cuò)的,以邏輯與(&&)鏈接,所以"k=0"
           同時(shí),代碼k=(++a<=0)&&(b--<=0);結(jié)束前“a=0,b=4”,結(jié)束后“a=0,b=3”
           所以k=0,a=0,b=3

?

 40 、C  語言中規(guī)定函數(shù)的返回值的類型是由(  )
     A 、return  語句中的表達(dá)式類型所決定的
     B 、調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型所決定的
     C 、調(diào)用該函數(shù)時(shí)系統(tǒng)臨時(shí)決定的
     D 、在定義該函數(shù)時(shí)函數(shù)首部所指定的函數(shù)返回類型所決定的
     答案:D

?

 41 、對(duì)于 C 語言的函數(shù),下列敘述中正確的是(  )
     A 、函數(shù)的定義不能嵌套,但函數(shù)調(diào)用可以嵌套
     B 、函數(shù)的定義和調(diào)用都不能嵌套
     C 、函數(shù)的定義可以嵌套,但函數(shù)調(diào)用不能嵌套
     D 、函數(shù)的定義和調(diào)用都可以嵌套
     答案:A

?

 42 、若函數(shù)調(diào)用時(shí)的實(shí)參為變量,以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是(  ) 
     A 、函數(shù)的實(shí)參和其對(duì)應(yīng)的形參共占用同一存儲(chǔ)單元
     B 、形參只是形式上的存在,不占用具體存儲(chǔ)單元
     C 、函數(shù)的形參和實(shí)參分別占用不同的存儲(chǔ)單元
     D 、同名的實(shí)參和形參占用同一存儲(chǔ)單元
     答案:C

?

 43 、下面關(guān)于靜態(tài)局部變量的描述,不正確的是(  )
     A 、靜態(tài)局部變量只被初始化一次
     B 、靜態(tài)局部變量作用域?yàn)檎麄€(gè)程序
     C 、靜態(tài)局部變量生命期為整個(gè)程序
     D 、靜態(tài)局部變量作用域?yàn)楫?dāng)前函數(shù)或語句塊
     答案:B

?

 44 、若主函數(shù)有變量定義:int x= 1; double y=2.3;  
      且有合法的函數(shù)調(diào)用語句 f (y, x);  則下列關(guān)于函數(shù) f 的原型聲明中一定錯(cuò)誤的是(  )
     A 、void f(double, int);
     B 、int f(int, int);
     C 、int f(double, double);
     D 、void f(double, int, int);
     答案:D
     解析:通過強(qiáng)制類型轉(zhuǎn)換,A、B、C都是可行的,
           D:多定義一個(gè)數(shù),是錯(cuò)的

?

 45 、關(guān)于作用域的描述,下列哪一種說法是正確的(  )
     A 、形式參數(shù)的作用域一定是它所在的整個(gè)函數(shù)
     B 、全局變量的作用域一定是整個(gè)程序
     C 、局部變量的作用域一定是整個(gè)函數(shù)
     D 、靜態(tài)局部變量的作用域不僅限于本函數(shù)
     答案:A

?

 46 、以下一維數(shù)組定義語句中,錯(cuò)誤的是(  )
     A 、int a[]={1,2,3,4} ;
     B 、char a[5];
     C 、char str[6]= "test";
     D 、int n=5,a[n];
     答案:D
     解析:D想表達(dá)的應(yīng)該的定義一個(gè)五位的一維數(shù)組,正確寫法為int a[5];

?

 47 、若有說明:int a[ 10];則對(duì) a  數(shù)組元素的正確引用是(  )
     A 、a[ 10]
     B 、a[3.5]
     C 、a(5)
     D 、a[10- 10]
     答案:D
     解析:定義的是一個(gè)十位的一維數(shù)組,但是引用時(shí)要注意,第一位是a[0],第二位才是a[1]
             A:引用時(shí)a[10]指向的是第11位,越位了,錯(cuò)誤
             B:第4.5位是啥,沒有這個(gè)東西,錯(cuò)誤
             C:數(shù)組是中括號(hào),不是小括號(hào),錯(cuò)誤
             D:a[10-10],即a[0],正確

?

 48 、以下不能對(duì)二維數(shù)組 a 進(jìn)行正確初始化的語句是(  )
     A 、int a[2][3]={0};
     B 、int a[][3]={{1,2}, {0}};
     C 、int a[2][3]={{1,2}, {3,4}, {5,6}};
     D 、int a[][3]={1,2,3,4,5,6};
     答案:C
     解析:二位數(shù)組第一個(gè)中括號(hào)表示列數(shù),第二個(gè)表示行數(shù)
           A:全部定義為"0"
           B:可以只對(duì)部分元素賦值,未賦值的元素自動(dòng)取"0"值。例如:
              int a[3][3] = {{1}, {2}, {3}};
              賦值后各元素的值為:
              1  0  0
              2  0  0
              3  0  0
           C:定義是兩行三列,賦值時(shí)卻是三行兩列
           D:如果對(duì)全部元素賦值,那么第一維的長(zhǎng)度可以不給出。
              例如:
              int a[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
              可以寫為:
              int a[][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};

?

 49 、以下對(duì)二維數(shù)組 a 定義正確的是(  )
     A 、int a[3][];
     B 、float a(3,4);
     C 、double a[ 1][4];
     D 、float a(3)(4);
     答案:
     解析:A:這個(gè)語句試圖定義一個(gè)擁有3行而列數(shù)不固定的二維數(shù)組,
             但編譯器要求多維數(shù)組的除最高維度外的每個(gè)維度必須為已知量,因此這句話不能通過編譯。
             行可以省略,但是列不能省略。
             int a[][3]合法,但int a[3][]不合法
           B:中括號(hào),不是小括號(hào),而且第一維和第二維放在同一個(gè)括號(hào)里
           D:中括號(hào),不是小括號(hào)

?

 50 、如下程序執(zhí)行后輸出為(  )
      #include<stdio.h>
      int main( )
      {
           static int a[3][3];
           int i, j;
           for(i=0;i<3;i++)
           for(j=0;j<3;j++)
           a[i][j]=a[j][i]+i*j;
           printf("%d, %d", a[1][2], a[2][1]);
           return 0;
      }
     A 、2,2                B 、2,4                
     C 、4,2                D 、不確定,  不確定
     答案:B
     解析:數(shù)組里如果沒有數(shù)當(dāng)作"0"
          這組代碼的結(jié)果是:
           0  0  0
           0  1  4
           0  2  4

?

 51 、以下程序給數(shù)組所有元素輸入數(shù)據(jù),填入(  )能完成該功能。
      #include<stdio.h>
      int main ( )
      {
           int array [5], i=0;
           while (i<5)
           scanf("%d", __________ ) ;
           return 0;
      }
     A 、&array[i++]            B 、&array[i+1]          
     C 、array+i                D 、&array[++i]
     答案:A
     解析:i的初值為0,一維數(shù)組array[s]的第一位是array[0],所以i要先用后增

?

 52 、若有函數(shù)原型:double f(int, double); ,
      主函數(shù)中有變量定義:int x= 1; double m= 11.6,n;下列主函數(shù)中對(duì)f函數(shù)的調(diào)用錯(cuò)誤的是 (   ) 
     A 、n=f(x, m+2);                                 B 、printf(“%lf”,f(x+2, 23.4));
     C 、f(x,m);                                      D 、m=f(x);
     答案:D
     解析:D:少一個(gè)數(shù),正確寫法同A

?

 53 、表達(dá)式____ 的值不是 1。
     A 、4<0?0:1                                              B 、5>=1
     C 、!EOF                                                  D 、!NULL
     答案:C
     解析:A:4<0,是錯(cuò)的,所以值為后者,為1
           B:5>=1,是對(duì)的,所以值為1
           C:EOF指文件結(jié)束,邏輯不通
           D:NULL是一個(gè)未知值,同時(shí)NULL 不等于0,也不是’'(空字符串),所以!NULL的值為1

?

 54 、有如下函數(shù)調(diào)用語句  func(rec1,rec2+rec3,(rec4, rec5));
      該函數(shù)調(diào)用語句中,含有的實(shí)參個(gè)數(shù)是 (   ) 。
     A 、3                       B 、4                                   
     C 、5                       D 、有語法錯(cuò)誤
     答案:A
     解析:"(rec4, rec5)"是逗號(hào)運(yùn)算符,取最后的為值
               三個(gè)實(shí)參分別為:rec1
                               rec2+rec3
                               (rec4, rec5)

?

 55 、以下有關(guān)函數(shù)的形參和實(shí)參的說法中正確的是(  )
     A 、實(shí)參和與其對(duì)應(yīng)的形參各占用一個(gè)字節(jié)存儲(chǔ)單元
     B 、只有當(dāng)實(shí)參和與其對(duì)應(yīng)的形參同名時(shí)才占用一個(gè)存儲(chǔ)單元
     C 、形參是虛擬的,不占用存儲(chǔ)單元
     D 、實(shí)參和與其對(duì)應(yīng)的形參各占用獨(dú)立的存儲(chǔ)單元
     答案:D
     解析:程序運(yùn)行狀態(tài)下,調(diào)用到形參時(shí),會(huì)給形參獨(dú)立的儲(chǔ)存單位。若未運(yùn)行,形參則不會(huì)占用存儲(chǔ)單元。

?

 56 、能正確表示“當(dāng) x 取值在[5,99]和[130 ,180]范圍內(nèi)為真,否則為假”的表達(dá)式是(  )
     A 、(x>=5)&&(x<=99)&&(x>=130)&&(x<=180)
     B 、(x>=5)&&(x<=99)||(x>=130)&&(x<=180)
     C 、(x>=5)||(x<=99)||(x>=130)||(x<=180)
     D 、(x>=5)&&(x<=99)||(x>=130)||(x<=180)
     答案:B
     解析:"當(dāng) x 取值在[5,99]和[130 ,180]范圍內(nèi)"
          意思是:x的值"大于等于5,小于等于99"或"大于等于130,小于等于180"
          所以B選項(xiàng)是對(duì)的

?

 57 、以下錯(cuò)誤的定義語句是(  )。
     A 、int x[][3]={{0}, { 1}, { 1,2,3}};             
     B 、 int x[4][3]={{1,2,3}, { 1,2,3}, { 1,2,3}, { 1,2,3}};
     C 、int x[][3]={1,2,3,4};                         
     D 、int x[4][]= {{1,2,3}, { 1,2,3}, { 1,2,3}, { 1,2,3}};
     答案:D
     解析:D:編譯器要求多維數(shù)組的除最高維度外的每個(gè)維度必須為已知量,因此這句話不能通過編譯。
                      行可以省略,但是列不能省略
                      如果對(duì)全部元素賦值,那么第一維的長(zhǎng)度可以不給出

?

 58 、設(shè)有語句 int a[2][3] ,下面哪一種不能表示元素 a[i][j](  )
     A 、*(a[i]+j)            B 、*(*(a+i)+j)          
     C 、*(a+i*3+j)           D 、*(*a+i*3+j)
     答案:C
     解析:正確表達(dá)方式為A、B、D,可以參考這些選項(xiàng)來理解二維數(shù)組不同的表達(dá)方式
           可以把這幾種表達(dá)記一下

?

 59 、假設(shè)已定義 char a[10], *p;  下面的賦值語句中,正確的是 (     ) 。
     A 、p=a;                          B 、a="abcdef";                
     C 、*p="abcdef";                  D 、p=*a 
     答案:A
     解析:a表示數(shù)組的首地址
           p是一個(gè)指針變量,可以將數(shù)組的首地址賦值給p, 所以p=a;是正確的

?

 60 、下面判斷正確的是________。
     A 、char *a="programming";等價(jià)于 char *a;*a="programming";
     B 、char str[10]={"programming"};等價(jià)于 char str[10]; str[]={"programming"}; 
     C 、char *s="programming";等價(jià)于 char *s; s="programming";
     D 、char *s="programming";等價(jià)于 char s[10];*s="programming";
     答案:B
     解析:這我也不知道咋講,考的是一維數(shù)組的賦值,算是一個(gè)c語言寫法的問題

?

 61 、判斷字符串 str1 是否大于字符串 str2 ,應(yīng)當(dāng)使用(  )
     A 、if(str1>str2)                         B 、if(str1>=str2)
     C 、if(strcpy(str2,str1)>0)               D 、if(stcmp(str1,str2)>0)
     答案:D
     解析:B:strcpy(字符數(shù)組1,字符串2) 
              strcpy是“字符串復(fù)制函數(shù)”。
              作用是:將字符串2復(fù)制到字符數(shù)組1中去。
           D:strcmp() 會(huì)根據(jù) ASCII 編碼依次比較 str1 和 str2 的每一個(gè)字符,
              直到出現(xiàn)不到的字符,或者到達(dá)字符串末尾(遇見\0)。
              返回值:
                如果返回值 < 0,則表示 str1 小于 str2。
                如果返回值 > 0,則表示 str2 小于 str1。
                如果返回值 = 0,則表示 str1 等于 str2。

?

 62 、設(shè) p1和 p2 是指向同一個(gè)字符串的指針變量,c 為字符變量,則以下不能正確執(zhí)行賦值語句的是(  )
     A 、c=*p1+*p2                                B 、p2=c-5
     C 、p1=p2                                    D 、c=*p1*(*p2)
     答案:B
     解析:A:求指針p1和p2指向的地址單元中存放的數(shù)據(jù)相加的值
           B:c是字符變量 p2是指針變量,指針變量只能付地址,改為p2=&c成立
           C:p1=p2是給一個(gè)變量賦值,使得p1原來的值被覆蓋
           D:求指針p1和p2指向的地址單元中存放的數(shù)據(jù)相乘的值

?

 63 、設(shè)變量定義為 int x, *p=&x,  則&*p 相當(dāng)于(  )
     A. &x                     B. *p              
     C. x                      D. *&x
     答案:A
     解析:*p=&x 是內(nèi)存(位置:地址p)的內(nèi)容= x的內(nèi)存地址
           可以嘗試這樣理解:因?yàn)?p = &x
                                 *p = *&x
                                 &*p = &*&x
                                 一個(gè)*和一個(gè)&抵消了,因此&*&x = &x

?

 64 、若有語句int *point,i=4; 和point=&i,下面均代表地址的是 ()
     A. i, point,*&i                             B.&*i,&i,*point
     C. *&point,*point,&i                        D. &i ,&*point,point
     答案:D

?

 65 、已知 a 是 int 型變量,則(  )是對(duì)指針變量的正確定義和初始化。
     A.int *p=a                     B. int *p=*a             
     C. int *p=&a                   D. int p=&a
     答案:D

?

 66 、執(zhí)行下面的程序段后,變量 ab 的值是(  )
       int *var,ab=100;
       var=&ab;  *var+=10;  var+=10;
     A. 110                     B. 100              
     C. 0                       D. 120
     答案:A
     解析:"var=&ab"的意思是var=ab的地址
           " *var"的意思是取ab的地址所指向的值," *var+=10"等價(jià)于ab+=10
           "var+=10"由于var=ab的地址,所以此代碼無意義
           所以ab=(*var+=10)
                 =*var+10;
                 =ab+10
                 =100+10
                 =110

?

 67 、設(shè)有定義和賦值:int a[10]={0,1,2,3,4,5,6,7,8,9}, *p; p=a+1;  
      則能表示數(shù)組a中值為5的元素的表示式為(  )
     A. a[4]                     B. *(p+4)              
     C. a+5                      D. *p[5]
     答案:B
     解析:可以看一下T58的3個(gè)正確選項(xiàng),把行直接刪了就是一維數(shù)組
           a中值為5的元素在第6位
           A:改為a[5]
           B:以為p=a+1,所以 *(p+4)等價(jià)于 *(a+5),正確
           C、D:意義不明的代碼

?

 68 、int a[5][4],  對(duì)于第 i 行j 列元素值引用正確的是(  )
     A. *(*(a+i)+j)                     B. (a+i)[j]              
     C. *(a+i+j)                        D. *(a+i)+j
     答案:A
     解析:見T58,B選項(xiàng)

?

 69 、int a[5][4],  對(duì)于第 i 行j 列元素值引用正確的是(  )
     A. *(*(a+i)+j)                     B. (a+i)[j]              
     C. *(a+i+j)                        D. *(a+i)+j
     答案:A
     解析:見T58,B選項(xiàng),和68題是一樣的,我沒有打錯(cuò)啊

?

 70 、若有定義 int (*p)[4],  則標(biāo)識(shí)符 p 表示(  )
     A.  是一個(gè)指向整型變量的指針                              B.  是一個(gè)指針數(shù)組名
     C.  是一個(gè)行指針,指向一個(gè)含有 4 個(gè)整型元素的一維數(shù)組      D.  定義不合法
     答案:C
     解析:代碼含義問題,請(qǐng)自行搜索

?

 71 、下列程序段的輸出結(jié)果為(  )
      void fun(int *x, int *y)
      {    
           printf("%d %d", *x, *y);
           *x=3;
           *y=4; 
      }
      void main( )
      {      
           int x=1, y=2;
           fun(&y,&x);
           printf("%d %d",x,y);
      }
     A. 2 1 1 2                     B. 1 2 1 2              
     C. 1 2 3 4                     D. 2 1 4 3
     答案:D
     解析:fun(&y, &x)把y的地址傳遞給x,把x的地址傳遞給y,
           即運(yùn)行到printf("%d %d",*x,*y);時(shí)x=2,y=1;
           *x=3;*y=4;給x,y賦值時(shí),由于fun(&y, &x)交換了傳遞位置,
           把y的地址傳遞給x,把x的地址傳遞給y,所以運(yùn)行到x=3;*y=4時(shí),
           主函數(shù)中的x=4,y=3

?

 72 、若有定義和語句:char s[ 10]; s="abcd"; printf("%s\n",s);  ,則結(jié)果是(  )
     A.  輸出 abcd                     B.  輸出 a               
     C.  輸出 abcd(有空格)             D.  編譯不通過
     答案:D
     解析:這里的s是一個(gè)數(shù)組包含10個(gè)char的首地址,它只可以在初始化的時(shí)候用
           char s[10]="abcd";
           char s[]="abcd";
           char *s="abcd";
           這三種寫法都是對(duì)的,但是都是初始化的時(shí)候使用

?

 73 、當(dāng)用戶輸入的字符串中含有空格時(shí),應(yīng)使用 (  )函數(shù)讀入字符串。
     A. scanf                    B. gets              
     C. getchar                  D. getc
     答案:B

?

 74 、將兩個(gè)字符串 s1 和 s2 連接起來,正確的函數(shù)是 ( )
     A. strcpy(s1,s2)                  B. strcat(s1,s2)              
     C. strcmp(s1,s2)                  D. strlen(s1,s2)
     答案:B
     解析:A:將s2復(fù)制到s1
           B:連接s1與s2
           C:比較s1與s2大?。ò碅SCII碼值大小比較),直到出現(xiàn)不同的字符或遇到"\0"為止
              s1=s2,返回0
              s1>s2,返回一個(gè)正整數(shù)
              s1<s2,返回一個(gè)負(fù)整數(shù)
           D:計(jì)算字符串長(zhǎng)度
              格式:strlen(字符數(shù)組);

?

 75 、12.  設(shè)有如下程序段:char s[20]="beijing",*p; p=s;  ,則以下敘述正確的是 ( )
     A.  可以用*p 表示 s[0]            
     B. s 數(shù)組中元素的個(gè)數(shù)和 p 所指字符串長(zhǎng)度相等
     C. s 和 p 都是指針變量            
     D.  數(shù)組 s 中的內(nèi)容和指針變量 p 中的內(nèi)容相等
     答案:A

?

 76 、有以下函數(shù)
      #include<stdio.h>
      int main( )
      { 
           char a[20],b[20],c[20];
           scanf("%s%s",a,b);
           gets(c);
           printf("%s%s%s\n",a,b,c);
           return 0;
      }
      程序運(yùn)行時(shí)輸入 this is a cat!<回車> ,則輸出結(jié)果是 ( )
     A. thisisacat!;                  B. this is a              
     C. thisis a cat!                 D. thisisa cat!
     答案:C
     解析:scanf按%s將數(shù)據(jù)賦值分別給a、b,但是scanf碰到空格就認(rèn)為字符串結(jié)束,
           于是字符串?dāng)?shù)組a被賦值"this",b被賦值"is",剩下“ a cat!”
           這個(gè)部分是用gets函數(shù)來接收的,而gets函數(shù)碰到空格不會(huì)認(rèn)為字符串結(jié)束
           會(huì)全部賦值給c,于是c的內(nèi)容是“ a cat!”
           然后printf輸出,就組成了"thisis a cat!"

?

 77 、以下不能正確對(duì)字符串初始化的語句是 ( )
     A. char str[]={"good!"};        B. char *str="good";
     C.char str[5]="good!";          D. char str[6]={'g','o','o','d',' !','\0'};
     答案:C
     解析:str只給了5個(gè)字符的空間,但"good!"需要6個(gè)字符(有一個(gè)是結(jié)束符)
           A、B會(huì)自動(dòng)計(jì)算字符串所需的空間
           D是以字符數(shù)組來看待str,而非字符串方式

?

 78 、以下敘述正確的是(  )
     A. C 語言允許 main 函數(shù)帶參數(shù),且參數(shù)的個(gè)數(shù)和形參名均可由用戶任意指定
     B. C 語言允許 main 函數(shù)帶參數(shù),形參名只能是 argc 和 argv
     C.  當(dāng) main 函數(shù)帶有形參時(shí),傳給形參的值一般從命令行得到
     D.  若有說明:int main(int argc, char *argv),  則形參 argc 的值必須大于 1
     答案:C

?

 79 、對(duì)于一個(gè)聯(lián)合類型的變量,系統(tǒng)分配的存儲(chǔ)空間是(  )
     A 、第一個(gè)成員所需的存儲(chǔ)空間           B 、最后一個(gè)成員所需的存儲(chǔ)空間
     C 、 占用空間最大的成員所需的存儲(chǔ)空間   D 、所有成員存儲(chǔ)空間的總和
     答案:C

?

 80 、以下有關(guān)宏替換的敘述不正確的是(  )
     A 、宏替換不占用運(yùn)行時(shí)間        B 、宏名無類型
     C 、宏替換只是字符替換          D 、宏名不能用小寫字母表示
     答案:D

?

 81 、函數(shù) f 定義如下,執(zhí)行語句“sum=f(5)+f(3);”后,sum 的值應(yīng)為(  ) 
      int f(int m)
      {
           static int i=0; int s=0;
           for(;i<=m;i++) 
             s+=i; return s;
      }
     A 、  21                    B 、  16                    
     C 、  15                    D 、  8
     答案:C
     解析:先計(jì)算f(5),題干的for循環(huán)意思是從0到m的數(shù)的和,先得出f(5)=15
           然后計(jì)算f(3)時(shí),由于i在計(jì)算f(5)時(shí)不斷自增到了6,
           所以for循環(huán)中的i<=m這一條件未達(dá)到,
           不會(huì)開始循環(huán),所以f(3)=0
           所以sum=f(5)+f(3)
                  =15+0
                  =15

?

 82 、聲明語句為“int a[3][4];”,下列表達(dá)式中與數(shù)組元素a[2][1]等價(jià)的是(  )
     A 、*(a[2]+1)                            B 、a[9]
     C 、*(a[ 1]+2)                           D 、*(*(a+2))+1
     答案:A
     解析:見T58

?

 83 、宏定義#define G 9.8  中的宏名 G 表示 (  )
     A 、一個(gè)單精度實(shí)數(shù)       B 、一個(gè)雙精度實(shí)數(shù)
     C 、一個(gè)字符串           D 、不確定類型的數(shù)
     答案:C

?

 84 、在定義一個(gè)結(jié)構(gòu)體變量時(shí),系統(tǒng)分配給它的內(nèi)存是(  )
     A 、結(jié)構(gòu)體中第一個(gè)成員所需內(nèi)存量
     B 、結(jié)構(gòu)體中最后一個(gè)成員所需內(nèi)存量
     C 、成員中占內(nèi)存量最大者所需內(nèi)存量
     D 、各成員所需內(nèi)存量的總和
     答案:C

?

 85 、根據(jù)下面的定義,能打印出字母"M"的語句是(  )
      struct person
      {
           char name[9] ;int age;
      };
      struct person class[10]=
           {
                {"John" ,17},{"Paul" ,19} ,{"Mary" ,18} ,{"Adam" ,16 }
           };
     A 、printf("%c\n" ,class[3] .name );
     B 、printf("%c\n" ,class[3] .name[l]);
     C 、Printf("%c\n" ,class[2] .name[l]);
     D 、printf("%c\n" ,class[2] .name[0]);
     答案:D
     解析:調(diào)用數(shù)組時(shí),
           class[0]對(duì)應(yīng){"John" ,17}       class[2]對(duì)應(yīng){"Mary" ,18}
           class[1]對(duì)應(yīng){"Paul" ,19}       class[3]對(duì)應(yīng){"Adam" ,16 }
           帶有"M"的只有class[2]對(duì)應(yīng)的{"Mary" ,18}
           由于題干函數(shù)在一維數(shù)組class中嵌套了name數(shù)組,
           所以“M”在class[2]中的name[0]處

?

 86 、設(shè)有以下結(jié)構(gòu)體定義: 
      struct emproyer
      {
           char name[8] ;int age;char sex;
      }staff;
      則下面的敘述不正確的是(  )
     A 、struct 是結(jié)構(gòu)體類型的關(guān)鍵字
     B 、struct emproyer 是用戶定義的結(jié)構(gòu)體類型
     C 、staff 是用戶定義的結(jié)構(gòu)體類型名
     D 、nameage 和 sex 都是結(jié)構(gòu)體成員名
     答案:C

?

 87 、下面程序的輸出結(jié)果是(  )
      #include<stdio.h>
      #define P 2
      #define POWER(x)  P*x*x
      main()
     { 
           int x= 1 ,y=2;
           printf("%d ,%d" ,POWER(x+y),POWER(y+x));
      }
     A 、18 ,18                     B 、6 ,7
     C 、6 ,6                       D 、7 ,7
     答案:B
     解析:由于宏定義 #define POWER(x)  P*x*x,
           所以POWER(x+y)=P*x+y*x+y
                         =2*1+2*1+2
                         =2+2+2
                         =6
               POWER(y+x)=P*y+x*y+x
                         =2*2+1*2+1
                         =4+2+1
                         =7
           不要自作聰明地將x+y或y+x加括號(hào)

?

 88 、若有以下定義和語句: 
      struct student
      {
           int num ;int age;
      };
      struct student stu[3]=
           {
                {l001 ,20} ,{ 1002 ,19} ,{ 1003 ,2l}
           };
      main()
      {
           struct student *p;p=stu;
           ...
      }
      則下列引用中不正確的是(  )
     A 、  (p++)→num                           B 、  p++
     C 、  (*p) .num                          D 、  p=&stu.age
     答案:D

?

 89 、下面程序的輸出結(jié)果是(  )
      #include<stdio.h>
      #define P    2
      #define POWER(x)    P*(x)*(x)
      main()
      {    
           int x=l ,y=2;
           printf("%d ,%d" ,POWER(x+y),POWER(y+x)); 
      }
     A 、18 ,18                                 B 、6 ,7
     C 、6 ,6                                   D 、7 ,7
     答案:B
     解析:見T87,完全一樣的題目

?

 90 、下面程序的輸出結(jié)果是(  )
      #include<stdio .h>
      #define SUB(X ,Y) (X)*Y
      main()
      { 
           int a=3 ,b=4;
           printf("%d\n" ,SUB(a+b ,b++));
      }
     A 、12                B 、15        
     C 、16                D 、28
     答案:D
     解析:由于宏定義#define SUB(X ,Y) (X)*Y
           所以SUB(a+b ,b++)=(a+b)*b++
                             =7*4
                             =28
           本題在a+b處加括號(hào)是由于(X)加了括號(hào),
           同時(shí)請(qǐng)對(duì)比T87,以加深此代碼理解

?

 91 、下面程序的輸出結(jié)果是(  )
      #include<stdio .h>
      #define FUN(x ,y) x*y
      main()
      { 
           int a= 1 ,b=2;
           printf("%d" ,F(xiàn)UN(a+b ,a-b));  
      }
     A 、 -3                 B 、1        
     C 、 -1                 D 、0
     答案:B
     解析:由于宏定義 #define FUN(x ,y) x*y
           所以FUN(a+b ,a-b)=a+b*a-b
                             =1+2*1-2
                             =1

?

 92 、下面程序的輸出結(jié)果是(  )
      #define MIN(x ,y) (x)<(y)?(x):(y) 
      main()
      { 
           int a= 1 ,b=2 ,c;
           c= 10*MIN(a ,b);
           printf("%d" ,c);  
      }
     A 、1        B 、10        C 、  2      D 、20
     答案:B
     解析:由于宏定義 #define MIN(x ,y) (x)<(y)?(x):(y) 
           所以c=10*MIN(a ,b)=10*(a)<(b)?(a):(b)
                              = 10*(1)<(2)?(1):(2)
                              =10*1
                              =10

?

 93 、下面程序的輸出結(jié)果是(  )
      struct st
      {
           int x; int *y;    
      };
      int dt[4]={10 ,20 ,30 ,40};
      struct st *p;
      aa[4]={50 ,&dt[0],60 ,&dt[1],70 ,&dt[2],80 ,&dt[3]};
      main()
      { 
           p=aa;
           printf("%d\n" ,++p →x);
           printf("%d\n",(++p) →x);
           printf("%d\n" ,++(*p→y));
      }
     A 、10        B 、50          C 、51          D 、60
         20            60              60              70
         20            21              2l              31
     答案:C
     解析:struct st *p定義結(jié)構(gòu)體指針,
           p=aa使得指針p指向結(jié)構(gòu)體數(shù)組的首地址aa[0]
           ++p->x:由于->比++優(yōu)先級(jí)高,所以輸出結(jié)構(gòu)體成員x的值再自增
                   所以輸出的值為aa[0]+1=50+1
                                        =51
           (++p) →x:由于( )優(yōu)先級(jí)比->高,所以指針p先下移一個(gè)位置,
                     此時(shí),aa[1]->x=60
           ++(*p→y):對(duì)aa[1]->y所指向的內(nèi)容加1后輸出,
                     即地址&dt[1]的內(nèi)容20加1后輸出21

?

 94 、以下程序的運(yùn)行結(jié)果為(  )
      #include<stdio .h>
      main()
      {
           struct date
           {
                int year ,month ,day;
           }
           today;
           printf("%d\n" ,sizeof(struct date));
      }
     A 、6                 B 、8        
     C 、10               D 、12
     答案:D
     解析:sizeof(struct date)是求字節(jié)數(shù)的運(yùn)算符
           三個(gè)整形,每個(gè)4字節(jié),共3*4=12個(gè)字節(jié)數(shù)

填空題(43題)

1 、十進(jìn)制數(shù) 91 轉(zhuǎn)換成二進(jìn)制是_________,轉(zhuǎn)換成八進(jìn)制數(shù)是_________,轉(zhuǎn)換成十六進(jìn)制是_________。

   答案:1011011; 133; 5B
   解析:對(duì)十進(jìn)制數(shù)除以進(jìn)制數(shù),保留余數(shù)后,繼續(xù)對(duì)商除以進(jìn)制數(shù),
         直到商為0,余數(shù)從右向左依次記錄

2、C 語言開發(fā)的 4 個(gè)步驟是_________ 、_________ 、_________ 、_________。

   答案:編輯; 編譯; 鏈接; 運(yùn)行

3 、一般情況下,在 C 語言中定義但未初始化的變量的值為_________。

  答案:不確定的隨機(jī)數(shù)

4 、用 scanf 輸入 1 個(gè) double 型變量時(shí),需要使用格式轉(zhuǎn)換說明符_________,并且要使用取址運(yùn)算符_________取得該變量的地址。

  答案:%lf; &

5 、一個(gè) C 語言程序由若干個(gè)函數(shù)組成,其中必須有一個(gè)_________函數(shù)。

  答案:main

6 、定義函數(shù)時(shí),若缺省函數(shù)類型標(biāo)識(shí)符,函數(shù)返回值類型為 _________。

  答案:int

7 、求 1 至 100 的和,寫作 for(s=0,i=1; _________ ;++i) s+=i;printf("%s\n",a);

  答案:i<=100
  解析:求1~100的和,由于使用的是for循環(huán),題干空處給出的是條件,
        由于i自增,為了讓函數(shù)可以循環(huán)100次,所以條件必須為i<=100
        s+=i等價(jià)于s=s+i

8 、int i=234,j=567; 函數(shù) printf("%d%d\n",i,j) 的輸出結(jié)果是_________。

  答案:234567
  解析:printf函數(shù)中的兩個(gè)整形之間沒有空格,所以輸出結(jié)果是連貫的

9 、表達(dá)式: 10!=9 的值是_________。

  答案:1
  解析:表達(dá)式的意思是10不等于9,顯然這是正確的,所以值為1

10 、能正確表述判斷閏年的C 語言表達(dá)式為____________________________________

  答案:year%4==0&&year%100!=0||year%400==0
  解析:公歷的置閏規(guī)則:
        普通閏年:公歷年份是4的倍數(shù)(year%4==0),且不是100的倍數(shù)的(year%100!=0)
        世紀(jì)閏年:公歷年份是整百數(shù)的,必須是400的倍數(shù)(year%400==0)
        普通閏年的兩個(gè)條件是必須同時(shí)達(dá)到的,所以用邏輯與(&&)
        世紀(jì)閏年和普通閏年之間是”或“的關(guān)系,所以用邏輯或(||)

11、設(shè) float x,y; 使 y 為 x 的小數(shù)部分的表達(dá)式是_________。

  答案:y=x-(int)x
  解析:由于強(qiáng)制類型轉(zhuǎn)換,(int)x為float x的整數(shù)部分
        用單精度的x減去整數(shù)部分(int)x自然就是小數(shù)部分了

12 、設(shè) int i,a; 則執(zhí)行語句:i=(a=23,a5),a+6; 后,變量 i 的值是_________。

  答案:30
  解析:a=2*3=6,由于逗號(hào)運(yùn)算符,取最后的表達(dá)式做值,所以i= a*5= 6*5= 30
        a+6雖然值為36,但是沒有載體,不會(huì)表達(dá)出來
        逗號(hào)運(yùn)算符雖然取最后的表達(dá)式作結(jié)果,但并不意味著前面的不需要計(jì)算

13 、設(shè) int a= 12,則執(zhí)行完語句 a+=a-=a*a 后,a 的值是_________。

  答案:-264
  解析:a+=a-=a*a實(shí)際上是a+=(a-=(a*a)),所以本題需要從后往前看
        a*a= 12*12= 144,  
        a-=a*a等價(jià)于a-=144,即a= a-144= 12-144= -132
        a+=a-=a*a等價(jià)于a+= -132,而此時(shí)a已經(jīng)等于-132了,所以a= -132+-132= -264

14 、有以下函數(shù)定義:void fun(int n, double x){……} ,若使用到的變量定義為:int n= 10; double
x= 1.0,y=5.4; ,則對(duì)函數(shù) fun 的正確調(diào)用語向是_________。

  答案:fun(n,x)
  解析:變量的定義類型都是符合題干中函數(shù)的定義的,無需改變

15 、 在調(diào)用函數(shù)時(shí),如果實(shí)參是簡(jiǎn)單變量,它與對(duì)應(yīng)形參之間的數(shù)據(jù)傳遞方式是_________ (傳值或傳地址這兩種之間選填一個(gè)) 。

  答案:傳值
  解析:傳地址在指針用的較多

16 、在 C語言中,數(shù)組名代表_________。

  答案:數(shù)組首個(gè)元素的地址

17、己知 short int 類型變量在內(nèi)存中占用兩個(gè)字節(jié),
??有如下定義:short int array [10]={0,2,4};, 則數(shù)組 array 在內(nèi)存中所占字節(jié)數(shù)是 _________。

  答案:20
  解析: short int 類型變量在內(nèi)存中占用兩個(gè)字節(jié),
        array [10]定義了10個(gè) short int 類型變量,所以在內(nèi)存中所占字節(jié)數(shù)是20

18 、若定義 int m[10]={9,4,12,8,2,10,7,5,1,3}; ,則 m[m[4]+m[8]] 的值是 _________。

  答案:8
  解析:m[4]+m[8]= 2+1= 3
        m[m[4]+m[8]]= m[3]=8

19 、設(shè)有如下函數(shù)定義:

      int fun (int k)                  
      {      
           if (k<1) return 0;    
           else if (k==1) return 1;  
           else return fun (k- 1) + 1:
       }

??若執(zhí)行調(diào)用語句:n=fun(3); ,則函數(shù) fun 總共被調(diào)用的次數(shù)是_________。

  答案:3
  解析:首先 n=fun(3),進(jìn)行了一次調(diào)用
        3被當(dāng)做參數(shù)傳進(jìn)去后,程序會(huì)執(zhí)行這句 else return fun(k-1)+1;
           這就調(diào)用了第二次,而參數(shù)是3-1也就是2
        2被當(dāng)做參數(shù)傳進(jìn)去后,程序會(huì)執(zhí)行這句 else return fun(k-1)+1; 
           這就調(diào)用了第三次,而參數(shù)是2-1也就是1
        1被當(dāng)做參數(shù)傳進(jìn)去后,程序會(huì)執(zhí)行這句 else if(k==1) return 1; 
           不再遞歸調(diào)用

20 、為保證整型變量 n 其在未賦值的情況下初值為 0 ,應(yīng)選擇的存儲(chǔ)類別是_________ 。

  答案:static

21 、若有定義 int b[5][7];, 根據(jù)數(shù)組存儲(chǔ)順序,b[0][0] 為第1個(gè)元素,則第10個(gè)元素是___________

 答案:b[1][2]
 解析:定義的是5行7列的二維數(shù)組,所以第10個(gè)元素在第2行第3列
      所以第10個(gè)元素是b[1][2]

22 、定義 int *pa[5],(*p)[5] ; 則表達(dá)式 sizeof(pa)的值是________ ,sizeof§的值是 ________。

 答案:20;4或8
 解析:*pa[5]:是一個(gè)數(shù)組,這個(gè)數(shù)組的內(nèi)容(每一個(gè)元素)都是 int * 類型
      int類型占4個(gè)字節(jié)數(shù),所以 sizeof(pa)的值是20
       (*p)[5]:p指向一個(gè)數(shù)組,指向一塊內(nèi)存區(qū)域
                    因?yàn)橐粋€(gè)指針在32位的計(jì)算機(jī)上,占4個(gè)字節(jié)
                        一個(gè)指針在64位的計(jì)算機(jī)上,占8個(gè)字節(jié)
                    所以sizeof(p)的值是4或8

23 、設(shè) int a=3,b=5,c=7; ,則表達(dá)式 a<c&&c>b!=0||c==b+a 的值為________。

 答案:1
 解析:a<c值為1,c>b值為0,所以a<c&&c>b值為0,表達(dá)式等價(jià)為0!=0||c==b+a
       0!=0錯(cuò)誤,值為0;c==b+a是給c賦值,等價(jià)于c=7
       原表達(dá)式等價(jià)于0||7,值為1

24 、若已定義 int a,則表達(dá)式 a= 10,a+10,a++的值是 _______________。

 答案:10
 解析:a+10沒有載體,又因?yàn)閍++先用后增,所以a++的值為10

25 、對(duì)于以下宏定義:#define MIN(a,b) a<b?b:a+ 1,執(zhí)行語句 z= 10*MIN(2,5);后,z 的值為________。

 答案:30
 解析:由于宏定義#define MIN(a,b) a<b?b:a+1,
       所以MIN(2,5)=(2<5?5,2+1)
                   =2+1
                   =3
       所以z= 10*3= 30

26 、對(duì)于下面宏定義:
#define M(x) x*x
#define N(x, y) M(x)+M(y)
執(zhí)行語句 z=N(2,2+4);后 z 的值為___________。

 答案:18
 解析:由于宏定義#define M(x) x*x和#define N(x, y) M(x)+M(y),
       所以z= N(2,2+4)= M(2)+M(2+4)
            =2*2+2+4*2+4
            =4+2+8+4=18

27 、ANSI C 標(biāo)準(zhǔn)中定義的用于釋放動(dòng)態(tài)空間的函數(shù)名是________ ,使用該函數(shù)要包含的頭文件 是________。

 答案:free;malloc.h

28 、定義語句為 char a[]=“Boot”,b[]=“Foot”; ,語句 printf("%d",strcmp(a+ 1,b+1));輸出______。

 答案:0
 解析:strcmp()函數(shù)首先將s1字符串的第一個(gè)字符值減去s2第一個(gè)字符,
       若差值為零則繼續(xù)比較下去;若差值不為零,則返回差值
       由于題干中"a+1""b+1"分別代表的是a[]和b[]的第二個(gè)字符,都是"o",
       所以ACSII碼差值為0,繼續(xù)向后比較,都是一樣的所以差值為0,輸出就是0
       簡(jiǎn)單來說就是跳過了第一個(gè)字符再進(jìn)行比較

29 、設(shè)有數(shù)組定義:char array[]=“China”;則數(shù)組 array 所占的存儲(chǔ)空間為____________個(gè)字節(jié)。

 答案:6
 解析:原數(shù)組相當(dāng)于 char arrays[] = {'C', 'h', 'i', 'n', 'a', '\0'};
       所以是6個(gè)字符

30 、有結(jié)構(gòu)體定義如下:
struct person
{ int ID;
??char name[20];
??struct {int year, month, day;}birthday;
}Tom;
將 Tom 中的 day 賦值為 26 的語句為____________。

 答案:Tom.birthday.day=26
 解析:將"Tom"中的"birthday"中的"day"賦值為26

31 、int x, *p; p=&x; 已知 x 的地址為 0x0028FF1C ,則 p+ 1=____________。

 答案:0x0028FF20
 解析:p= &x= 0x0028FF1C
       因?yàn)閤為整型,占4個(gè)字節(jié),
       所以p+ 1= 0x0028FF1C+4
               =0x0028FF20

32 、int m=5, *p=&m ;對(duì)變量 m 的間接訪問為____________。

 答案:*p
 解析:*p=&m,*p表示此指針指向的內(nèi)存地址中存放的內(nèi)容
      沒有直接p=m,而是先指向m的地址,再解析地址中的值

33 、 數(shù)組名實(shí)質(zhì)上是一個(gè)____________。

 答案:常量指針

34 、 int a[3][2];已知&a[0][0]等于 0x0028FF1C ,則 a+ 1=____________ ,a[0]+1=____________。

 答案:0x0028FF2C;0x0028FF20
 解析:一個(gè)整型占4個(gè)字節(jié),數(shù)組有a[3][2]有6個(gè)整型
        a+1中"1"的大小指的是整個(gè)數(shù)組的所占大小,
        例如數(shù)組a[4],&a +1實(shí)際上是 a[5],跳過一個(gè)數(shù)組
        所以a+1= 0x0028FF1C+sizeod(int[3][2])
               = 0x0028FF1C+3*2*4
               =0x0028FF2C
        a[0]+1中的"1"的大小指的是一個(gè)元素所占大小,
        例如數(shù)組a[4],&a[0] +1實(shí)際上是 a[1],
        a[0]+1實(shí)際上表示指針a[0][1]
        所以a[0]+1=0x0028FF1C+4
                  =0x0028FF20

35 、 申請(qǐng)動(dòng)態(tài)內(nèi)存空間的函數(shù)包括____________和____________。

 答案:malloc;free

36 、若有 定 義 int a[3][3]={{1,2,3}, {4,5,6}}; int *p,(*q)[3]=a; p=&a[0][0];

則 * ( * (q+ 1)+2) 等于 ________ ,
( * p) * ( * (p+2)) * ( * (p+4))等于_______ ,(*++q)[1]的值為_______。

 答案:6;15;6
 解析:*(*(q+ 1)+2):指第2行第3列的數(shù),值為6
       (*p)*(*(p+2))*(*(p+4)):因?yàn)閜=&a[0][0],所以*p指第1行第1列的數(shù)
       *(p+2)指第1行第3列的數(shù);*(p+4)指第2行第2列的數(shù)
           所以值為1*3*5=15
       (*++q)[1]:等價(jià)于(*q+1)[1],指第2行第2列的數(shù),為5

37、有以下語句 char x[]=“12345”; char y[]={‘1’,‘2’,‘3’,‘4’,‘5’}; 則數(shù)組 x 的長(zhǎng)度為____________,數(shù)組 y 的長(zhǎng)度為____________。

 答案:6;5
 解析:char x[]="12345"等價(jià)于char x[]={'1','2','3','4','5','\0'}

38 、若有語句:char s[10]=“1234567\0\0”; 則 sizeof(s)=____________ ,strlen(s)=____________。

 答案:10;7
 解析:字符數(shù)組s的大小只和c[10]中的10有關(guān),定義了大小為10個(gè)char,
       char大小為一個(gè)字節(jié),所以c的大小是10個(gè)字節(jié),所以sizeof(s)=10
       strlen遇到'\0'就停止,所以strlen(s)=7

39 、預(yù)處理命令必須以____________開頭。

 答案:#

40 、struct st{ int a; double d;}*p;則變量 p 在內(nèi)存中所占字節(jié)數(shù)為____________。

 答案:8
 解析:在內(nèi)存中所占字節(jié)數(shù)為最大的字節(jié)數(shù)
       最大的變量?jī)?nèi)存的大小為double的8字節(jié)

41、struct st{int age;int num;}stul,*p;p=&stul;則對(duì) stu1.num 訪問的其他兩種形式為____________、____________.

 答案:p->num;(*p).num
 解析:p->num:定義的結(jié)構(gòu)體類型->定義的結(jié)構(gòu)變量
      (*p).num:因?yàn)閜=&stul,所以*p=stul

42、struct {int x;char *y}t[]={1,”ab” ,2,”cd” },*p=t;則執(zhí)行 sizeof( p)的結(jié)果為____________;若執(zhí)行++p->y 的結(jié)果為____________ ;若執(zhí)行 (++p) ->y 的結(jié)果為____________。

 答案:8;b;
 解析:t[]={1,”ab” ,2,”cd” }
          ={'1','a','b','\0','2','c','d','\0'}
      sizeof( p):由于*p=t,所以sizeof(p)=8
      t有兩個(gè)元素,都為結(jié)構(gòu)體。第一個(gè)是1和ab,第二個(gè)是2和cd
      ++p->y:由于char *y將y定義為字符,取當(dāng)前p指向的對(duì)象的成員y,
              即*(p->y) = a,隨后++(p->y)表示指針向后跳一個(gè),指向b
      (++p)->y:++p導(dǎo)致p指向第二個(gè)結(jié)構(gòu)體,
                (++p)->y取當(dāng)前p指向的對(duì)象的成員y,即*((++p)->y) = c

讀程序題(30題)

 1、下面程序的輸出結(jié)果是?
    #include<stdio.h>
    int main( )
    {
         int i=010,j=10,k=0x10;
         printf("%d,%d,%d\n",i,j,k);
         return 0;
    }
    答案:8,10,16
    解析:i為八進(jìn)制,所以i=1*8^1=8
          j為十進(jìn)制,所以j=1*10^1=10
          k為十六進(jìn)制,所以k=1*16^1=16

?

 2、寫出下面程序的運(yùn)行結(jié)果
    #include<stdio.h>
    int main( )
    {
         char a,b,c,d;
         a=getchar();
         b=getchar();
         scanf("%c%c",&c,&d);
         putchar(a);
         putchar(b);
         printf("%c%c",c,d);
         return 0;
    }
    如果從鍵盤輸入 (從下面一行的第一列開始)
    1<回車>
    234<回車>
    則程序的輸出結(jié)果是?
  
    答案:
          1
          2
    解析:getchar()是一次讀一個(gè)字符
          putchar()只能輸出一個(gè)字符

?

 3、寫出下面程序的運(yùn)行結(jié)果
    #include<stdio.h>
    int main( )
    {
         int a;
         float b,c;
         scanf("%3d%3f%4f",&a,&b,&c);
         printf("a=%4d,b=%f,c=%g\n",a,b,c);
         return 0;
    }
    如果從鍵盤輸入 (從下面一行的第一列開始)
    1234567.89<回車>
    則程序的輸出結(jié)果是?
    
    答案:a=123,b=456.000000,c=7.89
    解析:scanf使a、b為3位,c為4為
          因?yàn)閍為int型,所以a=123
          因?yàn)閎為float型,所以小數(shù)點(diǎn)后有6位數(shù),所以b=456.000000
          雖然c也為float型,但因?yàn)閜rintf中c=%g,
          將不影響數(shù)字大小0省略了所以c=7.89

?

 4、下面程序的輸出結(jié)果是?
    #include<stdio.h>
    int main( )
    {
         char ch=’A’+ 10;
         printf("C=%c,C=%d,c=%c,c=%d\n",ch,ch,ch+32,ch+32);
         return 0;
    }
    
    答案:C=K,C=75,C=k,C=107
    解析:本題考查ASCII碼,對(duì)照ASCII碼找出數(shù)字對(duì)應(yīng)的字符即可
          注意%c輸出字符,%d輸出數(shù)字

?

 5、下面程序的輸出結(jié)果是?
    #include<stdio.h>
    int main()
    {
         int x=5,y=4,z=3;
         if(x==y)  z=x; x=y; y=z;
         printf("%d,%d,%d\n",x,y,z);
    }
    
    答案:x=4,y=3,z=3
    解析:因?yàn)閤!=y,所以"z=x"這段無效,只看"x=y; y=z;"
          所以x=y=4,y=z=3,z不變

?

 6、下面程序的輸出結(jié)果是 
    #include<stdio .h>
    int main()
    {
         int a,b;
         for(a=1,b=1;a<=100;a++)
         {
              if(b>=20) break;
              if(b%3= =1)
              {
                   b+=3;continue;
              }
              b=-5;
         }
         printf(“%d\n”,a);
     }
     
     答案:8
     解析:每次循環(huán)b增加3,a增加1,且當(dāng)b>20(此時(shí)b=22)時(shí)跳出循環(huán),結(jié)束程序。
           所以b從1增加到22,有(22-1)/3=7次循環(huán),所以a=1+7=8
           b=-5是干擾部分

?

 7、下面程序的運(yùn)行結(jié)果是?
    #include <stdio.h>
    int main( )
    {    
         int i, j;
         for(i=1;i<=4;i++)
         {
              for(j=1;j<=i;j++)
              printf(“*”);
              printf(“\n”);
         }
         return 0;
    }
    答案:
          *
          **
          ***
          ****
    解析:for(i=1;i<=4;i++)推進(jìn)層數(shù),for(j=1;j<=i;j++)推進(jìn)每層的"*"數(shù)

?

 8、下面程序的輸出結(jié)果是 
    #include<stdio .h> 
    int main()
    {
         int x=l ,y=0 ,a=0 ,b=0;
         switch(x)
         {
              case l:
              switch(y)
              {
                   case 0: a++; break;
                   case 1 :b++;break;
              }
              case 2:
              a++;b++; break;
         }
         printf("a=%d, b=%d\n" ,a ,b);
     }
     
     答案:a=2,b=1
     解析:x=1,走switch(y),因?yàn)閥=0,所以a的值+1。
          由于switch(x)的case l:結(jié)束沒有break,所以繼續(xù)case 2,a、b都+1。
          所以a=2,b=1

?

 9、有下列程序段,程序的輸出結(jié)果是 
    char ch;
    int s=0;
    for(ch=’A’;ch<’Z’;++ch)
    if(ch%2= =0)s++;
    printf(“%d”,s);
    
    答案:12
    解析:A~Y中有多少字母的ASCII碼可以被2整除

?

 10、下面程序的運(yùn)行結(jié)果是?
     #include<stdio.h>
     void s(int a, int *b)
     { 
          int t;
          t=a; a=*b;*b=t;
     }
     int main()
     { 
          int x=7,y= 10;
          s(x,&y);
          printf(“%d,%d\n”,x,y);
          return 0;
     }
     答案:7,7
     解析:a=*b忽略就行,影響a的地址,不影響a的值

?

 11、下面程序的運(yùn)行結(jié)果是?
     #include <stdio.h>
     int Min(int x, int y)
     {
          return x<y?x:y;
     }
     int main( )
     {
          int x= 13,y=5,z=22;
          printf("%d\n", Min(x,Min(y,z)));
          return 0;
     }
     
     答案:5
     解析:定義函數(shù)Min(int x, int y)的作用就是return一個(gè)小的數(shù),
           x<y則return x,否則return y
           Min(y,z)結(jié)果為y,
           Min(x,Min(y,z)等價(jià)于Min(x,y),結(jié)果為y,y=5

?

 12、下面程序的運(yùn)行結(jié)果是? 
     #include<stdio.h>
     int fun(int i)
     {       
          return i*i;
     }
     int main( )
     {
          int i=0;
          i=fun(i);
          for(; i<3;i++)
          {
               static int i=1;
               i+=fun(i);
               printf("%d, ", i);
          }
          printf("%d\n",i);
          return 0;
     }
     
     答案:2,6,42,3
     解析:由于static使函數(shù)就被定義成為靜態(tài)函數(shù)
           通俗點(diǎn),就是使得for(; i<3;i++)語句塊中的"i”獨(dú)立出來,并且值會(huì)被保留
           第一次for循環(huán):i=1+ 1*1= 2
           第二次for循環(huán):i= 2+2*2= 6
           第三次for循環(huán):i=6+6*6= 42
           至此,由于i=3,不符合for循環(huán)的運(yùn)行條件,循環(huán)結(jié)束
           而for函數(shù)"( )"內(nèi)的"i"與語句塊中的"i"不是一個(gè)東西,
           所以最后的printf("%d\n",i)所輸出的是循環(huán)的次數(shù):3

?

 13、下面程序的運(yùn)行結(jié)果是? 
     #include <stdio.h>
     double F(int x)
     {
          return(3. 14*x*x);
     }
     int main()
     {
          int a[3]={1,2,3};
          printf("%5.2f\n",F(a[ 1]));
          return 0;
     }
     
     答案:12.56
     解析:%5.2f表示五位有效數(shù)字且小數(shù)點(diǎn)后有兩位數(shù)字的浮點(diǎn)型
           其中小數(shù)點(diǎn)算一位數(shù)長(zhǎng),如果實(shí)際位數(shù)小于m,則要在前補(bǔ)齊空格
           a[1]=2,所以F(a[1])= F(2)= 12.56
           數(shù)長(zhǎng)和小數(shù)點(diǎn)后位數(shù)都完全符合%5.2,所以原樣輸出

?

 14、下面程序的運(yùn)行結(jié)果是? 
     #include <stdio.h>
     #define N 4
     void fun(int a[][N],int b[])
     {
          int i;
          for(i=0;i<N;i++)
          b[i]=a[i][i]-a[i][N-1-i];
     }
     int main()
     {
          int x[N][N]={{1,2,3,4}, {5,6,7,8}, {9,10,11,12}, 
                      {13,14,15,16}},y[N],i;
          fun(x,y);
          for(i=0;i<N;i++)
          printf("%d,",y[i]);
          printf("\n");
          return 0;
     }
     
     答案:-3,-1,1,3
     解析:y[0]= a[0][0]-a[0][4-1-0]= 1-4= -3
           y[1]= a[1][1]-a[1][4-1-1]= 6-7= -1
           y[2]= a[2][2]-a[2][4-1-2]= 11-10= 1
           y[3]= a[3][3]-a[3][4-1-3]= 16-13= 3

?

 15、下面程序的運(yùn)行結(jié)果是?
     #include <stdio.h>
     int f(int a, int b)
     {
          static int m,i=2;
          i+=m+1;
          m=i+a+b;
          return m;
     }
     int main()
     {
          int p,i;
          for(i=1;i<=2;i++)
          {
               p = f(4, 1);
               printf("%d\t",p);
          }
          return 0;
     }
     
     答案:8(空7格)17
     解析:for(i=1;i<=2;i++):運(yùn)行兩次
           static定義靜態(tài)局部變量,即使聲明時(shí)未賦初值,
                 編譯器也會(huì)把它初始化為0
           所以static int m,i=2;等價(jià)于static int m=0,i=2;
           第一次循環(huán):i= i+m+1= 2+0+1= 3
                      m= i+a+b= 3+4+1= 8
           第二次循環(huán):i= i+m+1= 3+8+1 =12
                      m= i+a+b= 12+4+1 =17
           空7格的原因:(了解一下就行,不重要)
                      "\t"是水平制表符,作用是將當(dāng)前位置移動(dòng)到下一個(gè)tab位置
                       假定某個(gè)字符串在制表符\t的前面有n個(gè)字符,
                       那么\t將跳過8-n%8個(gè)空格,(將1帶入n,為7格)
                       即:將光標(biāo)移到最接近8的倍數(shù)的位置,
                           使得后面的輸入從此開始。

?

 16、下面程序的運(yùn)行結(jié)果是?
     #include <string.h>
     void func(char s[])
     {
          int i,j;
          char c;
          for(i=0,j=strlen(s)-1; i<j; i++,j--)
          {
               c=s[i]; s[i]=s[j]; s[j]=c;
          }
     }
     int main()
     {
          char str[]="hello";
          func(str);
          puts(str);
     }
     
     答案:olleh
     解析:j= strlen(s)-1= 5-1= 4,根據(jù)函數(shù)中的for循環(huán),運(yùn)行2次
          第一次循環(huán):c= s[i]= s[0]= h
                     s[i]= s[j]=> s[0]= s[4]= o
                     s[j]= c=> s[5]= h
                     數(shù)組變?yōu)閛ellh
          第二次循環(huán):c= s[i]= s[1]= e
                     s[i]= s[j]=> s[1]= s[3]= l
                     s[j]= c=> s[3]= e
                     數(shù)組變?yōu)閛lleh

?

 17、下面程序的輸出結(jié)果是?
     #include <stdio.h>
     int main()
     {
          int i, x[3][3] = {1,2,3,4,5,6,7,8,9};
          for (i=0; i<3; i++)
               printf("%3d", x[i][i]);
          printf("\n");
          return 0;
     }

     答案:(空2格)1(空2格)5(空2格)9
     解析:for (i=0; i<3; i++):運(yùn)行3次
           第一次循環(huán):x[0][0]= 1
           第二次循環(huán):x[1][1]= 5
           第三次循環(huán):x[2][2]= 9
           空2格的原因見T13

?

 18、下面程序的運(yùn)行結(jié)果是? 
     #include <stdio.h>              
     int m= 13;
     int fun2(int x, int y)
     { 
          int m=3;
          return(x*y-m);
     }
     int main()
     { 
          int a=7, b=5;
          printf("%d\n",fun2(a,b)/m);
          return 0;
     }
     
     答案:2
     解析:函數(shù)fun2(a,b)返回的x*y-m= 7*5-13= 22
           由于"%d",fun2(a,b)/m= 22/13= 2

?

 19、下面程序的運(yùn)行結(jié)果是?  (ASCII碼,‘0’=32;‘9’=41)
     #include <stdio.h>
     int main()
     {    
          char ch[7]="65ab21";
          int i, s=0;
          for(i=0; ch[i]>='0' && ch[i]<='9';i+=2)    
               s= 10*s+ch[i]-'0';
          printf("%d\n",s);
     }
     
     答案:6
     解析:for(i=0; ch[i]>='0' && ch[i]<='9';i+=2):循環(huán)1次,
                        一次后i=2,ch[i]= 97,不符合循環(huán)條件
           第一次循環(huán):s=10*s+ch[i]-'0'
                       =10*0+54-48
                       =6
           這題很離譜,題干里給的ASCII碼是錯(cuò)誤的,
           實(shí)際上‘0’=48;‘9’=57,不做評(píng)價(jià)

?

 20、下面程序的運(yùn)行結(jié)果是?
     #include<stdio.h>
     f(char s[ ])
     { 
          int i,j;
          i=0;j=0;
          while(s[j]!='\0') 
               j++;
          return (j-i);    
     }
     int main()
     {
          printf("%d\n",f("ABCDEF"));
          return 0;
     }
     
     答案:6
     解析:char s[ ]="ABCDEF",實(shí)際上有7個(gè)字符,第七位為"\0"
          所以while(s[j]!='\0') 要循環(huán)6次,直到s[j]='\0'
          j-i= 6-0= 6

?

 21、下面程序的運(yùn)行結(jié)果是?
     #include <stdio.h>
     int p(int x, int y, int* z);
     int main()
     {
          int x, y, z;
          x = 5; y = 7; z = 4;
          p(7,x + y + z, &x);
          printf("%d ,%d ,%d", x, y, z);
          return 0;
     }
     int p(int x, int y, int * z)
     {
          return *z = y - x - *z;
     }
     
     答案:4,7,4
     解析:int * z對(duì)應(yīng)&x,值為x=5
           所以return *z= y - x - *z=> *z
                        = (x + y + z)-7-x
                        =16-7-5
                        =4
           所以x=4

?

 22、  下面程序的運(yùn)行結(jié)果是?
     #include<stdio.h>
     int main( )
     {
          int array[]={6,7,8,9,10},*ptr;
          ptr=array; *(ptr+2) +=2;
          printf("%d, %d\n", *ptr, *(ptr+2));
          return 0;
     }
     
     答案:6,10
     解析:*ptr= ptr[0]= 6
           *(ptr+2)= +2=> *(ptr+2)= *(ptr+2)+2
                                  =ptr[2]+2= 8+2
                                  =10

?

 23、下面程序的運(yùn)行結(jié)果是?
     #include<stdio.h>
     void fun(int *a, int *b)
     {
          int *c; c=a; a=b; b=c;
     }
     int main( )
     {    
          int x=3,y=5, *p=&x,*q=&y;
          fun(p,q);
          printf("%d, %d\n", *p, *q);
          fun(&x,&y);
          printf("%d, %d\n", *p, *q);
          return 0;
     }

     答案:
          3,5
          3,5
     解析:*p=&x:x的地址付給p,p里存的是一個(gè)數(shù)值x
           所以*p=3,*q=5
           fun(p,q)為無效代碼,格式不符,跑不出東西
           p=&x:p的內(nèi)存地址指向x所在的內(nèi)存地址
           fun(&x,&y)也一樣,沒用

?

 24、下面程序的運(yùn)行結(jié)果是? 
     #include<stdio.h>           
     int main( )
     {
          int array[]={1,2,3,4,5},y=0,i,*p;
          p=&array[4];
          for(i=0; i<=3; i++)
          { 
               y=y+*p; p--;
          }
          printf("%d\n", y);
          return 0;
     }
     答案:14
     解析: for(i=0; i<=3; i++):運(yùn)行4次
           第一次循環(huán):y= 0+array[4]= 0+5= 5
           第二次循環(huán):y= 5+array[4]-1=  5+4= 9
           第三次循環(huán):y= 9+array[4]-1-1= 9+3= 12
           第四次循環(huán):y= 12+array[4]-1-1-1= 12+2= 14

?

 25、如果輸入 ABC<回車> ,請(qǐng)寫出運(yùn)行結(jié)果
     #include<stdio.h>
     #include<string.h>
     int main()
     { 
          char ss[10]="1,2,3,4,5";
          gets(ss);
          strcat(ss,"6789");
          printf("%s\n",ss);
     }
  
     答案:ABC6789
     解析:gets(ss)記錄輸入的ABC
           strcat(ss,"6789")連接"ABC"與"6789",結(jié)果放在"ss"中

?

 26、下面程序的運(yùn)行結(jié)果是? 
     #include<stdio.h>
     int main()
     { 
          char s[]="12a021b230";
          int i,v0,v1,v2,v3,vt;
          v0=v1=v2=v3=vt=0;
          for(i=0;s[i];i++)
          { 
               switch(s[i]-'0')
               { 
                    case 0: v0++;
                    case 1: v1++;
                    case 2: v2++;
                    case 3: v0++; break;
                    default: vt++;
               }
          }
          printf("%d,%d,%d,%d,%d\n",v0,v1,v2,v3,vt);
          return 0;
     }

     答案:10,4,7,0,2
     解析: for(i=0;s[i];i++):從頭走到尾,直到一維數(shù)組結(jié)束,共運(yùn)行10次
            第一次循環(huán):v0=1;  v1=1;  v2=1;  v3=0;  vt=0
            第二次循環(huán):v0=2;  v1=1;  v2=2;  v3=0;  vt=0
            第三次循環(huán):v0=2;  v1=1;  v2=2;  v3=0;  vt=1
            第四次循環(huán):v0=4;  v1=2;  v2=3;  v3=0;  vt=1
            第五次循環(huán):v0=5;  v1=2;  v2=4;  v3=0;  vt=1
            第六次循環(huán):v0=6;  v1=3;  v2=5;  v3=0;  vt=1
            第七次循環(huán):v0=6;  v1=3;  v2=5;  v3=0;  vt=2
            第八次循環(huán):v0=7;  v1=3;  v2=6;  v3=0;  vt=2
            第九次循環(huán):v0=8;  v1=3;  v2=6;  v3=0;  vt=2
            第十次循環(huán):v0=10; v1=4;  v2=7;  v3=0;  vt=2

?

 27、下面程序的運(yùn)行結(jié)果是? 
     #include<stdio.h>            	
     #define P 2
     #define POWER(x) P*x*x
     main()
     { 
          int x= 1 ,y=2;
          printf("%d,%d" ,POWER(x+y),POWER(y+x));
     }
 
     答案:6,7
     解析:POWER(x+y)= 2*1+2*1+2= 2+2+2=6
           POWER(y+x)= 2*2+1*2*1= 4+2+1= 7

?

 28、下面程序的運(yùn)行結(jié)果是? 
     #include<stdio.h>
     #define SUB(X,Y) (X)*Y
     main()
     { 
          int a=3,b=4;
          printf("%d\n", SUB(a+b,b++));  
     }

     答案:28
     解析:SUB(a+b,b++)= (3+4)*4++= 7*4= 28

?

 29、下面程序的運(yùn)行結(jié)果是? 
     #include <stdio.h>
     struct abc {int a,b,c;};
     int main()
     {
          struct abc s[2]={1,2,3,4,5,6}; 
          int t;
          t=s[0].a+s[1].b;
          printf(“%d\n”,t);    
          return 0;
     }

     答案:6
     解析:在main函數(shù)中定義了一個(gè)struct abc類型的數(shù)組
           struct abc {int a,b,c;}所以3個(gè)數(shù)一組,
           struct abc s[2]={1,2,3,4,5,6};可理解為{{a,b,c}{a,b,c}},列數(shù)為2的一維數(shù)組,一列3個(gè)數(shù)
           即:同時(shí)分別利用{1,2,3}及(4,5,6}對(duì)數(shù)組中兩個(gè)元素進(jìn)行初始化
                  在該結(jié)構(gòu)體,依次對(duì)其中的a、b、c三個(gè)變量進(jìn)行初始化
           故s[0].a=1,s[1].b=5,所以本題輸出為6

?

 30、下面程序的運(yùn)行結(jié)果是?
     #include <stdio.h>
     struct cmp{int x,y}cn[]={1,3,2,7};
     int main()
     { 
          printf(“%d\n”,cn[0].y*cn[1].x); return 0; 
     }

     答案:6
     解析:思路和上一題一樣,struct cmp{int x,y}所以2個(gè)數(shù)一組
           cn[0].y=3,cn[1].x=2
           所以cn[0].y*cn[1].x= 3*2= 6

程序填空(17題)

答案僅供參考,部分答案不是唯一的

 1、按照輸出結(jié)果,完成下面程序
    #include <stdio.h>
    int main()
    {
         int year, month,day;
         printf("請(qǐng)用標(biāo)準(zhǔn)格式輸入一個(gè)日期 (YYYY-MM-DD) :") ;
         scanf("_____(1)_____",_____(2)_____);
         printf("_____(3)_____\n",_____(4)_____);
         return 0;
    }
    運(yùn)行結(jié)果:
        請(qǐng)用標(biāo)準(zhǔn)日期格式輸入一個(gè)日期 (YYYY-MM-DD) :
        若用戶從鍵盤輸入:2022- 12- 12<回車>
        則輸出結(jié)果為:
        2022 年 12 月 12 日

    答案:
         (1):%d-%d-%d
         (2):&year,&month,&day
         (3):"%d年%d月%d日"
         (4):year,month,day
    解析:
         (1)year, month,day;都是int型,所以用%d
         (2)"&"使得"%d"取得對(duì)應(yīng)位置
         (3)輸出結(jié)果帶"年 月 日",int型只傳遞數(shù)值
         (4)按順序?qū)?yīng)前面的位置

?

 2、完成下面程序,計(jì)算圓的面積,結(jié)果保留兩位小數(shù): 
    #include <stdio.h>
    int main()
    {
         double pi=3. 14159;      /*定義只讀常量 pi*/
         double r;
         scanf("_____(1)_____", &r);
         printf(" area=_____(2)_____",_____(3)_____);
         return 0;
    }
     
     答案:
         (1):%lf
         (2):%.2lf
         (3):pi*r*r
     解析:
         (1)"r"是double型,所以用"%lf"
         (2)結(jié)果保留兩位小數(shù),所以用"%.2lf"
         (3)原面積公式對(duì)應(yīng)"%.2lf"的格式

?

 3、完成下面程序,利用 for 循環(huán)語句計(jì)算求和問題: 
    S1000  = 1 - 1/2 + 1/3 - 1/4 +...+ 1/999 - 1/1000
    #include <stdio.h>
    int main()
    {
         float S=_____(1)_____;
         int i,sign=- 1;
         for(i=2;_____(2)_____;i++)
         {
              S=S+_____(3)_____;
              sign=-sign;
         }
         printf("%.5f\n",S);
         return 0;
    }

     答案:
         (1):1
         (2):i<=1000
         (3):1/i*sign
     解析:
         (1)for從2開始,所以S的初始量應(yīng)當(dāng)為1
         (2)結(jié)尾是1/1000,所以for要循環(huán)到i>1000才能停下,所以i<=1000是for循環(huán)的條件
         (3)"1/i*sign"使得2~1000變?yōu)?/2~1/1000

?

 4、完成下面的程序,求 1 !+3 !+5 !+……+n !的和。
    #include <stdio.h>
    void main()
    {
         long int f,s;
         int i,j,n;
         _____(1)_____;
         scanf("%d",&n);
         for(i=1;i<=n;_____(2)_____)
         {
              f=1;
              for(j=1; _____(3)_____;j++)
              _____(4)_____;
              s=s+f;
         }
         printf("n=%d,s=%ld\n",n,s);
    }

     答案:
         (1):s=0
         (2):i+=2
         (3):j<=i
         (4):f*=s
     解析:
         (1)for循環(huán)從1開始,所以初始量為0,"s=s+f"確定s為總和
         (2)求 1 !+3 !+5 !+……+n !的和,所以每次i需要+2
         (3)每次乘到n時(shí)停止,n是根據(jù)外層for循環(huán)定的
         (4)這部分負(fù)責(zé)將單個(gè)的n!算出

?

 5、完成下面的程序,求兩個(gè)非負(fù)整數(shù)的最大公約數(shù)和最小公倍數(shù)。
     #include<stdio.h>
     void main()
     {
         int m,n,r,p,gcd,lcm;
         scanf("%d%d",&m,&n);
         if(m<n) 
         {
              p=m,m=n;n=p;
         }
         p=m*n;
         r=m%n;
         while(r != 0 )
         {
              m=n;n=r;_____(1)_____;
         }
         gcd=_____(2)_____;
         lcm=p/gcd;
         printf("gcd=%d,lcm=%d\n",_____(3)_____);
     }

     答案:
         (1):r=m%n
         (2):n
         (3):gcd,lcm
     解析:
         (1)變量 r 來存儲(chǔ) m 對(duì) n 取模(即余數(shù))。
            通過循環(huán)計(jì)算 m 對(duì) n 取模的結(jié)果,直到余數(shù)等于0,此時(shí) n 就是最大公約數(shù)
         (2)此時(shí) n 就是最大公約數(shù),所以gcd=n
         (3)使用 printf() 函數(shù)打印最大公約數(shù)和最小公倍數(shù)的值

?

 6、編寫遞歸函數(shù)實(shí)現(xiàn)求兩個(gè)整數(shù)的最大公約數(shù),主函數(shù)讀入待求的兩個(gè)整數(shù)并調(diào)用公約數(shù)函求解,輸出結(jié)果。
    #include<stdio.h>
    int gcd ( int m, int n)
    {      
         int r;
         r=m%n;
         if_____(1)_____,
              return n;
         return_____(2)_____;
    }
    int main( )
    {
         int m, n;
         scanf("%d%d", &m, &n);
         printf ( "Gcd of m and n is: %d\n",_____(3)_____);
         return 0;
    }

     答案:
         (1):(r==0)
         (2):gcd(m,r)
         (3):gcd(m,n)
     解析:
         (1)計(jì)算 m 對(duì) n 取余數(shù)的結(jié)果 r。然后使用條件判斷語句判斷 r 是否等于0,
            如果等于0,則表示 n 是最大公約數(shù),直接返回 n。             
         (2)如果 r 不等于0,則調(diào)用遞歸函數(shù) gcd(),將 n 作為新的 m,將 r 作為新的 n,
            繼續(xù)計(jì)算新的余數(shù),直到最終余數(shù)等于0,返回最大公約數(shù)。
         (3)調(diào)用遞歸函數(shù) gcd(),傳入 m 和 n 作為參數(shù),獲取最大公約數(shù)的結(jié)果。
            最后使用 printf() 函數(shù)打印最大公約數(shù)的值

?

 7、完成下面程序,給一維數(shù)組輸人數(shù)據(jù)后,找出下標(biāo)為偶數(shù)的元素的最小值并輸出。 
    #include <stdio.h>
    int main ( )
    {
         int a[ 10], min;
         int i;
         for (i=0; i<10;i++)
              _____(1)_____
         min=a[0]:
         for (i=2;i<10;_____(2)_____)
              if(_____(3)_____)
                   min=a[i];
         printf ("%d", min);
         return 0;
    } 

    答案:
         (1):scanf(“%d”,&a[i])
         (2):i+=2
         (3):min>a[i]
     解析:
         (1)使用 for 循環(huán)遍歷數(shù)組,通過 scanf() 函數(shù)從鍵盤輸入數(shù)組元素的值,
            并存儲(chǔ)在相應(yīng)的數(shù)組位置上
         (2)使用 for 循環(huán)遍歷數(shù)組,從下標(biāo)為2的元素開始,
            每次移動(dòng)兩個(gè)位置,即找出下標(biāo)為偶數(shù)的元素
         (3)使用條件判斷語句比較當(dāng)前元素 a[i] 與 min 的值,
            如果 a[i] 小于 min,則將 a[i] 賦值給 min

?

 8、以下程序求得二維數(shù)組 a 的每行最大值,并存儲(chǔ)在數(shù)組b 中,請(qǐng)將程序補(bǔ)充完整。
    #include <stdio.h>
    void fun (int ar[ ][4], int bar[], int m, int n)
    {
         int i, j;
         for(i=0;i<m;i++)
         {
              _____(1)_____;
              for(j=1;j<n;j++)
                   if(ar[i][j]>bar[i])
                        bar[i]=ar[i][j];
         }
    }
    int main ()
    {
         int a[3][4] = {{12,41,36,28}, { 19,33,15,27}, {3,27,19,1}}, b[3], i;
         _____(2)_____;
         for (i=0;i<3;i++)
              printf ("%4d", b[i]);
         printf("\n");
         return 0;
    } 

    答案:
         (1):bar[i]=ar[i][0]
         (2):fun(a,b,3,4)
     解析:
         (1)使用兩個(gè)嵌套的 for 循環(huán)遍歷數(shù)組ar,從每行的第一個(gè)元素開始,找出每行中的最大值,
            并將最大值存儲(chǔ)在數(shù)組 bar 中相應(yīng)的位置上
         (2)調(diào)用函數(shù) fun(a, b, 3, 4),將數(shù)組 a 和其行數(shù)、列數(shù)作為參數(shù)傳遞給函數(shù) fun()

?

 9、完成下面程序,給一維數(shù)組輸入數(shù)據(jù),
    調(diào)用函數(shù) fun 找出下標(biāo)為偶數(shù)的元素的最小值,在主函數(shù)中輸出該值。
    #include<stdio.h>
    int fun(int *arr,int n)
    {    int i, min;
         min=arr[0];
         for(i=2;i<10;i+=2 )
              if(_____(1)_____)
                   min=arr[i];
         return min;
    }
    int main()
    {      
         int i,a[ 10];
         for(i=0;i<10;i++)
              scanf("%d", _____(2)_____);
         printf("最小值為:%d\n",_____(3)_____);
         return 0;
    }

    答案:
         (1):min=arr[i]
         (2):&a[i]
         (3):fun(a,10)
     解析:
         (1)
         (2)
         (3)

?

 10、下列程序讀出文本文件 C:\dream.txt 中的內(nèi)容,
     將所有小寫字母改為大寫字母并輸出,請(qǐng)將程序補(bǔ)充完整。
     #include<stdio.h>
     #include<stdlib.h>
     int main()
     {
          _____(1)_____;
          char ch;
          fp=fopen("C:\\dream.txt","r");
          if(fp==NULL)
          {
               printf("file error!\n");
               exit(0);
          }
          while((ch= _____(2)_____)!=EOF)
          {
               if(ch>='a' && ch<='z')
               {
                   _____(3)_____;
               }
               putchar(ch);
          }
          putchar('\n');
          _____(4)_____;
     } 

    答案:
         (1):FILE *fp
         (2):fgetc(fp)
         (3):ch-=32
         (4):fclose(fp)
     解析:
         (1)
         (2)
         (3)

?

 11、完成程序,將數(shù)組 array 中的數(shù)據(jù)逆序存放
     #include<stdio.h>
     int main( )
     { 
          int array[ 10], i,j,t;
          for(i=0;i<=9;i++)
          { 
               scanf("%d",_____(1)_____);
          }
          i=0;j=9;
          while(i<9)
          { 
               t=*(array+i);
               _____(2)_____;
               _____(3)_____;
                i++;j--; 
          }
          for(i=0;i<=9;i++)
          { 
               printf("%3d",_____(4)_____);
          }
          return 0;
     } 

    答案:
         (1):&array[i]
         (2):*(array+i)=*(array+j)
         (3):*(array+j)=t
         (4):array[i]

?

 12、完成程序,將十進(jìn)制轉(zhuǎn)變?yōu)槎M(jìn)制,二進(jìn)制的每一位存放在數(shù)組中
     #include<stdio.h>
     int main( )
     {    
          int b[16],x,k,r,i;
          printf("輸入一個(gè)整型數(shù):");
          scanf("%d",_____(1)_____);
          k=- 1;
          do
          {
               r=x%2; k++; *_____(2)_____=r;    x=x/2'
          } while _____(3)_____;
          //對(duì)二進(jìn)制進(jìn)行輸出
          for(_____(4)_____;_____(5)_____;i--)
          { 
               printf("%ld", *_____(6)_____);
          }
          return 0;
     } 

    答案:
         (1):&x
         (2):(b+k)
         (3):(k<15)
         (4):i=k
         (5):i>=0
         (6):*(b+i)

?

 13、給出矩陣的主對(duì)角線之和并找出最大元素
     #include<stdio.h>
     int f(int a[3][3], int *max, int n)
     {    
          int i,j,s=0;
          *max=a[0][0];
          for(i=0; i<n;i++)
          {    
               s = s+ _____(1)_____;
               for(j=0; _____(2)_____; j++)
               { 
                    if(_____(3)_____) *max=a[i][j];
               }
          }
          return s;
     }
     int main( )
     {
          int a[3][3]={1,-2,9,4,-8,6,7,0,5}; int max,sum;
          sum=f(_____(4)_____);
          printf("sum=%d, max=%d\n", sum, max);
          return 0;
     } 
    答案:
         (1):a[i][i]
         (2):j<n
         (3):*max<a[i][j]
         (4):a,&max,3

?

 14、用以下delnum 函數(shù)實(shí)現(xiàn)刪除字符串 s 中的數(shù)字字符
     delnum(char *s)
     {
          int i,j;
          for( i=0,j=0; s[i]!='\0'; i++)
          {    
               if_____(1)_____
               { 
                    s[j]=s[i];
                    _____(2)_____;
               }
          }
          _____(3)_____;
     } 
    答案:
         (1):s[i] >=‘0’ &&s[i] <= ‘9’
         (2):j++
         (3):s[j] = ‘\0’

?

 15、完成以下程序,該程序統(tǒng)計(jì)一個(gè)字符串中單詞的個(gè)數(shù),單詞以空格分隔。
     #include<stdio.h>
     #include<string.h>
     int main( )
     {
          int i,num=0,word=0;
          char str[80];
          _____(1)_____;
          printf("%s",str);
          for(i=0;i<_____(2)_____;i++)
          { 
               if(str[i]==' ')
               { 
                    word=0;
               }
               else if
               { 
                    word=1; num++;
               }
          }
          printf("%d\n",num);
          return 0
     }
    答案:
         (1):gets(str)
         (2):i<strlen(str)

?

 16、有五個(gè)學(xué)生,每個(gè)學(xué)生有 3 門課的成績(jī),從鍵盤輸入以上數(shù)據(jù) (包括學(xué)生號(hào),姓名,三 門課成績(jī)) ,
     計(jì)算出平均成績(jī),設(shè)原有的數(shù)據(jù)和計(jì)算出的平均分?jǐn)?shù)存放在磁盤文件"stud"中。
     請(qǐng)將程序補(bǔ)充完整。
     #include<stdio.h>
     struct student
     {
          char num[6];
          char name[8];
          int score[3];
          float avr;
     } stu[5];
     main()
     {
          int i,j,sum;
          FILE *fp;
          for(i=0;i<5;i++)
          {
               printf("\n please input No. %d score:\n",i);
               printf("stuNo:");
               scanf("%s",stu[i].num);
               printf("name:");
               scanf("%s",stu[i].name);
               sum=0;
               for(j=0;_____(1)_____;j++)
               {
                    printf("score %d.",j+1);
                    scanf("%d",&stu[i].score[j]);
                    sum+=stu[i]. _____(2)_____;
               }
               stu[i].avr=sum/3.0;
          }
          fp=fopen("stud","w");
          for(i=0;i<5; i++)
          if(fwrite(&stu[i],sizeof(_____(3)_____), 1,fp)!=1)
               printf("file write error\n");
          fclose(fp);
     } 
    答案:
         (1):j<=2
         (2):.score[j]
         (3):struct,student

?

 17、 以下程序的功能是按學(xué)生姓名查詢其排名和平均成績(jī),查詢可連續(xù)進(jìn)行,
      直到鍵入 0 時(shí)結(jié)束,請(qǐng)?jiān)诳瞻滋幪钊胝_內(nèi)容。
      #include<stdio .h>
      #include<string.h>
      #_____(1)_____  NUM 4
      struct student
      { 
           int rank;char * name;float score;  
      };
      _____(2)_____ stu[ ]={3 ,"Tom" , 98.3,
                    4 ,"Mary" ,78.2,
                    l ,"Jack" ,95. 1,
                    2 ,"Jim" , 90.6,};
      main()
      {
           _____(3)_____ str[ 10];
           int i;
           do    
           { 
                printf("Enter a name:");
                scanf("%s" ,_____(4)_____);
                for(i=0;i<_____(5)_____;i++)
                if(_____(6)_____)
                {
                     printf("name:%8s\n" ,stu[i].name);
                     printf("rank:%3s\n" ,stu[i].rank);
                     printf("average:%5. 1f\n" ,stu[i].score);
                     _____(7)_____;
                }
                if(i>=NUM)
                     printf("Not found\n");
           } while(_____(8)_____(str ,"0")!=0) ;
      } 
    答案:
         (1):define
         (2):struct
         (3):char str[10]
         (4):str
         (5):i<NUM
         (6):strcmp(stu[i].name,str)==0
         (7):break
         (8):strcmp

編程題(6題)

22級(jí)考的是第3題

1 、編寫程序:
(1) 定義函數(shù) int fun(int a[], int m); 實(shí)現(xiàn)查找小于或者等于 m 的所有素?cái)?shù)并放在數(shù)組中,
??函數(shù)返回所求出的素?cái)?shù)的個(gè)數(shù)。
(2) 定義主函數(shù),主函數(shù)中首先定義一個(gè)數(shù)組 array;接著從鍵盤輸入任意一個(gè)整數(shù) m (<1000) ,
??然后調(diào)用函數(shù) fun 輸入數(shù)組和整數(shù) m ,并將查找出的素?cái)?shù)和素?cái)?shù)個(gè)數(shù)打印出來。

 #include <stdio.h>
 int prime(int num)          //定義了一個(gè)函數(shù)isPrime來判斷一個(gè)數(shù)是否為素?cái)?shù)
 {
      if (num < 2) 
      {
           return 0;
      }
      for (int i = 2; i*i <= num; i++) 
      {
           if (num % i == 0)
           {
                return 0;
           }
      }
     return 1;
 }
 int fun(int a[], int m)       //定義了函數(shù)fun來查找小于或等于給定整數(shù)m的素?cái)?shù),
 {                               并將結(jié)果存儲(chǔ)在給定的數(shù)組中
      int count = 0;
      for (int i = 2; i <= m; i++) 
      {
           if (prime(i)) 
           {
                a[count] = i;
                count++;
           }
      }
      return count;
 }

 int main()            
 {
      int array[1000];                     //定義了一個(gè)數(shù)組array和一個(gè)變量m
      int m;
      printf("輸入一個(gè)整數(shù)m: ");
      scanf("%d", &m);                     //然后從鍵盤輸入一個(gè)整數(shù)m
      int count = fun(array, m);           //調(diào)用函數(shù)fun來輸入數(shù)組和整數(shù)m
      printf("小于或等于的質(zhì)數(shù) %d: ", m);
      for (int i = 0; i < count; i++) 
      {
           printf("%d ", array[i]);        //將查找到的素?cái)?shù)打印出來。
      }
      printf("\n");
      printf("質(zhì)數(shù)數(shù)量為: %d\n", count);    //將查找到的素?cái)?shù)個(gè)數(shù)打印出來。
      return 0;
 }

2、編寫程序:
(1) 定義函數(shù) int BubbleSort(int a[],int n),用冒泡法將數(shù)組元素按照從大到小的順序 排序。 (4 分)。
(2) 定義輸入函數(shù) void Input(int a[],int n); 實(shí)現(xiàn)從鍵盤輸入數(shù)組 a 中的 n 個(gè)元素(3 分)。
(3) 定義輸入函數(shù) void Print(int a[],int n); 實(shí)現(xiàn)輸出數(shù)組 a 中的 n 個(gè)元素(3 分)。
(4) 定義主函數(shù),主函數(shù)中首先定義一個(gè)含 15 個(gè)元素的數(shù)組;
??接著調(diào)用 Input 函數(shù)輸入 10 個(gè)數(shù)組元素;
??在主函數(shù)中調(diào)用BubbleSort 函數(shù)對(duì)數(shù)組的元素進(jìn)行排序,
??并將排序的結(jié)果使 用 Print 函數(shù)打印輸出 (5 分) 。

 #include <stdio.h>
 void Input(int a[], int n)             //定義了Input()函數(shù)用于輸入數(shù)組的元素
 {
      printf("請(qǐng)輸入 %d 個(gè)元素:\n", n);
      for (int i = 0; i < n; i++) 
      {
           scanf("%d", &a[i]);
      }
 }
 void Print(int a[], int n)              //定義了Print()函數(shù)用于輸出數(shù)組的元素
 {
      printf("數(shù)組的元素為:\n");
      for (int i = 0; i < n; i++) 
      {
           printf("%d ", a[i]);
      }
      printf("\n");
 }
 int BubbleSort(int a[], int n)          //在BubbleSort()函數(shù)中使用冒泡排序算法
 {                                         對(duì)數(shù)組 a 進(jìn)行從大到小的排序
      for (int i = 0; i < n-1; i++) 
      {
           for (int j = 0; j < n-i-1; j++) 
           {
                if (a[j] < a[j+1]) 
                {
                     int temp = a[j];
                     a[j] = a[j+1];
                     a[j+1] = temp;
                }
           }
      }
 }
 int main() 
 {
      int a[15];              //定義了含有15個(gè)元素的數(shù)組a
      int n = 10;    
      Input(a, n);            //調(diào)用Input()函數(shù)輸入10個(gè)數(shù)組元素
      BubbleSort(a, n);       //使用 BubbleSort() 函數(shù)對(duì)數(shù)組進(jìn)行排序
      Print(a, n);            //使用 Print() 函數(shù)輸出排序后的數(shù)組元素
      return 0;
 }

3、編寫程序:
??在考生文件夾下,給定程序 pingyou.c 的功能是:學(xué)習(xí)優(yōu)良獎(jiǎng)的條件如下:
??所考 5 門課的總成績(jī)?cè)?450 分 (含) 以上;或者每門課都在 88 分 (含) 以上。
??輸入某學(xué)生 5 門課的考試成 績(jī),輸出是否夠?qū)W習(xí)優(yōu)良獎(jiǎng)的條件。

 #include <stdio.h>
 int main() 
 {
      int scores[5];           //聲明一個(gè)大小為5的整型數(shù)組scores來存儲(chǔ)某學(xué)生的5門課的考試成績(jī)
      int sum = 0;             //變量total被初始化為0,用于存儲(chǔ)所有成績(jī)的總和
      int excellent = 0;       //excellent被初始化為0,用于標(biāo)記是否符合學(xué)習(xí)優(yōu)良獎(jiǎng)的條件
      printf("請(qǐng)輸入某學(xué)生5門課的考試成績(jī)(每門成績(jī)一行):\n");
      for (int i = 0; i < 5; i++) 
      {
           scanf("%d", &scores[i]);      //依次輸入5門課的考試成績(jī),并將成績(jī)存儲(chǔ)到數(shù)組scores中
           sum += scores[i];             //計(jì)算總和sum
           if (scores[i] < 88)           //如果有任何一門課的成績(jī)低于88分,則excellent被置為0
           {
                excellent = 0;
           }
      }
      if (sum >= 450)                   //程序判斷總成績(jī)是否大于等于450,
      {                                   如果是,則將isExcellent置為1,
           excellent = 1;                 表示滿足學(xué)習(xí)優(yōu)良獎(jiǎng)的條件。
      }
      if (excellent)                    //根據(jù)isExcellent的值,程序輸出對(duì)應(yīng)的提示信息,
      {                                   告知學(xué)生是否符合學(xué)習(xí)優(yōu)良獎(jiǎng)的條件
           printf("學(xué)生符合學(xué)習(xí)優(yōu)良獎(jiǎng)的條件\n");
      } 
      else 
      {
           printf("學(xué)生不符合學(xué)習(xí)優(yōu)良獎(jiǎng)的條件\n");
      }

      return 0;
 }

4、編寫程序:
??輸入一個(gè) 3 ×4 的二維整數(shù)矩陣,要求實(shí)現(xiàn)兩個(gè)功能:
??(1) 實(shí)現(xiàn)矩陣的轉(zhuǎn)置;
??(2) 遍歷矩 陣,輸出矩陣中最大的數(shù)及其下標(biāo)。

 #include <stdio.h>
 void transposeMatrix(int matrix[][4], int transpose[][3]) 
 {                                     //定義了函數(shù)transposeMatrix來實(shí)現(xiàn)矩陣的轉(zhuǎn)置
      for (int i = 0; i < 3; i++) 
      {
           for (int j = 0; j < 4; j++) 
           {
                transpose[i][j] = matrix[j][i];
           }
      }
 }
 void findMax(int matrix[][4], int *max, int *row, int *col) 
 {                                     //定義了函數(shù)indMax來查找矩陣中最大數(shù)及其下標(biāo)
      *max = matrix[0][0];
      *row = 0;
      *col = 0;
      for (int i = 0; i < 3; i++) 
      {
           for (int j = 0; j < 4; j++) 
           {
                if (matrix[i][j] > *max) 
                {
                     *max = matrix[i][j];
                     *row = i;
                     *col = j;
                }
           }
      }
 }
 int main() 
 {
      int matrix[3][4];              //定義了一個(gè)3x4的整數(shù)矩陣matrix
      int transpose[4][3];           //定義了一個(gè)4x3的整數(shù)矩陣transpose
      int max, maxRow, maxCol;
      printf("Enter the elements of the matrix (3x4):\n");
      for (int i = 0; i < 3; i++) 
      {
           for (int j = 0; j < 4; j++) 
           {
                scanf("%d", &matrix[i][j]);         //鍵盤輸入矩陣的元素
           }
      }
      transposeMatrix(matrix, transpose);           //調(diào)用transposeMatrix函數(shù)來進(jìn)行矩陣的轉(zhuǎn)置
      findMax(matrix, &max, &maxRow, &maxCol);      //調(diào)用findMax函數(shù)來查找矩陣中最大的數(shù)及其下標(biāo)
      printf("Matrix transpose:\n");
      for (int i = 0; i < 4; i++)
      {
           for (int j = 0; j < 3; j++) 
           {
                printf("%d ", transpose[i][j]);
           }
           printf("\n");                             //將轉(zhuǎn)置后的矩陣打印出來。
      }
      printf("矩陣中的最大元素: %d\n", max);         //將最大數(shù)打印出來。
      printf("最大元素位于第%d行%d列 %d\n", maxRow, maxCol);        //將最大數(shù)的下標(biāo)打印出來。
      return 0;
 }

5 、編寫一個(gè)結(jié)構(gòu)體類型的程序,定義一個(gè)結(jié)構(gòu)體變量 struct student ,
??其包含學(xué)號(hào),姓名, 三門課的成績(jī),成績(jī)用數(shù)組保存,
??要求輸入 10 個(gè)結(jié)構(gòu)體變量學(xué)生的學(xué)號(hào)、姓名、3 門課程 的成績(jī),求出總分最高的學(xué)生并輸出。

 #include<stdio.h>
 #define NUM_STUDENTS 10
 #define NUM_COURSES 3
 struct student                  //定義了一個(gè)結(jié)構(gòu)體類型struct student,
 {
      int student_id;            //學(xué)號(hào)student_id
      char name[100];            //姓名name
      int scores[NUM_COURSES];   //成績(jī)scores數(shù)組
 };
 int main() 
 {
      struct student students[NUM_STUDENTS];        //在main函數(shù)中創(chuàng)建NUM_STUDENTS個(gè)
      int i, j;                                       struct student類型的數(shù)組students用于存儲(chǔ)學(xué)生信息
      // 輸入學(xué)生信息和成績(jī)
      for(i = 0; i < NUM_STUDENTS; i++)
      {
           printf("學(xué)生%d的學(xué)號(hào):", i+1);           //第一重循環(huán)中,依次輸入每個(gè)學(xué)生的學(xué)號(hào)和姓名
           scanf("%d", &(students[i].student_id));
           printf("學(xué)生%d的姓名:", i+1);
           scanf("%s", students[i].name);
           printf("學(xué)生%d的成績(jī):\n", i+1);         //第二重循環(huán)中,依次輸入每個(gè)學(xué)生的三門課程的成績(jī)。
           for(j = 0; j < NUM_COURSES; j++) 
           {
                printf("第%d門課成績(jī):", j+1);
                scanf("%d", &(students[i].scores[j]));
           }
      }
      // 計(jì)算總分最高的學(xué)生
      int max_total_score = 0;
      int max_total_score_index = 0;
      for(i = 0; i < NUM_STUDENTS; i++)            //第三個(gè)循環(huán)中,計(jì)算每個(gè)學(xué)生的總分,
      {                                           
           int total_score = 0;
           for(j = 0; j < NUM_COURSES; j++) 
           {
                total_score += students[i].scores[j];
           }
           if(total_score > max_total_score) 
           {
                max_total_score = total_score;     //并記錄總分最高的學(xué)生的索引max_total_score_index
                max_total_score_index = i;
           }
      }
      // 利用max_total_score_index輸出總分最高的學(xué)生信息                      
      printf("\n總分最高的學(xué)生信息:\n");           
      printf("學(xué)號(hào):%d\n", students[max_total_score_index].student_id); //輸出學(xué)號(hào)
      printf("姓名:%s\n", students[max_total_score_index].name);       //輸出姓名
      printf("總分:%d\n", max_total_score);                            //輸出總分
      return 0;
 }

6 、斐波那契數(shù)列 (Fibonacci sequence) ,又稱“黃金分割”數(shù)列,
??比如這樣一個(gè)數(shù)列:1 ,1, 2 ,3 ,5 ,8 ,13 ,21 ,34 ,55 ,89… …
??數(shù)列從第 3 項(xiàng)開始,每一項(xiàng)都等于前兩項(xiàng)之和。試用 遞歸函數(shù)來實(shí)現(xiàn)斐波那契數(shù)列的求解。文章來源地址http://www.zghlxwxcb.cn/news/detail-767480.html

 #include <stdio.h>
 // 遞歸函數(shù)求解斐波那契數(shù)列
 int fibonacci(int n) 
 {
      if (n <= 1)
      {
           return n;         //當(dāng)參數(shù) n 小于等于1時(shí),函數(shù)返回 n
      }
      return fibonacci(n-1) + fibonacci(n-2);
 }                           //否則,函數(shù)返回前兩項(xiàng) fibonacci(n-1)和fibonacci(n-2) 的和
 int main() 
 {
      int n;
      printf("請(qǐng)輸入要求解的斐波那契數(shù)列的項(xiàng)數(shù):");
      scanf("%d", &n);                            //輸入要求解的斐波那契數(shù)列的項(xiàng)數(shù)
      printf("斐波那契數(shù)列前 %d 項(xiàng)為:\n", n);    
      for (int i = 0; i < n; i++)                 //通過循環(huán)利用fibonacci()函數(shù)
      {                                             來打印出相應(yīng)的數(shù)列項(xiàng)
           printf("%d ", fibonacci(i));
      }    
      return 0;
 }

到了這里,關(guān)于南京郵電大學(xué)通達(dá)學(xué)院 高級(jí)語言程序設(shè)計(jì)(C語言) 題庫(kù)選擇、填空、讀程序題答案及解析、程序填空答案、編程題答案及代碼作用的概括性說明的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 南京郵電大學(xué)數(shù)據(jù)庫(kù)實(shí)驗(yàn)一(SQL語言)

    (1) 通過上機(jī)實(shí)踐,熟悉Oracle的SQL * Plus環(huán)境及使用方法 (2) 掌握SQL語言,能熟練運(yùn)用SQL語言進(jìn)行數(shù)據(jù)定義和數(shù)據(jù)操縱 (3) 加深對(duì)關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)和約束的理解 硬件:微型計(jì)算機(jī) 軟件:Windows 操作系統(tǒng)、ORACLE 10G 實(shí)驗(yàn)原理基于第二、三、五章的相關(guān)內(nèi)容。 實(shí)驗(yàn)內(nèi)容如下:

    2024年04月27日
    瀏覽(22)
  • 南京郵電大學(xué)數(shù)學(xué)實(shí)驗(yàn)最新版

    1.1(1) 1.1(2) 1.2 1.3 1.4 1.5 1.6 1.7(1) f.m g.m main 1.7(2) f1.m g1.m main 1.8(1) 1.8(2) 1.9 1.10 1.11 1.12(1) 1.12(2) fun.m Main.m 2.1(1) dd.m main 2.2 2.3 Martin.m 2.4 2.5(1) 2.5(2) 3.1 結(jié)果 3.2 結(jié)果 3.3(1) 3.3(3) 3.4 4.1 4.3 4.4 4.5(1) 4.5(2) 4.6 4.7 4.8 4.9 實(shí)驗(yàn)一 //散點(diǎn)圖 //模型建立 //數(shù)據(jù)預(yù)測(cè)

    2024年02月11日
    瀏覽(25)
  • 南京郵電大學(xué)數(shù)據(jù)庫(kù)第一次課后作業(yè)

    1.單選題 (5分) ( B )是存儲(chǔ)在計(jì)算機(jī)內(nèi)有結(jié)構(gòu)的數(shù)據(jù)的集合。 (A)數(shù)據(jù)庫(kù)系統(tǒng) (B)數(shù)據(jù)庫(kù) (C)數(shù)據(jù)庫(kù)管理系統(tǒng) (D)數(shù)據(jù)結(jié)構(gòu) 2.單選題 (5分) 數(shù)據(jù)庫(kù)的特點(diǎn)之一是數(shù)據(jù)的共享,嚴(yán)格的講,這里的數(shù)據(jù)共享是指( D )。 (A)同—個(gè)應(yīng)用中的多個(gè)程序共享一個(gè)數(shù)據(jù)集合 (B)多個(gè)用戶

    2024年02月01日
    瀏覽(20)
  • 南京郵電大學(xué)電工電子(數(shù)電)實(shí)驗(yàn)報(bào)告——組合邏輯電路 & 時(shí)序邏輯電路

    南京郵電大學(xué)電工電子(數(shù)電)實(shí)驗(yàn)報(bào)告——組合邏輯電路 & 時(shí)序邏輯電路

    5、使用ISE軟件完成組合邏輯設(shè)計(jì)的輸入并仿真 6、掌握Testbech中組合邏輯測(cè)試文件的寫法 7、下載并測(cè)試實(shí)現(xiàn)的邏輯功能 ①4選1數(shù)據(jù)選擇器 RTL代碼 仿真測(cè)試模塊代碼 ②3-8譯碼器 RTL代碼 仿真測(cè)試模塊代碼 ③8-3優(yōu)先編碼器 RTL代碼 仿真測(cè)試模塊代碼 ④十六進(jìn)制七段LED顯示譯碼器

    2024年02月04日
    瀏覽(30)
  • 南京郵電大學(xué)算法與設(shè)計(jì)實(shí)驗(yàn)四:回溯法(最全最新,與題目要求一致)

    南京郵電大學(xué)算法與設(shè)計(jì)實(shí)驗(yàn)四:回溯法(最全最新,與題目要求一致)

    要求用回溯法求解8-皇后問題,使放置在8*8棋盤上的8個(gè)皇后彼此不受攻擊,即:任何兩個(gè)皇后都不在同一行、同一列或同一斜線上。請(qǐng)輸出8皇后問題的所有可行解。 用回溯法編寫一個(gè)遞歸程序解決如下裝載問題:有n個(gè)集裝箱要裝上2艘載重分別為c1和c2的輪船,其中集裝箱i的

    2024年02月05日
    瀏覽(124)
  • 南京郵電大學(xué)算法與設(shè)計(jì)實(shí)驗(yàn)一:分治策略(最全最新,與題目要求一致)

    南京郵電大學(xué)算法與設(shè)計(jì)實(shí)驗(yàn)一:分治策略(最全最新,與題目要求一致)

    實(shí)驗(yàn)原理: 1、用分治法實(shí)現(xiàn)一組無序序列的兩路合并排序和快速排序。要求清楚合并排序及快速排序的基本原理,編程實(shí)現(xiàn)分別用這兩種方法將輸入的一組無序序列排序?yàn)橛行蛐蛄泻筝敵觥?2、采用基于“五元中值組取中值分割法”(median-of-median-of-five partitioning)的線性時(shí)

    2024年04月17日
    瀏覽(196)
  • 南京郵電大學(xué)電工電子(數(shù)電)實(shí)驗(yàn)報(bào)告——計(jì)數(shù)器 & 移位寄存器

    南京郵電大學(xué)電工電子(數(shù)電)實(shí)驗(yàn)報(bào)告——計(jì)數(shù)器 & 移位寄存器

    1、掌握計(jì)數(shù)器的邏輯功能及應(yīng)用方法 2、掌握任意進(jìn)制計(jì)數(shù)器的設(shè)計(jì)方法 3、掌握數(shù)字電路多個(gè)輸出波形相位關(guān)系的正確測(cè)試方法 4、了解非均勻周期信號(hào)波形的測(cè)試方法 設(shè)計(jì)一個(gè)分頻比N=5的整數(shù)分頻電路,觀察并記錄時(shí)鐘脈沖和輸出波形。 選用cb4cle二進(jìn)制計(jì)數(shù)器模塊,采用

    2024年02月03日
    瀏覽(29)
  • 南京郵電大學(xué)Web技術(shù)雙語實(shí)驗(yàn)一(客戶端HTML腳本編寫)

    實(shí)驗(yàn)?zāi)康模?(1) 通過上機(jī)實(shí)踐,熟悉 HTML 和 JavaScript 腳本實(shí)現(xiàn)技術(shù)。 (2) 加深對(duì) Web 編程的認(rèn)識(shí) 實(shí)驗(yàn)要求: 1 編寫個(gè)人主頁,要求包含如下信息。 (1) 標(biāo)題“歡迎訪問×××的主頁” (2) 個(gè)人簡(jiǎn)介,包含照片。 (3) 個(gè)人經(jīng)歷簡(jiǎn)介,以有序列表形式顯示。 (4) 個(gè)人最

    2024年02月05日
    瀏覽(21)
  • 南京郵電大學(xué)算法與設(shè)計(jì)實(shí)驗(yàn)二:貪心算法(最全最新,與題目要求一致)

    南京郵電大學(xué)算法與設(shè)計(jì)實(shí)驗(yàn)二:貪心算法(最全最新,與題目要求一致)

    三、實(shí)驗(yàn)原理及內(nèi)容 實(shí)驗(yàn)原理: 1 、用貪心法實(shí)現(xiàn)求兩序列的一般背包問題。要求掌握貪心法思想在實(shí)際中的應(yīng)用,分析一般背包的問題特征,選擇算法策略并設(shè)計(jì)具體算法,編程實(shí)現(xiàn)貪心選擇策略的比較,并輸出最優(yōu)解和最優(yōu)解值。 2 、用貪心法求解帶時(shí)限的 ( 單位時(shí)間

    2024年02月05日
    瀏覽(45)
  • 南京郵電大學(xué)電工電子(數(shù)電)實(shí)驗(yàn)報(bào)告——數(shù)字電路與模擬電路的綜合應(yīng)用

    南京郵電大學(xué)電工電子(數(shù)電)實(shí)驗(yàn)報(bào)告——數(shù)字電路與模擬電路的綜合應(yīng)用

    1、了解D/A轉(zhuǎn)換器的基本工作原理和基本結(jié)構(gòu) 2、了解大規(guī)模集成D/A轉(zhuǎn)換器的功能及其典型應(yīng)用方法 3、掌握綜合性電路的調(diào)測(cè)方法 實(shí)驗(yàn)內(nèi)容∶設(shè)計(jì)一個(gè)可編程波形發(fā)生器技術(shù)指標(biāo)∶ ① 輸出信號(hào)波形受K2和K1控制 開關(guān)K2K1=01時(shí),輸出信號(hào)波形為正斜率鋸齒波。開關(guān)K2K1=10時(shí),輸出

    2024年02月06日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包