C语言知识学习第七,八章补充作业任务-答案解析_第1页
C语言知识学习第七,八章补充作业任务-答案解析_第2页
C语言知识学习第七,八章补充作业任务-答案解析_第3页
C语言知识学习第七,八章补充作业任务-答案解析_第4页
C语言知识学习第七,八章补充作业任务-答案解析_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、【1】【2】【3】【4】【5】第七章数组补充作业在C语言中,引用数组元素时,其数组下标的数据类型允许是A )整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式以下对一维整型数组 a的正确说明是若有说明:int a(10);int n;scanf( “ %d ”,&n);int an;B) int n=10,an;D) #define SIZE 10int aSIZE;int a10;则对a数组元素的正确引用是a10 B) a3.5C) a(5)以下能对一维数组 a进行正确初始化的语句是A) int a10=(0,0,0,0,0);C) int a=0;以下对二维数组 a

2、的正确说明是A) int a3;C) float a(3,4);D) a10-10B) int a10=;D) int a10=10*1;B) double a14;D) float a(3)(4);【6】若有说明:int a34;则对a数组元素的正确引用是2 A)a24B)a1,3C)a(2)(1)D) a1+10【7】以下不能对二维数组a进行正确初始化的语句是int a23=0;int a3=1,2,0;int a23=1,2,3,4,5,6;int a3=1,2,3,4,5,6;【8】指出下面各说明语句中哪些是合法的:(多选)A. i nt abcd0x80;B. char 9ab10;

3、C. char chi-200;D. i nt aaa5=3,4,5;E. float key=3.0,4.0,1,0;F. char disk;G. int n,floppyn;H. i nt cash4=1,2,3,4,5,6;答案:ADE【9】下面程序中有错误的行是(每行程序前面的数字表示行号)。1 mai n()float a3=1;int i;scanf( “%d ”,&a);for(i=1;i<3;i+) a0=a0+ai;printf( “a0=%dn ” ,a0);A) 3B) 6C) 7D) 510】请回答下列问题。(1)array 是一个一维整形数组,有10个

4、元素 ,前 6 个元素的初值是 9,4,7,49,32,-5, 请写出正确的说明语句。(2)该数组下标的取值范围是从(从小到大 )。(3) 如何用 scanf 函数输入数组的第二个元素。(4) 如何用赋值语句把 39 存入第一个元素。(5) 如何表示把第六个和第四个元素之和存入第一个元素。答案: int array10 = 9,4,7,49,32,-5;scanf("%d",&array1);array0 = 39;array0 = array5 + array3;【11】若二维数组a有m列,则计算任元素aij在数组中位置的公式为A。(假设a00位于数组的第一个位置

5、上。)i*m+j+1B) j*m+iC) i*m+j-1D) i*m+j【12】若有说明:int a3=1,2,3,4,5,6,7;则a数组第一维的大小是C)D )无确定值【13】定义如下变量和数组:int k;int a33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是Afor(k=0;k<3;k+) prin tf("%d",ak2-k);A ) 3 5 7 B) 3 6 9 C) 1 5 9【14】若有以下程序段:int a=4,0,2,3,1; i,j,t;for(i=1;i<5;i+)t=ai; j=i-1;while( j>=0&

6、amp;&t>aj) a j+1=aj; j-; aj+1=t;则该程序段的功能是对数组a进行插入排序(升序)对数组a进行插入排序(降序)对数组a进行选择排序(升序)对数组a进行选择排序(降序)【题15】当运行以下程序时,从键盘输入:AhaMA Aha<CR>(<CR>表示回车),则下面程序的运行结果是#in elude <stdio.h>mai n()char s80,c='a'i+;int i=0;scanf( “ %s ”,s);while(si!=0 ')if(si=c) si=si-32;else if(si=

