if(i%2!
=0&&s[i]%2!
=0)
{t[j]=s[i];/*将下标为奇数同时ASCII码值为奇数的字符放入数组t中*/
j++;
}
t[j]='\0';/*最后加上结束标识符*/
}
二级C_第8套上机题
一、程序填空题
程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。
函数fun的功能是:
将形参a所指结构体变量s中的数据进行修改,并把a的地址作为函数值返回主函数,从主函数中输出修改的数据。
例如,a所指变量s中的学号、姓名和三门课的成绩依次是:
10001、"ZhangSan"、95、80、88,修改后输出t中的数据应为:
10002、"LiSi"、96、81、89。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)structstudent*
(2)a->score[i] (3)a
二、程序修改题
下列给定程序中函数fun的功能是:
从N个字符串中找出最长的串,并将其地址作为函数值返回。
各字符串在主函数中输入,并放入一个字符串数组中。
请改正程序中的错误,使它能得出正确的结果。
注意:
部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!
【参考答案】
(1)char*fun(char(*sq)[M])
(2)returnsp;
三、程序设计题
编写函数fun,其功能是:
将a、b中的两个两位正整数合并成一个新的整数放在c中。
合并的方式是:
将a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的十位和千位上。
例如,当a=45,b=12,调用该函数后c=2415。
注意:
部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
【参考答案】
voidfun(inta,intb,long*c)
{
*c=a%10+(b/10)*10+(a/10)*100+(b%10)*1000;
}
二级C_第9套上机题
一、程序填空题
程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。
函数fun的功能是:
将形参a中的数据进行修改,把修改后的数据作为函数值返回主函数进行输出。
例如,若传给形参a的数据中学号、姓名和三门课的成绩依次是:
10001、"ZhangSan"、95、80、88,修改后的数据应为:
10002、"LiSi"、96、81、89。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)structstudent
(2)a.name
(3)a.score[i]
二、程序修改题
假定整数数列中的数不重复,并存放在数组中。
下列给定程序中函数fun的功能是:
删除数列中值为x的元素。
变量n中存放数列中元素的个数。
请改正程序中的错误,使它能得出正确的结果。
注意:
部分源程序在文件MODI1.C中,不得增行或删行,也不得更改的程序的结构!
【参考答案】
(1)if(p==n)return-1;
(2)a[i]=a[i+1];
三、程序设计题
编写函数fun,其功能是:
将两个两位数的正整数a、b合并成一个整数放在c中。
合并的方式是:
将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。
例如,当a=45,b=12时,调用该函数后,c=1524。
注意:
部分源程序在文件PROG1.C中。
数据文件IN.DAT中的数据不得修改。
请勿动改主函数的main和其它函数中的任何内容,仅在函数fun的花括号填入你编写的若干语句。
【参考答案】
voidfun(inta,intb,long*c)
{
*c=a/10+(b%10)*10+(a%10)*100+(b/10)*1000;
}
二级C_第10套上机题
一、程序填空题
下列给定程序中,函数fun的功能是:
在形参s所指字符串中的每个数字字符之后插入一个*号。
例如,形参s所指的字符串为"def35adh3kjsdf7",执行后结果为"def3*5*adh3*kjsdf7*"
注意:
部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)&&
(2)0或'\0' (3)s[j]或*(s+j)
二、程序修改题
下列给定程序中函数fun的功能是:
根据整型形参m,计算如下公式的值。
例如,若m的值为5,则应输出1.463611。
请改正程序中的错误,使它能得出正确的结果。
注意:
部分源程序在文件MODI1.C中,不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)for(i=2;i<=m;i++)
(2)y+=1.0/(i*i);或y+=(double)1.0/(i*i)
三、程序设计题
编写函数fun,其功能是:
实现B=A+A',即将矩阵A加上A的转置,存放在矩阵B中。
计算结果在main函数中输出。
例如,输入下面的矩阵:
其转置矩阵为:
程序输出:
注意:
部分源程序在文件PROG1.C中。
请勿请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
【参考答案】
voidfun(inta[3][3],intb[3][3])
{
inti,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
b[i][j]=a[i][j]+a[j][i];/*把矩阵a加上a的转置,存放在矩阵b中*/
}
二级C_第11套上机题
一、程序填空题
给定程序中,函数fun的功能是:
判断形参s所指字符串是否是"回文"(Palindrome),若是,函数返回值为1;不是,函数返回值为0。
"回文"是正读和反读都一样的字符串(不区分大小写字母)。
例如,LEVEL和Level是"回文",而LEVLEV不是"回文"。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:
部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)s
(2)-- (3)return0
二、程序修改题
下列给定程序中,函数fun的功能是:
求出如下分数列的前n项之和。
和值通过函数值返回main函数。
例如,若n=5,则应输出8.391667。
请改正程序中的错误,使它能得出正确的结果。
注意:
部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!
【参考答案】
(1)doublefun(intn)
(2)s=s+(double)a/b;
三、程序设计题
请编写一个函数voidfun(intm,intk,intxx[]),该函数的功能是:
将大于整数m且紧靠m的k个素数存入所指的数组中。
例如,若输入17,5,则应输出19、23、29、31、37。
注意:
部分源程序在文件PROG1.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
【参考答案】
voidfun(intm,intk,intxx[])
{
inti,j,n;
for(i=m+1,n=0;n{for(j=2;j
if(i%j==0)break;
if(j>=i)/*如果是素数,放入数组xx中*/
xx[n++]=i;
}
}
二级C_第12套上机题
一、程序填空题
函数fun的功能是:
统计长整数n的各位上出现数字1、2、3的次数,并用外部(全局)变量c1、c2、c3返回主函数。
例如,当n=123114350时,结果应该为:
c1=3c2=1c3=2。
注意:
部分源程序在文件BLANK1.C中。
请勿改动main函数和其他函数中的任何内容,仅在函数fun的横线上填入所编写的若干表达式或语句。
【参考答案】
(1)n%10
(2)break (3)break
二、程序修改题
下列给定程序中,函数fun实现的功能是:
统计一个无符号整数中各位数字值为0的个数,通过形参传回主函数,并把该整数中各位上最大的数字值作为函数值返回。
例如,若输入无符号整数30800,则数字值为0的位的个数为3,各位上数字值最大的是8。
请改正函数fun中的错误,使它能得出正确的结果。
注意:
部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构。
【参考答案】
(1)if(t==0)
(2)*zero=count;
三、程序设计题
请编写函数fun,其功能是:
计算并输出下列多项式的值。
例如,在主函数中从键盘为n输入50后,输出为S=1.718282。
注意:
要求n的值在大于1但不大于100之间。
部分源程序在文件PROG1