[计算机类试卷]国家二级C语言(函数和数组)机试模拟试卷5及答案与解析.doc
《[计算机类试卷]国家二级C语言(函数和数组)机试模拟试卷5及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]国家二级C语言(函数和数组)机试模拟试卷5及答案与解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、国家二级 C语言(函数和数组)机试模拟试卷 5及答案与解析 一、选择题 1 有以下程序 (strcpy为字符串复制函数, strcat为字符串连接函数 ) #include stdio h #include string h main() char a10=“abc“, b10=“012“, c10=“xyz“; strcpy(a+1, b+2); puts(strcat(a, c+1); 程序运行后的输出结果是 ( A) bc2yz ( B) a2yz ( C) a12xyz ( D) 12yz 2 若有定义语句: char, *s1=“OK“, *s2=“ok“;以下选项中,能够输出 “O
2、K“的语句是 ( A) if(strcmp(s1, s2)!=0)puts(s1); ( B) if(strcmp(s1, s2)!=0)puts(s2); ( C) if(strcmp(s1, s2)=1)puts(s1); ( D) if(strcmp(s1, s2)=0)puts(s1); 3 若有以下说明和定义 union dt int a; char b; double c; data; 以下叙述中错误的是 ( A) data的每个成员起始地址都相同 ( B)变量 data所占内存字节数与成员 c所占字节数相等 ( C)程序段: data a=5; printf(“ f n“,dat
3、a c);输出结果为 5 000000 ( D) data可以作为函数的实参 4 以下叙述中正确的是 ( A)函数名代表该函数的入口地址 ( B)所有函数均不能接受函数名作为实参传入 ( C)函数体中的语句不能出现对自己的调用 ( D)如果函数带有参数,就不能调用自己 5 以下叙述中错误的是 ( A)函数调用可以作为一个独立的语句存在 ( B)函数形参 的值也可以传回给对应的实参 ( C)若函数有返回值,必须通过 return语句返回 ( D) C程序必须由一个或一个以上的函数组成 6 有以下程序 int add(int a, int b) main() return(a+b); int k,
4、 (*f)(), a=5, b=10; f=add; 则以下函数调用语句错误的是 ( A) k=add(a, b); ( B) k=(*f)(a, b); ( C) k=*f(a, b); ( D) k=f(a, b); 7 有以下程序 #include stdio h int fun(int x, int y) main() if(x=y)return(x); int a=4, b=5, c=6; else return(x+y) 2); printf(“ d n“, fun(2*a, fun(b, c); 程序运行后的输出结果是 ( A) 3 ( B) 6 ( C) 8 ( D) 12 8
5、 有以下程序 #include stdio h int f(int x); main() int f(int x) int a, b=0; return x*x+1; for(a=0; a 3; a+) b=b+f(a); putchar(A+b); ( A) BCD ( B) BDI ( C) ABE ( D) BCF 9 有以下程序,其中 k的初值为八进制数 #include stdio h main() int k=011; printf(“ d n“, k+); 程序运行后的输出结果是 ( A) 12 ( B) 11 ( C) 10 ( D) 9 10 设有如下函数定义 int fun
6、(int k) if(k 1)return0; else if(k=1)return1; else return fun(k-1)+1; 若执行调用语句: n=fun(3);,则函数 fun总共被调用的次数是 ( A) 2 ( B) 4 ( C) 3 ( D) 5 11 若有以下程序 int flint a, int n) main() if(n 1) int a=8, 2, 9, 1, 3, 6, 4, 7, 5; intt; t=f(a, n-1); printf(“ d n“, fla, 9); return t an-1?t: an-1; else return a0; 则程序的输出结
7、果是 ( A) 9 ( B) 1 ( C) 8 ( D) 5 12 有以下程序 #include stdio h int a=1, b=2; void funl(int a, int b) main() printf(“ d d“, a, b); funl(5, 6); fun2(); void fun2() printf(“ d d n“, a, b); a=3; b=4; 程序运行后的输出结果是 ( A) 3 4 5 6 ( B) 1 2 5 6 ( C) 5 6 1 2 ( D) 5 6 3 4 13 有以下程序 fun(int x, int y) main() static int m
8、=0, i=2; int j=1, m=1, k; i+=m+1; m=i+x+y; return m; k=fun(j, m); printf(“ d, “, k); k=fun(j, m); printf(“ d n“, k); 执行后的输出结果是 ( A) 5, 5 ( B) 5, 11 ( C) 11, 11 ( D) 11, 5 14 有以下程序 int fun(int x, int n) main() static int sum=0, i; int a=1, 2, 3, 4, 5, b=6, 7, 8, 9, s=0; for(i=0; i n; i+)sum+=xi; s=fu
9、n(a, 5)+fun(b, 4): printf(“ d n“, s); return sum; ( A) 50 ( B) 45 ( C) 60 ( D) 55 15 若有语句: char*line5;,以下叙述中正确的是 ( A)定义 line是一个数组,每个数组元素是一个基类型为 char的指针变量 ( B)定义 line是一个指针变量,该变量可以指向一个长度为 5的字符型数组 ( C)定义 line是一个指针数组,语句中的 *号称为间址运算符 ( D)定义 line是一个指向字符型函数的指针 16 有以下程序 void fun(int a, int n)int i, t; for(i=
10、0; i n 2; i+) t=ai; ai=an-1-i; an-1-i=t; main() int k10=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, i; fun(k, 5); for(i=2; i 8; i+)printf(“ d“, ki); printf(“ n“); 程序的运行结果是 ( A) 876543 ( B) 321678 ( C) 1098765 ( D) 345678 17 下列选项中,能正确定义数组的语句是 ( A) int num; ( B) int N=2008; int numN; ( C) int num0 2008; ( D) #defi
11、ne N 2008 int numN; 18 有以下程序 #include stdio_h main() int c6=10, 20, 30, 40, 50, 60, *p, *s; p=c; s=&c5; printf(“ d n“, s-p); 程序运行后的输出结果是 ( A) 50 ( B) 6 ( C) 5 ( D) 60 19 若有以下程序 main()int i, j=0; char a=“How are you!“; for(i=0; ai; i+) if(ai!=)aj+=ai; aj= 0; printf(“ s n“, a); 则程序的输出结果是 ( A) Howareyo
12、u ( B) Hay! ( C) Howareyou! ( D) How are you! 20 若有定义语句: int k23, *pk3;,则以下语句中正确的是 ( A) pk=k; ( B) pk0=k12; ( C) pk=k0; ( D) pk1=k; 21 有以下程序 #include stdio h #define N 4 void fun(int aN, int b) int i; for(i=0; i N; i+)bi=aii-aiN-1-i; void main() int xNN=1, 2, 3, 4), 5, 6, 7, 8), 9, 10, 11, 12), 13,
13、14, 15,16, yN, i; fun(x, y); for(i=0; i N; i+)printf(“ d, “, yi); printf(“ n“) ( A) -12, -3, 0, 0, ( B) -3, -1, 1, 3, ( C) 0, 1, 2, 3, ( D) -3, -3, -3, -3, 22 有下列程序: main() int a44=1, 4, 3, 2, 8, 6, 5, 7), 3, 7, 2, 5), 4, 8, 6, 1), i,j, k, t; for(i=0; i 4; i+) for(j=0; j 3; j+) for(k=j+1; k 4; k+) i
14、f(aji aki)t=aji; aji=aki; aki=t; *按列排序 * for(i=0; i 4; i+)printf(“ d“, aii); 程序运行后的输出结果是 ( A) 8, 7, 3, 1, ( B) 1, 6, 5, 7, ( C) 4, 7, 5, 2, ( D) 1, 6, 2, 1, 23 以下叙述中 正确的是 ( A)语句 int a43=1, 2, 4, 5;是错误的初始化形式 ( B)语句 int a3=1, 2, 4, 5;是错误的初始化形式 ( C)在逻辑上,可以把二维数组看成是一个具有行和列的表格或矩阵 ( D)语句 int a43=1, 2, 4, 5
15、;是错误的初始化形式 24 以下选项中有语法错误的是 ( A) char str310; str1=“guest“; ( B) char str10=“guest“; ( C) char*str3; str1=“guest“; ( D) char*str=“guest”; 25 以下叙述中正确的是 ( A)下面的语句用赋初值方式来定义字符串,其中, “ 0”是必须的 char str1=s, t, r, 1, 0; ( B)有定义语句: char str1=“str1“;,数组 str1将包含 4个元素 ( C)字符串常量 “str1”的类型是:字符串数据类型 ( D)字符数组的每个元素可存放
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 国家 二级 语言 函数 数组 模拟 答案 解析 DOC
