C程序设计 上机考试练习 联系客服

发布时间 : 星期六 文章C程序设计 上机考试练习更新完毕开始阅读5f2eded376eeaeaad1f330d6

上机程序调试及程序设计练习

上机程序调试及程序设计练习

一、程序填空

(1) 找Armstrong(水仙花)数:371=3*3*3+7*7*7+1*1*1

#include #include void main() { int i,a,b,c;

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 void main()

{ int n,k=0;

scanf(\

while( _____1_____ ){ // n!=0 k++;

_____2_____; // n=n/10 }

printf(\}

(3) 求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

#include

#include void main()

{

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 #include long f(long n)

{ 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 #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++;} // else }

void main() { char str[80];

gets(str); f(str); puts(str); }

(6) 调用find函数在输入的字符串中查找是否出现\这个单词。如果查到返回出现的次数,如果

未找到返回0。 #include int find(char *str) { char *fstr=\ int i=0,j,n=0;

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 void main() { char s[80]; int i,j;

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 #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 // 数组元素的删除 void f(int *a,int *m) { int i, j ;

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