C语言函数习题及答案
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.编写一个函数fun实现求一个字符串中的Fra Baidu bibliotek文字母的个数
#include "stdio.h" int fun(char s[]) {int i,n=0; for(i=0;s[i]!='\0';i++) if(s[i]>='A' && s[i]<='Z'|| s[i]>='a' && s[i]<='z')n++; return n; } main() {int n; char s[100]; scanf("%s",s); n=fun(s); printf("\nThe result is :%d\n",n); }
6.编写函数fun(str,i,n),从字符串str中删除第i个字符开始的连续n个字符(注
意:str[0]代表字符串的第一个字符)。仅在fun函数体内编写代码即可。
#include "stdio.h" void fun(char str[],int i,int n) { int j; for(j=i+n;str[j]!='\0';j++) str[i++]=str[j]; str[i]='\0'; } main() { char str[80]; int i,n; printf("请输入字符串str的值:\n"); scanf("%s",str); printf("请输入删除位置i和待删字符个数n的值:\n"); scanf("%d%d",&i,&n); while (i+n-1>strlen(str)) { printf("删除位置i和待删字符个数n的值错!请重新输入i和n的值\n"); scanf("%d%d",&i,&n);} fun(str,i,n); printf("删除后的字符串str是:%s\n",str);}
5.编写函数fun,将一个字符串中下标从m的开始的全部字符复制 到另一个字符数组中。在main函数中输入字符串和m的值,并输 出运行结果。仅在fun函数体内编写代码即可。
#include "stdio.h" void fun(char str1[],char str2[],int m) {int i,j=0; for(i=m;str1[i]!='\0';i++) str2[j++]=str1[i]; str2[j]='\0'; } main() {int i,m; char str1[80],str2[80]; gets(str1);scanf("%d",&m); puts(str1); fun(str1,str2,m); puts(str2); }
4.编写函数fun,其功能是将字符串s中下标为奇数的字符删除, 字符串中剩余字符形成的新字符串放在字符数组t中。仅在fun函 数体内编写代码即可。 #include "stdio.h" void fun(char s[],char t[]) {int i,j=0; for(i=0;s[i]!='\0';i++) if(i%2!=0)t[j++]=s[i]; t[j]='\0'; } main() { char s[100],t[100]; printf("\nPlease enter string s:"); scanf("%s",s); fun(s,t); printf("\nThe result is :%s\n",t); }
2.编写一个函数fun,实现将一个字符串反序存放。例如:在 主函数中输入字符串“abcdefg”,在调用fun函数后,则应输出 “gfedcba”。 #include <stdio.h>
#include <string.h> #define N 81 char fun(char s[],int n) {int i; char c; for(i=0;i<=(n-1)/2;i++) {c=s[i]; s[i]=s[n-1-i]; s[n-1-i]=c;} } main() { char s [N]; int l; printf("input a string:");gets(s); l=strlen(s); fun(s,l); printf("The new string is :");puts(s); }
8.编写函数,对一组数按从小到大的顺序排序(分别用选择法、 顺序法和冒泡法实现)。 #include "stdio.h" void sort(int a[],int n) { int i,j, t; for (i=0;i<n-1;i++) for (j=0;j<n-1-i;j++) if (a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } void main( ) { int array[10],i; for (i=0;i<10;i++) scanf ("%d",&array[i]); sort(array,10); for (i=0;i<10;i++) printf ("%5d",array[i]); printf ("\n");}
3.编写一个函数fun实现字符串连接功能(不允许使用strcat函数)。 #include "stdio.h" #include "string.h" void fun(char s[],char t[]) {int i,j; j=strlen(s); for(i=0;t[i]!='\0';i++) s[j++]=t[i]; s[j]='\0'; } main() {char s[100],t[100]; gets(s);gets(t); fun(s,t); printf("\nThe result is :%s\n",s); }
7.编写函数,求一组数中最大值出现的位置(如果最大值出现多次, 求出第一次出现的下标即可)。 #include<stdio.h> int station(int s[],int n) {int i,k; k=0; for(i=1;i<=n;i++) if(s[i]>s[k]) k=i; return(k+1); } main() { int a[100],n,i,t; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); t=station(a,n); printf("the max_value position is:%d\n",t); }
#include "stdio.h" int fun(char s[]) {int i,n=0; for(i=0;s[i]!='\0';i++) if(s[i]>='A' && s[i]<='Z'|| s[i]>='a' && s[i]<='z')n++; return n; } main() {int n; char s[100]; scanf("%s",s); n=fun(s); printf("\nThe result is :%d\n",n); }
6.编写函数fun(str,i,n),从字符串str中删除第i个字符开始的连续n个字符(注
意:str[0]代表字符串的第一个字符)。仅在fun函数体内编写代码即可。
#include "stdio.h" void fun(char str[],int i,int n) { int j; for(j=i+n;str[j]!='\0';j++) str[i++]=str[j]; str[i]='\0'; } main() { char str[80]; int i,n; printf("请输入字符串str的值:\n"); scanf("%s",str); printf("请输入删除位置i和待删字符个数n的值:\n"); scanf("%d%d",&i,&n); while (i+n-1>strlen(str)) { printf("删除位置i和待删字符个数n的值错!请重新输入i和n的值\n"); scanf("%d%d",&i,&n);} fun(str,i,n); printf("删除后的字符串str是:%s\n",str);}
5.编写函数fun,将一个字符串中下标从m的开始的全部字符复制 到另一个字符数组中。在main函数中输入字符串和m的值,并输 出运行结果。仅在fun函数体内编写代码即可。
#include "stdio.h" void fun(char str1[],char str2[],int m) {int i,j=0; for(i=m;str1[i]!='\0';i++) str2[j++]=str1[i]; str2[j]='\0'; } main() {int i,m; char str1[80],str2[80]; gets(str1);scanf("%d",&m); puts(str1); fun(str1,str2,m); puts(str2); }
4.编写函数fun,其功能是将字符串s中下标为奇数的字符删除, 字符串中剩余字符形成的新字符串放在字符数组t中。仅在fun函 数体内编写代码即可。 #include "stdio.h" void fun(char s[],char t[]) {int i,j=0; for(i=0;s[i]!='\0';i++) if(i%2!=0)t[j++]=s[i]; t[j]='\0'; } main() { char s[100],t[100]; printf("\nPlease enter string s:"); scanf("%s",s); fun(s,t); printf("\nThe result is :%s\n",t); }
2.编写一个函数fun,实现将一个字符串反序存放。例如:在 主函数中输入字符串“abcdefg”,在调用fun函数后,则应输出 “gfedcba”。 #include <stdio.h>
#include <string.h> #define N 81 char fun(char s[],int n) {int i; char c; for(i=0;i<=(n-1)/2;i++) {c=s[i]; s[i]=s[n-1-i]; s[n-1-i]=c;} } main() { char s [N]; int l; printf("input a string:");gets(s); l=strlen(s); fun(s,l); printf("The new string is :");puts(s); }
8.编写函数,对一组数按从小到大的顺序排序(分别用选择法、 顺序法和冒泡法实现)。 #include "stdio.h" void sort(int a[],int n) { int i,j, t; for (i=0;i<n-1;i++) for (j=0;j<n-1-i;j++) if (a[j]>a[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } void main( ) { int array[10],i; for (i=0;i<10;i++) scanf ("%d",&array[i]); sort(array,10); for (i=0;i<10;i++) printf ("%5d",array[i]); printf ("\n");}
3.编写一个函数fun实现字符串连接功能(不允许使用strcat函数)。 #include "stdio.h" #include "string.h" void fun(char s[],char t[]) {int i,j; j=strlen(s); for(i=0;t[i]!='\0';i++) s[j++]=t[i]; s[j]='\0'; } main() {char s[100],t[100]; gets(s);gets(t); fun(s,t); printf("\nThe result is :%s\n",s); }
7.编写函数,求一组数中最大值出现的位置(如果最大值出现多次, 求出第一次出现的下标即可)。 #include<stdio.h> int station(int s[],int n) {int i,k; k=0; for(i=1;i<=n;i++) if(s[i]>s[k]) k=i; return(k+1); } main() { int a[100],n,i,t; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); t=station(a,n); printf("the max_value position is:%d\n",t); }