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

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

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

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

选择题

1.有以下程序:

#include

main()

{ int a=5,b=1,t;

t=(a<<2)|b;

printf(\\(A)

A. 21

B. 11

C. 6

D. 1

解析:5的二进制是101,计算5<<2,即将101左移2位后为10100,然后和00001进行逐位或运算等于10101,其十进制为21。

2.设函数中有整型变量n,为保证其在未赋值的情况下初值为0,应选择的存储类别是( )。(C)

A. auto

B. register

C. static

D. auto或register

解析:静态存储类型变量在未对其初始化时的默认初始化值是0,其他存储类型不能确定变量在未赋值情况的初值。

3.若有以下定义:

int x[10],*pt=x;

则对x数组元素的正确引用是( )。(B)

A. *&x[10]

B. *(x+3)

C. *(pt+10)

D. pt+3

解析:数组的下标是从0开始的,故x[10]实际上具体为x[0],x[1],…,x[9],而若使用x[10]就会溢出,编译出错,所以AC两项错误;D项,pt+3指向地址,并未引用到元素;B项的表达正确,引用x[3]。

4.有以下程序:

#include

struet ord

{ int x,y;}dt[2]={1,2,3,4};

main()

{ struet ord*p=dt;

printf(\\(B)

A. 1,2

B. 2,3

C. 3,4

D. 4,1

解析:dt是一个结构体数组,所以初始化的结果为dt[0]={1,2},at[1]={3,4}。*P=dt;,表示p指向dt[0]。++P->x中,->的优先级大于++,所以表达式等价于++(P->x),因为P->x为1,所以输出这个值为2,同理,第二个++P->Y的值为2+1=3。

5.以下函数按每行8个输出数组中的数据:

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个数组数据后输入一个换行,应该采取对8取余的方法,余数循环一次便换行一次,所以语句为if(i%8==0)printf(\\

6.有以下程序:

#include

int b=2;

int fun(int*k)

{ b=*k+b;

return(b);

}

main()

{ int a[10]={1,2,3,4,5,6,7,8},i;

for(i=2;i<4;i++){b=fun(&a[i])+b;printf(\\(C)

A. 1012

B. 810

C. 1028

D. 1016

解析:变量b是全局变量,所以它的值在整个程序结束时才会消失。for循环第一次i=2,a[i]=3,所以fun(&a[i])=3+2=5,这时b为5,所以输出的b=fun(&a[i])+b=5+5=10。for循环第二次,i=3,b=10,然后fun(&a[i]),代入a[i]=4,这时fun(&a[i])=10+4=14,所以输出的b=fun(&a[i])+b=14+14=28。

7.有以下程序:

#include

void fun(char*s)

{

while(*s)

{

if(*s%2==0)printf(\\(A)

A. d

B. go

C. god

D. good

解析:字符串\\

8.有以下程序:

#include

main()

{ FILE*f;

f=fopen(\\(C)

A. helloabe

B. abelo

C. abe

D. abchello

解析:fopen(\\

9.有以下程序:

#include

int f(int x,int y)

{

return((y-x)*x);

}

main()

{

int a=3,b=4,c=5,d;

d=f(f(a,b),f(a,c));

printf(\\(B)

A. 10

B. 9

C. 8

D. 7

解析:程序执行过程:首先计算f(a,b),代入a=3,b=4得3,然后计算f(a,c),代入a=3,c=5得6,所以d=f(3,6)=9。

10.有以下程序:

#include

#define PT 3.5

#define S(x)PT*x*x

main()

{ int a=1,b=2;

printf(\\(C)

A. 14.0

B. 31.5

C. 7.5

D. 程序有错无输出结果

解析:S(a+b)=PT*a+b*a+b=(PT*a)+(b*a)+b=7.5,程序输出7.5。

注意:宏只能简单替换,不能做任何修改。

11.有以下程序:

#include

main()

{

int a1,a2;char c1,c2;

scanf(\\(A)

A. 12a34b

B. 12_a_34_b

C. 12,a,34,b

D. 12_a34_b

解析:根据scanf函数中的格式说明字符串,各个输入之间没有任何符号,所以键盘输入也应该没有符号。

12.设有宏定义:#define IsDIV(k,n)((k%n=1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是( )。(D)

A. 判断m是否能被5或者7整除

B. 判断m是否能被5和7整除

C. 判断m被5或者7整除是否余1

D. 判断m被5和7整除是否都余1

解析:IsDIV(m,5)&&IsDIV(m,7)为真,

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号