[计算机类试卷]国家二级C语言机试(指针)模拟试卷1及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(指针)模拟试卷1及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(指针)模拟试卷1及答案与解析.doc(24页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试(指针)模拟试卷 1及答案与解析 一、选择题 1 以下叙述中正确的是( )。 ( A) int* p1; int * p2; int *p3;都是合法的定义指针变量的语句 ( B)指针变量只能通过求地址运算符( 与 p=0;是等价的语句 ( D)语句 p=NULL;执行后,指针 p指向地址为 0的存储单元 2 以下叙述中正确的是( )。 ( A)如果企图通过一个空指针来访问一个存储单元,将会得到一个出错信息 ( B)即使不进行强制类型转换,在进 行指针赋值运算时,指针变量的基类型也可以不同 ( C)设变量 p是一个指针变量,则语句 p=0;是非法的,应该使用 p=NULL;
2、 ( D)指针变量之间不能用关系运算符进行比较 3 以下叙述中正确的是( )。 ( A)在对指针进行加、减算术运算时,数字 1表示 1个存储单元的长度 ( B)如果 p是指针变量,则 *p表示变量 p的地址值 ( C)如果 p是指针变量,则 则以下叙述中正确的是( )。 ( A)语句 a = 是非法的 ( B)表达式 a+1 是非法的 ( C)三个表达式 a1、 *(a+1)、 * p = for( x=0; x main() int a = 10,20,30,40 , *p=a, i ; for( i=0; i int *f(int *s,int *t) if (*s int add( in
3、t a,int b) return (a+b); main() int k, (*f)(), a=5,b=10; f=add; 则以下函数调用语句错误的是( )。 ( A) k= *f(a,b); ( B) k=add(a,b); ( C) k=(*f)(a,b); ( D) k=f(a,b); 16 有以下程序 #include main() int n,*p=NULL; *p= printf(“Input n:“); scanf(“%d“, printf(“output n:“); printf(“%dn“,p); 该程序试图通过指针 p为变量 n读入数据并输出,但程序有多处错误,以下语句
4、正确的是( )。 ( A) int n,*p=NULL; ( B) *p= ( C) scanf(“%d“, 17 若有定义语句: double a, *p= 以下叙述中错误的是( )。 ( A)定义语句中的 * 号是一个间址运算符 ( B)定义语句中的 * 号是一个说明符 ( C)定义语句中的 p只能存放 double类型变量的地址 ( D)定义语句中 *p= 执行 px= py= 正确的输入语句是( )。 ( A) scanf(“%lf %le“, px, py); ( B) scanf(“%f %f“ ( C) scanf(“%f %f“, x, y); ( D) scanf(“%lf
5、%lf“,x, y); 19 有以下程序 #include main() int m=1,n=2,*p= r=p; p=q; q=r; printf(“%d,%d,%d,%dn“,m,n,*p,*q); 程序运行后的输出结果是( )。 ( A) 1,2,2,1 ( B) 1,2,1,2 ( C) 2,1,2,1 ( D) 2,1,1,2 20 若有以下定义 int x10, *pt=x; 则对 x数组元素的正确引用是( )。 ( A) *(x+3) ( B) * for(i=0;i void f( int *q ) int i=0; for ( ;i int fun(int (*s)4, in
6、t n, int k) int m, i; m=s0k; for(i=1; im) m= sik; return m; main() int a44=1,2,3,4, 11,12,13,14, 21,22,23,24, 31,32,33,34; printf(“%dn“,fun(a,4,0); 程序的运行结果是( )。 ( A) 31 ( B) 34 ( C) 4 ( D) 32 26 有以下程序 #include void fun(char *c,int d) *c=*c+1; d=d+1; printf(“%c,%c,“,*c,d); main() char b=a,a=A; fun( p
7、rintf(“%c,%cn“,b,a); 程序运行后的输出结果是( )。 ( A) b,B,b,A ( B) b,B,B,A ( C) a,B,B,a ( D) a,B,a,B 27 以下函数实现按每行 8个输出 w所 指数组中的数据 #include void fun( int *w, int n) int i; for(i=0;i void fun (char *c) while(*c) if( *c = a pf=fun; ( B) void *pf(); pf=fun; ( C) void *pf(); *pf=fun; ( D) void (*pf)(int,char); pf= 3
8、0 有以下程序 #include void fun(int *s, int n1, int n2) int i, j, t; i=n1; j=n2; while( i main() int a=1, b=3, c=5; int *p1= *p =*p1*(*p2); printf(“%dn“,c); 执行后的输出结果是( )。 ( A) 3 ( B) 2 ( C) 1 ( D) 4 32 有以下程序 #include void f(int *p,int *q); main() int m=1,n=2,*r= f(r, printf(“%d,%d“,m,n); void f(int *p,int
9、 *q) p=p+1; *q=*q+1; 程序运行后的输出结果是( )。 ( A) 1,3 ( B) 2,3 ( C) 1,4 ( D) 1,2 33 若有定义语句: int a23,*p3; 则以下语句中正确的是( )。 ( A) p0= ( B) p0=a; ( C) p=a; ( D) p1= 34 设有定义语句 int (*f)(int); 则以下叙述正确的是( )。 ( A) f是指向函数的指针变量,该函数具有一个 int类型的形参 ( B) f是基类型为 int的指针变量 ( C) f是指向 int类型一维数组的指针变量 ( D) f是函数名,该函数的返回值是基类型为 int类型的
10、地址 35 有以下程序 #include void fun( int *a,int *b) int *c; c=a;a=b;b=c; main() int x=3, y=5, *p= fun(p,q); printf(“%d,%d,“,*p,*q); fun( printf(“%d,%dn“,*p,*q); 程序运行后的输出结果是( )。 ( A) 3,5,3,5 ( B) 3,5,5,3 ( C) 5,3,3,5 ( D) 5,3,5,3 国家二级 C语言机试(指针)模拟试卷 1答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 考查指针变量。指针变量的定义形式为: 类型名 *指针
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 指针 模拟 答案 解析 DOC
