1、上机报告数组答案C语言docC语言上机报告数组1、 上机内容完成实验指导书P261实验6的实验内容(1), (2), (3) ,(4)的实验内容。(先 自己编程,答案见指导书的习题解答)2、 上机作业(请先自行计算后再上机验证。)一、完成下列选择题1.以下为一维整型数组a的正确说明是a)int a(10); b)int n=10,an;不能用变量c)int n; d) #define SIZE 10;scanf(”d”,&n); int afSIZE;int an;不能用变量2.以下对二维数组a的正确说明是.a)int a3; b)float a(3,4);c)double a 114 d)f
2、loat a(3)(4);3. 以下能对一维数组a进行正确初始化的语句是 。A)inta3=0,0,0,0,0;超过数组长度 B) inta10=);应至少有一个数据C)inta = 0 ; D) int aIO=(IO*l;4.有以下程序段int k=0; while(k=l) k+; while循环执行的次数是A)无限次 while(k=l)总成立B)有语法错,不能执行C) 一次也不执行D)执行1次5.运算完下面的C语言程序段以后,a的值是 ,b的值是 ,c的值是int x=10,y=9;int a,b,c;a=(-x=y+)?-x:+y;b=x+; c=y;A、69 13 B、87 11
3、 C、88 1() D、87 106.若有说明:inta34=0测下而正确的叙述是。A)只有元素a00nT得到初值0B)此说明语句不正确C)数组a中各元素都可得到初值,但其值不一定为0D)数组a中每个元素均可得到初值07有如下程序main() int i,sum;for(i= 1 ;iv=3;sum+)sum+=i;printf(”d”,sum); 该程序的执行结果是A) 6 B)3 C)死循环,(i的值没有变) D) 08以下程序的输出结果是main() int i, a 10;for(i=9;i=0;i)ai=10-i;printf(H%d%d%d,a2,a5,a8); A) 258 B)
4、741 C) 852 第个循环 q9qo: 1 2 3 4 5 6 7 8 9 0 D) 3699、下面程序段的输出结果是。charc5=a,b,0,c,0;printf(%s,c);A)B) ab 第一个,0本字符申结束 C) ab c D) abc10设有数组定义:char str = Chinae” ;则数组str所占空间为A) 5个字节 B)6个字节 C) 7个字节Chinae+0” D) 8个字节 11、下列描述中不正确的是A) 字符型数组中可以存放字符申B) 可以对字符型数组进行整体输入、输出。利用函数puts, gets0可以对整型数组进行整体输入、输出D)不能在赋值语句中通过赋
5、值运算符/对字符型数组进行整体赋值 char *p=sina12、以下定义语句,char b= 123 ;变量b A)包含4个字符 B)包含3个字符0包含2个字符 D)包含1个字符S13、以下语句的执行结果是(以下代表空格):char s10;s=abcd; s是数组首地址,不能再赋值printfs);A)输出abed B)输出a C)输出abcdD D)编译不通过14.判断两个字符出si和s2相等,应当使用( )。A. if (si = s2) B. if (si = s2)C. if (!strcmp(sl, s2) D. if (strcmp(sl, s2) 如果两字符申相等,strcm
6、p(sl,s2)值为0,故应加上!15二维数组a有m行n列,则在ai j之前的元素个数为( )。A. j*n+i B. i*n+j C. i*n+jT D. i*n+j+l16、下面程序段的输出结果是。char a7=” abcdef” ;char b4 = ABC” ;strcpy(a, b); 执行后,数组 a 中的元素为A B C O e f printf ( c” , a5);A) B) O C) e D) f17、以下程序的输出结果是 25include stdio. httdefine N 3void main() int a, b=0;int c10 = l,2, 3, 4, 5
7、, 6, 7, 8, 9, 0;for (a=0; a 10; +a) /a 从0循环至9if(a%2)=0) 如果a是偶数,执行,成立条件为 定0,2, 4, 6, 8b+=ca; b二 c0+ c2+ c4+ c6+ c8二 1+3+5+7+9=2518、以下程序的输出结果是 include stdio. hvoid main() int n3, i, j, k二2;for (i=0; ik; i+)ni-0; /n0,nl为0for (i=0; ik; i+) /i从01 循环两次 i第一循环i=0for (j=0; j0;y)if (y%3=0) /如果y%3=0成迂,则执行 可成立的
8、值为6, 3printf (d,一y) ; /执行y=yT,再打印在屏幕上。(所以打印6T=5, 3-1=2)continue;20、下面叙述正确的是。A) 两个字符出所包含的字符个数相同时,才能比较字符出B) 字符个数多的字符申比字符个数少的字符申大C) 字符串|” STOP 与” STOP”相等D) 字符串” That小于字符串” The二、程序填空题(1)下面程序的功能是输入10个数,找出最大值和最小值所在的位置,并把 两者对调,然后输出调整后的10个数,请填空使程序完整。void main ()( int a10= 11,12,13,14,15,16,17,18,19,20;int m
9、ax,min,i=0,j=0,k ;max=min=a0;for (i=0; i10; i+)(if (aimax)(max=ai;【2】 k=i;【3】 aj=max; 将最大值赋值给最小值的元素【4】 ak=min; 将最小值赋值给最大值的元素for (i=0; i10; i+)printf(”dt”,ai);2)以下程序是将字符申b的内容连接字符数组a的内容后面,形成新字符中a, 请填空使程序完整。void main ()char a40=z/Great/,, b =Wall;int i=0, j=0 ;while (a.i != 0)i+ ; 找出数组a中字符申的结束符0位置。whil
10、e ( bj !=0,)(ai=bj;i+ ; j+ ;Mi=o ; /添加字符申的结束符oprintf (z/%sn,z, a );三、编程练习。:1.韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数, 最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1 至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵 报的数为I0o编程求韩信至少有多少兵?include stdio. hvoid main()int a;for ( a=11; ; a+)if (a%5=l & a%6=5 & a%7=4 & a%ll=10) break;print
11、f(d, a);2、10个小孩围成一圈分糖果,老师顺次分给每个人的糖块数为12, 2, 8, 22, 16, 4, 10, 6, 14, 20o然后按下列规则调整,所有小孩同时.把自己的糖果分一 半给右边的小孩,糖块数变为奇数的人,再向老师补要一块,问经过多少次调整 后,大家的糖块一样多,且每人多少块。提示:用一个包含11个变量的数组。最后一个变量a10用于改变第一个人的糖 数。include stdio. hinclude string. h void main() int aril = 12, 2, 8, 22, 16, 4, 10, 6, 14, 201围成一圈,最后一 个人的糖数=第一
12、 个人的糖数for (i=1; i10; i+) if (a0!= ai ) /如果有一个人的糖数不一样,( flag。; break; /标志flag =1,同时退出本循环else flag; /所有人的人糖数相等,标志flagjO while(flag!=O) ; /当所彳j人的人糖数相等结束大循环。printfC分糖d次后大家糖数一样多,n); 3从键盘任意输入10个不相同的整数,然后,输入要查找的数x,如果在这10 个数中找到x,则打印“Found!”;如果找不到,则打印“Not found!”。fidefine M 10include stdio. hvoid main()(int
13、aM,i,x, flag=0; /flag做为查找标识for (i=0; iM; i+)(printf( ai=: );scanf &ai);putsC请输入一个数:”)、scanf (d”, &x);for(i=0; iM; i+)if (x=ai)flag二1; /如果找到,则标识flag=lif (flag)printf(Found);elseprintf(No found);或ttdefine M 3include stdio. hvoid main()int aM, i, x;for(i=0; iM; i+)printf( ai二:”);scanf(d”, &ai) ;)puts (
14、请输入一个数:);scanf(d,&x);for (i=0; iM; i+)if(x=ai) printf(Found); break;if(i=M) printfCno Found);4编写一个程序,将字符数组s2中的全部字符拷贝到字符数组si中,不用strcpy 函数。拷贝时,0也要拷贝过去。0后面的字符不拷贝。define M 10ttdefine N 10include stdio. hvoid main()char aM, b N;int i;printf C请输入一个字符申:”);gets (a);for (i=0; (bi=ai) !=,0,; i+);printfC输入的字符申是:);puts (a);printfC新的字符串是:);puts (b);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1