C语言程序设计练习题(含程序及参考答案) 下载本文

isfirst = 1; }

return tt; } main() {

int i; char tt[81];

printf(\ gets( tt );

printf( \result string is:%s\\n\EXUL( tt ) ); }

40、编写程序,从键盘输入字符串tt,字符串中'a'到'z'26个字母各自出现的次数,并依次放在pp所指数组中。 例如,当输入字符串:abcdefgabcdeabc后,程序的输出结果应该是:3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

#include

void fun(char *tt, int pp[]) {

char *p_tt=tt; int i=0;

第 41 页 共 46 页

while(i<26){ pp[i]=0; i++;}

for(;*p_tt!=NULL;p_tt++){ switch(*p_tt){

case 'a':pp[0]++;break; case 'b':pp[1]++;break; case 'c':pp[2]++;break; case 'd':pp[3]++;break; case 'e':pp[4]++;break; case 'f':pp[5]++;break; case 'g':pp[6]++;break; case 'h':pp[7]++;break; case 'i':pp[8]++;break; case 'j':pp[9]++;break; case 'k':pp[10]++;break; case 'l':pp[11]++;break; case 'm':pp[12]++;break; case 'n':pp[13]++;break; case 'o':pp[14]++;break; case 'p':pp[15]++;break; case 'q':pp[16]++;break; case 'r':pp[17]++;break; case 's':pp[18]++;break; case 't':pp[19]++;break; case 'u':pp[20]++;break;

42

case 'v':pp[21]++;break; case 'w':pp[22]++;break; case 'x':pp[23]++;break; case 'y':pp[24]++;break; case 'z':pp[25]++;break; } } } main( )

{ char aa[1000] ; int bb[26], k, n ;

printf( \scanf(\ fun(aa, bb ) ;

for ( k = 0 ; k < 26 ; k++ ) printf (\\bb[k]) ; printf( \ }

41、请编写程序,把字符串s中所有的字符前移一个位置,串中的第一个字符移到最后。

例如:原有的字符串为:Mn.123xyZ,则调用该函数后,串中的内容为:n.123xyZM。

#include #include

第 43 页 共 46 页

#define N 81 fun ( char *s ) {

char b[N] ;

sprintf(b, \ strcpy(s, b) ; }

void main( ) {

char a[ N ] ;

printf ( \ printf ( \ fun ( a );

printf ( \ puts ( a ); }

42、编写程序,把字符串中的内容逆置。

例如:字符串中原有的内容为:abcdefg,输出:gfedcba。 #include #include #define N 81 void fun ( char *s ) {

int i ,length;

44