7、c-32) si=si+32;puts(s);A)ahAMaB)AhAMaC)AhAMa ahAD )ahAMa ahA题 16 】设数组a 包括 10 个整型元素。下面程序的功能是求出 a 中各相邻两个元素的和,并将这些和存在数组 b 中,按每行 3 个元素的形式输出。请填空。main()int a10,b10,i;for(i=0;i<10;i+)scanf( “%d ” ,&ai);for( 【1 】;i<10;i+)for(i=1;i<10;i+)printf( “%3d ” ,bi);1】i=1if( 【3】=0) printf( “n ”);2】bi=ai+

8、ai-1【3 】(i%3)题 17 】下面程序将十进制整数转换成 n 进制。请填空。main()int i,base,n,j,num20;printf(Enter data that will be convertedn”);scanf(%d ”,&n);printf(Enter basen ” );scanf(%d”,&base);doi+;numi=n1】 base;n=n 【2 】base;while(n!=0);printf( “ The data %d has been converted into the %d-basedata:n ”,n,base);for( 【

9、3 】)1】printf( “%d ”,numj);2】/3】 j=i; j>=1; j-题 18 】下面程序的功能是将二维数组a 中每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一二维数组 b 中,并按矩阵形式输出 a 和 b 。请填空。array a:array b:4 5 66 4 51 2 33 1 2例如:main()int a23=4,5,6,1,2,3,b23;int i,j;printf( “array a:n ” );for(i=0;i<=1;i+)for(j=0;j<3;j+)printf( “%5d ” ,aij);1】;printf( “

10、n ”);for(2 】 ;i+) bi0=ai2;printf( “array b:n ” );for(i=0;i<2;i+)for( j=0;j<3;j+)printf( “%5d ” ,bij);3】;3】 printf( “ n ” )1 】bi j+1=ai j【2】i=0;i<2编程答案:1#define M 50main()Tn ”);int aM, c5, i, n = 0, x;printf( “Enter 0 or 1 or 2 or 3 or 4, to end with scanf( “%d”, &x);while (x != -1)if (x

11、 >= 0 && x <= 4)an = x;n+;scanf( “%d ” , &x);for (i=0; i<5; i+)ci = 0;for (i=0; i<n; i+)cai+;”);printf( “ The result is:nfor (i=0; i<=4; i+)printf( “ %d:%dn,i ci);2printf( “n ”);main()int a 55, i, j, n = 1;for (i=0; i<5; i+)for (j=0; j<5; j+)aij = n+;printf( “ The re

12、sult is:n”);for (i=0; i<5; i+)for (j=0; j<=i; j+)printf( “ %4d, ai j);i+;3printf( “ n ”);#include <stdio.h>#include <string.h>main()char a80, b =a I ”ab ” , max;int i = 1, j;printf( “ Input a stringn ” );gets(a);puts(a);max = a0;while (ai != 0 ')if (ai > max)max = ai;j = i;f

13、or (i=strle n( a)+2; i>j; i-)ai = ai-2;ai+1= ai+2=puts(a);第八章【题1】以下正确的说法是建立函数的目的之一是A)提高程序的执行效率提咼程序的可读性 减少程序的篇幅 减少程序文件所占内存【题2】以下正确的说法是B 。A)用户若需调用标准库函数,调用前必须重新定义用户可以重新定义标准库函数,若如此,该函数将失去原有含义 系统根本不允许用户重新定义标准库函数用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调【题若调用一个函数,且此函数中没有return语句,则正确的说法是该函数没有返回值返回

14、若干个系统默认值 能返回一个用户所希望的函数值返回一个不确定的值【题以下不正确的说法是C语言规定实参可以是常量、变量或表达式形参可以是常量、变量或表达式 实参可以为任意类型形参应与其对应的实参类型一致【题以下正确的说法是定义函数时,形参的类型说明可以放在函数体内return后边的值不能为表达式如果函数值的类型与返回值类型不一致,以函数值类型为准如果形参与实参的类型不一致,以实参类型为准题 6 】以下程序是选出能被 3 整除且至少有一位是 5 的两位数,打印出所有这样的数及其个数。请选择填空。sub(int k,int n)int a1,a2;main()a2= 【1 】;a1=k- 【 2】;

