东北大学C语言题库及答案二.docx
《东北大学C语言题库及答案二.docx》由会员分享,可在线阅读,更多相关《东北大学C语言题库及答案二.docx(28页珍藏版)》请在冰点文库上搜索。
东北大学C语言题库及答案二
1、从键盘输入一个数据(1~12),表示2014年的某个月份,输出该月份对应的天数。
#include
main()
{
intmonth,day;
printf("请输入月份:
\n");
scanf("%d",&month);
switch(month)
case1:
case3:
case5:
case7:
case8:
case10:
case12:
day=31;break;
case4:
case6:
case9:
case11:
day=30;break;
case2:
day=28;break;
default:
day=0;
}
if(day==0)
printf("月份输入错误\n");
else
printf("2014年%d月份天数=%d\n",month,day);
4、从键盘输入一个四位整数,计算其上下边界,例如2345,其下边界为2000,上边界为3000,依此类推
inta,min,max;
printf("请输入一个四位整数:
scanf("%d",&a);
min=(a/1000)*1000;
max=((a/1000)+1)*1000;
printf("上边界为:
%d,下边界为:
%d\n",max,min);
6、从键盘输入一个字母表示的成绩,将其转换为分数。
规则是'A'对应95、'B'对应85、'C'对应75、'D'对应65、'E'对应55。
要求输入字母后,输出对应的成绩
chargrade;
intscore;
printf("请输入一个字母:
scanf("%c",&grade);
switch(grade)
case'A':
score=95;break;
case'B':
score=85;break;
case'C':
score=75;break;
case'D':
score=65;break;
case'E':
score=55;break;
default:
score=0;
if(score==0)
printf("输入字母有误\n");
printf("对应成绩为:
%d\n",score);
7、从键盘输入一个百分制分数,将其转换为等级'A'、'B'、'C'、'D'、'E'后输出成绩。
转换规则为:
90分以上为'A';80~89分为'B';70~79分为'C';60~69分为'D';60分以下为'E'
printf("请输入学生成绩:
scanf("%d",&score);
if(score>=90)
grade='A';
elseif(score>=80)
grade='B';
elseif(score>=70)
grade='C';
elseif(grade>=60)
grade='D';
elsegrade='F';
printf("Thegradeis%c\n",grade);
8、从键盘输入任意一个字母,如果其为大写字母,则转为小写字母;如果其为小写字母,请转换为大写字母;其他情况保持不变,计算并输出。
charch;
printf("请输入一个字母\n");
scanf("%c",&ch);
if(ch>='A'&&ch<='Z')
ch=ch+32;
printf("%c\n",ch);
elseif(ch>='a'&&ch<='z')
ch=ch-32;
9、从键盘输入任意一个字母或者是数字,如果其为字母,则输出“Aletter”;如果其为数字,则输出“Anumber”。
printf("请输入数字或字母:
if(ch>='0'&&ch<='9')
printf("Anumber\n");
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
printf("Aletter\n");
10、从键盘输入任意一个字母,如果其为大写字母,则输出“capitalletter”;如果其为小写字母,则输出“lowercaseletter”;其他情况,则输出“othercase”。
printf("capitalletter\n");
printf("lowercaseletter\n");
printf("othercase\n");
11、15、初始化一个5X5的二维矩阵,计算主对角线上的元素之和,次对角线元素之积。
要求输出此矩阵,并输出主对角线之和,次对角线元素之积。
提示a[0][0],a[1][1]之类的元素为主对角线元素,a[0][4],a[1][3]之类的元素为次对角线元素。
inta[5][5]={1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5},i,j,sum=0,pro=1;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
printf("%d",a[i][j]);
printf("\n");
sum=sum+a[i][i];
printf("主对角线元素之和=%d\n",sum);
pro=pro*a[i][4-i];
printf("次对角线元素之积=%d\n",pro);
14、找出矩阵(5×5)的最大值和最小值,然后把最大值加99,把最小值减99。
要求初始化一个原始矩阵,输出原始矩阵以及转换后的矩阵。
inta[5][5]={1,2,3,4,5,6,7,8,9,0,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
inti,j,max=a[0][0],min=a[0][0],m=0,n=0,p=0,q=0;
if(max{max=a[i][j];m=i,n=j;}if(min>a[i][j]){min=a[i][j];p=i,q=j;}}}a[m][n]=a[m][n]+99;a[p][q]=a[p][q]-99;for(i=0;i<5;i++){for(j=0;j<5;j++){printf("%d",a[i][j]);}printf("\n");}} 16、初始化一矩阵a[5][5],计算每行的最大元素之和,要求输出原始矩阵以及每行的最大元素值之和#includemain(){inta[5][5]={1,2,3,4,10,6,7,8,9,0,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};inti,j,max,sum=0;for(i=0;i<5;i++){for(j=0;j<5;j++){printf("%d",a[i][j]);}printf("\n");}for(i=0;i<5;i++){max=a[i][0];for(j=0;j<5;j++){if(max<=a[i][j])max=a[i][j];}printf("第%d行最大元素为:%d\n",i+1,max);sum=sum+max;}printf("每行最大元素之和为%d\n",sum);}12、利用公式π/4≈1-1/3+1/5-1/7+1/9-…计算π的近似值,当最后一项的绝对值小于0.000001为止。#includemain(){intt=1;floati,sum=0.0,s;i=1.0;while(1.0/i>=0.000001){sum=sum+(1.0/i)*t;i=i+2;t=t*(-1);}s=4*sum;printf("π的值=%.6f\n",s);} 13、计算并输出多项式1-1/3+1/5-1/7+…+1/99-1/101的结果值。#includemain(){intt=1;floati,sum=0.0;i=1.0;while(i<=101){sum=sum+(1.0/i)*t;i=i+2;t=t*(-1);}printf("%.6f\n",sum);} 17、计算分数序列:2/1,-3/2,5/3,-8/5,13/8,-21/13,…,的前20项之和并输出。#includemain(){inti,t=1;floatn,a=1.0,b=1.0,sum=0.0;for(i=1;i<=20;i++){n=a+b;sum=sum+t*n/b;t=t*(-1);a=b;b=n;}printf("前二十项和为:%f\n",sum);} 18、计算1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…n)的值,n的值由键盘输入,要求小数点后保留6位。#includemain(){intn,i;floats=0.0,sum=0.0;printf("请输入n值:\n");scanf("%d",&n);for(i=1;i<=n;i++){sum=sum+i;s=s+1.0/sum;}printf("值为:%.6f\n",s);}19、计算1-1/2+1/3-1/4+…+1/n的和,在主函数输入n,计算输出结果。#includemain(){intn,i,t=1;floats=0.0;printf("请输入n值:\n");scanf("%d",&n);for(i=1;i<=n;i++){s=s+t*1.0/i;t=t*(-1);}printf("值为:%.6f\n",s);} 21、已知一有序序列1,3,4,8,15,17,要求从键盘输入一个整数,将此整数插入到此有序序列中。要求输出原始数组和插入之后的数组。要求编制函数insert(int*p,intd)实现此功能,在主函数调用此函数。提示:例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。#includevoidinsert(int*p,intd){inti=0,temp,len=7;while(p[i]i++;if(i==6)p[i]=d;for(;i{temp=p[i];p[i]=d;d=temp;}}intmain(void){intnum[7]={1,3,4,8,15,17};int*p=num;intdata,i;printf("输入一个整数:");scanf("%d",&data);for(i=0;i<6;i++)printf("%2d",num[i]);printf("\n");insert(p,data);for(i=0;i<7;i++)printf("%2d",num[i]);printf("\n");return0;} 22、编写函数mstrcat(char*t,char*s)将字符串s1中的全部英文字符连接到字符串s2的尾部。#include"stdio.h"voidmstrcat(char*t,char*s){inti,j;i=0;while(t[i]!='\0')i++;j=0;while(s[j]!='\0'){if((s[j]>='A'&&s[j]<='Z')||(s[j]>='a'&&s[j]<='z')){t[i]=s[j];i++;j++;}elsej++;}t[i]='\0';}main(){while(1){chars1[100],s2[100];printf("请输入字符串s1,长度小于10:\n");gets(s1);printf("请输入字符串s2,长度小于10:\n");gets(s2);mstrcat(s1,s2);printf("%s\n",s1);printf("########################################################\n");}}#includevoidmstrcat(char*t,char*s){inti=0,j=0;while(s[i])i++;//先找到第二个串的结尾while(t[j]){if((t[j]>='a'&&t[j]<='z')||(t[j]>='A'&&t[j]<='Z')){s[i++]=t[j];}j++;}//把第一个串里的英文接到第二个串s[i]='\0';//给第二个串加结束标记}intmain(){chars1[100],s2[100];scanf("%s%s",s1,s2);//读入mstrcat(s1,s2);puts(s2);//输出return0;} 23、从键盘读入一字符c,判断其在字符串"English"中是否存在,假设此数组中不存在重复的字符。若存在,则删除此数据;否则,提示此数据不存在。要求:编制函数del(char*p,charc)实现数据的清理工作,并输出原始字符串和删除后的字符串。#include#defineN6#defineremoveremoveevoidremove(double*p,doubled){inti,j;for(i=0;iif(p[i]==d)break;if(i>=N)printf("%5.0f不在数组中",d);elsefor(j=i;jp[j]=p[j+1];}main(){doublea[N]={3,23,-7,8,9,10};doublenum;inti;printf("删除前数组:\n");for(i=0;iprintf("%5.0f",a[i]);printf("\n");printf("请输入要删除的数:");scanf("%lf",&num);printf("");remove(a,num);printf("删除后数组:\n");for(i=0;iprintf("%5.0f",a[i]);printf("\n");}#includevoidstrdel(char*p,charc){inti,j;intflag=1;for(i=0;*(p+i)!='\0';i++){if(*(p+i)==c){flag=0;j=i;for(i=j;*(p+i)!='\0';i++){*(p+i)=*(p+i+1);}}}if(flag==0)puts(p);elseif(flag==1)printf("NO");}intmain(){charstr[]="English",c;char*p;intflag=1;p=str;puts(str);scanf("%c",&c);strdel(str,c);} 24、编写函数fun(char*p)判断一个字符串是否是回文字符串(提示:回文字符串是指正读和反读都一样的字符串),要求:从键盘上读入一个字符串,字符长度可以自己定义。如果是回文字符串,输出该串,否则输出no。(本题不允许使用字符串处理库函数)#includevoidfun(char*p){inti,m=0;for(i=0;i<12;i++){if(p[i]==p[11-i])m++;}if(m==12)puts(p);elseprintf("NO");}intmain(){intm;char*p;chars[12];p=s;scanf("%s",s);fun(p);return0;}#includevoidstrfun(char*str){inti,j=0;intflag=1;for(i=0;*(str+i)!='\0';i++){j++;if(*(str+i)==*(str+j-i-1)){flag=0;}else{flag=1;}}if(flag==0)printf("Y");if(flag==1)printf("N");}intmain(){charstr[100];gets(str);strfun(str);}25、在物理实验中,获得5个数据{0.89,0.78,1.09,0.67,0.56},其中有一个数据大于1,此数据无效,将此无效数据删除。要求编制函数cleandata(double*p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。#includevoidcleandata(double*p){inti,j;for(i=0,j=0;i<5;i++){if(p[i]<1.0000){p[j]=p[i];j++;}}}voidmain(){inti;doublea[]={0.89,0.78,1.09,0.67,0.56};printf("原数组为:\n");for(i=0;i<5;i++){printf("%10.4f",a[i]);}printf("\n");cleandata(a);printf("删除后数组为:\n");for(i=0;i<4;i++){printf("%10.4f",a[i]);}printf("\n");}26、编写函数clear(char*p)将字符串s1中的非英文字母删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"voidclear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]>='a'&&p[i]<='z'||p[i]>='A'&&p[i]<='Z')p[j++]=p[i];p[j]='\0';}voidmain(){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfkMdl;jkds;";printf("%s\n",str);clear(str);printf("\n%s\n\n",str);}27、编写函数clear(char*p)将字符串s1中的阿拉伯数字字符删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"char*clear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]<'0'||p[i]>'9')p[j++]=p[i];p[j]='\0';returnp;}intmain(void){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfk
max=a[i][j];
m=i,n=j;
if(min>a[i][j])
min=a[i][j];
p=i,q=j;
a[m][n]=a[m][n]+99;
a[p][q]=a[p][q]-99;
16、初始化一矩阵a[5][5],计算每行的最大元素之和,要求输出原始矩阵以及每行的最大元素值之和
inta[5][5]={1,2,3,4,10,6,7,8,9,0,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
inti,j,max,sum=0;
max=a[i][0];
if(max<=a[i][j])
printf("第%d行最大元素为:
%d\n",i+1,max);
sum=sum+max;
printf("每行最大元素之和为%d\n",sum);
12、利用公式π/4≈1-1/3+1/5-1/7+1/9-…计算π的近似值,当最后一项的绝对值小于0.000001为止。
intt=1;
floati,sum=0.0,s;
i=1.0;
while(1.0/i>=0.000001)
sum=sum+(1.0/i)*t;
i=i+2;
t=t*(-1);
s=4*sum;
printf("π的值=%.6f\n",s);
13、计算并输出多项式1-1/3+1/5-1/7+…+1/99-1/101的结果值。
floati,sum=0.0;
while(i<=101)
printf("%.6f\n",sum);
17、计算分数序列:
2/1,-3/2,5/3,-8/5,13/8,-21/13,…,的前20项之和并输出。
inti,t=1;
floatn,a=1.0,b=1.0,sum=0.0;
for(i=1;i<=20;i++)
n=a+b;
sum=sum+t*n/b;
a=b;
b=n;
printf("前二十项和为:
%f\n",sum);
18、计算1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…n)的值,n的值由键盘输入,要求小数点后保留6位。
intn,i;
floats=0.0,sum=0.0;
printf("请输入n值:
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum+i;
s=s+1.0/sum;
printf("值为:
%.6f\n",s);
19、计算1-1/2+1/3-1/4+…+1/n的和,在主函数输入n,计算输出结果。
intn,i,t=1;
floats=0.0;
s=s+t*1.0/i;
21、已知一有序序列1,3,4,8,15,17,要求从键盘输入一个整数,将此整数插入到此有序序列中。
要求输出原始数组和插入之后的数组。
要求编制函数insert(int*p,intd)实现此功能,在主函数调用此函数。
提示:
例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。
voidinsert(int*p,intd)
inti=0,temp,len=7;
while(p[i]i++;if(i==6)p[i]=d;for(;i{temp=p[i];p[i]=d;d=temp;}}intmain(void){intnum[7]={1,3,4,8,15,17};int*p=num;intdata,i;printf("输入一个整数:");scanf("%d",&data);for(i=0;i<6;i++)printf("%2d",num[i]);printf("\n");insert(p,data);for(i=0;i<7;i++)printf("%2d",num[i]);printf("\n");return0;} 22、编写函数mstrcat(char*t,char*s)将字符串s1中的全部英文字符连接到字符串s2的尾部。#include"stdio.h"voidmstrcat(char*t,char*s){inti,j;i=0;while(t[i]!='\0')i++;j=0;while(s[j]!='\0'){if((s[j]>='A'&&s[j]<='Z')||(s[j]>='a'&&s[j]<='z')){t[i]=s[j];i++;j++;}elsej++;}t[i]='\0';}main(){while(1){chars1[100],s2[100];printf("请输入字符串s1,长度小于10:\n");gets(s1);printf("请输入字符串s2,长度小于10:\n");gets(s2);mstrcat(s1,s2);printf("%s\n",s1);printf("########################################################\n");}}#includevoidmstrcat(char*t,char*s){inti=0,j=0;while(s[i])i++;//先找到第二个串的结尾while(t[j]){if((t[j]>='a'&&t[j]<='z')||(t[j]>='A'&&t[j]<='Z')){s[i++]=t[j];}j++;}//把第一个串里的英文接到第二个串s[i]='\0';//给第二个串加结束标记}intmain(){chars1[100],s2[100];scanf("%s%s",s1,s2);//读入mstrcat(s1,s2);puts(s2);//输出return0;} 23、从键盘读入一字符c,判断其在字符串"English"中是否存在,假设此数组中不存在重复的字符。若存在,则删除此数据;否则,提示此数据不存在。要求:编制函数del(char*p,charc)实现数据的清理工作,并输出原始字符串和删除后的字符串。#include#defineN6#defineremoveremoveevoidremove(double*p,doubled){inti,j;for(i=0;iif(p[i]==d)break;if(i>=N)printf("%5.0f不在数组中",d);elsefor(j=i;jp[j]=p[j+1];}main(){doublea[N]={3,23,-7,8,9,10};doublenum;inti;printf("删除前数组:\n");for(i=0;iprintf("%5.0f",a[i]);printf("\n");printf("请输入要删除的数:");scanf("%lf",&num);printf("");remove(a,num);printf("删除后数组:\n");for(i=0;iprintf("%5.0f",a[i]);printf("\n");}#includevoidstrdel(char*p,charc){inti,j;intflag=1;for(i=0;*(p+i)!='\0';i++){if(*(p+i)==c){flag=0;j=i;for(i=j;*(p+i)!='\0';i++){*(p+i)=*(p+i+1);}}}if(flag==0)puts(p);elseif(flag==1)printf("NO");}intmain(){charstr[]="English",c;char*p;intflag=1;p=str;puts(str);scanf("%c",&c);strdel(str,c);} 24、编写函数fun(char*p)判断一个字符串是否是回文字符串(提示:回文字符串是指正读和反读都一样的字符串),要求:从键盘上读入一个字符串,字符长度可以自己定义。如果是回文字符串,输出该串,否则输出no。(本题不允许使用字符串处理库函数)#includevoidfun(char*p){inti,m=0;for(i=0;i<12;i++){if(p[i]==p[11-i])m++;}if(m==12)puts(p);elseprintf("NO");}intmain(){intm;char*p;chars[12];p=s;scanf("%s",s);fun(p);return0;}#includevoidstrfun(char*str){inti,j=0;intflag=1;for(i=0;*(str+i)!='\0';i++){j++;if(*(str+i)==*(str+j-i-1)){flag=0;}else{flag=1;}}if(flag==0)printf("Y");if(flag==1)printf("N");}intmain(){charstr[100];gets(str);strfun(str);}25、在物理实验中,获得5个数据{0.89,0.78,1.09,0.67,0.56},其中有一个数据大于1,此数据无效,将此无效数据删除。要求编制函数cleandata(double*p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。#includevoidcleandata(double*p){inti,j;for(i=0,j=0;i<5;i++){if(p[i]<1.0000){p[j]=p[i];j++;}}}voidmain(){inti;doublea[]={0.89,0.78,1.09,0.67,0.56};printf("原数组为:\n");for(i=0;i<5;i++){printf("%10.4f",a[i]);}printf("\n");cleandata(a);printf("删除后数组为:\n");for(i=0;i<4;i++){printf("%10.4f",a[i]);}printf("\n");}26、编写函数clear(char*p)将字符串s1中的非英文字母删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"voidclear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]>='a'&&p[i]<='z'||p[i]>='A'&&p[i]<='Z')p[j++]=p[i];p[j]='\0';}voidmain(){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfkMdl;jkds;";printf("%s\n",str);clear(str);printf("\n%s\n\n",str);}27、编写函数clear(char*p)将字符串s1中的阿拉伯数字字符删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"char*clear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]<'0'||p[i]>'9')p[j++]=p[i];p[j]='\0';returnp;}intmain(void){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfk
i++;
if(i==6)
p[i]=d;
for(;i{temp=p[i];p[i]=d;d=temp;}}intmain(void){intnum[7]={1,3,4,8,15,17};int*p=num;intdata,i;printf("输入一个整数:");scanf("%d",&data);for(i=0;i<6;i++)printf("%2d",num[i]);printf("\n");insert(p,data);for(i=0;i<7;i++)printf("%2d",num[i]);printf("\n");return0;} 22、编写函数mstrcat(char*t,char*s)将字符串s1中的全部英文字符连接到字符串s2的尾部。#include"stdio.h"voidmstrcat(char*t,char*s){inti,j;i=0;while(t[i]!='\0')i++;j=0;while(s[j]!='\0'){if((s[j]>='A'&&s[j]<='Z')||(s[j]>='a'&&s[j]<='z')){t[i]=s[j];i++;j++;}elsej++;}t[i]='\0';}main(){while(1){chars1[100],s2[100];printf("请输入字符串s1,长度小于10:\n");gets(s1);printf("请输入字符串s2,长度小于10:\n");gets(s2);mstrcat(s1,s2);printf("%s\n",s1);printf("########################################################\n");}}#includevoidmstrcat(char*t,char*s){inti=0,j=0;while(s[i])i++;//先找到第二个串的结尾while(t[j]){if((t[j]>='a'&&t[j]<='z')||(t[j]>='A'&&t[j]<='Z')){s[i++]=t[j];}j++;}//把第一个串里的英文接到第二个串s[i]='\0';//给第二个串加结束标记}intmain(){chars1[100],s2[100];scanf("%s%s",s1,s2);//读入mstrcat(s1,s2);puts(s2);//输出return0;} 23、从键盘读入一字符c,判断其在字符串"English"中是否存在,假设此数组中不存在重复的字符。若存在,则删除此数据;否则,提示此数据不存在。要求:编制函数del(char*p,charc)实现数据的清理工作,并输出原始字符串和删除后的字符串。#include#defineN6#defineremoveremoveevoidremove(double*p,doubled){inti,j;for(i=0;iif(p[i]==d)break;if(i>=N)printf("%5.0f不在数组中",d);elsefor(j=i;jp[j]=p[j+1];}main(){doublea[N]={3,23,-7,8,9,10};doublenum;inti;printf("删除前数组:\n");for(i=0;iprintf("%5.0f",a[i]);printf("\n");printf("请输入要删除的数:");scanf("%lf",&num);printf("");remove(a,num);printf("删除后数组:\n");for(i=0;iprintf("%5.0f",a[i]);printf("\n");}#includevoidstrdel(char*p,charc){inti,j;intflag=1;for(i=0;*(p+i)!='\0';i++){if(*(p+i)==c){flag=0;j=i;for(i=j;*(p+i)!='\0';i++){*(p+i)=*(p+i+1);}}}if(flag==0)puts(p);elseif(flag==1)printf("NO");}intmain(){charstr[]="English",c;char*p;intflag=1;p=str;puts(str);scanf("%c",&c);strdel(str,c);} 24、编写函数fun(char*p)判断一个字符串是否是回文字符串(提示:回文字符串是指正读和反读都一样的字符串),要求:从键盘上读入一个字符串,字符长度可以自己定义。如果是回文字符串,输出该串,否则输出no。(本题不允许使用字符串处理库函数)#includevoidfun(char*p){inti,m=0;for(i=0;i<12;i++){if(p[i]==p[11-i])m++;}if(m==12)puts(p);elseprintf("NO");}intmain(){intm;char*p;chars[12];p=s;scanf("%s",s);fun(p);return0;}#includevoidstrfun(char*str){inti,j=0;intflag=1;for(i=0;*(str+i)!='\0';i++){j++;if(*(str+i)==*(str+j-i-1)){flag=0;}else{flag=1;}}if(flag==0)printf("Y");if(flag==1)printf("N");}intmain(){charstr[100];gets(str);strfun(str);}25、在物理实验中,获得5个数据{0.89,0.78,1.09,0.67,0.56},其中有一个数据大于1,此数据无效,将此无效数据删除。要求编制函数cleandata(double*p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。#includevoidcleandata(double*p){inti,j;for(i=0,j=0;i<5;i++){if(p[i]<1.0000){p[j]=p[i];j++;}}}voidmain(){inti;doublea[]={0.89,0.78,1.09,0.67,0.56};printf("原数组为:\n");for(i=0;i<5;i++){printf("%10.4f",a[i]);}printf("\n");cleandata(a);printf("删除后数组为:\n");for(i=0;i<4;i++){printf("%10.4f",a[i]);}printf("\n");}26、编写函数clear(char*p)将字符串s1中的非英文字母删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"voidclear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]>='a'&&p[i]<='z'||p[i]>='A'&&p[i]<='Z')p[j++]=p[i];p[j]='\0';}voidmain(){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfkMdl;jkds;";printf("%s\n",str);clear(str);printf("\n%s\n\n",str);}27、编写函数clear(char*p)将字符串s1中的阿拉伯数字字符删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"char*clear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]<'0'||p[i]>'9')p[j++]=p[i];p[j]='\0';returnp;}intmain(void){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfk
temp=p[i];
d=temp;
intmain(void)
intnum[7]={1,3,4,8,15,17};
int*p=num;
intdata,i;
printf("输入一个整数:
");
scanf("%d",&data);
for(i=0;i<6;i++)
printf("%2d",num[i]);
insert(p,data);
for(i=0;i<7;i++)
return0;
22、编写函数mstrcat(char*t,char*s)将字符串s1中的全部英文字符连接到字符串s2的尾部。
#include"stdio.h"
voidmstrcat(char*t,char*s)
inti,j;
i=0;
while(t[i]!
='\0')
j=0;
while(s[j]!
if((s[j]>='A'&&s[j]<='Z')||(s[j]>='a'&&s[j]<='z'))
t[i]=s[j];
j++;
t[i]='\0';
while
(1)
chars1[100],s2[100];
printf("请输入字符串s1,长度小于10:
gets(s1);
printf("请输入字符串s2,长度小于10:
gets(s2);
mstrcat(s1,s2);
printf("%s\n",s1);
printf("########################################################\n");
inti=0,j=0;
while(s[i])i++;//先找到第二个串的结尾
while(t[j])
if((t[j]>='a'&&t[j]<='z')||(t[j]>='A'&&t[j]<='Z'))
s[i++]=t[j];
}//把第一个串里的英文接到第二个串
s[i]='\0';//给第二个串加结束标记
intmain()
scanf("%s%s",s1,s2);//读入
puts(s2);//输出
23、从键盘读入一字符c,判断其在字符串"English"中是否存在,假设此数组中不存在重复的字符。
若存在,则删除此数据;否则,提示此数据不存在。
要求:
编制函数del(char*p,charc)实现数据的清理工作,并输出原始字符串和删除后的字符串。
#defineN6
#defineremoveremovee
voidremove(double*p,doubled)
for(i=0;iif(p[i]==d)break;if(i>=N)printf("%5.0f不在数组中",d);elsefor(j=i;jp[j]=p[j+1];}main(){doublea[N]={3,23,-7,8,9,10};doublenum;inti;printf("删除前数组:\n");for(i=0;iprintf("%5.0f",a[i]);printf("\n");printf("请输入要删除的数:");scanf("%lf",&num);printf("");remove(a,num);printf("删除后数组:\n");for(i=0;iprintf("%5.0f",a[i]);printf("\n");}#includevoidstrdel(char*p,charc){inti,j;intflag=1;for(i=0;*(p+i)!='\0';i++){if(*(p+i)==c){flag=0;j=i;for(i=j;*(p+i)!='\0';i++){*(p+i)=*(p+i+1);}}}if(flag==0)puts(p);elseif(flag==1)printf("NO");}intmain(){charstr[]="English",c;char*p;intflag=1;p=str;puts(str);scanf("%c",&c);strdel(str,c);} 24、编写函数fun(char*p)判断一个字符串是否是回文字符串(提示:回文字符串是指正读和反读都一样的字符串),要求:从键盘上读入一个字符串,字符长度可以自己定义。如果是回文字符串,输出该串,否则输出no。(本题不允许使用字符串处理库函数)#includevoidfun(char*p){inti,m=0;for(i=0;i<12;i++){if(p[i]==p[11-i])m++;}if(m==12)puts(p);elseprintf("NO");}intmain(){intm;char*p;chars[12];p=s;scanf("%s",s);fun(p);return0;}#includevoidstrfun(char*str){inti,j=0;intflag=1;for(i=0;*(str+i)!='\0';i++){j++;if(*(str+i)==*(str+j-i-1)){flag=0;}else{flag=1;}}if(flag==0)printf("Y");if(flag==1)printf("N");}intmain(){charstr[100];gets(str);strfun(str);}25、在物理实验中,获得5个数据{0.89,0.78,1.09,0.67,0.56},其中有一个数据大于1,此数据无效,将此无效数据删除。要求编制函数cleandata(double*p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。#includevoidcleandata(double*p){inti,j;for(i=0,j=0;i<5;i++){if(p[i]<1.0000){p[j]=p[i];j++;}}}voidmain(){inti;doublea[]={0.89,0.78,1.09,0.67,0.56};printf("原数组为:\n");for(i=0;i<5;i++){printf("%10.4f",a[i]);}printf("\n");cleandata(a);printf("删除后数组为:\n");for(i=0;i<4;i++){printf("%10.4f",a[i]);}printf("\n");}26、编写函数clear(char*p)将字符串s1中的非英文字母删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"voidclear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]>='a'&&p[i]<='z'||p[i]>='A'&&p[i]<='Z')p[j++]=p[i];p[j]='\0';}voidmain(){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfkMdl;jkds;";printf("%s\n",str);clear(str);printf("\n%s\n\n",str);}27、编写函数clear(char*p)将字符串s1中的阿拉伯数字字符删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"char*clear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]<'0'||p[i]>'9')p[j++]=p[i];p[j]='\0';returnp;}intmain(void){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfk
if(p[i]==d)break;
if(i>=N)printf("%5.0f不在数组中",d);
for(j=i;jp[j]=p[j+1];}main(){doublea[N]={3,23,-7,8,9,10};doublenum;inti;printf("删除前数组:\n");for(i=0;iprintf("%5.0f",a[i]);printf("\n");printf("请输入要删除的数:");scanf("%lf",&num);printf("");remove(a,num);printf("删除后数组:\n");for(i=0;iprintf("%5.0f",a[i]);printf("\n");}#includevoidstrdel(char*p,charc){inti,j;intflag=1;for(i=0;*(p+i)!='\0';i++){if(*(p+i)==c){flag=0;j=i;for(i=j;*(p+i)!='\0';i++){*(p+i)=*(p+i+1);}}}if(flag==0)puts(p);elseif(flag==1)printf("NO");}intmain(){charstr[]="English",c;char*p;intflag=1;p=str;puts(str);scanf("%c",&c);strdel(str,c);} 24、编写函数fun(char*p)判断一个字符串是否是回文字符串(提示:回文字符串是指正读和反读都一样的字符串),要求:从键盘上读入一个字符串,字符长度可以自己定义。如果是回文字符串,输出该串,否则输出no。(本题不允许使用字符串处理库函数)#includevoidfun(char*p){inti,m=0;for(i=0;i<12;i++){if(p[i]==p[11-i])m++;}if(m==12)puts(p);elseprintf("NO");}intmain(){intm;char*p;chars[12];p=s;scanf("%s",s);fun(p);return0;}#includevoidstrfun(char*str){inti,j=0;intflag=1;for(i=0;*(str+i)!='\0';i++){j++;if(*(str+i)==*(str+j-i-1)){flag=0;}else{flag=1;}}if(flag==0)printf("Y");if(flag==1)printf("N");}intmain(){charstr[100];gets(str);strfun(str);}25、在物理实验中,获得5个数据{0.89,0.78,1.09,0.67,0.56},其中有一个数据大于1,此数据无效,将此无效数据删除。要求编制函数cleandata(double*p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。#includevoidcleandata(double*p){inti,j;for(i=0,j=0;i<5;i++){if(p[i]<1.0000){p[j]=p[i];j++;}}}voidmain(){inti;doublea[]={0.89,0.78,1.09,0.67,0.56};printf("原数组为:\n");for(i=0;i<5;i++){printf("%10.4f",a[i]);}printf("\n");cleandata(a);printf("删除后数组为:\n");for(i=0;i<4;i++){printf("%10.4f",a[i]);}printf("\n");}26、编写函数clear(char*p)将字符串s1中的非英文字母删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"voidclear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]>='a'&&p[i]<='z'||p[i]>='A'&&p[i]<='Z')p[j++]=p[i];p[j]='\0';}voidmain(){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfkMdl;jkds;";printf("%s\n",str);clear(str);printf("\n%s\n\n",str);}27、编写函数clear(char*p)将字符串s1中的阿拉伯数字字符删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"char*clear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]<'0'||p[i]>'9')p[j++]=p[i];p[j]='\0';returnp;}intmain(void){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfk
p[j]=p[j+1];
doublea[N]={3,23,-7,8,9,10};
doublenum;
inti;
printf("删除前数组:
for(i=0;iprintf("%5.0f",a[i]);printf("\n");printf("请输入要删除的数:");scanf("%lf",&num);printf("");remove(a,num);printf("删除后数组:\n");for(i=0;iprintf("%5.0f",a[i]);printf("\n");}#includevoidstrdel(char*p,charc){inti,j;intflag=1;for(i=0;*(p+i)!='\0';i++){if(*(p+i)==c){flag=0;j=i;for(i=j;*(p+i)!='\0';i++){*(p+i)=*(p+i+1);}}}if(flag==0)puts(p);elseif(flag==1)printf("NO");}intmain(){charstr[]="English",c;char*p;intflag=1;p=str;puts(str);scanf("%c",&c);strdel(str,c);} 24、编写函数fun(char*p)判断一个字符串是否是回文字符串(提示:回文字符串是指正读和反读都一样的字符串),要求:从键盘上读入一个字符串,字符长度可以自己定义。如果是回文字符串,输出该串,否则输出no。(本题不允许使用字符串处理库函数)#includevoidfun(char*p){inti,m=0;for(i=0;i<12;i++){if(p[i]==p[11-i])m++;}if(m==12)puts(p);elseprintf("NO");}intmain(){intm;char*p;chars[12];p=s;scanf("%s",s);fun(p);return0;}#includevoidstrfun(char*str){inti,j=0;intflag=1;for(i=0;*(str+i)!='\0';i++){j++;if(*(str+i)==*(str+j-i-1)){flag=0;}else{flag=1;}}if(flag==0)printf("Y");if(flag==1)printf("N");}intmain(){charstr[100];gets(str);strfun(str);}25、在物理实验中,获得5个数据{0.89,0.78,1.09,0.67,0.56},其中有一个数据大于1,此数据无效,将此无效数据删除。要求编制函数cleandata(double*p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。#includevoidcleandata(double*p){inti,j;for(i=0,j=0;i<5;i++){if(p[i]<1.0000){p[j]=p[i];j++;}}}voidmain(){inti;doublea[]={0.89,0.78,1.09,0.67,0.56};printf("原数组为:\n");for(i=0;i<5;i++){printf("%10.4f",a[i]);}printf("\n");cleandata(a);printf("删除后数组为:\n");for(i=0;i<4;i++){printf("%10.4f",a[i]);}printf("\n");}26、编写函数clear(char*p)将字符串s1中的非英文字母删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"voidclear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]>='a'&&p[i]<='z'||p[i]>='A'&&p[i]<='Z')p[j++]=p[i];p[j]='\0';}voidmain(){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfkMdl;jkds;";printf("%s\n",str);clear(str);printf("\n%s\n\n",str);}27、编写函数clear(char*p)将字符串s1中的阿拉伯数字字符删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"char*clear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]<'0'||p[i]>'9')p[j++]=p[i];p[j]='\0';returnp;}intmain(void){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfk
printf("%5.0f",a[i]);
printf("请输入要删除的数:
scanf("%lf",&num);
printf("");
remove(a,num);
printf("删除后数组:
for(i=0;iprintf("%5.0f",a[i]);printf("\n");}#includevoidstrdel(char*p,charc){inti,j;intflag=1;for(i=0;*(p+i)!='\0';i++){if(*(p+i)==c){flag=0;j=i;for(i=j;*(p+i)!='\0';i++){*(p+i)=*(p+i+1);}}}if(flag==0)puts(p);elseif(flag==1)printf("NO");}intmain(){charstr[]="English",c;char*p;intflag=1;p=str;puts(str);scanf("%c",&c);strdel(str,c);} 24、编写函数fun(char*p)判断一个字符串是否是回文字符串(提示:回文字符串是指正读和反读都一样的字符串),要求:从键盘上读入一个字符串,字符长度可以自己定义。如果是回文字符串,输出该串,否则输出no。(本题不允许使用字符串处理库函数)#includevoidfun(char*p){inti,m=0;for(i=0;i<12;i++){if(p[i]==p[11-i])m++;}if(m==12)puts(p);elseprintf("NO");}intmain(){intm;char*p;chars[12];p=s;scanf("%s",s);fun(p);return0;}#includevoidstrfun(char*str){inti,j=0;intflag=1;for(i=0;*(str+i)!='\0';i++){j++;if(*(str+i)==*(str+j-i-1)){flag=0;}else{flag=1;}}if(flag==0)printf("Y");if(flag==1)printf("N");}intmain(){charstr[100];gets(str);strfun(str);}25、在物理实验中,获得5个数据{0.89,0.78,1.09,0.67,0.56},其中有一个数据大于1,此数据无效,将此无效数据删除。要求编制函数cleandata(double*p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。#includevoidcleandata(double*p){inti,j;for(i=0,j=0;i<5;i++){if(p[i]<1.0000){p[j]=p[i];j++;}}}voidmain(){inti;doublea[]={0.89,0.78,1.09,0.67,0.56};printf("原数组为:\n");for(i=0;i<5;i++){printf("%10.4f",a[i]);}printf("\n");cleandata(a);printf("删除后数组为:\n");for(i=0;i<4;i++){printf("%10.4f",a[i]);}printf("\n");}26、编写函数clear(char*p)将字符串s1中的非英文字母删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"voidclear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]>='a'&&p[i]<='z'||p[i]>='A'&&p[i]<='Z')p[j++]=p[i];p[j]='\0';}voidmain(){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfkMdl;jkds;";printf("%s\n",str);clear(str);printf("\n%s\n\n",str);}27、编写函数clear(char*p)将字符串s1中的阿拉伯数字字符删除,要求:在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。#include"stdio.h"char*clear(char*p){inti,j;for(j=i=0;p[i];i++)if(p[i]<'0'||p[i]>'9')p[j++]=p[i];p[j]='\0';returnp;}intmain(void){charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfk
voidstrdel(char*p,charc)
intflag=1;
for(i=0;*(p+i)!
='\0';i++)
if(*(p+i)==c)
flag=0;
j=i;
for(i=j;*(p+i)!
*(p+i)=*(p+i+1);
if(flag==0)
puts(p);
elseif(flag==1)
printf("NO");
charstr[]="English",c;
char*p;
p=str;
puts(str);
scanf("%c",&c);
strdel(str,c);
24、编写函数fun(char*p)判断一个字符串是否是回文字符串(提示:
回文字符串是指正读和反读都一样的字符串),要求:
从键盘上读入一个字符串,字符长度可以自己定义。
如果是回文字符串,输出该串,否则输出no。
(本题不允许使用字符串处理库函数)
voidfun(char*p)
inti,m=0;
for(i=0;i<12;i++)
if(p[i]==p[11-i])
m++;}
if(m==12)
intm;
chars[12];
p=s;
scanf("%s",s);
fun(p);
voidstrfun(char*str)
inti,j=0;
for(i=0;*(str+i)!
if(*(str+i)==*(str+j-i-1))
flag=1;
printf("Y");
if(flag==1)
printf("N");
charstr[100];
gets(str);
strfun(str);
25、在物理实验中,获得5个数据{0.89,0.78,1.09,0.67,0.56},其中有一个数据大于1,此数据无效,将此无效数据删除。
要求编制函数cleandata(double*p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。
voidcleandata(double*p)
for(i=0,j=0;i<5;i++)
if(p[i]<1.0000)
p[j]=p[i];
voidmain()
doublea[]={0.89,0.78,1.09,0.67,0.56};
printf("原数组为:
printf("%10.4f",a[i]);
cleandata(a);
printf("删除后数组为:
for(i=0;i<4;i++)
26、编写函数clear(char*p)将字符串s1中的非英文字母删除,要求:
在主函数中对字符串进行初始化,调用函数实现链接后,在主函数中输出删除前和删除后的字符串。
voidclear(char*p)
for(j=i=0;p[i];i++)
if(p[i]>='a'&&p[i]<='z'||p[i]>='A'&&p[i]<='Z')
p[j++]=p[i];
p[j]='\0';
charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfkMdl;jkds;";
printf("%s\n",str);
clear(str);
printf("\n%s\n\n",str);
27、编写函数clear(char*p)将字符串s1中的阿拉伯数字字符删除,要求:
char*clear(char*p)
if(p[i]<'0'||p[i]>'9')
returnp;
charstr[100]="jfkDsla83F890lnjKfZ./jdi/.,z$5jfkd$#^%jfk
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2