西南交大考研复试C语言上机题库.docx
- 文档编号:13218639
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:70
- 大小:31.22KB
西南交大考研复试C语言上机题库.docx
《西南交大考研复试C语言上机题库.docx》由会员分享,可在线阅读,更多相关《西南交大考研复试C语言上机题库.docx(70页珍藏版)》请在冰点文库上搜索。
西南交大考研复试C语言上机题库
/*请编一个函数fun(char*s),函数的功能是把字符串中的内容逆置。
例如:
字符串中原有的内容为:
abcdefg,则调用该函数后,串中的内容为:
gfedcba。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
*/
#include
#include
#defineN81
voidfun(char*s)
{
char*l,t;
for(l=s;*l!
='\0';l++);
l--;
for(;l-s>=1;s++,l--)
{
t=*s;
*s=*l;
*l=t;
}
}
voidmain()
{chara[N];
printf("Enterastring:
");
gets(a);
printf("Theoriginalstringis:
");
puts(a);
fun(a);
printf("\n");
printf("Thestringaftermodified:
");
puts(a);
}/*编写程序,实现矩阵(3行3列)的转置(即行列互换)。
例如,输入下面的矩阵:
100200300
400500600
700800900
程序输出:
100400700
200500800
300600900
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
*/
#include
voidfun(intarray[3][3])
{
inti,j,t;
for(i=0;i<=2;i++)
for(j=i+1;j<=2;j++)
{
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}
voidmain()
{
inti,j;
intarray[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
fun(array);
printf("Convertedarray:
\n");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%7d",array[i][j]);
printf("\n");
}
}/*请编一个函数fun(int*a,intn,int*odd,int*even),函数的功能是分别求出数组中所有奇数之和以及
所有偶数之和。
形参n给出数组中数据的个数;利用指针odd返回奇数之和,利用指针even返回偶数之和。
例如:
数组中的值依次为:
1,9,2,3,11,6;则利用指针odd返回奇数之和24;利用指针even返回偶数
之和8。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写
的若干语句。
*/
#include
#defineN20
voidfun(int*a,intn,int*odd,int*even)
{
int*p;
n--;
*odd=*even=0;
for(p=a;p<=a+n;p++)
if(*p%2)
(*odd)++;
else
(*even)++;
}
voidmain()
{
inta[N]={1,9,2,3,11,6},i,n=6,odd,even;
printf("Theoriginaldatais:
\n");
for(i=0;i printf("%5d",*(a+i)); printf("\n\n"); fun(a,n,&odd,&even); printf("Thesumofoddnumbers: %d\n",odd); printf("Thesumofevennumbers: %d\n",even); }/*要求程序的功能是: 把20个随机数存入一个数组,然后输出该数组中的最小值。 其中确定最小值的下标 的操作在fun函数中实现,请给出该函数的定义。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include #include #defineVSIZE20 intvector[VSIZE]; intfun(intlist[],intsize) { inti,pos,min; min=list[0]; pos=0; for(i=0;i if(list[i] { min=list[i]; pos=i; } returnpos; } voidmain() { inti; for(i=0;i { vector[i]=rand(); printf("Vector[%d]=%6d\n",i,vector[i]); } i=fun(vector,VSIZE); printf("\nMininum: Vector[%d]=%6d\n",i,vector[i]); } /*请编一个函数floatfun(doubleh),函数的功能是对变量h中的值保留2位小数,并对第三位进行四舍五 入(规定h中的值为正数)。 例如: h值为8.32433,则函数返回8.32; h值为8.32533,则函数返回8.33。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include floatfun(floath) { intt; t=h*100+0.5; h=t/100.0; returnh; } voidmain() {floata; printf("Entera: "); scanf("%f",&a); printf("Theoriginaldatais: "); printf("%f\n\n",a); printf("Theresult: %f\n",fun(a)); } /*编写函数fun,函数的功能是: 从字符串中删除指定的字符。 同一字母的大、小写按不同字符处理。 若程序执行时,输入字符串为: turbocandborlandc++,从键盘上输入字符: n,则输出后变为: turbocadborladc++,如果输入的字符字符串中不存在,则字符串照原样输出。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include voidfun(chars[],intc) { char*p,*t; for(p=s;*p! ='\0';p++) if(*p==c) { for(t=p;*t! ='\0';t++) *t=*(t+1); p--; } } voidmain() { staticcharstr[]="turbocandborlandc++"; charch; printf("原始字符串: %s\n",str); printf("输入一个字符: "); scanf("%c",&ch); fun(str,ch); printf("str[]=%s\n",str); }/*编写函数intfun(intlim,intaa[MAX]),该函数的功能是求出小于lim的所有素数并放在aa数组 中,该函数返回求出素数的个数。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include #defineMAX200 intfun(intlim,intaa[MAX]) { inti,j,count=0; aa[0]=2; for(i=3;i { for(j=0;j<=count;j++) if(! (i%aa[j])) break; if(j>=count) { count++; aa[count]=i; } } return++count; } voidmain() { intlimit,i,sum; intaa[MAX]; printf("输入一个整数: "); scanf("%d",&limit); sum=fun(limit,aa); for(i=0;i if(i%10==0&&i! =0)printf("\n"); printf("%5d",aa[i]); } }/*请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。 二维数组中的值在主函数 中赋予。 例如: 二维数组中的值为 13579 29994 69998 13570 则函数值为61。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include #defineM4 #defineN5 intfun(inta[M][N]) { inti,j,sum=0; for(i=0;i if(i==0||i==M-1) for(j=0;j sum+=a[i][j]; else sum+=a[i][0]+a[i][N-1]; returnsum; } voidmain() {intaa[M][N]={{1,3,5,7,9}, {2,9,9,9,4}, {6,9,9,9,8}, {1,3,5,7,0}}; inti,j,y; printf("Theoriginaldatais: \n"); for(i=0;i {for(j=0;j printf("\n"); } y=fun(aa); printf("\nThesum: %d\n",y); printf("\n"); } /*请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按降序排列。 例如, 原来的字符串为CEAedca,排序输出为CedcEAa。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include #include voidfun(char*s,intnum) { char*l,t; for(l=s;*l! ='\0';l++); l-=2; s++; for(;l-s>=1;s++,l--) { t=*s; *s=*l; *l=t; } } voidmain() { chars[10]; printf("输入7个字符的字符串: "); gets(s); fun(s,7); printf("\n%s",s); }/*请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数 组每列中最小元素,并依次放入pp所指一维数组中。 二维数组中的数已在主函数中赋予。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写 的若干语句。 */ #include #defineM3 #defineN4 voidfun(inttt[M][N],intpp[N]) { inti,j; for(j=0;j<=N-1;j++) { pp[j]=tt[0][j]; for(i=1;i if(tt[i][j] pp[j]=tt[i][j]; } } voidmain() {intt[M][N]={{22,45,56,30}, {19,33,45,38}, {20,22,66,40}}; intp[N],i,j,k; printf("Theoriginaldatais: \n"); for(i=0;i { for(j=0;j printf("%6d",t[i][j]); printf("\n"); } fun(t,p); printf("\nTheresultis: \n"); for(k=0;k printf("%4d",p[k]); printf("\n"); }/*请编一个函数fun,其中n所指存储单元中存放了数组中元素的个数。 函数的功能是: 删除所有值为y的元素。 数组元素中的值和y的值由主函数通过键盘输入。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include #defineM20 voidfun(intbb[],int*n,inty) { int*p,*t; for(p=bb;p if(*p==y) { for(t=p;t *t=*(t+1); p--; (*n)--; } } voidmain() {intaa[M],n,y,k; printf("\nPleaseentern: "); scanf("%d",&n); printf("\nEnter%dpositivenumber: \n",n); for(k=0;k scanf("%d",&aa[k]); printf("Theoriginaldatais: \n"); for(k=0;k printf("%5d",aa[k]); printf("\nEnteranumbertodeleted: "); scanf("%d",&y); fun(aa,&n,y); printf("Thedataafterdeleted%d: \n",y); for(k=0;k printf("%4d",aa[k]); printf("\n"); }/*编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。 例如,假定输入的字符串为: asdasasdfgasdaszx67askmklo,子字符串为: as,则应输出6。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include #include intfun(char*str,char*substr) { intcount=0; for(;*str! ='\0';str++) if(*str==*substr&&*(str+1)==*(substr+1)) count++; returncount; } voidmain() { charstr[81],substr[3]; intn; printf("输入主字符串: "); gets(str); printf("输入子字符串: "); gets(substr); puts(str); puts(substr); n=fun(str,substr); printf("n=%d\n",n); } /*请编写一个函数intfun(intx),它的功能是: 判断整数x是否是同构数。 若是同构数,函数返回1; 否则返回0。 所谓“同构数”是指这样的数,它出现在它的平方数的右边。 例如: 输入整数5,5的平 方数是25,5是25中右侧的数,所以5是同构数。 x的值由主函数从键盘读入,要求不大于100。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include #include intfun(intx) intm; m=x*x; if(x<10) if(x==m%10) return1; else return0; else if(x==m%100) return1; else return0; } voidmain() { intx,y; printf("\nPleaseenteraintegernumbers: "); scanf("%d",&x); if(x>100) { printf("dataerror! \n"); exit(0); } y=fun(x); if(y) printf("%dYES\n",x); else printf("%dNO! \n",x); }/*编写一个函数fun,它的功能是: 实现两个字符串的连接(不使用库函数strcat)。 例如,分别输入下面两个字符串: FirstString-- SecondString 程序输出: FirstString--SecondString 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include voidfun(charp1[],charp2[]) { for(;*p1! ='\0';p1++); for(;*p2! ='\0';p1++,p2++) *p1=*p2; *p1='\0'; } voidmain() {chars1[80],s2[40]; printf("Enters1ands2: \n"); scanf("%s%s",s1,s2); printf("s1=%s\n",s1); printf("s2=%s\n",s2); printf("Invokefun(s1,s2): \n"); fun(s1,s2); printf("Afterinvoking: \n"); printf("%s\n",s1); }/*程序定义了N×N的二维数组,并在主函数中自动赋值。 请编写函数fun(inta[][N]),函数的功能是: 使数组中第一列元素中的值与最后一列元素中的值对调、第二列元素中的值与倒数第二列元素中的值 对调、……、其他依次类推。 例如: a数组中的值为 |0111279| |19745| |20131831| a=|145682| |1591741| |9712110| |54791| 则返回主程序后a数组中的值应为|13181320| |286514| |1417915| 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include"stdio.h" #include"stdlib.h" #defineN5 voidfun(inta[][N]) { inti,j; for(i=0;i for(j=0;N-1-2*j>=1;j++) { a[i][j]=a[i][j]^a[i][N-1-j]; a[i][N-1-j]=a[i][N-1-j]^a[i][j]; a[i][j]=a[i][j]^a[i][N-1-j]; } } voidmain() { inta[N][N],i,j; printf("*****Thearray*****\n"); for(i=0;i {for(j=0;j {a[i][j]=rand()%30;printf("%4d",a[i][j]);} printf("\n"); } fun(a); printf("*****THERESULT*****\n"); for(i=0;i {for(j=0;j printf("\n"); } }/*请编写函数fun,函数的功能是: 实现B=A+A',即把矩阵A加上A的转置,存放在矩阵B中。 计算结果在main函数中输出。 例如,输入下面的矩阵: 其转置矩阵为: |123||147| |456||258| |789||369| 程序输出: |2610| |61014| |101418| 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include voidfun(inta[3][3],intb[3][3]) { inti,j; for(i=0;i<=2;i++) for(j=0;j<=2;j++) b[i][j]=a[i][j]; for(i=0;i<=2;i++) for(j=0;j<=2;j++) b[j][i]+=a[i][j]; } voidmain() { inta[3][3]={{1,2,3},{4,5,6},{7,8,9}},t[3][3]; inti,j; f
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西南 交大 考研 复试 语言 上机 题库