《浙江大學C程題庫(更新).doc》由會員分享,可在線閱讀,更多相關(guān)《浙江大學C程題庫(更新).doc(181頁珍藏版)》請在裝配圖網(wǎng)上搜索。
______________________________________________________________________________________________________________
c語言程序設(shè)計題目及答案
20021程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù)repeat (0
int main(void)
{
int repeat, ri;
double x, y;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf", &x);
/*---------*/
if(x!=0) y=1/x;
else y=0;
printf("f(%.2f) = %.1f\n", x, y);
}
}
20022程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入華氏溫度,輸出對應的攝氏溫度。計算公式:c = 5*(f-32)/9,式中:c表示攝氏溫度,f表示華氏溫度。
輸入輸出示例:括號內(nèi)為說明
輸入
150 (fahr=150)
輸出
celsius = 65
#include
int main(void)
{
int celsius, fahr;
/*---------*/
scanf(“%d”,&fahr);
celsius=5.0*(fahr-32)/9;
printf("celsius = %d\n", celsius);
}
20023程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入存款金額 money、存期 year 和年利率 rate,根據(jù)下列公式計算存款到期時的利息 interest(稅前),輸出時保留2位小數(shù)。
interest = money(1+rate)^year - money
輸入輸出示例:括號內(nèi)為說明
輸入
1000 3 0.025 (money = 1000, year = 3, rate = 0.025)
輸出
interest = 76.89
#include
#include
int main(void)
{
int money, year;
double interest, rate;
/*---------*/
scanf(“%d%d%lf”,&money,&year,&rate);
interest=money*pow((1+rate),year)-money;
printf("interest = %.2f\n", interest);
}
20024程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù)repeat (0= 0時,f(x) = x^0.5,當x小于0時,f(x) = (x+1)^2 + 2x + 1/x。
輸入輸出示例:括號內(nèi)是說明
輸入
3 (repeat=3)
10
-0.5
0
輸出
f(10.00) = 3.16
f(-0.50) = -2.75
f(0.00) = 0.00
#include
#include
int main(void)
{
int repeat, ri;
double x, y;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
/*---------*/
scanf("%lf", &x);
if(x>=0) y=sqrt(x);
else y=pow((x+1),2)+2*x+1/x;
printf("f(%.2f) = %.2f\n", x, y);
}
}
20025程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù)repeat (0
int main(void)
{
int repeat, ri;
double x, y;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
/*---------*/
scanf("%lf", &x);
if(x!=10) y=x;
else y=1/x;
printf("f(%.1f) = %.1f\n", x, y);
}
}
20026程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入2個整數(shù) num1 和 num2,計算并輸出它們的和、差、積、商與余數(shù)。
輸出兩個整數(shù)的余數(shù)可以用 printf("%d %% %d = %d\n", num1, num2, num1%num2);
輸入輸出示例:括號內(nèi)是說明
輸入
5 3 (num1=5,num2=3)
輸出
5 + 3 = 8
5 - 3 = 2
5 * 3 = 15
5 / 3 = 1
5 % 3 = 2
#include
int main(void)
{
int num1, num2;
/*---------*/
scanf("%d%d", &num1,&num2);
printf("%d + %d = %d\n", num1, num2, num1+num2);
printf("%d - %d = %d\n", num1, num2, num1-num2);
printf("%d * %d = %d\n", num1, num2, num1*num2);
printf("%d / %d = %d\n", num1, num2, num1/num2);
printf("%d %% %d = %d\n", num1, num2, num1%num2);
return 0;
}
20031程序填空,不要改變與輸入輸出有關(guān)的語句。
計算表達式 1 + 2 + 3 + ...... + 100的值。
輸出示例:
sum = 5050
#include
int main(void)
{
int i, sum;
/*---------*/
sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
printf("sum = %d\n", sum);
}
20032程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù)repeat (0
int main(void)
{
int i, m, sum;
int repeat, ri;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d", &m);
/*---------*/
sum=0;
for(i=m;i<=100;i++)
sum=sum+i;
printf("sum = %d\n", sum);
}
}
20033程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù)repeat (0
int main(void)
{
int i, m, n;
int repeat, ri;
double sum;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d%d", &m, &n);
/*---------*/
sum=0;
for(i=m;i<=n;i++)
sum=sum+1.0/i;
printf("sum = %.3f\n", sum);
}
}
20034程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù)repeat (0
int main(void)
{
int i, n;
int repeat, ri;
double sum;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d", &n);
/*---------*/
sum=0;
for(i=1;i<=n;i++)
sum=sum+1.0/(2*i-1);
printf("sum = %.6f\n", sum);
}
}
20035程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù)repeat (0
int main(void)
{
int flag, i, n, t;
int repeat, ri;
double item, sum;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d", &n);
/*---------*/
sum=0;flag=1;item=0;t=1;
for(i=1;i<=n;i++)
{ item=flag*1.0/t;
sum=sum+item;
flag=-flag;
t=t+3;
}
printf("sum = %.3f\n", sum);
}
}
20036程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù)repeat (0
int main(void)
{
int lower, upper;
int repeat, ri;
double celsius, fahr;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d%d", &lower, &upper);
printf("fahr celsius\n");
/*---------*/
for(fahr=lower;fahr<=upper;fahr=fahr+2){
celsius=5 * (fahr- 32) / 9;
printf("%3.0f %6.1f\n", fahr, celsius);
}
}
}
20037程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù)repeat (0
int main(void)
{
int i, n;
int repeat, ri;
double mypow, x;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf%d", &x, &n);
/*---------*/
mypow=1;
for(i=1;i<=n;i++)
mypow = mypow*x;
printf("%.2f\n", mypow);
}
}
20041程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù)n,生成一張3的乘方表,輸出3^0 ~ 3^n的值,可調(diào)用冪函數(shù)計算3的乘方。
輸出使用語句 printf("pow(3,%d) = %.0f\n", i, mypow);
輸入輸出示例:括號內(nèi)是說明
輸入
3 (n=3)
輸出
pow(3,0) = 1
pow(3,1) = 3
pow(3,2) = 9
pow(3,3) = 27
#include
#include
int main(void)
{
int i, n;
double mypow;
scanf("%d", &n);
/*---------*/
for(i=0;i<=n;i++){
mypow=pow(3,i);
printf("pow(3,%d) = %.0f\n", i, mypow);
}
return 0;
}
20042程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù)n,生成一張階乘表,輸出 1! ~ n! 的值,要求定義和調(diào)用函數(shù)fact(n)計算 n!,函數(shù)類型為double。
輸出使用語句 printf("%d! = %.0f\n", i, myfact);
輸入輸出示例:括號內(nèi)是說明
輸入
3 (n=3)
輸出
1! = 1
2! = 2
3! = 6
#include
int main(void)
{
int i, n;
double myfact;
double fact(int n);
scanf("%d", &n);
/*---------*/
for(i=1;i<=n;i++){
myfact=fact(i);
printf("%d! = %.0f\n", i, myfact);
}
return 0;
}
/*---------*/
double fact(int n)
{
int i;
double f=1;
for(i=1;i<=n;i++)
f=f*i;
return f;
}
20043程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù)repeat (0
#include
int main(void)
{
int i;
double sum;
/*---------*/
sum=0;;
for(i=100;i<=1000;i++)
sum=sum+sqrt(i);
printf("sum = %.2f\n", sum);
}
30001程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù)repeat (0
#include
int main(void)
{
int repeat, ri;
double a, b, c, d;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf%lf%lf", &a, &b, &c);
/*---------*/
d=b*b-4*a*c;
if(a==0)
if(b==0)
if(c==0)
printf("參數(shù)都為零,方程無意義!\n");
else printf("a和b為0,c不為0,方程不成立\n");
else printf("x = %0.2f\n", -c/b);
else if(d>=0){
printf("x1 = %0.2f\n", (-b+sqrt(d))/(2*a));
printf("x2 = %0.2f\n", (-b-sqrt(d))/(2*a));
}
else
{ printf("x1 = %0.2f+%0.2fi\n", -b/(2*a), sqrt(-d)/(2*a));
printf("x2 = %0.2f-%0.2fi\n", -b/(2*a), sqrt(-d)/(2*a));
}
}
}
30002程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù) repeat (0 0
輸入輸出示例:括號內(nèi)是說明
輸入
3 (repeat=3)
10 (x=10)
0 (x=0)
-98 (x=-98)
輸出
sign(10) = 1 (x = 10時 y = 1)
sign(0) = 0 (x = 0時 y = 0)
sign(-98) = -1 (x = -98時y = -1)
#include
int main(void)
{
int repeat, ri;
int x, y;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d", &x);
/*---------*/
if(x>0) y=1;
else if(x==0) y=0;
else y=-1;
printf("sign(%d) = %d\n", x, y);
}
return 0;
}
30003程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入10個字符,統(tǒng)計其中英文字母、空格或回車、數(shù)字字符和其他字符的個數(shù)。
輸入輸出示例:括號內(nèi)是說明
輸入
Reold 123?
輸出
letter = 5, blank = 1, digit = 3, other = 1
#include
int main(void)
{
char c;
int blank, digit, i, letter, other;
blank = digit = letter = other = 0;
for(i = 1; i <= 10; i++){
c = getchar();
/*---------*/
if((c >= 'a' && c <= 'z' ) || ( c >= 'A' && c <= 'Z'))
letter ++;
else if(c >='0'&&c<='9')
digit ++;
else if(c == ' ' || c == '\n')
blank ++;
else other ++;
}
printf("letter = %d, blank = %d, digit = %d, other = %d\n", letter, blank, digit, other);
return 0;
}
30004程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù) repeat (0
int main(void)
{
char ch;
int repeat, ri;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
ch = getchar();
/*---------*/
switch(ch) {
case 'A’: printf("90-100\n");break;
case 'B': printf("80-89\n");break;
case 'C' : printf("70-79\n");break;
case 'D' : printf("60-69\n");break;
case 'E' : printf("0-59\n"); break;
default: printf("Invalid input\n"); break;
}
}
return 0;
}
30005程序填空,不要改變與輸入輸出有關(guān)的語句。
查詢水果的單價。有4種水果,蘋果(apples)、梨(pears)、桔子(oranges)和葡萄(grapes),單價分別是3.00元/公斤,2.50元/公斤,4.10元/公斤和10.20元/公斤。
在屏幕上顯示以下菜單(編號和選項),用戶可以連續(xù)查詢水果的單價,當查詢次數(shù)超過5次時,自動退出查詢;不到5次時,用戶可以選擇退出。
當用戶輸入編號1~4,顯示相應水果的單價(保留1位小數(shù));輸入0,退出查詢;輸入其他編號,顯示價格為0。
輸入輸出示例:括號內(nèi)是說明
輸入
3 (oranges的編號)
0 (退出查詢)
輸出
[1] apples
[2] pears
[3] oranges
[4] grapes
[0] Exit
price = 4.1
[1] apples
[2] pears
[3] oranges
[4] grapes
[0] Exit
#include
int main(void)
{
int choice, i;
double price;
for(i = 1; i <= 5; i++){
printf("[1] apples\n");
printf("[2] pears\n");
printf("[3] oranges\n");
printf("[4] grapes\n");
printf("[0] Exit\n");
scanf("%d", &choice);
if(choice == 0)
break;
else{
/*---------*/
switch (choice) {
case 1: price=3.0; break;
case 2: price=2.5; break;
case 3: price=4.1; break;
case 4: price=10.2; break;
default: price=0.0; break;
}
printf("price = %0.1f\n", price);
}
return 0;
}
30006程序填空,不要改變與輸入輸出有關(guān)的語句。輸入5個學生的數(shù)學成績,判斷他們的成績是否及格。如果成績低于60,輸出"Fail",否則,輸出"Pass"。
輸入輸出示例:括號內(nèi)是說明
輸入
61
59
92
40
60
輸出
Pass
Fail
Pass
Fail
Pass
#include
int main(void)0
{
int i, mark;
for(i = 1; i <= 5; i++){
scanf("%d", &mark);
/*---------*/
if(mark>=60) printf(“Pass\n”);
else printf(“Fail\n”);
}
}
30007程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù) repeat (0
#include
int main(void)
{
int a, b, c;
int repeat, ri;
double area, perimeter, s;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%d%d%d", &a, &b, &c);
/*---------*/
if(a+b>c&&b+c>a&&c+a>b)
{ perimeter=a+b+c;
s= perimeter/2;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area = %.2f, perimeter = %.2f\n",area, perimeter);
}
else
printf("These sides do not correspond to a valid triangle\n");
}
return 0;
}
30008程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù) repeat (0
int main(void)
{
int repeat, ri;
double rate, salary, tax;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
scanf("%lf", &salary);
/*---------*/
if(salary<=850) rate=0;
else if(salary<=1350) rate=0.05;
else if(salary<=2850) rate=0.1;
else if(salary<=5850) rate=0.15;
else rate=0.2;
tax = rate * (salary - 850);
printf("tax = %0.2f\n", tax);
}
}
30009程序填空,不要改變與輸入輸出有關(guān)的語句。
輸入一個正整數(shù) n,再輸入 n 個學生的百分制成績,統(tǒng)計各等級成績的個數(shù)。成績等級分為五級,分別為A(90-100)、B(80-89)、C(70-79)、D(60-69)和E(0-59)。
輸入輸出示例:括號內(nèi)是說明
輸入
5 (n=5)
77 54 92 73 60
輸出
Number of A(90-100): 1
Number of B(80-89): 0
Number of C(70-79): 2
Number of D(60-69): 1
Number of E(0-59): 1
#include
int main(void)
{
int i, mark, n;
int na, nb, nc, nd, ne;
scanf("%d",&n);
na = nb = nc = nd = ne = 0;
for(i = 1; i <= n; i++){
scanf("%d", &mark);
/*---------*/
if(mark >=90) na++;
else if(mark >=80) nb++;
else if(mark >=70) nc++;
else if(mark >=60) nd++;
else ne++;
}
printf("Number of A(90-100): %d\n", na);
printf("Number of B(80-89): %d\n", nb);
printf("Number of C(70-79): %d\n", nc);
printf("Nu
鏈接地址:http://kudomayuko.com/p-1638254.html