2021智慧树知到(山东理工大学)《C语言编程新思路》章节测试答案共14章(4)

B、30

C、21

D、31

答案:C

6、假设整型变量a的值为12,变量a的地址为2000,若欲使p为指向a的指针变量,则以下赋值正确的是()。

A、&a=p;

B、*p=12;

C、*p=2000

D、p=&a;

答案:D

7、若有定义:int b,*pb;则下面正确的赋值表达式是()。

A、pb=&b

B、pb=b

C、*pb=&b

D、*pb=*b

答案:A

8、设int a[10],*p=a; ,则下面()不是对a[3]的正确引用。

A、*(a+3)

B、p+3

C、p[3]

D、*(p+3)

答案:B

9、若有如下定义:int a[10]={10,20,30,40,50,60,70,80,90,100},*p=a; ,则执行p=p+5后,*p的值是()。

A、10

B、50

C、60

D、100

答案:C

10、若int *p,i;执行i=100; p=&i; i=*p+10; 后,*p的值是()。

A、100

B、10

C、0

D、110

答案:D

11、以下程序的输出结果是()。 #include <stdio.h> int main() { int a[ ]={2,4,6,8,10},y=0,i,*p; p=a; for(i=0;i<3;i++) y+=*(p+i); printf("%d\n",y); }

A、17

B、12

C、19

D、20

答案:B

12、以下程序的输出结果是()。 #include <stdio.h> int main() { int a=1,b=2,c=3,*p1,*p2,*p3; p1=&a; p2=&b; p3=&c; *p3=*p1; *p1=*p2; *p2=*p3; printf("a=%d,b=%d,c=%d\n",a,b,c); }

A、a=1,b=2,c=3

B、a=2,b=1,c=3

C、a=2,b=1,c=1

D、a=3,b=2,c=1

答案:B

13、以下程序的输出结果是 ()。 #include <stdio.h> int main() { int k=2,m=4,n=6; int *pk=&k,*pm=&m,*p; *(p=&n)=*pk*(*pm); printf("%d\n",n); return 0; }

A、4

B、6

C、8

D、10

答案:C

14、以下程序的输出结果是 ()。 #include <stdio.h> int main() { int **k, *a, b=100; a=&b;k=&a; printf("%d\n",**k); return 0; }

A、编译出错

B、100

C、a的地址

D、b的地址

答案:B

15、对于基类型相同的两个指针变量之间,不能进行的运算时()。

A、<

B、=

C、+

D、–

答案:C

16、若有int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*p)[3]=a; ,则能正确表示数组元素a[1][2]的是()。

A、*(*(p+1)+2)

B、*(p+1)+2

C、(p+1)[2]

D、p[1]+2

答案:A

17、对于语句int *p[5]; 的正确描述是()。

A、p是一个指向数组的指针,所指向的数组含有5个int型元素。

B、p是一个指向数组中第5个元素的指针,该元素是int型。

C、定义不合法

D、p是一个具有5个元素的指针数组,每个元素都是一个指向int型对象的指针变量。

答案:D

18、若有int a[10],*p=a;,下列不能表示a数组首元素地址的是()。

A、a

B、*p

C、p

D、&a[0]

答案:B

19、下列程序的运行结果是()。 #include <stdio.h> int main() { int a[5]={1,2,3,4,5},*p,**pp; p=a; pp=&p; printf("%d ",*(p+3)); printf("%d",**pp); return 0; }

A、4 1

B、3 1

C、4 4

D、3 4

答案:A

20、若有int a[10],*p;,则下列语句中正确的是()。

A、for(p=a; a<p+10 ; a++)

B、for(p=a; p<a+10 ; p++)

C、for(p=a; p<p+10 ; p++)

D、for(p=a; p<a+10 ; a++)

答案:B

第八章测试

1、函数strcmp("ABCDDCBA","ABCDE")的返回值是()。

A、0

B、正数

C、负数

D、随机值

答案:C

