1、国家二级 C语言机试(函数和数组)模拟试卷 16及答案解析(总分:58.00,做题时间:90 分钟)一、选择题(总题数:29,分数:58.00)1.以下语句中存在语法错误的是(分数:2.00)A.char ss20=“right?“;B.char*ss6;ss1=“right?“;C.char*ss=“right?“;D.char ss620;ss1=“right?“;2.下面是有关 C语言字符数组的描述,其中错误的是(分数:2.00)A.不可以用赋值语句给字符数组名赋字符串B.可以用输入语句把字符串整体输入给字符数组C.字符数组中的内容不一定是字符串D.字符数组只能存放字符串3.以下选项中有
2、语法错误的是(分数:2.00)A.char str310;str1=“guest“;B.char str10=“guest“;C.char*str3;str1=“guest“;D.char*str=“guest“;4.下列叙述中正确的是(分数:2.00)A.两个连续的单引号(“)是合法的字符常量B.可以对字符串进行关系运算C.两个连续的双引号(“)是合法的字符串常量D.空字符串不占用内存,其内存空间大小是 05.以下选项中,能正确进行字符串赋值的是(分数:2.00)A.char siS=A,B,C,D,E;B.char*s=“ABCDE“;C.char s45=“ABCDE“;D.char*S
3、;gets(s);6.有以下程序 #include int fun(char s)char*p=s; while(*p!=0)p+; return(p-s); main()printf(“dn“,fun(“0ABCDEF“); 程序运行后的输出结果是(分数:2.00)A.6B.7C.1D.07.若有以下程序段 char str412=“aa“,“bbb“,“ccccc“,“d“,*strp4; int i; for(i=0;iA.strpB.str0C.strp3D.*strp8.以下叙述中正确的是(分数:2.00)A.下面的语句用赋初值方式来定义字符串,其中,“0”是必须的 char str
4、l =s,t,r,l,0;B.有定义语句:char strl=“strl“;,数组 strl将包含 4个元素C.字符串常量“strl”的类型是:字符串数据类型D.字符数组的每个元素可存放一个字符,并且最后一个元素必须是“0”字符9.以下叙述中正确的是(分数:2.00)A.char ca35=“A“,“BB“,“CCC“;是不合语法的B.字符串数组,是指数组中的每个元素都是一个存放字符串的一维数组C.char ca5=“A“,“BB“,“CCC“;是不合语法的D.char*ca3=“A“,“BB“,“CCC“;是不合语法的10.以下叙述中正确的是(分数:2.00)A.函数调用“strlen(s)
5、;”会返回字符串 s实际占用内存的大小(以字节为单位)B.两个字符串可以用关系运算符进行大小比较C.当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和D.C语言本身没有提供对字符串进行整体操作的运算符11.以下叙述中正确的是(分数:2.00)A.不能用字符串常量对字符数组名进行整体赋值操作B.字符串常量“Hello”会被隐含处理成一个无名字符型数组,它有 5个元素C.“char str7=“string!“;”在语法上是合法的,运行也是安全的D.“char*str;str=“Hello“;”与“char str;str=“Hello“;“效果是一样的12.以下叙述中正确的是(分
6、数:2.00)A.语句“char str10=“string!“;”和“char str10=“string!“;”并不等价B.对于一维字符数组,不能使用字符串常量来赋初值C.对于字符串常量“string!”,系统已自动在最后加入了“0”字符,表示串结尾D.在语句 char str1=“string!“;中,数组 str的大小等于字符串的长度13.设有定义 char str=“Hello“;则语句 printf(“dd“,sizeof(str),strlen(str);的输出结果是(分数:2.00)A.6 6B.6 5C.5 5D.5 614.设有定义语句: char*aa2=“abcd“,“
7、ABCD“;则以下叙述正确的是(分数:2.00)A.aa数组的两个元素只能存放含有 4个字符的一维数组的首地址B.aa数组的值分别是字符串“abcd“和“ABCD“C.aa是指针变量,它指向含有两个元素的字符型数组D.aa0存放了字符串“abcd“的首地址15.以下选项中,没有编译错误的是(分数:2.00)A.char str3=d,e,b,u,g,0:B.char strl5=“pass“,str26;str2=strl;C.char name10;name=“china“;D.char str4;str4=“hello world“;16.有以下程序 main() char a510=“o
8、ne“,“two“,“three“,“four“,“five“; int i,j; char t; for(i=0;iaj0) t=ai0;ai0=aj0;aj0=t; puts(a1); 程序运行后的输出结果是(分数:2.00)A.fwoB.owoC.twoD.fix17.设有定义:char s81;int i=0;以下不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是(分数:2.00)A.while(si+=getchar0)!=n);si=0;B.scanf(“s“,s);C.gets(s);D.,doscanf(“c“,si);while(si+!=n);si=0
9、;18.设有定义: char p=1,2,3,*q=p;以下不能计算出一个 char型数据所占字节数的表达式是(分数:2.00)A.sizeof(p)B.sizeof(char)C.sizeof(*q)D.sizeof(p0)19.有以下程序 #include #include void main() char str20=“One*World“,“One*Dream!“),“p=str1; printf(“d,“,strlen(p); printf(“sn“,p); 程序运行后的输出结果是(分数:2.00)A.9,One*Dream!B.10One*Dream!C.9,One*WorldD.
10、l 0One*World20.有以下程序 #include void main() char s=“012xy08s34f4w2“; int i,n=0; for(i=0;si!=0:i+) if(si=n0si=a&si=n0si=a&si=z)n+; printf(“dn“,n); 程序运行后的输出结果是(分数:2.00)A.0B.3C.5D.2 解析:解析:这段程序的功能求出字符串 s中字符在小写字符 a到 z之间字符的个数。在程序中字符串 s的值为“012xy”,所以在字符串 s中符合要求的字符的个数等于 2。25.以下能正确定义字符串的语句是(分数:2.00)A.char str=“
11、x43“;B.char str=“0“; C.char str=“:D.char strrl=064;解析:解析:字符串常量是用一对双括号括起来的一串字符。它用字符数组来存放,不用一对大括号对括起来。26.以下关于字符串的叙述中正确的是(分数:2.00)A.两个字符串中的字符个数相同时才能进行字符串大小的比较B.可以用关系运算符对字符串的大小进行比较C.空串比空格打头的字符串小 D.C语言中有字符串类型的常量和变量解析:解析:C 语言本身并没有设置一种类型来定义字符串变量,却允许使用“字符串常量”。字符串常量是由双引号括起来的一串字符。任意两个字符串的大小比较要调用字符串比较函赘 strcmp
12、(s1,s2)来进行,其比较的方法是依次对 s1和 s2中对应位置上的字符两两进行比较,当出现第一对不相同的字符时,即由这两个字符决定所在串的大小(比较字符大小的依据是其 ASCII码值)。27.若要求从键盘读入含有空格字符的字符串,应使用函数(分数:2.00)A.getc()B.gets() C.getchar()D.scanf()解析:解析:scanf()语句中用“空格”间隔不同的字符串,空格将被全部忽略掉,所以用 scanf()函数不能输入空格;getchar()函数用于输入字符,其调用形式为:ch=getchar(),getchar()函数从终端读入一个字符作为函数值,把读入的一个字符
13、赋给变量 ch。在输入时,空格、回车符都将用于字符读入,而且只有在用户敲入 Enter键时,读入才开始执行。gets()函数的调用形式为:gets(stradr),其中 str adr是存放输入字符串的起始地址。可以是字符数组名、字符数组元素的地址或字符指针变量。gets()函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。gctc()函数的调用形式为:ch=getc(pf)其中 pf是文件指针。函数的功能是从 pf指定的文件中读入一个字符,并把它作为函数值返回。28.有以下程序,执行后的结果是 #include main() char s=“abcde“; s+=2; pr
14、intf(“dn“,s0); (分数:2.00)A.输出字符 c的 ASCII码B.输出字符 CC.输出字符 a的 ASCII码D.程序出错 解析:解析:因为字符数组 s中的数组名 s表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位。因而程序编译时出错。29.有下列程序,程序执行后的输出结果是 fun(char P10) int n=0,i; for(i=0;iA.1B.3C.0D.2 解析:解析:本题在主函数中定义了一个字符二维数组 str10,并用“Mon“,“Tue“,“Wed“,“Thu“,“Fri“,“Sat“,“Sun“初始化。函数 fun(chatp10)的功能是统计出 p10中 pi0等于字符T的个数。所以 fun(str)的功能是统计一周七天中英文名称首字母为“T”的个数。因为字符串“Tue”和“Thu”的首字符是“T”,所以 n=2。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1