首页 > 全部 > 二级C语言 > 国家二级C语言(函数和数组)机试模拟试卷17

国家二级C语言(函数和数组)机试模拟试卷17

本单篇文档共7014字,内容预览3600字,预览为有答案版,源文件无水印,下载后包含无答案空白卷版和有答案版,同时也有计算机类NCRE全国计算机二级整科真题模拟题,讲义课件,思维导图,易错高频题等下载。
二级C语言 章节练习 2559人下载
价格: 0.60 原价:¥7.00
收藏

国家二级C语言(函数和数组)机试模拟试卷17

选择题

1.有以下程序

#include <stdio.h>

#define N 3

void fun(int a[][N],int b[])

{ int i,j;

for(i=0;i<N;i++)

{ b[i]=a[i][0];

for(j=1;j<N;j++)

if(b[i]<a[i][j]) b[i]=a[i][j];

}

}

main()

{ int x[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;

fun(x,y);

for(i=0;i<N;i++) printf(\\(D)

A. 1,3,5,

B. 2,4,8,

C. 3,5,7

D. 3,6,9,

解析:函数fun()的作用是求出二维数组a[][N]中每一行中的最大元素,所以在main()函数中执行完fun(x,y)后,数组y中的元素为二维数组x[N][N]每一行的最大元素。

2.以下语句中存在语法错误的是(A)

A. char ss[ ][20]={ \\

B. char *ss[6]; ss[1]= \\

C. char *ss[ ]={ \\

D. char ss[6][20]; ss[1]= \\

解析:选项A中定义了二维数组ss,可以用于存储字符串,但是字符串的存储不能通过赋值,仅可以初始化或者输入得到,而选项C和A不同,选项C为指针数组,对于指针变量可以保存常量字符串的地址。

3.下列叙述中正确的是(A)

A. 两个连续的单引号(’’)是合法的字符常量

B. 可以对字符串进行关系运算

C. 两个连续的双引号(\\

D. 空字符串不占用内存,其内存空间大小是0

解析:两个连续的双引号:\\

4.以下选项中,能正确进行字符串赋值的是

B

解析:对于选项A字符串中无法存放字符串结束标志‘\\\\0’,选项C每行仅仅存放5个字符,同样的不能存放字符串结束标志,选项D中指针变量s没有实际的内存空间,无法存放输入的字符串。因此正确的选项为B,相当于char *s; s=\\

5.有以下程序

#include <stdio.h>

int fun( char s[] ) {

char *p = s;

while( *p != 0 ) p++;

return ( p-s ); }

main() {

printf(\\(B)

A. 6

B. 7

C. 1

D. 0

解析:函数fun的主要功能是计算字符串中实际字符的个数,因此主函数中调用fun得到结果为7。

6.若有以下程序段

char str[4][12]={ \\(A)

A. strp

B. str[0]

C. strp[3]

D. *strp

解析:程序段中定义指针数组*strp,含有4个元素,for循环strp分别保存了二维数组str中的4个字符串的首地址,因此strp为二级地址,不能保存字符串的首地址,*strp或者strp[0]中存放了字符串\\

7.以下叙述中正确的是

B

解析:选项B中除了字符串中实际字符之外,还要存储字符串结束标志,应为5个元素。在C语言中没有字符串数据类型,因此选项C不正确,选项D字符数组不一定必须存放字符串,因此没有规定最后一个元素为字符串结束标志。

8.以下叙述中正确的是

B

解析:字符串数组,也就是二维字符数组,其中每个元素为一个字符串,选项B的说法正确。选项A和C对于ca的定义是正确的。选项D定义一个指针数组,可以保存多个字符串的首地址。

9.以下叙述中正确的是(D)

A. 函数调用strlen(s);会返回字符串s实际占用内存的大小(以字节为单位)

B. 两个字符串可以用关系运算符进行大小比较

C. 当拼接两个字符串时,结果字符串占用的内存空间是两个原串占用空间的和

D. C语言本身没有提供对字符串进行整体操作的运算符

解析:C语言中没有运算符可以处理字符串,要调用“string库中的函数来处理字符串,其中strlen函数主要测试字符串中实际字符的个数,比实际占用的内存至少要少一个。Strcat(s1,s2)函数用于连接两个字符串,是把字符串s2连接到s1的后面。

10.以下叙述中正确的是(A)

A. 不能用字符串常量对字符数组名进行整体赋值操作

B. 字符串常量\\

C. char str[7] = \\

D. char *str; str = \\

解析:字符数组仅仅可以采用定义时初始化以及输入得到数据,在程序其他部分不允许对其进行赋值。字符串常量中除了实际字符之外还有结束标志,选项B错误,而选项C中,没有空间存放字符串结束标志,因此运行是不安全的。选项D中第一个str为指针,可以赋值,而后面的为数组,在程序中赋值出错。

11.以下叙述中正确的是(C)

A. 语句 char str[10] = \\

B. 对于一维字符数组,不能使用字符串常量来赋初值

C. 对于字符串常量 \\

D. 在语句char str[] = \\

解析:在C语言中,字符串是借助于字符型一维数组来存放的,可以借助在定义时初始化以及输入来把字符串存入数组,并规定以字符’\\\\0’作为“字符串结束标志”。’\\\\0’是一个转义字符,称为空值,它的ASCII码值为0。’\\\\0’作为标志占用存储空间,但不计入字符串的实际长度。在C语言中,系统在每个字符串的最后自动加入一个字符(’\\\\0’)作为字符串的结束标志。

12.设有定义 char str[] = \\(B)

A. 6 6

B. 6 5

C. 5 5

D. 5 6

解析:sizeof主要用于测试变量所占的实际内存,而strlen函数主要测试字符串中实际字符的个数,字符串\\

13.设有定义语句: char *aa[2]={ \\(D)

A. aa数组的两个元素只能存放含有4个字符的一维数组的首地址

B. aa数组的值分别是字符串\\

C. aa是指针变量,它指向含有两个元素的字符型数组

D. aa[0]存放了字符串\\

解析:题目中char *aa[2],定义了指针数组aa,有两个元素,aa[0]存放\\

14.以下选项中,没有编译错误的是

A

解析:选项A是定义了字符数组str3[],并对其赋初值。 选项B中语句str2=str1非法,字符数组不能直接赋值。选项C,D和选项B一致。

15.有以下程序

main()

{ char a[5][10]={\\(A)

A. fwo

B. owo

C. two

D. fix

解析:这个程序的执行过程是当i=0时,j=1,a[0][0]=o<a[1][0]=t;不置换;当i=1时,j=2,a[1][0]=t =a[2][0]=t;不置换;当i=2时,

本文档预览:3600字符,共7014字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载

剩余未完,查看全文
收藏
国家二级C语言(函数和数组)机试模拟试卷17

推荐资源

客服

扫码添加客服微信

热线

官方客服

如遇问题,请联系客服为您解决

电话客服:

客服微信:pujinet

工作时间:9:00-18:00,节假日休息

公众号

扫码关注微信公众号