找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1352|回复: 0

中石油北京2020秋《C语言程序设计》第二次在线作业参考

[复制链接]
发表于 2020-6-2 16:24:53 | 显示全部楼层 |阅读模式
2018秋《C语言程序设计》第二次在线作业
1.[单选题] 以下关于数组的描述正确的是()。
请参考帮助中心说明,自助下载答案
    A. 数组的大小是固定的,但可以有不同的类型的数组元素。
    B. 数组的大小是可变的,但所有数组元素的类型必须相同。
    C. 数组的大小是固定的,但所有数组元素的类型必须相同。
    D. 数组的大小是可变的,但可以有不同的类型的数组元素。
    答:——C——
2.[单选题] 在定义int a[10];之后,对a的引用正确的是()。
    A.a[10]
    B.a[6.3]
    C.a(6)
    D.a[10-10]
    答:——D——
3.[单选题] 以下能正确定义数组并正确赋初值的语句是()。
    A. int n=5,b[n][n];
    B. int a[1][2]={{1},{3}};
    C. int c[2][]={{1,2},{3,4}}
    D. int a[3][2]={{1,2},{3,4}}
    答:——D——
4.[单选题] 以下不能正确赋值的是()。
    A. char s1[10];s1=" test" ;
    B. char s2[]={’t’,’e’,’s’,’t’}
    C. char s3[20]= " test" ;
    D. char s4[4]={ ’t’,’e’,’s’,’t’}
    答:————
5.[单选题] 下面程序段运行时输出结果是()。
char s[18]= " a book! " ;
printf(" %.4s" ,s);
    A. a book!
    B.ook!
    C. a bo
    D. 格式描述不正确,没有确定输出
    答:————
6.[单选题] 下面程序段运行时输出结果是()。
char s[12]= " china" ;
printf(" %d\n" ,strlen(s));
    A. 5
    B. 8
    C. 7
    D. 6    奥鹏作业答案Q 7 6 1296021
    答:————
7.[单选题] 在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是()。
    A. 4
    B. 1
    C. 2
    D. 5
    答:————
8.[单选题] 若有以下定义,则关于数组x和数组y的描述正确的是()。
char x[]=”abcd”, y[]={‘a’,‘b’,‘c’,‘d’};
    A. 数组x和数组y等价
    B. 数组x和数组y长度相同
    C. 数组x的长度大于数组y的长度
    D. 数组x的长度小于数组y的长度
    答:————
9.[单选题] 若有以下定义和语句,且0≤i< 10则对数组元素的错误引用是()。
int a[10]={1,2,3,4,5,6,7,8,9,10},*p,i;
p=a;
    A. *(a+i)
    B. a[p-a]
    C. p+i
    D. *(& a[i])
    答:————
10.[单选题] char *s=" \t\\Name\\Address\n" ;
指针s所指字符串的长度为()
    A. 说明不合法
    B. 19
    C. 18
    D. 15
    答:————
11.[单选题] 字符串" program" 占有的内存是()字节。
    A. 7
    B. 8
    C. 9
    D. 10
    答:————
12.[单选题] 下面程序输出数组中的最大值,由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 语句中的判断表达式应该是()。
    A. p> s
    B. *p> *s
    C. a[p]> a[s]
    D. p-a> p-s
    答:————
13.[单选题] 若int x ,*pb; ,则正确的赋值表达式是() 。
    A. pb=& x
    B. pb=x
    C. *pb=& x
    D. *pb=*x
    答:————
14.[单选题] 若有以下说明:
  int a[10]={1,2,3,4,5,6,7,8,9,10} ,*p=a ;
则数值为6 的表达式是()。
    A. *p+6
    B. *(p+6)
    C. *p+=5
    D. p+5
    答:————
15.[单选题] 若有以下定义和语句:
  double r=99 , *p=& r ;
  *p=r ;
则以下正确的叙述是()。
    A. 两处的*p 含义相同,都说明给指针变量p 赋值
    B. 在" double r=99,*p=& r;" 中,把r 的地址赋值给了p 所指的存储单元
    C. 语句" *p=r;" 把变量r 的值赋给指针变量p
    D. 语句" *p=r;" 取变量r 的值放回r 中
    答:————
16.[单选题] 设有如下定义:
  char *aa[2]={" abcd" ," ABCD" };
则以下说法中正确的是()。
    A. aa 数组元素的值分别是" abcd" 和ABCD"
    B. aa 是指针变量,它指向含有两个数组元素的字符型一维数组
    C. aa 数组的两个元素分别存放着含有4 个字符的一维字符数组的首地址
    D. aa 数组的两个元素中各自存放了字符' a' 和' A' 的地址
    答:————
