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

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

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

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

选择题

1.有以下程序:

#include<stdio.h>

#include<string.h>

main()

{

char str[][20]={\\(C)

A. 9,One*World

B. 9,One*Dream!

C. 10,One*Dream!

D. 10,One*World

解析:本题将两个字符串常量赋值给一个二维字符数组,用字符常量为字符数组:赋值需要在最后加上一个结束符“\0”表示字符串结束,所以数组长度为字符的个数加1,而且数组的下标是从0开始计数,所以p指向第二个字符串。

2.下列程序的输出结果为( )。

main()

{ union un

{char*name;

int age;

int pay;

}s;

s.name=“zhaoming”:

s.age=32;

s.pay=3000;

printf(“%d\n”,s.age);

}(B)

A. 32

B. 3000

C. 0

D. 不确定

解析:本题考查的是联合体的有关概念。因为联合体是各个成员共享一段存储空间,此段存储空间最终存放的是最后存入的成员的值,所以题目中输出s.age实际上输出了最后存入的3000,因为3000已经把原来存入的s.age(32)的值覆盖。

3.有以下程序:

#include<stdio.h>

#include<string.h>

struct A

{int a;char b[10];double c;};

void f(struct A*t);

main()

{struct A a={1001,\\(B)

A. 1001,zhangDa,1098.0

B. 1002,ChangRong,1202.0

C. 1001,ChangRong,1098.0

D. 1002,zhangDa,1202.0

解析:本题主要考查是的函数调用时参数之间的传递问题。在C语言中参数之间的传递是传值,也就是把实参的值复制一份传递给形参,而实参的值不发生变化。但对于指针调用来说,函数直接对实参的地址操作,因此在这种情况下实参变化。

4.有两个关系R和T如下:

(C)

A. 选择

B. 交

C. 投影

D. 并

解析:关系T是由关系R的第1、3列的元组组成,这是对关系R进行投影运算的结果。可以简单理解为:选择运算是对行的操作,投影运算是对列的操作。

5.下列程序的运行结果是( )。

#include<stdio.h>

void sub(int*s,int*y)

{ static int m=4;

*y=s[0];

m++:

}

void main()

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

int x;

printf(’’\n’’);

for(k=0;k<=4;k++)

{ sub(a,&x);

printf(’’%d,’’,x);

}

}(A)

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,&x)函数,每一次调用都是将数组a的第一个元素1赋给x,并输出。

6.以下叙述中错误的是( )。(A)

A. 可以通过typedef增加新的类型

B. 可以用typedef将已存在的类型用一个新的名字来代表

C. 用typedef定义新的类型名后,原有类型名仍有效

D. 用typedef可以为各种类型起别名,但不能为变量起别名

解析:关键字typedef的作用只是将C语言中的已有的数据类型作了置换,并不是增加新的类型,所以A错误。

7.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是(  )。(C)

A. 10

B. 8

C. 6

D. 4

解析:根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子节点总是比度为2的节点多一个,所以本题中是5+1=6个。

8.若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是( )。(D)

A. ++i;

B. n1=(n2/(n3=2));

C. k=i=j;

D. a=b+c=2;

解析:本题考查赋值表达式。赋值表达式的一般形式是:变量名=表达式。C语言规定,不能给变量表达式赋值。

9.有以下程序段:

#include<stdio.h>

int a,h,c;

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

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

printf(\\(B)

A. a=10 h=50 c=30

B. a=10 h=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。

10.在源程序的开始处加上“#include”进行文件引用的原因,以下叙述正确的是( )。(A)

A. stdio.h文件中包含标准输入输出函数的函数说明,通过引用此文件以便能正确使用printf、scanf等函数

B. 将stdio.h中标准输入输出函数链接到编译生成的可执行文件中,以便能正确运行

C. 将stdio.h中标准输入输出函数的源程序插入到引用处,以便进行编译链接

D. 将stdio.h中标准输入输出函数的二进制代码插入到引用处,以便进行编译链接

解析:“stdio.h”文件中包含标准输入输出函数的函数说明,预处理指令#include是指程序可以在该文件中找到printf,scanf等标准输入输出函数。

11.下列语句组中,正确的是( )。

A

解析:字符型指针变量可以用选项A的赋值方法:char*s;s=\\

12.以下选项中不属于C语言标识符的是( )。(A)

A. 常量

B. 用户标识符

C. 关键字

D. 预定义标识符

<

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号