当前位置:首页 > C程序设计 上机考试练习
上机程序调试及程序设计练习
上机程序调试及程序设计练习
一、程序填空
(1) 找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1
#include
for(i=100;i<=999;i++) { a=i/100;
_______1_______ // b=i0/10;
c=i;
if (________2________) // a*a*a+b*b*b+c*c*c = = i } }
(2) 输入1个整数后,输出该数的位数。(例:输入3214则输出4,输入-23156则输出5)。
#include
{ int n,k=0;
scanf(\
while( _____1_____ ){ // n!=0 k++;
_____2_____; // n=n/10 }
printf(\}
(3) 求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。
#include
#include
{
int n,s=0;
scanf(\
______ 1 ______ // if (n<0) n=-n; while(n!=0) {
______ 2 ______ // s+=n; n=n/10; }
printf(\
1 of 25 4/28/2013
printf(\
上机程序调试及程序设计练习
}
(4) 调用函数f,将一个整数首尾倒置。例如:若程序输入12345,则输出54321;若程序输入-34567,
则输出-76543。
#include
{ long m,y=0; m=fabs(n); while(m!=0) { y=y*10+m;
____1____ // m=m/10 ; }
if(n>=0) return y;
else _____2_____ // return -y ; }
void main() {
printf(\ printf(\}
(5) 调用函数f,从字符串中删除所有的数字字符。
#include
while(s[i]!='\\0'){
if(isdigit(s[i])) ____1____(s+i,s+i+1); // strcpy ___2___ i++;} // else }
void main() { char str[80];
gets(str); f(str); puts(str); }
(6) 调用find函数在输入的字符串中查找是否出现\这个单词。如果查到返回出现的次数,如果
未找到返回0。 #include
while (str[i]!='\\0') {
for(______1______) // j=0; j<3; j++
2 of 25 4/28/2013
上机程序调试及程序设计练习
if (str[j+i]!=fstr[j]) break;
if (______2______) n++; // j>=3 i++; }
return n; }
void main() { char a[80]; gets(a);
printf(\
}
(7) 输入的一个小写字母,将字母循环后移5个位置后输出。例如:\变成\,\变成\。
#include
void main() { char c;
c=getchar();
if(______1______) // c>='a'&&c<='u' c=c+5; else
if (c>='v' && c<='z')
______2______ // c=(c-'a'+5)&+'a'; putchar(c); }
(8) 将字符串s中所有的字符'c'删除。
#include
gets(s);
for(i=j=0; ______1______; i++) // s[i] != '\\0' if(s[i] != 'c') { s[j]=s[i];
______2______ // j++; } s[j]='\\0'; puts(s); }
(9) 对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。
#include
#define f(x) x*x-5*x+sin(x)
3 of 25 4/28/2013
上机程序调试及程序设计练习
void main() { int x; float max;
______1______ // max=f(1); for(x=2;x<=10;x++)
______2______ // if (f(x)>max) max=f(x);
printf(\
}
(10) 输入三个整数,按由小到大的顺序输出这三个数。
#include
void swap(______1______) // int *pa, int *pb { /*交换两个数的位置*/ int temp; temp = *pa; *pa = *pb; *pb = temp; }
void main()
{ int a,b,c,temp;
scanf(\ if(a>b)
swap(&a,&b); if(b>c)
swap(&b,&c);
if(______2______) // if ( a>b ) swap(&a,&b);
printf(\}
(11) 调用函数f,去除数组中的负数,输入数组x[7],输出结果为:1 #include
for(i=0;i<*m;i++)
if(a[i]<0) {
for(j=i--;j<*m-1;j++) a[j]=a[j+1];
_____1_____; // *m = *m-1; } }
void main()
{ int i,n=7,x[7]={1,-2,3,4,-5,6,-7};
_______2_______; // f (x, &n) ; for(i=0;i 4 of 25 3 4 6 4/28/2013
共分享92篇相关文档