|
【石油大学】C语言程序设计-第二次在线作业
试卷总分:100 得分:100
第1题,1.(2.5分)以下关于数组的描述正确的是()。
A、A. 数组的大小是固定的,但可以有不同的类型的数组元素。
B、B. 数组的大小是可变的,但所有数组元素的类型必须相同。
C、C. 数组的大小是固定的,但所有数组元素的类型必须相同。
D、D. 数组的大小是可变的,但可以有不同的类型的数组元素。
正确答案:
第2题,2.(2.5分)在定义inta[10];之后,对a的引用正确的是()。
A、A.a[10]
B、B.a[6.3]
C、C.a(6)
D、D.a[10-10]
正确答案:
第3题,3.(2.5分)以下能正确定义数组并正确赋初值的语句是()。
A、A. int n=5,b[n][n];
B、B. int a[1][2]={{1},{3}};
C、C. int c[2][]={{1,2},{3,4}}
D、D. int a[3][2]={{1,2},{3,4}}
正确答案:
第4题,4.(2.5分)以下不能正确赋值的是()。
A、A. char s1[10];s1=" test" ;
B、B. char s2[]={'t','e','s','t'}
C、C. char s3[20]= " test" ;
D、D. char s4[4]={ 't','e','s','t'}
正确答案:
第5题,5.(2.5分)下面程序段运行时输出结果是()。chars[18]="abook!";printf("%.4s",s);
A、A. a book!
B、B.ook!
C、C. a bo
D、D. 格式描述不正确,没有确定输出
正确答案:
第6题,6.(2.5分)下面程序段运行时输出结果是()。chars[12]="china";printf("%d\n",strlen(s));
A、A. 5
B、B. 8
C、C. 7
D、D. 6
正确答案:
第7题,7.(2.5分)在执行inta[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是()。
A、A. 4
B、B. 1
C、C. 2
D、D. 5
正确答案:
第8题,8.(2.5分)若有以下定义,则关于数组x和数组y的描述正确的是()。charx[]="abcd",y[]={'a','b','c','d'};
A、A. 数组x和数组y等价
B、B. 数组x和数组y长度相同
C、C. 数组x的长度大于数组y的长度
D、D. 数组x的长度小于数组y的长度
正确答案:
第9题,9.(2.5分)若有以下定义和语句,且0≤i<10则对数组元素的错误引用是()。inta[10]={1,2,3,4,5,6,7,8,9,10},*p,i;p=a;
A、A. *(a+i)
B、B. a[p-a]
C、C. p+i
D、D. *(& a[i])
正确答案:
第10题,10.(2.5分)char*s="\t\\Name\\Address\n";指针s所指字符串的长度为()
A、A. 说明不合法
B、B. 19
C、C. 18
D、D. 15
正确答案:
第11题,11.(2.5分)字符串"program"占有的内存是()字节。
A、A. 7
B、B. 8
C、C. 9
D、D. 10
正确答案:
第12题,12.(2.5分)下面程序输出数组中的最大值,由s指针指向该元素.voidmain(){inta[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("Themax:%d",*s):}则在if语句中的判断表达式应该是()。
A、A. p> s
B、B. *p> *s
C、C. a[p]> a[s]
D、D. p-a> p-s
正确答案:
第13题,13.(2.5分)若intx,*pb;,则正确的赋值表达式是()。
A、A. pb=& x
B、B. pb=x
C、C. *pb=& x
D、D. *pb=*x
正确答案:
第14题,14.(2.5分)若有以下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是()。
A、A. *p+6
B、B. *(p+6)
C、C. *p+=5
D、D. p+5
正确答案:
第15题,15.(2.5分)若有以下定义和语句:doubler=99,*p=&r;*p=r;则以下正确的叙述是()。
A、A. 两处的*p 含义相同,都说明给指针变量p 赋值
B、B. 在" double r=99,*p=& r;" 中,把r 的地址赋值给了p 所指的存储单元
C、C. 语句" *p=r;" 把变量r 的值赋给指针变量p
D、D. 语句" *p=r;" 取变量r 的值放回r 中
正确答案:
第16题,16.(2.5分)设有如下定义:char*aa[2]={"abcd","ABCD"};则以下说法中正确的是()。
A、A. aa 数组元素的值分别是" abcd" 和ABCD"
B、B. aa 是指针变量,它指向含有两个数组元素的字符型一维数组
C、C. aa 数组的两个元素分别存放着含有4 个字符的一维字符数组的首地址
D、D. aa 数组的两个元素中各自存放了字符' a' 和' A' 的地址
正确答案:
第17题,17.(2.5分)若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是()
A、A. p+1
B、B. a+1
C、C. a++
D、D. ++p
正确答案:
第18题,18.(2.5分)对于类型相同的两个指针变量之间,不能进行的运算是()。
A、A. <
B、B. =
C、C. +
D、D. -
正确答案:
第19题,19.(2.5分)若有定义:inta[3][4];,()不能表示数组元素a[1][1]。
A、A. *(a[1]+1)
B、B. *(& a[1][1])
C、C. (*(a+1))[1]
D、D. *(a+5)
正确答案:
第20题,20.(2.5分)设有如下的程序段:charstr[]="Hello";char*ptr;ptr=str;执行上面的程序段后,*(ptr+5)的值为()。
A、A. ' o'
B、B. ' \0'
C、C. 不确定的值
D、D. ' o' 的地址
正确答案:
第21题,21.(2.5分)下面程序段运行时输出结果是:01524#include<stdio.h>voidmain(){inti=0,a[10];for(i=0;i<=9;i++)a[i]=i*3;printf("%d%d%d",a[0],a[5],a[8]);}
正确
错误
正确答案:
第22题,22.(2.5分)下面程序段运行时输出结果是:10334566#include<stdio.h>voidmain(){inta[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]);}
正确
错误
正确答案:
第23题,23.(2.5分)下面程序段运行时输出结果是:456voidmain(){inta[][3]={1,2,3,4,5,6,7,8,9},i,k=2;for(i=0;i<3;i++)printf("%d",a[k][i]);}
正确
错误
正确答案:
第24题,24.(2.5分)下面程序段运行时输出结果是:27voidmain(){inta[3][3]={1,3,5,7,9,11,13,15,17};intsum=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);}
正确
错误
正确答案:
第25题,25.(2.5分)下面程序段运行时输出结果是:"AAAA"voidmain(){charch[3][5]={"AAAA","BBB","CC"};printf("\"%s\"",ch[1]);}
正确
错误
正确答案:
第26题,26.(2.5分)下面程序段运行时输出结果是:38#include<stdio.h>voidmain(){intp[7]={11,13,14,15,16,17,18};inti=0,k=0;while(i<7&&p[i]%2){k=k+p[i];i++;}printf("k=%d\n",k);}
正确
错误
正确答案:
第27题,27.(2.5分)下面程序段运行时输出结果是:-4#include<stdio.h>main(){inti,s;chars1[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;elses=s1[i]-s2[i];printf("%d\n",s);}
正确
错误
正确答案:
第28题,28.(2.5分)数组的下标是从1开始计数的。
正确
错误
正确答案:
第29题,29.(2.5分)以下程序的功能是:获得数组的前二十个元素值,并打印。该数组前两个元素值为0、1,后续数组元素是其前两个元素的和。#defineN20voidmain(){inti,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]);}
正确
错误
正确答案:
第30题,30.(2.5分)以下程序的功能是:由键盘输入一行文字和某一个字符,然后删去该行文字中所有该字符,并打印新字符串。#include<stdio.h>voidmain(){charstr1[100],str2[100];charch;inti=0,k=0;while((str1[i]=getchar())!='\n')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("\n%s\n",str2);}
正确
错误
正确答案:
第31题,31.(2.5分)以下程序的功能是:有一个3×4的矩阵,编程求出其中值最大的那个元素的值,以及其所在的行号和列号。#include<stdio.h>voidmain(){inta[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;}}
正确
错误
正确答案:
第32题,32.(2.5分)以下程序的功能是:将一个数组中的元素按逆序重新存放并打印交换后的数组。#defineN7#include<stdio.h>voidmain(){staticinta[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("\n交换后的数组:\n");for(k=0;k<N;k++)printf("%4d",a[k]);}
正确
错误
正确答案:
第33题,33.(2.5分)以下程序的功能是:字符串a复制到字符串b,并显示字符串b。#include<stdio.h>voidmain(){chara[200]="howareyou.",b[200];inti=0;while(a[i]!='\0'){b[i]=a[i];i++;}b[i]='\0';printf("新字符串是%s",b);}
正确
错误
正确答案:
第34题,34.(2.5分)以下程序的功能是:输出行、列号之和为3的数组元素。判断下面程序是否正确()。main(){charss[4][3]={'A','a','f','c','B','d','e','b','C','g','f','D'};intx,y,z;for(x=0;x<4;x++)for(y=0;y<3;y++){z=x+y;if(z=3)printf("%c\n",ss[x][y]);}}
正确
错误
正确答案:
第35题,35.(2.5分)以下程序的功能是:输出数组中最大元素(p表示最大元素的下标)。voidmain(){ints[]={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]);}
正确
错误
正确答案:
第36题,36.(2.5分)下面程序段运行时输出结果是:6#include<stdio.h>voidmain(){int*p,a=5,b=1;p=&a;*p=10;a=*p+b;printf("%d",a);}
正确
错误
正确答案:
第37题,37.(2.5分)下面程序段运行时输出结果是:8,68,6voidmain(){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);}
正确
错误
正确答案:
第38题,38.(2.5分)下面程序段运行时输出结果是:135#include<stdio.h>voidmain(){inta[2][3]={1,3,5,7,9,11};intm,*ptr;ptr=&a[0][1];m=(*ptr)*(*(ptr+1))*(*(ptr+3));printf("%d",m);}
正确
错误
正确答案:
第39题,39.(2.5分)下面程序段运行时输出结果是:GFEDCBAvoidmain(){charb[]="ABCDEFG";char*chp=&b[7];while(--chp>&b[0])putchar(*chp);}
正确
错误
正确答案:
第40题,40.(2.5分)下面程序段运行时输出结果是:ppleple#include<stdio.h>voidmain(){chars[]="apple",*p;for(p=s+1;p<s+3;p++)printf("%s",p);}
正确
错误
正确答案:
|
|