南昌大学c语言第七章数组答案,[转载]南昌大学计算机C语言答案7

第8章

函数

1、C语言规定,在一个源程序中,main函数的位置( )。 A.必须在最开始 B.必须在系统调用的库函数的后面

C.可以任意 D.必须在最后

[C] 教师批改:C

2、凡在函数中未指明存储类别的变量,其隐含的存储类别为 A.auto 型 B.static

C.extern 型 D.register 型

[A] 教师批改:A

3、函数调用语句func((exp1,exp2),(exp3,expD,exp5));中,实参的个数为:

A.1 B.2

C.D D.5

[B] 教师批改:B

4、以下程序的输出结果是

fun(int x, int y, int z)

{ z=x*x+y*y; }

main()

{ int a=31;

fun(5,2,a);

printf("%d",a);

} A.0 B.29

C.31 D.无定值

[C] 教师批改:C

5、以下对C语言函数的有关描述中,正确的是

A.在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B.C函数既可以嵌套定义又可以递归调用

C.函数必须有返回值,否则不能使用函数 D.C程序中有调用关系的所有函数必须放在同一个源程序文件中

[A] 教师批改:A

6、以下所列的各函数首部中,正确的是 A.void play(var :Integer,var

b:Integer) B.void play(int

a,b)

C.void play(int a,int b) D.Sub play(a as

integer,b as integer)

[C] 教师批改:C

7、以下叙述中不正确的是() A.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值 B.在C中,在调用函数时,实参和对应形参在类型上只需赋值兼容

C.在C中,外部变量的隐含类别是自动存储类别 D.在C中,函数形参可以说明为register变量

[C] 教师批改:C

8、用数组名作为函数调用时的实参,实际上传送给形参的是 A.数组首地址 B.数组的第一个元素值

C.数组中全部元素的值 D.数组元素的个数

[A] 教师批改:A

9、当调用函数时,实参是一个数组名,则向函数传送的是 A.数组的长度 B.数组的首地址

C.数组每一个元素的地址 D.数组每个元素中的值

[B] 教师批改:B

10、函数调用:strcat(strcpy(str1,str2),str3)的功能是

A.将串str1复制到串str2中后再连接到串str3之后 B.将串str1连接到串str2之后再复制到串str3之后

C.将串str2复制到串str1中后再将串str3连接到串str1之后 D.将串str2连接到串str1之后再将串str1复制到串str3中

[C] 教师批改:C

11、一个C程序的执行是从( )。 A.本程序的main函数开始,到main函数的结束 B.本程序文件的第一个函数开始,到本程序文件的最后一个函数的结束

C.本程序文件的main开始,到本程序文件的最后一个函数的结束 D.本程序文件的第一个函数开始,到本程序文件的main函数的结束

[A] 教师批改:A

12、一个C语言程序是由( )。 A.一个主程序和若干子程序组成 B.函数组成

C.若干过程组成 D.若干子程序组成

[B] 教师批改:B

13、以下说法中正确的是 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main()函数中定义

C.C语言程序总是从main()函数开始执行 D.C语言程序中的main()函数必须放在程序的开始部分

[C] 教师批改:C

14、以下叙述不正确的是( )。 A.一个C源程序可由一个或多个函数组成 B.一个C源程序必须包含一个main函数

C.C程序的基本组成单位是函数 D.在C程序中,注释说明只能位于一条语句的后面

[D] 教师批改:D

15、当调用函数时,实参是一个数组名,则向函数传送的是_____。 A) 数组的长度 B)

数组的首地址

C) 数组每一个元素的地址 D)

数组每个元素中的值

[B] 教师批改:B

16、请读程序:

#include

f(in b[],

int n)

{ int i,

r;

r=1;

for(i=0;

i<=n; i++) r=r*b[i];

return

r;

}

main()

{ int x,

a[]={ 2,3,4,5,6,7,8,9};

x=f(a,

3);

printf("%dn",x);

}

上面程序的输出结果是_____。 A) 720 B)

120

C) 24 D) 6

[B] 教师批改:B

第9章 预处理命令

1、程序中定义以下宏 #define S(a,b) a*b 若定义 int area;

且令area=S(3+1,3+D),则变量area的值为: A.10 B.12

C.21 D.28

[A] 教师批改:A

2、以下关于宏替换的叙述不正确的是: A.宏替换只是字符替换 B.宏名无类型

C.宏替换不占用运行时间 D.宏替换不占用编译时间

[D] 教师批改:D

3、执行下列语句后,a的值为:

int a;

#define M(x,y) (x*y)

a=M(1+2,3); A.9 B.7

C.5 D.以上均不是

[B] 教师批改:B

4、下列四组选项中,均不是C语言关键字的选项是( )。 A.define IF type B.getc char printf

