全国计算机等级考试二级C语言指针测试题
更新时间:2024-01-15 07:08:01 阅读量: 教育文库 文档下载
一、选择题
(1)设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是A A)*p=*q; B)p=q; C)*p=&n1; D)p=*q; (2)若有定义:int x=0, *p=&x;,则语句printf(\的输出结果是B A)随机值 B)0 C)x的地址 D)p的地址 (3) 以下定义语句中正确的是C
A) char a='A'b='B'; B) float a=b=10.0; C) int a=10,*b=&a; D) float *a,b=&a; (4) 有以下程序C main()
{ int a=7,b=8,*p,*q,*r; p=&a;q=&b; r=p; p=q;q=r;
printf(\}
程序运行后的输出结果是
A) 8,7,8,7 B) 7,8,7,8 C) 8,7,7,8 D) 7,8,8,7 (5) 设有定义:int a,*pA=&a;以下scanf语句中能正确为变量a读入数据的是A
A) scanf(“%d”,pA) ; B) scanf(“%d”,a) ; C) scanf(“%d”,&pA) ; D) scanf(“%d”,*pA) ; (6) 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是D A) p=1; B) *q=2; C) q=p; D) *p=5; (7) 有以下程序A 以下是引用片段:
void fun(char *a, char *b) { a=b; (*a)++; } main ()
{ char c1=\ p1=&c1; p2=&c2; fun(p1,p2); printf(“%c%c\\n”,c1,c2); }
程序运行后的输出结果是
A) Ab B) aa C) Aa D) Bb
(8) 若程序中已包含头文件stdio.h, 以下选项中,正确运用指针变量的程序段是D A) int *i=NULL; B) float *f=NULL; scanf(\ *f=10.5; C) char t=\ D) long *L;
*c=&t; L=‘\\0’; (9) 有以下程序A 以下是引用片段: #inc1ude main()
{ printf(\ 程序运行后的输出结果是
A) 0 B) 1 C) -1 D) NULL没定义,出错 (10) 已定义以下函数C fun (int *p) { return *p;}
该函数的返回值是
A) 不确定的值 B) 形参p中存放的值 C) 形参p所指存储单元中的值 D) 形参p的地址值 (11) 下列函数定义中,会出现编译错误的是B
A) max(int x, int y,int *z) B) int max(int x,y) { *z=x>y ? x:y; } { int z ;
z=x>y? x:y;
return z ; } C) max (int x,int y) D) int max(int x,int y) { int z; { return(x>y?x:y) ; } z=x>y?x:y; return(z); }
(12) 有以下程序段C 以下是引用片段: main()
{ int a=5, *b, **c; c=&b; b=&a; ?? }
程序在执行了c=&b;b=&a;语句后,表达式:**c的值是 A) 变量a的地址 B) 变量b中的值 C) 变量a中的值 D) 变量b的地址 (13) 有以下程序D 以下是引用片段: main()
{ char a,b,c,*d;
a=’\\’; b=‘\\xbc’; c=‘\\0xab’; d=\ print(\ }
编译时出现错误,以下叙述中正确的是 A) 程序中只有a=’\\’;语句不正确 B) b=‘\\xbc’;语句不正确 C) d=\语句不正确
D) a=’\\’;和c=‘\\0xab’;语句都不正确 (14) 若有以下定义和语句 以下是引用片段: #include
int a=4,b=3,*p,*q,*w;
p=&a; q=&b; w=q; q=NULL; 则以下选项中错误的语句是A
A) *q=0; B) w=p; C) *p=a; (15) 有以下程序 以下是引用片段:
int *f(int *x,int *y) { if(*x<*y) return x; else return y; }
main()
{ int a=7,b=8,*p=&a,*q=&b,*r}; r=f(p,q);
printf(“%d,%d,%d”,*p,*q,*r); }
执行后输出结果是B
A) 7,8,8 B) 7,8,7 C) 8,7,7 D) *p=*w; D) 8,7,8
(16) 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是D A) p=q; B) *p=*q; C) n=*q; D) p=n; (17) 有以下程序D 以下是引用片段:
void fun(char *c,int d) { *c=*c+1;d=d+1;
printf(“%c,%c,”,*c,d); }
main()
{ char a=’A’,b=’a’;
fun(&b,a); printf(“%c,%c\\n”,a,b); }
程序运行后的输出结果是
A)B,a,B,a B) a,B,a,B C) A,b,A,b D) b,B,A,b
(18) 若有说明语句:int a,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是A A) scanf(\ B) scanf(\ C) scanf(\ D) scanf(\ (19) 若定义:int a=511,*b=&a;, 则printf(\的输出结果为D
A) 无确定值 B) a的地址 C) 512 D) 511 (20) 若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是B A) i=*p; B) p*=*&j; C) i=&j; D) i=**p; (21) 下列程序段的输出结果是A
A) 2 1 4 3 B) 1 2 1 2 C) 1 2 3 4 D) 2 1 1 2 以下是引用片段:
void fun(int *x, int *y)
{ printf(“%d %d”, *x, *y); *x=3; *y=4;} main()
{ int x=1,y=2; fun(&y,&x);
printf(“%d %d”,x, y); }
(22) 下列程序的运行结果是B
A) 6 3 B) 3 6 C) 编译出错 D) 0 0 以下是引用片段:
void fun(int *a, int *b) { int *k;
k=a; a=b; b=k; }
main()
{ int a=3, b=6, *x=&a, *y=&b; fun(x,y);
printf(“%d %d”, a, b); }
(23) 有如下程序段B int *p,a=10,b=1 p=&a; a=*p+b;
执行该程序段后,a的值为
A) 12 B) 11 C) 10 D) 编译出错 (24) 有以下函数B char fun(char *p)
{ return p; }
该函数的返回值是
A) 无确切的值 B) 形参p中存放的地址值
B) 一个临时存储单元的地址 D) 形参p自身的地址值 (25) 请选出正确的程序段C
A) int *p; B) int *s, k; scanf(\ *s=100;
? ? C) int *s, k; D) int *s, k; char *p, c; char *p, e; s=&k; s=&k; p=&c; p=&c; *p='a'; s=p; ? *s=1; ? (26) 若有以下定义和语句:D double r=99, *p=&r; *p=r;
则以下正确的叙述是
A) 以下两处的*p含义相同,都说明给指针变量p赋值
B) 在\, *p=&r;\中,把r的地址赋值给了p所指的存储单元 C) 语句\把变量r的值赋给指针变量p D) 语句\取变量r的值放回r中 (27) 以下程序运行后,a的值是C
A) 4 B) 1 C) 0 D) 运行时出错,a无定值 以下是引用片段: main()
{ int a,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; printf(\ }
(28) 有以下程序C 以下是引用片段:
int fun(int x,int y,int *cp,int *dp) { *cp=x+y; *dp=x-y; } main()
{ int a, b, c, d; a=30; b=50; fun(a,b,&c,&d);
printf(\ } 输出结果是
A) 50,30 B) 30,J50 C) 80,-20 D) 80,20 (29) 若有定义和语句:D int **pp,*p,a=10,b=20;
pp=&p;p=&a;p=&b;printf(\ 则输出结果是:
A)10,20 B)10,10 C)20,10 D)20,20 (30) 以下程序的输出结果是A 以下是引用片段:
#include
subl(char a,char b) {char c; c=a;a=b;b=c;} sub2(char* a,char b) {char c; c=*a;*a=b;b=c;}
sub3(char* a,char*b) {char c; c=*a;*a=*b;*b=c;} { char a,b; a='A';b='B';sub3(&a,&b);putchar(a);putchar(b); a='A';b='B';sub2(&a,b);putchar(a);prtchar(b); a='A';b='B';sub1(a,b);putchar(a);putchar(b); }
A) BABBAB B) ABBBBA C) BABABA D) BAABBA (31) 若有说明:int i,j=7, *p=&i;,则与i=j;等价的语句是B
A) I= *P; B) *P=*&J; C) i=&j; D) i=* *p;
(32) 要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。能正确招待此功能的函数是D A)funa(int *x,int *y) B) funb(int x,int y) {int *p; {int t; *p=*x;*x=*y;*y=*p;} t=x;x=y;y=t;} C) func(int *x,int *y) D) fund(int x,int y)
{*x=*y;*y=*x;} {*x=*x+*y; *y=*x-*y; *x=*x-*y; } 二、填空题: (1) 有以下程序
以下是引用片段:
void f( int y,int *x) {y=y+*x; *x=*x+y;} main( )
{ int x=2,y=4; f(y,&x);
printf(“%d %d\\n”,x,y); }
执行后输出的结果是【1】 。8 4
(2) 下面程序的运行结果是: [2] 。35 以下是引用片段:
void swap(int *a,int *b) { int *t;
t=a; a=b; b=t; }
main()
{ int x=3,y=5,*p=&x,*q=&y; swap(p,q);
printf(“%d%d\\n”,*p,*q); }
(3) 设有以下程序: 以下是引用片段: main()
{ int a, b, k=4, m=6, *p1=&k, *p2=&m; a=pl==&m;
b=(*p1)/(*p2)+7; printf(“a=%d\\n”,a); printf(“b=%d\\n”,b); }
执行该程序后,a的值为【3】0 ,b的值为【4】7 。 (4) 下列程序的输出结果是 【5】0 。 以下是引用片段: void fun(int *n) { while( (*n)--);
printf(“%d”,++(*n)); }
main()
{ int a=100; fun(&a); }
(5) 以下函数用来求出两整数之和,并通过形参将结果传回,请填空。 以下是引用片段:
void func(int x,int y, 【6】 z) int * { *z=x+y; }
(6) 函数 void fun(float *sn, int n)的功能是:
根据以下公式计算S=1-1/3+1/5-1/7+…,计算结果通过形参指针sn传回;n通过形参传入,n的值大于等于0。请填空。 以下是引用片段:
void fun( float *sn, int n) { float s=0.0, w, f=-1.0; int i=0;
for(i=0; i<=n; i++)
{ f=【7】 * f; -1 w=f/(2*i+1); s+=w; }
【8】 =s; *sn }
(7) 以下函数的功能是,把两个整数指针所指的存储单元中的内容进行交换。请填空。 以下是引用片段:
exchange(int *x, int *y) { int t;
t=*y; *y= 【9】 ; *x
*x= 【10】 ; t }
(8) 下面函数要求用来求出两个整数之和,并通过形参传回两数相加之和值,请填空。 int add(int x,int y, 【11】 z) int * { 【12】 =x+y;} *z
答案: 一、选择题
01) A 02) B 03) C 04) C 05) A 06) D 07) A 08) D 09) A 10) C 11) B 12) C 13) D 14) A 15) B 16) D 17) D 18) A 19) D 20) B 21) A 22) B 23) B 24) B 25) C
26) D 27) C 28) C 29) D 30) A 31) B 32) D 二、填空题
(1) 8 4 (2) 3 5 (3) 0 (4) 7 (5) 0 (6) int * (7) –1 (8) *sn (9) *x (10) t (11) int * (12) *z
正在阅读:
全国计算机等级考试二级C语言指针测试题01-15
上海一年级语文生字表和组词表03-28
企业生产自查报告08-22
食品生产许可生产者名称、法定代表人、住所、生产地址名称、品种明细、外设仓库地址等变更 - 图文10-30
算法的概念教学设计(徐小艳)11-24
山西省运城市临猗中学高中生物 2.4 免疫调节教案 新人教版必修304-20
探析建筑工程钻孔灌注桩施工技术06-02
干一行爱一行辩论赛09-13
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 测试题
- 等级考试
- 指针
- 二级
- 语言
- 计算机
- 全国
- 基于MATLAB的MIMO通信系统仿真
- 宁波市城市市政基础设施配套费管理办法
- 党的基础知识练习题
- 十二、手术(有创操作)分级管理制度
- 气动实验指导书
- 美国为什么要打南斯拉夫
- CEAC OFFICE(Word)WORD 2010题库
- 问题·对策:企业发展中的公共关系
- 测量篮球场综合实践活动方案
- 燃料电池电动车行业十三五投资机遇与运行现状研究咨询报告2016-2021年
- 思考与回答:电介质中的静电场
- 跟踪审计的工作内容
- 二次函数基础练习题大全(含答案)
- 毕业设计 - 基于单片机的供暖锅炉控制系统的设计(含外文翻译)
- 2017年湖南省常德市高三模拟考试政治试题及答案
- 高考模拟试题1
- 2013-2018年中国工业制冰机行业分析专项调研报告
- 变量数学时期
- 同济大学研究生“三助”工作管理暂行办法
- 南京医科大学转专业小指南 - 图文