參考鏈接: 用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