当前位置:学者斋 >

IT认证 >计算机等级 >

四川省计算机二级C语言笔试真题及答案

四川省计算机二级C语言笔试真题及答案

计算机C语言考试之际,yjbys小编为大家提供的是最新的上机考试题,希望对大家的复习有所帮助!

四川省计算机二级C语言笔试真题及答案

甲乙丙丁四人同时开始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次, 丙 每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次。函数fun的功能是根据形参 提供的值,求出总共听到多少次鞭炮声作为函数值返回。注意,当几个鞭炮同时 炸响,只算一次响声,第一次响声是在第0秒。

例如,若t1=7,t2=5,t3=6,t4=4,n=10,则总共可听到28次鞭炮声。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK1.C中。

不得增行或删行,也不得更改程序的'结构!

给定源程序:

#include

#define OK(i, t, n) ((___1___%t==0) && (i/t

int fun(int t1, int t2, int t3, int t4, int n)

{ int count, t , maxt=t1;

if (maxt < t2) maxt = t2;

if (maxt < t3) maxt = t3;

if (maxt < t4) maxt = t4;

count=1; /* 给count赋初值 */

for(t=1; t< maxt*(n-1); ___2___)

{

if(OK(t, t1, n) || OK(t, t2, n)|| OK(t, t3, n) || OK(t, t4, n) )

count++;

}

return ___3___;

}

main()

{ int t1=7, t2=5, t3=6, t4=4, n=10, r;

r = fun(t1, t2, t3, t4, n);

printf("The sound : %dn", r);

}

解题思路

第一处:根据定义的要求,所以应填:i。

第二处:for循环语句的增量,所以应填:t++。

第三处:返回统计次数,所以应填:count。

***************************************************

给定程序MODI1.C中函数fun的功能是: 根据输入的三个边长(整型值), 判断能否构成三角形; 构成的是等边三角形, 还是等腰三角形。若能构成等边三角形函数返回3,若能构成等腰三角形函数返回2, 若能构成一般三角形函数返回1, 若不能构成三角形函数返回0。

请改正函数fun中指定部位的错误, 使它能得出正确的结果。

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

给定源程序:

#include

#include

void fun(int a,int b,int c)

{ if(a+b>c && b+c>a && a+c>b) {

if(a==b && b==c)

return 3;

else if(a==b||b==c||a==c)

return 2;

else retrun 1

}

else return 0;

}

main()

{ int a,b,c,shape;

printf("nInput a,b,c: "); scanf("%d%d%d",&a,&b,&c);

printf("na=%d, b=%d, c=%dn",a,b,c);

shape =fun(a,b,c);

printf("nnThe shape : %dn",shape);

}

解题思路:

第一处:函数有返回值,不能定义为void,所以应改为:int fun(int a,int b,int c)。

第二处:语句后缺少分号。

***************************************************

请编写函数fun, 其功能是: 计算并输出3到n之间(含3和n)所有素数的平方根之和。

例如, 在主函数中从键盘给n输入100后,输出为: sum=148.874270。

注意: 要求n的值大于2但不大于100。

部分源程序在文件PROG1.C中。

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

给定源程序:

#include

#include

double fun(int n)

{

}

main()

{ int n; double sum;

printf("nnInput n: "); scanf("%d",&n);

sum=fun(n);

printf("nnsum=%fnn",sum);

NONO();

}

解题思路:

本题是计算并输出3到n之间(含3和n)所有素数的平方根之和。

参考答案

double fun(int n)

{

int i,j=0;

double s=0;

for (i=3; i<=n; i++) {

for (j=2; j

if (i%j == 0) break;

if (j == i) s=s+sqrt(i);

}

return s;

}

  • 文章版权属于文章作者所有,转载请注明 https://xuezhezhai.com/itrz/dengji/vk2l9k.html