2014年全国计算机二级c语言考试真题,2014年全国计算机二级C语言上机最后冲刺试题及答案 3...

一、程序填空题

请补充函数proc(),该函数可以统计一个长度为n的字符串在另一个字符串中出现的次数。例如,假定输入的字符串为:fjdkad**fdadf fdadjkfdad,子字符串为ad,则应输出4。

注意:部分源程序给出如下。

请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的横线上填入所编写的若干表达式或语句。

试题程序:

#include

#include

#include

#include

int proc(char*str.char*sub)

{

int n;

char*P,*r;

n=0:

while(*str)

{

p=str;

r=sub:

while(【1】)

if(*r==*p)

{

r++:

p++;

}

else

【2】 ;

if(*r==’\0’)

n++;

str++;

}

return 【3】 ;

}

void main()

{

char str[81],sub[3];

int n;

system("CLS"):

printf("输入主字符串:");

gets(str);

print{("输入子字符串:");

gets(sub);

puts(str);

puts(sub);

n=proc(str,sub);

printf("n=%d\n",n);

}

二、程序改错题

下列给定程序中,函数p roc()的功能是:先将字符串s 中的字符按顺序存放到t中,然后把S中的字符按正序连接到t的后面。例如,当s中的字符串为WXYZ时,则t中的字符串应为WXYZWXYZ。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include

#include

#include

#include

void proc(char*s,char*t)

{

int i,s1;

s1=strlen(s);

for(i=0;i   //****found****

t[i]=s[s1];

for(i=0;i   t[s1+i]一s[i];

t[2*s1]=’\O0;

}

void main()

{

char s[100],t[100];

system("CLS");

print{("\nPlease enter string s:");

scanf("%s",s);

proc(s,t);

printf("The result is:%s\n",t);

}

三、程序设计题

请编写函数proc(),其叻能是:计算并输出下列多项式值。

S=(1+1/2)+(1/3+1/4)+…+(1/(2n-1)+1/2n)

例如,若主函数从键盘给n输入l00后,则输出为S=5.878031。

n的值要求大于1但不大于100。

注意:部分源程序给出如下。

请勿改动主函数main()和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。

试题程序:

#include stdio.h>

double proc(int n)

{

}

void main()

{

int n;

double sum;

printf("\nInput n:");

scanf("%d",&n);

sum=proc(n);

printf("\ns一%f\n",sum);

}

上机考试试题答案与解析

一、程序填空题

【1】*r【2】break【3】n

【解析】由函数proc()可知,字符指针变量P和r分别指向字符串和子字符串,要对其指向的每一个字符进行比较,除非子字符串结束,因此【1】填“*r”;如果当前比较的两个字符相等,则分别指向下一个字符,否则退出本次循环,进行下一次比较,因此【2】填“break”;最后要返回所含子字符串的个数,因此【3】填“n”。

二、程序改错题

错误:t[i]=s[l];

正确:t[i]=s[i];

【解析】函数proc()首先要实现将数组s中的元素顺序放在数组t中,即数组t中下标为i的元素在数组S中下标也为i,因此“t[i]=s[s1];”应改为“t[i]=s[i];”。

三、程序设计题

double proc(int n)

{

int i;

double sum=0.0; //变量s存放和,因此其初始值为0

for(i=1;i<=n;i++)//从第1项到第n项

sum=sum+(1.0/(2*i-1)+1.0/(2*i)); //把

分子、分母转换为符合题意的类型

return sum; //最后把和值返回到主函数中

}

【解析】首先定义一个变量来存放表达式的和,根据题目中提供的多项式,通过n次循环来求出n项的和。最后把所求得的和返回到主函数当中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值