[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷19及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷19及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(C语言程序设计)模拟试卷19及答案与解析.doc(24页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试( C语言程序设计)模拟试卷 19及答案与解析 一、选择题 1 以下叙述中正确的是 ( A)在 C语言中,预处理命令行都以 ” ”开头 ( B)预处理命令行必须位于 C源程序的起始位置 ( C) #include必须放在 C程序的开头 ( D) C语言的预处理不能实现宏定义和条件编译的功能 2 有以下程序,程序运行后的输出结果是 #define PT 3 5; #define S(x)PT*x*x; main() int a 1, b 2; printf(“ 4 1f n“, S(a b); ( A) 31 5 ( B) 7 5 ( C)程序有错无输出结果 ( D) 14
2、3 以下关于宏的叙述中正确的是 ( A)宏定义必须位于源程序中所有语句之前 ( B)宏名必须用大写字母表示 ( C)宏调用比函数调用耗费时间 ( D)宏替换没有数据类型限制 4 有以下程序,程序运行后的输出结果是 #include #define S(x)4*(x)*x 1 void main() int k 5,j 2; printf(“ d n“, S(k j); ( A) 197 ( B) 143 ( C) 33 ( D) 28 5 设有宏定义: #define IsDIV(k, n)(k n=1)?1: 0)且变量 m已正确定义并赋值,则宏调用: IsDIV(m, 5)&IsDIV(m
3、, 7)为真时所要表达的是 ( A)判断 m是否能被 5和 7整除 ( B)判断 m被 5或者 7整除是否余 1 ( C)判断 m被 5和 7整除是否都余 1 ( D)判断 m是否能被 5或者 7整除 6 有以下程序,程序运行后的输出结果是 #include #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 7 有以下程序,程序运行后的输出结果是 #include #define f(x)x*x*x main()
4、int a 3, S, t; s f(a 1); t f(a 1); printf(“ d, d n“, s, t); ( A) 10, 10 ( B) 10, 64 ( C) 64, 10 ( D) 64, 64 8 有下列程序,程序的运行结果是 #include #deftne N 5 #define M N 1 #define f(x)(x*M) main() int i1, i2; i1 f(2); i2 f(1 1); printf(“ d d n“, i1, i2); ( A) 12 7 ( B) 12 12 ( C) 11 11 ( D) 11 7 9 以下叙述中错误的是 ( A
5、)预处理命令行的最后不能以分号表示结束 ( B) C程序对预处理命令行的处理是在程序执行的过程中 进行的 ( C) #define MAX是合法的宏定义命令行 ( D)在程序中凡是以 “ ”开始的语句行都是预处理命令行 10 若程序中有宏定义行: #define N 100则以下叙述中正确的是 ( A)宏定义行中定义了标识符 N的值为整数 100 ( B)上述宏定义行实现将 100赋给标示符 N ( C)在运行时用 100替换标识符 N ( D)在编译程序对 C源程序进行预处理时用 100替换标识符 N 11 若有以下程序,则程序的输出结果是 #define S(x)x*x #define T
6、(x)S(x)*S(x) main() int k 5, j 2; printf(“ d, d n“, S(k j), T(k j); ( A) 17, 37 ( B) 49, 2401 ( C) 17, 289 ( D) 49, 289 12 有以下程序,程序运行后的输出结果是 #include #define N 2 #deftne M N 1 #define NUM(M 1)*M 2 main()printf(“ d n“, NUM); ) ( A) 4 ( B) 8 ( C) 9 ( D) 6 13 有以下程序,程序运行 后的输出结果是 #include #define SUB(X,
7、Y)(X 1)*Y main() int a 3, b 4; printf(“ d n“, SUB(a, b ); ( A) 20 ( B) 12 ( C) 16 ( D) 25 14 下面选项中关于编译预处理的叙述正确的是 ( A)凡是以号开头的行,都被称为编译预处理命令行 ( B)预处理命令行必须使用分号结尾 ( C)预处理命令行不能出现在程序的最后一行 ( D)预处理命令行的作用域是到最近的函数结束处 15 有以下程序,程序的输出结果是 #include #define SQR(X)X*X main() int a 10, k 2, m 1; a SQR(k m) SQR(k m); p
8、rintf(“ d n“, a); ( A) 0 ( B) 1 ( C) 9 ( D) 10 16 以下叙述中正确的是 ( A)在包含文件中,不得再包含其他文件 ( B) #include命令行不能出现在程序文件的中间 ( C)在一个程序中,允许使用任意数量的 #include命令行 ( D)虽然包含文件被修改了, 包含该文件的源程序也可以不重新进行编译和连接 17 有以下程序,程序的运行结果是 #include #include int fun(int n) int *p; P (int*)malloc(sizeof(int); *p n; return *p; main() int a;
9、a fun(10); printf(“ d n“, a fun(10); ( A) 10 ( B) 20 ( C) 0 ( D)出错 18 有以下程序,程序运行后 的输出结果是 #include #include 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) 1, 1, 3 19 有以下程序,程序运行后的输出结果是 void fun
10、(int *p1, int *p2, int *S) s (int*)malloc(sizeof(int); *S *p1 *(p2 ); main() int a2 1, 2, b2 10, 20, *s a; fun(a, b, s); printf(“ d n“, *s); ( A) 10 ( B) 11 ( C) 2 ( D) 1 20 有以下程序段 int *p; p _malloc(sizeof(int);若要求使 P指向一个int型的动态存储单元,在横线处应填入的是 ( A) (int*) ( B) int ( C) int* ( D) (*int) 21 有以下程序,程序的输出
11、结果是 void fun(double *p1, double *p2, double *s) s (double*)calloc(1, sizeof(double); *s *p1 *(p2 1); main() double a21 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 22 设有以下函数: void fun(int n,char*s) 则下面对函数指针的定义和赋值均正确的是 ( A) void*Pf(); p
12、f fun; ( B) void(*pf)(int, char*); pf fun; ( C) void*Pf(); *pf fun; ( D) void(*pf)(int, char); pf &fun; 23 设有定义语句 int(*f)(int);则以下叙述正确的是 ( A) f是基类型为 int的指针变量 ( B) f是指向 int类型一维数组的指针变量 ( C) f是指向函数的指针变量,该函数具有一个 int类型的形参 ( D) f是函数名,该函数的返回值是基类型为 int类型的地址 24 以下叙述中正确的是 ( A)指针变量只能通过求地址运算符 (&)来获得地址值 ( B)语句 p
13、 NULL;与 p 0;是等价的语句 ( C) int*p1; int*p2; int*p3;都是合法的定义指针变量的语句 ( D)语句 p NULL;执行后,指针 P指向地址为 0的存储单元 25 以下叙述中正确的是 ( A)函数的类型不能是指针类型 ( B)函数的形参类型不能是指针类型 ( C)基类型不同的指针变量可以相互混用 ( D)设有指针变量为 double *p,则 p 1将指针 P移动 8个字节 26 设有某函数的说明为 int*func(int a10, int n);则下列叙述中,正确的是 ( A)说明中的 a10写成 a或 *a效果完全一样 ( B)形参 a对应的实参只能是
14、数组名 ( C) func的函数体中不能对 a进行移动指针 (如 a )的操作 ( D)只有指向 10个整数内存单元的指针,才能作为实参传给 a 27 设有定义: int x 0, *p;紧接着的赋值语句正确的是 ( A) *p NULL; ( B) p NULL; ( C) p x; ( D) *p x; 28 以下叙述中错误的是 ( A)函数可以返回地址值 ( B)改变函数形参的值,不会改变对应实参的值 ( C)当在程序的开头包含头文件 stdio h时,可以给指针变量赋 NULL ( D)可以给指针变量赋一个整数作为地址值 29 设已有定义: float x:则以下对指针变量 P进行定义
15、且赋初值的语句中正确的是 ( A) int *p (float)x; ( B) float *p &x; ( C) float p &x; ( D) float *p 1024; 30 有以下程序,程序运行后的输出结果是 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) 1, 2, 1, 2 ( B) 1, 2, 2, 1 ( C) 2, 1, 2, 1 ( D) 2, 1, 1, 2 31 下面选项中的程序段,没有编译错误的是 ( A) char*
16、sp, s10; sp “Hello“; ( B) char* sp, s10; s “Hello“; ( C) char str110 “computer“, str210; str2 strl; ( D) char mark; mark “PROGRAM“; 32 设有定义 double a10, *s a;以下能够代表数组元素 a3的是 ( A) (*s)3 ( B) *s3 ( C) *s 3 ( D) *(s 3) 33 有以下程序,执行后的输出结果是 main() int a 1, b 3, c 5; int *p1 &a, *p2 &b, *P &c; *P *p1*(*p2);
17、 printf(“ d n“, c); ( A) 2 ( B) 3 ( C) 1 ( D) 4 34 若有定义语句: int a23, *p3;则以下语句中正确的是 ( A) p0 a12; ( B) p0 a; ( C) p a; ( D) p1 a; 35 若有定义语句: int year 2009, *p &year;以下不能使变量 year中的值增至2010的语句是 ( A) (*p); ( B) (*p); ( C) *p; ( D) *p 1; 36 有以下程序 main() int a5 2, 4, 6, 8, 10, *p, *k; P a; k p; printf(“ d“,
18、 *(p ); printf(“ d n“, *k); 程序运行后的输出结果是 ( A) 4 4 ( B) 2 4 ( C) 2 2 ( D) 4 6 37 以下叙述中正确的是 ( A)如果 P是指针变量, *p表示变量 P的地址值 ( B)如果 P是指针变量,则 &p是不合法的表达式 ( C)在对指针进行加、减算术运算时,数字 1表示 1个存储单元的长度 ( D)如果 P是指针变量,则 *p 1和 *(p 1)的效果是一样的 38 有以下程序 (注:字符 a的 ASCII码值为 97) main() char *S “abc“; do printf(“ d“, *s 10); s; )whi
19、le(*S); 程序运行后的输出结果是 ( A) abe ( B) 7890 ( C) 979899 ( D) 789 39 设有定义: char *c;以下选项中能够使 c正确指向一个字符串的是 ( A) char str “string“; c str; ( B) scanf(“ s“, c); ( C) c getchar(); ( D) *c “string“; 国家二级 C语言机试( C语言程序设计)模拟试卷 19答案与解析 一、选择题 1 【正确答案】 A 【试题解析】 在 C语言中,凡是以 “ ”号开头的行,都称为 “编译预处理 ”命令行。预处理命令可以放在程序中的任何位置,其有
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 语言程序设计 模拟 19 答案 解析 DOC
