江苏省二级c语言上机考试例题集120 模板.docx
- 文档编号:25667733
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:37
- 大小:38.07KB
江苏省二级c语言上机考试例题集120 模板.docx
《江苏省二级c语言上机考试例题集120 模板.docx》由会员分享,可在线阅读,更多相关《江苏省二级c语言上机考试例题集120 模板.docx(37页珍藏版)》请在冰豆网上搜索。
江苏省二级c语言上机考试例题集120模板
回文数
#include"stdio.h"
intispal(intn)
{
intm=0;
intt=n;
while(t)
{
m=m*10+t%10;
t/=10;
}
returnm==n;
}
voidmain()
{
inti;
intcnt=0;
for(i=1;i<10000;i++)
{
if(ispal(i))
{
cnt++;
printf("%d\n",i);
}
}
printf("合计:
%d个\n",cnt);
}
。
水仙花数
#include"stdio.h"
voidmain()
{
inta,b,c,i;
for(i=100;i<1000;i++)
{
a=i/100;
b=i%100/10;
c=i%10;
if(a*a*a+b*b*b+c*c*c==i)
printf("%d\t",i);
}
}
1、取出一个十进制正整数中的所以奇数数字,用这些数字构成一个最小数。
#include
#include
voidsort(inta[],intn)
{
inti,j,t;
for(i=0;i for(j=0;j if(a[j]>a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;} } longarrange(longs)/*arrange函数的功能是取出十进制整数s中的所有奇数数字,用这些数字构成一个最小数,函数返回该数*/ {intd,b[10],i,j=0; longs1=0; while(s>0)/*利用循环对s数位分离,分离出个位、十位、百位等各位上的数*/ {d=s%10; if(d%2! =0)/*判断每一位上的数字是否为奇数*/ b[j++]=d;/*若为奇数则存放到b数组中*/ s/=10; } sort(b,j);/*调用sort函数,将数组b从小到大排列*/ for(i=0;i s1=s1*10+b[i];/*求得用各位上的奇数组成的最小数*/ returns1;/*返回求得的数*/ } voidmain() { longm,n; FILE*fp;/*定义文件指针fp*/ if((fp=fopen("myf2.out","w"))==NULL)/*涉及文件的打开*/ {printf("Thefilecannotopen! ");exit(0);} scanf("%ld",&n);/*接收键盘输入的整型数据*/ m=arrange(n);/*键盘输入的数据作为实参调用arrange函数*/ printf("%ld\n",m);/*将得到的最小数输出到屏幕及结果文件中*/ fprintf(fp,"%ld\n",m); printf("\nMyexamnumberis: WLJY001\n");/*将考生准考证号输出到屏幕及结果文件中*/ fprintf(fp,"\nMyexamnumberis: WLJY001\n"); fclose(fp);/*关闭文件*/ } 2、按要求合并两个字符串 #include #include #include voidfun(char*a,char*b,char*c)/*函数功能是先将b指向的字符串逆序存放,然后按a[0],b[0],a[1],b[1]…的顺序合并a字符串和b字符串到c指向的数组中,将a或b中剩余的字符拼接在c数组的尾部*/ {inti,j; charch; i=0;j=strlen(b)-1; while(i {ch=b[i];b[i]=b[j];b[j]=ch; i++;j--; } while(*a||*b)/*利用while循环,通过判断*a||*b,将a、b数组间隔存放在c数组中*/ {if(*a){*c=*a;c++;a++;} if(*b){*c=*b;c++;b++;} } *c='\0'; } voidmain() { FILE*fp;/*定义文件指针fp*/ chars1[80],s2[80],s[200];/*声明3个一维数组*/ if((fp=fopen("myf2.out","w"))==NULL) {printf("can'topenfile");exit(0);} printf("\nEnters1string: "); gets(s1); printf("\nEnters2string: "); gets(s2);/*s1、s2接收键盘输入的字符*/ fun(s1,s2,s);/*调用change函数,对字符串s2进行逆序变换,再合并s1字符串和s2字符串并保存到s数组中*/ printf("\nTheresultis: %s\n",s); /*将合并后产生的数组s中的字符串输出到屏幕及结果文件中*/ fprintf(fp,"%s",s); fprintf(fp,"\n"); printf("\nMyexamnumberis: WLJY001\n");/*将考生准考证号输出到屏幕及结果文件中*/ fprintf(fp,"\nMyexamnumberis: WLJY001\n"); fclose(fp);/*关闭文件*/ } 3、先判断一个m×n矩阵为Monge矩阵,在对该矩阵进行交换处理 #include #include #defineN5 voidchange(inta[][N],intn)/*该函数的功能是,对a指向的n行5列数组中的矩阵进行变换*/ {inti,j,t; for(i=0;i for(j=0;j {t=a[i][j];a[i][j]=a[n-1-i][j];a[n-1-i][j]=t;}/*变换形式: 第一行与最后一行交换,第二行与倒数第二行交换……*/ } intMonge(inta[][N],intn) { inti,j; for(i=0;i {for(j=0;j if(a[i][j]+a[i+1][j+1]>a[i][j+1]+a[i+1][j]) return0; /*若矩阵不是Monge矩阵,函数返回0*/ } return1; /*若矩阵是Monge矩阵,函数返回1*/ } voidmain() { inta[][N]={{10,17,13,28,23},{17,22,16,29,23}, {24,28,22,34,24},{11,13,6,17,7},{45,44,32,37,23}};/*数组初始化*/ intmonge,i,j;FILE*fp; fp=fopen("myf2.out","w");/*以只写"w"方式打开文件*/ if(fp==NULL)exit(0); monge=Monge(a,5);/*调用Monge函数对a数组进行判断*/ for(i=0;i {for(j=0;j {printf("%4d",a[i][j]);fprintf(fp,"%4d",a[i][j]);} printf("\n");fprintf(fp,"\n"); } if(monge) {printf("aisMonge\n");fprintf(fp,"aisMonge\n");}/*将a数组变换前的判断结果输出到屏幕及结果文件中*/ else {printf("aisnotMonge\n");fprintf(fp,"aisnotMonge\n");} change(a,5);/*调用change函数对a数组进行变换处理*/ for(i=0;i { for(j=0;j {printf("%4d",a[i][j]);fprintf(fp,"%4d",a[i][j]);} printf("\n");fprintf(fp,"\n"); }/*将a数组变换后的元素输出到屏幕及结果文件中*/ monge=Monge(a,5);/*调用Monge函数对经过变换的a数组进行判断*/ if(monge)/*将a数组变换后的判断结果输出到屏幕及结果文件中*/ {printf("aisMonge\n"); fprintf(fp,"aisMonge\n");} else {printf("aisnotMonge\n");fprintf(fp,"aisnotMonge\n");} printf("\nMyexamnumberis: WLJY001\n");/*将考生准考证号输出到屏幕及结果文件中*/ fprintf(fp,"\nMyexamnumberis: WLJY001\n"); fclose(fp);/*关闭文件*/ } 4、用一组整数验证命题 #include #include #defineN100 intfun(inta[],intb[],intn) { inti,x,y,z,s,t,m,k=0; for(i=0;i if(a[i]/1000<1) { x=a[i]/100;y=a[i]/10%10;z=a[i]%10;/*对数a[i]进行数位分离*/ if(x! =z) { s=z*100+y*10+x;/*交换a[i]的百位数字与个位数字得到s*/ t=s>a[i]? (s-a[i]): (a[i]-s);/*求a[i]和s的绝对值得到t*/ x=t/100;y=t/10%10;z=t%10; m=z*100+y*10+x;/*交换t的百位数字与个位数字得到m*/ if(t+m==1089)/*判断t与m的和是否为1089*/ b[k++]=i; } } returnk;/*函数返回数组b中数据的个数*/ } voidmain() { inta[N]={123,765,1,45,121,1345,131,67,696,3589},b[N],n,i; FILE*fp;/*定义文件指针*/ if((fp=fopen("myf2.out","w"))==NULL)/*以只写"w"方式打开文件*/ {printf("Thefilecallnotopen! ");exit(0);} n=fun(a,b,10);/*用a数组作为实参调用fun函数*/ for(i=0;i {printf("%5d",a[b[i]]);fprintf(fp,"%5d",a[b[i]]);}/*将a数组中所有符合命题的整数输出到屏幕及结果文件中*/ /*将考生准考证号输出到屏幕及结果文件中*/ printf("\nMyexamnumberis: WLJY001\n"); fprintf(fp,"\nMyexamnumberis: WLJY001\n"); fclose(fp);/*关闭文件*/ } 5、找出7个默森尼数 #include #include #defineN7 voidMersenne(longa[],intm); intprime(long); voidmain() { longa[N]; inti; FILE*fp;/*定义文件指针*/ fp=fopen("myf2.out","w");/*以只写"w"方式打开文件*/ if(fp==NULL)exit(0); Mersenne(a,N);/*调用Mersenne函数,找出并保存前7个Mersenne数*/ for(i=0;i {printf("%8ld",a[i]);fprintf(fp,"%8ld",a[i]);}/*将运行结果输出到屏幕及结果文件中*/ printf("\nMyexamnumberis: WLJY001\n");/*将考生准考证号输出到屏幕及结果文件中*/ fprintf(fp,"\nMyexamnumberis: WLJY001\n"); } voidMersenne(longa[],intm)/*该函数的功能是,求出前m个Mersenne数*/ {longf,n,k; inti=0; a[i++]=3; for(n=3;i { f=1; for(k=1;k<=n;k++) f*=2;/*求2的n次方*/ if(prime(n)&&prime(f-1))/*当n和2的n次方减1均为素数时,该数为Mersenne数*/ a[i++]=f-1;/*将找到的Mersenne数保存到数组a中*/ } } intprime(longn)/*该函数的功能是,判断整数a是否是素数*/ {longi; for(i=2;i<=n/2;i++) if(n%i==0)return0; return1;/*若是素数函数返回值1*/ } 6、从一个指定的自然数 #include #include intlinkrun(inta,intb,int*p); voidmain() { inti,a,b,max,p[100]; FILE*fp; if((fp=fopen("myf2.out","w"))==NULL)/*以只写"w"方式打开文件*/ {printf("Thefilecallnotopen! ");exit(0);} printf("Entera,b: (a scanf("%d,%d",&a,&b);/*接收从键盘输入的a和b*/ max=linkrun(a,b,p);/*以a、b、p作为实参调用函数*/ for(i=0;i<=b-a;i++) { printf("%3d",p[i]); fprintf(fp,"%3d",p[i]); } printf("\nmax=%d",max); fprintf(fp,"\nmax=%d",max);/*将运行结果输出到屏幕及结果文件中*/ printf("\nMyexamnumberis: WLJY001\n");/*将考生准考证号输出到屏幕及结果文件中*/ fprintf(fp,"\nMyexamnumberis: WLJY001\n"); fclose(fp);/*关闭文件*/ } intlinkrun(inta,intb,int*p) { inti,k,m,n,num; num=0; for(i=0,k=a;k<=b;i++,k++)/*通过for循环,以[a,b]中所有自然数作为n*/ { n=k; p[i]=1; while(n! =1) { ++p[i];/*将数列的长度保存到数组p中*/ if(n%2)/*n为奇数时,按相应公式求解*/ n=n*3+1; else/*当n为偶数时,按相应公式求解*/ n/=2; } if(p[i]>num)num=p[i];/*求出数组中最大值*/ } returnnum;/*返回最大值*/ } 7、将一个十进制整数m转换成r进制整数的字符串表示形式 #include #include voidtrdec(char*str,intidec,intibase)/*该函数的功能是,将十进制整数idec转换为ibase进制的字符串表示形式*/ {charch; inti,idr,k=0; while(idec! =0) { idr=idec%ibase;/*idec对ibase求余*/ if(idr>=10)/*判断余数,根据余数的值对其进行变换*/ str[k++]=idr-10+'A'; else str[k++]=idr+'0'; idec/=ibase; } for(i=0;i {ch=str[i]; str[i]=str[k-i-1]; str[k-i-1]=ch; } str[k]='\0'; } voidmain() { intx;charstr[20];FILE*fp;/*变量声明,定义文件指针fp*/ if((fp=fopen("myf2.out","w"))==NULL) {printf("Thefilecannotopen! ");exit(0);} printf("Enteranumber");scanf("%d",&x);/*接收从键盘输入的x*/ trdec(str,x,2);/*调用函数将该整数转换为二进制并输出到屏幕及结果文件中*/ printf("%sB,",str);fprintf(fp,"%sB,",str); trdec(str,x,8);/*调用函数将该整数转换为八进制并输出到屏幕及结果文件中*/ printf("%sQ,",str);fprintf(fp,"%sQ,",str); trdec(str,x,16);/*调用函数将该整数转换为十六进制并输出到屏幕及结果文件中*/ printf("%sH\n",str);fprintf(fp,"%sH\n",str); printf("\nMyexamnumberis: WLJY001\n");/*将考生准考证号输出到屏幕及结果文件中*/ fprintf(fp,"\nMyexamnumberis: WLJY001\n"); fclose(fp);/*关闭文件*/ } 8、将以为数组中的所有素数移到该数组的前端部分 #include #include intN; voidinsert(int*p,intx,intn) { inti=0,j; while(x>p[i]&&i i++; for(j=n;j>i;j--) p[j]=p[j-1]; p[j]=x;/*②此语句的作用是将x插入到元素p[j]的位置*/ } int*create() { int*head,*p,i; printf("\nN="); scanf("%d",&N); head=(int*)malloc(N*sizeof(int));/*③分配内存空间函数malloc的调用形式错误,正确的为: (类型说明符*)malloc(size)*/ printf("Enternumbers: "); p=head; for(i=0;i scanf("%d",&p[i]);/*④接收从键盘输入的数值要用取址运算符*/ for(i=1;i insert(p,p[i],i); returnhead; } voidmain() { int*head,*p,i,x; head=create(); p=head; for(i=0;i printf("%3d",*p++); free(head); } 9、用以下展开式求 #include #include #include #include voidreplace_word(chars[]) { charword_tab[4][10]={"sad","happy","accuse","forgive"}; chart[10],tmp[8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 江苏省二级c语言上机考试例题集120 模板 江苏省 二级 语言 上机 考试 例题 120