15、为: C)为: A )if(k%3=0&&a2=5)|(k%3=0&&a1=5)printf( “%d ”,k);n+;return n;else return -1;int n=0,k,m;for(k=10;k<=99;k+)m=sub(k,n);1】if(m!=-1) n=m;2】printf( “nn=%dA) k*10A) a2*10B)”,n);B)k%10C)k/10D )k*10%10a2C)a2/10D )a2%10题 7 】折半查找法的思路是:先确定待查元素的范围,将其分成两半,然后测试位于中间点元素的值。如果该待查元素的值大于中间点元素

16、,就缩小待查范围,只测试中点之后的元素;反之,测试中点之前的元素,测试方法同前。函数binary 的作用是应用折半查找法从存有 10 个整数的a 数组中对关键字 m 进行查找,若找到,返回其下标值;返回 -1 。请选择填空。binary(int a10,int m)int low=0,high=9,mid;while(low<=high)mid=(low+high)/2;if(m<amid)【 1】;为: A )为: B)else if(m>amid) else return(mid);return(-1);【1】A) high=mid-1)low=mid+1C) high=

17、mid+1 D)low=mid-1【2】A ) high=mid-1)low=mid+1C ) high=mid+1 D)low=mid-1【题8】以下程序的正确运行结果是#defi ne MAX 10 int aMAX,i;mai n()printf(“n ”); sub1(); sub3(a); sub2(); sub3(a);sub2()int aMAX,i,max;max=5;for(i=0;i<max;i+) ai=i;sub1()for(i=0;i<MAX;i+) ai=i+i;sub3(int a)%d ”,ai);int i;for(i=0;i<MAX;i+)

18、 printf(printf( “n ”);A)0 2 4 6 8 10 12 14 16 1810B)0 2 4 6 8 10 12 14 16 18C)D)0 2 4 6 8 10 12 14 16 180 2 4 6 8 10 12 14 16 18题 9 】以下程序的功能是用递归方法计算五位学生的年龄,请填空。递归公式如下:(n 1)age(n)age(n 1) 2 (n 1)#include <stdio.h> age(int n)int c;if(n=1) c=10;else c= 【1 】;return(c);main()int n=5;printf( “age:%d

19、n ”,【 2】);2】 age(5)1】age(n-1)+2题 10 】以下 search 函数的功能是利用顺序查找法从数组 a 的 10 个元素中对关键字 m 进行查找。 顺序查找法的思路是: 从第一个元素开始, 从前向后依次与关键字比较, 直到找到此元素或查找到数组尾部时结束。若找到,返回此元素的下标;若仍未 找到,则返回值 -1 。请填空。#include <stdio.h>int search(int a10,int m)int i;for(i=0;i<=9;i+) if(【1 】)return(i);int i=4;return(-1);mai n()” ,no+

20、1););【1 】ai=m【2】a,m【3】no>=0int a10,m,i, no;no=search(【2】);if(【3 】)printf( “ nOK FOUND!%delse printf("n Sorry Not Found! ”【题11】以下程序的运行结果是#in clude <stdio.h> int k=1;mai n()fun (i);printf(“ (1) %d,%dn,i,k);fun (i nt m)m+=k; k+=m;char k= B'printf( “ %dn,k- A');printf(“ (3) %d,%dn,m,k);(2)1(3)5,6(1)4,6【题12】以下程序的运行结果是int n=1;mai n()static int x=5; int y;y=n;printf( “ MAIN:x=%2d y=%2d n=%2dn,x,y, n);func()func();printf( “ MAIN:x=%2d y=%2d n=%2dn,x,y, n);func();static int x=4; int y=10;x=x+2;n=n+10;y=y+n;,x,y, n);printf( “ FUNC:x=%2d y=%2d n=%2dnMAIN:x=5 y=1 n=1FANC:x=6 y=21 n

温馨提示

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

评论

0/150

提交评论