练习题6及参考答案.docx

上传人:b****4 文档编号:4910079 上传时间:2022-12-11 格式:DOCX 页数:20 大小:20KB
下载 相关 举报
练习题6及参考答案.docx_第1页
第1页 / 共20页
练习题6及参考答案.docx_第2页
第2页 / 共20页
练习题6及参考答案.docx_第3页
第3页 / 共20页
练习题6及参考答案.docx_第4页
第4页 / 共20页
练习题6及参考答案.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

练习题6及参考答案.docx

《练习题6及参考答案.docx》由会员分享,可在线阅读,更多相关《练习题6及参考答案.docx(20页珍藏版)》请在冰豆网上搜索。

练习题6及参考答案.docx

练习题6及参考答案

窗体顶部

练习题6及参考答案

1.单项选择题

(1)以下关于数组的描述正确的是       。

A.数组的大小是固定的,但可以有不同类型的数组元素

B.数组的大小是可变的,但所有数组元素的类型必须相同

C.数组的大小是固定的,所有数组元素的类型必须相同

D.数组的大小是可变的,可以有不同类型的数组元素

【答】C

(2)下述关于字符数组的描述中错误的是       。

A.字符数组可以存放字符串

B.字符数组中的字符串可以整体输入和输出

C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值

D.不可以用关系运算符对字符数组中的字符串进行比较

【答】B

(3)不能把字符串"Hello!

"赋给数组b的语句是       。

