寫在前面:這裏是小王成長日誌,一名在校大學生,想在學習之餘將自己的學習筆記分享出來,記錄自己的成長軌跡,幫助可能需要的人。歡迎關注與留言。
1. 分析下列程序,若輸入:123456,輸出結果是多少?請上機驗證並回答如下問題。
#include <stdio.h>
int main()
{
int data;
printf("請輸入一個數:");
scanf("%ld",&data);
while(data)
{
printf("%d,",data%10);
data=data/10;
}
printf("\n");
return 0;
}
回答:
1).上面的程序實現的功能是什麼?
答:倒序輸出輸入的數字的每一位,例如輸入123456則輸出6,5,4,3,2,1,
2).如果要求程序不輸出最後一個逗號,應該如何修改?
答:將while循環體修改如下:
while (data)
{
printf("%d", data % 10);
data = data / 10;
if (data > 0)
printf(",");
}
- 下列程序的功能爲:計算1020個西瓜幾天後能賣完(第一天賣了一半多兩個,以後每天賣剩下的一半多兩個),請在橫線處填空,使程序實現其功能並上機調試。
#include <stdio.h>
int main()
{
int day,x1,x2;
day=0;
x1=1020;
while(x1>0)
{
x2= x1/2-2 ;
x1=x2;
day++;
}
printf("day=%d\n",day);
return 0;
}
3.程序填空,以下程序的功能是計算並輸出s=1+1/2+1/3+…+1/10的結果。請將程序填充完整,並上機調試運行驗證,然後回答如下問題。
提示:輸出結果是:2.928968,填寫時要注意類型。
#include <stdio.h>
#include <math.h>
int main()
{
int i;
float s=0;
for(i=1;i<=10;i++)
s=s+1/(float)i;
printf("%f\n",s);
return 0;
}
回答:
1).若將計算公式改爲s=1-1/2+1/3-1/4+1/5…-1/10,程序應該如何修改。(結果爲:0.645635,可以增加新的標誌變量(如t)來表示每一項的正負號,初值設置爲1)
答:將for循環體修改如下
for (i = 1; i <= 10; i++)
{
int t = 1;
if ((i + 2) % 2 == 0)//將i放大以規避1%2==0
t = -1;
else
t = 1;
s = s + t / (float)i;
}
2).若將計算公式改爲s=1-1/2+1/3-1/4+1/5…-1/10,程序應該如何填空。(注意不能增加新行和增加新的變量,結果爲:0.645635)
答:將for循環體修改如下
for (i = 1; i <= 10; i++)
s = s + 1 / (float)i * pow(-1, i + 1);//乘以 (-1)^(i+1)
- 編程實現:輸入一行字符,以回車鍵作爲結束標誌,分別統計出大寫字母、小寫字母、數字字符、空格和其它字符的個數。
答:
#include <stdio.h>
int main()
{
char a;
int small = 0, big = 0, num = 0, space = 0, other = 0;
while ((a = getchar()) != '\n')
{
if (a >= 'a' && a <= 'z')
small++;
else if (a >= 'A' && a <= 'Z')
big++;
else if (a >= '0' && a <= '9')
num++;
else if (a == ' ')
space++;
else
other++;
}
printf("小寫字母個數是:\t%d\n\
大寫字母個數是:\t%d\n\
數字個數是:\t%d\n\
空格個數是:\t%d\n\
其他字符個數是:\t%d",small, big, num, space, other);
return 0;
}
- 編程實現:求序列2/1+3/2+5/3+8/5+…前20項之和。
答:
#include <stdio.h>
int main()
{
double x = 1, y = 2, sum = 0;
for (int i = 0; i < 20; i++, y = x + y, x = y - x)
sum += y / x;
printf("%lf", sum);
return 0;
}
都看到這裏了,各位哥哥姐姐叔叔阿姨給小王點個贊 關個注 留個言吧,和小王一起成長吧,你們的關注是對我最大的支持。
有事沒事進來看看吧 : 小王的博客目錄索引
C語言專欄看這 : C語言學習專欄
如果以上內容有任何不準確或遺漏之處,或者你有更好的意見,就在下面留個言讓我知道吧-我會盡我所能來回答。