17.[单选题] 若已定义:int a[9] ,*p=a;并在以后的语句中未改变p 的值,不能表示a[1] 地
址的表达式是()
    A. p+1
    B. a+1
    C. a++
    D. ++p
    答:————
18.[单选题] 对于类型相同的两个指针变量之间,不能进行的运算是()。
    A. <
    B. =
    C. +
    D. -
    答:————
19.[单选题] 若有定义:int a[3][4]; ,()不能表示数组元素a[1][1]。
    A. *(a[1]+1)
    B. *(& a[1][1])
    C. (*(a+1))[1]
    D. *(a+5)
    答:————
20.[单选题] 设有如下的程序段:
  char str[ ]=" Hello"  ;
  char *ptr ;
  ptr=str ;
执行上面的程序段后 ,*(ptr+5)的值为 ()。
    A. ' o'
    B. ' \0'
    C. 不确定的值
    D. ' o' 的地址
    答:————
21.[判断题] 下面程序段运行时输出结果是:0 15 24     
#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]);
}
    A.错误
    B.正确
    答:————
22.[判断题] 下面程序段运行时输出结果是:
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]);
}
    A.错误
    B.正确
    答:————
23.[判断题] 下面程序段运行时输出结果是: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]);
}
    A.错误
    B.正确
    答:————
24.[判断题] 下面程序段运行时输出结果是: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);
}
    A.错误
    B.正确
    答:————
25.[判断题] 下面程序段运行时输出结果是:" AAAA"
void main()
{
   char ch[3][5]={ " AAAA" ," BBB" ," CC" };
   printf(" \" %s\" " ,ch[1]);
}
    A.错误
    B.正确
    答:————
26.[判断题] 下面程序段运行时输出结果是: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\n" ,k);
        }
    A.错误
    B.正确
    答:————
27.[判断题] 下面程序段运行时输出结果是:-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\n" ,s);
          }
    A.错误
    B.正确
    答:————
28.[判断题] 数组的下标是从1开始计数的。
    A.错误
    B.正确
    答:————
29.[判断题] 以下程序的功能是:获得数组的前二十个元素值,并打印。该数组前两个元素值为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]);
}
    A.错误
    B.正确
    答:————
30.[判断题] 以下程序的功能是:由键盘输入一行文字和某一个字符,然后删去该行文字中所有该字符,并打印新字符串。
#include < stdio.h>
void main()
{
char str1[100],str2[100];
char ch;
int i=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);
}
    A.错误
    B.正确
    答:————
31.[判断题] 以下程序的功能是:有一个 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;}
}
    A.错误
    B.正确
    答:————
32.[判断题] 以下程序的功能是:将一个数组中的元素按逆序重新存放并打印交换后的数组。
#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(" \n交换后的数组:\n" );
for(k=0;k< N;k++)printf(" %4d" ,a[k]);
}
    A.错误
    B.正确
    答:————
33.[判断题] 以下程序的功能是:字符串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);
}
    A.错误
    B.正确
    答:————
34.[判断题] 以下程序的功能是:输出行、列号之和为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\n" ,ss[x][y]);
             }
}
    A.错误
    B.正确
    答:————
35.[判断题] 以下程序的功能是:输出数组中最大元素(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]);  
}
    A.错误
    B.正确
    答:————
36.[判断题] 下面程序段运行时输出结果是:6
#include < stdio.h>
void main()
{ int *p,a=5,b=1;
p=& a;
*p=10;
a=*p+b;
printf(“%d”,a);
}
    A.错误
    B.正确
    答:————
37.[判断题] 下面程序段运行时输出结果是: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);
}
    A.错误
    B.正确
    答:————
38.[判断题] 下面程序段运行时输出结果是: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);
}
    A.错误
    B.正确
    答:————
39.[判断题] 下面程序段运行时输出结果是:GFEDCBA
void main()
{  char b[ ]=" ABCDEFG" ;
    char *chp=& b[7];
    while(--chp> & b[0])
    putchar(*chp);
}
    A.错误
    B.正确
    答:————
40.[判断题] 下面程序段运行时输出结果是:pple  ple
#include < stdio.h>
void main()
{ char s[]=" apple" ,*p;
  for(p=s+1;p< s+3;p++)   
    printf(" %s " ,p);
}
    A.错误
    B.正确
    答:————

附件是答案,核对题目下载,无忧答案网q 7 6 12960 2 1

中石油北京2020秋《C语言程序设计》第二次在线作业.zip

4.17 KB, 下载次数: 0, 下载积分: 贡献 1

售价: 3 金币  [记录]  [购买]

答案参考

QQ|手机版|小黑屋|网站地图|无忧答案网 ( 冀ICP备18010495号-1 )

GMT+8, 2024-5-3 19:44

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表