A.charb[10]={'H','e','l','l','o','!

'};                     B.charb[10];b="Hello!

";

C.charb[10];strcpy(b,"Hello!

");                       D.charb[10]="Hello!

";

【答】B

(4)若有以下定义:

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};

charc='a',d,g;

则数值为4的表达式是       。

A.a[g-c]                    B.a[4]                       C.a['d'-'c']                 D.a['d'-c]

【答】D

(5)以下合法的数组定义是       。

A.inta[]="string";                                       B.inta[5]={0,1,2,3,4,5};

C.chara="string";                                        D.chara[]={0,1,2,3,4,5};

【答】D

(6)以下错误的字符串赋值或赋初值方式是       。

A.char*str;str="string";

B.charstr[7]={'s','t','r','i','n','g'};

C.charstr[10];str="string";

D.charstr1[]="string",str2[]="12345678";stcpy(str2,strl);

【答】C

(7)若有以下定义和语句,则输出结果是       。

char*sp="\"D:

\\ANI.WSP\"";

printf("%s",sp);

A.字符串中有非法字符,输出值不定            B.\"D:

\\ANI.WSP\"

C."D:

\ANI.WSP"                                            D."D:

\\ANI.WSP"

【答】C

(8)若有以下定义和语句,则输出结果是       。

chars[12]="abook!

";

printf("%d",strlen(s));

A.12                        B.8                          C.7                          D.6

【答】C

(9)以下一维数组a的正确定义是       。

A.inta(10);                                              B.intn=10,a[n];

C.intn;                                                    D.#defineSIZE10

  scanf("%d",&n);                     inta[SIZE];

  inta[n];

【答】D

(10)以下正确的定义语句是       。

A.intA['a'];                                         B.intA[3,4];

C.intA[][3];                                          D.intA[10];

【答】D

(11)以下对一维数组a进行正确初始化的是       。

A.inta[10]=(0,0,0,0);                             B.inta[10]={};

C.inta[]={0};                                              D.inta[10]={10*2};

【答】C

(12)以下对二维数组a进行正确初始化的是       。

A.inta[2][3]={{1,2},{3,4},{5,6}};           B.inta[][3]={1,2,3,4,5,6};

C.inta[2][]={1,2,3,4,5,6};                       D.inta[2][]={{1,2},{3,4}};

【答】B

(13)以下给字符数组a定义和赋值正确的是       。

A.charstr[10];str={"China"};

B.charstr[]={"China"};

C.charstr[10];strcpy(str,"abcdefghijklmn");

D.charstr[10]={"abcdefghijklmn"};

【答】B

(14)在执行staticinta[][3]={{1,2},{3,4}};语句后,a[1][3]的值是       。

A.3                          B.4                          C.0                          D.2

【答】C

(15)在定义inta[3][6];后,第10个元素是       。

A.a[2][4]                          B.a[1][3]                         C.a[3][1]                          D.a[4][2]

【答】B

(16)在定义inta[3][4][2];后,第10个元素是       。

A.a[2][1][2]               B.a[1][0][1]              C.a[2][0][1]              D.a[2][2][1]

【答】B

(17)以下程序的运行结果是       。

#include

#include

main()

{

   chara[80]="AB",b[80]="LMNP";

   inti=0;

   strcat(a,b);

   while(a[i++]!

='\0')b[i]=a[i];

   puts(b);

}

A.LB                        B.ABLMNP                      C.AB                   D.LBLMNP

【答】D

(18)以下程序的运行结果是       。

#include

main()

{

   charstr[]="SSSWLIA",c;

   intk;

   for(k=2;(c=str[k])!

='\0';k++)

   {

       switch(c)

       {

           case'I':

++k;break;

           case'L':

continue;

           default:

putchar(c);continue;

       }

       putchar('*');

   }

}

A.SSW*                   B.SW*                      C.SW*A                    D.SW

【答】B

(19)以下程序的运行结果是       。

#include

main()

{

   chara[]="morning",t;

   inti,j=0;

   for(i=1;i<7;i++)

       if(a[j]

   t=a[j];

   a[j]=a[7];

   a[7]=a[j];

   puts(a);

}

A.mogninr               B.mo                       C.morning                 D.mornin

【答】B

2.填空题

(1)以下程序运行时输入LanguageProgramming↙,其结果是       。

#include

main()

{

   charstr[30];

   scanf("%s",str);

   printf("str=%s\n",str);

}

【答】Language

(2)以下程序的运行结果是       。

#include

main()

{

   charstr[]={"1a2b3c"};

   inti;

   for(i=0;str[i]!

='\0';i++)

       if(str[i]>='0'&&str[i]<='9')

           printf("%c",str[i]);

   printf("\n");

}

【答】123

(3)以下程序的运行结果是       。

#include

main()

{

   inta[3][3]={1,2,3,4,5,6,7,8,9},i,s=0;

   for(i=0;i<=2;i++)

       s=s+a[i][i];

   printf("s=%d\n",s);

}

【答】s=15

(4)以下程序的运行结果是       。

#include

main()

{

   inta[3][3]={1,2,3,4,5,6,7,8,9},i,s=1;

   for(i=0;i<=2;i++)

       s=s*a[i][i];

   printf("s=%d\n",s);

}

【答】s=45

(5)以下程序的运行结果是       。

#include

main()

{

   inta[]={0,2,5,8,12,15,23,35,60,65};

   intx=15,i,n=10,m;

   i=n/2+1;m=n/2;

   while(m!

=0)

   {

       if(x

       {

           i=i-m/2-1;

           m=m/2;

       }

       elseif(x>a[i])

       {

           i=i+m/2+1;

           m=m/2;

       }

       elsebreak;

   }

  printf("place=%d",i+1);

}

【答】place=6

(6)以下程序的运行结果是       。

#include

main()

{

   inti,j,row=0,col=0,m;

   staticinta[3][3]={1,-2,0,4,-5,6,2,4};

   m=a[0][0];

   for(i=0;i<3;i++)

       for(j=0;j<3;j++)

          if(a[i][j]

           {

               m=a[i][j];

              row=i;

              col=j;

           }

   printf("a(%d,%d)=%d\n",row,col,m);

}

【答】a(1,1)=-5

(7)以下程序的运行结果是       。

#include

main()

{

   inta[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};

   inti,j,n;

   n=9;i=n/5;j=n-i*5-1;

   printf("第%d个元素(%d,%d)值是%d\n",n,i,j,a[i][j]);

}

【答】第9个元素(1,3)值是-3

(8)以下程序的运行结果是       。

#include

main()

{

   inta[4][5]={1,2,4,-4,5,-9,3};

   intb=0,i,j,i1,j1,n=-9;

   for(i=0;i<4;i++)

   {

       for(j=0;j<5;j++)

           if(a[i][j]==n)

           {

              i1=i;j1=j;b=1;

              break;

           }

       if(b)

           break;

  }

  printf("%d是第%d个元素\n",n,i1*5+j1+1);

}

【答】-9是第6个元素

(9)以下程序的运行结果是____。

#include

main()

{

   intarr[10],i,k=0;

   for(i=0;i<10;i++)

       arr[i]=i;

   for(i=0;i<4;i++)

       k+=arr[i]+i;

   printf("%d\n",k);

}

【答】12

(10)以下程序的功能是将字符串s中所有的空格字符删除。

请填空。

#include

main()

{

   char*s="ourteacherteachsClanguage";

   inti,j;

   for(i=j=0;s[i]!

='\0';i++)

      if(s[i]!

='')  ① ;

     ② ;

   printf("%s\n",s);

}

【答】①s[j++]=s[i]②s[j]='\0'

3.编程题

(1)编写一个程序,将两个字符串合并成一个字符串。

【解】程序如下:

/*文件名:

exci6_1.cpp*/

VC++6.0

#include

main()

{

   chars1[20],s2[20],s3[40];

   inti,j;

   printf("字符串1:

");

   gets(s1);

   printf("字符串2:

");

   gets(s2);

   for(i=0;s1[i]!

='\0';i++)

       s3[i]=s1[i];

   for(j=0;s2[j]!

='\0';j++)

       s3[i+j]=s2[j];

   s3[i+j]='\0';

   printf("合并字符串:

%s\n",s3);

}

(2)编写一个程序,将一个子字符串插入到主字符串中指定位置。

【解】程序如下:

/*文件名:

exci6_2.cpp*/

VC++6.0

#include

main()

{

   intn,i,j,k;

   chars1[20],s2[20],s3[40];

   printf("主字符串:

");

   gets(s1);

   printf("子字符串:

");

   gets(s2);

   printf("起始位置:

");

   scanf("%d",&n);

   for(i=0;i

      s3[i]=s1[i];

   for(j=0;s2[j]!

='\0';j++)

      s3[i+j]=s2[j];

   printf("i=%d,j=%d\n",i,j);

   for(k=n;s1[k]!

='\0';k++)

      s3[j+k]=s1[k];

   s3[j+k]='\0';

   printf("结果字符串:

%s\n",s3);

}

(3)编写一个程序,输出一个字符串的逆转串。

【解】程序如下:

/*文件名:

exci6_3.cpp*/

VC++6.0

#include

main()

{

   chars1[20],s2[20];

   inti,j;

   printf("字符串:

");

   scanf("%s",s1);

   for(i=0;s1[i]!

='\0';i++);     /*求出字符串s1的长度i*/

   for(j=0;s1[j]!

='\0';j++)

      s2[i-j-1]=s1[j];

   s2[i]='\0';

   printf("逆转串:

%s\n",s2);

}

(4)编写一个程序,判定一个字符串是否是另一个字符串的子串。

【解】程序如下:

/*文件名:

exci6_4.cpp*/

VC++6.0

#include

main()

{

   inti,j,k,index;

   chars1[20],s2[20];

   printf("主字符串:

");

   gets(s1);

   printf("子字符串:

");

   gets(s2);

   index=0;

   for(i=0;s1[i];i++)

   {

      for(j=i,k=0;s1[j]==s2[k];j++,k++)

          if(!

s2[k+1])

          {

             index=i;

              break;

          }

      if(index!

=0)

          break;

   }

   printf("位置=%d\n",index);

}

(5)编写一个程序,计算一个字符串中子串出现的次数。

【解】程序如下:

/*文件名:

exci6_5.cpp*/

VC++6.0

#include

main()

{

   inti,j,k,count=0;

   chars1[20],s2[20];

   printf("主字符串:

");

   gets(s1);

   printf("子字符串:

");

   gets(s2);

   for(i=0;s1[i];i++)

      for(j=i,k=0;s1[j]==s2[k];j++,k++)

          if(!

s2[k+1])

              count++;

   printf("出现次数=%d\n",count);

}

(6)编写一个程序,将用户输入的正十进制数转换成某一进制base(base≤16)的数输出。

【解】采用辗转相除法进行进制之间的相互转换,将结果存储在一维数组num中,最后显示该数组即为所得。

程序如下:

/*文件名:

exci6_6.cpp*/

VC++6.0

#include

main()

{

   inti=0,base,n,j,num[20];

   printf("输入正十进制整数:

");

   scanf("%d",&n);

   printf("输入要转换的进制:

");

   scanf("%d",&base);

   do

   {

      i++;

      num[i]=n%base;

      n=n/base;

   }while(n!

=0);

   printf("转换的结果:

");

   for(j=i;j>=1;j--)

       if(num[j]<10)

           printf("%d",num[j]);

       else

           printf("%c",'A'+num[j]-10);

   printf("\n");

}

(7)编写一个程序,计算两个3×4阶矩阵相加,并打印出结果。

【解】使用两个二维数组a和b存储两个3×4阶矩阵的元素值,然后用两重for循环进行相加求值产生二维数组c,最后输出c的各元素值。

程序如下:

/*文件名:

exci6_7.cpp*/

VC++6.0

#include

main()

{

   inta[3][4]={{3,-2,1,2},{0,1,3,-2},{3,1,0,4}};

   intb[3][4]={{-2,3,0,-1},{1,0,-2,3},{-2,0,1,-3}};

   inti,j,c[3][4];

   for(i=0;i<3;i++)

      for(j=0;j<4;j++)

          c[i][j]=a[i][j]+b[i][j];

   for(i=0;i<3;i++)        /*输出结果*/

   {

      for(j=0;j<4;j++)

          printf("%d",c[i][j]);

      printf("\n");

   }

}

(8)编写一

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1