C语言习题带答案_第1页
C语言习题带答案_第2页
C语言习题带答案_第3页
C语言习题带答案_第4页
C语言习题带答案_第5页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

1、练习5-1答案一、选择题1-合法的数组说明语句是(B)。A. int a=Hstringn;C. char a二”string"B int a=0J,2,345;D. char a习二0; TJ23字4字5'2.以下对一维整型数组a的说明正确的是(D)。A. inta(10);B int n=10, an; C intn;D. #define SIZE 10scanf("%d", &n); int aSIZE;int an;3. 已知:inta10;,则对a数组元素的正确引用是(D)。A aI0B a3.5C a(5)D. a10-104. 以下对

2、一维数组a进行正确初始化的语句是(C)。A int al0=(05 0, 0, 0. 0);B. int a10=;C. int a=0;D. int a2=10, 9,8;5. 对以下说明语句的正确理解是(B)。int a10=6, 7, 8, 9, 10);A. 将5个初值依次赋给al至a5B. 将5个初值依次赋给a0至a4C将5个初值依次赋给a6至a10D因为数组长度与初值的个数不相同,所以此语句不正确二、填空题6. 求所有不超过200的N值,N的平方是具有对称性质的回文数。所谓回文数就是 将一个数从左到右与从右到左读都是一样的,例如:34543和1234321都是回文数。例如:满足题意

3、要求的数有:N=l, 11*11 = 121; N=lll, lll*lll=12321o#include <stdio.h>main()int m16, n, i, t, count=0; long a, k;printf(HResult is:nH);for (n=10; n<200: n+) k=0;t=l;a=n*n;for (i=I; a!=0; i+) ;a/=10; for (; i>l; i)k+=mi-l*t;;)if ()printf(H%2d:%10d %10dnH, +count, n, n*n);)则为(mi=a%10;).为(嘗二10;)、为

4、(k=n*n)o7设数组a包括10个整型元素。下面程序的功能是求出a中各相邻两个元素的和, 并将这些和存在数组b中,按每行3个元素的形式输出。则是(i=l )、是 (bi=ai-l+ai;).是(i%3 )«main()int a10,b10, i;for (i=0; i<10; i+)scanf(”d”,&ai);for(;i<10;i+)for (i=l; ivlO; i+) printf(,%3d' bi);if ( ®=0) pnntf("n");8. 下面程序用“顺序查找法”查找数组a中是否存在某一关键字。则是(br

5、eak;). 是(i=8 )。main()int a8=25, 57, 48, 37, 12, 92, 86, 33;int i, x;scanf("%d", &x);for (i=0; iv& i+)if (x=ai) printf(HFound! The index is:%dn, i+1);;if()printf(”Can't found!”);三、读程序,写结果9. 若有以下输入(vCR>代表回车),则下面程序的运行结果是(Search Successful! The index is:5 )。52<CR>main()int

6、 a8=6, 12, 18,42,44, 52, 67, 94;int low=0, mid, high=7, found, x;found=0;scanf("%d", &x);while (low<=high)&&(found=0) mid=(low+high)/2;if (x>amid) low=mid+l;else if (x<amid) high=mid-1;else found=l; break;)if (found=l) printf(HSearch Successful! The index is:%dn* mid);

7、 else printf(MCan*t search!nK);请浏览后下载,资料供参考.期待您的好评与关注!练习52答案一、选择题1.2.34.已知:inf i, x33= 1, 2,3,4, 5, 6, 7, 8, 9;,for (i=0; i<3; i+) printf(n%d", xi2-i);A. 1 59B. 147C.以下对二维数组a的正确说明是(C)oA. int a3;已知:int a34;,A. a24已知:inta34;,A. a02*l则下面语句的输出结果是(C)。357D.369B< float a(3,4); C. 则对数组元素引用正确的是(C

8、)。B. al,3C. al + lO则对数组元素的非法引用是(D )oB. al3C. a4-20D.D.D.float a(3)(4);a(2)(l)a045.6.以下能对二维数组a进行正确赋初值的语句是(B )。A. int a2= 1,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;以下不能对二维数组a进行正确赋初值的语句是(C)oA int a23=0);B. int a3= L 2) JO);C. inta23=l,2, 3,4), 5,6; D. int a

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

