浙江省计算机级考试二级《C程序设计》上机考试题库
上机程序调试及程序设计练习
一、程序填空
(1) 找Armstrong(水仙花)数:
#include
#include
void main()
{ int i,a,b,c;
for(i=100;i<=999;i++)
{ a=i/100;
_______1_______
c=i%10;
371=3*3*3+7*7*7+1*1*1
// b=i%100/10;
if (________2________)
// a*a*a+b*b*b+c*c*c = = i
printf("%d is a Armstrong number!\n",i);
}
}
(2) 输入1 个整数后,输出该数的位数。(例:输入3214则输出 4,输入-23156则输出5)。
#include
void main()
{
int n,k=0;
scanf("%d",&n);
while( _____1_____ ){
k++;
_____2_____;
}
printf("%d\n",k);
// n!=0
// n=n/10
}
?_ 3 ?_ lB彄Qev?etepT_OMep[WNKT??fiY倧"Qe
#include
#include
void main()
{
int n,s=0;
scanf("%d",&n);
______ 1 ______
while(n!=0) {
______ 2 ______
n=n/10;
}
printf("%d\n",s);
234 R6彄Qú 9?fi彄Qe -312 R6彄Qú 60_
// if (n<0) n=-n;
// s+=n%10;
1 of 25
4/21/
}
?_ 4 ?_ ?_u(Qyep
f?fi\_N_N*etep櫀\>P/n0_O?Y??7傚zff^弿"Qe
12345?fiR6彄Qú
54321?8傚zff^弿"Qe
-34567?fi
R6彄Qú -765430_
#include
#include
long f(long n)
{ long m,y=0; m=fabs(n);
while(m!=0) {
y=y*10+m%10;
____1____
}
if(n>=0) return y;
else _____2_____
}
void main()
{
// m=m/10 ?8
// return -y ;
printf("%ld\t",f(12345)); printf("%ld\n",f(-34567));
}
?_ 5 ?_ ?_u(Qyep
f?fiN?[W{&N2N-R -db@gv?ep[W[W{&0_
#include
#include
#include
void f(char *s)
{ int i=0;
while(s[i]!='\0'){
if(isdigit(s[i])) ____1____(s+i,s+i+1); // strcpy
___2___ i++;}
}
void main()
{ char str[80];
gets(str); f(str); puts(str);
}
// else
?_ 6 ?_ ?_u(
find QyepW(彄Qev?[W{&N2N-g?b~f/T&Qús°"the"徺N*SU嬐0_Y?g?g?R0徳VTQús°v?k!ep?fiY?g?
g*b~R0徳VT00_
#include
int find(char *str)
{ char *fstr="the";
int i=0,j,n=0;
while (str[i]!='\0')
{
for(______1______)
// j=0; j<3; j++
2 of 25
4/21/
if (str[j+i]!=fstr[j]) break;
if (______2______) n++;
i++;
}
return n;
}
void main()
{ char a[80];
gets(a);
printf("%d",find(a));
}
// j>=3
?_