北京石油大学C语言设计第二次作业,中国石油大学18秋《C语言程序设计》第2次在线作业...

中国石油大学18秋《C语言程序设计》第2次在线作业

萌到你眼炸

510次浏览

2020年07月28日 17:17

最佳经验

本文由作者推荐

塑料5号-释怀的近义词第二次在线作业

单选题 (共20道题)

展开

收起

1.(2.5分) 以下关于数组的描述正确的是()。

?t A、A. 数组的大小是固定的,但可以有不同的类型的数组元素。

?t B、B. 数组的大小是可变的,但所有数组元素的类型必须相同。

?t C、C. 数组的大小是固定的,但所有数组元素的类型必须相同。

?t D、D. 数组的大小是可变的,但可以有不同的类型的数组元素。

我的答案:C 此题得分:2.5分

2.(2.5分) 在定义int a[10];之后,对a的引用正确的是()。

?t A、A.a[10]

?t B、B.a[6.3]

?t C、C.a(6)

?t D、D.a[10-10]

我的答案:D 此题得分:2.5分

3.(2.5分) 以下能正确定义数组并正确赋初值的语句是()。

?t A、A. int n=5,b[n][n];

?t B、B. int a[1][2]={{1},{3}};

?t C、C. int c[2][]={{1,2},{3,4}}

?t D、D. int a[3][2]={{1,2},{3,4}}

我的答案:D 此题得分:2.5分

4.(2.5分) 以下不能正确赋值的是()。

?t A、A. char s1[10];s1=" test"

?t B、B. char s2[]={’t’,’e’,’s’,’t’}

?t C、C. char s3[20]= " test"

?t D、D. char s4[4]={ ’t’,’e’,’s’,’t’}

我的答案:A 此题得分:2.5分

5.(2.5分) 下面程序段运行时输出结果是()。 char s[18]= " a book! " printf(" %.4s" ,s);

?t A、A. a book!

?t B、!

?t C、C. a bo

?t D、D. 格式描述不正确,没有确定输出

我的答案:C 此题得分:2.5分

6.(2.5分) 下面程序段运行时输出结果是()。 char s[12]= " china" printf(" %d

" ,strlen(s));

?t A、A. 5

?t B、B. 8

?t C、C. 7

?t D、D. 6

我的答案:A 此题得分:2.5分

7.(2.5分) 在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是()。

?t A、A. 4

?t B、B. 1

?t C、C. 2

?t D、D. 5

我的答案:A 此题得分:2.5分

8.(2.5分) 若有以下定义,则关于数组x和数组y的描述正确的是()。 char x[]=”abcd”, y[]={‘a’,‘b’,‘c’,‘d’};

?t A、A. 数组x和数组y等价

?t B、B. 数组x和数组y长度相同

?t C、C. 数组x的长度大于数组y的长度

?t D、D. 数组x的长度小于数组y的长度

我的答案:C 此题得分:2.5分

9.(2.5分) 若有以下定义和语句,且0≤i< 10则对数组元素的错误引用是()。 int a[10]={1,2,3,4,5,6,7,8,9,10},*p,i; p=a;

?t A、A. *(a+i)

?t B、B. a[p-a]

?t C、C. p+i

?t D、D. *(& a[i])

我的答案:C 此题得分:2.5分

10.(2.5分) char *s=" tNameAddress

" 指针s所指字符串的长度为()

?t A、A. 说明不合法

?t B、B. 19

?t C、C. 18

?t D、D. 15

我的答案:D 此题得分:2.5分

11.(2.5分) 字符串" program" 占有的内存是()字节。

?t A、A. 7

?t B、B. 8

?t C、C. 9

?t D、D. 10

我的答

案:B 此题得分:2.5分

12.(2.5分) 下面程序输出数组中的最大值,由s 指针指向该元素. void main() { int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s; for(p=a, s=a; p-a< 10; p++) if( )s=p; printf(" The max:%d" ,*s): } 则在if 语句中的判断表达式应该是()。

?t A、A. p> s

?t B、B. *p> *s

?t C、C. a[p]> a[s]

?t D、D. p-a> p-s

我的答案:B 此题得分:2.5分

13.(2.5分) 若int x ,*pb; ,则正确的赋值表达式是() 。

?t A、A. pb=& x

?t B、B. pb=x

?t C、C. *pb=& x

?t D、D. *pb=*x

我的答案:A 此题得分:2.5分

14.(2.5分) 若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10} ,*p=a ; 则数值为6 的表达式是()。

?t A、A. *p+6

?t B、B. *(p+6)

?t C、C. *p+=5

?t D、D. p+5

我的答案:C 此题得分:2.5分

15.(2.5分) 若有以下定义和语句: double r=99 , *p=& r ; *p=r ; 则以下正确的叙述是()。

?t A、A. 两处的*p 含义相同,都说明给指针变量p 赋值

?t B、B. 在" double r=99,*p=& r;" 中,把r 的地址赋值给了p 所指的存储单元

?t C、C. 语句" *p=r;" 把变量r 的值赋给指针变量p

