全国计算机二级C语言模拟640文档格式.docx

上传人:b****3 文档编号:13697972 上传时间:2022-10-12 格式:DOCX 页数:20 大小:47.10KB
下载 相关 举报
全国计算机二级C语言模拟640文档格式.docx_第1页
第1页 / 共20页
全国计算机二级C语言模拟640文档格式.docx_第2页
第2页 / 共20页
全国计算机二级C语言模拟640文档格式.docx_第3页
第3页 / 共20页
全国计算机二级C语言模拟640文档格式.docx_第4页
第4页 / 共20页
全国计算机二级C语言模拟640文档格式.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

全国计算机二级C语言模拟640文档格式.docx

《全国计算机二级C语言模拟640文档格式.docx》由会员分享,可在线阅读,更多相关《全国计算机二级C语言模拟640文档格式.docx(20页珍藏版)》请在冰豆网上搜索。

全国计算机二级C语言模拟640文档格式.docx

printf("

%d\n,%d\n,k,n);

}

程序运行后的输出结果是______。

A.1,2

B.3,4

C.5,6

D.123,456

答案:

C

[解答]此题是考查fprintf和fscanf,其中fprintf是向文件输出,文件为da2.dat文件,fscanf是向文件输入,所以根据程序循环写入和写出,可知答案为C。

2.有以下程序:

#include<stdio.h>

{charch;

ch='

A'

+'

5'

-'

3'

;

%d,%c\n"

ch,ch);

程序的输出结果是

A.67,C

B.B,C

C.C,D

D.不确定的值

A

3.若有以下程序:

#include<stdio.h>

main()

{inta=1,b=2,c=3,d=4;

if((a=2)&

&

(b=1))c=2;

if((c==3)||(d=-1))a=5;

%d,%d,%d,%d\n"

a,b,c,d);

则程序的输出结果是______。

A.2,2,2,4

B.2,1,2,-1

C.5,1,2,-1

D.1,2,3,4

[解答]第一个if语句的判断条件是逻辑与表达式,只有运算对象均非零结果才为真,执行第一个if判断条件,均为赋值表达式,第一个运算对象a=2非零,判断第二个表达式b=1也非零,所以条件成立执行c=2的赋值操作。

执行第二个if判断条件中的逻辑或表达式,只要有一个对象非零结果就是真,本条件中c==3运算对象为假,所以需要判断第二个运算对象d=-1,结果为非零,所以条件成立,执行a=5,的操作,所以a值为5,b值为1,c值为2,d值为-1。

4.对于循环队列,下列叙述中正确的是______。

A.队头指针是固定不变的

B.队头指针一定大于队尾指针

C.队头指针一定小于队尾指针

D.队头指针可以大于队尾指针,也可以小于队尾指针

D

[解答]循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。

因为是循环利用的队列结构,所以对头指针有时可能大于队尾指针有时也可能小于队尾指针,故本题答案为D。

5.为了建立如图所示的存储结构(即每个结点含两个域,data是数据域,next是指向结点的指针域),则在[]处应填入的选项是______。

A.structlink*next;

B.linknext;

C.link*next;

D.structlinknext;

[解答]本题考查链表的定义形式,答案选择A。

6.以下叙述正确的是______。

A.表达式sizeof(FILE*)==sizeof(int*)的值为真

B.文件指针的值是一个整数,它的值一定小于文件字节数

C.文件指针的值是所指文件的当前读取位置

D.使用fscanf函数可以向任意类型的文件中写入任意数量的字符

[解答]sizeof(FILE*)=4,因为FILE*为指针,指针的大小4,sizeof(int*)=4,理由同前面。

文件指针的值是地址,是一个十六进制的数,它的值不一定小于文件字节数,因此选项B错误。

文件指针是所指文件的当前读取位置,而不是文件指针的值,因此选项C错误。

intfscanf(FILE*stream,constchar*format,[argument...]);

fscanf函数可以向任意类型的文件,写入任意数量的字符,但不能超过系统的缓冲区,写文件先写入缓冲区,最后一起写入文件,因此选项D错误。

答案为A选项。

7.有以下程序:

{intx,i;

for(i=1;

i<=100;

i++)

{x=i;

if(++x%2==0)

if(++x%3==0)

if(++x%7==0)

%d"

x);

\n"

A.2870

B.4284

C.2668

D.3981

8.已知在ASCII字符集中,数字0的序号为48,下列程序的输出结果为______。

}chara='

0'

b='

9'

%d,%c\n"

a,b);

A.因输出格式不合法

B.48,57

C.0,9

D.48,9

[解答]注意输出控制符%d,%c,分别表示以十进制形式输出字符的ASCII码值和字符。

9.有以下程序:

