[计算机类试卷]国家二级C语言(数组)机试模拟试卷5及答案与解析.doc

上传人:explodesoak291 文档编号:499016 上传时间:2018-11-30 格式:DOC 页数:16 大小:47KB
下载 相关 举报
[计算机类试卷]国家二级C语言(数组)机试模拟试卷5及答案与解析.doc_第1页
第1页 / 共16页
[计算机类试卷]国家二级C语言(数组)机试模拟试卷5及答案与解析.doc_第2页
第2页 / 共16页
[计算机类试卷]国家二级C语言(数组)机试模拟试卷5及答案与解析.doc_第3页
第3页 / 共16页
[计算机类试卷]国家二级C语言(数组)机试模拟试卷5及答案与解析.doc_第4页
第4页 / 共16页
[计算机类试卷]国家二级C语言(数组)机试模拟试卷5及答案与解析.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、国家二级 C语言(数组)机试模拟试卷 5及答案与解析 一、选择题 1 若有定义: int x10, *pt=x;,则对 x数组元素的正确引用是 ( )。 ( A) pt+3 ( B) *&x10 ( C) *(pt+10) ( D) *(x+3) 2 有以下程序: #inelude stdio h main( ) int i, s=0, t=1, 2, 3, 4, 5, 6, 7, 8, 9; for(i=0; i 9; i+=2) s+=*(t+i); prinff(“ d n“, s); 程序的运行结果是 ( )。 ( A) 20 ( B) 25 ( C) 45 ( D) 36 3 有以下

2、程序: #include stdio h main( ) int s12=1, 2, 3, 4, 4, 3, 2, 1, 1, 1, 2, 3, c5=0, i; for(i=0; i 12; i+) esi+; for(i=1; i 5; i+) prinff(“ d“, ci); printf(“ n“); 程序的运行结果是 ( )。 ( A) 2 3 4 4 ( B) 4 3 3 2 ( C) 1 2 3 4 ( D) 1 1 2 3 4 下列定义数组的语句中正确的是 ( )。 ( A) #define N10 int xN; ( B) int N=10; int xN; ( C) in

3、t x0 10; ( D) int x; 5 下列选项中能正确定义数组的语句是 ( )。 ( A) int num02008 ; int numN; ( B) int num; int numN; ( C) int N=2008; ( D) #define N2008 6 若要求定义具有 10个 int型元素的一维数组 a,则以下定义语句中错误的是( )。 ( A) #define n5 int a2*n; ( B) int n=10, an; int aN; ( C) int a5+5; ( D) #define N10 7 设有定义: doublea10, *s=a;,以下能够代表数组元素

4、 a3的是 ( )。 ( A) (*s)3 ( B) *(s+3) ( C) *s3 ( D) *s+3 8 有以下程序: #include stdio h main( ) int i, t3=9, 8, 7, 6, 5, 4, 3, 2, 1; for(i=0; i 3; i+) printf(“ d“, t2-ii); 程序的运行结果是 ( )。 ( A) 3 5 7 ( B) 7 5 3 ( C) 3 6 9 ( D) 7 5 1 9 下列定义语句中错误的是 ( )。 ( A) int x43=1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3; ( B) int x4

5、1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3; ( C) int x3=0, l, 1, 2, 3; ( D) int x3=1, 2, 3, 4; 10 下列定义数组的语句中错误的是 ( )。 ( A) int x23=1, 2, 3, 4, 5, 6; ( B) int x3=0; ( C) int x3=1, 2, 3, 4, 5, 6; ( D) int x23=1, 2, 3, 4, 5, 6; 11 下列定义数组的语句中错误的是 ( )。 ( A) int num3=1, 2, 3, 4, 5, 6; ( B) int num24=1, 2, 3, 4,

6、5, 6; ( C) int num=1, 2, 3, 4, 5, 6; ( D) int num4=1, 2, 3, 4, 5, 6; 12 若有定义语句: char s10=“1234567 0 0“;,则 strlen(s)的值是 ( )。 ( A) 7 ( B) 8 ( C) 9 ( D) 10 13 有以下程序: #include stdio h #include string h main( ) char p20=a, b, c, d, q=“abc“, r=“abcde“; strcat(p, r); strcpy(p+strlen(q), q); prinff(“ d n“,

7、strlen(p); 程序的运行结果是 ( )。 ( A) 11 ( B) 9 ( C) 6 ( D) 7 14 有以下程序 (strcat函数用于连接两个字符串 ): #include stdio h #include string h main( ) char a20=“ABCD 0EFG 0“, b=“LIK“; strcat(a, b); prinff(“ s n“, a); 程序的运行结果是 ( )。 ( A) IJK ( B) ABCDE 0FG OIJK ( C) ABCDIJK ( D) EFGIJK 15 有以下程序: char name20; int num; scanf(