C.invlude scanf case D.while go

pow

[A] 教师批改:A

第10章 指针

1、若有以下说明和语句,int c[4][5],(*p)[5];p=c;能正确引用c数组元素的是 A)

p+1 B) *(p+3)

C) *(p+1)+3 D)

*(p[0]+2))

[D] 教师批改:D

2、若有定义:int *p[3];, 则以下叙述中正确的是 A)

定义了一个基类型为int的指针变量p,该变量具有三个指针 B)

定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针

C) 定义了一个名为*p的整型数组,该数组含有三个int类型元素 D)

定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素

[B] 教师批改:B

3、有以下程序

main()

{ int a[3][3], *p, i;

p=&a [0][0] ;

for ( i=0

; i<9 ; i++) p[i]=i+1;

printf("%dn",a[1][2]);

}

程序运行后的输出结果是 A) 3 B) 6

C) 9 D) 2

[B] 教师批改:B

4、若有以下定义和语句:

int s[4][5],(*ps)[5];

ps=s;

则对s数组元素的正确引用形式是 A) ps+1 B)

*(ps+3)

C) ps[0][2] D) *(ps+1)+3

[C] 教师批改:C

5、若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是 A)

&t[3][2] B)

t[3]

C) t[1] D) t[2]

[D] 教师批改:D

6、下列程序执行后的输出结果是

main()

{ int a[3][3], *p,i;

p=&a[0][0];

for(i=p; i<9; i++) p[i]=i+1;

printf("%d n",a[1][2]);

} A) 3 B) 6

C) 9 D) 随机数

[B] 教师批改:B

7、以下程序的输出结果是

main( )

{ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];

for(i=0;i<4;i+=2)printf("%d ",p[i]);

} A) 5 2 B) 5 1

C) 5 3 D) 9 7

[C] 教师批改:C

8、执行以下程序段后,m的值为

int a[2][3]={

{1,2,3},{4,5,6} };

int m,*p;

p=&a[0][0];

m=(*p)*(*(p+2))*(*(p+4)); A) 15 B)

14

C) 13 D) 12

[A] 教师批改:A

9、若有以下说明:

int w[3][4]o={{0,1},{2,4},{5,8}};

int(*p)[4]=w;

则数值为4的表达式是 A) *w[1]+1 B)

p++,*(p+1)

C) w[2][2] D) p[1][1]

[D] 教师批改:D

10、若有以下的说明和语句:

main()

{ int t[3][2], *pt[3],k;

fpr(k=o;

k<3;k++)pt[k]=t[k];

}

则以一选项中能正确表示t数组元素地址的表达式是 A)

&t[3][2] B)

*pt[0]

C) *(pt+1) D)

&pt[2]

[C] 教师批改:C

11、设有以下定义:

int

a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};

int

(*prt)[3]=a,*p=a[0];

则下列能够正确表示数组元素a[1][2]的表达式是 A) *((*prt+1)[2]) B)

*(*(p+5))

C) (*prt+1)+2 D)

*(*(a+1)+2)

[D] 教师批改:D

12、下面程序的输出是

int

aa[3][3]={{2},{4},{6}};

main()

{ int i,

* p=&aa[0][0];

for(i=0;

i<2;i++)

{

if(i==0)

aa[i][i+1]=*p+1;

else

++p;

printf("%d",*p);}

} A)

23 B) 26

C) 33 D) 36

[A] 教师批改:A

13、若有以下说明和语句,请选出哪个是对c数组元素的正确引用

int

c[4][5], (*cp)[5];

cp=c; A)

cp+1 B) *(cp+3)

C) *(cp+1)+3 D) *(*cp+2)

[D] 教师批改:D

14、设有说明int(*ptr)[m];其中的标识符ptr是 。 A)M个指向整型变量的指针 B)指向M个整型变量的函数指针

C)一个指向具有M个整型元素的一维数组的指针 D)具有M个指针元素的一维指针数组,每个元素都只能指向整型量

[C] 教师批改:C

15、有以下程序,其中函数f的功能是将多个字符串按字典顺序排序

#include 

void f(char *p[], int n)

{ char *t; int i,j;

for(i=0; i

for(j=i+1; j

if(strcmp(p[i],p[j])>0){ t=p[i]; p[i]=p[j]; p[j]=t; }

}

main()

{ char *p[5]={"abc","aabdfg","abbd","dcdbe","cd"};

f(p, 5);

printf("%dn",

strlen(p[1]));

}

程序运行后的输出结果是( ) A)2 B)3

C)6 D)4

[D] 教师批改:D

16、有以下程序

main()

{

char s[]="159",*p;

p=s;

printf("%c",*p++);

printf("%c",*p++);

}

程序运行后的输出结果是( ) A)15 B)16

