计算机二级c语言(操作题105套其余参考)
2013年9月全国计算机等级考试二级C语言上机题库
(本题库中个别字母大小写没调整好,用时请注意)
第1套
1 程序填空
下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为函数值返回。
例如,输入一个整函数返回值为64862。
第1处0
第2处 10*x
第3处 n/10;
2 程序修改
下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数,t中的数为7531。
/**found**/
*t=0;
/**found**/
if (d%2!=0)
3 程序设计
编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串的后面。
例如,分别输入下面两个字符串:
FirstString--
SecondString
程序输出:
FirstString--SecondString
答案
void fun (char p1[], char p2[])
{
int i,j;
for(i=0;p1[i]!=’\0’;i++)
for(j=0;p2[i]!=’\0’;j++)
p1[i++]=p2[j];
p1[i]=‘\0’;
}
第2套
1 程序填空
下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放在a[2]中,把a所指数组元素中的次大值放在a[3],以此类推。
例如,若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7;则按规则移动后,数据排列为:1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数据的个数。
第1处a[i];
第2处a[j]
第3处a[j]
2 程序修改
下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、8、13、21、……
例如,若给n输入7,则该项的斐波拉契数值为13。
/**found**/
去掉分号或者switch(g)
/**found**/
case 1:case 2:return 1;
3 程序设计
某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数fun,其功能是:求出该学生的平均分,并放入记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。
void fun(STREC *a)
{ int i;
a->ave=0.0;
for(i=0;i
a->ave=a->ave+a->s[i];
a->ave/=N
}
第3套
1. 程序填空
下列给定程序中,函数fun的功能是进行数字字符转换。若形参ch中是数字字符'0'~'9',则将'0'转换成'9','1'转换成'8','2'转换成'7',……,'9'转换成'0';若是其它字符则保持不变;并将转换后的结果作为函数值返回。
第一处 char
第二处 ch<=’9’
第三处‘0’
2. 程序修改
下列给定程序中函数fun的功能是:将p所指字符串中的所有字符复制到b中,要求每复制三个字符之后插入一个空格。
例如,若给a输入字符串:ABCDEFGKHIJK,调用函数后,字符数组b中的内容为:ABC DEF GHI JK。
/**found**/
b[k]=*p;
/**found**/
b[k]=’ ‘;k++;
3. 程序设计
N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。请编写函数fun,其功能是:求出平均分,并由函数值返回。
例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78.625。
double fun(STREC *h)
{
double av=0.0;
STREC *p=h->next;
while(p!=NULL)
{
av=av+p->s;
p=p->next;
}
av/=n;
return av;
}
第4套
1 程序填空
下列给定程序中,函数fun的功能是:求ss所指字符串数组中长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在形参n所指的变量中。ss所指字符串数组中共有M个字符串,且串长小于N。
第1处 M