8、name= s num= d“, name, &num); 当执行上述程序,并从键盘输入: name=Lili nun=1001回车后, name的值为( )。 ( A) name=Lili num=1001 ( B) name=Lili ( C) Lili num= ( D) Lili 16 有以下程序: #include stdio h main( ) char ch=“uvwxyz“, *pc; pc=ch; prinff(“ c n“, *(pc+5); 程序的运行结果是 ( )。 ( A) z ( B) 0 ( C)元素 ch5的地址 ( D)字符 y的地址 17 有以下程序: #

9、include stdio h main( ) char s=“012xy“; int i, n=0; for(i=0; si!=0; i+) if(si =a&si =z)n+; prinff(“ d n“, n); 程序运行结果是 ( )。 ( A) 0 ( B) 2 ( C) 3 ( D) 5 18 若有以下定义和语句: #include stdio h char s110=“abcd!“, *s2=“ n123 “; prinff(“ d d n“, strlen(s1), strlen(s2); 程序的运行结果是 ( )。 ( A) 10 7 ( B) 10 5 ( C) 5 5 (

10、 D) 5 8 19 有以下程序: #include stdio h main( ) char s=“abcde“; s+=2; prinff(“ d n“, s0); 程序的运行结果是 ( )。 ( A)输出字符 C的 ASCII码 ( B)程序出错 ( C)输出字符 c ( D)输出字符 a的 ASCII码 20 有以下程序: #include stdio h void fun(char*t, char*s) while(*t!=0)t+; while(*t+=*s+)!=0); main( ) char ss10=“acc“, aa10=“bbxxyy“; fun(ss, aa); pr

11、inff(“ s, s n“, ss, aa); 程序的运行结果是 ( )。 ( A) acc, bbxxyy ( B) accbbxxyy, bbxxyy ( C) accxxyy, bbxxyy ( D) accxyy, bbxxyy 21 设有定义: char p=1, 2, 3, *q=p;,以下不能计算出一个 char型数据所占字节数的表达式是 ( )。 ( A) sizeof(p) ( B) sizeof(char) ( C) sizeof(*q) ( D) sizeof(p0) 22 设有定义: char s81; int i=0;,以下不能将一行 (不超过 80个字符 )带有空

12、格的字符串正确读入的语句或语句组是 ( )。 ( A) gets(s); ( B) while(si+=getchar( )!= n); si= 0; ( C) scanf(“ s“, s); ( D) doscanf(“ C“, &si); while(si+!= n); si= 0; 23 若有定义语句: char*s1=“OK“, *s2=“ok“;,以下选项中,能够输出 “OK”的语句是 ( )。 ( A) if(stremp(s1, s2)!=0)puts(s2); ( B) if(stremp(s1, s2)!=0)puts(s1); ( C) if(strcmp(s1, s2)=

13、1)puts(s1); ( D) if(strcmp(s1, s2)=0)puts(s1); 24 若要求从键盘读入含有空格字符的字符串,应使用函数 ( )。 ( A) getchar( ) ( B) getc( ) ( C) gets( ) ( D) scanf( ) 25 下列选项中,能够满足 “只要字符串 s1等于字符串 s2,则执行 sT”要求的是( )。 ( A) if(s1-s2=0)ST; ( B) if(s1=s2)ST; ( C) if(strepy(s1, s2)=1)ST; ( D) if(strcrnp(s2, s1)=0)ST; 国家二级 C语言(数组)机试模拟试卷

14、5答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 没有 A选项的引用形式。 *与 &放在一起作用抵消,但 x10下标10超出了数组下标范围,所以 B选项错误。最大只能引用到 x9,而 *(pt+i)表示引用指针 pt所指元素后的第 i个元素,所以 C选项错误,最大只能为 *(pt+9)。 D选项正确。 【知识模块】 数组 2 【正确答案】 B 【试题解析】 统计 1 9这 9个数中的奇数和,此题考查指向数组的指针。 C语言规定数组名代表数组的首地址,也就是第一个元素的地址,因此 *(t+i)代表数组的第 i+1个元素。程序的运行结果是 1+3+5+7+9=25。 【知识模块】 数组

