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

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

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

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

选择题

1.有以下程序:

#include

#define N 4

void fun(int a[][N],int b[])

{ int i;

for(i=0;i<N;i++)b[i]=a[i][i];

}

main()

{int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;

fun(x,y);

for(i=0;i<N;i++)pfintf(\\(B)

A. 1,2,3,4,

B. 1,0,7,0,

C. 1,4,5,9,

D. 3,4,8,0,

解析:数组x有4列。fun函数中for循环的作用是将二维数组的对角线元素赋给b[0],b[1],b[2],b[3]。在主函数中,二维数组初始化为{{1,2,3},{4},{5,6,7,8},{9,10}},对角线元素为1,0,7,0。

2.有以下程序:

#include

main()

{ char a=4;

printf(\\(C)

A. 40

B. 16

C. 8

D. 4

解析:移位运算符的优先级比赋值运算符优先级高,故语句“a=a<<1”先进行a的二进制移位运算,左移一位相当于原数乘以2,a<<1结果为4*2=8,没有超过char类型的范围,将8赋值给a,并输出a的值。

3.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是( )。(B)

A. 12345ABCDE

B. EDCBA54321

C. ABCDE12345

D. 54321EDCBA

解析:栈是按照“先进后出”的原则组织数据的,入栈的顺序为12345ABCDE,则依次出栈的顺序应为其逆序,即EDCBA54321。

4.有以下程序:

#include

struct st

{ int x,y;}data[2]={1,10,2,20};

main()

{ struct st*p=data;

printf(\\(C)

A. 10,1

B. 20,1

C. 10,2

D. 20,2

解析:程序定义了结构体数组data,初值为data[0]={1,10},data[1]={2,20}。结构体指针p指向数组的首地址,指向data,[0],++p则指向data[1],所以输出p->y,(++p)->x即输出data[0].y和data[1].x。

5.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。(C)

A. O(n)

B. O(n2)

C. O(log2n)

D. O(nlog2n)

解析:二分查找的最坏情况需要不断的二分直至无法再分。对于有序的线性表,二分查找法只需比较log2n次。

6.假定已建立以下数据链表结构,且指针p和q已指向如下图所示的结点:

(D)

A. (*)p.next=(*q).next;free(p)

B. b=q->next;free(q)

C. p=q;free(q)

D. P->next=q->next;free(q)

解析:删除结点q,首先将q的上一个结点p的指针域指向q的下一个结点,即p->next=q->next,然后释放结点q,free(q)。

7.有以下程序段:

int a,b,C;

a=10;b=50;C=30;

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

printf(\\(A)

A. a=10 b=50 C=10

B. a=10 b=50 C=30

C. a=10 b=30 C=10

D. a=10 b=30 C=50

解析:a=10,b=50,a<b,if语句判断条件不成立,执行c=a,得到c=10,a和b的值不变。

8.有以下程序:

#include

int fun(int(*s)[4],int n,int k)

{ int m,i;

m=s[0][k];

for(i=1;i<n;i++)if(s[i][k]>m)m=s[i][k];

return m;

}

main()

{ int a [4][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24},{31,32,33,34}};

printf(\\(C)

A. 4

B. 34

C. 31

D. 32

解析:函数fun通过数组指针引用二维数组,其作用是遍历s[1][k]~s[n-1][k],找出二维数组第k列的最大值。

9.有以下程序:

#include

main()

{

int i=5;

do

{ if(i%3==1)

if(i%5==2)

{printf(\\(A)

A. *7

B. *3*5

C. *5

D. *2*6

解析:在do while循环中,总是先执行循环体后判断循环条件,所以循环体至少会被执行一次。在循环中,如果满足(i%3==1)&&(i%5==2)那么输出i的值,退出循环;否则i++,如果i==0则跳出循环。

10.有以下程序:

#include

#include

int fun(int n)

{ int*p;

p=(int*)malloc(sizeof(int));

*p=n;return*p;

}

main()

{ int a;

a=fun(10);printf(\\(C)

A. 0

B. 10

C. 20

D. 出错

解析:fun函数的功能是申请一个int型指针p,把p指向的存储空间赋值为n,并返回n。fun(10)的返回值为10,所以a=fun(10)后a的值为10,a+fun(10)=20。

11.有以下程序:

#include

main()

{

int x=1,y=2,z=3;

if(x>y)

if(y<z)printf(

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号