收藏 分销(赏)

C语言的一些编程题及答案.docx

上传人:仙人****88 文档编号:12039785 上传时间:2025-09-01 格式:DOCX 页数:17 大小:24.47KB 下载积分:10 金币
下载 相关 举报
C语言的一些编程题及答案.docx_第1页
第1页 / 共17页
C语言的一些编程题及答案.docx_第2页
第2页 / 共17页


点击查看更多>>
资源描述
1、杨辉三角: #include<stdio.h> int main() { int a[10][10]={0}; a[0][0]=a[1][0]=a[1][1]=1; printf("%d\n",a[0][0]); for(int i=1;i<8;i++) { a[i][0]=1; printf("%d\t",a[i][0]); for(int j=1;j<i;j++) { a[i][j]=a[i-1][j-1]+a[i-1][j]; printf("%d\t",a[i][j]); } a[i][j]=1; printf("%d\t",a[i][j]); printf("\n"); } } 2、求最大连续数 int main() { int a[5]={3,1,3,4,2}; int sum[5],i; sum[0]=3; int weizhi[5]={-1,-1,-1,-1,-1}; weizhi[0]=-1; for(i=1;i<5;i++) { sum[i]=a[i]; if(sum[i-1]+a[i]>a[i]) { sum[i]=sum[i-1]+a[i]; weizhi[i]=i-1; } } int max=sum[0],max_i=0; for(i=0;i<5;i++) { printf("%d\n",sum[i]); if(max<sum[i]) { max=sum[i]; max_i=i; } } printf("位置:"); i=max_i; while(i>=0) { printf("%d\t",i); i=weizhi[i]; } printf("\n"); return 0; } 3、判断字符串是否为回文 int main() { char str[6]="paeap"; int length=strlen(str); char str1[6]; int i,j=0; str1[5]='\0'; for(i=length-1;i>=0;i--) { str1[j]=str[i]; j++; } printf("%d",length); if(strcmp(str,str1)==0) { printf("回文。"); } return 0; } 4、求输入单词数量: int main() { char ch; int count=0; int inword=0; while((ch=getchar())!='\n') { putchar(ch); if(ch==' ') { inword=0; } else { if(inword==0) { count++; inword=1; } } } printf("单词数量为:%d",count); return 0; } 5、筛选法求2-n间的素数 int main() { printf("输入2-N:\n"); int n; scanf("%d",&n); int primes[200]; int a[200]; int k=0; int flag=0; for(int i=0;i<=n;i++) { a[i]=i; } int j=2; int num=n-1; while(num>0) { flag=1; for(int i=2;i<=sqrt(j);i++) { if(j%i==0) { flag=0; break; } } if(flag==1) { primes[k++]=j; int p=j; int g=1; int x=p; while(x<=n) { if(a[x]==0) { g++; x=g*p; } else { a[x]=0; num--; g++; x=g*p; } } } j++; } for(int f=0;f<k;f++) { printf("%d\t",primes[f]); } return 0; } 6、选择排序 int main() { int a[5]={1,3,2,5,4}; int i=0,j=0; for(i=0;i<5;i++) { int k=i; for(j=i;j<5;j++) { if(a[j]<a[k]) { k=j; } } if(k!=i) { int t=a[k]; a[k]=a[i]; a[i]=t; } } for(int k=0;k<5;k++) { printf("%d",a[k]); } return 0; } 7、折半查找 int main() { int a[5]={1,3,5,7,9}; printf("请输入一个数:"); int num; scanf("%d",&num); int top=0,end=4,mid; while(top<=end) { mid=(top+end)/2; if(a[mid]==num) { printf("%d",mid); break; }else if(a[mid]>num) { end=mid; }else { top=mid; } } return 0; } 8、冒泡排序 int main() { int a[5]={2,3,4,7,2}; int i=0,j=0; for(i=1;i<5;i++) for(j=0;j<5-i;j++) { if(a[j]>a[j+1]) { int t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } for(int k=0;k<5;k++) { printf("%d\t",a[k]); } return 0; } 9、字符串参数逆序存放 int main() { char str[6]="hello"; char c; int n=strlen(str),i; for(i=0;i<=n/2;i++) { c=str[i]; str[i]=str[n-i-1]; str[n-i-1]=c; } puts(str); return 0; } 10、两个字符串连接起来 int main() { char s1[6]="hello"; char s2[6]="C pro"; int i=0; int s1length=strlen(s1); while(s2[i]!='\0') { s1[s1length+i]=s2[i]; i++; } s1[s1length+i]='\0'; puts(s1); return 0; } 11、将字符串中的小写转化为大写 int main() { char str[6]="heLLo"; for(int i=0;str[i]!='\0';i++) { if(str[i]<=122&&str[i]>=97) { str[i]=str[i]-32; } } puts(str); } 12、将实数参数转化为字符串 int main() { float a=1.23; int p=int(a); int t; p=a-p; while(p!=0) { t=(int)p*10; printf("%d",t); p=p*10-((int)p*10); } return 0; } 13、马鞍点,行最大值,列最小值 int main() { printf("这是一个几行几列的矩阵:\n"); int row,lie,a[10][10]={0}; int i,j; scanf("%d%d",&row,&lie); printf("请输入这个矩阵的值:\n"); for(i=0;i<row;i++) for(j=0;j<lie;j++) { scanf("%d",&a[i][j]); } printf("马鞍点是:\n"); for(i=0;i<row;i++) { int flag=1; int max=a[i][0],max_i=i,max_j=0; for(int k=0;k<lie;k++) { if(max<a[i][k]) { max_j=k; max=a[i][k]; } } for(j=0;j<row;j++) { if(max<a[j][max_j]) { flag =0; break; } } if(flag==0) { continue; } printf("%d,%d,%d\n",max_i,max_j,max); } return 0; } 14、利用字符串读写函数实现文件的复制 int main() { FILE *fp1,*fp2; char str[len]; if((fp1=fopen("1.txt","r"))==NULL) { printf("Open File Error!"); exit(1); } if((fp2=fopen("2.txt","w"))==NULL) { printf("Open File Error!"); exit(1); } while(!feof(fp1)) { fgets(str,len,fp1); fputs(str,fp2); } fclose(fp1); fclose(fp2); return 0; } 15、计算文本文件的行数以及每行的字符数 int main() { FILE *fp1; int a[10]={0}; int num=0; int i=0,k; char c; if((fp1=fopen("1.txt","r"))==NULL) { printf("OPen file error!");exit(1); } while(!feof(fp1)) { if((c=fgetc(fp1))=='\n') { num++; i++; } else { if(c==EOF) { num++; break; } a[i]++; } } fclose(fp1); printf("%d\n",num); for(k=0;k<=i;k++) { printf("%d\t%d\n",k,a[k]); } return 0; } 16、从键盘输入一个字符串,将大写字母转为小写,存到text.txt中。 int main() { FILE *fp1; char str[20]; int i; printf("请输入一个字符串:\n"); gets(str); for(i=0;str[i]!='\0';i++) { if(str[i]<=90&&str[i]>=65) { str[i]=str[i]+32; } } if((fp1=fopen("test.txt","w"))==NULL) { printf("open file erro!");exit(1); } fprintf(fp1,"%s",str); fclose(fp1); return 0; } 17、从键盘输入若干行字符,输入后把它们存到一个文件中,再从文件中读入这些数据,将其中的小写换成大写后输出。 int main() { FILE *fp1; char ch; if((fp1=fopen("text.txt","a+"))==NULL) { printf("open file error!");exit(1); } printf("输入字符串,以*号结束输入:\n"); while((ch=getchar())!='*') { fputc(ch,fp1); } rewind(fp1); while(!feof(fp1)) { ch=fgetc(fp1); putchar(ch); } return 0; } 18、插入排序 int main() { int a[9]={4,2,6,8,1,7,3,10,9}; int j,i; for(i=1;i<9;i++) { int k=a[i]; j=i-1; while(j>=0&&k<a[j]) { j--; a[j+1]=a[j]; } a[j+1]=k; } for(i=0;i<9;i++) { printf("%d\t",a[i]); } return 0; } 19、用递归法将一个整数N转换成字符串。N的位数不确定 void GetNum(int n) { if(n>0) { GetNum(n/10); printf("%d",n%10); } } int main() { int a; printf("请输入一个整数:\n"); scanf("%d",&a); GetNum(a); printf("\n"); return 0; } 20、编写一个函数,输入一行字符,将此字符串中最长单词输出。 int main() { char str[100]; int inword=0; int maxlength=0; int length=0; int i; int start=0,end=0; printf("输入一行字符:\n"); gets(str); for(i=0;str[i]!='\0';i++) { if(str[i]==' ') { if(maxlength<length) { end=i-1; start=end-length+1; maxlength=length; } length=0; } else { length++; } } if(maxlength<length) { end=i-1; start=end-length+1; maxlength=length; } printf("%d%d%d",start,end,length); return 0; } 21、编写一个函数,输入一个十六进制数,输出相应的十进制数。 double GetShiJinZhi(int n) { double sum=0; int i=0; while(n>0) { int m=n%10; sum=sum+m*pow(16,i); n=n/10; i++; } return sum; } int main() { int a; int b; printf("请输入一个十六进制数:\n"); scanf("%d",&a); b=(int)GetShiJinZhi(a); printf("%d\n",b); return 0; } 22、编程找到并且输出2-n间所有素数的程序。 int main() { int n,i,j,count,flag; printf("请输入N:\n"); scanf("%d",&n); for(i=2;i<=n;i++) { flag=1; for(j=2;j<=sqrt(i);j++) { if(i%j==0) { flag=0; break; } } if(flag==1) { count++; printf("%d\t",i); if(count%4==0) { printf("\n"); } } } printf("\n"); return 0; } 23、编写一个判断一个仅有加减乘除的算术表达式是否合法的函数,如(3+4)*5是合法的,但(3+4*5是不合法的。 int main() { char str[10]; int i=0; int flag=1; int yes=1; printf("请输入一个表达式:\n"); scanf("%s",str); for(i=0;str[i]!='\0';i++) { if(str[i]=='+'||str[i]=='-'||str[i]=='*'||str[i]=='/') { if(flag==0) { yes=0; break; } flag=0; }else { flag=1; } } if(yes==1) { printf("yes\n"); } else { printf("no\n"); } return 0; } 24、已有文本文件test.txt编写一个程序,读取test.txt,统计各单词出现的次数,并将各单词和其出现的次数输出到屏幕和文件中。 typedef struct danci { char str[20]; int num; }Words; int n; void check(Words a[],char str[]) { int i; int flag=1; for(i=0;i<n;i++) { if( strcmp(a[i].str,str)==0) { flag=0; a[i].num=a[i].num+1; break; } } if(flag==1) { strcpy(a[n].str,str); a[n].num=1; n=n+1; } } int main() { FILE *fp,*fp1; char s[20][20]={'\0'}; Words a[20]; char ch; int i=0,j=0; if((fp=fopen("test.txt","a+"))==NULL) { printf("open file error!\n"); exit(1); } if((fp1=fopen("text.txt","wb"))==NULL) { printf("open file error!\n"); exit(1); } ch=fgetc(fp); while(ch!=EOF) { if(ch!=' ') { s[i][j++]=ch; } else { j=0; i++; } ch=fgetc(fp); } n=0; for(j=0;j<=i;j++) { check(a,s[j]); } for(j=0;j<n;j++) { printf("%s\t",a[j].str); printf("%d\n",a[j].num); } fwrite(&a,sizeof(Words),n,fp1); fclose(fp); fclose(fp1); return 0; } 25、若有正整数从左右读都是一样的,则称为回数。判断输入的数是否为回数。 int getNiShu(int n) { int sum=0; while(n>0) { sum=sum*10+n%10; n=n/10; } return sum; } int main() { int n; int NiShu; printf("请输入一个数:\n"); scanf("%d",&n); NiShu=getNiShu(n); if(n==NiShu) { printf("%d是回数。\n",n); }else { printf("%d不是回数。\n",n); } return 0; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服