2、以下程序运行后的输出结果是()。 int main() { int i,j; char a[ ]={‘a’,‘b’,‘c’,‘d’, ‘e’, ‘f’, ‘g’,‘h’,‘\0’}; i=sizeof(a); // sizeof返回数组a在内存分配字节数 j=strlen(a); printf(“%d,%d\n”,i,j); }

A、9,9

B、8,9

C、1,8

D、9,8

答案:D

3、下列选项中,不正确的赋值方式是()。

A、char str[ ]={'s','t','r','i','n','g','\0'};

B、char str[7]={'s','t','r','i','n','g'};

C、char str1[10]; str1="string";

D、char str1[ ]="string",str2[ ]="12345678";

答案:C

4、若有以下的说明和语句, 则它与()中的说明是等价的。 char s[3][5]={"aaaa","bbbb","cccc"};

A、char s1[ ][ ] ={"aaaa","bbbb","cccc"};

B、char s2[3][] ={"aaaa","bbbb","cccc"};

C、char s3[ ][5]={"aaaa","bbbb","cccc"};

D、char s4[ ][4]={"aaaa","bbbb","cccc"};

答案:C

5、有以下程序: #include "stdio.h" #include "string.h" int main() { int i,j; char t[10],p[5][10]={"abc","aabdfg","abbd","dcdbe","cd"}; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(strcmp(p,p[j])>0) { strcpy(t,p); strcpy(p,p[j]); strcpy(p[j],t); } printf("%d\n",strlen(p[0])); } 程序运行后的输出结果是()。

A、6

B、4

C、5

D、3

答案:A

6、下列选项正确的语句组是 ()。

A、char s[8]; s={"China"};

B、char *s; s={"China"};

C、char s[8]; s="China";

D、char *s; s="China";

答案:D

7、下面程序的运行结果是 ()。 char c[6]={'a','b','\0','c','d','\0'}; printf("%s",c);

A、'a' 'b'

B、ab

C、ab c

D、ab cd

答案:B

8、有两个字符数组a、b,则以下正确的输入语句是()。

A、gets(a,b);

B、scanf("%s%s",a,b);

C、scanf("%s%s",&a,&b);

D、gets("a"); gets("b");

答案:B

9、下面程序段的运行结果是()。 char a[7]= "abcdef"; char b[4]= "ABC"; strcpy(a,b); printf("%c",a[5]);

A、空格

B、c

C、e

D、f

答案:D

10、下面程序段的输出结果是()。 #include <stdio.h>int main(){ char str[]="I like swimming! ",*p=str; p=p+7; printf("%s",p);}

A、程序有错误

B、I like swimming!

C、swimming!

D、like swimming!

答案:C

11、下面哪个选项不能将"hello"字符串存入字符数组str中()。

A、char str[]="hello" ;

B、char str[30]; strcpy(str, "hello");

C、char str[30];str="hello";

D、char str[30],*ps=str; strcpy(ps,"hello");

答案:C

12、有以下定义,不能表示字符 'C' 的表达式是()。char str[]="ABCDEFG",*p=str;

A、*(p+2)

B、str[2]

C、*(str+2)

D、*p+2

答案:D

13、程序段char c[]="abcdefg "; printf("%s",c+4);的运行结果是()。

A、abcd

B、efg

C、abcdefg

D、defg

答案:B

14、有如下定义,不能给数组a输入字符串的是()。char a[20],*p=a;

A、gets(p)

B、gets(a[0])

C、gets(&a[0])

D、gets(a)

答案:B

15、下面说法正确的是()。

A、若定义char s[]="well"; char t[]={'w','e','l','l'};,则数组s与数组t中内容相同。

B、当两个字符串所包含的字符个数相同时,才能比较两个字符串的大小。

C、函数strcpy(str1,str2); 的功能是将str2中字符串复制到str1中。

D、定义char a[30], b[]="China"; 后,可执行a=b; 将数组b中的字符串赋值给数组a。

答案:C

16、接受用户输入含有空格的字符串时,应使用()。

A、getchar()

B、gets()

C、scanf()

D、printf()

答案:B

17、列描述中错误的是 ()。

A、可以对字符数组进行整体输入、输出。

B、字符串可以存储在字符数组中。

C、不能对字符数组存储的字符串进行更改。

D、不能使用赋值运算符“=”,直接对字符数组名进行赋值。

答案:C

18、执行以下程序段后,输出结果是()。 char str[20]="door",t; int i,j; i=0; j=strlen(str)-1; t=str; str=str[j]; str[j]=t; puts(str);

A、door

B、dood

C、rood

D、roor

答案:C

19、若有如下定义char a[30],b[30],则以下正确的输入语句是()

A、gets(a,b);

B、gets(a); gets(b);

C、scanf("%s",a,b);

D、scanf("%s%s"&a,&b);

答案:B

20、执行以下程序段后,输出结果是() 。 char s[20]= "Good",t[]="Moring!"; strcat(s,t); puts(s);

A、GoodMoring!

B、Moring!

C、Good

D、Moring!Good

答案:A

第九章测试

1、在c语言中以下不正确的说法是()。

A、实参可以是常量、变量、或表达式 

B、形参可以是常量、变量或表达式

C、实参可以为任意类型

D、形参应与其对应的实参类型一致

答案:B

2、以下程序有语法性错误,有关错误原因的正确说法是()。  #include <stdio.h> int main(void)     {  int G=5,k;  void  prt_char();  ……    k=prt_char(G);    …… return 0; } 

A、语句void prt_char();有错,它是函数调用语句不能用void说明

B、变量名不能使用大写字母

C、函数说明和函数调用语句之间有矛盾

D、函数名不能使用下划线

答案:C

3、下述函数定义形式正确的是()。

A、int f(int x;int y)

B、int f(int x,int y)

C、int f(int x,y)

D、int f(x,y:int)

答案:B

4、以下所列的各函数首部中,正确的是()。

A、void play(int a,b)

B、void play(var :Integer,var b:Integer)

C、void play(int a,int b)

D、Sub play(a as integer,b as integer)

以上相关的更多内容请点击智慧树查看,该题目的答案为网上收集整理仅供参考!

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

大家都在搜

相关推荐:

猜您喜欢