大连理工大学C语言机房模拟试题之程序设计题全.docx
- 文档编号:8162122
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:25
- 大小:20.35KB
大连理工大学C语言机房模拟试题之程序设计题全.docx
《大连理工大学C语言机房模拟试题之程序设计题全.docx》由会员分享,可在线阅读,更多相关《大连理工大学C语言机房模拟试题之程序设计题全.docx(25页珍藏版)》请在冰豆网上搜索。
大连理工大学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(); } /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 功能: 求出二维数组外围元素之和,作为函数值返回。 二 维数组的值在主函数中赋予。 ---------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大连理工大学 语言 机房 模拟 试题 程序设计