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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转载] C Primer Plus 第6章 C控制语句 6.16 编程练习及答案

發布時間:2025/3/11 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载] C Primer Plus 第6章 C控制语句 6.16 编程练习及答案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考鏈接: 用Python打印金字塔圖案的程序

2019獨角獸企業重金招聘Python工程師標準>>>? ?

??

?1、編寫一個程序,創建一個具有26個元素的數組,并在其中存儲26個小寫字母。并讓該程序顯示該數組的內容。?

?#include?

int main (void)

{

? ? int i;

? ? int max=26;

? ? char CH[max];

?

? ? for(i=0;i?

?2、使用嵌套循環產生下列圖案:?

?$?

?$$?

?$$$?

?$$$$?

?$$$$$?

?

#include?

int main (void)

{

? ? int i,j;

?

? ? for(i=0;i<5;i++)

? ? {

? ? ? ? for (j=0;j<=i;j++)

? ? ? ? ? ? printf("$");

? ? ? ? printf("\n");

? ? }

? ? return 0;

}

?

?3、使用嵌套循環產生下列圖案:?

?F?

?FE?

?FED?

?FEDC?

?FEDCB?

?FEDCBA?

?

#include?

int main (void)

{

? ? int i,j;

? ? char ch='F';

?

? ? for(i=0;i<6;i++)

? ? {

? ? ? ? for (j=0;j<=i;j++)

? ? ? ? ? ? printf("%C",ch-j);

? ? ? ? printf("\n");

? ? }

? ? return 0;

}

?

?4、讓程序要求用戶輸入一個大寫字母,使用嵌套循環產生像下面這們的金字塔圖案:?

? ? ?A?

? ? ABA?

? ?ABCBA?

? ABCDCDA?

?ABCDEDCBA?

?這種圖案要擴展到用戶輸入的字符。例如前面的圖案是在輸入E時需要產生的。提示:使用一個外部循環來處理行,在每一行中使用三個內部循環,一個處理空格,一個以升序打印字母,一個以降序打印字母。??

?#include?

int main (void)

{

? ? int i,j,k;

? ? char letter;

?

? ? printf("Please input a capital:");

? ? scanf("%c",&letter);

? ? k=letter-'A'+1;? ? ? ? ? ? ? ? ? ? //計算字符的個數;

? ? for(i=0;i=0;j--)? ? ? ? ? ? //第三個循環,降序打印字母(比升序時少1個字母)

? ? ? ? printf("%c",'A'+j);

? ? ? ? printf("\n");

? ? }? ??

return 0;

}

? ??

? 5、編寫一個程序打印一個表,表的每一行都給出一個整數、它的平方以及它的立方。要求用戶輸入表的上限和下限。使用一個for循環。?

?#include

int main (void)

{

? ? int i,min,max;

? ? printf("Please input the min and the max :");

? ? scanf("%d %d",&min,&max);

? ? printf("%10s%10s%10s\n","num","square","cube");

? ? for(i=min;i<=max;i++)

? ? {

? ? ? ? printf("%10d%10d%10d\n",i,i*i,i*i*i);

? ? }

? ? return 0;

}

?

?6、編寫一個程序把一個單詞讀入一個字符數組,然后反向打印這個詞。提示:使用strlen()計算數組中最后一個字符的索引。?

?#include?

#include? ?//使用strlen()

int main (void)

{

? ? char word[20];

? ? int i;

? ? printf("Please input a word:");

? ? scanf("%s",&word);

? ? for(i=strlen(word)-1;i>=0;i--)? //最后一個字符的下標strlen(word)-1,word是數組名稱

? ? ? ? printf("%c",word[i]);

? ? printf("\n");

? ? return 0;

}?

?7、編寫一個程序要求輸入兩個浮點數,然后打印用兩者的差值除以兩者的乘積所得的結果。在用戶鍵入非數字的輸入之前程序循環處理每對輸入值。?

?#include?

int main (void)

{

? ? float f1,f2;

? ? printf("Please input tow floats:");

? ? while(scanf("%f%f",&f1,&f2)==2)

? ? {

? ? ? ? printf("The result is %.2f\n",(f1-f2)/(f1*f2));

? ? ? ? printf("Please input tow floats:");

? ? }

? ? printf("end\n");

? ? return 0;

}

?

?8、對練習7進行修改,讓它使用一個函數來返回計算值。?

?#include?

float fac(float a,float b);

int main (void)

{

? ? float f1,f2;

? ? printf("Please input tow floats:");

? ? while(scanf("%f%f",&f1,&f2)==2)

? ? {

? ? ? ? printf("The result is %.2f\n",fac(f1,f2));

? ? ? ? printf("Please input tow floats:");

? ? }

? ? printf("end\n");

? ? return 0;

}

float fac(float a,float b)

{

? ? float c;

? ? c=(a-b)/(a*b);

? ? return c ;

}

?

?9、編寫一個程序,要求用戶輸入下限整數和一個上限整數,然后,依次計算從下限到上限的每一個整數的平方的加和,最后顯示結果。程序將不斷提示用戶輸入下限整數和上限整數并顯示出方法,直到用戶輸入的上限整數等于或小于下限整數為止。程序運行結果示例應該如下所示?

?Enter lower and upper integer limits:5 9?

?The sums of the squares from 25 to 81 is 255?

?Enter next set of limits :3 25?

?The sums of the squares from 9 to 625 is 5520?

?Enter next set of limits :5 5??

?Done?

?#include?

int fac(int a,int b);

int main (void)

{

? ? int n1,n2;

? ? printf("Enter lower and upper integer limits:");

? ? scanf("%d %d",&n1,&n2);

? ? while(n1?

?10、編寫一個程序,把8個整數讀入一個數組中,然后以相反的順序打印它們;?

?

#include?

int main (void)

{

? ? int abc[8];

? ? int i;

? ? printf("Please input 8 numbers:");

? ? for(i=0;i<8;i++)? ? ? ? ? //循環讀取輸入

? ? {

? ? ? ? scanf("%d",&abc[i]);

? ? }

? ? for(i=7;i>=0;i--)

? ? {

? ? ? ? printf("The %d is %d\n",i+1,abc[i]);

? ? }

? ? return 0;

}

?

?11、考慮這兩個無限序列:?

?1.0+1.0/2.0+1.0/3.0+1.0/4.0+......?

?1.0-1.0/2.0+1.0/3.0-1.0/4.0+......?

?編寫一個程序來計算這兩個序列不斷變化的總和,直到達到 某個次數。讓用戶交互的輸入這個次數。看看在20次、100次和500次之后 的總和。是否每個序列都看上去要收斂于某個值?提示:奇數個-1的乘積為-1,而偶數個-1的乘積為1。?

?#include

?

int main(void)

{

?double i,sum1,sum2;

?int sign,count;

?printf("Enter the count:");

?scanf("%d",&count);

?for(i=1.0,sign=1,sum1=0,sum2=0;i<=count;i++,sign *= -1)

?{

? sum1 += 1.0 / i;

? sum2 += sign * 1.0 / i;? ? ? //利用sign的變化規律,使運算符在正負間交替變化

?}

?printf("1.0 + 1.0/2.0 + 1.0/3.0 + 1.0/4.0 ...(%d terms) = %lf\n",count,sum1);

?printf("1.0 - 1.0/2.0 + 1.0/3.0 - 1.0/4.0 ...(%d terms) = %lf\n",count,sum2);

?printf("%d\n",sign);

?return(0);

}?

? 12、編寫一個程序,創建一個8個元素的int數組,并且把元素分別設置為2的前8次冪,然后打印出它們的值。使用for循環來設置值;為了變化,使用do while來顯示這些值。?

?#include

#include

int main(void)

{

? ? int num[8];

? ? int i;

? ? for (i=0;i<8;i++)

? ? {

? ? ? ? num[i]=pow(2,i);? //POW乘冪函數,利用math.h頭文件

? ? }

? ? i=0;? ? ?//使用do while時需將i初始為0;

? ? do

? ? ? ? printf("%d\t",num[i]);

? ? while(++i<8);? //退出條件為++i<8

? ? return 0;

}

/*do while 至少為執行一次,檢測退出條件是否滿足,滿足時返回再次執行,直到while的值為flase*/?

?13、編寫一個程序,創建兩個8元素的double數組,使用一個循環來讓用戶鍵入第一個數組的8個元素的值。程序把第二個數組的元素設置為第一個數組的元素的累積和。例如,第二個數組的第4個元素應該等于第一個數組 的前4個元素的和,第二個數組的第5個元素應該等于第一個數組的前5個元素的和(使用嵌套循環可以做到這一點。不過利用第二個數組的第5個元素等于第二個數組的第4個元素加上第一個數組的第5個元素這個事實,可以避免嵌套,而使用單個循環來完成這個任務)。最后,使用一個循環來顯示這兩個數組的內容,第一個數組在一行中顯示 ,而第二個數組的每個元素在第一個數組的對應元素之下進行顯示。?

?#include

int main(void)

{

? ? double num[8],sum[8];

? ? int i,j;

? ? printf("Please enter 8 numbers:");

? ? for(i=0;i<8;i++)? ? //在一個循環中為兩個數組賦值

? ? {

? ? ? ? ?scanf("%lf",&num[i]);

? ? ? ? ?for(j=0,sum[i]=0;j<=i;j++)? //從數組元素等于主數組元素的累加和;

? ? ? ? ? ? sum[i] += num[j];? /*注意此處的公式,sum數組的第n個元素等于第n-1個元素加num數組的第n元素的值*/

? ? }

? ? for(i=0;i<8;i++)

? ? ? ? printf("%8.3lf",num[i]);

? ? printf("\n");

? ? for(i=0;i<8;i++)

? ? ? ? printf("%8.3lf",sum[i]);

? ? printf("\n");

? ? return 0;

}

?

?14、編寫一個程序讀入一行輸入,然后反向打印該行。您可以把輸入存儲在一個char數組中;假定該行不超過255個字符。回憶一下,您可以使用具有%c說明符的scanf()從輸入中一次讀入一個字符 ,而且當您按下回車鍵時會產生換行符(\n).?

?#include<stdio.h>

#define LENGTH 20

int main(void)

{

? ? char a[255];

? ? int i;

? ? for(i=0;i<LENGTH;i++)

? ? ? ? scanf("%c",&a[i]);

? ? for(i=LENGTH-1;i>=0;i--)? //注意:i=LENGTH-1,而不等于LENGTH

? ? ? ? printf("%c",a[i]);

? ? printf("\n");

? ? return 0;

}

?

?15、Daphne以10%的單利息投資了100美元(也就是說,每年投資贏得的利息等于原始投資的10%)。Deirde則以每年5%的復合利息投資了100美元(也就是說,利息是當前結余的5%,其中包括以前的利息)。編寫一個程序,計算需要多少年Deirdre 的投資才會超過Daphne,并且顯示出到那里兩個人的投資額。?

?#include<stdio.h>

int main(void)

{

? ? double Daphne=100,Deirdre=100;

? ? int i=0;? ? ? ? ? ? ? ? ? ? ? ? ?//不要忘記變量的初始化

? ? while(Daphne>=Deirdre)

? ? ? ? {

? ? ? ? ? ? Daphne+=100*0.1;

? ? ? ? ? ? Deirdre+=Deirdre*0.5;

? ? ? ? ? ? i++;

? ? ? ? }

? ? printf("After %d years,Deirdre's investment is %f ,Daphne's investment is %f \n",

? ? ? ? ? ?i,Deirdre,Daphne);

? ? return 0;

?

}

?

?16、Chuckie Luchy贏了100萬美元,他把它存入每年贏得8%的帳戶。在每年的最后一天,Chuckie取出10萬美元。編寫一個程序,計算需要多少年Chuckie就會清空他的帳戶。?

?#include<stdio.h>

?

int main(void)

{

?double investment = 100;

?int i=0;

?while(investment > 0)

?{

? investment += investment * 0.08;

? investment -= 10;

? i++;

?}

?printf("After %d years,Chuckie Lucky's investment is out\n",i);

?return(0);

}

?

? ?

??

? ?

? ??

? ?

??

?

轉載于:https://my.oschina.net/idreamo/blog/689759

總結

以上是生活随笔為你收集整理的[转载] C Primer Plus 第6章 C控制语句 6.16 编程练习及答案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。