第四章测试
1.要求下面的程序运行后,显示如下结果:2 10 4 61 5 2 32 4 7 85 1 3 2则程序中的划线处应填入#include <stdio.h>void main( ){ int a[4][4]={ ________ }; int i,j; for(i=0;i<4;i++) {for(j=0;j<4;j++) printf("%4d",a[i][j]); printf("\n"); } } ( )
A:{2,1,2,5},{10,5,4,1},{4,2,7,3},{6,3,8,2} B:{5,1,3,2},{2,4,7,8},{1,5,2,3} C:{1,5,2,3},{2,4,7,8},{5,1,3,2} D:{2,10,4,6},{1,5,2,3},{2,4,7,8},{5,1,3,2}
答案:D
2.给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为 ( )
A:数组x的长度小于数组y的长度 B:数组x的长度大于数组y的长度 C:数组x和数组y等价 D:数组x和数组y的长度相同 3.定义如下变量和数组:int i;int x[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};则下面语句的输出结果是for(i=0;i<4;i++) printf("%3d",x[i][3-i]);( )
A:4 8 12 16 B:4 7 10 13 C:1 5 9 13 D:1 6 11 16 4.下面程序输出的结果是#include <stdio.h>void main( ){ int i,j,x=0; static int a[6]={1,2,3,4,5,6}; for(i=0,j=1;i<5;++i,j++) x+=a[i]*a[j]; printf("%d\n",x); }( )
A:数组a中相邻各元素的乘积之和 B:数组a中首尾的对应元素的乘积之和 C:数组a中首尾的对应元素的乘积 D:数组a中相邻各元素的乘积 5.若希望下面的程序运行后输出45,程序空白处的正确选择是#include <stdio.h>void main( ){ int i,j=10,a[ ]={1,3,5,7,9,11,13,15}; for( ____________ ) j+=a[i]; printf("%d\n",j); } ( )
A:i=2;i<6;++i B:i=5;i>1;i-- C:i=5;i>=1;--i D:i=0;i<7;++i 6.若有以下说明:char s1[ ]={"tree"},s2[]={"flower"}; ,则以下对数组元素或数组的输出语句中,正确的是( )
A:puts(s1,s2); B:puts(s1);puts(s2); C:printf("%s%s",s1[5],s2[7]); D:printf("%c%c",s1,s2); 7.下列程序的输出结果是#include <stdio.h>void main(){char b[]="ABCDEFG"; char p=0; while(p<7) putchar(b[p++]); putchar('\n'); } ( )
A:GFEDCB B:ABCDEFG C:BCDEFG D:GFEDCBA 8.下述对C语言字符数组的描述中错误的是( )
A:不可以用关系运算符对字符数组中的字符串进行比较 B:字符数组可以存放字符串 C:字符数组中的字符串可以整体输入、输出 D:可以在赋值语句中通过赋值运算符"="对字符数组整体赋值 9.以下程序的输出结果是#include<stdio.h>void main(){ int i,x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d,",x[i][i]); printf("\n"); }( )
A:3,5,7, B:1,4,7, C:1,5,9, D:3,6,9, 10.如有定义语句int a[]={1,8,2,8,3,8,4,8,5,8}; ,则数组a的大小是( )
A:11 B:不定 C:10 D:8 11.设有如下定义:char aa[2][20]={ "abcd", "ABCD"};则以下说法中错误的是( )
A:aa[0][0]可以看作是一维数组名 B:aa[0]可以看作是一维数组名 C:aa是个二维数组,每行中分别存放了字符串"abcd"和"ABCD" D:aa是个二维数组,可以存放2个19个字符以下的字符串 12.以下对C语言函数的有关描述中,正确的是( )
A:C程序中有调用关系的所有函数必须放在同一个源程序文件中 B:函数必须有返回值,否则不能使用函数 C:在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 D:C函数既可以嵌套定义又可以递归调用 13.有如下说明: int a[10]={0,1,2,3,4,5,6,7,8,9};则数值不为9的表达式是( )
A:a[10-1] B:a[9]-a[0] C:a[9]-0 D:a[8] 14.设有数组定义:char array[]="China";则数组array所占的存储空间为( )
A:6个字节 B:7个字节 C:4个字节 D:5个字节 15.下面程序的输出是#include <stdio.h>int m=13;int fun2(int x, int y){ int m=3; return(x*y-m); }void main(){ int a=7, b=5; printf("%d\n",fun2(a,b)/m);}( )
A:2 B:7 C:10 D:1 16.请读程序:#include <stdio.h>f(int b[ ], int n){ int i, r=0; for(i=0; i<=n; i++) r=r+b[i];return r; }void main(){ int x, a[]={ 2,3,4,5,6,7,8,9}; x=f(a, 3); printf("%d\n",x); }上面程序的输出结果是( )
A:5 B:9 C:20 D:14 17.若函数调用时用数组名作为函数参数,以下叙述中,不正确的是( )
A:在调用函数中必须说明数组的大小,但在被调函数中可以使用不定尺寸数组 B:实参将其地址传递给形参,结果等同于实现了参数之间的双向值传递 C:实参与其对应的形参分别占用不同的存储空间 D:实参与其对应的形参共占用同一段存储空间 18.以下叙述中,不正确的是( )
A:使用float b定义的外部变量存放在内存中的动态存储区 B:使用float d定义的内部变量存放在内存中的动态存储区 C:使用static float a定义的外部变量存放在内存中的静态存储区 D:使用static float c定义的内部变量存放在内存中的静态存储区 19.如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量( )
A:为局部变量,只在该复合语句中有效 B:为局部变量,只在该函数内有效 C:定义无效,为非法变量 D:为全局变量,在本程序文件范围内有效 20.调用函数时,当实参和形参都是简单变量时,它们之间数据传递的过程是( )
A:实参将其地址传递给形参,并释放原先占用的存储单元 B:实参将其值传递给形参,调用结束时形参并不将其值回传给实参 C:实参将其值传递给形参,调用结束时形参再将其值回传给实参 D:实参将其地址传递给形参,调用结束时形参再将其地址回传给实参 21.以下叙述中,不正确的是( )
A:在main函数体内定义的变量是全局变量 B:形参是局部变量,函数调用完成即失去意义 C:若同一文件中全局变量和局部变量同名,则全局变量在局部变量作用范围内不起作用 D:在同一C程序文件中,不同函数中可以使用同名变量 22.若函数调用时参数为基本数据类型的变量(俗称简单变量),以下叙述正确的是( )
A:实参与其对应的形参分别占用不同的存储单元 B:实参与其对应的形参共占存储单元 C:实参将数据传递给形参后,立即释放原先占用的存储单元 D:只有当实参与对应的形参同名时才共占存储单元 23.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( )
A:传递方式由用户指定 B:由实参传给形参,再由形参传回实参 C:地址传递 D:单向值传递 24.以下函数fun形参的类型是 fun( float x) { float y; y=3*x-4; return y; }( )
A:不确定 B:int C:float D:void 25.C语言中规定函数的返回值的类型是由( )
A:调用该函数时的主调用函数类型所决定 B:调用该函数时系统临时决定 C:在定义该函数时所指定的类型所决定 D:return语句中的表达式类型所决定

温馨提示支付 ¥3.00 元后可查看付费内容,请先翻页预览!
点赞(8) dxwkbang
返回
顶部