15、 3 【正确答案】 B 【试题解析】 在 for(i=0; i 12; i+)csi+中,数组元素 si的值作为数组 c的下标,当退出循环时,数组 c的 4个元素的值分别为 4、 3、 3、 2,因此 B选项正确。 【知识模块】 数组 4 【正确答案】 A 【试题解析】 数组说明的一般形式为:类型说明符数组名 常量表达式 。 B选项中 N是变量,不能用变量定义数组长度。 C选项中数组长度是一串非法的数字。定义数组时必须为其指明长度, D选项中的数组长度为空,所 以非法。 【知识模块】 数组 5 【正确答案】 D 【试题解析】 C语言不允许定义动态数组,定义数组的大小必须为常量表达式。A选项错误

16、 C语言中的数组没有此类型的定义方法; B选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定初值的个数; C选项错误, N为变量,不能用来定义数组大小。 D选项正确。 【知识模块】 数组 6 【正确答案】 B 【试题解析】 一维数组的定义方式为:类型说明符数组名 常量表达式 ;注意定义数组时,元素个数不能是变量,因此应该选择 B选项。 【知识模块】 数组 7 【正确答案】 B 【试题解析】 题中,首先定义了 double型的数组 a,并将数组首地址赋给指针s。 s3能够表示 a3,故选项 A、 C不能表示 a3;选项 D的 *s+3=a0+3。故本题答案为 B选项。 【知识模块】

17、 数组 8 【正确答案】 A 【试题解析】 二维数组 t3实际上指 t33=9, 8, 7, 6, 5, 4, 3, 2,1,通过循环语句 for语句可以得到 i=0, t20=3、 i=1, t11=5、 i=2,t02=7、 i=3时循环结束,即 t20=3、 t11=5、 t02=7,因此 A选项正确。 【知识模块】 数组 9 【正确答案】 B 【试题解析】 二维数组定义的一般形式是:类型说明符数组名 常量表达式 1常量表达式 2。其中常量表达式 1表示第一维下标的长度,常量表达式 2衷示第二维下标的长度。如对二维数组的全部元素赋初值,则第一维的长度可以不给出。但如果对 x4赋值,只确定

18、行数,丽不确定列数,就无法正确赋值。因此 B选项正确。 【知识模块】 数组 10 【正 确答案】 D 【试题解析】 D选项中 x23定义的是一个 2行 3列的二维数组,而在给数组元素赋值时却赋成了 3行,所以错误。 【知识模块】 数组 11 【正确答案】 B 【试题解析】 B选项中定义的数组为 2行 4列,而赋值时赋成了 3行,所以出错。 【知识模块】 数组 12 【正确答案】 A 【试题解析】 strlen( )函数是计算字符串长度时,遇到结束标识为止,且长度不包括结束标识。本题中的字符串从第一个字符开始,遇到第一个结束标识 0为止,注意 0不占字符串 长度,所以字符串长度为 7,因此 A选

19、项正确。 【知识模块】 数组 13 【正确答案】 C 【试题解析】 strcpy:字符串复制函数; strlen:求字符串长度函数 (注意:不包含字符串结束标记字符 0); strcat:字符串连接函数。执行完语句 strcat(p,r);后, p数组中存储的元素为 a, b, c, d, a, b, c, d, e;执行语句strcpy(p+strlen(q), q);得到的结果是将 q所指向的字符串复制至 p+strlen(q)开始的存储位置,因为 strlen的值为 3,即 p+3开始存 储 q中的元素,所以执行完strcpy(p+strlen(q), q)语句后,字符数组 p20的存储

20、元素为 a, b, c, 【知识模块】 数组 14 【正确答案】 C 【试题解析】 字符数组 a中包含两个 0,遇到第一个 0时就表示字符串 a结束。字符串处理函数 strcat(字符数组 a,字符数组 b),功能是连接两个字符数组中的字符串,把字符串 b连接到字符串 a的后面,结果放在字符数组 a中。连接时将字符串 a后的 0取消,只在新串最后保留一个 0。本题相当于将 “AB-CD“和 “IJK“连接 ,因此 C选项正确。 【知识模块】 数组 15 【正确答案】 D 【试题解析】 在输入格式控制 “name= s num= d”中,普通字符 “name=num=”在输入时要原样输入,而格式

21、控制符 s和 d对应各自的输入项,将输入的数据赋给相应的输入项。本题中输入 “name=Lili num=1001回车 ”后,将字符串Lili赋给字符数组 name,整数 1001赋给变量 num,因此 D选项正确。 【知识模块】 数组 16 【正确答案】 A 【试题解析】 语句 pc=ch;使得指针变量 指向字符数组 ch的首地址,即指向字符 u,则 pc+5指向的是字符向后移动 5位,指向字符 z,所以输出的 *pc+5的值即为 z,因此 A选项正确。 【知识模块】 数组 17 【正确答案】 B 【试题解析】 程序首先给字符数组 s赋值为 “012xy“, for循环语句的功能是遍历字符串

