资源描述:
《计算机等级考试二级上机模拟试题(1)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、上机考试模拟试题(1)一、填空题s为一个字符序列,请补充fun函数,该函数的功能是:查找s中值为a的元素,返回找到值为a的元素个数,并把这些值为a的元素下标依次保存在数组str中。例如,在“testtest”中查找“e”,结果为2,下标依次为1、5。请勿改动主函数main与其他函数中的任何内容,仅在fun函数的横线上填写所需的若干表达式或语句。注意:部分源程序给出如下。#include#include#defineM100intstr[M];intfun(char*s,ch
2、arch){inti=0,n=0;chart=ch;char*p=s;while(*p){if(____1____)____2____;p++;i++;}return_____3_____;}main(){chars[M];charch;inti,n;printf("PleaseInputtheoriginalstring");gets(s);printf("TheOriginalstringis:");puts(s);printf("Inputcharacter");n=fun(s,ch);pr
3、intf("Thenumberofcharacteris:%d",n);printf("Thepositionofcharacter:");for(i=0;i4、序的结构。#includelongfun(intm){/*******error*********/switch(m);{case0:return0:/********error********/case1:case2:return1:}return(fun(m-l)+fun(m-2));}main(){longa;intn;printf("Inputn:");scanf("%d",&n);printf("n=%d",n);a=fun(n);printf("a=%d",a);}三
5、、编程题请编写函数fun,该函数的功能是:删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,若一维数组中的数据是:1,1,1,2,2,3,3,3,3,4删除后,数组中的内容应该是:1,2,3,4请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。注意:部分源程序给出如下。#include#defineM100intfun(intb[],intm){}main(){intb[M]={1,1,
6、1,2,2,3,3,3,3,4),i,m=10;FILE*out;printf("Theoriginaldata:");for(i=0;i7、)参考答案及解析一、填空题[答案](1)*p==t(2)str[n++]=i(3)n[解析](1)本题中函数功能是查找s中值为a的元素。(2)从已给部分源程序的main主函数开始入手,“n=fun(s,ch);”语句调用fun函数,实现本题要求。(3)进入fun函数,利用while循环对字符串中的每一个字符进行判断。第一空:判断字符串s中的字符是否等于输入的字符ch,根据while循环中的循环条件“*p”和fun函数中的t、p定义、赋值,得知这里的if判断表达式应该是“*p==t”。第二空:如果符合上面的if
8、判断表达式,这里应该根据题干要求对字符标识存储在数组str中,即“str[n++]=i”。第三空:函数fun返回的是在字符串中查找到相同字符的个数,根据语句“str[n++]=i;”知道,相同的字符个数为数组str的大小,即第三空填“n”。二、改错题[答案](1)switch(m)(2)case1:[解析]本题中函数的功能是用递归算法计算斐波拉契级数数列中第n项的值。本题主要是对于switch-ca