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