二级C语言等级考试程序填空题题库

时间:2025-05-11

二级C语言等级考试程序填空题题库

程序填空题一

1. 下面C语言程序将两个递增有序的数值a和b合并一个数组c,并保持递增次序,最后输出数组c.

#include < stodio.h> #define M6 #define N5 main( )

{int a[M]={1,3,5,7,9,11} b[N]={2,4,6,8,10} int c[M+N] int i ,j, k; i=j=k=0 while( 1 ) if a[i]<b[j]

c[k++]=a[i++]; else c[k++]=b[j++]; while( 2 )

c[k++]=a[i++]; while(j<N) c[k++]=( 3 )

for(k=0;k<( 4 );k[++]) printf(%dxt,c[k]; ) 其中(1)(2)(3)(4)处分别填一数据,使程序达到其功能。 答案:

1:i<M&&j<N 2:i<M; 3:b[j++]; 4:M+N

2.下面h函数的功能是计算如下数学函数H的值。请填空。 double fgh(double(*f)(double a),double(* g)(double b), double x,double y)

{return(【1】);}double h(double a,double b) return(fgh(sin,cos,a,b)* fgh(【2】));}

解:(1)(*f)(x+y)/(*g)(y-x) (2)cos,sin,a,b

[解析]本题考察的是函数的声明。要填写的两个空都出现在return语句中,所以要仔细分析函数的返回值。本题的第二个空相对要容易一些,只要根据题干和乘号前面的调用语句对比一下即可得到调用语句的四个参数。第一个空相对要难一些,函数fgh定义时用到了函数指针(*f)和(*g)是为了增加函数的灵活性。根据函数h的定义以及题干要求,可以看出函数fgh应该表示的是乘号两边的某一项。(*f)

1

和(*g)用来表示sin或cos,参数x和y的加减法运算作为sin或cos函数的参数,故应填写(*f)(x+y)/ (*g)(y-x)。 3.下面程序的作用是将以下给出的字符按其格式读入数组ss中,然后输出行、列号之和为3的数组元素,请在____处填入正确内容。 A a f c B d e b c g f D main() {

static char ss[4][3]={'A','a','f','c','B','d','e','b','C','g','f','D'}; int x,y,z;

for(x=0;【1】;x++) for(y=0;【2】;y++) {z=x+y; if(【3】) printf("%c\n",ss[x][y]); } }

解:(1)x<4 (2)y<3 (3)z==3

[解析]本题应用穷举法找到满足要求的值。第一个空:变量x为行数所以是x<4;第二个空:变量y为列数所以是y<3;第三个空:判断x+y是否为3所以是z==3。 4.下面程序的作用是将以下给出的字符按其格式读入数组ss中,然后输出行、列号之和为3的数组元素,请在____处填入正确内容。 A a f c B d e b c g f D main() {

static char ss[4][3]={'A','a','f','c','B','d','e','b','C','g','f','D'}; int x,y,z;

for(x=0;【1】;x++) for(y=0;【2】;y++) {z=x+y; if(【3】) printf("%c\n",ss[x][y]); }

二级C语言等级考试程序填空题题库

}

解:(1)x<4 (2)y<3 (3)z==3

[解析]本题应用穷举法找到满足要求的值。第一个空:变量x为行数所以是x<4;第二个空:变量y为列数所以是y<3;第三个空:判断x+y是否为3所以是z==3。

程序填空题二

【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include <stdio.h> main() { int a,b;

scanf("%d%d",&a,&b);

printf("a=%d,b=%d\n",a,b); a= ① ; b= ② ; a= ③ ;

printf("a=%d,b=%d\n",a,b); }

答案: ① a+b ② a-b ③ a-b 或者 ① a^b ② b^a ③ a^b

【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <math.h> /*数学函数数包含在头函数math.h 中*/ double pi(long n) { double s=0.0; long i;

for(i=1;i<=n;i++) s=s+ ① ; return( ② ); }

答案:① 1.0/(float)(i*i) ② sqrt(6*s) /* sqrt()是求平方根函数*/

【3.3】下面程序的功能是计算1-3+5-7+ …… -99+101的值。 main()

{ int i,t=1,s=0;

for(i=1;i<=101;i+=2) { ① ; s=s+t;

2

② ; }

printf("%d\n",s); }

答案:① t=t*i ② t=t>0?-1:1

【3.4】下面程序的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main()

{ float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while( ① )

{ if(x>amax) amax=x; if( ② ) amin=x; scanf("%f",&x); }

printf("\namax=%f\namin=%f\n",amax,amin); }

答案: ① x>=0 ② x<amin

【3.5】下面程序的功能是将形参x的值转换为二进制数,所得的二进制数放在一个一维数组中返回,二进制数的最低位放在下标为0的元素中。

fun(int x,int b[]) { int k=0,r; do

{ r=x% ① ; b[k++]=r; x/= ② ; }while(x); }

答案: ① 2 ② 2

【3.6】下面程序的功能是输出100以内的个位数为6、且能被3整除的所有数。 main() { int i,j;

for(i=0; ① ;i++) { j=i*10+6;

if( ② ) countinue;

二级C语言等级考试程序填空题题库

printf("%d",j); } }

答案:① i<=9 ② j%3!=0 说明:100以内的个位数为6的数有10个,即6、16、26、36、46、56、66、76、86、96

【3.7】下面程序的功能是用辗转相除法求两个正整数m和n的最大公约数。 hcf(int m,int n) { int r; if(m<n) { r=m; ① ; n=r; }

r=m%n; while( ② ) { m=n; n=r; r=m%n; } ③ …… 此处隐藏:7505字,全部文档内容请下载后查看。喜欢就下载吧 ……

二级C语言等级考试程序填空题题库.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219