最新C语言第五章习题带答案_第1页
最新C语言第五章习题带答案_第2页
最新C语言第五章习题带答案_第3页
最新C语言第五章习题带答案_第4页
最新C语言第五章习题带答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言第五章习题带答案如有侵权请联系网站删除,仅供学习交选 练习5-1答案 一、选择题1 .合法的数组说明语句是(B )。A . int a="string"B . inta=0,l,2,3,4,5);C . char a="string"D . char a5='0', '12, 3,4, 5;2 .以下对一维整型数组a的说明正确的是(D )。A . int a(10);B . int n=10, an; C . int n;D . #define SIZE 10scanf("%d", &n); in

2、t aSIZEJ;int an;3 .已知:int a10;,则对a数组元素的正确引用是(D )。A . a10B . a3.5C . a(5)D . a10-104 .以下对一维数组a进行正确初始化的语句是(C)。A . int a10=(0, 0, 0, 0, 0);B . int a10=);C . int a=0;D . int a2=10, 9, 8;5 .对以下说明语句的正确理解是(B )oint a10=6, 7, 8, 9, 10);A .将5个初值依次赋给al至a5B .将5个初值依次赋给a至a4C .将5个初值依次赋给a6至a10仅供学习交流如有侵权请联系网站删除,仅供学习

3、交流D.因为数组长度与初值的个数不相同,所以此语句不正确二、填空题6 .求所有不超过200的N值,N的平方是具有对称性质的回文数。所谓回文数就 是将一个数从左到右与从右到左读都是一样的,例如:34543和1234321都是回 文数。例如:满足题意要求的数有:N=l, 11*11=121 ; N=lll, 111*111=12321。#include <stdio.h>main()int m16, n, i, t, count=0;long a, k;printf(nResult is:nH);for (n=10; n<200; n+)k=0;t=l;a=n*n;for (i=

4、l; a!=0; i+)( ;a/=10;)for (; i>l; i-)k+=mi-l*t;;)if ( 3 ) printf("%2d:% 1 Od %10dn", +count, n, n*n);)则为(mi=a%10;)、为(t*=10;)、为(k=n*n)。7 .设数组a包括10个整型元素。下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。则是(i=l)、是(bi=ai-l+ai;)、是(i%3)°仅供学习交流如有侵权请联系网站删除,仅供学习交流main()int a10,b10,i;for (i=0;

5、i<10; i+)scanf("d”, &ai);for (;i<10; i+)for (i=l; i<10; i+) printf("%3d' bi);if (=0) printf("n");)8 .下面程序用“顺序查找法”查找数组a中是否存在某一关键字。则是(break:)、是(i=8 )。main()int a8=25, 57, 48, 37, 12, 92, 86, 33(;int i, x;scanf("%d", &x);for (i=0; i<8; i+)if (x=ai)

6、printf(HFound! The index is:%dnM, i+1);;)if ()printf("Can't found!”);三、读程序,写结果9 .若有以下输入(<CR>代表回车),则下面程序的运行结果是(Search Successful!The index is:5 )o52<CR>main()int a8=6, 12, 18, 42, 44, 52, 67, 94;int low=0, mid, high=7, found, x;found=0;scanf(H%d' &x);while (low<=high)&

7、amp;&(found=0) mid=(low+high)/2;if (x>amid) low=mid+1;else if (x<amid) high=mid-1;else found=l; break;)if (found=I) printf(MSearch Successful! The index is:%dn mid);else printf(HCan*t search!nH);仅供学习交流如有侵权请联系网站删除,仅供学习交选 练习52答案 一、选择题1 .已知:int i, x33=l,2, 3, 4, 5, 6,7, 8, 9);,则下面语句的输出结果是(C )

8、o for (i=0; i<3; i+) printf("%d", xi2-i);A. 159B . 147C . 357D . 3692 .以下对二维数组a的正确说明是(C)。A . int a3;B . float a(3,4);C . double al4;D . float a(3)(4);3 .已知:inta34;,则对数组元素引用正确的是(C )。A . a4B . al,3C . al+l0D . a(2)(l)4 .已知:inta34;,则对数组元素的非法引用是(D )。A . a02*lB . al3C . a4-20D . a045 .以下能对二维

9、数组a进行正确赋初值的语句是(B)。A . int a2=l,0, 1,5, 2,3;B . int a3= 1, 2, 3, 4, 5,6);C . inta24=l,2,3,4,5,6;D . int a3= 1, 0, 1,),1, 1);6 .以下不能对二维数组a进行正确赋初值的语句是(C)。A . int a23=0;B . int a3= 1, 2,0;C . int a23=l,2,3,4,5,6); D . int a3=l, 2, 3, 4, 5, 6);7 .已知:int a34=0;,则下面正确的叙述是(D )0仅供学习交流如有侵权请联系网站删除,仅供学习交流A .只有元

