西南交大考研复试C语言上机题库.docx

上传人:b****3 文档编号:13218639 上传时间:2023-06-12 格式:DOCX 页数:70 大小:31.22KB
下载 相关 举报
西南交大考研复试C语言上机题库.docx_第1页
第1页 / 共70页
西南交大考研复试C语言上机题库.docx_第2页
第2页 / 共70页
西南交大考研复试C语言上机题库.docx_第3页
第3页 / 共70页
西南交大考研复试C语言上机题库.docx_第4页
第4页 / 共70页
西南交大考研复试C语言上机题库.docx_第5页
第5页 / 共70页
西南交大考研复试C语言上机题库.docx_第6页
第6页 / 共70页
西南交大考研复试C语言上机题库.docx_第7页
第7页 / 共70页
西南交大考研复试C语言上机题库.docx_第8页
第8页 / 共70页
西南交大考研复试C语言上机题库.docx_第9页
第9页 / 共70页
西南交大考研复试C语言上机题库.docx_第10页
第10页 / 共70页
西南交大考研复试C语言上机题库.docx_第11页
第11页 / 共70页
西南交大考研复试C语言上机题库.docx_第12页
第12页 / 共70页
西南交大考研复试C语言上机题库.docx_第13页
第13页 / 共70页
西南交大考研复试C语言上机题库.docx_第14页
第14页 / 共70页
西南交大考研复试C语言上机题库.docx_第15页
第15页 / 共70页
西南交大考研复试C语言上机题库.docx_第16页
第16页 / 共70页
西南交大考研复试C语言上机题库.docx_第17页
第17页 / 共70页
西南交大考研复试C语言上机题库.docx_第18页
第18页 / 共70页
西南交大考研复试C语言上机题库.docx_第19页
第19页 / 共70页
西南交大考研复试C语言上机题库.docx_第20页
第20页 / 共70页
亲,该文档总共70页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

西南交大考研复试C语言上机题库.docx

《西南交大考研复试C语言上机题库.docx》由会员分享,可在线阅读,更多相关《西南交大考研复试C语言上机题库.docx(70页珍藏版)》请在冰点文库上搜索。

西南交大考研复试C语言上机题库.docx

西南交大考研复试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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2