首页 > 全部 > 二级C语言 > 国家二级(C语言)机试模拟试卷436

国家二级(C语言)机试模拟试卷436

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

国家二级(C语言)机试模拟试卷436

选择题

1.下列叙述中正确的是( )。(A)

A. 程序执行的效率与数据的存储结构密切相关

B. 程序执行的效率只取决于程序的控制结构

C. 程序执行的效率只取决于所处理的数据量

D. 以上说法均错误

解析:程序执行的效率与数据的存储结构、数据的逻辑结构、程序的控制结构、所处理的数据量等有关。

2.有以下程序:

#include

main()

{ int i,j,k,a=5,b=6;

i=(a==b)?++a:–b;

j=a++;k=b;printf(\\(B)

A. 7,6,5

B. 5,5,5

C. 7,5,5

D. 5,6,5

解析:条件表达式i=(a==b)?++a:–b;中先执行a==b,值为假,根据三元运算符语法规则,执行–b,此时b为5,赋给i,i=5;j=a++,将a=5先赋给j,再进行a++,j=5,a=6,k=b=5,故最后输出的是5,5,5。

3.以下关于return语句的叙述中正确的是( )。(B)

A. 一个自定义函数中必须有一条return语句

B. 一个自定义函数中可以根据不同情况设置多条return语句

C. 定义成void类型的函数中可以有带返回值的return语句

D. 没有return语句的自定义函数在执行结束时不能返回到调用处

解析:在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。定义成void类型的函数.不允许从该函数取得返回值,也不允许使用return语句,C选项描述错误。没有return语句的函数在执行到函数的最后一条语句后会自动返回到调用处,A、D选项描述错误。因此B选项正确。

4.有以下程序:

#include

typedef struct{int b,P;}A;

void f(A C)/*注意:C是结构变量名*/

{int j;

c.b+=1;e.p+=2;

}

main()

{int i;

A a={1,2};

f(a);

printf(“%d,%d\n”,a.b,a.P);

}

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

A. 2,4

B. 1,2

C. 1,4

D. 2,3

解析:结构体变量可以作为函数的参数和返回值。作为函数的实参时,可以实现函数的传值调用。当使用结构体变量作为函数的形参时,实参也应该是结构体变量名以实现传值调用,实参将拷贝副本给形参,在被调用函数中改变形参值对于调用函数中的实参没有影响。所以选择B。

5.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( )。(B)

A. 软件矛盾

B. 软件危机

C. 软件耦合

D. 软件产生

解析:随着计算机软件规模的扩大,软件本身的复杂性不断增加,研制周期显著变长,正确性难以保证,软件开发费用上涨,生产效率急剧下降,从而出现了入门难以控制软件发展的局面,即所谓的“软件危机”。

6.有以下定义语句,编译时会出现编译错误的是( )。(C)

A. char a=’a’

B. char a=’\n’;

C. char a=’aa’;

D. char a=’\x2d’

解析:本题中a为一个字符型变量,只能为其赋值一个字符常量。C项中’aa’不是字符常量,所以会编译错误。BD两项为转义字符,编译可以通过。

7.if语句的基本形式为:if(表达式)语句,其中“表达式\\(A)

A. 可以是任意合法的表达式

B. 必须是逻辑表达式

C. 必须是逻辑表达式或关系表达式

D. 必须是关系表达式

解析:本题考查if表达式。if(表达式)中的表达式可以为任何合法的表达式,一般情况下为逻辑、条件表达式,需要注意的是,当等号(==)误写为赋值号(=)时不会报错的,但是其值恒为1。

8.若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是( )。(A)

A. a=(b=4)=3;

B. a=b=c+1;

C. a=(b=4)+c;

D. a=1+(b=c=4);

解析:这道题目主要考察赋值表达式,对于赋值表达式来说,赋值号“=”的左边一定为变量名,右边为一个C语言合法的表达式。

9.已知一个文件中存放若干工人档案记录,其数据结构如下:

struct a

{ char number[100];

int age;

float p[6];};

定义一个数组:struct a number[10];

假定文件已正确打开,不能正确地从文件中读入 10名工人数据到数组b中的是( )。(B)

A. fread(b,sizeof(struct a),10,fp);

B. for(i=0;i<10;i++)

fread(b[i],sizeof(struct a),1,fp);

C. for(i=0;i<10;i++)

  fread(b+i,sizeof(struct a),1,fp);

D. for(i=0;i<5;i+=2)

fread(b+i,sezeof(struct a),2,fp);

解析:数据块输入/输出函数的调用形式为:fread(buffer,size,count,fp)。fread函.数参数说明:“buffer”是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。“size”是要读写的字节数;“count”是要进行读写多少个size字节的数据项;“fp”是指文件型指针。选项B)中b[i]是一个数组,不是指针,需改为&b[i]。

注意:完成一次读操作(fread())后,如果没有关闭流(felose()),则指针(FILE*fp)自动向后移动前一次读写的长度,不关闭流则继续下一次读操作,接着上次的输出继续输出。

10.下列一维数组说明中,不正确的是( )。(A)

A. int N;

scanf(“%d”,&N);

int b[N];

B. float a[]={1,6,6,0,2};

C. #define S 10

int a[S];

D. #define S 10

int a[S+5];

解析:本题考查一维数组的赋值。一维数组的一般定义格式为:类型说明符数组名[常量表达式]。其中,“[]”中的内容可以是整型常量,也可以是整型表达式。选项A)中的N是一个变量,所以错误。

11.已知char**s,下面正确的语句是( )。(C)

A. s=\\

B. *s=\\

C. **s=\\

D. *s=’A’;

解析:“s”是代表数组首地址的地址常量,不是变量,“=”左边不能出现常量,因此s=\\

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号