第七章数组补充作业【1】在C语言中,引用数组元素时,其数组下标的数据类型允许是 C 。
A)整型常量B)整型表达式C)整型常量或整型表达式D)任何类型的表达式【2】以下对一维整型数组a的正确说明是 D 。
A)int a(10); B)int n=10,a[n];C)int n; D)#define SIZE 10scanf(“%d”,&n); int a[SIZE];int a[n];【3】若有说明:int a[10];则对a数组元素的正确引用是 D 。
A)a[10] B)a[] C)a(5) D)a[10-10]【4】以下能对一维数组a进行正确初始化的语句是 C 。
A)int a[10]=(0,0,0,0,0); B)int a[10]={};C)int a[]={0}; D)int a[10]={10*1};【5】以下对二维数组a的正确说明是 B 。
A)int a[3][]; B)double a[1][4];C)float a(3,4); D)float a(3)(4);【6】若有说明:int a[3][4];则对a数组元素的正确引用是 D 。
A)a[2][4] B)a[1,3] C)a(2)(1) D)a[1+1][0]【7】以下不能对二维数组a进行正确初始化的语句是 C 。
A) int a[2][3]={0};B) int a[][3]={{1,2},{0}};C) int a[2][3]={{1,2},{3,4},{5,6}};D) int a[][3]={1,2,3,4,5,6};【8】指出下面各说明语句中哪些是合法的:(多选)A. int abcd[0x80];B. char 9ab[10];C. char chi[-200];D. int aaa[5]={3,4,5};E. float key[]={,,1,0};F. char disk[];G. int n,floppy[n]; H. int cash[4]={1,2,3,4,5,6};答案: ADE【9】下面程序中有错误的行是 D (每行程序前面的数字表示行号)。
1 main()2 {3 float a[3]={1};4 int i;5 scanf(“%d”,&a);6 for(i=1;i<3;i++) a[0]=a[0]+a[i];7 printf(“a[0]=%d\n”,a[0]);8 }A)3 B)6 C)7 D)5【10】请回答下列问题。
(1)array是一个一维整形数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,请写出正确的说明语句。
___(2)该数组下标的取值范围是从___到___(从小到大)。
(3)如何用scanf函数输入数组的第二个元素。
___(4)如何用赋值语句把39存入第一个元素。
___(5)如何表示把第六个和第四个元素之和存入第一个元素。
___答案: int array[10] = {9,4,7,49,32,-5};0 9scanf("%d",&array[1]);array[0] = 39;array[0] = array[5] + array[3];【11】若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为 A 。
(假设a[0][0]位于数组的第一个位置上。
)A)i*m+j+1 B)j*m+i C)i*m+j-1 D)i*m+j【12】若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是 B 。
A)2 B)3 C)4 D)无确定值【13】定义如下变量和数组:int k;int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是 A 。
for(k=0;k<3;k++) printf("%d",a[k][2-k]);A)3 5 7 B)3 6 9 C)1 5 9 D)1 4 7【14】若有以下程序段:……int a[]={4,0,2,3,1}; i,j,t;for(i=1;i<5;i++){t=a[i]; j=i-1;while(j>=0&&t>a[j]){ a[j+1]=a[j]; j--; }a[j+1]=t;}……则该程序段的功能是 B 。
A)对数组a进行插入排序(升序)B)对数组a进行插入排序(降序)C)对数组a进行选择排序(升序)D)对数组a进行选择排序(降序)【题15】当运行以下程序时,从键盘输入:AhaMA Aha<CR>(<CR>表示回车),则下面程序的运行结果是 D 。
#include <>main(){char s[80],c=‘a’;int i=0;scanf(“%s”,s);while(s[i]!=‘\0’){if(s[i]==c) s[i]=s[i]-32;else if(s[i]==c-32) s[i]=s[i]+32;i++;}puts(s);}A)ahAMa B)AhAMa C)AhAMa ahA D)ahAMa ahA【题16】设数组a包括10个整型元素。
下面程序的功能是求出a中各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出。
请填空。
main(){int a[10],b[10],i;for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(【1】;i<10;i++)【2】for(i=1;i<10;i++){printf(“%3d”,b[i]);if(【3】==0) printf(“\n”);}}【1】i=1 【2】b[i]=a[i]+a[i-1] 【3】(i%3)【题17】下面程序将十进制整数转换成n进制。
请填空。
main(){int i,base,n,j,num[20];printf(“Enter data that will be converted\n”);scanf(“%d”,&n);printf(“Enter base\n”);scanf(“%d”,&base);do{i++;num[i]=n【1】base;n=n【2】base;}while(n!=0);printf(“The data %d has been converted into the %d--basedata:\n”,n,base);for(【3】)printf(“%d”,num[j]);}【1】% 【2】/ 【3】j=i; j>=1; j--【题18】下面程序的功能是将二维数组a中每个元素向右移一列,最右一列换到最左一列,移后的数组存到另一二维数组b中,并按矩阵形式输出a和b。
请填空。
例如:array a: array b:4 5 6 6 4 51 2 3 3 1 2main(){int a[2][3]={4,5,6,1,2,3},b[2][3];int i,j;printf(“array a:\n”);for(i=0;i<=1;i++){for(j=0;j<3;j++){printf(“%5d”,a[i][j]);【1】;}printf(“\n”);}for(【2】;i++) b[i][0]=a[i][2];printf(“array b:\n”);for(i=0;i<2;i++){for(j=0;j<3;j++)printf(“%5d”,b[i][j]);【3】;}}【1】b[i][j+1]=a[i][j] 【2】i=0;i<2 【3】printf(“\n”)编程答案:[1] #define M 50main(){int a[M], c[5], i, n = 0, x;printf(“Enter 0 or 1 or 2 or 3 or 4, to end with –1\n”);scanf(“%d”, &x);while (x != -1){if (x >= 0 && x <= 4){a[n] = x;n++;}scanf(“%d”, &x);}for (i=0; i<5; i++)c[i] = 0;for (i=0; i<n; i++)c[a[i]]++;printf(“The result is:\n”);for (i=0; i<=4; i++)printf(“%d:%d\n”,i c[i]);printf(“\n”);}[2] main(){int a [5][5], i, j, n = 1;for (i=0; i<5; i++)for (j=0; j<5; j++)a[i][j] = n++;printf(“The result is:\n”);for (i=0; i<5; i++){for (j=0; j<=i; j++)printf(“%4d”, a[i][j]);printf(“\n”);}}[3] #include <>#include <>main(){char a[80], b[] = “ab”, max;int i = 1, j;printf(“Input a string\n”);gets(a);puts(a);max = a[0];while (a[i] != ‘\0’){if (a[i] > max){max = a[i];j = i;}i++;}for (i=strlen(a)+2; i>j; i--)a[i] = a[i-2];a[i+1] = ‘a’;a[i+2] = ‘b’;puts(a);}第八章函数补充作【题1】以下正确的说法是 B 。
建立函数的目的之一是A)提高程序的执行效率B)提高程序的可读性C)减少程序的篇幅D)减少程序文件所占内存【题2】以下正确的说法是 B 。
A)用户若需调用标准库函数,调用前必须重新定义B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义C)系统根本不允许用户重新定义标准库函数D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调【题3】若调用一个函数,且此函数中没有return语句,则正确的说法是 D 。
该函数A)没有返回值B)返回若干个系统默认值C)能返回一个用户所希望的函数值D)返回一个不确定的值【题4】以下不正确的说法是 D 。
C语言规定A)实参可以是常量、变量或表达式B)形参可以是常量、变量或表达式C)实参可以为任意类型D)形参应与其对应的实参类型一致【题5】以下正确的说法是 C 。