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

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

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

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

选择题

1.以下对C语言中联合类型数据的正确叙述是( )。(C)

A. 定义了联合变量后,即可引用该变量或该变量中的任意成员

B. 一个联合变量中可以同时存放其所有成员

C. 联合中的各个成员使用共同的存储区域

D. 在向联合中的一个成员进行赋值时,联合中其他成员的值不会改变

解析:联合体的几个特点:①联合体所占用的内存空间为最长的成员所占用的空间;②各个成员分量全部是从低地址方向开始使用内存单元;③联合体中的空间在某一时刻只能保存某一个成员的数据;④联合体和结构体可以任意嵌套。

2.若二维数组a有m列,则在a[i][j]前的元素个数为( )。(B)

A. j*m+i

B. i*m+j

C. j*m+i+1

D. i*m+j+1

解析:二维数组的元素可以看成是按矩阵形式存放的,总是先存放第一行的元素,再存放第二行的元素。数组第一维的下标是i,说明它前面还有i行,有i*m个元素,数组第二维的下标是i,说明它前面还有j列,有j个元素,所以共有i*m+j个元素。

3.设q1和q2是指向一个int型一维数组的指针变量,k为float型变量,下列不能正确执行的语句是( )。(B)

A. k=*q1*(*q2);

B. q1=k;

C. q1=q2;

D. k=*q1+*q2;

解析:本题考查指针变量的赋值操作。选项A)是将指针q1和q2所指向的变量值相乘,然后赋给k;选项B)中,float型数据和指针型数据之间不能进行赋值运算;选项C)中,是两个指针变量之间的赋值;选项D)中,是两个指针型变量所指向的两个int型数据相加。

4.有以下程序

#include<stdio.h>

main()

{FILE*fp;int i=20,j=30,k,n;

fp=fopen(\\(A)

A. 20 30

B. 20 50

C. 30 50

D. 30 20

解析:分析程序段,首先以只写方式打开文件,利用fprintf函数将i和j的值写入到文件dl.dat中,然后关闭文件:再以只读方式打开文件,利用格式化输入函数fscanf将文件中的数据赋值给k和n,最后输出k和n的值,分别是20和30。

5.若变量已正确定义并赋值,则错误的赋值语句是( )。(D)

A. a+=a+1;

B. a=sizeof(double);

C. a=d∥c;

D. a+1=a;

解析:赋值号“=”的左边必须是一个变量名,不可以是表达式。

6.以下函数实现按每行8个输出w所指数组中的数据:

#include<stdio.h>

void fun(int*w,int n)

{int i;

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

{

______________

printf(\\(C)

A. if(i/8==0)printf(\\

B. if(i/8==0)continue;

C. if(i%8==0)printf(\\

D. if(i%8==0)continue;

解析:要按照每行8个输出数据的话,横线处语句的功能应该为:当i是8的倍数时(即i%8==0),输出一个换行符。因此C选项正确。

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

A

解析:考查一维数组以及字符数组的初始化。初始化的时候可以只给数组的前面一部分元素设定初值,故A)正确。若对数组全部元素赋初值时,可以不指定数组元素的个数,选项B)错。字符数组中的每个元素为一个字符,需要用单引号,选项C)错。定义字符数组时可以将字符串直接赋给该字符数组,其他情况则不可以,选项D)错。答案选A)。

8.数据结构中,与所使用的计算机无关的是数据的 ( )。(C)

A. 存储结构

B. 物理结构

C. 逻辑结构

D. 线性结构

解析:数据的逻辑结构反映的是数据元素之间的逻辑关系,与使用的计算机无关。

9.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。(B)

A. 循环队列

B. 栈

C. 队列

D. 二叉树

解析:栈是按“先进后出”的原则组织数据的;队列是按“先进先出”的原则组织数据的,因此本题答案为B。

10.待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码15被放到第( )个位置。(A)

A. 2

B. 3

C. 4

D. 5

解析:选择排序的基本思想是扫描整个线性表,从中选出最小的元素,将它交换到表的最前面,然后对剩下的子表采用同样的方法,直到子表为空。所以第一趟排序后,将选出最小的元素9放在第一个位置,元素15则放在第二个位置。

11.下列选项中,不能作为合法常量的是( )。(B)

A. 1.234e04

B. 1.234e0.4

C. 1.234e+4

D. 1.234e0

解析:用指数形式表示的实型常量需注意两点:①e或E后面的指数必须是整数:②指数必须是不超过数据表示范围的正负整数,并且在e或E前必须有数字。

12.有以下程序段:

#include

int a,b,c;

a=10;b=50;c=30;

if(a>b)a=b,b=c;c=a;

prinff(“a=%d b=%d c=%d\n”,a,b,c);

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

A. a=10 b=50 c=30

B. a=10 b=50 c=10

C. a=10 b=30 c=10

D. a=50 b=30 c=50

解析:本题中a>b的条件不满足,所以不执行逗号表达式a=b,b=c;的操作,而是执行c=a操作,即c的值为10。

13.有以下程序:

#include<stdio.h>

main()

{

chaur x=2,y=2,z;

z=(y<<1)&(x>>1);

pnnff(\\(B)

A. 1

B. 0

C. 4

D. 8

解析:本题考查位运算<<和&。y<<1为4,x>>1为1,二者与运算后为0,故B选项正确。

14.以下程序运行后的输出结果是( )。

#include

void reverse(int a[],int n)

{int i,t;

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

{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}

main()

{int b[10]={10,9,8,7,6,5,4,3,2,1};int i,s=0;

reverse(b,10);

for(i=0;i<3;i++)s+=

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号