学生课外上机练习题目 下载本文

if((n%2==1)||n<4) {

printf(\数据输入出错\\n\ exit(0); } p=1; do {

p=p+1; q=n-p; p_flag=1;

for(i=2;i<=sqrt(p);i++) {

if(p%i==0) {

p_flag=0; break; } }

q_flag=1;

for(i=2;i<=sqrt(q);i++) {

if(q%i==0) {

q_flag=0; break; } }

}while(p_flag*q_flag==0);

printf(\ return 0; }

23.判断一个正整数是否为回文数。回文数是这样的数:一个正整数从左往右读和从右往左读都是一样的数(如121,123321)

#include int main() {

int n,m=0,k; do {

scanf(\ if(n<=0)

printf(\数据输入错误,请重新输入!\\n\ }while(n<=0); k=n;

while(k!=0) {

m=m*10+k; k=k/10;

}

}

if(n==m)

printf(\是回文数!\\n\else

printf(\不是回文数!\\n\return 0;

2358,-,,-,123524.求分数数列

,前20项之和。

#include

int main() {

int a=2,b=1,s=1,i; double sum=0.0; for(i=1;i<=20;i++) {

sum=sum+s*a/(double)b; a=a+b; b=a-b; s=-s; }

printf(\数列的和为:%.4lf\\n\ return 0; }

25.有一函数:

ìx(x<1)???y=?í2x-11(1≤x<10)

?????3x11(x≥10)编写一程序,输入x,输出y值。

#include int main() {

double x,y;

scanf(\ if(x<1) y=x;

else if(x>=1&&x<10) y=2*x-11; else

y=3*x-11;

printf(\ return 0; }

26.从键盘上输入3个整数,求最小的数。 #include

int main() {

double x,y,z,min;

scanf(\ if(x>y) min=y; else

min=x; if(min>z) min=z;

printf(\ return 0; }

27.输入某人的出生日期,计算并显示其出生的当天是星期几。(注:要计算出生日是星期几,首先要计算出出生前一年的12月31日是星期几,其计算公式如下

骣犏(year-1)犏(year-1)犏(year-1)÷?(year-1)*365+犏-犏+犏%7,如果是闰年出生的且出生÷?÷?÷犏犏犏4100400桫臌臌臌月份大于2月,则总天数要加1。) #include int main() {

int y,m,d,flag,s=0,w,i; scanf(\

flag=(y%4==0&&y0!=0||y@0==0);

w=((y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400)%7; for(i=1;i<=m;i++) {

switch(i) {

case 1:s=d;break; case 2:s=31+d;break; case 3:s=59+d;break; case 4:s=90+d;break; case 5:s=120+d;break; case 6:s=151+d;break; case 7:s=181+d;break; case 8:s=212+d;break; case 9:s=243+d;break; case 10:s=273+d;break; case 11:s=304+d;break; case 12:s=334+d;break; } }

if(flag==1&&m>2)

s=s+1; s=(w+s)%7; if(s==0)

printf(\星期日\\n\else

printf(\星期%d\\n\ return 0; }

28.企业发放的奖金根据利润提成:利润低于或等于10万元时,奖金可提10%;利润高于10万元低于20万元时,低于10万元的部分按10%提成,高于10万元的部分可提成7.5%;20万到40万之间时,高于20万元的部分可提成5%;40万到60万之间时,高于40万元的部分可提成3%;60万到100万之间时,高于60万元的部分可提成1.5%;高于100万元时,超过100万元的部分按1%提成。从键盘输入当月利润,求应发放奖金总数。 #include int main() {

float p,r;

scanf(\ if(p<=10) r=p*0.1;

else if(p>10&&p<=20)

r=10*0.1+(p-10)*0.075; else if(p>20&&p<=40)

r=10*0.1+10*0.075+(p-20)*0.05; else if(p>40&&p<=60)

r=10*0.1+10*0.075+20*0.05+(p-40)*0.03; else if(p>60&&p<=100)

r=10*0.1+10*0.075+20*0.05+20*0.03+(p-60)*0.015; else if(p>100)

r=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(p-100)*0.01; printf(\ return 0; }

29.输入字符,并以回车结束。将其中的小写字母转换成大写字母,而其他字符不变。 #include int main() {

char c;

while((c=getchar())!='\\n') {

if(c>='a'&&c<='z') c=c-32; putchar(c); }