22、通过 if条件语句对字符串中的小写字母进行计数,字符串中小写字母为 2个,即 n=2,因此 B选项正确。 【知识模块】 数组 18 【正确答案】 C 【试题解析】 strlen函数返回字符串的长度,求 字符串长度时,遇到结束标志 0为止,但是长度不包括结束标识。字符数组 s1的后 5个元素没有赋值,都为 0,即 “abcd!“后为 0,所以 strlen(s1)的值为 5。字符指针 s2所指向的字符串中, n为转义字符换行符,表示 1个字符,也为转义字符,代表,也是 1个字符,其后为字符串结束标识 0,所以 strlen(s2)的值也为 5,因此 C选项正确。 【知识模块】 数组 19 【正

23、确答案】 B 【试题解析】 本题重点考查数组名的概念。在 C语言中,数组名类似于一个指向数组首地址的指 针常量,一旦定义就不能修改其内容。所以本题中的 “s+=2”;语句让数组名 s的内容加 2是错误的,编译无法通过,因此 B选项正确。 【知识模块】 数组 20 【正确答案】 B 【试题解析】 本题重点考查 while循环语句的简单应用。在函数。 fun( )中,前一个 while循环的作用是:如果形参指针 t所指内容不为 0,则让 t增 1,直到它指向0。后一个 while循环的作用是:将 s所指内容赋给 t所指地址,然后两者同时增1,直到赋给 t的内容为 0。由此可见,函数 fun( )的

24、作用就是将形参 s所指字符串连接到形 参 t所指字符串末尾,相当于库函数中的 strcat( )。主函数中使用 fun( )将数组 aa中的字符串连接到了数组 ss中原有字符串之后,所以执行完后, ss中的字符串为 “accbbxxyy”。程序 【知识模块】 数组 21 【正确答案】 A 【试题解析】 根据题目中的定义可知道 sizeof(p),计算的是数组 p中所有元素所占用的字节数,而不是 char型数据所占的字节数。 【知识模块】 数组 22 【正确答案】 C 【试题解析】 使用 scanf( )输入字符串时,空格和回车符 都作为输入数据的分隔符而不能被读入,而应该使用 gets(s)。

25、 【知识模块】 数组 23 【正确答案】 B 【试题解析】 strcmp(s1, s2)是字符串比较函数,比较规则是两个字符串自左向右逐个字符相比 (按照 ASCII码值大小 ),以第一个不相同字符的大小作为比较结果。因为 OK ok,所以 strcmp(s1, s2)为负值,只有 B选项正确。 【知识模块】 数组 24 【正确答案】 C 【试题解析】 scanf( )语句中用 “空格 ”间隔不同的字符串,空格将被全部忽略掉, 所以用 scanf( )函数不能输入空格; getchar( )函数用于输入字符,其调用格式为: ch=getchar( ), getchar( )函数从终端读入一个字

26、符作为函数值,把读入的字符赋给变量 ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入回车键时,读入才开始执行。 gets( )函数的调黾形式为: gets(str adr)其中 str adr且存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。 gets函数用来从终端键盘读入字符串 (包括空格符 ),直到读入一个换行符为 止。 getc( )函数的调用形式为: ch=getc(pf),其中 pf是文件指针,函数的功能是从 pf指定的文件中读入一个字符,并把它作为函数值返回。因此 C选项正确。 【知识模块】 数组 25 【正确答案】 D 【试题解析】 在 C语言中,要对两个字符串的大小进行比较,就需要调用字符串比较函数 strcmp,如果这个函数的返回值等于 0,说明两个字符串相等,因此D选项正确。 【知识模块】 数组

展开阅读全文
相关资源
猜你喜欢
  • AIA NAS 1303-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design after October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf AIA NAS 1303-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design after October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf
  • AIA NAS 1304-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf AIA NAS 1304-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf
  • AIA NAS 1305-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf AIA NAS 1305-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf
  • AIA NAS 1306-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf AIA NAS 1306-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf
  • AIA NAS 1307-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf AIA NAS 1307-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf
  • AIA NAS 1308-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf AIA NAS 1308-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf
  • AIA NAS 1309-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf AIA NAS 1309-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf
  • AIA NAS 1310-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf AIA NAS 1310-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf
  • AIA NAS 1312-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf AIA NAS 1312-2001 (Inactive)Bolt Tension Hexagon Head 160 KSI Ftu Inactive for Design After October 30 1981 See NAS 6603 Thru NAS 6620 For Description of Status Notes See NAS 380 R.pdf
  • 相关搜索

    当前位置:首页 > 考试资料 > 职业资格

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1