?t D、D. 语句" *p=r;" 取变量r 的值放回r 中

我的答案:D 此题得分:2.5分

16.(2.5分) 设有如下定义: char *aa[2]={" abcd" ," ABCD" }; 则以下说法中正确的是()。

?t A、A. aa 数组元素的值分别是" abcd" 和ABCD"

?t B、B. aa 是指针变量,它指向含有两个数组元素的字符型一维数组

?t C、C. aa 数组的两个元素分别存放着含有4 个字符的一维字符数组的首地址

?t D、D. aa 数组的两个元素中各自存放了字符' a' 和' A' 的地址

我的答案:D 此题得分:2.5分

17.(2.5分) 若已定义:int a[9] ,*p=a;并在以后的语句中未改变p 的值,不能表示a[1] 地 址的表达式是()

?t A、A. p+1

?t B、B. a+1

?t C、C. a++

?t D、D. ++p

我的答案:C 此题得分:2.5分

18.(2.5分) 对于类型相同的两个指针变量之间,不能进行的运算是()。

?t A、A. <

?t B、B. =

?t C、C. +

?t D、D. -

我的答案:C 此题得分:2.5分

19.(2.5分) 若有定义:int a[3][4]; ,()不能表示数组元素a[1][1]。

?t A、A. *(a[1]+1)

?t B、B. *(& a[1][1])

?t C、C. (*(a+1))[1]

?t D、D. *(a+5)

我的答案:D 此题得分:2.5分

20.(2.5分) 设有如下的程序段: char str[ ]=" Hello" ; char *ptr ; ptr=str ; 执行上面的程序段后 ,*(ptr+5)的值为 ()。

?t A、A. ' o'

?t B、B. ' 0'

?t C、C. 不确定的值

?t D、D. ' o' 的地址

我的答案:B 此题得分:2.5分

判断题 (共20道题)

展开

收起

21.(2.5分) 下面程序段运行时输出结果是:0 15 2

4 #include < stdio.h> void main() { int i=0,a[10]; for(i=0;i< =9;i++) a[i]=i*3; printf(" %d %d %d" ,a[0],a[5],a[8]); }

?t 正确

?t 错误

我的答案:正确 此题得分:2.5分

22.(2.5分) 下面程序段运行时输出结果是: 1 0 3 3 4 5 6 6 #include < stdio.h> void main() { int a[8]={1,0,1,0,1,0,1,0},i; for(i=2;i< 8;i++) a[i]+= a[i-1] + a[i-2]; for(i=0;i< 8;i++) printf(“%d ”,a[i]); }

?t 正确

?t 错误

我的答案:错误 此题得分:2.5分

23.(2.5分) 下面程序段运行时输出结果是:456 void main() { int a[][3]={ 1,2,3,4,5,6,7,8,9},i,k=2; for(i=0;i< 3;i++) printf(“%d”,a[k][i]); }

?t 正确

?t 错误

我的答案:错误 此题得分:2.5分

24.(2.5分) 下面程序段运行时输出结果是:27 void main() { int a[3][3]={1,3,5,7,9,11,13,15,17}; int sum=0,i,j; for (i=0;i< 3;i++) for (j=0;j< 3;j++) { a[i][j]=i+j; if (i==j) sum=sum+a[i][j]; } printf(" sum=%d" ,sum); }

?t 正确

?t 错误

我的答案:错误 此题得分:2.5分

25.(2.5分) 下面程序段运行时输出结果是:" AAAA" void main() { char ch[3][5]={ " AAAA" ," BBB" ," CC" }; printf(" " %s" " ,ch[1]); }

?t 正确

?t 错误

我的答案:错误 此题得分:2.5分

26.(2.5分) 下面程序段运行时输出结果是:38 #include < stdio.h> void main() { int p[7]={11,13,14,15,16,17,18}; int i=0,k=0; while(i< 7 & & p[i]%2) { k=k+p[i]; i++;} printf(" k=%d

" ,k); }

?t 正确

?t 错误

我的答案:错误 此题得分:2.5分

27.(2.5分) 下面程序段运行时输出结果是:-4 #include < stdio.h> main() { int i,s; char s1[100]=" happy" ,s2[100]=" hello" i=0; while ((s1[i]==s2[i])& & (s1[i]!=' 0' )) i++; if ((s1[i]==' 0' )& & (s2[i]==' 0' )) s=0; else s=s1[i]-s2[i]; printf(" %d

" ,s); }

?t 正确

?t 错误

我的答案:正确 此题得分:2.5分

28.(2.5分) 数组的下标是从1开始计数的。

?t 正确

?t 错误

我的答案:错误 此题得分:2.5分

29.(2.5分) 以下程序的功能是:获得数组的前二十个元素值,并打印。该数组前两个元素值为0、1,后续数组元素是其前两个元素的和。 #define N 20 void main() { int i,a[N]={0,1}; for(i=2;i< N;i++) a[i]=a[i-1]+a[i-2]; for (i=0;i< N;i++) printf(" %d " ,a[i]); }

