高级语言上机实验题库.docx
- 文档编号:26567667
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:63
- 大小:30.30KB
高级语言上机实验题库.docx
《高级语言上机实验题库.docx》由会员分享,可在线阅读,更多相关《高级语言上机实验题库.docx(63页珍藏版)》请在冰豆网上搜索。
高级语言上机实验题库
/*请编一个函数fun(char*s),函数的功能是把字符串中的内容逆置。
例如:
字符串中原有的内容为:
abcdefg,则调用该函数后,串中的内容为:
gfedcba。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
*/
#include
#include
#defineN81
voidfun(char*s)
{inti,n;
chart;
n=strlen(s);
for(i=0;i { t=*(s+i); *(s+i)=*(s+n-1-i); *(s+n-1-i)=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<3;i++) for(j=0;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) { inti;*odd=*even=0; for(i=0;i if(*(a+i)%2) *odd=*odd+*(a+i); else *even=*even+*(a+i); } 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,min=list[0],p=0; for(i=1;i if(list[i] {min=list[i]; p=i;}return(p); } 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) { return((int)(h*100+0.5)/100.0); } voidmain() {floata; printf("Entera: "); scanf("%f",&a); printf("Theoriginaldatais: "); printf("%f\n\n",a); printf("Theresult: %.2f\n",fun(a)); } /*编写函数fun,函数的功能是: 从字符串中删除指定的字符。 同一字母的大、小写按不同字符处理。 若程序执行时,输入字符串为: turbocandborlandc++,从键盘上输入字符: n,则输出后变为: turbocadborladc++,如果输入的字符字符串中不存在,则字符串照原样输出。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include voidfun(chars[],charc) {inti,m=0; for(i=0;s[i];i++) {if(s[i]==c) m=1; if(m)s[i]=s[i+1]; } } voidmain() { staticcharstr[]="turbocandborlandc++"; charch; printf("原始字符串: %s\n",str); printf("输入一个字符: "); scanf("%c",&ch); fun(str,ch); printf("str[]=%s\n",str); } #include #defineMAX200 intfun(intlim,intaa[MAX]) {inti,j,m=0; for(i=1;i {for(j=2;j if(i%j==0) break; if(j>=i-1) { aa[m]=i; m=m+1; } }return(m); } 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<4;i++) for(j=0;j<5;j++) if(i==0||j==0||i==3||j==4) sum=sum+a[i][j]; return(sum); } 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) {inti,j; char*t=s,p; for(i=1;i for(j=1;j if(s[j] {p=s[j]; s[j]=s[j+1]; s[j+1]=p; } } 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,min,m=0; for(i=0;i {min=tt[0][i]; for(j=1;j if(min>tt[j][i]) min=tt[j][i]; pp[i]=min; } } 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"); } /*请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数 组每列中最小元素,并依次放入pp所指一维数组中。 二维数组中的数已在主函数中赋予。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 */ #include #defineM3 #defineN4 voidfun(inttt[M][N],intpp[N]) {inti,j,min,m=0; for(i=0;i {min=tt[0][i]; for(j=1;j if(min>tt[j][i]) min=tt[j][i]; pp[i]=min; } } 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) {inti; for(i=0;i<*n;i++) if(bb[i]==y) {bb[i]=bb[i+1];i=i+1;*n-=1;} } 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) {inti,m,n,count=0; for(i=0,m=0;str[i];i++) {if(str[i]==substr[0])m=1; if(m&&str[i]==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) {inti=1,t; t=x*x-x; do{i=i*10; x=x/10; }while(x); if(t%i==0) 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[]) {inti,j,m; for(j=0;p1[j];j++) m=j; for(i=0;p2[i];i++) p1[j++]=p2[i]; p1[j]=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,t; for(i=0;i<(N-1)/2;i++) for(j=0;j {t=a[j][i]; a[j][i]=a[j][N-i-1]; a[j][N-i-1]=t; } } 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|
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 语言 上机 实验 题库