admin 管理员组文章数量: 1086019
2024年3月22日发(作者:航空研究生培训编程靠谱吗)
国家计算机二级考试C语言100套上机题
第一套
1.下列给定程序中,函数fun的功能是计算如下公式
直到,并且把计算结果作为函数值返回。
例如,若形参e的值为1e-3,则函数返回值为0.551690。请在
下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
(1)3.0或(double)3(2)>(3) (t+1)
2.下列给定程序中函数fun的功能是:求出如下分数序列的前n项
之和。和值通过函数值返回。
例如,若n=5,则应输出8.391667。
请改正程序中的错误,使其得出正确的结果。
(1)double fun(int n)
(2)s=s+(double)a/b;
3.请编写函数fun,其功能是:找出2×M整型二维数组中最大元
素的值,并将此值返回调用函数。
int fun (int a[ ][M])
{
int i,j,max=a[0][0];
for(i=0;i<2;i++)
for(j=0;j
max=a[i][j];
return max;
}
第二套
1.下列给定程序中,函数fun的功能是:计算如下公式前n项的和
并作为函数值返回。
例如,当形参n的值为10时,函数返回值为9.612558。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确
的结果。
(1) 0(2) n(3) (t*t)
2.下列给定程序中函数fun的功能是:统计substr所指的子符串
在str所指的字符串中出现的次数。
例如,若字符串为aaas 1kaaas,子字符串为as,则应输出2。
请改正程序中的错误,使它能得出正确的结果。
(1)for(i=0;str[i];i++)
(2)if(substr[k+1]==′0′)
3.编写函数fun,其功能是:根据以下公式求π的值(要求精度
0.0005,即某项小于0.0005时停止迭代)。
程序运行后,若输入精度0.0005,则程序应输出为3.14…。
double fun( double eps)
{
double s=1.0,s1=1.0;
int n=1;
while(s1>=eps)/*当某项大于精度要求时,继续求下一项*/
{s1=s1]s=s+s1;/*求和*/
n++;
}
return 2]
第三套
1.给定程序中,函数fun的功能是:统计形参s所指的字符串中数
字字符出现的次数,并存放在形参t所指的变量中,最后在主函数中输
出。例如,若形参s所指的字符串为abcdef35adgh3kjsdf7,则输出
结果为4。
请在下划线处填入正确内容并将下划线删除,使程序得出正确的
结果。
(1) s[i](2) '9'(3)*t=n
2.下列给定程序中函数fun的功能是:实现两个变量值的交换,规
定不允许增加语句和表达式。
例如,变量a中的值原为8,b中的值原为3,程序运行后a中的
值为3,b中的值为8。
请改正程序中的错误,使它得出正确的结果。
(1)t =*x ; *x =y ;
(2)return(t) ;或return t;
3.编写函数fun,其功能是:求出1到1000之间能被7或11整
除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组
中,通过n返回这些数的个数。
void fun(int *a,int *n)
{
int i,j=0;
for(i=1;i<=1000;i++) /*求1到1000之内能被7或11整
除但不能同时被7和11整除的所有整数,并放入数组a中*/
if((i%7==0||i%11==0)&&i%77!=0)
a[j++]=i;
*n=j;/*传回满足条件的数的个数*/
}
第四套
1.下列给定程序中,函数fun的功能是:把形参a所指数组中的奇
数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把偶数从数组中删
除,奇数个数通过函数值返回。
例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、
5、8、7,删除偶数后a所指数组中的数据为:9、1、3、5、7,返回
值为5。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确
的结果。
(1)1(2) j++(3)j
2.下列给定程序中函数fun的功能是:求两个非零正整数的最大公
约数,并作为函数值返回。
例如,若num1和num2分别为49和21,则输出的最大公约数
为7;若num1和num2分别为27和81,则输出的最大公约数为27。
请改正程序中的错误,使它能得出正确结果。
(1) t=a;a=b;b=t;
(2) return(b);或return b;
3.规定输入的字符串中只包含字母和*号。编写函数fun,其功能
是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字
符串函数。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后字
符串中的内容应当是:ABCDEFG。
void fun(char *a)
{
int i,j=0;
for(i=0;a[i]!=′0′;i++)
if(a[i]!=′*′)
a[j++]=a[i];/*若不是要删除的字符′*′则留下*/
a[j]=′0′;/*最后加上字符串结束符′0′*/
}
第五套
1.下列给定程序中,函数fun的功能是:将形参n中,各位上为偶
数的数取出,并按原来从高位到低位相反的顺序组成一个新数,作为
函数值返回。
例如,输入一个整数27638496,函数返回值为64862。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确
的结果。
(1)0(2) 10]
2.下列给定程序中函数fun的功能是:将长整型数中各位上为奇数
的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。
例如,当s中的数为87653142时,t中的数为7531。
请改正程序中的错误,使它能得出正确的结果。
(1)*t=0;
(2)if(d%2!=0)或if(d%2==1)
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++); /*求出的i为p1字符串的总长度,
包括结束标记符*/
for(j=0;p2[j]!=′0′;j++)
p1[i++]=p2[j];/*将p2字符串连在p1字符串后面*/
p1[i]=′0′;/*在字符串最后加上结束标记符*/
}
第六套
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所指数组中数据的个数。
规定fun函数中的max存放当前所找的最大值,px存放当前所找
最大值的下标。请在下划线处填入正确的内容并将下划线删除,使程
序得出正确的结果。
(1) a[i](2) a[j](3) a[j]
2.下列给定程序中函数fun的功能是:用递归算法计算斐波拉契数
列中第n项的值。从第1项起,斐波拉契数列为:1、1、2、3、5、
8、13、21、……
例如,若给n输入7,则该项的斐波拉契数值为13。
请改正程序中的错误,使它能得出正确结果。
(1) 去掉分号
(2) case 1:case2: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=a->ave/N;/*求平均分*/
}
第七套
1.下列给定程序中,函数fun的功能是进行数字字符转换。若形参
ch中是数字字符'0'~'9',则将'0'转换成'9','1'转换成'8','2'转换成
'7',……,'9'转换成'0';若是其它字符则保持不变;并将转换后的结
果作为函数值返回。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确
的结果。
(1) char(2) ch<='9'(3) '0'
2.下列给定程序中函数fun的功能是:将p所指字符串中的所有
字符复制到b中,要求每复制三个字符之后插入一个空格。
例如,若给a输入字符串:ABCDEFGKHIJK,调用函数后,字符
数组b中的内容为:ABC DEF GHI JK。
请改正程序中的错误,使它能得出正确结果。
(1) b[k]=*p;
(2) b[k]=′′;k++;
3.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,
h指向链表的
头节点。请编写函数fun,其功能是:求出平均分,并由函数值返
回。
例如,若学生的成绩是:8576698591726487,则平均分应当是:
78.625。
double fun(STREC *h)
{
double av=0.0;
STREC *p=h->next;/*p直接指向"头结点"的下一个结点,即
第一个成绩*/
while(p!=NULL)
{av=av+p->s;/*求总分数*/
p=p->next;
}
return av/N;/*返回平均值*/
}
第八套
1.下列给定程序中,函数fun的功能是:求ss所指字符串数组中
长度最短的字符串所在的行下标,作为函数值返回,并把其串长放在
形参n所指的变量中。ss 所指字符串数组中共有M个字符串,且串长
请在下划线处填入正确的内容并将下划线删除,使程序得出正确
的结果。
(1) M(2) <(3) k
2.下列给定程序中函数fun的功能是:将tt所指字符串中的小写
字母全部改为对应的大写字母,其它字符不变。
例如,若输入"Ab,cD",则输出"AB,CD"。
请改正程序中的错误,使它能得出正确的结果。
(1)if(( tt[i]>=′a′)&&( tt[i] <=′z′)
(2)tt[i]-=32;
3.编写函数fun,其功能是:将所有大于1小于整数m的非素数
存入xx所指数组中,非素数的个数通过k返回。
例如,若输入17,则应输出:46891012141516。
void fun(int m, int *k, int xx[])
{
int i,j,n=0;
for(i=4;i<="" bdsfid="225" p="">
{for(j=2;j
if(i%j==0) break;
if(j<="">
}
*k=n;/*返回非素数的个数*/
}
第九套
1.下列给定程序中,函数fun的功能是:将s所指字符串中的所有
数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符
串原有的次序。
例如,s所指的字符串为def35adh3kjsdf7,执行后结果为
defadhajsdf3537。
请在程序的下划线处填入正确的内容把下划线删除,使程序得出
正确的结果。
(1)j++或j+=1或++j或j=j+1
(2)s[i]=t1[i](3) j
2.下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行
升序排列。
请改正程序中的错误,使它能得出正确的结果。
(1)for (j =I +1; j < 6; j++)
(2)(pstr +I) =*(pstr +j) ;
3.编写函数fun,其功能是:求ss所指字符串中指定字符的个数,
并返回此值。例如,若输入字符串123412132,输入字符为1,则输
出3。
int fun(char *ss, char c)
{
int i=0;
for(;*ss!=′0′;ss++)
if(*ss==c)
i++;/*求出ss所指字符串中指定字符的个数*/
return i;
}
第十套
1.下列给定程序中已建立一个带头结点的单向链表,链表中的各
结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形
参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的
数据仍保持递增有序。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确
的结果。
(1)x(2)p(3)s
2.下列给定程序中函数fun的功能是:计算正整数num各位上的
数字之积。
例如,若输入252,则输出应该是20。若输入202,则输出应该
是0。
请改正程序中的错误,使它能得出正确的结果。
(1)long k=1;
(2)num /=10;
3.编写函数fun,其功能是:计算n门课程的平均分,结果作为函
数值返回。
例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值
为:71.80。float fun (float *a, int n)
{
float av=0.0;
int i;
for(i=0;i<="" bdsfid="268" p="">
av=av+a[i];
return (av/n);/*返回平均值*/
}
第十一套
1.下列给定程序中,函数fun的功能是:将形参a所指数组中的前
半部分元素中的值与后半部分元素中的值对换。形参n中存放数组中
数据的个数,若n为奇数,
则中间的元素不动。
例如:若a所指数组中的数据为:1、2、3、4、5、6、7、8、9,
则调换后为:6、7、8、9、5、1、2、3、4。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确
的结果。
(1)1(2) i(3) a[p+i]或*(a+p+i)
2.下列给定程序中函数fun的功能是:把从主函数中输入的3个
数,最大的数放在a中,中间的数放在b中,最小的数放在c中。
例如,若输入的数为:551234,输出的结果应当是:a=55.0,b
=34.0,c =12.0。
请改正程序中的错误,使它能得出正确的结果。
(1)float k;
(2)if(*a< *c)
3.学生的记录由学号和成绩组成,N名学生的数据已放入主函数
中的结构体数组s中,请编写函数fun,其功能是:把分数最高的学生
数据放在b所指的数组中。注意:分数最高的学生可能不止一个,函
数返回分数最高的学生的人数。
int fun (STREC *a, STREC *b)
{
int i,j=0,max=a[0].s;
for(i=0;i
if(max<="" p="">
/*找出最大值*/
for(i=0;i
if(max==a[i].s) b[j++]=a[i];/*找出成绩与max相等的学
生的记录,存入结构体b中*/
return j;/*返回最高成绩的学生人数*/
}
第十二套
1.下列给定程序中,函数fun的功能是:从形参ss所指字符串数
组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。
ss所指字符串数组中共有N 个字符串,且串长小于M。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确
的结果。
(1) N(2) k(3) ss[i]
2.下列给定程序中函数fun的功能是:逐个比较p、q所指两个字
符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所
指的数组中,形成一个新的字符串。
例如,若主函数中a字符串为aBCDeFgH,b字符串为ABcd,则
c中的字符串应为aBcdeFgH。
请改正程序中的错误,使它能得出正确的结果。
(1) int k =0;
(2)while (*p||*q)
3.规定输入的字符串中只包含字母和*号。请编写函数fun,其功
能是:除了字符串前导的*号之外,将串中其它*号全部删除。在编写
函数时,不得使用C语言提供的字符串函数。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,
字符串中的内容应当是:****ABCDEFG。
void fun(char *a)
{
int i=0;
char *p=a;
while(*p&&*p==′*′)
{
a[i]=*p;i++;p++;
}
while(*p)
{
if(*p!=′*′)
{
a[i]=*p;i++;
}
p++;
}
a[i]=′0′;
}
第十三套
1.下列给定程序中,函数fun的功能是:把形参s所指字符串中下
标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符
绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度
大于等于2)。
例如,形参s所指字符串为abcdefgh,执行结果为ahcbedgf。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确
的结果。
(1) 1(2) s[k]或*(s+k)(3) c
2.下列给定程序中fun函数的功能是:求表达式
s=aa…aa-…-aaa -aa -a
(此处aa…aa表示n个a,a和n的值在1至9之间)
例如,a=3,n=6,则以上表达式为:
s=333333-33333-3333-333-33-3
其值是296298。
a和n是fun函数的形参,表达式的值作为函数值传回main函
数。
请改正程序中的错误,使它能计算出正确的结果。
(1)long s=0, t=0;
(2)t=t/10;
3.编写函数void fun(char *tt,int pp[]),统计在tt所指的字符串
中'a'到'z'26个小写字母各自出现的次数,并依次放在pp所指的数组
中。
例如,当输入字符串abcdefgabcdeabc后,程序的输出结果应该
是:
3 3 3 2 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
void fun(char *tt, int pp[])
{
int i;
for(i=0;i<26;i++)
pp[i]=0;/*初始化pp数组各元素为0]=′0′;tt++)
if(*tt>=′a′&&*tt<=′z′)
pp[*tt-′a′]++;
}
第十四套
1.下列给定程序中,函数fun的功能是:在形参ss所指字符串数
组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组
中的位置(即下标值),若未找到则返回-1。ss所指字符串数组中共有
N个内容不同的字符串,且串长小于M。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确
的结果。
(1)N(2)N-1(3) 0
2.下列给定程序中函数fun的功能是:从整数1到55之间,查找
能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组
中,这些数的个数作为函数值返回。规定函数中al放个位数,a2放十
位数。
请改正程序中的错误,使它能得出正确的结果。
(1)a2=k/10;
(2)return i;
3.规定输入的字符串中只包含字母和*号。请编写函数fun,其功
能是:将字符串尾部的*号全部删除,前面和中间的*号不动。
例如,字符串中的内容为:****A*BC*DEF*G*******,删除后,
字符串中的内容应当是:****A*BC*DEF*G。在编写函数时,不得使用
C语言提供的字符串函数。
void fun (char *a)
{
while(*a!=′0′)
a++;
a--;/*指针a指向字符串的尾部*/
while(*a==′*′)
a--;/*指针a指向最后一个字母*/
*(a+1)=′0′;/*在字符串最后加上结束标志符*/
}
第十五套
1.下列给定程序中已建立了一个带头结点的单向链表,在main函
数中将多次调用fun函数,每调用一次,输出链表尾部结点中的数据,
并释放该结点,使链表缩短。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确
的结果。
(1)next(2) t->data(3) t
2.下列给定程序中函数fun的功能是:将字符串中的字符逆序输出,
但不改变字符串中的内容。
例如,若字符串为abcd,则应输出:dcba。
请改正程序中的错误,使它能得出正确的结果。
(1)void fun(char *a)
(2)printf("%c" ,*a) ;
3.编写函数fun,其功能是:比较字符串的长度,(不得使用C语
言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符
长度相同,则返回第一个字符串。
例如,输入beijingshanghai(为回车键),函数将返回shanghai。
char *fun(char *s, char *t)
{
int i,j;
for(i=0;s[i]!=′0′;i++); /*求字符串的长度*/
for(j=0;t[j]!=′0′;j++);
if(i>=j)/*比较两个字符串的长度*/
return s;/*函数返回较长的字符串,若两个字符串长度相等,则
返回第1个字符串*/
else
return t;
}
第十六套
1.下列给定程序中,函数fun的功能是:逆置数组元素中的值。例
如:若a所指数组中的数据为:1、2、3、4、5、6、7、8、9,则逆
置后依次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据
的个数。
请在下划线处填入正确的内容并将下划线删除,使程序得出正确
的结果。
(1) n/2(2) i(3) a[n-i-1]
2.下列给定程序中函数fun的功能是:将一个由八进制数字字符组
版权声明:本文标题:国家计算机二级考试C语言100套上机题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1711048194a585822.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论