夏学期C程序设计上机练习参考答案
#include
80022 找最长字符串
输入一个正整数 repeat (0 输入一个正整数 n (1 输入输出示例:括号内为说明 输入: 3 (repeat=3) 5 (n=5) melon peach pear strawberry orange 3 (n=3) pear berry orange 4 (n=4) melon peach pear apple 输出: The longest is: strawberry The longest is: orange The longest is: melon #include 80021 找最大的字符串 输入5个字符串,输出其中最大的字符串。 输入输出示例:括号内为说明 输入: peach pear melon orange berry 输出: Max is: pear #include 夏学期C程序设计上机练习参考答案 } } strcpy(longest,sx); for(i=1;i 80024 使用函数实现字符串复制 输入一个正整数 repeat (0 输入一个字符串 t 和一个正整数 m,将字符串 t 中从第 m 个字符开始的全部字符复制到字符串 s 中,再输出字符串 s。 要求定义并调用函数 strmcpy(s,t,m), 它的功能是将字符串 t 中从第 m 个字符开始的全部字符复制到字符串 s 中,函数形参s和t的类型是字符指针,形参m的类型是int,函数类型是void。 输入输出示例:括号内为说明 输入: 3 (repeat=3) happy new year 7 if (str[i] != c) /* 若当前字符是要被保留的 */ { } else i++; /* 否则查看下一个元素 */ str[j]=str[i]; i++; j++; 80023 使用函数删除字符串中的字符 输入一个正整数 repeat (0 输入一个字符串 str,再输入一个字符 c,将字符串 str 中出现的所有字符 c 删除。 要求定义并调用函数delchar(str,c), 它的功能是将字符串 str 中出现的所有 c 字符删除,函数形参str的类型是字符指针,形参c的类型是char,函数类型是void。 输入输出示例:括号内为说明 输入 3 (repeat=3) happy new year (字符串\a (待删除的字符'a') bee (字符串\e (待删除的字符'e') 111211 (字符串\1 (待删除的字符'1') 输出 result: hppy new yer (字符串\中的字符'a'都被删除) result: b (字符串\中的字符'e'都被删除) result: 2 (字符串\中的字符'1'都被删除) #include 夏学期C程序设计上机练习参考答案 happy 1 new 4 输出: new year (从\第7个字符开始组成的新字符串为\) happy (从\第1个字符开始组成的新字符串为\) error input (\的长度小于4) #include 80025 判断回文字符串 输入一个正整数 repeat (0 输入一个字符串(长度不超过80),判断该字符串是否为“回文”。“回文”是指顺读和倒读都一样的字符串,如“XYZYX”和“xyzzyx”。 要求定义并调用函数 mirror(p)判断字符串 p 是否为“回文”,如果 p 是回文字符串,返回1,否则,返回0,函数形参 p 的类型是字符指针,函数类型是 int。 输入输出示例:括号内为说明 输入: 2 abcddcba abcddcb 输出: YES NO #include puts(s); } } } void strmcpy(char *s,char *t,int m) { int i,j; for(i=m-1,j=0;*(t+i)!='\\0';i++,j++) *(s+j)=*(t+i); *(s+j)='\\0'; } 或者void strmcpy()用数组元素表示 void strmcpy(char s[],char t[],int m) { else printf(\ } } int mirror(char *p) 23 夏学期C程序设计上机练习参考答案 { int n,i; n=strlen(p); for(i=0;i<=n/2;i++,n--) if (p[i]== p[n-1]) /* 此句也可写成if(*(p+i)==*(p+n-1)) */ return 1; return 0; } 80026 分类统计字符个数 输入一行字符(不超过80个),统计其中的大写字母、小写字母、空格、数字以及其他字符的个数。 输入输出示例: 输入: bFaE3+8 =1R 输出: upper: 3 lower: 2 blank: 1 digit: 3 other: 2 #include 计算函数P(n,x) 输入一个正整数repeat (0 输入一个整数n (n>=0)和一个双精度浮点数x,输出函数p(n,x)的值(保留2位小数)。 [1 (n=0) p(n, x) = [x (n=1) [((2*n-1)*p(n-1,x)-(n-1)*p(n-2,x))/n (n>1) 例:括号内是说明 输入 3 0 1 10 输出 p(0, 0.90)=1.00 p(1, -9.80)=-9.80 p(10, 1.70)=3.05 #include (n=0,x=0.9) (n=1,x=-9.8) (n=10,x=1.7) else if(s[i]>='a'&&s[i]<='z') lower++; else if(s[i]==' ') blank++; else if(s[i]>='0'&&s[i]<='9') else digit++; other: %d\\n\ 24