首页 > 全部 > 二级C语言 > 国家二级C语言机试(选择题)模拟试卷570

国家二级C语言机试(选择题)模拟试卷570

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

国家二级C语言机试(选择题)模拟试卷570

公共基础选择题

1.有以下程序:

#include

void f(int *p,int *q);

main( )

{

int m=1,n=2,*r=&m;

f(r,&n);

printf("%d,%d",m,n);

}

void f(int *p,int *q)

{

P=P+1;

*q=*q+1;

}

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

A. 2,3

B. 1,3

C. 1,4

D. 1,2

解析:在f(int * p,int * q)函数中,执行“p=p+1;”是将p所对应的地址加1,而“*q=*q+1;”是将q所指向n的地址所对应的值加1,所以m的值没有变,而n的值则变为3。故本题答案为B选项。

2.若有定义语句“double a,*P=&a;”,下列叙述中错误的是( )。(A)

A. 定义语句中的“*”是一个间址运算符

B. 定义语句中的“*”是一个说明符

C. 定义语句中的“P”只能存放double类型变量的地址

D. 定义语句中,“*P=&a”把变量a的地址作为初值赋给指针变量P

解析:变量定义语句“double a,*p=&a;”中,“*”是一个指针运算符,而非间址运算符。故本题答案为A选项。

3.若有定义“double x,y,*px,*Py;”,执行了“px=&x;Py=&y;”之后,正确的输入语句是( )。(A)

A. scanf("%If%le",px,Py);

B. scanf("%f%f"&x,&y);

C. scanf("%f%f",x,y);

D. scanf("%If%If",x,y);

解析:因为x和y都是double型数据,输入时的格式控制字符应为%lf,所以B、C选项错误。D选项中的“scanf("%lf%lf",x,y);”应为“scanf("%lf%lf",&x,&y);”,所以D选项错误。故本题答案为A选项。

4.若有定义“int a[2][3],*P[3];”,则以下语句中正确的是( )。(C)

A. P=a;

B. p[0]=a;

C. P[0]=&a[1][2];

D. P[1]=&a;

解析:A选项错误,因为p是指向一个指针数组,而数组名相当于常量,不能重新赋值。B选项错误,因为p[0]是一个int指针,也就是int*,而a是一个指向指针的指针int * *。C选项正确,因为p[0]是int*,a[1][2]是int,&a[1][2]是int*,类型吻合。D选项错误,因为a作为数组名,不能取地址,即使能取,p[1]是int*,&a是int * * *,类型不吻合。故本题答案为C选项。

5.下列函数的功能是( )。

void fun(char *a,char *b)

{ while((*b=*a)!='\0')

{

a++;

b++;

}

}(A)

A. 将a所指字符串赋给b所指空间

B. 使指针b指向a所指字符串

C. 将a所指字符串和b所指字符串进行比较

D. 检查a和b所指字符串中是否有'\0'

解析:题目的fun函数内,while循环条件为“(*b=*a)!=“\0””,执行时先把指针a所指向的字符赋给指针b所在的内存单元。如果该字符不是结束标识“\0”,执行循环体“a++;b++;”,指针a、b分别指向下一个字符单元。再判断循环条件,如果成立,继续把指针a所指向的字符赋给指针b所在的内存单元,直到遇到结束标识为止。故本题答案为A选项。

6.若有定义“int w[3][5];”,则以下不能正确表示该数组元素的表达式是( )。(D)

A. *(&w[0][0]+1)

B. *(*w+3)

C. *(*(w+1))

D. *(w+1)[4]

解析:A选项中,“*(&w[0][0]+1)”表示“w[0][1]”;B选项中,“*(*w+3)”表示“w[0][3]”;C选项中,“*(*(w+1))”表示“w[1][0]”;D选项中,“*(w+1)[4]”的正确写法是“(*(w+1))[4]”,表示“w[1][4]”。故本题答案为D选项。

7.有以下程序(注:字符a的ASCII值为97):

#include

main( )

{ char *s={"abc"};

do

{printf("%d",*s%10);

++s:

}while(*s);

}

程序的运行结果是( )。(A)

A. 789

B. abc

C. 7890

D. 979899

解析:因为小写字符a、b、c的ASCII值分别为97、98、99。在do while循环语句中,每次对字符的ASCII值取余数并输出,所以分别输出7、8、9。故本题答案为A选项。

8.有以下函数:

int fun(char *x,char *y)

{ int n=0;

while((*x==*y)&& *x!='\0')

{x++;

y++;

n++;

}

return n;

}

函数的功能是( )。(C)

A. 将y所指字符串赋给x所指存储空间

B. 查找x和y所指字符串中是否有'\0'

C. 统计x和y所指字符串中最前面连续相同的字符个数

D. 统计x和y所指字符串中相同的字符个数

解析:本题中由循环条件可知,遇到“\0”或x与y所指的字符不相等时循环结束。所以函数的功能是统计x和y所指字符串中最前面连续相同的字符个数。故本题答案为C选项。

9.设有定义语句“int(*f)(int);”,则下列叙述中正确的是( )。(B)

A. f是基类型为int的指针变量

B. f是指向函数的指针变量,该函数具有一个int类型的形参

C. f是指向int类型一维数组的指针变量

D. f是函数名,该函数的返回值是基类型为int的地址

解析:此定义语句“int(*f)(int);”为指向函数的指针变量的定义方法,其中f为指向函数的指针变量,第1个int为函数返回值类型,第2个int为函数的形参类型。故本题答案为B选项。

10.函数fun的功能是在a所指的具有n个元素的数组中查找最大值并返回给调用函数,但函数不完整:

int fun(int *a,int n)<

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

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

推荐资源

客服

扫码添加客服微信

热线

官方客服

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

电话客服:

客服微信:pujinet

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

公众号

扫码关注微信公众号