大连理工大学C语言机房模拟试题之程序设计题全.docx

上传人:b****5 文档编号:8162122 上传时间:2023-01-29 格式:DOCX 页数:25 大小:20.35KB
下载 相关 举报
大连理工大学C语言机房模拟试题之程序设计题全.docx_第1页
第1页 / 共25页
大连理工大学C语言机房模拟试题之程序设计题全.docx_第2页
第2页 / 共25页
大连理工大学C语言机房模拟试题之程序设计题全.docx_第3页
第3页 / 共25页
大连理工大学C语言机房模拟试题之程序设计题全.docx_第4页
第4页 / 共25页
大连理工大学C语言机房模拟试题之程序设计题全.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

大连理工大学C语言机房模拟试题之程序设计题全.docx

《大连理工大学C语言机房模拟试题之程序设计题全.docx》由会员分享,可在线阅读,更多相关《大连理工大学C语言机房模拟试题之程序设计题全.docx(25页珍藏版)》请在冰豆网上搜索。

大连理工大学C语言机房模拟试题之程序设计题全.docx

大连理工大学C语言机房模拟试题之程序设计题全

程序题

程序设计

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

编写函数fun(str,i,n),从字符串str中删除第i个

字符开始的连续n个字符(注意:

str[0]代表字符串

的第一个字符)。

------------------------------------------------*/

#include"stdio.h"

#include"string.h"

main()

