C与语言题库100套.docx
- 文档编号:14305628
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:13
- 大小:17.88KB
C与语言题库100套.docx
《C与语言题库100套.docx》由会员分享,可在线阅读,更多相关《C与语言题库100套.docx(13页珍藏版)》请在冰点文库上搜索。
C与语言题库100套
1.素数问题
99:
请编写函数fun,其功能是:
计算并输出3到n之间所有素数的平方根之和。
doublefun(intn)
{intm,k,I;
doubles=0.0;
for(m=3;m<=n;m++)
{k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
s+=sqrt(m);}
returns;}
51:
请编写函数fun,其功能是:
将所有大于1小于整数m的非素数存入xx所指的数组中,非素数的个数通过k传回。
voidfun(intm,int*k,intxx[])
{inti,j;
intt=0;
for(i=2;i<m;i++)
{j=2;
while(j<i)
{if(i%j==0)
{xx[t]=i;
t++;
break;}
j++;}
*k=t;}}
5:
请编写一个函数voidfun(intm,intk,intxx[]),该函数的功能是:
将大于整数m且紧靠m的k各素数存入xx所指的数组中。
voidfun(intm,intk,intxx[])
{intI,j,n;
for(i=m+1,n=0;n {for(j=2;j If(i&j==0) break; if(j>=i) xx[n++]=I;}} 2.字符串问题 62: 请编写函数fun,该函数的功能是: 统计含字符串中单词的个数,作为函数值返回。 一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格格开,一行的开始没有空格。 intfun(char*s) {inti,n=0; for(i=0;i<strlen(s);i++) {if(s=‘a’&s<=‘z’&s[i+1]==‘’ ‖s[i+1]==‘\0’) n++;} returnn;} 25: 请编写一个函数fun,它的功能是: 比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。 若两个字符串长度相同,则返回第一个字符串。 char*fun(char*s,char*t) {char*p,*t1=t,*s1=s; intn=0;m=0; while(*s1) {n++; s1++;} while(*t1) {m++; t1++;} if(n>=m) p=s; else p=t; returnp;} 44: 编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。 intfun(char*str,char*substr) {intn; char*p,*r; n=0; while(*str) {p=str; r=substr; while(*r) if(*r==*p) {r++; p++;} else break; if(*r==‘\0’) n++; str++;} returnn;} 52: 编写一个函数fun,它的功能是: 实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。 voidfun(charp1[],charp2[]) {inti,j; for(i=0;p1[i]! =’\0’;i++); for(j=0;p2[j]! =’\0’;j++); p1[i++]=p2[j]; p1[i]=’\0’;} 29: 请编写一个函数fun,它的功能是: 将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。 voidfun(char*ss) {intI,n; n=strlen(ss); for(i=1;i<n;i+=2) if(ss[i]>=‘a’&&ss[i]<=‘z’) ss[i]=ss[i]-32;} 47: 请编写一个函数voidfun(char*ss),其功能时: 将字符串ss中所有下标为奇数位置上的字母转换为大写(若位置上不是字母,则不转换)。 voidfun(char*ss) {inti,n=0; char*p=ss; while(*p) {n++; p++;} for(i=0;i<n;i++) if((ss=‘a’&ss<=‘z’)&i%2! =0) ss=ss-32; ss=‘\0’;} 43: 编写一个函数,从传入的num个字符串中找出一个最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 char*fun(char(*a)[81],intnum) {inti; char*max; max=a[0]; for(i=0;i<num;i++) if(strlen(max)<strlen(a)) max=a; returnmax;} 38: 请编写函数fun,它的功能是: 求出ss所指字符串中指定字符的个数,并返回此值。 intfun(char*ss,charc) {intn=0; while(*ss) {if(*ss==c) n++; ss++;} returnn;} 23: 请编写函数fun,该函数的功能是: 判断字符串是否为回文? 若是则函数返回1,主函数中输出yes,否则返回0,主函数中输出no。 回文是指顺读和倒读都是一样的字符串。 intfun(char*str) { intI,n=0;fg=1; char*p=str; while(*p) {n++; p++;} for(i=0;i<n/2;i++) if(str[i]==str[n-1-i]); else {fg=0; break;} returnfg;} 字符串排序 59: 请别写函数fun,该函数的功能是: 将放在字符串数组中的m个字符串(每串的长度不超过n),按顺序合并组成一个新的字符串。 voidfun(chara[m][n],char*b) {inti,j,k=0; for(i=0;i<m;i++) {for(j=0;a[i][j]! =’\0’;j++) b[k++]=a[i][j]; b[k]=’\0’;} 41: 请编写函数fun,该函数的功能是: 将m行n列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 voidfun(char(*s)[n],char*b) {inti,j,k=0; for(j=0;j<n;j++) for(i=0;i<m;i++) {b[k]=*(*(s+i)+j) k++;} b[k]=‘\0’;} 40: 请编写函数fun,该函数的功能是移动字符串中内容,移动的规则如下: 把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。 voidfun(char*w,intm) { charb[N]; intI,j=0; for(i=0;i<m;i++) { b[j]=w[i]; j++; } for(i=0;i<strlen(w)-m;i++) w[i]=w[i+m]; for(j=0;j<m;j++) {w[i]=b[j]; i++;} w[i]=‘\0’;} 17: 请编写一个函数fun(char*s),该函数的功能使把字符串中的内容倒置。 voidfun(char*s) {charch; intI,m,n; i=0; m=n=strlen(s)-1; while(i<(n+1)/2) {ch=s[i]; s[i]=s[m]; s[m]=ch; i++; m--;}} 21: 请编写函数fun,对长度位7个字符的字符串,除首尾字符外,将其余5个字符按ascii码降序排列。 voidfun(char*s,intnum) {chart; intI,j; for(i=1;i<num-2;i++) for(j=i+1;j<num-1;j++) if(s[i]<s[j]) {t=s[i]; s[i]=s[j]; s[j]=t;}} 字符串删除 35: 请编写一个函数,用来删除字符串中的所有空格。 voidfun(char*str) {inti=0; char*p=str; while(*p) {if(*p! =‘’) {str[i]=*p; i++;} p++;} str[i]=‘\0’;} 19: 编写函数fun,该函数的功能是: 从字符中删除指定的字符,同一字母的大、小写按不同字符处理。 voidfun(chars[],intc) {inti=0; char*p; p=s; while(*p) {if(*p! =c) {s[i]=*p; i++;} p++;} s[i]=‘\0’;} 6: 请编写一个函数voidfun(chara[],char[],intn),其功能是: 删除以各字符串中指定下标的字符。 其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。 voidfun(chara[],charb[],intn) {intI,j=0; for(i=0;i<LEN;i++) if(i! =n) {b[j]=a[i]; j++;} b[j]=‘\0’;} 72: 请编写函数fun,其功能是: 将s所指字符串中下标为偶数的字符删除,串中剩余字符形成新串放在t所指数组中。 voidfun(char*s,chart[]) {inti,j=0,n=strlen(s); for(i=0;i<n;i++) if(i%2! =0) {t[j]=s; j++;} t[j]=‘\0’;} 78: 请编写函数fun,其功能是: 将s所指字符串中ascii值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 voidfun(char*s,chart[]) {inti,j=0,n=strlen(s); for(i=0;i<n;i++) if(s%2! =0) {t[j]=s; j++;} t[j]=‘\0’;} 64: 请编写函数fun,其功能是: 将s所指字符串中ascii值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 voidfun(char*s,chart[]) {inti,j=0,n; n=strlen(s); for(i=0;i<n;i++) if(s%2==0) {t[j]=s; j++;} t[j]=‘\0’;} 49: 请编写函数fun,其功能是: 将s所指字符串中下标位偶数同时ascii值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。 voidfun(char*s,chart[]) {inti,j=0,n=strlen(s); for(i=0;i<n;i++) if(i%2==0&s%2! =0) else {f[j]=s; j++;} t[j]=‘\0’;} 0、请编写函数fun,其功能是: 将s所指字符串中除了下标为偶数、同时ascii值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的一个数组中。 voidfun(char*s,chart[]) {intI,j=0,n; n=strlen(s); for(i=0;I,n;i++) if(i%2==0&&s[i]%2==0) {t[j]=s[i]; j++;} t[j]=‘\0’; 32: 请编写函数fun,其功能是: 将s所指字符串中除了下标为奇数、同时ascii值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在t所指的一个数组中。 voidfun(char*s,chart[]) {intI,j=0,n; n=strlen(s); for(i=0;I,n;i++) if(i%2! =0&&s[i]%2! =0) {t[j]=s[i]; j++;} t[j]=‘\0’;} 星星问题 94: 规定输入字符串中只包含字母和*号。 请编写函数fun,它的功能是: 将函数字符串中的前导*号全部删除,中间和尾部的*号不删除。 voidfun(char*a) {inti=0; char*p=a; while(*p&&*p==‘*’) p++; while(*p) {a[i]=*p; i++; p++;} a[i]=‘\0’;} 95: 假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能是: 使字符串的前导*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做。 字符串中间和尾部的*号不删除。 voidfun(char*a,intn) {inti=0,k=0; char*t=a; while(*t==‘*’) { k++; t++; } t=a; if(k>n) t=a+k-n; while(*t) {a[i]=*t; i++; t++;} a[i]=‘\0’;} 88: 假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能是: 除了字符串前导的*号之外,将串中其他*号全部删除。 在编写函数亚时,不得使用c语言提供的字符串函数。 voidfun(char*a) {inti=0; char*p=a; while(*p&&*p==‘*’) {a=*p; i++; p++;} while(*p) {if(*p! =‘*’) {a=*p; i++;} p++;} a=‘\0’;} 83: 假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能使: 将字符串尾部的*号全部删除,前面和中间的*号不删除。 voidfun(char*a) {inti=0; char*p,*q; p=q=a; while(*p) p++; p--; while(*p==‘*’) p--; while(q<=p) {a=*q; i++; q++;} a=‘\0’;} 73: 假定输入的字符串中只包含字母和*号,请编写函数fun,它的功能是: 除了字符串前导和尾部的*号之外,将串中其他*号全部删除。 形参h已指向字符串第一个字符,形参p已指向字符串中最后一个字母。 在编写程序时,不得使用c语言提供的字符串函数。 voidfun(char*a,char*h,char*p) {inti=0; char*q=a; while(q<h) {a=*q; q++; i++;} while(q<p) {if(*q! =‘’*) {a=*q; i++;} q++;} while(*q) {a=*q; i++; q++;} a=‘\0’;} 66: 假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能是: 删除字符串中所有*号。 在编写函数时,不得使用c语言提供的字符串函数。 voidfun(char*a) {intI,j=0; for(i=0;a[i]! =’\0’;i++) If(a[i]! =’*’) a[j++]=a[i]; a[j]=’\0’;} 56: 假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能是: 除了尾部的*号之外,将字母串中其他*号全部删除。 形参p已指向字符串中最后的一个字母。 不使用c的字符串函数。 voidfun(char*a,char*p) {inti=0; char*p=a; while(q<=p) {if(*q! =‘*’) {a=*q; i++;} q++;} while(*q) {a=*q; i++; q++;} a=‘\0’;} 45: 假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能是: 只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。 形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后的*个数。 在编写时不得使用c语言给提供得字符串函数。 voidfun(char*a,intn,inth,inte) {inti=0; char*p; for(p=a+h;p<a+n-e;p++) {*(a+i)=*p; i++;} *(a+i)=‘\0’;} 36: 假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能是: 将字符串中的前导*号全部移到字符串的尾部。 voidfun(char*a) {inti=0,n=0; char*p; p=a; while(*p==‘*’) {n++; p++;} while(*p) {a[i]=*p; i++; p++;} while(n! =0) {a[i]=‘*’; i++; n--;} a[i]=‘\0’;} 33: 假定输入的字符串中只包含字母和*号。 请编写函数fun,它的功能是: 使字符串中尾部的*号不得多于n个;若多于n个,则删除多于的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。 voidfun(char*a,intn) {inti=0;k=0; char*p,*t; p=t=a; while(*t) t++; t--; while(*t==‘*’) {k++; t--;} t++; if(k>n) {while(*p&&p<t+n) {a[i]=*p; i++; p++;} a[i]=‘\0’;}}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 题库 100
![提示](https://static.bingdoc.com/images/bang_tan.gif)