C语言复习题
更新时间:2024-07-09 03:31:01 阅读量: 综合文库 文档下载
- c语言复合语句是什么推荐度:
- 相关推荐
C语言复习题
一、题目类型
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
百分制成绩 完数
链接字符串
/* 请编一个函数sort(),函数的功能用指针的方法将三个整数按小到大的顺序排列。 形参的值交换 实现字符串的比较 判断正整数的奇偶 素数
/* 请编一个函数substitution(),函数的功能将数组a[5][5]中的元素行列互换后存放在本数
/* 请编一个函数ishuiwen(),函数的功能用指针的方法判断字符串是否是回文 /* 请编一个函数fun,函数的功能是计算圆的面积
/* 请编一个函数fun,函数的功能是计算1!+2!+...+n! .如1!+2!+3!+4!=33
/* 请编一个函数insort(),函数的功能是在升序排好的整型数组中,按原来排序的规律插入一个数到组中。
/* 请编一个函数matrix_transpose(),函数的功能用指针的方法,实现2×3矩阵的转置。
/* 请编一个函数fun,函数的功能是小写字母,则变换成大写字母;其他字符不变换。 /* 请编一个函数fun,函数的功能是计算s=3+33+333+3333+...+3..3(n个).如n=3时3+33+333=369.
/* 请编一个函数upword(),函数的功能统计字符串中每个大写字母的个数,
/* 请编一个函数sort(),函数的功能用指针的方法将三个整数按小到大的顺序排列。 /* 请编一个函数sort(),函数的功能是对数组中元素进行升序排序。
/* 请编一个函数fun,函数的功能是将560分钟转换成小时和分钟表示,变量hour,min已在函数外定义。
/* 请编一个函数fun,函数的功能是判断一个三位数为水仙花数,如是水仙花数函数返回
/* 请编一个函数upword(),函数的功能统计字符串中每个大写字母的个数,
存放在num数组中(其中num[0]存放字母A出现的次数,num[1]存放字母B出现的次数,
/* 请编一个函数dele(),函数的功能在一个按升序排好的整型数组,查找指定的整数;若有,将其删除;若没有,输出\。
/* 请编一个函数matrix_transpose(),函数的功能用指针的方法,实现2×3矩阵的转置。
/* 请编一个函数fun,函数的功能是计算s=1-1/2+1/3-1/4+1/5+...+1/m.如1-1/2+1/3-1/4+1/5+...+1/7=0.76 /* 请编一个函数add(),函数的功能计算5×5的矩阵中下三角元素之和下三角元素就是主对角线以下(含主对角线)的元素。
? ? ? ? ?
/* 请编一个函数fun,函数的功能是计算三角形面积
* 请编一个函数fun,函数的功能是计算1!+2!+...+n! .如1!+2!+3!+4!=33
/* 请编一个函数stringlen(),函数的功能计算字符串的长度。不能使用strlen函数。 /* 请编一个函数fun,函数的功能是计算两个自然数的最小公倍数。
/* 请编一个函数findmax(),函数的功能是查找二维数组score[5][3]中的每一行中最大值,并存放到相应max[i]中。
? /* 请编一个函数matrix_transpose(),函数的功能用指针的方法,实现2×3矩阵的转
置。
二、对应题目
1./* 请编一个函数fun,函数的功能是根据百分制成绩,判断相应的成绩等级,判断依据是:
成绩>=90为A 成绩>=80为B 成绩>=70为C 成绩>=60为D 其他为E。
函数返回相应的等级(要求用switch结构完成函数的功能)。 注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/
#include
}
char fun(float score) {
/********** Begin **********/
char grade ; switch ((int)(score/10))
{ case 10:
case 9: printf (\ case 8: printf (\ case 7: printf (\ case 6: printf (\ case 5: case 4: case 3: case 2: case 1:
case 0:grade='E';break; } return grade;
/********** End **********/ }
void xqs() {
float score; char grade; int i;
FILE *rf, *wf ;
rf = fopen(\ wf = fopen(\ for(i=0;i<10;i++) {
fscanf(rf, \ grade=fun(score);
fprintf(wf, \ }
fclose(rf) ; fclose(wf) ; }
2./* 请编一个函数fun,函数的功能是判断一个数是否为\完数\。一个数如果恰好等于它的因子之和,这个数就是\完数\。
例如,6的因子为1、2、3,而6=1+2+3,因此6是\完数\。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/
#include
int i , j , s = 0 ; for( i = 1 ; i < 1000 ; i++ ) if(fun(i))
printf(\
xqs(); return 0 ; }
int fun(int n) {
/********** Begin **********/
int s=0,i=0; for(i=1;i if(s==n) return 1; else return 0; /********** End **********/ } void xqs() { int i; FILE *wf ; wf = fopen(\ for( i = 1 ; i < 1000 ; i++ ) if(fun(i)) fprintf(wf, \ fclose(wf) ; } 3./* 请编一个函数stringjoin(),函数的功能将两个字符串连接起来。不能使用strcat函数。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数stringjoin的花括号中填入你编写的若干语句。*/ #include void stringjoin(char s1[100],char s2[100]); int main( ) { char s1[100] , s2[30] ; int i , j ; printf( \ gets( s1 ) ; printf( \ gets( s2 ) ; stringjoin(s1,s2); printf( \ puts( s1 ) ; printf( \ puts( s2 ) ; fclose(wf) ; } 11./* 请编一个函数ishuiwen(),函数的功能用指针的方法判断字符串是否是回文 (正读和反读都相同的字符序列为回文,如\、\是回文)。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数ishuiwen的花括号中填入你编写的若干语句。*/ #include int ishuiwen ( char *str ) ; void xqs(); int main( ) { char str[100] ; printf( \ gets( str ) ; if( ishuiwen ( str ) ) printf( \ else printf( \ xqs(); return 0 ; } int ishuiwen ( char *str ) { /**********Begin**********/ int i,k; k=strlen(str); for(i=0;i if(str[i]!=str[k-1-i]) break; } if (i==k/2) return 1; else return 0; /********** End **********/ } void xqs() { FILE *rf, *wf ; char s[5][80]; int i; if((rf = fopen(\ { printf(\exit(0); } if((wf=fopen(\ { printf(\exit(0); } for(i=0;i<5 ;i++) { fscanf(rf,\if(ishuiwen(s[i])==1 ) fputs(\else fputs(\ } fclose(rf) ; fclose(wf) ; } 12./* 请编一个函数fun,函数的功能是计算圆的面积 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/ #include int main( ) { double r , area ; printf( \ scanf( \ area=fun(r); printf( \ xqs(); return 0 ; } float fun(double r) { /********** Begin **********/ return PI*r*r; /********** End **********/ } void xqs() { double a; FILE *rf, *wf ; rf = fopen(\wf = fopen(\fscanf(rf, \ fprintf(wf, \ fclose(rf) ; fclose(wf) ; } 13./* 请编一个函数fun,函数的功能是计算.如 1!+2!+...+n! 1!+2!+3!+4!=33 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/ #include long fun(int n) { /********** Begin **********/ int s=0,m=3,i; for(i=1;i<=n;i++) { s=s+m; m=m*10+3; } return s; /********** End **********/ } void xqs() { int i; FILE *wf ; wf = fopen(\ fprintf(wf, \\\n\fprintf(wf, \fclose(wf) ; } 14./* 请编一个函数insort(),函数的功能是在升序排好的整型数组中,按原来排序的规律插入一个数到组中。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数insort的花括号中填入你编写的若干语句。*/ #include void insort(int a[],int x); int main( ) { int a[10] = { 1 , 2 , 3 , 6 , 7 , 8 , 9 , 10 } ; int x , j , k = 0 ; printf( \scanf( \ insort(a,x); for( j = 0 ; j < 9 ; j++ ) printf( \printf( \ xqs(); return 0 ; } void insort(int a[],int x) { /**********Begin**********/ int i; if(x>=a[7]) a[8]=x; else {for(i=7;i>=0&&a[i]>x;i--) a[i+1]=a[i]; a[i+1]=x; } /********** End **********/ } void xqs() { int i,j, a[10]; FILE *rf, *wf ; if((rf = fopen(\ { printf(\exit(0); } if((wf=fopen(\ { printf(\exit(0); } for(i = 0 ; i < 8; i++) fscanf(rf, \ insort(a,9); for(i = 0 ; i < 9; i++) fprintf(wf, \ fclose(rf) ; fclose(wf) ; } 15./* 请编一个函数matrix_transpose(),函数的功能用指针的方法,实现2×3矩阵的转置。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数matrix_transpose的花括号中填入你编写的若干语句。*/ #include void matrix_transpose ( int ( *original )[COL] , int ( *result )[ROW] ) ; int main( ) { int data[ROW][COL] = { 1 , 2 , 3 , 4 , 5 , 6 } , result_data[COL][ROW] = { 0 } ; int i , j ; printf( \ for( i = 0 ; i < ROW ; i++ ) { for( j = 0 ; j < COL ; j++ ) printf( \ printf( \ } matrix_transpose ( data , result_data ) ; printf( \ for( i = 0 ; i < COL; i++ ) { for( j = 0 ; j < ROW ; j++ ) printf( \ printf( \ } xqs(); return 0 ; } void matrix_transpose ( int ( *original )[COL] , int ( *result )[ROW] ) { /**********Begin**********/ int i,j; for( i = 0 ; i < ROW ; i++ ) { for( j = 0 ; j < COL ; j++ ) result[j][i]=original[i][j]; } /********** End **********/ } void xqs() { int i,j, s[ROW][COL],r[COL][ROW]; FILE *rf, *wf ; if((rf = fopen(\ { printf(\exit(0); } if((wf=fopen(\ { printf(\exit(0); } for(i = 0 ; i < ROW; i++) for(j=0 ; j < COL; j++) fscanf(rf, \printf(\ matrix_transpose ( s , r ); for(i = 0 ; i < COL; i++) { for(j=0;j fprintf(wf, \fprintf(wf, \ } fclose(rf) ; fclose(wf) ; } 16./* 请编一个函数fun,函数的功能是小写字母,则变换成大写字母;其他字符不变换。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/ #include char fun(char ch) { /********** Begin **********/ if(ch>='a'&&ch<='z') ch=ch-32; return ch; /********** End **********/ } void xqs() { char a,i; FILE *rf, *wf ; rf = fopen(\ wf = fopen(\for(i=0;i<10;i++) { fscanf(rf, \ a=fun(a); fprintf(wf, \ } fclose(rf) ; fclose(wf) ; } 17./* 请编一个函数 3+33+333=369. fun,函数的功能是计算s=3+33+333+3333+...+3..3(n个).如n=3时 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/ #include xqs(); return 0 ; } long fun(int n) { /********** Begin **********/ int s=0,m=3,i; for(i=1;i<=n;i++) { s=s+m; m=m*10+3; } return s; /********** End **********/ } void xqs() { int i; FILE *wf ; wf = fopen(\ fprintf(wf, \ fprintf(wf, \ fclose(wf) ; } 18./* 请编一个函数upword(),函数的功能统计字符串中每个大写字母的个数, 存放在num数组中(其中num[0]存放字母A出现的次数,num[1]存放字母B出现的次数, 以此类推),然后输出字符串中出现频率最高的大写字母及出现次数。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数upword的花括号中填入你编写的若干语句。*/ #include void upword(char s[N]); int max=0,maxi=0, num[26] = { 0 }; int main( ) { char s[80] ; printf( \ gets(s) ; upword(s); printf( \ xqs(); return 0 ; } void upword(char s[]) { /**********Begin**********/ char *p=s; int i,max=0; for(;*p!='\\0';p++) { for(i=0;i<26;i++) { if((int)*p=='A'+i) {num[i]++;break;} } } for(i=0;i<26;i++) { printf(\ } for(i=0;i<26;i++) { if(max /********** End **********/ } void xqs() { int i,j; char a[80]; FILE *rf, *wf ; if((rf = fopen(\ { printf(\exit(0); } if((wf=fopen(\//判断文件是否成功打开 { printf(\exit(0); } fgets(a,80,rf); max=0;maxi=0; for(i=0;i<26;i++) num[i]=0; upword(a); fprintf(wf, \ fclose(rf) ; fclose(wf) ; } 19./* 请编一个函数sort(),函数的功能是对数组中元素进行升序排序。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数sort的花括号中填入你编写的若干语句。*/ #include void sort(int a[]); int main( ) { int a[N] , i , j ; printf( \ for( i = 0 ; i < N ; i++ ) scanf( \ sort(a); printf( \ for( i = 0 ; i < N ; i++ ) printf( \ xqs(); return 0 ; } void sort(int a[]) { /**********Begin**********/ int temp , i , j,r ; for(i=0;i void xqs() { int i,j, a[N]; FILE *rf, *wf ; if((rf = fopen(\ { printf(\exit(0); } if((wf=fopen(\ { //判断文件是否成功打开 printf(\exit(0); } for(j=0;j<5;j++) { for(i = 0 ; i < N; i++) fscanf(rf, \ sort(a); for(i = 0 ; i < N; i++) fprintf(wf, \fprintf(wf, \ } fclose(rf) ; fclose(wf) ; } 20./* 请编一个函数fun,函数的功能是将560分钟转换成小时和分钟表示,变量hour,min已在函数外定义。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/ #include int hour,min; //全局变量 int main( ) { int time=560 ; fun(time); printf( \ xqs(); return 0 ; } void fun(int time) { /********** Begin **********/ hour=time/60; min=time`; /********** End **********/ } void xqs() { int a; FILE *rf, *wf ; rf = fopen(\wf = fopen(\fscanf(rf, \fun(a); fprintf(wf, \ fclose(rf) ; fclose(wf) ; } 22./* 请编一个函数fun,函数的功能是判断一个三位数为水仙花数,如是水仙花数函数返回值为1,否则返回0。所谓水仙是指一个三位数等于其各位上数字的立方和。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/ #include { if(fun(n)) printf( \ } xqs(); return 0 ; } int fun(int n) { /********** Begin **********/ int i,j,k; i=n/100; j=(n0)/10; k=n; if(n==(i*i*i+j*j*j+k*k*k)) return 1; else return 0; /********** End **********/ } void xqs() { float score; char grade; int i; FILE *wf ; wf = fopen(\for(i=100;i<1000;i++) { if(fun(i)) fprintf(wf, \ } fclose(wf) ; } 24./* 请编一个函数dele(),函数的功能在一个按升序排好的整型数组,查找指定的整数;若有,将其删除;若没有,输出\。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数dele的花括号中填入你编写的若干语句。*/ #include void dele(int a[],int x); int main( ) { int a[10] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } ; int t , j , k = 0 ; printf( \ scanf( \ dele(a,t); for( j = 0 ; j < 9 ; j++ ) printf( \ xqs(); return 0 ; } void dele(int a[10],int t) { /**********Begin**********/ int i,k; for(i=0;i<10;i++) { if (a[i]==t) break; } if(i!=10) { for(k=i;k<9;k++) a[k]=a[k+1]; } else printf(\ /********** End **********/ } void xqs() { int i,j, a[10]; FILE *rf, *wf ; if((rf = fopen(\ { printf(\exit(0); } if((wf=fopen(\//判断文件是否成功打开 { printf(\exit(0); } for(i = 0 ; i < 10; i++) fscanf(rf, \ dele(a,9); for(i = 0 ; i < 9; i++) fprintf(wf, \ fclose(rf) ; fclose(wf) ; } 26./* 请编一个函数fun,函数的功能是计算 s=1-1/2+1/3-1/4+1/5+...+1/m.如1-1/2+1/3-1/4+1/5+...+1/7=0.76 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/ #include xqs(); return 0 ; } double fun(int m) { /********** Begin **********/ int i,t=-1; double s=0,x; for(i=1;i<=m;i++) { t=-t; s=s+t*1.0/i; } return s; /********** End **********/ } void xqs() { int i; FILE *wf ; wf = fopen(\ fprintf(wf, \fprintf(wf, \fclose(wf) ; } 27./* 请编一个函数add(),函数的功能计算5×5的矩阵中下三角元素之和。 下三角元素就是主对角线以下(含主对角线)的元素。 例如: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 下三角元素之和为220。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数add的花括号中填入你编写的若干语句。*/ #include int add(int a[5][5]); int main( ) { int a[5][5] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21, 22,23,24} ; int i , j ,sum = 0 ; for ( i = 0 ; i < 5 ; i++ ) { for ( j = 0 ; j < 5 ; j++) printf( \ printf( \ } sum=add(a); printf( \ xqs(); return 0 ; } int add(int a[5][5]) { int s=0,i,j; /**********Begin**********/ int sum=0; for(i=0;i<5;i++) for(j=0;j<=i;j++) sum+=a[i][j]; return sum; /********** End **********/ } void xqs() { int i,j, a[5][5],s; FILE *rf, *wf ; if((rf = fopen(\ { printf(\exit(0); } if((wf=fopen(\ { printf(\exit(0); } for(i = 0 ; i <5; i++) for(j=0;j<5;j++) fscanf(rf, \ s=add(a); fprintf(wf, \ fclose(rf) ; fclose(wf) ; } //判断文件是否成功打开 28./* 请编一个函数fun,函数的功能是计算三角形面积 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*/ #include double fun(double x,double y,double z); void xqs(); int main( ) { double a , b , c , s ; a = 3.0 ; b = 4.0 ; c = 5.0 ; s=fun(a,b,c); printf( \ xqs(); return 0 ; } double fun(double x,double y,double z) { /********** Begin **********/ double p,a , b , c , s ; a = 3.0 ; b = 4.0 ; c = 5.0 ; p=0.5*(a+b+c); s=sqrt(p*(p-a)*(p-b)*(p-c)); /********** End **********/ } void xqs() { double a,b,c; FILE *rf, *wf ; rf = fopen(\wf = fopen(\ fscanf(rf, \ fprintf(wf, \ fclose(rf) ; fclose(wf) ; } 30./* 请编一个函数stringlen(),函数的功能计算字符串的长度。不能使用strlen函数。 注意: 部分源程序存在文件PROG1.C文件中。 请勿改动主函数main和其它函数中的任何内容,仅在函数stringlen的花括号中填入你编写的若干语句。 #include int stringlen(char s[]); int main( ) { char s1[100] ; int i ; printf( \ gets( s1 ) ; i=stringlen(s1); printf( \ xqs(); return 0 ; } int stringlen(char s1[100]) { /**********Begin**********/ int i; for(i=0;i<100;i++) { if(s1[i]=='\\0') break; } return i; /********** End **********/ } void xqs() { int i,j,len; char s1[100],s2[100];; FILE *rf, *wf ; if((rf = fopen(\ { printf(\exit(0); } if((wf=fopen(\//判断文件是否成功打开 { printf(\exit(0); } fgets(s1, 100, rf) ; len=stringlen(s1); fprintf(wf,\fputs(s1,wf); fprintf(wf,\ fprintf(wf, \ fclose(rf) ; fclose(wf) ; } 31./* 请编一个函数fun,函数的功能是计算两个自然数的最小公倍数。
正在阅读:
C语言复习题07-09
《奇迹的名字叫父亲》读书笔记600字01-31
第一次炒鸡蛋作文500字07-14
有关春节专题的作文合集五篇03-27
沪教版语文一年级上册全册精品教案06-23
省华南师范大学附属中学、实验中学、广雅中学、深圳中学2019届高三上学期期末联考理科综合生物05-02
直接序列扩频系统设计毕业论文106-30
1104基础报表填报说明(最新).pdf04-26
邂逅诚信作文1000字07-08
机器人之约作文600字06-23
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 复习题
- 语言
- 纬地软件专业教程 - 图文
- 华北地区常见蔬菜露天种植时间表
- 广东省试点市中小学正高级教师水平评价标准(试行)
- 名牌小学毕业总复习过关检测卷语文 - 图文
- 操作系统复习题答案
- 建筑围护结构节能施工管理
- 苗木农贸市场建设可行性研究报告
- 深圳市2006年初中毕业生学业考试科学试卷 - 图文
- 幼儿园园长岗位职责和制度全套
- 首批百所数字校园示范校建设项目学校名单
- 金宇澄《繁花》研究
- 儿童安全座椅 - 图文
- 两会佛山
- 数学建模,汽车的刹车距离,动物的身长与体重,
- 09高考物理电磁感应计算题集
- 智能网络视频监控技术详解与实践之视频监控技术发展过程
- 三角形四边形圆研说稿 2
- 语言学选择题
- 地方志在历代书目中的归属
- 会计软件发展历史、现状、以及期望