A. c語言 關於形參實參的一道簡答題
形參:
全稱為"形式參數"是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳遞的參數.
形參的作用是實現主調函數與被調函數之間的聯系,通常將函數所處理的數據,影響函數功能的因素或者函數處理的結果作為形參.沒有形參的函數在形參表的位置應該寫void。
實參:
全稱為"形式參數"是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳遞的參數.
形參的作用是實現主調函數與被調函數之間的聯系,通常將函數所處理的數據,影響函數功能的因素或者函數處理的結果作為形參.沒有形參的函數在形參表的位置應該寫void。
傳遞方式有值傳遞和地址傳遞(指針傳遞)。
B. c語言求答案!急!急!急!
答案:
26.功能:求a,b,c中的最大值。首先把a的值賦給m,當b大於c時,m(即a)與
與a比較,當m小於b是,把b的值賦給m,後面一樣的道理。
27.while(表達式1;表達式2;表達式3)表達式4;
其中表達式1,2,3,4都可以省略,但是分號不能夠
省略;當表達式2的值為真的時候執行表達式4,若為假,則跳出while循環
執行後面的語句。
28.(1)
int num[10];
num[10]={0,1,2,3,4,5,6,7,8,9};
(2)
int num[10],*nptr;
num[10]={0,1,2,3,4,5,6,7,8,9};
nptr=num;
(3)
nptr+8是指num[7]的地址值;*(nptr+8)是指元素num[7],即*(nptr+8)==num[7]
(4)
nptr- =4指向元素num[1]的地址
29.
printf("id=%d\tnum=%s\tarea=%f\n",p->id,p->name,p->area);
30.
a
97,A,141
31.
結果:abcdefghijklmnopqrstuvwxyz
功能:通過while語句輸出a到z的小寫字母
32.
3次
結果:8
33.
x=8,y=5
a=5,b=8
做了差不多有一個小時,好累
C. C語言題目簡答題
1、(c>=65 && c<=90)?(c=c+32):(c=c) /*符合你的要求,不是C語句,而是C表達式*/
2、a%10==5 /*符合你的要求,不是C語句,而是C表達式*/
3、【題目不全啊】
4、【題目不全啊】
5、這個題算是所有6個題中最難的了。
首先,fun函數中定義了一個static類型的變數,含義如下:
有時希望函數中的 局部 變數的值在函數調用結束後不消失而保留原值,即其佔用的存儲單元不釋放,在下一次該函數調用時,該變數已有值,就是上一次函數調用結束時的值。這時就應該指定該局部變數為「靜態局部變數」,用關鍵字static進行聲明。
這道題還有一個迷惑點是,該程序還在「文件包含」命令下面定義了一個全局變數,變數名同樣也是d。全局變數(或全程變數)可以為本文件中其它函數所共用,其有效范圍從定義變數的位置開始,到本源文件結束。
這里要注意,這兩個d雖然名字相同,但他們不是一個變數,兩者地址不同,即佔用的存儲單元不一樣。
要解決這道題,你還應該了解:一個C程序總是從main函數開始執行的,而不論main函數在整個程序中的位置如何(main函數可以放在程序最開頭,也可以放在程序最後,或在一些函數之前,或在另一些函數之後)。
上面的問題清楚之後,下面就容易了。先執行main函數,第一句
int a=1;
定義了整型變數a並賦初值為1。然後調用輸出函數
printf("%5d\n",fun(a+fun(d)));
這里,printf函數的輸出列表中調用了fun函數,而fun函數中的參數是一個表達式a+fun(d),這個表達式中也有fun函數,其參數是d,這里,這個d 作為實參,必定是在「文件包含」命令下面定義的全局變數d,即先執行了fun(1)。
好,我們看看執行fun(1)是什麼效果。首先形參p得到了實參的值1,然後
static int d=5;
定義了一個局部靜態變數d, 並初始化為5,然後
d+=p;
就相當於「d=d+p;」,即d=5+1,d的值為6,然後
printf("%5d",d);
輸出了當前局部靜態變數d的值6,然後
return d;
即函數返回值為6,main函數中fun(d)就可以用數字6代替,a+fun(d)就是7了。
然後又調用了一次fun函數,fun(a+fun(d)),即fun(7)。
好,我們繼續看這時函數應該如何調用。還是形參p得到了實參值7,然後
static int d=5;
由於fun函數里的d是靜態變數,在第一次調用該函數時d已經被定義,系統已經為它分配了存儲存單元,所以,這次再調用fun函數的時候,d不用再定義了,而且保留上次的值6,也就是說,這次的「d=5」是不會被執行的。繼續,
d+=p;
即d=d+p,也就是6+7,這次fun函數里的局部靜態變數d的值為13,
printf("%5d",d);
輸出d的值13,然後
return d;
fun函數返回值為13。回到main函數,fun(a+fun(d))即可用13 來代替,然後
printf("%5d\n",fun(a+fun(d)));
輸出13,換行,程序運行結束。
分析完執行過程,這個題的答案就有了。由於printf函數中寫在%和d之間的整數代表輸出欄位寬度為5(如果數據的位數小於5,則左補空格,若大於5,則按實際位數輸出),fun函數的printf函數的格式控制字元串中沒有換行符'\n',所以最終輸出結果應該只有一行:
6 13 13
press any key to continue
要注意,6前面有4個空格,6和第一個13之間有3個空格,兩個13之間也有3個空格,第二個13後面什麼都沒有直接換行。最後的「press any key to continue」是Visual C++ 6.0系統自動生成的,提示程序已經運行完畢,按任意鍵退出。
6、Visual C++ 6.0 或 Turbo C++ 3.0
艾瑪,打這么多字累屎了。。。。。。
D. 沈陽理工大學信息科學與工程學院c語言程序設計題庫
可以提供些資料給你,如果還是不會寫的話
E. c語言計算機二級考試選擇題如圖
全國計算機二級考試試題題庫(附答案)
下列各題 A) 、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項在答題
卡相應位置上塗黑,答在試卷上不得分。
(1) 應用軟體是指
A) 所有能夠使用的軟體 B) 能被各應用單位共同使用的某種軟體
C) 所有微機上都應使用的基本軟體 D) 專門為某一應用目的而編制的軟體
(2) 下列述敘中錯誤的是
A) 計算機要經常使用不要長期閑置不用
B) 為了延長計算機的壽命,應避免頻繁開關計算機
C) 在計算機附近應避免磁場干擾
D) 計算機用幾小時後,應關機一會兒再用
(3) 下列字元中,ASCII碼值最小的是
A) A B) a C) Z D) x
(4) 用晶體管作為電子器件製成的計算機屬於
A) 第一代 B) 第二代 C) 第三代 D) 第四代
(5) 下列各不同進制的四個無符號數中,最小的數是
A) ()2 B) (37)8 C) (75)10 D) (2A)16
(6) 二進制數轉換成十六進制數是
A) B) C) D)
(7) 下列各無符號十進制數中,能用八位二進製表示的是
A) 296 B) 333 C) 256 D) 199
(8) 計算機的軟體系統可分類為
A) 程序與數據 B) 系統軟體與應用軟體
D) 操作系統與語言處理程序 D) 程序、數據與文檔
(9) 486機中的CPU同時能處理的二進制位數為
A) 8 B) 16 C) 32 D) 64
(10) 在使用計算機的過程中,需要重新啟動DOS,則要
A) 按Ctrl+Break鍵 B) 按^C鍵 C) 按Ctrl+Alt+Del鍵 D) 按^H鍵
(11) 現要從軟盤啟動DOS(軟盤中已存有DOS系統),設有如下一些操作:①打開計算機
電源;②將該軟盤插入A驅動器;③關好A驅動器門。則冷啟動的操作順序應為
A) ①→②→③ B) ③→②→① C) ②→①→③ D) ②→③→①
(12) 設當前盤中某一文件路徑為\A\C\B\,當前目錄為\A。下列命令中錯誤的是
A) CD.. B) RD \A\C\B
C) TYPE \A\C\B\ D) TYPE C\B\
(13) 設當前盤中的根目錄下有一子目錄AB,在子目錄AB下有一文件。現要查看文件
的內容,應使用命令
A) TYPE \AB B) TYPE \AB\
C) TYPE \ D) DIR \AB\
(14) 自動批處理文件必須放在
A) C盤根目錄中 B) A盤根目錄中
C) 啟動盤的任一個目錄中 D) 啟動盤的根目錄中
(15) 設當前盤當前目錄為C:\USER\XY\P,且當前盤當前目錄為空,則下列命令中能正
確執行的是
A) RD C:\USER\XY\P B) RD USER\XY\P
C) MD \USER\XY\P\USER D) MD \USER\XY\P\X\Y
(16) 下列DOS命令中,合法的是
A) DISKCOMP B) TYPE >>
C) COMP A: B: D) COMP A: A:
(17) 設當前盤為C盤,所用的所有軟盤已格式化,且容量相同,則下列DOS命令中錯
誤的是
A) DISKCOPY A: A: B) COPY A:*.* C) COPY *.* D) COPY A:*.* C:
(18) 下列DOS命令中錯誤的是
A) TYPE >PRN B) TYPE PRN
C) COPY *.TXT PRN D) COPY CON PRN
(19) 下列四組DOS命令中,互相等價的一組是
A) COPY A:*.* B:與DISKCOPY A: B:
B) COPY +與TYPE >>
C) COPY + 與COPY +
D) TYPE *.FOR>CON與COPY *.FOR CON
(20) 設C盤目錄結構如下:
且C盤根目錄下文件的內容為
CD FORTRAN
CD \TC
如果在A驅動器中插入一張根目錄中只有擴展名為.C的若干文件(即A盤中無DOS系統
文件)的軟碟片,則由C盤啟動DOS系統後,第一次鍵入下列命令中,正確的是
A) COPY A:\*.C B) COPY A:\*.C TC
C) COPY A:\*.C FORTRAN D) CD USER
(21) C語言提供的合法的數據類型關鍵字是
A) Double B) short C) integer D) Char
(22) 在C語言中,合法的長整型常數是
A) 0L B) 4962710 C) D)
(23) 表達式:10!=9的值是
A) true B) 非零值 C) 0 D) 1
(24) 合法的C語言中,合法的長整型常數是
A) '\t' B) "A" C) 65 D) A
(25) 若有說明和語句:
int a=5;
a++;
此處表達式a++的值是
A) 7 B) 6 C) 5 D) 4
(26) 在下列選項中,不正確的賦值語句是
A) ++t; B) n1=(n2=(n3=0)); C) k=i==j; D) a=b+c=1;
(27) 若有說明:int i,j=7, *p=&i;,則與i=j;等價的語句是
A) I= *P; B) *P=*&J; C) i=&j; D) i=* *p;
(28) 不能把字元串:Hello!賦給數組b的語句是
A) char b[10]={'H','e','l','l','o','!'};
B) char b[10];b="Hello!";
C) char b[10];strcpy(b,"Hello!");
D) char b[10]="Hello!";
(29) 若有以下說明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
char c='a',d,g;
則數值為4的表達式是
A)a[g-c] B)a[4] C)a['d'-'c'] D)a['d'-c]
(30) 若有以下說明:
int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
則數值為6的表達式是
A) *p+6 B) *(p+6) C) *p+=5 D) p+5
(31) 若有以下說明:
int w[3][4]o={{0,1},{2,4},{5,8}};
int(*p)[4]=w;
則數值為4的表達式是
A) *w[1]+1 B) p++,*(p+1) C) w[2][2] D) p[1][1]
(32) 若程序中有下面的說明和定義
struct abc
{int x;char y;}
struct abc s1,s2;
則會發生的情況是
A) 編譯進錯 B) 程序將順利編譯`連接`執行
C) 能順利通過編譯`連接`但不能執行 D) 能順利通過編譯`但連接出錯
(33) 能正確表示a≥10或a≤0的關系表達式是
A)a>=10 or a<=0 B)a>=10│a<=0
C)a>=10││a<=0 D)a>=10 ││a<=0
(34) 下面程序的輸出是
main()
{ int x=3,y=6,a=0;
while(x++!=(y+=o1))
{ a+o=1;
if(y
#include
main()
{ char ss[10]="12345";
strcat(ss,"6789");
gets(ss);printf("%s\n",ss);
}
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(35) 下面程序的輸出是
main()
{ char *a="";
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
switch(s[k])
{ default:v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++; }
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4); }
A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1
C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8
(36) 下面程序的輸出是
main()
{int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}
A)k=11,k=12,k=11 B)k=11,k=13,k=13 C)k=11,k=013,k=0xb D)k=11,k=13,k=b
(37) 若有以下程序段,w和k都是整型變數:
┆
w=k;
LB: if(w==0) go to LE;
w--;
printf("*");
goto LB;
LE: ┆
則不能與上面程序段等價的循環語句是
A)for(w=k;w!=0;w--) printf("*"); B)for(w=k;w;--w)printf("*");
C)w=k; D)w=k;
while(w--!=0)printf("*");w++; do{ w--;printf("*");}while(w!=0);
(38) 若有說明,double *p,a;則能通過scanf語句正確給輸入項讀入數據的程序段是
A)*p=&a; scanf("%lf",p); B)p=(double *)malloc(8);scanf("%f",p);
C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p);
(39) 當執行下面程序且輸入:ABC時,輸出的結果是
#include
#include
main()
{ char ss[10]="12345";
gets(ss);printf("%s\n",ss); }
A) ABC B) ABC9 C) 123456ABC D) ABC456789
(40) 若有以下的說明和語句:
main()
{int t[3][2], *pt[3],k;
fpr(k=o; k<3;k++)pt[k]=t[k];
}
則以一選項中能正確表示t數組元素地址的表達式是
A) &t[3][2] B) *pt[0] C) *(pt+1) D) &pt[2]
(41) 下面程序輸出數組中的最大值,由s指針指向該元素.
main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;
flr(p=a, s=a; p-a<10; p++)
if(---?---)s=p;
printf("The max:%d",*s):
}
則在if語句中的判斷表達式應該是
A) p>s B) *p>*s C) a[p]>a[s] D) p-a>p-s
(42) 下面程序的輸出是
#include
main()
{ char*a="abcdefgh";
fun(a);puts(a); }
fun (char * s)
{ int x=0,y;char c;
for(y=strlen(s)-1;x
A)abcdefgh B)hgfdecba C)dcbahgfe D)hgfedcba
(43) 若有以下函數調用語句: fun(a+b,(x,y),fun(n+k,d,(a,b)));在此函數調用語句
中實參的個數是
A)3 B)4 C)5 D)6
(44) 下面程序的輸出是
main()
{ int t=1; fun(fun(t));}
fun(int h)
{ static int a[3]={1,2,3};
int k;
for(k=0;k<3;k++) a[k]+=a[k]-h;
for(k=1;k<3;k++) printf("%d",a[k]);
printf("\n"); return(a[h]);}
A)1,2,3, B)1,3,5, C) 1,3,5, D) 1,3,5,
1,5,9, 1,3,5, 0,4,8, -1,3,7,
(45) C語言中,函數的隱含存儲類別是
A)auto B)static C)extern D)無存儲類別
(46) 下面程序的輸出是
int w=3;
main()
{ int w=10; printf("%d\n",fun(5)*w); }
F. 誰有大一C語言考試題快考試了,跪求題庫··
單項選擇題(每小題2分,共50分)
1、一個C程序的執行是從___A__。
A、本程序的main函數開始,到main函數結束
B、本程序的main函數開始,到本程序文件的最後一個函數結束
C、本程序文件的第一個函數開始,到本程序文件的最後一個函數結束
D、本程序文件的第一個函數開始,到本程序main函數結束
2、C語言程序的基本單位是___C___。
A、程序行 B、語句
C、函數 D、字元
3、請選出可用作C語言用戶標識符的一組標識符___B___。
A、void B、a3_b3 C、For D、2a
define _123 -abc DO
WORD IF ase sizeof
主要特點
C語言是一種結構化語言,它有著清晰的層次,可按照模塊的方式對程序進行編寫,十分有利於程序的調試,且c語言的處理和表現能力都非常的強大,依靠非常全面的運算符和多樣的數據類型,可以輕易完成各種數據結構的構建,通過指針類型更可對內存直接定址以及對硬體進行直接操作,因此既能夠用於開發系統程序,也可用於開發應用軟體。
以上內容參考:網路-c語言
G. 大一C語言期末考試求題庫
一、單項選擇題(共10題,每題2分,共20分。在備選答案中選擇一個最佳答案。多選、錯選、不選不得分)
1、不是C語言基本數據類型的是( )。
A、指針類型 B、整型
C、字元型 D、實型
2、設有:int a=3, b= 4, c= 5,x , y; 表達式0 && (x=a)&&(y=b)的值為( )。
A、1 B、0 C、3 D、4
3、設有語句 int a=3 ; 則執行了語句 a+=6;後,變數a 的值為( )。
A、18 B、-3 C、9 D、12
4、執行以下程序段後,輸出的y值為( )
void main()
{ int a[]={2,4,6,8,10};
int y, *p;
p=&a[0];
y=*p; printf(「%d」,y);
}
A、2 B、4 C、6 D、8
5、有定義語句:float a[4];則分配給數組a的內存空間為( )位元組。
A、 20 B、 12 C、 16 C、10
6、以下描述錯誤的是( )。
A、break語句可用於while語句。
B、break語句和continue語句的作用是一樣的。
C、在循環語句中使用break語句是為了跳出循環,提前結束循環。
D、在循環語句中使用continue語句是為了結束本次循環,而不終止整個循環。
7、C語言中規定,if語句的嵌套結構中,else總是( )。
A、與最近的if 配對 B、與第一個if 配對
C、按縮進位置相同的if配對 D、與最近的且尚未配對的if 配對
8、說明語句「int (*p)( ); 」的含義是( ) 。
A、p是一個指向一維數組的指針變數。
B、p是指針變數,指向一個整型數據。
C、p是一個指向函數的指針,該函數返回一個int型數據。
D、以上都不對。
9、以下對二維數組c的正確聲明是 ( ) 。
A、int c[3][ ]; B、int c(3,4);
C、int c(2)(2); D、int c[3][2];
10、下述程序段執行後輸出結果為( )。
int x=100, y=200;
printf ("% d", (x, y));
A、100 B、200 C、100,200 D、編譯出錯
二、填空題(共7題,共10空,每空1分,共10分。將答案填在題中橫線上)
1、C語言提供的三種邏輯運算符是 && 、 || 和!;
2、函數的返回值是通過函數中的 return 語句獲得的。
3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}};"定義後,a[2][2]的值為_6__ _;
4、對於"int *pa[5];" pa是一個具有5個元素的_數組指針_,每個元素是一個指向int型變數的__指針__;
5、單向鏈表的尾節點next指針應賦值__ NULL___;
6、在語句for(x=1,y=3;x>y;y++)中循環體執行的次數為 0 。
7、int a[5];數組a的首地址為2000,則元素a[1]的地址為 2002 ,元素a[2]的地址為 2004 。
三、程序填空題(共2題,共5空,每空4分,共20分)
1、以下程序完成計算1-1/2+1/3-1/4+1/5+……前n 項和,請填空。
#include <stdio.h>
int main( )
{ int i, n, flag;
float sum;
scanf("%d", &n);
flag= 1 ;
sum=0;
for(i=1;i<=n; i++ )
{ sum+=(float)flag/i;
flag=-flag ;
}
printf("%.3f\n", sum);
}
2、以下程序的功能是從鍵盤輸入n個整數,統計其中正數、0、負數的個數,請填空。
#include <stdio.h>
void main( )
{int a, i, count1,count2,count3;
count1=count2=count3=0 ;
for(i=1;i<=n;i++)
{ scanf(「%d」, &a);
if(a>0) count1++;
else if(a==0) count2++ ;
else count3++;
}
printf(「正數:&d個,零:%d個,負數:%d個\n」, count1,count2,count3 );
}
四、運行程序結果題(共4題,每題6分,共24分)
1、寫出程序運行結果。
void main( )
{ int x=1,y=2,t;
int *p1,*p2;
p1=&x; p2=&y;
t=*p1;*p1=*p2;*p2=t;
printf("x=%d,y=%d\n",x,y);
}
運行結果為:
程序有錯,不能運行!或寫:
x=2,y=1
2、寫出程序運行結果。
#include<stdio.h>
int max(int a,int b)
{ int c;
c=a>b?a:b;
return(c);
}
int min(int a,int b)
{int c;
c=a<b?a:b;
return(c);
}
void main()
{ int a=2,b=6;
printf("max=%d\n",max(a,b));
printf(「min=%d\n」,min(a,b));
}
運行結果為:
程序有錯,不能運行!或寫:
max=6
min=2
3、寫出程序運行結果。
#include <stdio.h>
void main()
{ int a[3][3]={1,2,3,4,5,6,7,8,9};
int i,j,sum=0;
for (i=0;i<3;i++)
for(j=0;j<3;j++)
if(i==j) sum=sum+a[i][j];
printf(「sum=%d\n」,sum);
}
運行結果為:
程序有錯,不能運行!或寫:
sum=15
4、寫出程序運行結果。
void main( )
{ int n,f;
n=1;
while(n<=10)
{ f=f*n;
n+=2;
}
printf(「f=%d\n」,&f);
}
運行結果為:
程序有錯,不能運行!或寫:
f=不確定
五、程序設計題(共2題,每題13分,共26分)
1、將一個數組按逆序存放,如元素1、2、3、4、5,按逆序存放後為5、4、3、2、1。
H. c語言的簡答題!求高手解答
1 C 外部extern
2 A 函數中有遞歸函數 void型函數為無返回值函數 C語言程序有函數體組成 main函數 到各個子函數等
3 D 數組名做形參傳的是數組首地址 B C不解釋 被調函數在主調之前可以不聲明
4 D
5 D
6 B
7 B static 可以修飾任意位置變了 全局和靜態變態存在數據區 初值為0
8 B
9 A static修飾局部變數後存在數據區 不在存放在棧區, 全局被修飾後不能被其他文件引用變小作用域 全局和靜態變數初值為0
10 D
全手打
I. C語言程序設計,簡答題,求正解啊.
1.以下程序的輸出結果是什麼。
#include<stdio.h>
voidmain()
{
inta=1,b=0;
switch(a){
//switch選擇語句,a=1,那麼就選擇case1執行.
case1://注意此處case1沒有break,所以後面的case2也執行.
switch(b){
//switch選擇語句,b=0,那麼就選擇case0執行.
case0:printf(「0」);break;
//執行case0,輸出0,它有break終止語句,所以後面的case2就不執行了.
case1:printf(「1」);break;
}
case2:printf(「2」);break;
//執行case2,輸出2.
}
}
//總的輸出結果:02
//知識點:理解選擇分支結構,case遇到break才會終止後面的執行.
2.以下程序的輸出結果是什麼。
#include<stdio.h>
voidmain()
{
inta=3,b=2,c=1;
//a、b、c的作用域在main函數內.
{
intb=5,c=12;
//b、c的作用域在{}內.
c-=b*2;
//此時b、c調用的值是{}內的b=5、c=12,那麼c=12-5*2=2
a+=c;
//此時的a是調用的main函數的a=3,c調用的是c=2.即結果a=3+2=5.
}
printf(「a=%d,b=%d,c=%d 」,a,b,c);//此時a、b、c都是調用的main函數內的變數,a有經過操作,a=5,b、c沒有經過操作,b=2,c=1.
}
//總的輸出結果為:a=5,b=2,c=1
//知識點:考查變數的作用域,記住自動變數的作用域只在{}內,超出作用域就不生效了.
3.以下程序的輸出結果是什麼。
#include<stdio.h>
intmain(void)
{
intx=1,y=2,z=2;
if(x)z+=1;
//x>0為真,執行z+=1;z變為3
if(!y)z+=2;//!y<0為假,不執行.
if(z)z+=3;
//z>0為真,執行z+=3;z變為6
printf("%d ",z);
//輸出6
return0;
}
//總的輸出結果為:6
//知識點:對if語句的判斷條件,真執行、假不執行.
4以下程序的輸出結果是什麼。
#include<stdio.h>
intmain(void)
{
inta=3,b=4,c=5,d=6;
if(a>b)
//a>b為假,所以後面的語句不執行.
if(b>c)printf("%d",c);
elseprintf("%d",b);
//注意這里,else總是與上面的if匹配.
printf("%d ",d);
//輸出d=6,沒有經過任何語句操作.
return0;
}
//總的輸出結果:6
//知識點:else總是與最近的if匹配.
5.以下程序的輸出結果是什麼。
#include<stdio.h>
voidmain()
{
ints,t,a,b;
a=2;b=4;
s=t=1;
if(a>0)s+=1;
//a>0為真,執行s+=1;s變為2
if(a>b)t=s+t;//a>b為假,所以執行else語句,else為if下面的第一個,最近的.
else
if(a==b)t=5;
//執行if(a==b)不成立,所以執行else語句,else為if下面的第一個,最近的.
elset=2*s;
//執行t=2*s;即t=2*2=4.
printf(「%d 」,t);
}
//總的輸出結果為:4
//知識點:else總是與最近的if匹配.(if找它下面的第一個else,else找它上面的第一個if,前提是if、else沒有括弧()限制優先順序)