哈工大C语言学习知识实验题.doc
*-窗体顶端Q308.(10分)第5章 实验2:体型判断。医务工作者经广泛的调查和统计分析,根据身高与体重因素给出了以下按“体指数”进行体型判断的方法。体指数计算公式是: t = w /(h*h) 其中:t是体指数;w是体重,其单位为千克;h是身高,其单位为米。根据给定的体指数t计算公式,可判断你的体重属于何种类型: 当 t18 时,为低体重; 当 18t25 时,为正常体重; 当 25t27 时,为超重体重; 当 t27 时,为肥胖。*输入提示信息格式:Please enter h,w:n*输入数据格式要求:%f,%f(先读入身高,再读入体重,身高以米读入,体重以千克读入)*输出数据格式要求: 当 t18 时,输出:Lower weight!n 当 18t25 时,输出:Standard weight!n 当 25t27 时,输出:Higher weight!n 当 t27 时, 输出:Too fat!n窗体底端#include #include main() float t,w,h; printf(Please enter h,w:n); scanf(%f,%f,&h,&w); t = w/(h*h); if(t=18&t=25&t27) printf(Higher weight!n); elseprintf(Too fat!n); return 0; 窗体顶端窗体顶端Q586.(窗体底端10分)编写一个程序,输入年份和月份,判断该年是否是闰年,并根据给出的月份判断是什么季节和该月有多少天?(闰年的条件是年份能被4整除但不能被100整除,或者能被400整除;规定35月为春季,68月为夏季,911月为秋季,1、2和12月为冬季)。*输入格式要求:%d,%d 提示信息:Please enter year,month:*输出格式要求:%d is leap yearn %d is not leap yearn The season is spring/summer/autumn/winter The number of days of this month is %dn程序运行示例如下:实例1:Please enter year,month:2012,112012 is leap yearThe season is autumnThe number of days of this month is 30实例2:Please enter year,month:2013,122013 is not leap yearThe season is winterThe number of days of this month is 31窗体底端#include #include main() int year=0,leap=0,mon=0,day=0; printf(Please enter year,month:); scanf(%d,%d,&year,&mon); if(year%100!=0&year%4=0)|(year%100=0&year%400=0) printf(%d is leap yearn,year); leap=1; elseprintf(%d is not leap yearn,year); switch(mon) case 1: case 2: case 12:printf(The season is wintern); break; case 3: case 4: case 5:printf(The season is springn); break; case 6: case 7: case 8:printf(The season is summern); break; case 9: case 10: case 11:printf(The season is autumnn); break; switch(mon) case 1: case 3: case 5: case 7: case 8: case 10: case 12:day=31; break; case 4: case 6: case 9: case 11:day=30; break; case 2: if(leap=1) day=29; elseday=28; printf(The number of days of this month is %dn,day); 窗体顶端Q3161.(10分)请用else if多分支条件判断语句编程设计一个简单的计算器程序。要求:(1)请用户按以下形式从键盘输入表达式:操作数 运算符op 操作数(2)然后计算表达式的值*输入提示信息*:无*输入数据格式*:%f%c%f*输出数据格式*:%.2f%c%.2f=%.2fn 若若输入的运算符是除法运算符/,当除数为0时,输出数据格式为:dat is 0!Error!n 若输入的运算符不是加(+)、减(-)、乘(*)、除(/),则输出数据格式为:Error!n友情提示: 用户输入的运算符为算术运算符:加(+)、减(-)、乘(*)、除(/)。用字符变量 op 表示; 操作数和操作数 为浮点型数据,分别用浮点型变量 dat1、dat2表示。 程序运行结果如下所示:1+2 1.00+2.00=3.00#include #include main() float a=0,b=0; char op; scanf(%f%c%f,&a,&op,&b); if(op=+) printf(%.2f%c%.2f=%.2fn,a,op,b,a+b); else if(op=-) printf(%.2f%c%.2f=%.2fn,a,op,b,a-b); else if(op=*) printf(%.2f%c%.2f=%.2fn,a,op,b,a*b); else if(op=/) if(b!=0) printf(%.2f%c%.2f=%.2fn,a,op,b,a/b); elseprintf(dat is 0!Error!n); elseprintf(Error!n); 窗体底端窗体顶端Q3185.(10分)实验二(2016春刘秉权C语言课):根据输入的百分制成绩score,转换成相应的五分制成绩grade后输出。转换规则为(要求用switch语句实现):当score大于等于90且小于等于100时,grade=A;当score大于等于80且小于90时,grade=B;当score大于等于70且小于80时,grade=C;当score大于等于60且小于70时,grade=D;当score大于等于0且小于60时,grade=E。格式要求:输入提示:Please enter score:输出形式形如:100-A、75-C、0-E当输入分数不正确时,输出:Input error!#include main() int s,m; printf(Please enter score:); scanf(%d,&s); m=s100?-1:s/10; switch(m) case 10: case 9:printf(%d-An,s); break; case 8:printf(%d-Bn,s); break; case 7:printf(%d-Cn,s); break; case 6:printf(%d-Dn,s); break; case 5: case 4: case 3: case 2: case 1: case 0:printf(%d-En,s); break; default:printf(Input error!); 窗体底端窗体顶端Q221.(10分)编程从键盘输入某年某月(包括闰年),用switch语句编程输出该年的该月拥有的天数。要求考虑闰年以及输入月份不在合法范围内的情况。已知闰年的2月有29天,平年的2月有28天。*输入格式要求:%d, %d 提示信息:Input year,month:*输出格式要求:31 daysn 29 daysn 28 daysn Input error!n程序运行示例如下:Input year,month:2004,229 days#include main() int a, b; printf(Input year,month:); scanf(%4d, %2d, &a, &b); switch (b) case 1: case 3: case 5: case 7: case 8: case 10: case 12: printf(31 daysn); break; case 4: case 6: case 9: case 11: printf(30 daysn); break; case 2: if (a % 4 = 0 & a % 100 != 0) | a % 400 = 0) printf(29 daysn); elseprintf(28 daysn); break; default: printf(Input error!n); return 0; 窗体底端窗体顶端Q210.(10分)第7章实验任务1:所谓素数是指这个数只能被1和自身整除。要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:从键盘输入5,5是素数则打印如下信息:5 is a prime number.又如:从键盘输入4, 4不是素数则打印如下信息:4 is not a prime number负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序不给分。Fun()函数原型如下: int Fun(int m);*输入数据提示信息:Please input a number:n注:该提示信息请放在循环体外*输入数据格式为:%d*输出格式要求: 若是素数输出数据格式为:%d is a prime numbern 若不是素数输出数据格式为: %d is not a prime numbern#include #include int Fun(int m); main() int a; printf(Please input a number:n); while (scanf(%d,&a) if (a 0 & a != 1 & Fun(a) = 1) printf(%d is a prime numbern,a); elseprintf(%d is not a prime numbern, a); break; return 0; int Fun(int m) int i, result; result = 1; if (m != 2) for (i = 2; i m; i+) if (m % i = 0) result = 0; break; return result; 窗体底端窗体顶端Q3185.(10分)实验二(2016春刘秉权C语言课):根据输入的百分制成绩score,转换成相应的五分制成绩grade后输出。转换规则为(要求用switch语句实现):当score大于等于90且小于等于100时,grade=A;当score大于等于80且小于90时,grade=B;当score大于等于70且小于80时,grade=C;当score大于等于60且小于70时,grade=D;当score大于等于0且小于60时,grade=E。格式要求:输入提示:Please enter score:输出形式形如:100-A、75-C、0-E当输入分数不正确时,输出:Input error!#include main() int s,m; printf(Please enter score:); scanf(%d,&s); m=s100?-1:s/10; switch(m) case 10: case 9:printf(%d-An,s); break; case 8:printf(%d-Bn,s); break; case 7:printf(%d-Cn,s); break; case 6:printf(%d-Dn,s); break; case 5: case 4: case 3: case 2: case 1: case 0:printf(%d-En,s); break; default:printf(Input error!); 窗体底端窗体顶端Q1709.(10分)第6章实验1:国王的许诺相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着88共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第1个格子中放1粒,第2格中放2粒,第3格中放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问:国王能兑现他的许诺吗?试编程计算舍罕王共要多少麦子赏赐他的宰相,这些麦子合多少立方米(已知1立方米麦子约1.42e8粒)?注:(1)不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程。 (2)用标准C语言编程,所有变量必须在第一条可执行语句前定义。 (3)输入输出格式要和以下给定格式完全一致。*输入格式:无*输出格式:sum = %en volum = %en%e表示double类型#include #include main() int i; double s, v; s = 0; for (i = 0; i = 63; i+) s = s + pow(2, i); v = s / 1.42e8; printf(sum = %en, s); printf(volum = %en, v); return 0; 窗体底端窗体顶端Q1719.(10分)第7章实验任务3从键盘任意输入一个整数n,编程计算并输出1n之间的所有素数之和输入提示信息:Input n:输入格式:%d输出格式:sum = %dn#include #include int Fun(int m); main() int n,i,s; s=0; printf(Input n:); scanf(%d,&n); for(i=2;i=n;i+) if(Fun(i)=1) s=s+i; printf(sum = %dn,s); return 0; int Fun(int m) int i, result; result = 1; if (m != 2) for (i = 2; i m; i+) if (m % i = 0) result = 0; break; return result; 窗体底端窗体顶端Q1720.(10分)第7章实验任务6从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出It is a prime number。例如,用户输入90时,程序输出90 = 2 * 3 * 3 * 5;用户输入17时,程序输出It is a prime number。输入提示信息:Input m:输入格式:%d输出格式:是素数时输出It is a prime numbern否则输出用%d = ,%d * 运行示例1:Input m:9090 = 2 * 3 * 3 * 5运行示例2:Input m:13It is a prime number#include int Fun(int m); int IsPerfect(int m); main() int m,i,p; printf(Input m:); scanf(%d,&m); p=m; if(Fun(m)=1) printf(It is a prime numbern); else printf(%d = ,m); for(i=2;im;i+) if(p%IsPerfect(i)=0&p/IsPerfect(i)!=1&IsPerfect(i)!=1) printf(%d * ,i); else if(p%IsPerfect(i)=0&p/IsPerfect(i)=1&IsPerfect(i)!=1) printf(%d,i); break; elsecontinue; p=p/i; while(p%i=0) if(p/i!=1) printf(%d * ,i); p=p/i; else printf(%d,i); break; return 0; int Fun(int m) int i, result; result = 1; if (m != 2) for (i = 2; i m; i+) if (m % i = 0) result = 0; break; return result; int IsPerfect(int m) int i, result; result=1; if (m != 2) for (i = 2; i = m; i+) if (m % i = 0) break; else if(m%i!=1&m/i!=1) continue; elseresult=m; elseresult=2; return result; 窗体底端窗体顶端Q198.(10分)第7章实验任务5如果一个正整数m的所有小于m的不同因子(包括1)加起来正好等于m本身,那么就被称它为完全数。它是指这样的一些特殊的自然数,它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。注意:1没有真因子,所以不是完全数。例如,6就是一个完全数,是因为6 = 1 + 2 + 3。请编写一个判断完全数的函数IsPerfect(),然后判断从键盘输入的整数是否是完全数。要求:按如下原型编写判断完全数的函数,若函数返回0,则代表不是完全数,若返回1,则代表是完全数。int IsPerfect(int x);*要求输入提示信息为: Input m:n*要求输入格式为: %d*要求输出格式为 %d is a perfect numbern%d is not a perfect numbern注:不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程,主函数不能使用int main和return 0。#include int IsPerfect(int m); main() int a; printf(Input m:n); scanf(%d, &a); if (IsPerfect(a) = 1) printf(%d is a perfect numbern, a); elseprintf(%d is not a perfect numbern, a); int IsPerfect(int m) int i, s, find; s = 0; for (i = 1; i m; i+) if (m % i = 0) s = s + i; elsecontinue; if (s = m) find = 1; elsefind = 0; return find; 窗体底端窗体顶端Q3168.(10分)编程从键盘输入一个小写英文字母,将其转换为大写英文字母,并将转换后的大写英文字母及其十进制的ASCII码值显示到屏幕上。*输入提示信息*:Please input a low-case letter from keyboard:*输入数据格式*:%c*输出数据格式*:The capital letter and its ASCII value are:%c and %d.提示:从键盘输入一个字符可用scanf也可用getchar#include main() char a; printf(Please input a low-case letter from keyboard:); a = getchar(); a = a - 32; printf(The capital letter and its ASCII value are:%c and %d., a, a); 窗体底端窗体顶端Q3241.(10分)实验三(2016春刘秉权C语言课):已知公式e = 1 + 1/1! + 1/2! + 1/3! + . +1/n!, 编程计算e的近似值,直到最后一项的绝对值小于1e-7时为止,输入e的值并统计累加的项数。要求:按顺序输出每一个e值,小数点后保留8位有效数字,输出格式形如:e = 2.66666667, count = 4(回车换行,count为累加的项数)#include double fun(int n); main() int i, c; double e; c = 0; e = 0; for (i = 0; i=11; i+) e = e + fun(i); c+; printf(e = %.8lf, count = %dn, e, c); double fun(int n) double result; int i; i = 1; result = 1; do result = result * i; i+; while (i = n); result = 1.0 / result; return result; 窗体底端窗体顶端Q1710.(10分)第7章实验任务4:任意输入一个整数m,若m不是素数,则输出其所有不包括1和自身的因子;否则输出“没有因子,是素数”的相关提示信息。输入提示信息:Please enter a number:输入格式:%d输出格式:有因子时:%dn无因子时:It is a prime number.No divisor!n输入为1,0,-1时:It is not a prime number.No divisor!n#include #include int Fun(int m); main() int a, i; printf(Please enter a number:); scanf(%d, &a); if (Fun(fabs(a) = 1) printf(It is a prime number.No divisor!n); else for (i = 2; i fabs(a); i+) if ( a % i = 0) printf(%dn, i); int Fun(int m) int i, result; result = 1; if (m != 2 & m != 1) for (i = 2; i m; i+) if (m % i = 0) result = 0; break; else if (m = 1) result = 0; else; return result; 窗体底端窗体顶端Q1718.(10分)第5章实验1:身高预测。每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。设faHeight为其父身高,moHeight为其母身高,身高预测公式为男性成人时身高 = (faHeight
收藏
- 资源描述:
-
*-
窗体顶端
Q308.(10分)第5章 实验2:体型判断。
医务工作者经广泛的调查和统计分析,根据身高与体重因素给出了以下按“体指数”进行体型判断的方法。体指数计算公式是:
t = w /(h*h)
其中:t是体指数;w是体重,其单位为千克;h是身高,其单位为米。根据给定的体指数t计算公式,可判断你的体重属于何种类型:
当 t<18 时,为低体重;
当 18≤t<25 时,为正常体重;
当 25≤t<27 时,为超重体重;
当 t≥27 时,为肥胖。
****输入提示信息格式:"Please enter h,w:\n"
****输入数据格式要求:"%f,%f"(先读入身高,再读入体重,身高以米读入,体重以千克读入)
****输出数据格式要求:
当 t<18 时,输出:"Lower weight!\n"
当 18≤t<25 时,输出:"Standard weight!\n"
当 25≤t<27 时,输出:"Higher weight!\n"
当 t≥27 时, 输出:"Too fat!\n"
窗体底端
#include
#include
main()
{
float t,w,h;
printf("Please enter h,w:\n");
scanf("%f,%f",&h,&w);
t = w/(h*h);
if(t<18)
printf("Lower weight!\n");
else if(t>=18&&t<25)
printf("Standard weight!\n");
else if(t>=25&&t<27)
printf("Higher weight!\n");
else
printf("Too fat!\n");
return 0;
}
窗体顶端
窗体顶端
Q586.(
窗体底端
10分)编写一个程序,输入年份和月份,判断该年是否是闰年,并根据给出的月份判断是什么季节和该月有多少天?(闰年的条件是年份能被4整除但不能被100整除,或者能被400整除;规定3~5月为春季,6~8月为夏季,9~11月为秋季,1、2和12月为冬季)。
**输入格式要求:"%d,%d" 提示信息:"Please enter year,month:"
**输出格式要求:"%d is leap year\n" "%d is not leap year\n" "The season is spring/summer/autumn/winter" "The number of days of this month is %d\n"
程序运行示例如下:
实例1:
Please enter year,month:2012,11
2012 is leap year
The season is autumn
The number of days of this month is 30
实例2:
Please enter year,month:2013,12
2013 is not leap year
The season is winter
The number of days of this month is 31
窗体底端
#include
#include
main()
{
int year=0,leap=0,mon=0,day=0;
printf("Please enter year,month:");
scanf("%d,%d",&year,&mon);
if((year%100!=0&&year%4==0)||(year%100==0&&year%400==0)){
printf("%d is leap year\n",year);
leap=1;
}
else
printf("%d is not leap year\n",year);
switch(mon)
{
case 1:
case 2:
case 12:printf("The season is winter\n");
break;
case 3:
case 4:
case 5:printf("The season is spring\n");
break;
case 6:
case 7:
case 8:printf("The season is summer\n");
break;
case 9:
case 10:
case 11:printf("The season is autumn\n");
break;
}
switch(mon)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:day=31;
break;
case 4:
case 6:
case 9:
case 11:day=30;
break;
case 2:
if(leap==1)
day=29;
else
day=28;
}
printf("The number of days of this month is %d\n",day);
}
窗体顶端
Q3161.(10分)请用else if多分支条件判断语句编程设计一个简单的计算器程序。要求:
(1)请用户按以下形式从键盘输入表达式:操作数① 运算符op 操作数②
(2)然后计算表达式的值
**输入提示信息**:无
**输入数据格式**:"%f%c%f"
**输出数据格式**:"%.2f%c%.2f=%.2f\n"
若若输入的运算符是除法运算符/,当除数为0时,输出数据格式为:"dat is 0!Error!\n"
若输入的运算符不是加(+)、减(-)、乘(*)、除(/),则输出数据格式为:"Error!\n"
[友情提示]:
① 用户输入的运算符为算术运算符:加(+)、减(-)、乘(*)、除(/)。用字符变量 op 表示;
② 操作数①和操作数② 为浮点型数据,分别用浮点型变量 dat1、dat2表示。
③ 程序运行结果如下所示:
1+2↙
1.00+2.00=3.00
#include
#include
main()
{
float a=0,b=0;
char op;
scanf("%f%c%f",&a,&op,&b);
if(op==+)
printf("%.2f%c%.2f=%.2f\n",a,op,b,a+b);
else if(op==-)
printf("%.2f%c%.2f=%.2f\n",a,op,b,a-b);
else if(op==*)
printf("%.2f%c%.2f=%.2f\n",a,op,b,a*b);
else if(op==/){
if(b!=0)
printf("%.2f%c%.2f=%.2f\n",a,op,b,a/b);
else
printf("dat is 0!Error!\n");
}
else
printf("Error!\n");
}
窗体底端
窗体顶端
Q3185.(10分)实验二(2016春刘秉权C语言课):根据输入的百分制成绩score,转换成相应的五分制成绩grade后输出。
转换规则为(要求用switch语句实现):
当score大于等于90且小于等于100时,grade=A;
当score大于等于80且小于90时,grade=B;
当score大于等于70且小于80时,grade=C;
当score大于等于60且小于70时,grade=D;
当score大于等于0且小于60时,grade=E。
格式要求:
输入提示:"Please enter score:"
输出形式形如:"100--A"、"75--C"、"0--E"
当输入分数不正确时,输出:"Input error!
"
#include
main()
{
int s,m;
printf("Please enter score:");
scanf("%d",&s);
m=s<0||s>100?-1:s/10;
switch(m)
{
case 10:
case 9:printf("%d--A\n",s);
break;
case 8:printf("%d--B\n",s);
break;
case 7:printf("%d--C\n",s);
break;
case 6:printf("%d--D\n",s);
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf("%d--E\n",s);
break;
default:printf("Input error!");
}
}
窗体底端
窗体顶端
Q221.(10分)编程从键盘输入某年某月(包括闰年),用switch语句编程输出该年的该月拥有的天数。要求考虑闰年以及输入月份不在合法范围内的情况。已知闰年的2月有29天,平年的2月有28天。
**输入格式要求:"%d, %d" 提示信息:"Input year,month:"
**输出格式要求:"31 days\n" "29 days\n" "28 days\n" "Input error!\n"
程序运行示例如下:
Input year,month:2004,2
29 days
#include
main()
{
int a, b;
printf("Input year,month:");
scanf("%4d, %2d", &a, &b);
switch (b)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
printf("31 days\n");
break;
case 4:
case 6:
case 9:
case 11:
printf("30 days\n");
break;
case 2:
if ((a % 4 == 0 && a % 100 != 0) || a % 400 == 0)
printf("29 days\n");
else
printf("28 days\n");
break;
default:
printf("Input error!\n");
}
return 0;
}
窗体底端
窗体顶端
Q210.(10分)第7章实验任务1:
所谓素数是指这个数只能被1和自身整除。要求在主函数输入一个数,
调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:
从键盘输入5,5是素数则打印如下信息:"5 is a prime number".
又如:从键盘输入4, 4不是素数则打印如下信息:"4 is not a prime number"
负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数
要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序
不给分。Fun()函数原型如下:
int Fun(int m);
**输入数据提示信息:"Please input a number:\n"
注:该提示信息请放在循环体外
**输入数据格式为:"%d"
**输出格式要求:
若是素数输出数据格式为:"%d is a prime number\n"
若不是素数输出数据格式为: "%d is not a prime number\n"
#include
#include
int Fun(int m);
main()
{
int a;
printf("Please input a number:\n");
while (scanf("%d",&a))
{
if (a <= 0 || a == 1)
continue;
else if (a > 0 && a != 1 && Fun(a) == 1)
printf("%d is a prime number\n",a);
else
printf("%d is not a prime number\n", a);
break;
}
return 0;
}
int Fun(int m)
{
int i, result;
result = 1;
if (m != 2)
{
for (i = 2; i < m; i++)
{
if (m % i == 0)
{
result = 0;
break;
}
}
}
return result;
}
窗体底端
窗体顶端
Q3185.(10分)实验二(2016春刘秉权C语言课):根据输入的百分制成绩score,转换成相应的五分制成绩grade后输出。
转换规则为(要求用switch语句实现):
当score大于等于90且小于等于100时,grade=A;
当score大于等于80且小于90时,grade=B;
当score大于等于70且小于80时,grade=C;
当score大于等于60且小于70时,grade=D;
当score大于等于0且小于60时,grade=E。
格式要求:
输入提示:"Please enter score:"
输出形式形如:"100--A"、"75--C"、"0--E"
当输入分数不正确时,输出:"Input error!
"
#include
main()
{
int s,m;
printf("Please enter score:");
scanf("%d",&s);
m=s<0||s>100?-1:s/10;
switch(m)
{
case 10:
case 9:printf("%d--A\n",s);
break;
case 8:printf("%d--B\n",s);
break;
case 7:printf("%d--C\n",s);
break;
case 6:printf("%d--D\n",s);
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:printf("%d--E\n",s);
break;
default:printf("Input error!");
}
}
窗体底端
窗体顶端
Q1709.(10分)第6章实验1:国王的许诺
相传国际象棋是古印度舍罕王的宰相达依尔发明的。舍罕王十分喜欢象棋,决定让宰相自己选择何种赏赐。这位聪明的宰相指着88共64格的象棋盘说:陛下,请您赏给我一些麦子吧,就在棋盘的第1个格子中放1粒,第2格中放2粒,第3格中放4粒,以后每一格都比前一格增加一倍,依此放完棋盘上的64个格子,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问:国王能兑现他的许诺吗?试编程计算舍罕王共要多少麦子赏赐他的宰相,这些麦子合多少立方米(已知1立方米麦子约1.42e8粒)?
注:(1)不能使用指针、结构体、共用体、文件、goto、枚举类型进行编程。
(2)用标准C语言编程,所有变量必须在第一条可执行语句前定义。
(3)输入输出格式要和以下给定格式完全一致。
**输入格式:无
**输出格式:
"sum = %e\n"
"volum = %e\n"
%e表示double类型
#include
#include
main()
{
int i;
double s, v;
s = 0;
for (i = 0; i <= 63; i++)
s = s + pow(2, i);
v = s / 1.42e8;
printf("sum = %e\n", s);
printf("volum = %e\n", v);
return 0;
}
窗体底端
窗体顶端
Q1719.(10分)第7章实验任务3
从键盘任意输入一个整数n,编程计算并输出1~n之间的所有素数之和
输入提示信息:"Input n:"
输入格式:"%d"
输出格式:"sum = %d\n"
#include
#include
int Fun(int m);
main()
{
int n,i,s;
s=0;
printf("Input n:");
scanf("%d",&n);
for(i=2;i<=n;i++)
{
if(Fun(i)==1)
s=s+i;
}
printf("sum = %d\n",s);
return 0;
}
int Fun(int m)
{
int i, result;
result = 1;
if (m != 2)
{
for (i = 2; i < m; i++)
{
if (m % i == 0)
{
result = 0;
break;
}
}
}
return result;
}
窗体底端
窗体顶端
Q1720.(10分)第7章实验任务6
从键盘任意输入一个整数m,若m不是素数,则对m进行质因数分解,并将m表示为质因数从小到大顺序排列的乘积形式输出,否则输出"It is a prime number"。例如,用户输入90时,程序输出90 = 2 * 3 * 3 * 5;用户输入17时,程序输出"It is a prime number"。
输入提示信息:"Input m:"
输入格式:"%d"
输出格式:
是素数时输出"It is a prime number\n"
否则输出用"%d = ","%d * "
运行示例1:
Input m:90↙
90 = 2 * 3 * 3 * 5
运行示例2:
Input m:13↙
It is a prime number
#include
int Fun(int m);
int IsPerfect(int m);
main()
{
int m,i,p;
printf("Input m:");
scanf("%d",&m);
p=m;
if(Fun(m)==1)
printf("It is a prime number\n");
else
{
printf("%d = ",m);
for(i=2;i
int IsPerfect(int m);
main()
{
int a;
printf("Input m:\n");
scanf("%d", &a);
if (IsPerfect(a) == 1)
printf("%d is a perfect number\n", a);
else
printf("%d is not a perfect number\n", a);
}
int IsPerfect(int m)
{
int i, s, find;
s = 0;
for (i = 1; i < m; i++)
{
if (m % i == 0)
s = s + i;
else
continue;
}
if (s == m)
find = 1;
else
find = 0;
return find;
}
窗体底端
窗体顶端
Q3168.(10分)编程从键盘输入一个小写英文字母,将其转换为大写英文字母,并将转换后的大写英文字母及其十进制的ASCII码值显示到屏幕上。
**输入提示信息**:"Please input a low-case letter from keyboard:"
**输入数据格式**:"%c"
**输出数据格式**:"The capital letter and its ASCII value are:%c and %d.
"
提示:从键盘输入一个字符可用scanf也可用getchar
#include
main()
{
char a;
printf("Please input a low-case letter from keyboard:");
a = getchar();
a = a - 32;
printf("The capital letter and its ASCII value are:%c and %d.", a, a);
}
窗体底端
窗体顶端
Q3241.(10分)实验三(2016春刘秉权C语言课):已知公式e = 1 + 1/1! + 1/2! + 1/3! + ... +1/n!, 编程计算e的近似值,直到最后一项的绝对值小于1e-7时为止,输入e的值并统计累加的项数。要求:按顺序输出每一个e值,小数点后保留8位有效数字,输出格式形如:e = 2.66666667, count = 4(回车换行,count为累加的项数)
#include
double fun(int n);
main()
{
int i, c;
double e;
c = 0;
e = 0;
for (i = 0; i<=11; i++)
{
e = e + fun(i);
c++;
printf("e = %.8lf, count = %d\n", e, c);
}
}
double fun(int n)
{
double result;
int i;
i = 1;
result = 1;
do
{
result = result * i;
i++;
}
while (i <= n);
result = 1.0 / result;
return result;
}
窗体底端
窗体顶端
Q1710.(10分)第7章实验任务4:
任意输入一个整数m,若m不是素数,则输出其所有不包括1和自身的因子;否则输出“没有因子,是素数”的相关提示信息。
输入提示信息:"Please enter a number:"
输入格式:"%d"
输出格式:
有因子时:"%d\n"
无因子时:"It is a prime number.No divisor!\n"
输入为1,0,-1时:"It is not a prime number.No divisor!\n"
#include
#include
int Fun(int m);
main()
{
int a, i;
printf("Please enter a number:");
scanf("%d", &a);
if (Fun(fabs(a)) == 1)
printf("It is a prime number.No divisor!\n");
else
{
for (i = 2; i < fabs(a); i++)
{
if ( a % i == 0)
printf("%d\n", i);
}
}
}
int Fun(int m)
{
int i, result;
result = 1;
if (m != 2 && m != 1)
{
for (i = 2; i < m; i++)
{
if (m % i == 0)
{
result = 0;
break;
}
}
}
else if (m == 1)
result = 0;
else;
return result;
}
窗体底端
窗体顶端
Q1718.(10分)第5章实验1:身高预测。
每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。小孩成人后的身高与其父母的身高和自身的性别密切相关。
设faHeight为其父身高,moHeight为其母身高,身高预测公式为
男性成人时身高 = (faHeight
展开阅读全文