2014年9月二级C语言上机题库
2013年9月二级C语言上机考试题库精简版制作虾米小鹏
使用说明:这套题和今年3月的使用方法一样你,以填空题题干(即题目要求)作为查找参照,上机题分为填空题、改错题、编程题;如果你的考试填空题的题目和这题库中给出的某一道填空题的题目的题干一致,那么你的改错题、编程题的答案也都在下面。注:1、请在纯英文输入法状态下答题2、当出现“==”是指连续输入两个等于号=,当出现--是连续输入两个减号,2、建议不要使用复制和粘贴,在纯英文状态下手动输入。“||”用“Shift+\”即可打出。
特别注意:找到相应的题之后不要完全照抄答案,对照前后信息,只要选取答案所需要的部分,切记重复填写或多填答案所不需要的部分!
第一套:程序填空
程序通过定义学生结构体数组,存储了若干个学生的学号、姓名和三门课的成绩。函数fun的功能是将存放学生数据的结构体数组,按照姓名的字典序(从小到大排序)。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
(1) struct student t;
(2)for(i=0;i (3) if(strcmp(a[i].name,a[j].nam e)>0) 程序修改 (1) q=p+i; (2) while(q>p) 程序设计 int fun(STREC *a,STREC *b,int l,int h) {int i,j=0; for(i=0;i if((a[i].s>=1&&a[i].s<=h) b[j++]=a[i]; return j; } 第二套程序填空给定程序中已建立一个带有头结 点的单向链表,链表中的各结点 按数据域递增有序连接。函数fun 的功能是:删除链表中数据域值 相同的结点,使之只保留一个。 (1) free(q); (2) q=p->next; (3) q=q->next; 程序修改(1) p=j; (2) p=i; 程序设计 void fun(int m,int *a,int *n) { int i; *n=0; for(i=7;i<=m;i++) if((i%7==0)||(i%11==0)) a[(*n)++]=i; } 第三套程序填空 函数fun的功能是:逆置数组元 素是的值。例如:若a所指数组 中的数据依次为:1、2、3、4、5、 6、7、8、9,则逆置后依次为:9、 8、7、6、5、4、3、2、1。形参 n给出数组中数组中数据的个数。 (1) for(i=0;i a[i]=a[n-1-i]; (3) a[n-i-1]=t; 程序修改(1) n=*p-‘0’; (2) n=n*8+*p-‘0’; 程序设计 STREC fun(STREC*a,char *b) { STREC c; Int i; c.num[0]=’\0’; c.s=-1; for(i=0;i if(strcmp(a[i].num,b)==0) {strcpy(c.num,a[i].num); c.s=a[i].s;break;} return c; } 第四套程序填空 给定程序中,函数fun的功能是: 在带有头结点的单向链表中,查 找数据域中值为ch的结点。找到 后通过函数值返回该结点在链表 中所处的顺序号:若不存在值为 ch的结点,函数值返回0. (1) while(p!=0) (2) if(p->data==ch)return n; (3) k=fun(head,ch); 程序修改(1) for(i=0,t=0;p[i];i++) (2) c[t]=’\0’; 程序设计 void fun(char *ss) { int i; for(i=1;i {if(ss[i]>=’a’&&ss[i]<=’z’) ss[i]-=32; } } 第五套程序填空 给定程序中,函数fun的功能是: 计算下式前n项的和作为函数值 返回。例如:当形参n的值为10 的时,函数返回:9.6125588。 (1) s=0; (2) for(i=1;i<=n;i++) (3) s=s+(2.0*i-1)*(2.0*i+1)/(t*t ); 程序修改(1) for(i=0;str[i];i++) (2) if(substr[k+1]==’\0’) 程序设计 double fun(double eps) { double s=1,t=1./3; int n=1; while(t>=eps) {s+=t;n++;t=t*n/(2.0*n+1) ;} return(s*2.0); } 第六套程序填空 给定程序中,函数fun的功能是: 将形参s所指定字符串中所有的 字母字符顺序前移,其他字母顺 序后移,处理后字符串的首地址 作为函数值返回。 (1) t[j]=s[i];j++; (2) for(i=0;i t[j+i]=p[i]; (3) t[j+k]=0; 程序修改(1) while(*w) (2) if(*r==*p) 程序设计 void fun(char *s,char t[]) { int i,j=0; for(i=0;i if(s[i]%2==0)t[j++]=s[i]; t[j]=0; } 第七套程序填空 程序通过定义学生结构体变量, 存储了学生的学号、姓名和三门 课的成绩。函数fun的功能是将 形参a所指结构体变量s中的数 据进行修改,并把a中地址作为 函数值返回主函数,在主函数中 输出修改后的数据。 (1) struct student * fun(struct student*a) (2) for(i=0;i<3;i++) a->score[i]+=1; (3) return a; 程序修改(1) char *fun(char (*sq)[M]) (2) return sp; 程序设计 #include void fun(int a,int b,long *c) { *c=(b%10)*1000+(a/10)*100+ (b/10)*10+a%10; } 第八套程序填空 函数fun的功能是:将形参观者 工所指数组中的前半部分元素中 的值和后半部分元素中的值对 换。形参n中存放数组中数据的 个数,若n为奇书,则中间元素 不动。 (1) p=(n%2==0)?n/2:n/2+1; (2) a[i]=a[p+i]; (3) a[p+i]=t; 程序修改(1) float k; (2) if(*a<*c) 程序设计 int fun(STREC *a,STREC *b) { int i,max=a[0].s,n=0;