( 3) 若有定义:int a[10],则对数组a元素的正确引用是 。
A)a[10] B)a[3.5] C)a(5) D)a[10-10]
(4) 以下能对一维数组a进行正确初始化的语句是 。
A)int a[10]={0,0,0,0,0}; B)int a[10]={} ; C)int a[ ] = {0} ; D)int a[10]={10*1} ;
(5) 若有定义:int a[3][4],则对数组a元素的正确引用是 。
A)a[2][4] B)a[1,3] C)a(5) D)a[10-10]
(6) 以下能对二维数组a进行正确初始化的语句是 。
A)int a[2][]={{1,0,1},{5,2,3}} ; B)int a[][3]={{1,2,3},{4,5,6}} ; C)int a[2][4]={{1,2,3},{4,5},{6}} ; D)int a[][3]={{1,0,1},{},{1,1}} ;
(7) 若有说明:int a[3][4]={0};则下面正确的叙述是 。
A)只有元素a[0][0]可得到初值0 B)此说明语句不正确
C)数组a中各元素都可得到初值,但其值不一定为0 D)数组a中每个元素均可得到初值0
(8) 若有说明:int a[][4]={0,0};则下面不正确的叙述是 。
A)数组a的每个元素都可得到初值0 B)二维数组a的第一维大小为1
C)因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1 D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
(9) 若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为。 (设a[0][0]位于数组的第一个位置上)
A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+1
(10) 若有说明:int a[][3]={1,2,3,4,5,6,7};则数组a第一维大小是 。
A)2 B)3 C)4 D)无确定值
(11) 下面程序段的输出结果是 。
int k,a[3][3]={1,2,3,4,5,6,7,8,9}; 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
(12)下面是对s的初始化,其中不正确的是 。
A)char s[5]={“abc”}; B)char s[5]={‘a’,’b’,’c’}; C)char s[5]=” ”; D)char s[5]=”abcdef”;
(13)下面程序段的输出结果是 。
char c[5]={‘a’,’b’,’\\0’,’c’,’\\0’} printf(“%s”,c);
A)’a’’b’ B)ab C)ab c D)abc
(14)判断字符串a和b是否相等,应当使用 。
A)if (a==b) B)if (a=b) C)if (strcpy(a,b)) D) if (strcmp(a,b))
(15)下列四种数组定义中,合法的数组定义是( )。
A) char a[ ]=“hello” ; B) int a[4]={4,3,2,1,0}; C) char a=“hello” ; D) char a[5]= “hello” ; (16)已知数组float a[4][3];该数组行下标的范围是( )。
A) 0—3 B) 1—3 C) 0—2 D) 1—2 二、写出运行结果。 1.#include
int i,t,a[5]={5,4,3,2,1}; for(i=0;i<2;i++) { t=a[i]; a[i]=a[4-i]; a[4-i]=t; }
for(i=0;i<5;i++) printf(\printf(\}
结果:______________。 2. #include
int i,j,row,col,min;
int a[3][4]={{1,2,3,4},{9,8,7,6},{ 1, 2,0,5}}; min=a[0][0]; row=0; col=0; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j] min=a[i][j]; row=i; col=j; } printf(\} 三、编程题。 1. 用数组求Fibonacci数列前20个数,Fibonacci数列指的是这样一个数列: 1,1,2,3,5,8,13,21……这个数列从第三项开始,每一项都等于前两项之和。 2. 将输入数组a[n]中的n个元素,再输入另一个数x,查看a中是否有值为x的元素, 若有,则输出其下标,若没有,则输出-1。 3. 求数组int a[n]中奇数的个数和平均值,以及偶数个数和平均值。 函数 一、选择题 (1)C 语言规定:源程序中main函数的位置( )。 A.必须在最开始 B.必须在系统调用的库函数的后面 C.必须在后面 D.可以任意 (2)以下正确的说法是( ) 。 A.实参和与其对应的形参各占用独立的存储单元 B.实参和与其对应的形参共占用一个存储单元 C.只有当实参和与其对应的形参同名时才共占用相同的存储单元 D.形参时虚拟的,不占用存储单元 (3)对于C程序的函数,下列叙述中正确的是( )。 A.函数的定义不能嵌套,但函数调用可以嵌套 B.函数的定义可以嵌套,但函数调用不能嵌套 C.函数的定义和调用均可以嵌套 D.函数的定义和调用均不能嵌套 (4)下列宏定义语句中,不正确的是( )。 A.#define Y 1 B.#include “math.h” C.#include (5)若调用一个函数,且此函数中没有return语句,则正确的说法是( ) 。 A.该函数没有返回值 B.该函数返回若干个系统默认值 C.能返回一个用户所希望的函数值 D.返回一个不确定的值 (6)若用数组名作为函数调用的实参,传递给形参的是。 A.数组的首地址 B.数组中第一个元素的值 C.数组中的全部元素的值 D.数组元素的个数 (7)关于函数声明,以下不正确的说法是。 A.如果函数定义出现在函数调用之前,可以不必加函数原型声明 B.如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数原型声明 C.函数再调用之前,一定要声明函数原型,保证编译系统进行全面的调用检查 D.标准库不需要函数原型声明 (8)函数定义时,形参是整型变量,则函数调用时,实参不可以是 ( )。 A.整型常量 B.字符型常量 C.数组名 D.整型表达式 二.填空 (1)C语言函数返回类型的默认定义类型是 。 (2)函数的实参传递到形参有两种方式: 和 。 (3)在一个函数内部调用另一个函数的调用方式称为 。在一个函数内部直接或间接调用该函数成为函数 的调用方式。 (4)从变量的作用域来分,变量可以分为 和 。 (5)若函数定义为 int data( ) { float x=3.7; return(x); } 则函数返回的值是______________。 三、编程题 1. 请编写程序,运用函数调用的方法计算分段函数y的值。要求数据的输入和输出在主函数中完成,而计算分段函数的值在子函数中完成。 2.编写一个判断一个数是否是素数的函数,若是返回1,否则返回0。 3.编写一个函数,计算下面算式前100项之和,并将计算结果返回到主调函数。1+1/3+1/5+1/7+...... 4.编写一个函数,计算n的阶乘,并将计算结果返回到主调函数输出。
相关推荐: