C语言程序设计练习题之 数组与结构体

阅读: 评论:0

数组与结构体
一、单项选择题
朱瑞峰近况(在每小题列出的四个备选项中只有一个是符合题目要求的。)
1.若有定义int a[4]={1,2,3,4};则a[a[0]+2 * a[2]-a[3]]等于
A.1      B.2      C.3      D.4
2.设有数组定义: char array [ ]="China"; 则数组 array所占的空间为
A.4个字节    B.5个字节    C.6个字节    D.7个字节
3.设有定义char a[]="xyz",b[]={'x','y','z'};  ,则语句cout<<sizeof(a)<<" "<<sizeof(b)<<endl;输出结果为
A.3  3      B.3  4      C.4  3      D.4  4
4.设int b[ ][5]={1,2,3,4,5,6,7};,则元素b[1][2]的值是
A.0      B.2      C.6      D.7
5.数组定义为int a[2][3]={1,2,3,4,5,6},值为1的数组元素是
A.a[0][0]    B.a[1][1]    C.a[1][2]    D.a[2][3]
6.C++中,若有说明:int a[3][4];  则对a数组元素的正确引用是
A.a[2][4]    B.a[1+1][0]    C.a(2)(1)      D.a[1,3]
7. 定义二维数组并初始化,正确的是
A.int a[ ][ ]={1,2,3,4,5,6};    B.int a[2][ ]={1,2,3,4,5,6};
C.int a[ ][3]={1,2,3,4,5,6};    D.int a[2,3]={1,2,3,4,5,6};
8.以下数组定义中,不正确的是
A.int  a[2][3];        B.int  b[ ][3]={0,1,2,3};
C.int  c[100][100]={0};    D.int  d[3][ ]={{1,2},{1,2,3},{1,2,3,4}};
9.设char x[][10]={"Windows","dos","unix"}; ,执行cout<<x[1][2];后输出的结果是
A.n      B.i      C.o      D.s
10.以下叙述中错误的是
A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B.数组名代表的是数组所占存储区的首地址,其值不可改变
C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
D.可以通过赋初值的方式确定数组元素的个数
11.设#pragma pack(1),则结构体类型变量占用内存的字节数是
A.各成员占用内存字节数之和        B.第一个成员占用的内存字节数
C.占用内存最大成员所需的字节数    D.最后一个成员占用的内存字节数
12.下面程序运行后,输出结果是
#include <iostream>
using namespace std;
int main()
{
  int p[8]={1,2,3,4,5,6,7,8},i=0,j=0;
  while(i++<7) 
if(p[i]%2)  j+=p[i];
  cout<<j<<endl;
  return 0;   
}
A.15      B.16    C.20      D.36
13.下面程序运行后,输出结果是
#include <iostream>
using namespace std;
int  main( )
{
int  a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for(i=1;i<3;i++)
      for(j=0;j<=i;j++)
s+=a[i][j];
    cout<<s<<endl;
    return 0;
}
A.18      B.19      C.20      D.21
14.下面程序运行后,输出结果是
#include<iostream>
using namespace std;
int  main( )
{  int a[3][3]={1,2,3,4,5,6,7,8,9},n,sum=0;
for(n=0;n<3;n++)
        sum=sum+a[n][n];
cout<<sum<<endl;
return 0;
}
A.6      B.12      C.15    D.45
15.下面程序运行后,输出结果是
#include <iostream>
using namespace std;
struct abc
{ int a, b, c; };
int main()
{
    struct  abc  s[2]={{1,2,3},{4,5,6}}; int t;
    t=s[0].a+s[1].b;
  cout<<t<<endl;
return 0;   
}
    A.5            B.6              C.7            D.8
、程序分析题
阅读下列程序,写出程序的运行结果
1. #include <iostream>
using namespace std;
int main()
{  int a [6]={2,-3,4,-6,-8,10}, i;
for (i=0;i<6;i++)
{
    if(a[i]<0) continue;
    cout<<a[i]<<"  ";
}
  cout<<endl;
  return 0;     
}
2. #include <iostream>
using namespace std;
int  main( )
{
    int  y=53,i=0,j,a[8];
    do
a[i++]=y%2;
彭斯
        y=y/2;
}  while(y!=0) ;
设备管理系统    for(j=i-1;j>=0;j--)
cout<<a[j];
    cout<<endl;
    return 0;
}
3. #include <iostream>
using namespace std;
int  main( )
{
  char  ch[]={"12yue25ri"};
  int  i,s=0;
  for(i=0;ch[i]>='0' && ch[i]<='9';i++)
      s=10*s+ch[i]-'0';
  cout<<s<<endl;
  return 0;
}
4. #include <iostream>
using namespace std;
int  main( )
{
    int n=0;
    char str[80]="Beijing-China 2008";
    cout<<str<<endl;
    while(str[n]!='\0')
      str[n++]=str[n]>='a' && str[n]<='z' ? str[n]-'a'+'A':str[n];
    cout<<str<<endl;
    return 0;
}
5. #include <iostream>
using namespace std;
int  main( )
{
    int x[2][3]={5,4,6,7,8,9};
    int m[2],i,j;
    for (i=0;i<2;i++)
{
      m[i]=x[i][0];
      for(j=1;j<3;j++)
            if(x[i][j]<m[i]) m[i]=x[i][j];
}
    for (i=0;i<2;i++)
        cout<<m[i]<<endl;
    return 0;
}
6. #include <iostream>
using namespace std;
int  main( )
{
int a[4][4]={1,2,4,7,2,3,5,8,4,5,6,9,7,8,9,10};
int i,j,found=0;
for(i=0;j<4;i++)
for(j=0;j<=i;j++)
    if(a[i][j]!=a[j][i])
{found=1;break;}
if(found)  cout<<"No!"<<endl;
  else  cout<<"Yes!"<<endl;
return 0;
}
7.#include <iostream>
春藕斋#include <iomanip>
using namespace std;
int main()
酷我音乐盒2008
{
    int a[5][5]={0},i,j,k;
    k=1;
for (i=0;i<5;i++)
for (j=i;j>=0;j--)
a[j][i-j]=k++;
for (i=0;i<5;i++)
{
for (j=0;j<5-i;j++)
cout<<setw(4)<<a[i][j];
cout<<endl;
}
return 0;
}
、程序填充题
请将下列程序横线处缺少的部分补上使其能正确运行。
1.输出数组int a[10]中的最大值及其下标
#include<iostream.h>
int  main()
{
int a[10],max,sub,n;
for(n=0;n<10;n++)
cin>>______________;              // (1)
max=a[0];
sub=0;
for(n=1 ;n<10 ;n ++ )
{
if(a[n]>max)
{
max=______________;        // (2)
sub= ______________;        // (3)
  }
明清小说研究
}
cout  <<"max="<<max<<endl;
cout  <<"sub="<<sub<<endl;
return 0;
}
2.用数组构造Fibnacci序列的前20个数。
#include <iostream>
using namespace std;
int main()
{
int  i,fib[20];
fib[0]=1;    fib[1]=1;
for (i=2;i<=19;i++)

本文发布于:2023-08-15 05:32:06,感谢您对本站的认可!

本文链接:https://patent.en369.cn/xueshu/361132.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数组   程序   下标   元素   输出
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图