当前位置:首页 > 2012年9月计算机二级c语言上机题库
#define N 20
void fun(int *a,int n) {
int I,m,t,k;
/**********found**********/ for(i=0;i for(k=I;k /**********found**********/ k=m; t=a[i];a[i]=a[m];a[m]=t; } } main() { int x,b[N]={11,5,12,0,3,6,9,7,10,8}, n=10,I; system(\ for(i=0;i for(i=0;i (1)将for(i=0;i (2)将k=m; 改为:m=k;3.程序设计题 给定程序中,函数fun的功能是:把形参str所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注意:字符串的长度大于等于2)。 注意:部分源程序已给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。 #include } main() { char str[100]=\ printf(\ fun(str); printf(\ }【答案】 int i,n,j; char c; n=0; for(i=0;str[i]!='\\0';i++) n++; if(n%2==0) j=n-1; else j=n-2; c=str[j]; for(i=j-2;i>=1;i=i-2) str[i+2]=str[i]; str[1]=c; 第十四套 1.程序填空题 给定程序中通过定义学生结构体变量存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将该学生的结构体变量整体赋值,修改新变量中的学号和姓名并打印出来。 例如:若 a={10001,\,则结果为:b={10002,\。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! #include 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___, \ printf(\学号:%d 姓名:%-8s 各科成绩:\ for(i=0;i<3;i++) /**********found**********/ printf(\ printf(\ } void main() { struct student s={10001,\ int I; printf(\学号:%d 姓名:%-8s 各科成绩:\ for(i=0;i<3;i++) printf(\ printf(\ fun(s); }【答案】 (1)a (2)b.name (3)score[i]2.程序修改题 下列给定程序中,函数fun的功能是:逐个比较x、y两个字符串对应位置中的字符,把ASCII相等或值小的字符依次存放到z数组中,形成一个新的字符串。例如,若x中的字符串为AbceDEfG,y中的字符串为ABdefgC,则z中的字符串应为ABceDEC。 请改正程序中的错误,使其能得到正确的结果。 注意:不要改动main函数,不能增行或删行,也不得更改程序的结构。 #include void fun(char *a,char *b,char *z) { /*******found*********/ int i=1; /*******found*********/ while(*a!=*b) { if(*a>*b) z[i]=*b; else z[i]=*a; if(*a) a++; if(*b) b++; i++; } } main() { char x[10]=\ fun(x,y,z); printf(\ puts(x); printf(\ puts(y); printf(\ puts(z); }【答案】 (1)将int i=1;改为:int i=0; (2)将while(*a!=*b)改为:while(*a || *b)3.程序设计题 函数fun的功能是:将两个三位数的正整数a、b合并形成一个长整数在c中。合并的方式是:将a数的百位、十位和个位放在c数的十万位、千位和十位上,b数的百位、十位和个位放在c数的万位、百位和个位上。 例如:当a=456,b=123,调用该函数后c=415263。 注意:部分源程序已给出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include } main() /* 主函数 */ { int a,b; long c; system(\ printf(“Input a,b:”); scanf(“%d%d”,&a,&b); fun(a,b,&c); printf(\ }【答案】 void fun(int a,int b,long *c) { *c=a/100; *c=*c*10+b/100; *c=*c*10+(a/10); *c=*c*10+(b/10); *c=*c*10+a; *c=*c*10+b; } 第十五套 1.程序填空题 请补充函数fun,该函数的功能是建立一个带头结点的单向链表并输出到文件file.dat和屏幕上,各结点的值为对应的下标,链表的结点数及输出的文件名作为参数传入。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:不得增行或删行,也不得更改程序的结构! #include int data; struct s *next; }NODE; void fun(int n,char *filename) { NODE *h,*p,*s ; FILE *f; int I; h=p=(NODE *)malloc(sizeof(NODE)); h->data=0; for(i=1;i s=(NODE *)malloc(sizeof(NODE)); s->___1___; ___2___; p=___3___; } p->next=NULL; if((f=fopen(filename,\ { printf(\ exit(0); } p=h; fprintf(f,\ printf(\ while(p) { fprintf(f,\ printf(\ if(p->next!=NULL)
共分享92篇相关文档