[计算机类试卷]国家二级C语言(编译预处理和指针)机试模拟试卷6及答案与解析.doc
《[计算机类试卷]国家二级C语言(编译预处理和指针)机试模拟试卷6及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言(编译预处理和指针)机试模拟试卷6及答案与解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言(编译预处理和指针)机试模拟试卷 6及答案与解析 一、选择题 1 以下关于宏的叙述中正确的是 ( A)宏定义必须位于源程序中所有语句之前 ( B)宏名必须用大写字母表示 ( C)宏调用比函数调用耗费时间 ( D)宏替换没有数据类型限制 2 有以下程序,程序运行后的输出结果是 #include stdio h #define SUB(a)(a)-(a) main()int a=2, b=3, C=5, d; d=SUB(a+b)*c: printf(“ d n“, d); ( A) -12 ( B) 0 ( C) 10 ( D) -20 3 以下叙述中错误的是 ( A)预处理命令
2、行的最后不能以分号表示结束 ( B) C程序对预处理命令行的处理是在程序执行的过程中进行的 ( C) #define MAX是合法的宏定义命令行 ( D)在程序中凡是以 “#”开始的语句行都是预处理命令行 4 有以下程序,程序运行后的输出结果是 #include stdio_h #define N 2 #define M N+1 #define NUM(M+1)*M 2 main()orintf(“ d n“, NUM1); ( A) 4 ( B) 8 ( C) 9 ( D) 6 5 有以下程序,程序的输出结果是 #include stdio h #define SQR(X)X*X main(
3、)int a=10, k=2, m=1; a =SQR(k+m) SQR(k+m); printf(“ d n“, a); ( A) 0 ( B) 1 ( C) 9 ( D) 10 6 有以下程序,程序运行后的输出结果是 #include stdio h #include stdlib-h main() int*a, *b, *c; a=b=c=(int*)malloc(sizeof(int); *a=1: *b=2, *c=3; a=b; printf(“ d, d, d n“, *a, *b, *c); ( A) 2, 2, 3 ( B) 3, 3, 3 ( C) 1, 2, 3 ( D)
4、 1, 1, 3 7 有以下程序,程序的输出结果是 void fun(double*p1, double*p2, double*s) s=(double*)calloc(1, sizeof(double); *s=*P1+*(p2+1); main()double a2=1 1, 2 2, b2=10 0, 20 0, *s=a; fun(a, b, s); printf(“ 5 2f n“, *s); ( A) 1 10 ( B) 11 10 ( C) 12 10 ( D) 21 10 8 以下叙述中正确的是 ( A)指针变量只能通过求地址运算符 (&)来获得地址值 ( B)语句 “p=NU
5、LL; ”与 “p= 0; ”是等价的语句 ( C) “int*P1; int*p2; int*p3; ”都是合法的定义指针变量的语句 ( D)语句 p=NULL;执行后,指针 P指向地址为 0的存储单元 9 设有定义: int x=0, *p;紧接着的赋值语句正确的是 ( A) *p=NULL; ( B) p=NULL; ( C) p=x; ( D) *p=x; 10 有以下程序,程序运行后的输出结果是 main()int m=1, n=2, *p=&m, *q=&n, *r; r=p; p=q; q=r; printf(“ d, d, d, d n“, m, n, *p, *q); ( A
6、) 1, 2, 1, 2 ( B) 1, 2, 2, 1 ( C) 2, 1, 2, 1 ( D) 2, 1, 1, 2 11 有以下程序,执行后的输出结果是 main()int a=1, b=3, c=5; int*p1=&a, *p2=&b, *p=&c; *p=*p1*(*p2); printf(“ d n“, c); ( A) 2 ( B) 3 ( C) 1 ( D) 4 12 有以下程序 main()int a5=2, 4, 6, 8, 10, *p, *k; p=a: k=&p; printf(“ d“, *(p+); printf(“ d n“, *k); 程序运行后的输出结果是
7、 ( A) 4 4 ( B) 2 4 ( C) 2 2 ( D) 4 6 13 设有定义 : char*c:以下选项中能够使 c正确指向一个字符串的是 ( A) char str=“string“; c=str; ( B) scanf(“ s“, c); ( C) c=getchar(); ( D) *c=“string“; 14 若有以下定义 int x10, *pt=x;则对 x数组元素的正确引用是 ( A) *(x+3) ( B) *&x10 ( C) *(pt+10) ( D) pt+3 15 有以下程序 void fun(int n, int*s)int f; if(n=1)*s=n
8、+1; elsefun(n-1, &f); *s=f; main()int x=0; fun(4, &x); printf(“ d n“, x); 程序运行后的输出结果是 ( A) 1 ( B) 3 ( C) 4 ( D) 2 16 有下列程序: void f(int*q) main() int i=0; int a5=1, 2, 3, 4, 5), i; for(; i 5; i+)(*q)+; ) f(a); for(i=0; i 5; i+)printf(“ d, “, ai); 程序运行后的输出结果是 ( A) 2, 2, 3, 4, 5, ( B) 6, 2, 3, 4, 5, (
9、C) 1, 2, 3, 4, 5, ( D) 2, 3, 4, 5, 6, 17 有以下程序: #include stdio h void main() void fun(char*c) char s81; while(*c) gets(s); fun(s); puts(s); if(*c =a&*c =z)*c=*c-(a-A); C+: 当执行程序时从键盘上输入 Hello Beijing回车,则程序的输出结果是 ( A) HELLO BEIJING ( B) Hello Beijing ( C) hello Beijing ( D) hELLO Beijing 18 有下列程序: voi
10、d f(int b) int I: for(i=2; i 6; i+)bi=2; main() int a10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, i; f(a); for(i=0; i 10, i+)printf(“ d, “, ai); 程序运行后的输出结果是 ( 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, 8, 10, 12, 7, 8, 9, 10, ( D) 1, 2, 6, 8, 10, 12, 14, 16, 9, 10,
11、19 若有以下程序 #include stdio h 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, d n“, i, *p, *r); 则程序的输出结果是 ( A) 3, 7, 7, 7, 7, 7 ( B) 7, 7, 7, 3, 3, 3 ( C) 3, 3, 3, 7, 7, 7 ( D) 7, 7, 7, 3, 7, 7 20 若有以下程序 #include stdio h int k=7,
12、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, d n“, i, *p, *r); 则程序的输出结果是 ( 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, 21 有以下程序 void fun(int x, int y, int*c, int*d) *c=x+y; *d
13、=x-y; main()int a=4, b=3, c=0, d=0; fun(a, b, &c, &d); printf(“ d d n“, c, d); 程序的输出结果是 ( A) 4 3 ( B) 3 4 ( C) 7 1 ( D) 0 0 22 有以下 程序 void swap(char*x, char*y) main() char t; char*s1=“abc“, *S2=“123“; t=*x; *x=*y; *y=t; swap(s1, s2); pfintf(“ s, s n“, s1, s2); 程序执行后的输出结果是 ( A) abc, 123 ( B) 123, abc
14、 ( C) 321, cba ( D) 1bc, a23 23 有以下程序 (说明:字 *A的 ASCII码值是 65) void fun(char*s)while(*s) if(*s 2) printf(“ c“, *s); s+; main()char a=“BYTE“; fun(a); printf(“ n“); 程序运行后的输出结果是 ( A) BT ( B) YE ( C) YT ( D) BY 24 有以下程序 #include stdio h main() void fun(char*a, char*b) char*s=“*a*b*“, t80; while(*a=*)a+; f
15、un(s, t); puts(t); while(*b=*a)b+; a+; 程序的运行结果是 ( A) a*b ( B) *a*b ( C) a*b* ( D) ab 25 有以下程序 #include stdio h main() void fun(char*t, char*s) char ss10=“acc“, aa10=“bbxxyy“; while(*t!=0)t+; fun(ss, aa); printf(“ s, s n“, ss, aa); while(*t+=*s+)!=0); 程序的运行结果是 ( A) acc, bbxxyy ( B) accxxyy, bbxxyy (
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 编译 预处理 指针 模拟 答案 解析 DOC
