上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
C语言复习习题-数 组
作者:未知 申领版权
2010年12月12日 共有 1838 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:
    

第六章    数  组

1. C语言中,引用数组元素时,其数组下标的数据类型允许是
    A)整型常量                    B)整型表达式
    C)整型常量或整型表达式        D)任何类型的表达式
    2.在C语言中,一维数组的定义方式是:类型说明符  数组名[【   】];
    A)常量表达式                 B)整型表达式
    C)整型常量或整型表达式       D)整型常量
    3.若有以下定义:
    double  w[10] ;
    则w数组元素下标的上限为【         】,下限为 【            】。
    4.以下程序段给数组所有的元素输入数据 ,请选择正确答案填入。
    #include <stdio.h>
    main()
    { int a[10] ,i=0 ;
    while(i<10) scanf("%d" ,【                】 ) ;
    …  }
    A)a (i )      B)&a[i 1]      C)a i      D)&a[ i]
    5.执行下面的程序段后,变量k中的值为
    A)不定值      B)33      C)30      D)10
    int  k=3, s[2];
    s[0]=k; k=s[1]*10;
    6.若有以下说明:
    int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
    char c='a',d,g;
    则数值为4的表达式是
    A)a[g-c]      B)a[4]      C)a['d'-'c']      D)a['d'-c]
    7.请读程序:
    #include < stdio.h>
    main( )
    {  int  N[2],I,J,K;
    for ( I=0;I<2;I )   N[J]=N[I] 1;
    printf("%d\n", N[K]);}
    上面程序的输出结果是
    A)不确定的值       B)3         C)2            D)1
    8.有如下程序 
    main()
    {  int  n[5]={0 ,0 ,0},i ,k=2; 
    for(i=0;i<k ;i ) n[i]=n[i] 1 ;
    printf(" %d\n",n[k]); } 
    该程序的输出结果是 
    A)不确定的值      B)2        C)1       D)0 
    9.以下程序的输出结果是
    main()
    { int   i ,k ,a[10] ,p[3];
    k=5;
    for(i=0;i<10;i ) a[i]=i;
    for(i=0;i<3;i )  p[i]=a[i*(i 1)];
    for(i=0;i<3;i )  k =p[i]*2;
    printf("%d\n"  ,k);    }
    A)20      B)21      C)22      D)23
    10.阅读下列程序:
    main( )
    { int n[3],i,j,k;
    for(i=0;i<3;i )   n[i]=0;
    k=2;
    for (i=0;i<k;i )
    for (j=0;j<k;j )
    n[j]=n[i] 1;
    printf("%d\n",n[1]);   }
    下述程序运行后输出结果是
    A)2          B)1           C)0            D)3
    11.以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。请填空。 
    main( ) 
    {  float x[1000], sum=0.0, ave, a; 
    int n=0, i; 
    printf("Enter mark:\n");scanf("%f",&a); 
    while(a=0.0&& n)
    { sum 【            】 ; 
    x[n]= 【             】; 
    n ; scanf("%f",&a); } 
    ave=【             】; 
    printf("Output:\n"); 
    printf("ave=%f\n",ave); 
    for( i=0;i<n;i ) 
    if (【               】)  printf("%d   ",x[i]);} 
    12.对以下说明语句的正确理解是
    int  a[10]={ 6,7,8,9,10}  ;
    A) 将5个初值依次赋给a[1]至a[5]
    B) 将5个初值依次赋给a[0]至a[4]
    C) 将5个初值依次赋给a[6]至a[10]
    D) 因为数组长度与初值的个数不相同,所以此语句不正确
    13.有如下程序 
    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];
    printf(" %d\n",s);} 
    该程序的输出结果是 
    A)18      B)19      C)20      D)21 
    14.有定义如下:
    int  i , x[3][3]={1,2,3,4,5,6,7,8,9};
    则下面语句的输出结果是
    for(i=0;i<3;i ) printf("%d",x[i][2-i]);
    A)159        B)147        C)357        D)369 
    15.阅读下列程序:
    #include<stdio.h>
    main()
    {  int i , j , row , col ,m ;
    static  int  a[3][3]={{100,200,300} ,{28,72,-30} ,
    {-850,  2, 6}};
    m=a[0][0] ;
    for (i=0 ; i<3 ; i )
    for (j=0 ; j<3 ; i )
    if (a[i][j]<m)  { m=a[i][j] ; row=i ; col=j ;}
    printf("%d ,%d ,%d\n" ,m ,row ,col) ;
    }
    上述程序的输出结果是【             】 。
    16.以下能对二维数组a进行正确初始化的语句是
    A) int  a[2][ ]={{1,0,1},{5,2,3}};
    B) int  a[ ][3]={{1,2,3},{4,5,6}};
    C) int  a[2][4]={{1,2,3},{4,5},{6}};
    D) int  a[ ][3]={{1,0,1}{},{1,1}};
    17.合法的数组定义是 
    A)int  a[]="string" ;   B)int  a[5]={0 ,1 ,2 ,3 ,4 ,5} ;
    C)char  s="string" ;    D)char  a[]={0 ,1 ,2 ,3 ,4 ,5} ;
    18.若有说明:int  a[3][4]={0};则下面正确的叙述是
    A) 只有元素a[0][0]可得到初值0
    B) 此说明语句不正确
    C) 数组a中各元素都可得到初值,但其值不一定为0
    D) 数组a中每个元素均可得到初值0 
    19.若有说明:int  a[3][4];则数组a中各元素
    A) 可在程序的运行阶段得到初值0
    B) 可在程序的编译阶段得到初值0
    C) 不能得到确定的初值
    D)可在程序的编译或运行阶段得到初值0
    20.若有以下的定义:int  t[3][2];能正确表示t数组元素地址的表达式是 
    A)&t[3][2]      B)t[3]      C)*t[1]      D)t[2] 
    21.不能把字符串:Hello!赋给数组b的语句是
    A)char b[10]={'H','e','l','l','o','!'};
    B)char b[10];b="Hello!";
    C)char b[10];strcpy(b,"Hello!");
    D)char b[10]="Hello!";
    22.以下不能对二维数组a进行正确初始化的语句是
    A) int  a[2][3]={0};
    B) int  a[ ][3]={{1,2},{0}};
    C) int  a[2][3]={{1,2},{3,4},{5,6}};
    D) int  a[ ][3]={1,2,3,4,5,6};
    23.若有定义和语句: 
    char  s[10] ;
    s="abcd" ;printf("%s\n" ,s) ; 
    则结果是(以下u代表空格)
    A)输出abcd    B)输出a    C)输出abcduuuuu    D)编译不通过 
    24.设有数组定义:char  array [ ]="China"; 则数组 array所占的空间为
    A)4个字节     B)5个字节     C)6个字节     D)7个字节
    25.下述对C语言字符数组的描述中错误的是
    A)字符数组可以存放字符串
    B)字符数组中的字符串可以整体输入、输出
    C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
    D)不可以用关系运算符对字符数组中的字符串进行比较
    26.下列描述中不正确的是 
    A)字符型数组中可以存放字符串 
    B)可以对字符型数组进行整体输入、输出 
    C)可以对整型数组进行整体输入、输出 
    D)不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
    27.请读程序片段(字符串内没有空格字符):
    printf("%d\n", strlen("ATS\N012\1\\"));
    上面程序片段的输出结果是
    A)11          B)10        C)9            D)8
    28.若有以下程序片段: 
    char str[ ]="ab\n\012\\\"" ; 
    printf("%d\n" ,strlen(str)) ; 
    上面程序片段的输出结果是 
    A)3      B)4      C)6      D)12 
    29.函数调用:strcat(strcpy(str1 ,str2) ,str3)的功能是 
    A)将串str1复制到串str2中后再连接到串str3之后 
    B)将串str1连接到串str2之后再复制到串str3之后 
    C)将串str2复制到串str1中后再将串str3连接到串str1之后 
    D)将串str2连接到串str1之后再将串str1复制到串str3中 
    30.以下函数把b串连接到a串的后面,并返回a中新字符串的长度。请填空。 
    Strcen(char a[], char b[]) 
    { int  num=0,n=0; 
    while(*(a num)!= 【             】) num ; 
    while(b[n]){*(a num)=b[n]; num ; 【             】 ;} 
    a[num]=0;
    return(num); 
    }
    31.下列程序执行后的输出结果是
    A)you&me      B)you      C)me      D)err
    #include “string.h”
    main()
    { char arr[2][4];
    strcpy(arr,"you"); strcpy(arr[1],"me");
    arr[0][3]='&';
    printf("%s \n",arr);}
    32.请选出以下语句的输出结果
    printf("%d\n" ,strlen("\t\"\065\xff\n")) ;
    A)5      B)14      C)8      D) 输出项不合法 ,无正常输出
    33.给出以下定义:
    char x[ ]="abcdefg";
    char y[ ]={'a' ,'b' ,'c' ,'d' ,'e' ,'f','g'};
    则正确的叙述为
    A)数组X和数组Y等价              
    B) 数组x和数组Y的长度(空间)相同
    C)数组X的长度(空间)大于数组Y的长度(空间)
    D)数组X的长度(空间)小于数组Y的长度(空间)
    34.下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。
    #include <stdio.h>
    #include <string.h>
    main()
    { char a[ ]="clanguage" ,t ;
    int   i ,j ,k;
    k=strlen(a);
    for(i=0 ;i<=k-2 ;i =2)
    for(j=i 2 ;j<=k ; 【           】 )
    if( 【           】 )
    { t=a[i] ;a[i]=a[j] ;a[j]=t ; }
    puts(a) ;printf("\n") ;}
    35.请选出以下程序段的输出结果
    #include<stdio.h>
    main()
    { char   sl[10] ,s2[10] ,s3[10] ,s4[10] ;
    scanf("%s%s" ,s1 ,s2) ;gets(s3) ; gets(s4) ;
    puts(s1) ; puts(s2) ; puts(s3) ; puts(s4) ;}
    输入数据如下:(此处<CR>代表回车符)
    aaaa bbbb<CR>
    cccc dddd<CR>
    A)aaaa      B)aaaa      C)aaaa      D)aaaa
    bbbb         bbbb         bbbb         bbbb
    cccc         cccc         dddd         
    cccc         dddd         dddd         cccc dddd
    36.下面程序的运行结果是
    A)12ba56      B)6521      C)6      D)62
    main()
    { char  ch[7]={"65ab21"};
    int  i ,s =0 ;
    for(i=0 ;ch[i]>='0'&&ch[i]<'9' ;i =2)
    s=10*s ch[i]-'0' ;
    printf("%d\n",s) ;}
    37.设有下列程序:
    # include <stdio.h>
    # include <string.h>
    main()
    {  int  i ;
    char  str[10] ,temp[10] ;
    gets(temp) ;
    for (i=0 ; i<4 ; i )
    {  gets(str) ;
    if (strcmp(temp ,str)< 0) strcpy(temp ,str) ;}
    printf("%s\n" ,temp) ;}
    上述程序运行后 ,如果从键盘上输入(在此<CR>代表回车符):
    C <CR>
    BASIC<CR>
    QuickC<CR>
    Ada<CR>
    Pascal<CR>
    则程序的输出结果是【                     】 。
    39.下列程序的输出结果是
    main( )
    {  char ch[2][5]={"6934,"8254"},*p[2];
    int i,j,s=0;
    for(i=0;i<2;i    )  p[i]=ch[i];
    for(i=0;i<2;i    )
    for(j=0;p[i][j]>='0'&&p[i][j]<='9';j =2)
    s=10*s p[i][j]-'0';
    printf("%d\n",s);}
    A) 6385      B) 69825      C) 63825      D) 693825
    40.以下程序统计从终端输入的字符中每个大写字母的个数。用#号作为输入结束标志 ,请填空。
    # include <stdio.h>
    # include <ctype.h>
    main( )
    {   int  num[26] ,i ; 
    char c ;
    for(i=0 ; i<26 ; i ) num[i]=0 ;
    while( 【            】 !='#') 
    if( isupper(c)) num[c-65] =1 ;
    for(i=0 ; i<26 ; i ) 
    if(num[i])
    printf("%c:%d\n" ,【       】  , num[i]) ;
    }
    41.运行下面的程序,如果从键盘上输入:
    ab <回车>
    c <回车>
    def <回车>则输出结果为
    A)a      B)a      C)ab        D)abcdef
    b         b          c
    c         c          d
    d         d
    e
    f
    #include<stdio.h>
    #define N   6
    main( )
    { char c[N];
    int i=0 ;
    for( ;i<N ;c[i]=getchar(),i )
    for( i=0;i<N;i ) putchar(c[i]);
    printf("\n");
    }
    42.以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出,请填空。
    main()
    { char  b[16]={'0','1','2','3','4','5','6','7','8',
    '9','A',  'B','C','D','E','F'};
    int   c[64] ,d ,i=0 ,base ;
    long  n ;
    printf("enter a number:\n"); scanf("%ld",&n);
    printf("enter new base:\n"); scanf("%d",&base);
    do  { c[i]=【          】 ;i  ;n=n/base ;} while(n!=0);
    printf("transmite new base:\n");
    for(--i ;i>=0 ;--i)
    { d=c[i] ;printf("%c",b【             】 ) ;}
    }
    43.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是
    A) 123,456,789           B) 1,456,789
    C) 1,23,456,789         D) 1,23,456
    main()
    { char s[100]; int c, i;
    scanf("%c",&c); 
    scanf("%d",&i);
    scanf("%s",s);
    printf("%c,%d,%s \n",c,i,s);}
    44.以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdef和abceef,则输出为-1。请填空。
    main()
    { char  str[100] ,str2[100] ,c ;
    int  i ,s ;
    printf("\n input string 1:\n") ; gest(str1) ;
    printf("\n input string 2:\n") ; gest(str2) ;
    i=0 ;
    while((strl[i]==str2[i])&&(str1[i]!=【            】))
    i  ;
    s=【              】 ;
    printf("%d\n",s) ;    }
    45.以下程序输出的结果是 
    main() 
    {  char  w[][10]={"ABCD" ,"EFGH" ,"IJKL" ,"MNOP"}  ; 
    int  k ;
    for (k=1 ;k<4 ;k  ) printf("%c\n" ,w[k][k]) ;
    }
    A)ABCD       B)ABCD     C)EFG        D)F
    FGH           EFG         JK            K
    KL            IJ          O             P
    M 
    46.下面程序的输出是
    #include  <stdio.h> 
    main()
    {  char   ss[10]="12345";
    strcat(ss,"6789");
    gets(ss);
    printf("%s\n",ss);       
    }
    输入ABC<CR>(表示回车)
    A)ABC      B)ABC9      C)123456ABC      D)ABC456789
    47. 假定int类型变量占用两个字节,其有定义:int  x[10]={0,2,4};,则数组x在内存中所占字节数是
    A) 3     B) 6        C) 10      D) 20
    48. 若有定义语句: char   s[100],d[100]; int  j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式)
    while([i]){ d[j]= 【              】;j ;}
    d[j]=0;
    49. 以下程序中,while循环的循环次数是
    main()
    { int  i=0;
    while(i<10)
    {   if(i<1)   continue;
    if(I==5)  break;
    i ;
    }
    ......
    }
    A) 1                       B) 10
    C) 6                            D) 死循环,不能确定次数
    50. 以下程序的输出结果是
    main()
    {  int  a=0,i;
    for(i=;i<5;i )
    {  switch(i)
    { case 0:
    case 3:a =2;
    case 1:
    case 2:a =3;
    default:a =5;
    }
    }
    printf("%d\n",a);
    }
    A) 41 B) 13 C) 10 D) 20
    51. 以下程序段的输出结果是
    char   s[]="\\141\141abc\t";
    printf  ("%d\n",strlen(s));
    A) 9         B) 12           C) 13         D) 14
    52. 以下程序的输出结果是
    main()
    {   char   cf[3][5]={"AAAA","BBB","CC"};
    printf("\"%s\"\n",ch[1]);
    }
    A) "AAAA"      B) "BBB"    C) "BBBCC"    D) "CC"
    53. 以下程序的输出结果是
    main()
    {  int  b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
    for(i=0;i<3;i )
    for(j=i;j<=i;j ) t=t b[i][b[j][j]];
    printf("%d\n",t);
    }
    A) 3 B) 4 C) 1 D) 9
    54. 以下程序的输出结果是【13】 。
    main()
    {  char   s[]="abcdef";
    s[3]=‘\0';
    printf("%s\n",s);
    }
    55. 以下程序中函数sort的功能是对a所指数组中的数据进行由大到小的排序
    void sort(int a[],int n)
    { int  i,j,t;
    for(i=0;i<n-1;i
    for(j=i 1,j<n;j )
    if(a[i]<a[j])  {t=a[i];a[i]=a[j];a[j]=t;}
    }
    main()
    { int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
    sort(&aa[3],5);
    for(i=o;i<10;i )  print(“%d,”,aa[i]);
    printf(“\n”);
    }
    程序运行后的输出结果是
    A)1,2,3,4,5,6,7,8,9,10     B) 10,9,8,7,6,5,4,3,2,1,
    C) 1,2,3,8,7.6.5.4.9,10         D) 1,2,10,9,8,7,6,5,4,3
    56. 有以下程序
    main()
    { char a[ ]={‘a’,‘b’,‘c’,‘d’, ‘e’, ‘f’, ‘g’,‘h’,‘\0’}; int  i,j;
    i=sizeof(a);   j=strlen(a);
    printf(“%d,%d\b”i,j);
    }
    程序运行后的输出结果是
    A)9,9  B)8,9    C)1,8     D)9,8
    57. 有以下程序
    main()
    {  int aa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};
    int i,s=0
    for(i=0;i<4;i )  s =aa[i][1];
    printf(“%d\n”,s);
    }
    程序运行后的输出结果是
    A) 11    B) 19 C) 13       D) 20
    58. 以下程序中函数f的功能是将n个字符串按由大到小的顺序进行排序。
    #include  <string.h>
    void f(char p[][10],int n)
    { char t[20];    int  i,j;
    for(i=0;i<n-1;i )
    for(j=i 1;j<n;j
    if(strcmp(p[i],p[j])<0)
    { strcpy(t,p[i]);strcpy(p[i],p[j]);strcpy(p[j],t);}
    }
    main()
    { char p[][10]={“abc”,“aabdfg”,“abbd”,“dcdbe”,“cd”};int i;
    f(p,5);  printf(“%d\n”,strlen(p[0]));
    }
    程序运行后的输出结果是
    A) 6 B) 4 C) 5 D) 3
    

    

 

相关新闻

肢体语言塑造你自己
杂谈语言(之六)——文字改革(下):一失足成千古恨的文字改革
杂谈语言(之五)——文字改革(上):半吊子的改革最糟糕!
杂谈语言(之四)——续谈广东话的口头语(2)
杂谈语言(之四)——续谈广东话的口头语(1)
杂谈语言(之三)——那些深受古汉语影响的语言(方言)
杂谈语言(之二)——语言学习的边际成本递减效应
700个MBA面试题
波兰(二)
捷克(二)

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》