[计算机类试卷]国家二级C语言(函数和数组)机试模拟试卷8及答案与解析.doc
《[计算机类试卷]国家二级C语言(函数和数组)机试模拟试卷8及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言(函数和数组)机试模拟试卷8及答案与解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言(函数和数组)机试模拟试卷 8及答案与解析 一、选择题 1 若有定义语句: char s10=“1234567 0 0“;则 strlen(s)的值是 ( A) 8 ( B) 7 ( C) 9 ( D) 10 2 有以下程序 #include stdio h int fun(int a, int b) main() if(b=0)return a; printf(“ d n“, fun(4, 2); else return(fun(-a, -b); 程序的运行结果是 ( A) 1 ( B) 2 ( C) 3 ( D) 4 3 当用户要求输入的字符串中含有空格时,应使用的输入函数
2、是 ( A) scanf() ( B) getchar() ( C) gets() ( D) getc() 4 已定义以下函数 int fun(int*p)return*p; fun函数返回值是 ( A)不确定的值 ( B)一个整数 ( C)形参 p中存放的值 ( D)形参 p的地址值 5 程序中若有如下说明和定义语句 char fun(char*); main() char*s=“one“, a5=0, (*f1)()=fun, ch; 以下选项中对函数 fun的正确调用语句是 ( A) (*f1)(a); ( B) *f1(*s); ( C) fun(a); ( D) ch=*f1(s);
3、 6 以下选项中叙述错误的是 ( A)在 C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内 ( B) C程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值 ( C) C程序函数中定义的自动变量,系统不自动赋确定的初值 ( D) C程序函数的形参不可以说明为 static型变量 7 若函数调用时的实参 为变量时,以下关于函数形参和实参的叙述中正确的是 ( A)形参只是形式上的存在,不占用具体存储单元 ( B)函数的形参和实参分别占用不同的存储单元 ( C)同名的实参和形参占同一存储单元 ( D)函数的实参和其对应的形参共占同一存储单元 8 以下程序的功能是:给
4、r输入数据后计算半径为 r的圆面积 s。程序在编译时出错 main() *Beginning* int r; float s; scanf(“ d“, r); s=*r*r; printf(“s= f n“, s); 出错的原因是 ( A)注释 语句书写位置错误 ( B)存放圆半径的变量 r不应该定义为整型 ( C)输出语句中格式描述非法 ( D)计算圆面积的赋值语句使用了非法变量 9 有以下程序 #include stdio h int fun(int a, int b)retum a+b; main()int x=6, y=7, z=8, r; r=fun(fun(x, y), z-);
5、printf(“ d n“, r); 程序运行后的输出结果是 ( A) 15 ( B) 21 ( C) 20 ( D) 31 10 有以下程序 int fun(int n) main() if(n=1)return1; int x; Else scanf(“ d“, &x); x=fun(x); retum(n+fun(n-1); printf(“ d n“, x); 执行程序时,给变量 x输入 10,程序的输出结果是 ( A) 54 ( B) 65 ( C) 45 ( D) 55 11 以下叙述中正确的是 ( A)对于变量而言, “定义 ”和 “说明 ”这两个词实际上是同一个意思 ( B)在
6、复合语句中不能定义变量 ( C)全局变量的存储类别可以是静态类 ( D)函数的形式参数不属于局部变量 12 有以下程序 #include stdio h main()int k=4, m=1, p; fun(int a, int b)int static m=0, i=2: p=fun(k, m); i: i+m+1; printf(“ d, “, p); m=i+a+b; p=fun(k, m); return m; printf(“ d n“, p); 程序运行后的输出结果是 ( A) 8, 17 ( B) 7, 16 ( C) 8, 8 ( D) 7, 17 13 有以下程序 #incl
7、ude stdio_h int f(int n); main()int a=3, s; int f(int n)static int a=1; s=f(a); n+=a+; s=s+f(a); return n; printf(“ d n“, s); 程序运行后的输出结果是 ( A) 9 ( B) 8 ( C) 7 ( D) 10 14 有下列程序: int a=4; int f(int n) main() int t=0; static int a=5; int s=a, i=0; if(n 2)int a=6; t+=a+; for(; i 2; i+)s+=f(i); elseint a
8、=7; t+=a+; printf(“ d n“, s); return t+a+; 程序运行后的输出结果是 ( A) 28 ( B) 24 ( C) 32 ( D) 36 15 若要定义一个具有 5个元素的整型数组,以下错误的定义语句是 ( A) int a5=0; ( B) int b=0, 0, 0, 0, 0); ( C) int c2+31 ( D) int i=5, di; 16 有以下程序 #include stdio h main() void fun(int a, int b) int c10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0), i; int t;
9、for(i=0; i 10; i+=2) t=a; a=b; b=t; fun(ci, ci+1); for(i=0; i 10; i+)printf(“ d, “, ci); printf(“ n“); 程序的运行结果是 ( A) 2, 1, 4, 3, 6, 5, 8, 7, 0, 9, ( B) 0, 7, 9, 8, 7, 6, 5, 4, 3, 2, 1, ( C) 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, ( D) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 17 有以下程序 #include stdio h main() int s12=1, 2
10、, 3, 4, 4, 3, 2, 1, 1, 1, 2, 3, c5=0, i; for(i=0; i 12; i+)csi+; for(i=1; i 5; i+)printf(“ d“, ci); printf(“ n“); ( A) 4 3 3 2 ( B) 2 3 4 4 ( C) 1 2 3 4 ( D) 1 1 2 3 18 如果定义 float a10, x;则以下叙述中正确的是 ( A)表达式 a+1是非法的 ( B)语句 a=&x;是非法的 ( C)三个表达式 a1、 *(a+1)、 *&a1表示的意思完全不同 ( D)表达式 *&a1是非法的,应该写成 *(&(a1) 19
11、以下能正确定义二维数组是 ( A) int a3; ( B) int a3=2*3; ( C) int a3=; ( D) int a23=1, 2, 3, 4); 20 若有定义: int a2113;,以下选项中对 a数组元素正确引用的是 ( A) a211 ( B) a23 ( C) a03 ( D) a1 211 21 有下列程序: main() int x32=0, i; for(i=0; i 3; i+)scanf(“ d“, xi); printf(“ 3d 3d 3d n“, x00, x01, x10); 若运行时输入: 2 4 6 CR,则输出结果为 ( A) 2 0 0
12、( B) 2 4 0 ( C) 2 0 4 ( D) 2 4 6 22 若有定义: int w35;则以下不能正确表示该数组元素的表达式是 ( A) *(*w+3) ( B) *(*(w+1) ( C) *(w+1)4 ( D) *(&w00+1) 23 以下语句中存在语法错误的是 ( A) char ss20=“right?“; ( B) char*ss6; ss1=“right?“; ( C) char*ss=“right?“); ( D) char ss620; ss1=“right?“; 24 有以下程序 #include stdio h int fun(char s)char*p=s
13、; while(*p=0)p+; return(p-s); main()printf(“ d n“, fun(“0ABCDEF“); 程序运行后的输出结果是 ( A) 6 ( B) 7 ( C) 1 ( D) 0 25 以下叙述中正确的是 ( A)不能用字符串常量对字符数组名进行整体赋值操作 ( B)字符串常量 “Hello”会被隐含处理成一个无名字符型数组, 它有 5个元素 ( C) “char str7=“string!“; ”在语法上是合法的,运行也是安全的 ( D) “char*str; str=“Hello“; ”与 “charstr; str=“Hello“; ”效果是一样的 26
14、 有以下程序 main() char a510=“one“, “two“, “three“, “four“, “five“; int i, j; char t; for(i=0; i 4; i+) for(j=i+1; j 5; j+) if(ai0 aj0) t=ai0; ai0=aj0; aj0=t; puts(a1); 程序运行后的输出结果是 ( A) fwo ( B) owo ( C) two ( D) fix 27 以下不能将 s所指字符串正确复制到 t所指存储空间的是 ( A) for(i=0; ti=si; i+); ( B) while(*t=*s)t+; s+; ( C) f
15、or(i=0, j=0; ti+=sj+; ); ( D) do*t+=*s+; while(*s); 28 以下关于字符串的 叙述中正确的是 ( A)两个字符串中的字符个数相同时才能进行字符串大小的比较 ( B)可以用关系运算符对字符串的大小进行比较 ( C)空串比空格打头的字符串小 ( D) C语言中有字符串类型的常量和变量 国家二级 C语言(函数和数组)机试模拟试卷 8答案与解析 一、选择题 1 【正确答案】 B 【试题解析】 字符串长度函数 strlen(s)表示计算出以 s为起始地址的字符串的长度,并作为函数值返回。这个长度值不包括串尾的结束标志 0。 【知识模块】 函数和数组 2
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 函数 数组 模拟 答案 解析 DOC