10、gt;-l )o#include <stdio.h>main() int a33= 1, 3, 6, 7, 9, 11, 14, 15, 17, sum 1=0, sum2=0, i, j;for (i=0; iv3; i+)for (j=0; j<3; j+)if (i=j) suml=suml+aij;for (i=0; iv3; i+) for(;;j-)if (i+j=2) sum2=sum2+aij;printf(,suml=%d5sum2=%dn, suml, sum2);)11. 从键盘上输入若干(不超过1000个)学生的成绩,计算岀平均成绩,并输岀低于 平均分

11、的学生的成绩,用输入负数结束输入。则是(a )、是(a )、是(suni/n )、 是(xi<ave )。#include <stdio.h>main() float x1000, sum=0, ave, a;int n=0, i;printf(nEnter mark: ”); scanf(H%f', &a);while (a>0&&n< 1000)sum+二;xn=®;n+;scanf("%f", &a);ave=(3);printf(MOutput:nH);printf(nave=%fnH,

12、 ave);for (i=0; i<n; i+)if()printf(”xi);)12下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空, 是(jv=2 或 jv3)、是(b|ji二aij;)、是(i<=2 或 i<3 )。main() int a23=l,2,3,4, 5,6;int b2,i,j;printf(Harray a:nn);for (i=0; <i<=l; i+) for (j=0; (D;j+) printf("%5d aij);;) printf("n");printf(narray b:nH);

13、for (i=0;i+)for (j=O;jv=l;j+) printf(”5d”, bij);printf(HnH);113下面程序的功能是检查二维数组是否对称(即:对所有i和j都有aiUJ=aUi)o 请填空,是(i=j+l注i值赋为0.J+1皆可,赋为j+1效率最高)、是(found=l )main() int a44=( 1, 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 ( ® i<4; i+)if(aji!=aiU);break;)if (f

14、ound) printf("No");else printf("Yes");)练习53答案一、选择题1-为了判断两个字符串si和s2是否相等,应当使用(D)。B. if(sl=s2)A. if(sl=s2)if (strcmpy(sl, s2)=0)C. if (strcpy(sl, s2)D.2调用 strlen(HabcdOefOgH)的返回值是(A)。A. 4B. 5C. 8D. 93已知:char strl10, str210=MbooksH;,则在程序中能够将字符串“books”赋给数 组strl的正确语句是(B)。D strcpy(str2,

15、 strl );D. abDA. strl=HbooksH); B strcpy(strl, str2); C strl=str2;4. 下面程序段的运行结果是(B)。(注:代表空格) chare习b,、0'printf("%s, c);A. 'a”b'B. abC. abDc5. 下面程序段的运行结果是(D)。(注:代表空格) char a7=HabcdefH;char b4="ABC"strcpy(a, b);printf(H%c a5);A口B0Ce二、填空题6. 以下程序是对键盘输入的两个字符串进行比较,然后输出两个字符串中第一个不

16、 同字符的ASCII码之差。例如:输入的两个字符串分别为”abedefg”和“abceef", 则第一个不同字符为d和输出为.请填空,是(协)、>(strli-str2i)o #include <stdio.h>main()char strl100, str2100, c;int i, s;printf(HEnter string l:n);gets(strl);printf(HEnter string 2:n);gets(str2);i=0;while (strli=str2i&&strli!=')i+;s=;printf(n%dnM, s

17、);7. 下面程序的功能是在三个字符串中找出最小的。请填空,是(strcmp(strOL strl)<O?strO:strl)、是(s )。或是(strO)、是(strcmp(s, strl)<O?s:strl)。#include <stdio.h>#include <string.h>main()char s20, str320;int i;for (i=0; i<3; i+) gets(stri);strcpy(s,);if (strcmp(str2, s)<0) strcpy(s5 str2);printf(”sn”,);8. 下面程序的功

18、能是在任意的字符串a中将与字符C相等的所有元素的下标值分别 存放在整型数组b中,请填空,是(ai=C)、是(k+)°#include <stdio.h>main()char a80;int i, b80, k=0;gets(a);for (i=0; ai!=A0' i+)if() bk二i;for (i=0; i<k; i+) piimf(”3cr, bi);三、读程序,写结果9当运行以下程序时,从键盘输入:AhaMAQAha<CR>(代表空格,vCR>代表回 车),则下面程序的运行结果是(ahAMa )#include <stdio.h>main()char s80, c='a,;int i=0;scanf("%s", s);while (si!='0,)if(si=c) si=si-32;else if (si=c-32) si=si+32;i+;Iputs(s);)10. 下面程序的运行结果是(SW*)o#include <stdio

温馨提示

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

评论

0/150

提交评论