首页 > 全部 > 二级C语言 > 国家二级C语言机试(语言程序设计)模拟试卷31

国家二级C语言机试(语言程序设计)模拟试卷31

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

国家二级C语言机试(语言程序设计)模拟试卷31

选择题

1.设int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是( )。(A)

A. *p=*q;

B. p=*q;

C. *p=n1;

D. p=q;

解析:本题考查指针的使用。指针p和q分别指向变量n2和n1,所以可以用*p代替n2,*q代替n1。

2.通过键盘输入数据,为数组中的所有元素赋值,在程序中下划线处应填入的是( )。

#nclude

#define N 10

void fun(int x[N])

{int i=0;

while(i<N)scanf(’’%d’’,______);}(C)

A. x[i+1]

B. x+i

C. x+(i++)

D. X[++i]

解析:程序通过while循环来给数组元素赋值,赋值语句通过调用scanf函数来实现。scanf函数从键盘接收数据,注意scanf的第二个参数必须是地址,选项A和选项D不是地址,错误。选项B和选项C是地址,但是选项B的i值不会发生变化,循环体内每次都是给同一个元素赋值,不满足要求,选项C正确。

3.设int x[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x数组中6个元素的值,不能完成此操作的语句是( )。(D)

A. for(i=0;i<6;i++)printf(’’%2d’’,*(p++));

B. for(i=0;i<6;i++)printf(’’%2d’’,*(p+i));

C. for(i=0;i<6;i++)printf(’’%2d’’,*p++);

D. for(i=0;i<6;i++)prinff(’’%2d’’,(*p)++);

解析:指针p指向数组x,因此可以使用p来引用数组元素。选项A中,*(p++)表示先取出p指向的元素的值,然后p++指向下一个元素,满足要求;选项B中*(p+i)每次i的值发生变化,(p+i)指向x数组的x[i]元素,因此*(p+i)是取出数组x的x[i]元素的值,满足要求;选项C和选项A相比,少了括号,由于*运算符的优先级比++要低,因此,因此*p++表示先取出p指向的元素的值,然后p再++指向下一个元素,满足要求;选项D中(*p)++表示先取出p指向的元素的值,然后该值++,p没有增加,不满足要求。

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

int w=’A’,x=14,y=15;

w=((x‖y)&(w<’a’));(C)

A. 一1

B. 2

C. 1

D. 0

解析:本题考查表达式和逻辑运算。x和y分别为14和15,因此(x‖y)的值是真。w的值为A,其ASCⅡ值为65,a的ASCⅡ值为97,因此(w<’a’)的值为真。表达式w=((x‖y)&(w<’a’))的前后两个值均为真,整个表达式的值为真。

5.若int x=12;double y=3.141593;则printf(’’%d%8.6f’’,x,y);的输出结果是( )。(A)

A. 123.141593

B. 12 3.1415930

C. 12,3.141593

D. 123.1415930

解析:本题考查格式化输出函数printf,在printf函数调用里面首先输入整型变量x的值12.然后按照’’%8.6f’’格式输出double类型变量y的值,’’%8.6f’’表示输出8位,小数点后输出6位,这里的8位是指输出的总长度。

6.要通过语句scaRf(’’%d,%d,%d’’,&a,&b,&c);给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是( )。(D)

A. 口口口1,2,3

B. 1,口口口2,口口口3

C. 1,2,3

D. 1口2口3

解析:C语言中的标准输入函数scanf要求严格按照格式输入,本题要求在输入数据时。两个数据间一定以一个逗号“,”作为间隔符,所以选项D不正确。

7.设int a;:float b;执行scanf(’’%2d%f’’,&a,&b);语句时,若从键盘输入876 543.0,则a和b的值分别是( )。(B)

A. 543和876.0

B. 87和6.0

C. 876和543.0

D. 765和543.0

解析:scanf的输入格式符%2d%f中,2d表示输入的数据的总宽度为2,所以当从键盘输入876543.0时,这时把输入数字串的前两位87赋给变量a.然后紧接着将6按照格式控制符%f的形式赋给变量b,所以b的值为6.000000.

8.若有定义int a;float b;double c;程序运行时输入:3 4 5能把值3输入给变量a、4输入给变量b、5输入给变量c的语句是( )。(B)

A. scanf(’’%d%1f%lf’’,&a,&b,&c);

B. scanf(’’%d%f%1f’’,&a,&b,&c);

C. scanf(’’%d%f%f’’,&a,&b,&c);

D. scanf(’’%1f%lf%1f,&a,&b,&c);

解析:scanf函数进行输入的时候,默认的输入间隔为空格、跳格和回车,变量a、b和c均为数值型数据,输入时间隔为空格,因此scanf函数的第一个表示格式的参数之间不用加入分隔符,而要输入double型数据,格式控制必须用%lf(或%le)。否则,数据不能正确输入或出现赋值有误的现象。

9.关于C语言程序的叙述中正确的是( )。

A

解析:当使用scanf函数从键盘输入数据时,可以输入间隔符,但输入回车后scanf函数即接收了这一行数据,不能再修改,选项A正确;在复合语句中可以定义变量为局部变量,选项B错误;而空语句为“;”,不是空行,选项C错误;对于选项D,{}还可以表明复合语句的开头结尾,或者循环体的开头结尾等,选项D错误。

10.关于scanf语句叙述中正确的是( )。(A)

A. 在Scanf函数的格式控制字符串中,必须有与输入项一一对应的格式转换说明符

B. 复合语句也被称为语句块,它至少要包含两条语句

C. Scanf函数中的格式控制字符串,是提示程序员的,输入数据时不必管它

D. 只能在printf函数中指定输入数据的宽度,而不能在scanf函数中指定输入数据占的宽度

解析:输入函数的调用格式如%d,%53.1等主要作用是指定输入时的数据转换格式,格式串中,必须含有与输入项对应的格式转换说明符,选项A正确;复合语句还可以是空语句,并没有规定语句条数,选项B错误;scanf函数中的格式控制字符串是为了输入数据用的,无论其中有什么字符,都不会输出到屏幕上,因此若想在屏幕上输出提示信息,应该首先使用printf函数输出,选项C错误;在scanf函数的格式字符前可以加入一个正整数指定输入数据所占的宽度,但不可以用实数指定小数位的宽度,选项D错误。

11.与其他三个选项的含义不同的是( )。(D)

A. if(k%2)

B. if(k%2==1)

C. if((k%2)!=0)

D. if(!k%2==1)

解析:本题考查if语句和if语句构成的选择,注意if语句中else与if的匹配。选项A表示k除以2的余数,如果余

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号