[计算机类试卷]国家二级C语言机试(函数与数组、编译预处理和指针)模拟试卷1及答案与解析.doc
《[计算机类试卷]国家二级C语言机试(函数与数组、编译预处理和指针)模拟试卷1及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言机试(函数与数组、编译预处理和指针)模拟试卷1及答案与解析.doc(26页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言机试(函数与数组、编译预处理和指针)模拟试卷 1及答案与解析 一、选择题 1 C语言程序由函数组成,下列说法正确的是 ( )。 ( A)主函数可以在其他函数之前,函数内可以嵌套定义函数 ( B)主函数必须在其他函数之前,函数内可以嵌套定义函数 ( C)主函数可以在其他函数之后,函数内不可以嵌套定义函数 ( D)主函数必须在其他函数之前,函数内不可以嵌套定义函数 2 在 C程序中,下列说法正确的是 ( )。 ( A)函数的定义和调用均不可以嵌套 ( B)函数的定义和调用均可以嵌套 ( C)函数的定义可以嵌套,但函数的调用不可以嵌套 ( D)函数的定义不可以嵌套,但函数的调用可以嵌
2、套 3 有如下函数调用语句: func(r1, r2+r3, (r4, r5); 该函数调用语句中,含有的实参个数是 ( )。 ( A) 3 ( B) 5 ( C) 4 ( D)有语法错误 4 有如下程序: int func(int i, int j) return(i+j); main() int x=2, y=5, z=8, rtn; rtn=func(func(x, y), z); printf(“ d n“, rtn); 程序的输出结果是 ( )。 ( A) 12 ( B) 13 ( C) 14 ( D) 15 5 以下程序段给数组所有元素输入数据 ( )。 main() int t1
3、0, j=0; while(j 10) scanf(“ d“, ); ( A) &tj+1; ( B) t+(j+); ( C) &t+j; ( D) t+j; 6 设有数组定义: chararray=“Chinese“;数组 array所占的空间为 ( )。 ( A) 5个字节 ( B) 6个字节 ( C) 7个字节 ( D) 8个字节 7 有如下程序: main() int a5=0, 0, 0), i, j=2; for(i=0; i j; i+) ai=ai+1; printf(“ d n, “, aj); 该程序的输出结果是 ( )。 ( A)不能确定的 值 ( B) 0 ( C)
4、1 ( D) 2 8 有如下程序: long fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return(2); main() printf(“0 d n“fib(3); 程序的输出结果是 ( )。 ( A) 8 ( B) 6 ( C) 4 ( D) 2 9 以下所列的各函数首部中,正确的是 ( )。 ( A) void play(int a, int b) ( B) void play(int a, b) ( C) void; lay(var: Integer, vat b: Integer) ( D) Sub play(a as Inte
5、ger, b as integer) 10 下述程序的输出结果是 ( )。 int x=3 void main() int i; for(i=1; i x; i+) incre(); incre() static int si=1; si*=si+1; printf(“ n d“, si); ( A) 22 ( B) 25 ( C) 26 ( D) 33 11 若各选项中所用变量已正确定义, fun()函数中通过 return语句返回一个函数值,下列选项中错误的程序是 ( )。 ( A) main() x=fun(2 , 10); ) float fun(int amint b) ( B) f
6、loat fun(int a, int b) main() x=fun(id) ; ( C) float fun(int, int); main() x=fun(int a , int b); ) float fun(int a, int b) ( D) main() float fun(int i, int j); x=fun(ij) ; ) float fun(int a, int b) 12 语句 strlen(“abcdcfiog 0 hi“)的结果是 ( )。 ( A) 4 ( B) 6 ( C) 11 ( D) 12 13 若有以下说明语句 (其中 0 =i 6),则对字符 串中字
7、符的引用错误的是 ( )。 char*strp=“string“; ( A) strp printf(“ s“, strp); ( B) *(strp+i) ( C) strpi ( D) *strp 14 C语言标准库函数 “strcat(strcpy(str1, str2), sir3)“的功能是 ( )。 ( A)将串 str1连接到串 str2之后再复制到串 str3之后 ( B)将串 str2复制到串 str1后再将串 str3连接到串 str1之后 ( C)将串 str1复制到串 str2之后,再连接到 串 str3之后 ( D)将串 str2连接到串 str1后再将串 str1复
8、制到串 str3之后 15 有 char a4=“xy“; char*p;执行了语句 p=a之后, *(p+2)的值是 ( )。 ( A) B ( B) 0 ( C)不确定 ( D)字符 B的地址 16 在调用函数时,如果参数是简单变量,它与对应形参之间的数据传递方式是( )。 ( A)单向值传递 ( B)地址传递 ( C)由实参传给形参,再由形参传回实参 ( D)传递方式由用户指定 17 以下函数值的类型应是 ( )。 fun(float x) float y; y=3*x-4; returny; ( A) int ( B) float ( C) void ( D)不确定 18 设有以下函数
9、: f(int i) int j=0; static int k=3; i+: j+; return(i+j+k); 如果下面的程序中调用该函数,则输出结果是 ( )。 main() int a=2, i; for(i=0; i 3; i+) printf(“ d n“, f(a); ( A) 7 7 7 ( B) 7 9 11 ( C) 7 10 13 ( D) 7 8 9 19 下列叙述错误的是 ( )。 ( A)函数名是属于用户标识符,需符合 C语言对标识符的规定 ( B)形参只能是变量 ( C)为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名 ( D)函数中定义的变量可
10、以与其他函数中的 变量同名 20 有以下程序: main() char s口 =a, b, c, d, e, f, g, h, 0; intp, q; p=sizeof(s); q=strlen(s); printf(“ d d b“, p, q); 程序的运行结果是 ( )。 ( A) 9, 8 ( B) 1, 8 ( C) 8, 9 ( D) 9, 9 21 下列程序段的输出结果是 ( )。 main() char s=“Helloworld“; s5=0; printf(“ s n“, s); ( A) Hello0world ( B) Helloworld ( C) Hello ( D
11、) Hello0 22 假定 int类型变量占用 2个字节,其有定义: int x4=0, 2, 4;,则数组 x在内存中所占的字节数是 ( )。 ( A) 3 ( B) 6 ( C) 8 ( D) 20 23 以下程序段的输出结果是 ( )。 char*s=“ 141 141 abc t“: pirntf(“ d n“,strlen(s); ( A) 8 ( B) 9 ( C) 10 ( D) 11 24 C语言的编译系统对宏命令的处理是 ( )。 ( A)在程序连接时进行 ( B)和其他语句的编译同时进行 ( C)在系统对源程序进行编译前 ( D)在程序运行时进行 25 下列有关宏的叙述中
12、不正确的是 ( )。 ( A)宏名必须用大写字母表示 ( B)双引号中出现的宏名不进行替换 ( C)宏名无类型 ( D)和其他语句的编译同时进行 26 下面 描述中正确的是 ( )。 ( A)预处理命令可以放在程序中的任何位置 ( B)预处理命令结尾需要加分号 ( C) C语言中预处理是指完成宏替换和文件包含指定的文件的调用 ( D)预处理指令只能位于 C源程序文件的首部 27 有如下程序段: int*p, x, y=1; p=&x; *p=10; x=*p+y; 执行该程序段后, x的值是 ( )。 ( A) 10 ( B) 11 ( C) 12 ( D)编译出错 28 以下程序运行后的结果
13、是 ( )。 main() char*str=“abcde“; str+=2: printf(“ 1d n“, str); ( A)字符 C的 ASCII码值 ( B)字符 c的地址 ( C) cde ( D)出错 29 下面程序执行后的输出结果是 ( )。 main() int array33, *p, i; p=&array00; for(i=p; i 9; i+) pi=i+1; printf(“ d n“, array12); ( A) 3 ( B) 6 ( C) 9 ( D)随机数 30 下面程序段的运行结果是 ( )。 intb; 2; int func(int*param) b+
14、=*param; return(b); main() int a=2, rtn=2; rtn+=func(&a); printf(“ d n“ rtn); ( A) 4 ( B) 6 ( C) 8 ( D) 10 31 若有说明 int x, y=2, *p=&x;,则能完成 x=y赋值功能的语句是 ( )。 ( A) x=*p; ( B) x=&y; ( C) x=*p; ( D) *p=*&y; 32 对于基类型相同的两个指针变量之间,不能进行的运算是 ( )。 ( A) + ( B) - ( C) ( D) = 33 若有以下的说明和定义: fun(int*z) mian() int(*
15、x)()=fun, *y(), w10, z; 在必要的赋值之后,对 fun函数的正确调用语句是 ( )。 ( A) x=x(w); ( B) fun(y); ( C) y=*(w); ( D) (*x)(&z); 34 有如下说明: int array10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, *p=array; 则数值为 9的表达式是 _。 ( A) p+8 ( B) *p+9 ( C) *p+=9 ( D) *(p+8) 35 有如下程序: main() char str=“ABCD“, *p; for(p=str+1; p str+4; p+) printf(“
16、 s n“, p); 则程序的输出结果是 ( )。36 已定义 char*m, n5,并执行了 m=malloc(80)后,以下语句中正确的是 ( )。 ( A) scanf(“ s“, *m); ( B) m=“desk“ ( C) n=“desk“ ( D) n=m; 37 已知下面的程序段,正确的判断是 ( )。 #define M 2 #define N(m)(M+1)*m) x=3*(M+N(5); ( A)程序错误,不允许嵌套定义 ( B) x=51 ( C) x=25 ( D)程序错误,宏定义不允许有参数 38 执行下列语句后的结果是 ( )。 #defineA 2 #defin
17、e B(a)(A+1)木 a c=4木 (A+B(5); ( A) C无定值 ( B) c=34 ( C) c=68 ( D)语句有错误 39 执行下列程序段的结果是 ( )。 #define MOD(i, j) i j im n, x=10, y=85; n=MOD(y, x); printf(“ d n“, n+); ( A) 11 ( B) 5 ( C) 6 ( D)宏定义不合法 40 以下选项中不能正确赋值的是 ( )。 ( A) char s3 20=“test“; ( B) char*s4=“Ctest n“; ( C) char sl10; s1=“Ctest“; ( D) ch
18、ar s2口 =C, t, e, s, t; 41 下列程序的输出结果是 ( )。 main() char array10=9, 8, 7, 6, 5, 4, 3, 2, 1, 0); char*ptr=array+5; printf(“ d“, *-ptr); ( A)非法 ( B) a4的地址 ( C) 3 ( D) 5 42 下列程序的输出结果是 ( )。 main() int array5=2, 4, 6, 8, 10, *p, *PP; p=array; pp=&p; printf(“ d“, *(p+); printf(“ d“, *pp); ( A) 22 ( B) 2 4 (
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 函数 数组 编译 预处理 指针 模拟 答案 解析 DOC
