【计算机类职业资格】国家二级C语言机试(编译预处理和指针)模拟试卷7及答案解析.doc
《【计算机类职业资格】国家二级C语言机试(编译预处理和指针)模拟试卷7及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】国家二级C语言机试(编译预处理和指针)模拟试卷7及答案解析.doc(11页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C 语言机试(编译预处理和指针)模拟试卷 7 及答案解析(总分:56.00,做题时间:90 分钟)一、选择题(总题数:28,分数:56.00)1.有以下程序: #includestdioh void main() void fun(char*c) char s81; while(*c) gets(s);fun(s);puts(s); if(*c=a&*c=z)*c=*c(aA); c+: 当执行程序时从键盘上输入 Hello Beijing回车,则程序的输出结果是(分数:2.00)A.HELLO BEIJINGB.Hello BeijingC.hello BeijingD.hELLO
2、 Beijing2.有以下程序 #includestdioh void f(int*p,int*q) void f(int*p,int*q); main() p=p+1;*q=*q+1; int m=1,n=2,*r=&m; f(r,&n);printf(“d,d“,m,n); 程序运行后的输出结果是(分数:2.00)A.2,3B.1,3C.1,4D.1,23.有以下程序 #includestdioh main() void fun(int*a,int*b) int x=3,y=5,*p=&x,*q=&y; int*c; fun(p,q);printf(“d,d,“,*p,*q); c=a;a
3、=b;b=c; fun(&x,&y);printf(“d,dn“,*p,*q);程序运行后的输出结果是(分数:2.00)A.3,5,5,3B.3,5,3,5C.5,3,3,5D.5,3,5,34.有下列程序: void f(int b) int I; for(i=2;i6;i+)bi*=2; main() int a10=1,2,3,4,5,6,7,8,9,10,i; f(a); for(i=0;i10,i+)printf(“d,“,ai);程序运行后的输出结果是(分数:2.00)A.1,2,3,4,5,6,7,8,9,10,B.1,2,3,4,10,12,14,16,9,10,C.1,2,6
4、,8,10,12,7,8,9,10,D.1,2,6,8,10,12,14,16,9,10,5.有以下程序 #includestdioh int fun(char s) main() int n=0; char s10=6,1,*,4,*,9,*,0,*; while(*s=9&*s=0) printf(“dn“,fun(s); n=10*n+*s0;s+; return(n);程序的运行结果是(分数:2.00)A.61490B.61C.9D.56.若有以下程序 #includestdioh void sp(int*a) int b=2; main()int k=3,*p=k; a=&b; sp
5、(p); *a=*a*2; printf(“d,dn“,k,*p); printf(“d,“,*a); 则程序的输出结果是(分数:2.00)A.4,3,4B.4,3,3C.6,3,6D.6,6,67.若有以下程序 #includestdioh int k=7: void f(int*s)int*t=&k; *s=t: printf(“d,d,d,“,k,*t,*s); main()int i=3, *p=&i,*r=&p; f(r);printf(“d,d,dn“,i,*p,*r);则程序的输出结果是(分数:2.00)A.3,7,7,7,7,7B.7,7,7,3,3,3C.3,3,3,7,7,
6、7D.7,7,7,3,7,78.若有以下程序 #includestdioh int*f(int*s,int*t)int*k;if(*s*t) k=s;s=t;t=k; return s; main() int i=3,j=5,*p=&i,*q=&j,*r; r=f(p,q); printf(“d,d,d,d,dn“,i,j,*P,*q,*r);则程序的输出结果是(分数:2.00)A.3,5,5,3,5B.5,3,5,3,5C.5,3,3,5,5D.3,5,3,5,59.若有以下程序 #includestdioh main()int k=3; void sp(int*a)int b=2; sp(
7、&k); *a=*a*2; printf(“dn“,k); printf(“d,“,*a); a=b; *a=*a*2; pfintf(“d,“,*a);则程序的输出结果是(分数:2.00)A.6,4,6B.6,4,3C.6,12,12D.9,4,910.若有以下程序 #includestdioh int k=7,m=5; void f(int*s)int*t=&k; s=&t;*s=&m; printf(“d,d,d,“,k,*t,*s); main()int i=3,*p=&i,*r=&p; f(r); printf(“d,d,dn“,i,*P,*r);则程序的输出结果是(分数:2.00)
8、A.7,5,7,3,3,3,B.7,5,7,3,5,7,C.7,5,5,3,3,3,D.7,7,5,3,3,3,11.若有以下程序 #includestdioh int*f(int*s,int*t)int k; if(*s*t) k=*s;*s=*t;*t=k; return s; main()int i=3,j=5,*p=&i,*q=j,*r; r=f(p,q); printf(“d,d,d,d,dn“,i,j,*p,*q,*r);则程序的输出结果是(分数:2.00)A.3,5,5,3,5B.3,5,3,5,5C.5,3,5,3,5D.5,3,3,5,512.有以下程序 #includest
9、dioh int funa(int a,int b)return a+b; int funb(int a,int b)return a-b; int sss(int(*t)(),int x,int y)return(*t)(x,y); main()int x; x=sss(funa,9,3); x+=sss(funb,8,3); printf(“dn“,x);程序运行后的输出结果是(分数:2.00)A.17B.23C.24D.2213.有以下程序 void fun(int x,int y,int*c,int*d) *c=x+y;*d=xy; main()int a=4,b=3,c=0,d=0;
10、 fun(a,b,&c,&d); printf(“ddn“,c,d);程序的输出结果是(分数:2.00)A.4 3B.3 4C.7 1D.0 014.有以下程序 void fun(int*p,int*q)int t;t=*p;*p=*q;*q=t;*q=*p; main()int a=0,b=9; fun(&a,&b); printf(“ddn“,a,b);程序的输出结果是(分数:2.00)A.0 0B.9 9C.9 0D.0 915.有以下程序 char fun(char*c)if(*c=Z&*c=A) *c=Aa; return*c; main()char s81,*p=s; gets(s
11、); while(*p) *p=fun(p); putchar(*p); p+; printf(“n“);若运行时从键盘上输入 OPEN THE DOOR,程序的输出结果是(分数:2.00)A.oPEN tHE dOORB.open the doorC.OPEN THE DOORD.Open The Door16.有以下程序 void swap(char*x,char*y) main() char t; char*s1=“abc“,*s2=“123“; t=*x;*x=*y;*y=t; swap(s1,s2);printf(“s,sn“,s1,s2); 程序执行后的输出结果是(分数:2.00)
12、A.abc,123B.123,abcC.321,cbaD.1bc,a2317.有以下函数 int fun(char*x,char*y)int n=0; while(*x=*y)&*x!=0) x+;y+;n+; return n;函数的功能是(分数:2.00)A.查找 x 和 y 所指字符串中是否有0B.统计 x 和 y 所指字符串中最前面连续相同的字符个数C.将 y 所指字符串赋给 x 所指存储空间D.统计 x 和 y 所指字符串中相同的字符个数18.有以下函数 int fun(char*s)char*t=s;while(*t+);return(t-s);)该函数的功能是(分数:2.00)A
13、.比较两个字符串的大小B.计算 s 所指字符串的长度C.计算 s 所指字符串占用内存字节的个数D.将 s 所指字符串复制到字符串 t 中19.有以下程序(说明:字母 A 的 ASCII 码值是 65) void fun(char*s)while(*s) if(*s2) printf(“c“,*s);s+; main()char a=“BYTE“; fun(a);printf(“n“);程序运行后的输出结果是(分数:2.00)A.BTB.YEC.YTD.BY20.有以下程序 #includestdioh void fun(char*p) +p;printf(“sn“,*p); main() ch
14、ar*a=(“Morning“,“Afternoon“,“Evening“,“Night“); fun(a);程序的运行结果是(分数:2.00)A.fternoonB.MorningC.orningD.Afternoon21.有以下程序 void fun1(char 宰 P) main() char*q; char a=“Program“),*p; q=p; p=&a3;fun1(p);printf(“sn“,a); while(*q!=0) (*q)+;q+;程序执行后的输出结果是(分数:2.00)A.PrphsbnB.ProhsbnC.ProgsbnD.Program22.有以下程序 #i
15、ncludestdioh main() void fun(char*a,char*b) char*s=“*a*b*“,t80; while(*a=*)a+; fun(s,t);puts(t); while(*b=*a)b+;a+; 程序的运行结果是(分数:2.00)A.a*bB.*a*bC.a*b*D.ab23.下列函数的功能是 void fun(char*a,char*b)while(*b=*a)!=0)a+;b+;(分数:2.00)A.使指针 b 指向 a 所指字符串B.将 a 所指字符串和 b 所指字符串进行比较C.将 a 所指字符串赋给 b 所指空间D.检查 a 和 b 所指字符串中是
16、否有024.有以下程序 #includestdioh #includestringh void fun(char s10,int n) char t;int i,j; for(i=0;in1;i+) for(j=i+l jn;j+) if(si0sj0)t=si0;si0=sj0;sj0=t; main() char ss510=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“; fun(ss,5);printf(“s,sn“,ss0,ss4);程序的运行结果是(分数:2.00)A.aaaacc,xyB.bcc,aabccC.xy,aaaaccD.aabcc,bcc25.有
17、以下程序 #includestdioh main() void fun(char*t,char*s) char ss10=“acc“,aa10=“bbxxyy“; while(*t!=0)t+; fun(ss,aa);printf(“s,sn“,ss,aa); while(*t+=*s+)!=0); 程序的运行结果是(分数:2.00)A.acc,bbxxyyB.accxxyy,bbxxyyC.accbbxxyy,bbxxyyD.accxyy,bbxxyy26.有以下程序 #includestdioh #includestringh void fun(char*w,int m) char s,*
18、p1,*p2; p1=w;p2=w+m1; while(p1p2)s=*p1;*p1=*p2;*p2=s;p1+;p2-; main() char a=“123456“; fun(a,strlen(a);puts(a);(分数:2.00)A.116611B.161616C.654321D.12345627.有以下程序: #includestdioh int b=2: int fun(int*k) b=*k+b;return(b); main() int a10=1,2,3,4,5,6,7,8,i; for(i=2;i4;i+)b=fun(&ai)+b;printf(“d“5b); printf
19、(“n“):程序运行后的输出结果是(分数:2.00)A.8 10B.10 28C.10 12D.10 1628.有以下程序 #includestdioh #includestringh void fun(int*p1,int*p2,int*s) s=(int*)calloc(1,sizeof(int); *s=*p1+*p2;free(s); main() int a2=1,2,b2=40,50,*q=a; fun(a,b,q); printf(“dn“,*q);程序运行后的输出结果是(分数:2.00)A.41B.42C.0D.1国家二级 C 语言机试(编译预处理和指针)模拟试卷 7 答案解析
20、(总分:56.00,做题时间:90 分钟)一、选择题(总题数:28,分数:56.00)1.有以下程序: #includestdioh void main() void fun(char*c) char s81; while(*c) gets(s);fun(s);puts(s); if(*c=a&*c=z)*c=*c(aA); c+: 当执行程序时从键盘上输入 Hello Beijing回车,则程序的输出结果是(分数:2.00)A.HELLO BEIJING B.Hello BeijingC.hello BeijingD.hELLO Beijing解析:解析:子函数 fun 的功能是把小写字母转
21、换成大写字母,所以程序的输出结果为选项 A)。2.有以下程序 #includestdioh void f(int*p,int*q) void f(int*p,int*q); main() p=p+1;*q=*q+1; int m=1,n=2,*r=&m; f(r,&n);printf(“d,d“,m,n); 程序运行后的输出结果是(分数:2.00)A.2,3B.1,3 C.1,4D.1,2解析:解析:本题考查函数的调用与指针。fun()函数的作用是:使指针 p 指向原来所指变量的下一个变量,使 q 指针指向的值加 1。主函数中,指针 r 指向 m,调用 fun()函数的结果是,使 r 指向地址
22、位于 m后面的变量,使位丁 n 的地址上的变量(就是 n)的值加 1,因此,结果为 1,3。3.有以下程序 #includestdioh main() void fun(int*a,int*b) int x=3,y=5,*p=&x,*q=&y; int*c; fun(p,q);printf(“d,d,“,*p,*q); c=a;a=b;b=c; fun(&x,&y);printf(“d,dn“,*p,*q);程序运行后的输出结果是(分数:2.00)A.3,5,5,3B.3,5,3,5 C.5,3,3,5D.5,3,5,3解析:解析:本题考查函数的调用与指针。p 和 q 分别为指向 x 和 y
23、的指针,函数 fun()的两个形参均为指针型,主要功能为交换两个指针的指向,当调用结束以后,该操作不能返回主函数。而主函数中,fun(p,q)、fun(&x,&y)的实参均为 x 与 y 的地址,因此,两者结果相同,并且两者指针指向的值不能变化。4.有下列程序: void f(int b) int I; for(i=2;i6;i+)bi*=2; main() int a10=1,2,3,4,5,6,7,8,9,10,i; f(a); for(i=0;i10,i+)printf(“d,“,ai);程序运行后的输出结果是(分数:2.00)A.1,2,3,4,5,6,7,8,9,10,B.1,2,3
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 国家 二级 语言 编译 预处理 指针 模拟 试卷 答案 解析 DOC