#defineN2

#defineMN+1

#defineNUM(M+1)*M/2

{printf("

NuM);

A.4

B.8

C.9

D.6

B

[解答]本题考查宏定义。

宏定义只是做简单的替换,执行语句NUM=(N+1+1)*N+1/2=8,故选项B正确。

10.有以下程序:

voidfun(doublex,double*y,double*z)

{*y=*y-1.0;

*z=*z+x;

}

{doublea=2.5,b=9.0,*pa,*pb;

pa=&

a;

pb=&

b;

fun(b-a,pa,pb);

%f\n"

a);

A.8.000000

B.9.000000

C.1.500000

D.10.500000

[解答]main()函数定义两个double类型的变量a、b,分别赋初值为:

2.5、9.0,另外定义两个double类型的指针变量pa、pb,其中pa指向a,pb指向b;

然后将b-a、pa、pb传给函数fun,此时x的值为7.5,y指向a,z指向b;

所以*y=*y-1.0,是将变量a的值减去1.0赋给a,a的值为1.5;

*z=*z+x,是将变量b的值加上7.5赋给b,b的值为16.5;

fun()函数执行完毕后,输出a的值为1.5。

故本题答案为C选项。

11.以下叙述中错误的是______。

A.C语句必须以分号结束

B.复合语句在语法上被看做一条语句

C.空语句出现在任何位置都不会影响程序运行

D.赋值表达式末尾加分号就构成赋值语句

[解答]C程序中所有语句都必须由一个分号“;

”作为结束符。

如果只有一个分号,这个分号也是一条语句,称为“空语句”,程序执行时不产生任何动作。

程序设计中有时需要加一个空语句来表示存在一条语句,但随意加分号也会导致逻辑上的错误,影响程序的运行。

所以选项C的说法是错误的。

12.C语言中的简单数据类型有______。

A.整型、实型、逻辑型

B.整型、实型、字符型

C.整型、字符型、逻辑型

D.整型、实型、逻辑型、字符型

[解答]整(数)型(长、短)、实(数)型(长、短)、字符型这3种是最常用,也是最简单的数据类型。

13.若有定义:

inta[4][10];

,则以下选项中对数组元素a[i][i]引用错误的是______。

(0<=i<4,0=i<10)

A.*(&a[0][0]十10*i+j)

B.*(a+i)+j

C.*(a+i)+j)

D.*(a[i]+j)

[解答]本题中选项B是错误的引用,*(a+i)+j只代表了a[i][j]的地址。

14.有以下程序

{

intx;

for(x=3;

x<6;

x++)

printf((x%2)?

("

*%d"

):

#%d"

),x);

程序的输出结果是______。

A.*3#4*5

B.#3*4#5

C.*3*4#5

D.*3#4#5

[解答]本题中,printf语句中,条件表达式的功能是对循环变量x进行判断,若x为奇数,输出数据前加*,否则数据前加#,所以选择A。

15.结构化程序由3种基本结构组成,3种基本结构组成的算法()。

A.可以完成任何复杂的任务

B.只能完成部分复杂的任务

C.只能完成符合结构化的任务

D.只能完成一些简单的任务

[解答]C程序由3种基本的结构组成,分别为顺序结构、选择结构和循环结构,这3种结构可以组成任何复杂的C程序,即可以完成任何复杂的任务,故选项B、选项C和选项D都不正确。

所以,4个选项中选项A符合题意。

16.以下能正确定义一维数组的选项是______。

A.inta[5]={0,1,2.3,4,5};

B.chara[]={0,1,2.3,4,5};

C.chara={'

'

B'

C'

};

D.inta[5]="

0123"

[解答]数组下标从0开始,A选项中所赋值的个数超过了数组的长度;

C选项中定义a为字符型变量,而不是数组,赋值错误;

D选项中,整型数组不能赋字符串。

17.C源程序中不能表示的数制是______。

A.二进制

B.八进制

C.十进制

D.十六进制

[解答]在C语言中整型常量可以用十进制、八进制和十六进制等形式表示,但不包括二进制,因此选择A。

18.下列程序的运行结果是______。

voidsub(int*s,int*y)

{staticintm=4;

*y=s[0];

m++;

voidmain()

{inta[]={1,2,3,4,5},k;

for(k=0;

k<=4;

k++)

{sub(a,&

x);

%d,"

x);

A.1,1,1,1,1,

B.1,2,3,4,5,

C.0,0,0,0,0,

D.4,4,4,4,4,

[解答]本题中sub(int*s,int*y)函数的参数是两个指针型变量,在函数体内将数组s的第一个元素赋给y。

主程序内,首先定义了一维数组并赋初值,然后通过for循环,5次调用sub(a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1