考研湖南大学信息科学与工程学院C语言上机部分题库150道题Word格式.docx
《考研湖南大学信息科学与工程学院C语言上机部分题库150道题Word格式.docx》由会员分享,可在线阅读,更多相关《考研湖南大学信息科学与工程学院C语言上机部分题库150道题Word格式.docx(96页珍藏版)》请在冰豆网上搜索。
i++;
}
004用do-while,for循环结构编写程序打印ASCII码为33-127的字符。
do
}while(i<
=127);
006.在1-500中,找出能同时满足用3除余2,用5除余3,用7除余4的所有整数,用循环结构。
=500;
if(i%3==2&
&
i%5==3&
i%7==5)
%d\n"
007.输入一个整数将其倒着输出,如54321——12345。
(方法一)
string.h>
chara[100];
intlen,i;
请输入一个整数:
%s"
a);
len=strlen(a);
for(i=len-1;
i>
=0;
i--)
%c"
a[i]);
007(方法二)
intnum,t;
%d"
num);
while(num>
0)
t=num%10;
num=num/10;
t);
008.计算s=1+1/3+1/5+…+1/n,截止到1/n<
10-4。
intn;
floatt=1,s=0;
for(n=1;
t>
0.0001;
n+=2)
t=(float)1/n;
s=s+t;
s=%f"
s);
009.从键盘输入一整数n,计算1*1+2*2+...+n*n的值。
intn,i,s=0;
n);
=n;
s=s+i*i;
010.用while循环计算1+2+……+100的和。
{
ints=0,i=1;
=100)
s=s+i;
}
11.
用dowhile循环计算1+2+……+100的和
#include<
inti,result;
i=1;
result=0;
result=i+result;
1+2+...+100=%d"
result);
while
(1);
}
12.用for循环计算1+2+……+100的和。
for(i=1,result=0;
=100;
i++)
13.输入一个小于等于10的整数n,计算n!
。
longfac(intn)
longresult;
if(n==0||n==1){result=1;
else{result=n*fac(n-1);
returnresult;
请输入一个小于等于10的整数\n"
if(n>
=0&
n<
=10)
result=fac(n);
%d!
=%ld"
n,result);
elseprintf("
输入数据错误"
14.输入两个正整数m和n,计算m!
+n!
,m和n的值均小于10。
intn,m;
请输入两个小于等于10的整数\n"
%d%d"
n,&
m);
=10&
m>
result=fac(n)+fac(m);
+%d!
n,m,result);
15.用循环语句,计算1~100之间的所有3的倍数之和。
if(i%3==0)
result=result+i;
1~100之间的所有3的倍数之和为%d"
16.用循环语句,计算100-200之间的所有7的倍数之和。
for(i=100,result=0;
=200;
if(i%7==0)
100-200之间的所有7的倍数之和为%d"
17.输出1-100之间,7的整数倍数或数字尾数为7的数字,统计出这些数字个数。
inti,num;
for(i=1,num=0;
if(i%7==0||i%10==7)
num++;
1-100之间,7的整数倍数或数字尾数为7的数字个数为%d"
num);
18.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。
#include<
intmain()
inti=0,space=0,num=0,n=0,ch=0;
chars[1000000];
请输入一串字符"
gets(s);
while(s[i]!
='
\0'
)
if(s[i]=='
'
space++;
elseif(s[i]<
='
9'
&
s[i]>
0'
z'
a'
||s[i]<
Z'
A'
ch++;
else
n++;
刚才输入的字符中英文字符个数为%d\n"
ch);
刚才输入的字符中空格个数为%d\n"
space);
刚才输入的字符中数字个数为%d\n"
num);
刚才输入的字符中其他个数为%d\n"
n);
19.输入一个整数,统计它有几位数。
如输入367,则该数有3位数。
intn,i,j;
j=0;
请输入一个整数\n"
if(n==0)printf("
这个数是1位数"
j);
else{
while(n>
=i)
i=10*i;
j=j+1;
这个数是%d位数"
20.编写程序,输出1到50中间所有能被3整除的正整数。
1到50中间所有能被3整除的正整数如下\n"
=50;
n++)
if(n%3==0)
%d\t"
n);
21.把100~200之间不能被3整除的输出。
100~200之间不能被3整除的正整数如下\n"
for(n=100;
if(n%3!
=0)
22.编程Y=1+3+5+7+...111。
Y="
intn,result;
for(n=1,result=0;
=111;
n=n+2)
%d+"
result=result+n;
=%d\n"
23.编程y=1*1/2*1/3*1/4*1/5*1/6*...前十项之积。
longinty;
y=1;
=10;
y=y*i;
y=1/%ld"
y);
getch();
24.编程输出九九乘法表。
inti,j;
for(i=1;
=9;
{
for(j=1;
j<
=i;
j++)
%d*%d=%d\t"
j,i,i*j);
25.求1到100奇数和。
inti=0,n;
(2*n-1)<
100;
i=i+(2*n-1);
1到100以内的奇数之和为:
26.求1到100偶数和。
inti,s;
s=0;
for(i=2;
i=i+2)
1到100的偶数和是:
"
s=%d\n"
27.编程求200以内所有质数(素数)。
math.h>
intisprime(intm)
{inti;
=sqrt(m);
if(m%i==0)
{return0;
break;
if(i>
=(int)sqrt(m)+1)
return1;
{intn,flag;
flag=isprime(n);
if(flag)
28.从键盘输入一个整数,求该数的绝对值。
floata,t;
printf("
Pleaseinputthevalue\t"
scanf("
a);
if(a<
t=-a;
else
t=a;
Theabsolutevalueis:
\t%f"
29.从键盘输入+、-、*、/中的任一个,输出对应的英文单词:
plus、minus、mutiply、divide,如输入的不是这4个字符中的任一个,则输出“sorry,youarewrong”。
stdlib.h>
charch;
ch=getchar();
if(ch=='
+'
plus\n"
elseif(ch=='
-'
minus\n"
*'
multiply\n"
/'
divide\n"
youarewrong"
system("
pause"
30.从键盘输入一个字符,判断其是否为a,r,或f,并输出相应的信息(不区分大小写)。
charn1='
n2='
r'
n3='
f'
n4;
charm1='
m2='
R'
m3='
F'
;
请输入一个字符:
n4);
if(n4==n1||n4==m1)
{printf("
youareright!
n4=%c\n"
n4);
elseif(n4==n2||n4==m2)
elseif(n4==n3||n4==m3)
youputintoawrongchar!
31.求解一元二次方程ax2+bx+c=0的跟(a不等于0),a,b,c均为实数,其值由键盘输入。
doublea,b,c;
doubles,x1,x2;
pleaseentera,b,c:
%lf%lf%lf"
a,&
b,&
c);
if(a>
=-(1e-6)&
a<
=(1e-6))
sorry!
youhaveawrongnumbera.\n"
s=b*b-4*a*c;
if(s>
(1e-6))
x1=(-b+sqrt(s))/(2*a);
x2=(-b-sqrt(s))/(2*a);
therearetwodifferentreal:
\nx1=%5.2f,x2=%5.2f\n"
x1,x2);
s<
x1=x2=-b/(2*a);
therearetwoequalreal:
\nx1=x2=%5.2f\n"
x1);
s=-s;
x1=-b/(2*a);
x2=fabs(sqrt(s)/(2*a));
therearetwodifferentcomplex:
x1=%5.2f+%5.2fi,x2=%5.2f-%5.2fi\n"
x1,x2,x1,x2);
32.编一程序,对于给定的一个百分制成绩,输出用像'
,'
B'
C'
D'
E'
表示的等级成绩。
设:
90分以上为'
80~89分为'
70~79分为'
60~69分'
,60分以下为'
(要求用switch语句编程)。
intscore,temp,logic;
chargrade;
logic=1;
while(logic)
inputscore:
score);
if((score>
100)||(score<
0))
\nerror,inputagain!
logic=0;
if(score==100)
temp=9;
temp=(score-score%10)/10;
switch(temp)
case9:
grade='
case8:
case7:
case6:
d'
case5:
case4:
case3:
case2:
case1:
case0:
e'
scoreis:
%d,thegradeis:
%c.\n"
score,grade);
33.输入一个整数,判断它能否被3,5,7整除。
intx;
Pleaseenterx:
if((x%3==0)&
(x%5==0)&
(x%7==0))
%d能被3,5,7整除"
,x);
%d不能被3,5,7整除"
34.用整数1~12依次表示1~12月,由键盘输入一个月份数,输出对应的季节英文名称(12~2月为冬季;
3~5月为春季;
6~8月为夏季;
9~11月为秋季。
要求用if嵌套实现)。
intmonth,i;
loop:
enteraninteger(1~12):
month);
if(month<
1||>
12)
gotoloop;
r=month%12;
r=r/3;
if(r==0)
winter\n"
elseif(r==1)
spring\n"
elseif(r==2)
summer\n"
else
autumn\n"
35.编写输入整数a,b,c,当a为1时显示b和c之和,a为2时显示b与c之差,a为3时显示b*c之积,a为4时取b/c之商,a为其他数值时不做任何操作的程序。
inta,b,c;
%d%d%d"
switch(a)
%d+%d=%d\n"
b,c,b+c);
break;
%d-%d=%d\n"
b,c,b-c);
%d*%d=%d\n"
b,c,b*C);
%d/%d=%d\n"
b,c,b/c);
default:
36.编写输入一个整数,将其数值按小于10,10~99,100