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

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

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

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

选择题

1.以下语句的输出结果是

printf(\\(A)

A. 5

B. 8

C. 14

D. 输出项不合法,无正常输出

解析:字符串\\

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

#include main()

void fun(int*a,int*b) { int a=1,b=2,*x=&a,*y=&b;

{ int*k; fun(x,y);

k=a;a=b;b=k;} printf(\\(B)

A. 2 1

B. 1 2

C. 编译出错

D. 0 0

解析:本题考查函数调用时的参数传递。分析题目可知fun函数的形参是指向实参的指针,但main()函数中调用fun()函数时,实参是指针变量x、y(分别为指向a和b的指针),a、b的值在函数调用前后未发生变化,因而a=1,b=2,即输出1 2。

3.设有定义:char p[]={’1’, ’2’, ’3’},*q=p; ,以下不能计算出一个char型数据所占字节数的表达式是(  )。(A)

A. sizeof(p)

B. sizeof(char)

C. sizeof(*q)

D. sizeof(p[0])

解析:根据题目中的定义可以知道sizeof(p),计算的是数组p中所有元素所占用的字节数,而不是char型数据所占字节数。

4.下面程序的输出结果是( )。

#include

main()

{char a[]={’a’,’b’,’c’,’d’,’f’,’g’},*p;

P=a;

prinff(\\(C)

A. a

B. b

C. e

D. f

解析:“*”号的优先级比“+”的优先级高,所以先执行“*p”;指针p指向的是数组的首地址,因此*p=a,再加4得’e’。

5.判断字符串s1是否大于字符串s2,应该使用( )。(C)

A. iffstrcmp(s1,s2)<0)

B. if(s1>s2)

C. if(strcmp(s2,s 1)<0)

D. if(strcmp(s1,s2))

解析:本题考查字符串比较函数strcmp(),调用形式:strcmp(str+1,str+2),其中sh+1、str+2分别是字符串存储区的首地址,函数功能:比较字符串str1和str2,当str1str2,返回值为正数。注意:不能使用关系运算符比较两个字符串的大小。

6.若输入bcdefgh、m、abcdefg,以下程序的输出结果为( )。

#include

#include

main()

{ int i;

char string[20],str[3][20];

for(i=0;i<3;i++)gets(str[i]);

if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);

else strcpy(string,str[1]);

if(strcmp(str[2],string)>0)strcpy(string,str[2]);

printf(\\(B)

A. bcdefgh

B. m

C. abcdefg

D. bcdefgh或abcdefg

解析:本题考查字符比较函数和字符复制函数:strcmp(s1,s2);函数功能:比较字符串str1和str2比较的是字符的ASCII码的值,当str1str2,返回值为正数。

7.有以下程序:

#include <stdio.h>

int fun (int x, int y )

{ if (x!=y) return ( (x+y) /2 );

  else return ( x );

}

main()

{ int a=4, b=5, c=6;

  printf( \\(A)

A. 6

B. 3

C. 8

D. 12

解析:\\t本题中第一次调用为fun(8,fun(5,6)),因为fun(5,6)返回值为5,所以第二次调用为fun(8,5)=6。所以选择A。

8.以下语句中存在语法错误的是(  )。

A

解析:数组定义后,不可以对数组整体赋值, s是二维数组,因ss[1]是一维字符数组,即字符串,字符串赋值可以使用strcpy(ss[1],\\

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

A. 当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失

B. 打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖

C. 在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据

D. C语言中的文件是流式文件,因此只能顺序存取数据

解析:B选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第1个数据,可以用fseek()函数进行重新定位即可。D选项中,C语言中的文件可以进行随机读写。

10.下列叙述中正确的是( )。(D)

A. 栈是“先进先出”的线性表

B. 队列是“先进后出”的线性表

C. 循环队列是非线性结构

D. 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构

解析:栈是先进后出的线性表,所以A错误;队列是先进先出的线性表,所以B错误;循环队列是线性结构的线性表,所以C错误。

11.设有定义:int x=11,y=12,z=0;,以下表达式值不等于12的是( )。(D)

A. (z,x,y)

B. (z=x,y)

C. z=(x,y)

D. z=(x==y)

解析:逗号表达式的计算过程是从左到右逐个求每个表达式的值,取最右边一个子表达式的值作为该逗号表达式的值。赋值运算结合性为由右向左结合,赋值运算符左边为变量,右边为变量或常量,且左右两边数据类型相同才能实现赋值。逻辑表达式成立则返回1,不成立返回0。A项逗号表达式(z,x,y)取y值为12;B项逗号表达式x,y取y值为表达式值,然后赋值给z=12,表达式值为12;C项逗号表达式(x,y)取y值为表达式值,然后赋值给z=12,表达式值为12;D项逻辑表达式x==y不成立,则z=0,表达式值为0。

12.下列说法正确的是( )。(C)

A. auto和register将声明的对象说明为自动存储类对象,这些对象可用在函数中或函数外

B. 将变量其定义为static类型,则其初值默认为随机值

C. typedef说明符并不会为对象预留存留空间

D. 如果一个对象被声明为register,则对它应用一元运

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号