首页 > 全部 > 二级C语言 > 国家二级C语言机试(选择题)模拟试卷601

国家二级C语言机试(选择题)模拟试卷601

本单篇文档共9476字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 6141人下载
价格: 免费 原价:¥9.00
收藏

国家二级C语言机试(选择题)模拟试卷601

选择题

1.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。(D)

A. 下划线

B. 大写字母

C. 数字字符

D. 连接符

解析:C语言中标识符由字母、下划线或数字组成,且开头必须是字母或下划线。

2.设有定义:double x=2.12;,则以下各项中不能完整输出变量x值的语句是( )。(A)

A. printf(”x=%5.0f\n”,x);

B. printf(”x=%f\n”,x);

C. printf(”x=%lf\n”,x);

D. printf(”x=%0.5f\n”,x);

解析:“格式控制字符串”部分为“%f”表示按照浮点型输出,故B选项正确;加入长度格式符l即“%l”表示按照双精度浮点型输出,故C选项正确;若要控制输出精度,则需以“.”开头,后跟十进制整数,如“%.2f”或“%0.2f”,故D选项正确;控制输出宽度则是用整数表示,如“%5f”,A选项中“%5.0f’表示输出宽度为5,右对齐,小数点后保留位数为0,所以结果输出为2,不能完整输出x。

3.有以下程序:

#include <stdio.h>

int b=2;

int fun(int*k)

{

b=*k+b;

return(b);

}

void main()

{

int a[10]={1,2,3,4,5,6,7,8},i;

for(i=2;i<4;i++)

{

b=fun(&a[i])+b;

printf(”%d”,b);

}

printf(”\n”);

}

程序运行后的输出结果是( )。(C)

A. 10 12

B. 8 10

C. 10 28

D. 10 16

解析:因为b是全局变量,所以它的值在整个程序结束才会消失。for循环中,第一次循环,i=2,a[2]=3,所以fun(&a[i])=3+2=5,b=5,所以b=fun(&a[i])+b=5+5=10;第二次循环,b=10,然后fun(&a[i])代入a[3]=4,这时fun(&a[i])=10+4=14,所以b=fun(&a[i])+b=14+14=28。

4.设有如下程序段:

int a[8]={1,2};

int b[]={0};

char c[2]={’\0’,”B”};

char d=”AB\0”;

以下叙述中正确的是( )。(A)

A. 只有a,b的定义是合法的

B. a,b,c,d的定义都是合法的

C. 只有a,b,c的定义是合法的

D. 只有c的定义是合法的

解析:int a[8]={1,2}定义了一个长度为8的整型数组,并初始化了数组的前2项;定义整型数组b,没有指定长度,但为1个元素赋值0,所以自动指定长度为1,b定义是合法的;char c[2]={’\0’,\\

5.一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为( )。(B)

A. 219

B. 229

C. 230

D. 231

解析:二叉树中,度为0的结点数等于度为2的结点数加1,度为0的结点即叶子结点有80个,则度为2的结点数为79,总结点数为80+70+79=229,故B选项正确。

6.有以下程序:

#include <stdio.h>

#include <string.h>

main()

{

char str[]={\\(B)

A. 13,13

B. 13,14

C. 13,15

D. 14,15

解析:strlen返回字符串的长度,结果为13;sizeof返回字符串所占存储空间的大小,由于字符串最后要加上一个’\0’,所以结果为13+1=14。

7.执行以下程序段后,s的值为( )。

int a[]={1,2,3,4,5,6,7,8,9},s=0,k;

for(k=0;k<8;k+=2)

s+=*(a+k);

printf(”%d\n”,s);(B)

A. 13

B. 16

C. 17

D. 45

解析:数组元素为:a[0]=1,a[1]=2…a[8]=9。k=0时,s=s+*(a+k)=0+1=1;k=2时,s=1+*(a+2)=1+3=4;k=4时,s=4+5=9;k=6时,s=9+7=16。

8.有以下程序:

#include <stdio.h>

main()

{

int i,j,x=0;

for(i=0;i<2;i++)

{

x++;

for(j=0;j<=3;j++)

{

if(j%2==0)continue;x++;

}

x++;

}

printf(”x=%d\n”,x);

}

程序的运行结果是( )。(C)

A. x=4

B. x=6

C. x=8

D. x=12

解析:第一次循环:i=0,执行x++后x=1,执行内层循环j=0,由于j%2!=0时才执行x++,即只有j取1和3时,执行x++,此时x=1+1+1=3,跳出内层循环,执行下一条语句x++,x=4。第二次循环:x=1时,重复上述循环,共执行两次循环,故x最终结果是4*2=8。

9.若有以下程序:

#include <stdio.h>

int f(int m)

{

static int n=0;

int a=2;

n++;a++;

return n+m+a;

}

main()

{

int k;

for(k=0;k<4;k++)

printf(”%d,”,f(k));

}

程序运行后的输出结果是( )。(D)

A. 3,5,7,9,

B. 4,7,10,13,

C. 4,5,6,7,

D. 4,6,8,10,

解析:本题中,k为0时,retur

本文档预览:3600字符,共9476字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言机试(选择题)模拟试卷601

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号