c語言函數(shù)題目怎么做,c語言函數(shù)題目怎么做初中

請(qǐng)問這道c語言題怎么做?

從main函數(shù)開始,逐句分析:

成都創(chuàng)新互聯(lián)公司10多年成都企業(yè)網(wǎng)站建設(shè)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì)及高端網(wǎng)站定制服務(wù),成都企業(yè)網(wǎng)站建設(shè)及推廣,對(duì)成都崗?fù)?/a>等多個(gè)領(lǐng)域擁有多年的網(wǎng)站營(yíng)銷經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。

main函數(shù)的第一句定義了三個(gè)int(整型)變量a, i, k,a的值被初始化為4;

第二句是一個(gè)循環(huán),該循環(huán)將i的值定義為0,當(dāng)i的值小于2時(shí),循環(huán)條件通過,每循環(huán)一次,i的值就會(huì)加1,由此可知,該循環(huán)會(huì)執(zhí)行兩次。

在循環(huán)體中,包含了語句k=f(a++);,由后置遞增符的性質(zhì)可知,后置遞增符會(huì)先使用變量的值,使用完后,對(duì)變量進(jìn)行遞增。由此可知,傳入函數(shù)的值即為a的值。

進(jìn)入函數(shù),f(int a)中的a的值即為傳入的值,為4。逐句分析f()函數(shù):

第一句,定義整型變量b的值為0,該變量的生存期和作用域?yàn)檫@個(gè)函數(shù)。

第二句,定義靜態(tài)整型變量c的值為9,該變量的作用域?yàn)檫@個(gè)函數(shù),但是生存期為整個(gè)文件。

第三句,由于使用的是后置遞增符,先使用值,后遞增,所以c的值被賦給a后才會(huì)增加,后接b++。本語句結(jié)束后,c和b的值都增加了1,c的值變成了10,b的值變成了1。

第四句,return以變量a的值作為返回值。

回到main函數(shù)的第二句,k的值被修改成為了f()函數(shù)的返回值,即在f()函數(shù)中a的值。要注意的是,以傳值方式傳入函數(shù)的值并不會(huì)改變值本身,而是相當(dāng)于在函數(shù)中復(fù)制了一個(gè)副本使用。

該語句執(zhí)行完畢后,main函數(shù)中的變量a的值增加了1。

此時(shí)是for循環(huán)的第一次循環(huán)結(jié)束,進(jìn)入第二次循環(huán),同樣的傳入a的值,由于之前遞增過一次,所以現(xiàn)在它的值是5。重新進(jìn)入f()函數(shù)。

在f()函數(shù)中,由于其他的變量的生存期是函數(shù),在上一次f()函數(shù)結(jié)束時(shí),變量b被銷毀了,所以重新進(jìn)入變量后,變量b的值又變回了0。但由于c的生存期沒有結(jié)束,c的值不變,所以重新進(jìn)入函數(shù)后,c的值仍然是10。c的值賦給a,所以在執(zhí)行語句return a;時(shí)變量a的值是10,即函數(shù)的返回值是10。返回后該值賦給k,使得k的值變成了10。循環(huán)結(jié)束,跳出循環(huán)。

第三句,執(zhí)行printf()函數(shù),屏幕上輸出的值是10。

第四句,return 0;? 程序結(jié)束。

本題主要的難點(diǎn)在于對(duì)變量生存期的判定,即對(duì)static關(guān)鍵字的理解與掌握,忽視了函數(shù)中擁有文件生存期的變量在使用時(shí)值得變化原理。同時(shí),后置遞增運(yùn)算符同樣也是引起疑惑的原因之一。

這個(gè)C語言函數(shù)調(diào)用題目怎么做?

//希望我的回答對(duì)你的學(xué)習(xí)有幫助

#include?stdio.h

int?Factorial(int?n)

{

int?fac?=?1;

for?(int?i?=?1;?i?=?n;?i++)

{

fac?*=?i;

}

return?fac;

}

int?main()

{

int?sum?=?0;

for?(int?i?=?1;?i?=?10;?i++)

{

sum?+=?Factorial(i);

}

printf("1!?+?2!?+?3!?...?+?10!?=?%d\n",?sum);

return?0;

}

C語言函數(shù)編程題

修改后的C語言程序:

#include?stdio.h?

void?triangle(int?g)

{

int?n=1,?m; /*?修改處1?*/

for(n;n=g;?n++)

{

for(m=1;m=2*n-1;m++) /*?修改處2?*/

putchar('*');

putchar('\n');

}

}

void?rectangle(int?g)

{

int?n=1,?m; /*?修改處3?*/

for(n;n=g;n++)

{

for(m=1;m=3;m++) /*?修改處4?*/

putchar('*');

putchar('\n');

}

}

int?main()

{

int?i,k;

printf("請(qǐng)輸入行數(shù)(大于3):");

scanf("%d",i);

printf("請(qǐng)選擇圖形:1---三角形??\t2---矩形\t3---小旗?:");

scanf("%d",k);

if(k==1)

{?

triangle(i);

}

if(k==2)

{?

rectangle(i);

}

if(k==3)

{?

triangle(i);

rectangle(i);

}

return?0;

}

這個(gè)C語言函數(shù)題怎么做?

# include stdio.h

# include math.h

int main(void)

{

//把三個(gè)系數(shù)保存到計(jì)算機(jī)中

int a = 1; //=不表示相等,表示賦值

int b = 5;

int c = 6;

double delta; //delt存放的是 b*b - 4*a*c

double x1; //存放一元二次方程的其中一個(gè)解

double x2; //存放一元二次方程的其中一個(gè)解

delta = b*b - 4*a*c;

if (delta 0)

{

x1 = (-b + sqrt(delta)) / (2*a);

x2 = (-b - sqrt(delta)) / (2*a);

printf("該一元二次方程有兩個(gè)解, x1 = %f, x2 = %f\n", x1, x2);

}

else if (delta == 0)

{

x1 = (-b) / (2*a);

x2 = x1; //右邊賦給左邊

printf("該一元二次方程有一個(gè)唯一解, x1 = x2 = %f\n", x1);

}

else

{

printf("無解\n");

}

return 0;

}

當(dāng)前標(biāo)題:c語言函數(shù)題目怎么做,c語言函數(shù)題目怎么做初中
網(wǎng)站路徑:http://muchs.cn/article8/phgeip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、全網(wǎng)營(yíng)銷推廣網(wǎng)站策劃、用戶體驗(yàn)、標(biāo)簽優(yōu)化搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)