为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

二级C语言基本题库

2010-03-26 38页 doc 655KB 36阅读

用户头像

is_468343

暂无简介

举报
二级C语言基本题库 科益教育http://blog2.ncuhome.cn/ 二级C语言上机考试复习资料,共有50套题目 一、程序填空题 1、给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时, 程序输出: x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不...
二级C语言基本题库
科益教育http://blog2.ncuhome.cn/ 二级C语言上机考试复习资料,共有50套目 一、程序填空题 1、给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时, 程序输出: x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000 请在程序的下划线处填入正确的并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include double f1(double x) { return x*x; } double f2(double x, double y) { return x*y; } /**********found**********/ __1__ fun(int i, double x, double y) { if (i==1) /**********found**********/ return __2__(x); else /**********found**********/ return __3__(x, y); } main() { double x1=5, x2=3, r; r = fun(1, x1, x2); r += fun(2, x1, x2); printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n\n",x1, x2, r); } 2、程序通过定义学生结构体数组,存储了若干名学生的学号、姓名和3门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大)排序。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include struct student { long sno; char name[10]; float score[3]; }; void fun(struct student a[], int n) { /**********found**********/ __1__ t; int i, j; /**********found**********/ for (i=0; i<__2__; i++) for (j=i+1; j 0) { t = a[i]; a[i] = a[j]; a[j] = t; } } main() { struct student s[4]={{10001,"ZhangSan", 95, 80, 88},{10002,"LiSi", 85, 70, 78}, {10003,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87}}; int i, j; printf("\n\nThe original data :\n\n"); for (j=0; j<4; j++) { printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name); for (i=0; i<3; i++) printf("%6.2f ", s[j].score[i]); printf("\n"); } fun(s, 4); printf("\n\nThe data after sorting :\n\n"); for (j=0; j<4; j++) { printf("\nNo: %ld Name: %-8s Scores: ",s[j].sno, s[j].name); for (i=0; i<3; i++) printf("%6.2f ", s[j].score[i]); printf("\n"); } } 3、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。 例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 主函数中输出:46 32 40 45 48 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 10 double fun(double x[],double *y) { int i,j; double av; /**********found**********/ av=__1__; /**********found**********/ for(i=0; iav) y[__3__]= x[i]; y[j]=-1; return av; } main() { int i; double x[N],y[N]; for(i=0; i=0; i++) printf("%5.1f ",y[i]); printf("\n"); } 4、给定程序中,函数fun的功能是:将a所指4×3矩阵中第k行的元素与第0行元素交换。 例如,有下列矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 若k为2,程序执行结果为: 7 8 9 4 5 6 1 2 3 10 11 12 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define N 3 #define M 4 /**********found**********/ void fun(int (*a)[N], int __1__) { int i,j,temp ; /**********found**********/ for(i = 0 ; i < __2__ ; i++) { temp=a[0][i] ; /**********found**********/ a[0][i] = __3__ ; a[k][i] = temp ; } } main() { int x[M][N]={ {1,2,3},{4,5,6},{7,8,9},{10,11,12} },i,j; printf("The array before moving:\n\n"); for(i=0; i #include #include #define N 9 long ctod( char *s ) { long d=0; while(*s) if(isdigit( *s)) { /**********found**********/ d=d*10+*s-__1__; /**********found**********/ __2__; } return d; } long fun( char *a, char *b ) { /**********found**********/ return __3__; } main() { char s1[N],s2[N]; do { printf("Input string s1 : "); gets(s1); } while( strlen(s1)>N ); do { printf("Input string s2 : "); gets(s2); } while( strlen(s2)>N ); printf("The result is: %ld\n", fun(s1,s2) ); } 6、给定程序中,函数fun的功能是:计算下式前n项的和作为函数值返回。 例如,当形参n的值为10时,函数返回:9.612558。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include double fun(int n) { int i; double s, t; /**********found**********/ s=__1__; /**********found**********/ for(i=1; i<=__2__; i++) { t=2.0*i; /**********found**********/ s=s+(2.0*i-1)*(2.0*i+1)/__3__; } return s; } main() { int n=-1; while(n<0) { printf("Please input(n>0): "); scanf("%d",&n); } printf("\nThe result is: %f\n",fun(n)); } 7、给定程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大、在列上最小的那个元素,若没有符合条件的元素则输出相应信息。 例如,有下列矩阵: 1 2 13 4 7 8 10 6 3 5 9 7 程序执行结果为:find: a[2][2]=9 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #define M 3 #define N 4 void fun(int (*a)[N]) { int i=0,j,find=0,rmax,c,k; while( (i #include #define N 5 #define M 10 int fun(char (*ss)[M], int k) { int i,j=0,len; /**********found**********/ for(i=0; i< __1__ ; i++) { len=strlen(ss[i]); /**********found**********/ if(len<= __2__) /**********found**********/ strcpy(ss[j++],__3__); } return j; } main() { char x[N][M]={"Beijing","Shanghai","Tianjing","Nanjing","Wuhan"}; int i,f; printf("\nThe original string\n\n"); for(i=0;i #include struct student { long sno; char name[10]; float score[3]; }; void fun(struct student a) { struct student b; int i; /**********found**********/ b = __1__; b.sno = 10002; /**********found**********/ strcpy(__2__, "LiSi"); printf("\nThe data after modified :\n"); printf("\nNo: %ld Name: %s\nScores: ",b.sno, b.name); /**********found**********/ for (i=0; i<3; i++) printf("%6.2f ", b.__3__); printf("\n"); } main() { struct student s={10001,"ZhangSan", 95, 80, 88}; int i; printf("\n\nThe original data :\n"); printf("\nNo: %ld Name: %s\nScores: ",s.sno, s.name); for (i=0; i<3; i++) printf("%6.2f ", s.score[i]); printf("\n"); fun(s); } 10、给定程序中,函数fun的功能是:在形参ss所指字符串数组中,将所有串长超过k的字符串中右边的字符删除,只保留左边的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 5 #define M 10 /**********found**********/ void fun(char (*ss) __1__, int k) { int i=0 ; /**********found**********/ while(i< __2__) { /**********found**********/ ss[i][k]=__3__; i++; } } main() { char x[N][M]={"Create","Modify","Sort","skip","Delete"}; int i; printf("\nThe original string\n\n"); for(i=0;i #include #define N 80 void fun(char *s, int n, char *t) { int len,i,j=0; len=strlen(s); /**********found**********/ if(n>=len) strcpy(__1__); else { /**********found**********/ for(i=len-n; i<=len-1; i++) t[j++]= __2__ ; /**********found**********/ t[j]= __3__ ; } } main() { char s[N],t[N]; int n; printf("Enter a string: ");gets(s); printf( "Enter n:"); scanf("%d",&n); fun(s,n,t); printf("The string t : "); puts(t); } 12、给定程序中,函数fun的功能是:将形参s所指字符串中的所有数字字符顺序前移,其他字符顺序后移,处理后新字符串的首地址作为函数值返回。 例如,s所指字符串为:asd123fgh5##43df, 处理后新字符串为:123543asdfgh##df。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #include #include char *fun(char *s) { int i, j, k, n; char *p, *t; n=strlen(s)+1; t=(char*)malloc(n*sizeof(char)); p=(char*)malloc(n*sizeof(char)); j=0; k=0; for(i=0; i fun(int x) { int n, s1, s2, s3, t; n=0; t=100; /**********found**********/ while(t<=__1__){ /**********found**********/ s1=t%10; s2=(__2__)%10; s3=t/100; /**********found**********/ if(s1+s2+s3==__3__) { printf("%d ",t); n++; } t++; } return n; } main() { int x=-1; while(x<0) { printf("Please input(x>0): "); scanf("%d",&x); } printf("\nThe result is: %d\n",fun(x)); } 14、给定程序中,函数fun的功能是:将形参s所指字符串中的数字字符转换成对应的数值,计算出这些数值的累加和作为函数值返回。 퓴例如,形参s所指的字符串为:abs5def126jkm8,程序执行后的输出结果为:22。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #include int fun(char *s) { int sum=0; while(*s) { /**********found**********/ if( isdigit(*s) ) sum+= *s- __1__ ; /**********found**********/ __2__; } /**********found**********/ return __3__ ; } main() { char s[81]; int n; printf("\nEnter a string:\n\n"); gets(s); n=fun(s); printf("\nThe result is: %d\n\n",n); } 15、给定程序中,函数fun的功能是将带头节点的单向链结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为:10、4、2、8、6,排序后链表结点数据域从头至尾的数据为:2、4、6、8、10。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 6 typedef struct node { int data; struct node *next; } NODE; void fun(NODE *h) { NODE *p, *q; int t; /**********found**********/ p = __1__ ; while (p) { /**********found**********/ q = __2__ ; while (q) { /**********found**********/ if (p->data __3__ q->data) { t = p->data; p->data = q->data; q->data = t; } q = q->next; } p = p->next; } } NODE *creatlist(int a[]) { NODE *h,*p,*q; int i; h = (NODE *)malloc(sizeof(NODE)); h->next = NULL; for(i=0; idata=a[i]; q->next = NULL; if (h->next == NULL) h->next = p = q; else { p->next = q; p = q; } } return h; } void outlist(NODE *h) { NODE *p; p = h->next; if (p==NULL) printf("The list is NULL!\n"); else { printf("\nHead "); do { printf("->%d", p->data); p=p->next; } while(p!=NULL); printf("->End\n"); } } main() { NODE *head; int a[N]= {0, 10, 4, 2, 8, 6 }; head=creatlist(a); printf("\nThe original list:\n"); outlist(head); fun(head); printf("\nThe list after sorting :\n"); outlist(head); } 16、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。 例如:a所指变量s中的学号、姓名、和三门课的成绩依次是:10001、" ZhangSan "、95、80、88,修改后输出t中的数据应为:10002、"LiSi "、96、81、89。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include struct student { long sno; char name[10]; float score[3]; }; /**********found**********/ __1__ fun(struct student *a) { int i; a->sno = 10002; strcpy(a->name, "LiSi"); /**********found**********/ for (i=0; i<3; i++) __2__ += 1; /**********found**********/ return __3__ ; } main() { struct student s={10001,"ZhangSan", 95, 80, 88}, *t; int i; printf("\n\nThe original data :\n"); printf("\nNo: %ld Name: %s\nScores: ",s.sno, s.name); for (i=0; i<3; i++) printf("%6.2f ", s.score[i]); printf("\n"); t = fun(&s); printf("\nThe data after modified :\n"); printf("\nNo: %ld Name: %s\nScores: ",t->sno, t->name); for (i=0; i<3; i++) printf("%6.2f ", t->score[i]); printf("\n"); } 17、给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000 移动后的输出为:46 32 40 45 48 30 6 17 15 26 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 10 double fun(double *x) { int i, j; double s, av, y[N]; s=0; for(i=0; iav ){ /**********found**********/ y[__2__]=x[i]; x[i]=-1;} for(i=0; i int fun(char *s) { int n=0, flag=0; while(*s!='\0') { if(*s!=' ' && flag==0) { /**********found**********/ __1__ ; flag=1;} /**********found**********/ if (*s==' ') flag= __2__ ; /**********found**********/ __3__ ; } return n; } main() { char str[81]; int n; printf("\nEnter a line text:\n"); gets(str); n=fun(str); printf("\nThere are %d words in this text.\n\n",n); } 19、给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(下标值),未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。 请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! #include #include #define N 5 #define M 8 int fun(char (*ss)[M],char *t) { int i; /**********found**********/ for(i=0; i< __1__ ; i++) /**********found**********/ if(strcmp(ss[i],t)==0 ) return __2__ ; return -1; } main() { char ch[N][M]={"if","while","switch","int","for"},t[M]; int n,i; printf("\nThe original string\n\n"); for(i=0;i #define N 4 void fun(int (*a)[N], int *b) { int i,j; for(i=0; i #include #include int fun(char *s) { char *lp,*rp; /**********found**********/ lp= __1__ ; rp=s+strlen(s)-1; while((toupper(*lp)==toupper(*rp)) && (lp #define N 5 typedef struct student { long sno; char name[10]; float score[3]; } STU; void fun(char *filename, long sno) { FILE *fp; STU n; int i; fp = fopen(filename,"rb+"); /**********found**********/ while (!__1__) { fread(&n, sizeof(STU), 1, fp); /**********found**********/ if (n.sno__2__) break; } if (!feof(fp)) { for (i=0; i<3; i++) n.score[i] += 3; /**********found**********/ fseek(fp, -1L*__3__, SEEK_CUR); fwrite(&n, sizeof(STU), 1, fp); } fclose(fp); } main() { STU t[N]={ {10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88}, {10003,"LiSi", 85, 70, 78}, {10004,"FangFang", 90, 82, 87}, {10005,"ZhangSan", 95, 80, 88}}, s
/
本文档为【二级C语言基本题库】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索