C)12 D)59

[A] 教师批改:A

17、有以下函数

fun(char *a,char *b)

{

while((*a!=‘ ‘)&&(*b!=‘ ‘)&&(*a==*b))

{ a++; b++;}

return (*a-*b);

}

该函数的功能是

A)计算a和b所指字符串的长度之差 B)将b所指字符串复制到a所指字符串中

C)将b所指字符串连接到a所指字符串后面 D)比较a和b所指字符串的大小

[D] 教师批改:D

18、有以下程序

point(char *p)

{

p+=3;

}

main()

{ char b[4]={‘a‘,‘b‘,‘c‘,‘d‘},*p=b;

point(p); printf("%cn",*p);

}

程序运行后的输出结果是 A)a B)b

C)c D)d

[A] 教师批改:A

19、有以下程序

main()

{char

str[][10]={"China","Beijing"},*p=str;

printf("%sn",p+10);

}

程序运行后的输出结果是 A) China B)

Bejing

C) ng D) ing

[B] 教师批改:B

20、有以下程序

main()

{char

s[]="ABCD",*p;

for(p=s+1;p

}

程序运行后的输出结果是 A) ABCD

BCD

CD

D B) A

B

C

D

C)

B

C

D D) BCD

CD

D

[D] 教师批改:D

21、有以下程序

main(

)

{ char

*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};

printf(“%dn”,strlen(p[4]));

}

执行后输出结果是

A) 2 B) 3

C) 4 D) 5

[A] 教师批改:A

22、已定义以下函数

fun(char *p2, char *p1)

{ while((*p2=*p1)!=‘ ’){p1++;p2++; } }

函数的功能是 A)

将p1所指字符串复制到p2所指内存空间 B) 将p1 所指字符串的地址赋给指针

p2

C) 对p1和p2两个指针所指字符串进行比较 D)

检查p1和p2两个指针所指字符串中是否有‘ ’

[A] 教师批改:A

23、有以下程序

#include

main()

{ char

*p=“abcdeOfghjik ”;

printf(“%dn”,strlen(p));

}

程序运行后的输出结果是 A) 12 B) 15

C) 6 D) 5

[D] 教师批改:D

24、以下程序的输出结果是

#include 

#include 

main()

{ char b1[8]="abcdefg",b2[8],*pb=b1+3;

while

(--pb>=b1) strcpy(b2,pb);

printf("%dn",strlen(b2));

} A)

8 B) 3

C) 1 D) 7

[D] 教师批改:D

25、以下程序的输出结果是

main( )

{ char ch[3][4]={"123","456","78"},*p[3];

int i;

for(i=0;i<3;i++) p[i]=ch[i];

for(i=0;i<3;i++) printf("%s",p[i]);

} A) 123456780 B) 123 456 780

C) 12345678 D) 147

[C] 教师批改:C

26、以下程序的输出结果是

main( )

{ char *s="12134211"; int

v[4]={0,0,0,0},k,i;

for(k=0;s[k];k++)

{ switch(s[k])

{ case ‘1‘:i=0;

case ‘2‘:i=1;

case ‘3‘:i=2;

case ‘4‘:i=3;

}

v[i]++;

}

for(k=0;k<4;k++) printf("%d ",v[k]);

} A)4 2 1 1 B) 0 0 0 8

C) 4 6 7 8 D) 8 8 8 8

[B] 教师批改:B

27、以下程序运行后,输出结果是

main()

{ char ch[2][5]={‘693","825"},*p[2];

int i,j,s=0;

for(i=0;i<2;i++) p[i]=ch[i];

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

for(j=0;p[i][j]=‘0‘ && p[i][j]<=‘9‘;j+=2)

s=10*s+p[i][j]-‘0‘;

printf("%dn",s);

} A) 6385 B) 22

C) 33 D) 693825

[A] 教师批改:A

28、以下程序运行后,输出结果是

#inchude 

#inchude 

fun(char *w, int n)

{ char t,

*s1,*s2;

s1=w: s2=w+n-1;

while(s1

{ t=*s1++;

*s1=*s2--;

*s2=t;

}

}

main()

{ char *p;

p="1234567";

fun(p,strlen(p));

puts(p);

} A) 1234567 B) 7654321

C) 1711717 D) 7177171

[C] 教师批改:C

29、有以下程序

main()

{ char a[]="programming",

b[]="language";

char *p1,*p2;

int i;

p1=a; p2=b;

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

if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i));

}

输出结果是 A) gm B) rg

C) or D) ga

[D] 教师批改:D

30、若有以下定义:

char s[20]="programming",*ps=s;

则不能代表字符o的表达式是 A) ps+2 B)s[2]

C) ps[2] D)ps+=2,*ps

[A] 教师批改:A

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值