{

charstr[81];

inti,n;

voidfun(charstr[],inti,intn);

voidTestFunc();

printf("请输入字符串str的值:

\n");

scanf("%s",str);

printf("你输入的字符串str是:

%s\n",str);

printf("请输入删除位置i和待删字符个数n的值:

\n");

scanf("%d%d",&i,&n);

while(i+n-1>strlen(str))

{

printf("删除位置i和待删字符个数n的值错!

请重新输入i和n的值\n");

scanf("%d%d",&i,&n);

}

fun(str,i,n);

printf("删除后的字符串str是:

%s\n",str);

TestFunc();

}

voidfun(charstr[],inti,intn)

{

/*********Begin**********/

while(str[i+n-1])

{

str[i-1]=str[i+n-1];

i++;

}

str[i-1]='\0';

/*或

intj=i-1,k=i+n-1;

while((str[j++]=str[k++])!

='\0');

*/

/**********End**********/

}

voidTestFunc()

{

FILE*IN,*OUT;

chari[200];

/*charo[200];*/

IN=fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFileError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFileError");

}

fscanf(IN,"%s",i);

fun(i,2,8);

fprintf(OUT,"%s\n",i);

fclose(IN);

fclose(OUT);

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

请编一个函数voidfun(inttt[M][N],intpp[N]),

tt指向一个M行N列的二维数组,求出二维数组每列

中最小元素,并依次放入pp所指一维数组中。

二维

数组中的数已在主函数中赋予。

------------------------------------------------*/

#include"conio.h"

#include"stdio.h"

#defineM3

#defineN4

voidfun(inttt[M][N],intpp[N])

{

/*********Begin**********/

inti,j;

for(j=0;j

{

pp[j]=tt[0][j];

for(i=1;i

if(tt[i][j]

pp[j]=tt[i][j];

}

/**********End**********/

}

main()

{

intt[M][N]={{22,45,56,30},{19,33,45,38},{20,22,66,40}};

voidNONO();

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("\n");

NONO();

}

/*------------------------------------------------

【程序设计】1685

--------------------------------------------------

功能:

能计算从1开始到n的自然数的和,n由键盘输入,

并在main()函数中输出。

------------------------------------------------*/

#include"stdio.h"

intfun(intn)

{

/*********Begin**********/

intsum=0,i;

for(i=1;i<=n;i++)

sum=sum+i;

return(sum);

/**********End**********/

}

main()

{

intm;

voidTestFunc();

printf("Enterm:

");

scanf("%d",&m);

printf("\nTheresultis%d\n",fun(m));

TestFunc();

}

/*------------------------------------------------

【程序设计】1599

--------------------------------------------------

功能:

调用函数fun判断一个三位数是否"水仙花数"。

在main函数中从键盘输入一个三位数,并输

出判断结果。

请编写fun函数。

说明:

所谓"水仙花数"是指一3位数,其各位数字立方和

等于该数本身。

例如:

153是一个水仙花数,因为153=1+125+27。

------------------------------------------------*/

#include"stdio.h"

intfun(intn)

{

/*********Begin**********/

intbw,sw,gw;

bw=n/100;sw=(n-bw*100)/10;gw=n%10;

if(n==bw*bw*bw+sw*sw*sw+gw*gw*gw)return1;

elsereturn0;

/**********End**********/

}

main()

{

intn,flag;

scanf("%d",&n);

flag=fun(n);

if(flag)

printf("%d是水仙花数\n",n);

else

printf("%d不是水仙花数\n",n);

TestFunc();

}

/*--------------------------------------------------------------

【程序设计】

----------------------------------------------------------------

功能:

编写函数sum(intm,intn),求出m~n之间(包括m和n,m

被3和5整除的数的和,并将这些数的和作为返回值。

---------------------------------------------------------------*/

#include"stdio.h"

intsum(intm,intn)

{

/*********Begin**********/

inti,s=0;

for(i=m;i<=n;i++)

if(i%3==0&&i%5==0)

s+=i;

returns;

/**********End**********/

}

main()

{

voidTestFunc();

intm=15,n=300;

printf("sum=%d\n",sum(m,n));

TestFunc();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

求5行5列矩阵的主、副对角线上元素之和。

注意,

两条对角线相交的元素只加一次。

例如:

主函数中给出的矩阵的两条对角线的和为45。

------------------------------------------------*/

#include"stdio.h"

#defineM5

intfun(inta[M][M])

{

/*********Begin**********/

inti,s=0;

for(i=0;i

s+=a[i][i]+a[i][M-i-1];

s-=a[(M-1)/2][(M-1)/2];

returns;

/**********End**********/

}

main()

{

inta[M][M]={{1,3,5,7,9},{2,4,6,8,10},{2,3,4,5,6},{4,5,6,7,8},{1,3,4,5,6}};

inty;

y=fun(a);

printf("s=%d\n",y);

TestFunc();

}

 

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

根据整型形参m,计算如下公式的值:

y=1/5+1/6+1/7+1/8+1/9+1/10...+1/(m+5)

例如:

若m=9,则应输出:

1.168229

------------------------------------------------*/

#include"stdio.h"

doublefun(intm)

{

/*********Begin**********/

inti;

doubley=0;

for(i=0;i<=m;i++)

y+=1./(i+5);

returny;

/**********End**********/

}

main()

{

intn;

voidTestFunc();

printf("Entern:

");

scanf("%d",&n);

printf("\nTheresultis%1f\n",fun(n));

TestFunc();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

求一批数中最大值和最小值的积。

------------------------------------------------*/

#defineN30

#include"stdlib.h"

#include"stdio.h"

intmax_min(inta[],intn)

{

/*********Begin**********/

inti,max,min;

max=min=a[0];

for(i=1;i

{

if(a[i]>max)max=a[i];

if(a[i]

}

returnmax*min;

/**********End**********/

}

main()

{

inta[N],i,k;

voidTestFunc();

for(i=0;i

a[i]=rand()%51+10;

for(i=0;i

{

printf("%5d",a[i]);

if((i+1)%5==0)printf("\n");

}

k=max_min(a,N);

printf("theresultis:

%d\n",k);

//TestFunc();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

把20个随机数存入一个数组,然后输出该数组中的

最小值。

其中确定最小值的下标的操作在fun函数中

实现,请给出该函数的定义。

------------------------------------------------*/

#include"stdio.h"

#include"stdlib.h"

#defineVSIZE20

intvector[VSIZE];

intfun(intlist[],intsize)

{

/*********Begin**********/

inti,min=0;

for(i=1;i

if(list[min]>list[i])

min=i;

returnmin;

/**********End**********/

}

main()

{

inti;

voidNONO();

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]);

NONO();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

求k!

(k〈13),所求阶乘的值作为函数值返回。

(要求使用递归)

------------------------------------------------*/

#include"stdio.h"

#include"conio.h"

longfun(intk)

{

/*********Begin**********/

if(k>0)

return(k*fun(k-1));

elseif(k==0)

return1L;

/**********End**********/

}

main()

{

intm;

voidTestFunc();

printf("Enterm:

");

scanf("%d",&m);

printf("\nTheresultis%ld\n",fun(m));

TestFunc();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

用do-while语句求1~100的累计和。

------------------------------------------------*/

#include"stdio.h"

longintfun(intn)

{

/*********Begin**********/

inti=1,sum=0;

do

{sum=sum+i;

i++;

}while(i<=n);

returnsum;

/**********End**********/

}

main()

{

inti=100;

voidTestFunc();

printf("1~100的累加和为:

%ld\n",fun(i));

TestFunc();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

编写程序,实现矩阵(3行3列)的转置(即行列互换)

例如:

输入下面的矩阵:

100200300

400500600

700800900

程序输出:

100400700

200500800

300600900

------------------------------------------------*/

#include"stdio.h"

voidfun(intarray[3][3])

{

/*********Begin**********/

inti,j,t;

for(i=0;i<3;i++)

for(j=0;j

{t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;

}

/*【或】

inti,j,t;

for(i=0;i<3;i++)

for(j=i+1;j<3;j++)

{

t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;

}

*/

/**********End**********/

}

main()

{

inti,j;

voidNONO();

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");

}

NONO();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

将字符串中的小写字母转换为对应的大写字母,

其它字符不变。

------------------------------------------------*/

#include"string.h"

#include"stdio.h"

voidchange(charstr[])

{

/*********Begin**********/

inti;

for(i=0;str[i]!

='\0';i++)

if(str[i]>='a'&&str[i]<='z')

str[i]=str[i]-32;

/**********End**********/

}

main()

{

voidchange();

charstr[40];

voidTestFunc();

gets(str);

change(str);

puts(str);

TestFunc();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

从低位开始取出长整型变量s中偶数位上的数,依次

构成一个新数放在t中。

例如:

当s中的数为:

7654321时,t中的数为:

642。

------------------------------------------------*/

#include"stdio.h"

longfun(longs,longt)

{

/*********Begin**********/

longsl=10;

s/=10;

t=s%10;

while(s>0)

{s=s/100;

t=s%10*sl+t;

sl=sl*10;

}

/**********End**********/

returnt;

}

main()

{

longs,t,m;

voidTestFunc();

printf("\nPleaseenters:

");scanf("%ld",&s);

m=fun(s,t);

printf("Theresultis:

%ld\n",m);

TestFunc();

}

/*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

求出二维数组外围元素之和,作为函数值返回。

维数组的值在主函数中赋予。

---------------------------

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

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1