10、素a00可得到初值。B.此说明语句是错误的C .数组a中每个元素都可得到初值,但其值不一定为0D.数组a中每个元素均可得到初值08 .若有说明:int a3= 1,2, 3, 4, 5, 6, 7;,则a数组第一维的大小是(B )。A . 2B . 3C . 4D.无确定值9 .若二维数组a有m列,则在前的元素个数为(B )。A . j*m+iB . i*m+jC . i*m+j-lD . i*m+j+l二、填空题10 .下面的程序是求出数组a矩阵的两条对角线上的元素之和,则是(j=2)、是(j>=0 或 j>-l )。#inckide <stdio.h> main()

11、 int a33= 1, 3, 6, 7, 9, 11, 14, 15, 17, sum 1=0, sum2=0, i, j;for (i=0; i<3; i+)for (j=0; j<3; j+)if (i=j) suml=suml+aij;for (i=0; i<3; i+)for(;j-)if (i+j=2) sum2=sum2+aij;printf(Hsuml=%d,sum2=%dii, sum 1, sum2);)11 .从键盘上输入若干(不超过1000个)学生的成绩,计算出平均成绩,并输出低于平均分的学生的成绩,用输入负数结束输入。则是(a)、是(a)、是(sum

12、/n )x 是(xivave )。#inckide <stdio.h>main() float x1000, sum=0, ave, a;int n=0, i;printf(nEnter mark: ");scanf("%f, &a);while (a>0&&n<1000) sum+=Q);xnn;n+;scanf("%f, &a);)ave=;printf(nOutput:nH);printf(nave=%fnH, ave);for (i=0; i<n; i+)if(®)printf(&qu

13、ot;%faiM,xi);12 .下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空,是(j<=2 或 jv3)、是(bji=aij;)、是(i<=2 或 i<3)。main() int a23=l,2,3, 4, 5,6);int b32,i,j;printf(Harray a:nn);for (i=0; <i<=l; i+) for(j=0; 1);j+) printf("%5d", ai皿);) printf(HnH);)printf(Harray b:nH);for (i=0;i+) for (j=0; j<=l

14、; j+) printf("%5d", bij); printf(HnH);)13 .下面程序的功能是检查二维数组是否对称(即:对所有i和j都有请填空,是(i=j+l注i值赋为0j+1皆可,赋为j+1效率最高)、是(found=l )omain() int a44=l, 2, 3,4, 2, 2, 5, 6, 3, 5, 3,7, 4, 6, 7,4);int i, j, found=0;for (j=0; j<4; j+)for ( 1 ; i<4; i+)if(aji!=aiU);break; if (found) printf("No"

15、);else printf("Yes");仅供学习交流如有侵权请联系网站删除,仅供学习交流 练习53答案 一、选择题1 .为了判断两个字符串si和s2是否相等,应当使用(D)。A . if (sl=s2)B . if (sl=s2)C . if (strcpy(sl, s2)D . if (strcmpy(s 1,s2)=0)2 .调用 strlen("abcdOefOg")的返回值是(A )oA . 4B . 5C . 8D . 93 .已知:char strl 10, str210="books",则在程序中能够将字符串“book

16、s”赋给 数组strl的正确语句是(B)°A . str 1="books";B . strcpy(strl, str2); C . strl=str2; D . strcpy(str2,strl);4 .下面程序段的运行结果是(B )。(注:口代表空格) charc5='a; 'b', '0; 'c', AO'); printf("%s", c);A . 'a”b'B . abC . abDcD . abD5 .下面程序段的运行结果是(D)° (注:口代表空格)

17、 char a7="abcdef"char b4=HABC"strcpy(a, b); printf("%c' a5);A . B . 0C . eD . f二、填空题仅供学习交流如有侵权请联系网站删除,仅供学习交流6 .以下程序是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不同字符的ASCII码之差。例如:输入的两个字符串分别为“abcdefg”和"abceef",则第一个不同字符为d和6 输出为-L请填空,是(州)、是(strli-str2i )o#include <stdio.h>main()c

18、har strl100, str2100, c;int i, s;printf(HEnter string l:u);gets(strl);printf(nEnter string 2:");gets(str2);i=0;while (strli=str2i&&strli!=®) i+;s=(2);printf("%dn", s);7 .下面程序的功能是在三个字符串中找出最小的。请填空,是(strcmp(strO,strl)<O?strO:strl )x 是(s )o 或 1 是(strO)、是(strcmp(s,strl)<

19、O?s:strl )o o#include <stdio.h>#include <string.h>main()char s20, str320;int i;for (i=0; i<3; i+) gets(stri);strcpy(s, 1 );if (strcmp(str2, s)<0) strcpy(s, str2);printf("%sn",);)8 .下面程序的功能是在任意的字符串a中将与字符3相等的所有元素的下标值分别存放在整型数组b中,请填空,是(ai=e)、是(k+)。#inckide <stdio.h>niain()char a8O;int i, b8O, k=O;gets(a);for (i=0; ai!=0,;i+)if ()bk=i;for (i=0; i<k; i+) printf("%3d", bi);)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论