?t 正确

?t 错误

我的答案:正确 此题得分:2.5分

30.(2.5分) 以下程序的功能是:由键盘输入一行文字和某一个字符,然后删去该行文字中所有该字符,并打印新字符串。 #include < stdio.h> void main() { char str1[100],str2[100]; char ch; int i=0,k=0; while ((str1[i]=getchar())!='

' ) i++; str1[i]=' 0' scanf(" %c" ,& ch); for (i=0;str1[i]!=' 0' i++) if (str1[i]!=ch) { str2[k]=str1[i]; k++; } str2[k]=' 0' printf("

%s

" ,str2); }

?t 正确

?t 错误

我的答案:正确 此题得分:2.5分

31.(2.5分) 以下程序的功能是:有一个 3×4的

矩阵,编程求出其中值最大的那个元素的值,以及其所在的行号和列号。 #include < stdio.h> void main() { int a[3][4],i,j,max,x,y; for (i=0;i< 3;i++) for(j=0;j< 4;j++) scanf(“%d”,& a[i][j]); max=a[0][0];x=y=0; for (i=0;i< 3;i++) for(j=0;j< 4;j++) if (max< a[i][j]) {max=a[i][j];x=i;y=j;} }

?t 正确

?t 错误

我的答案:正确 此题得分:2.5分

32.(2.5分) 以下程序的功能是:将一个数组中的元素按逆序重新存放并打印交换后的数组。 #define N 7 #include < stdio.h> void main() { static int a[N]={12,9,16,5,7,2,1},k,s; for (k=0;k< N/2;k++) { s=a[k]; a[k]=a[N-1-k]; a[N-1-k] =s; } printf("

交换后的数组:

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

?t 正确

?t 错误

我的答案:正确 此题得分:2.5分

33.(2.5分) 以下程序的功能是:字符串a复制到字符串b,并显示字符串b。 #include < stdio.h> void main() { char a[200]=”how are you.”, b[200]; int i=0; while(a[i] !=' 0' ) {b[i]=a[i]; i++; } b[i]=' 0' printf(“新字符串是%s”,b); }

?t 正确

?t 错误

我的答案:正确 此题得分:2.5分

34.(2.5分) 以下程序的功能是:输出行、列号之和为3的数组元素。判断下面程序是否正确()。 main() { char ss[4][3]={' A' ,' a' ,' f' ,' c' ,' B' ,' d' ,' e' ,' b' , ' C' ,' g' ,' f' ,' D' }; int x,y,z; for (x=0;x< 4;x++) for (y=0;y< 3;y++) { z=x+y; if (z=3) printf(" %c

" ,ss[x][y]); } }

?t 正确

?t 错误

我的答案:错误 此题得分:2.5分

35.(2.5分) 以下程序的功能是:输出数组中最大元素(p表示最大元素的下标)。 void main() { int s[]={1,-3,0,-9,8,5,-20,3}; for(i=0,p=0;i< 8;i++) if(s[i]> s[p]) p=i; printf(" %d" ,s[p]); }

?t 正确

?t 错误

我的答案:正确 此题得分:2.5分

36.(2.5分) 下面程序段运行时输出结果是:6 #include < stdio.h> void main() { int *p,a=5,b=1; p=& a; *p=10; a=*p+b; printf(“%d”,a); }

?t 正确

?t 错误

我的答案:错误 此题得分:2.5分

37.(2.5分) 下面程序段运行时输出结果是:8,6 8,6 void main() { int *p1,*p2,*p,a=6,b=8; p1=& a; p2=& b; if(a< b) { p=p1; p1=p2; p2=p;} printf(" %d,%d " ,*p1,*p2); printf(" %d,%d " ,a,b); }

?t 正确

?t 错误

我的答案:错误 此题得分:2.5分

38.(2.5分) 下面程序段运行时输出结果是:135 #include < stdio.h> void main() { int a[2][3]={1,3,5,7,9,11}; int m,*ptr; ptr=& a[0][1]; m=(*ptr)*(*(ptr+1))*(*(ptr+3)); printf(" %d" ,m); }

?t 正确

?t 错误

我的答案:正确 此题得分:2.5分

39.(2.5分) 下面程序段运行时输出结果是:GFEDCBA void main() { char b[ ]=" ABCDEFG" char *chp=& b[7]; while(--chp> & b[0]) putchar(*chp); }

?t 正确

?t 错误

我的答案:错误 此题得分:2.5分

40.(2.5分) 下面程序段运行时输出结果是:pple ple #include < stdio.h> void main() { char s[]=" apple"

,*p; for(p=s+1;p< s+3;p++) printf(" %s " ,p); }

?t 正确

?t 错误

我的答案:正确 此题得分:2.5分

现在几点几分-转动的拼音

晚上英文-暗怎么读

讷讷的意思-喳拼音

50kg是多少斤-见方

细胞体-磨刀霍霍

8k纸是多大尺寸-敛财

干就干-肱怎么读

极限运动英文-群策群力的近义词

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值