D、将5个初值依次赋给a[1]至a[5]
15.以下对一维整型数组a的正确说明是(D)。 A、int a(10);
B、int n; scanf(\C、int n=10,a[n];
D、#define SIZE 10 (换行) int a[SIZE];
16.以下定义语句中,错误的是(A)。 A、int n=5,a[n]; B、int a[]={1,2}; C、char s[10]=\D、char *a[3];
17.下面叙述中不正确的是(C).
A、可以对字符型数组进行整体输入和输出. B、不可以对浮点型数组进行整体输入和输出. C、可以对整型数组进行整体输入和输出. D、字符型数组可以存放字符串.
18.下面各语句中,能正确进行赋字符串操作的语句是(B). A、char s1[5][ ]={\
B、char s2[6]={'A','B','C','D','E'}; C、char st[ ][ ]={\
D、char s[5]={'A','B','C','D','E'};
19.若有说明: int a[3][4]={0};则下面正确的叙述是(A)。 A、数组a中每个元素均可得到初值0 B、只有元素a[0][0]可得到初值0
C、数组a中各元素都可得到初值,但其值不一定为0 D、此说明语句不正确
20.若有说明 int a[3][4];则a数组元素的非法引用是(B)。 A、a[1][3] B、a[0][4] C、a[0][2*1] D、a[4-2][0]
二、判断题
1. C语言中引用数组元素的方括号可以用花括号代替.F 2. 数组的首地址一定是第一个数组元素的地址.T
3. 数组整体不参加数据处理(即不参加各种运算),参加数据处理的只能是数组的元素.T 4. 定义 int x[5],n;则x=x+n;或x++;都是正确的.F
5. 定义一维数组的形式为:类型说明 数组名[表达式],其中表达式必须是整型常量. F
6. 引用数组元素时,下标可以是整型表达式或整型常量.T 7. 引用数组元素时,数组元素下标必须是整型常量.F 8.下列程序段是否正确: F int a[10]; .... a++;
9. 若有定义 int a[10];则 for (i=0;i<=10;i++) a[i]=i;编译时无语法错误.T 10.二维数组在内存中存贮时,是按列的顺序连续存贮各元素的值.F 11.二维数组在内存中存贮时,是按行的顺序进行存储的。T 12.若有定义和语句:
int a[3][3]={{3,5},{8,9},{12,35}},i,sum=0; for(i=0;i<3;i++) sum+=a[i][2-i];则sum=21.T 13.int a[3][4]={{1},{5},{9}}; 它的作用是将数组各行第一列的元素赋初值,其余元素值为0。T
14.对于字符数为n个的字符串,其占用的内存为n+1个字节空间.T
15.如果有一个字符串,其中第十个字符为'\\n',则此字符串的有效字符为9个。F 16.设有数组定义:char array[]=\则数组 array所占的内存空间为5字节.F 17.字符串\在内存中的存储长度是7. F
18.语句 char ch[12]={\与语句 char ch[ ]=\具有不同的赋初值功能.T
19.puts 函数用来输出一个字符.F
20.gets 函数是用来输入一个字符的函数.F 21、定义char s[9];gets(s);若输入的字符串是Turbo c↙(↙代表按回车键操作) 则输入给数组s中的字符个数是7.T
22.字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.F 23.两个字符串中的字符个数相同时才能进行字符串大小的比较.F
三、填空题
1. C语言中,数组元素的下标下限为_____. 0
2. C语言中,数组名是一个不可变的_____常量,不能对它进行加减和赋值运算. 地址 3、按内存排列顺序, 数组char a[2]中的所有元素是a[0]和_____. a[1]
4. 若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 该数组的元素中,数值最小的元素的下标值是_____. 8
5. C语言中,二维数组在内存中的存放方式为按_____优先存放.行
6. static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};其中a[1][2]的值为_____. 6 7. 字符串的结束标志是_____. '\\0' 0
8. 连接字符串的函数是_____,只写函数名即可.strcat 9. 字符串比较的库函数是_____,只写函数名即可. Strcmp
10.字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.F
第8章 函数
一、单选题
1. 以下函数的类型是(C)。 fff(float x) {
return 5; }
A、void 类型
B、与参数x的类型相同 C、int类型 D、无法确定
2. 设有如下函数 fac(int x) {
float y=1.0; return(x*y); }
则函数的类型为(A). A、int型 B、float型 C、无法确定 D、void型
3. 设有宏定义#define PI 3.14 和#define S(r) PI*r*r,则S(2)的值为(B). A、6.28 B、12.56 C、3.14 D、9.42
4. 以下正确的函数定义是(C).
A、double fun(int x, int y) { z=x+y; return z;} B、fun(x, y) { int x, y; double z; z=x/y; return z;} C、float f(int x, int y) {float z; z=x/y; return z;} D、fun(int x, y) { int z; return z; }
5. 已知有宏定义#define SQR(a) 2*a*a,则SQR(3+4)的值为(A). A、22 B、32 C、98 D、18
6. 以下正确的说法是(A).
A、函数的类型决定返回值的类型
B、定义函数时,形参的类型说明可以放在函数体内 C、return后面不能为表达式
D、如果形参与实参的类型不一致,以实参类型为准
7. C语言规定,函数返回值的类型是由(A)。 A、在定义该函数时所指定的函数类型所决定 B、return语句中的表达式类型所决定 C、调用该函数时系统临时决定
D、调用该函数时的主调函数类型所决定
8. 若调用一个函数,且此函数中没有return语句,则正确的说法是: 该函数(B)。 A、没有返回值
B、返回一个不确定的值 C、返回若干个系统默认值 D、能返回一个用户所希望的值
9.设函数的调用形式如下: f((x1, x2),(y1,y2,y3)),则函数有 (A)个形参. A、2 B、4 C、3 D、5
10.在\文件包含\的预处理中,被包含的文件应是(A). A、源文件 B、可执行文件 C、目标文件 D、批处理文件
11.以下程序的输出结果为(C)。 main()
{int a=1,b=2,c=3,d=4,e=5;
printf(\ }
int func(int x,int y) { return(x+y); } A、9 B、15 C、13
D、函数调用出错
12.以下正确的说法是(D)。
A、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
B、用户若需调用标准库函数,调用前必须重新定义 C、系统根本不允许用户重新定义标准库函数
D、用户可以重新定义标准库函数,若如此,该函数将失去原有含义
13.在#include命令中,文件名可用双引号或尖括号括起来,对于二者的下列说法中正确的是(A).
A、用尖括号时,直接按系统标准方式检索文件目录. B、用双引号时,直接按系统标准方式检索文件目录.
C、用双括号和尖括号时,都不检查源文件所在的文件目录. D、以上说法都不对.
14. C语言程序中必须有的函数是(B)。 A、#include \B、main C、printf D、scanf
15. 程序运行结束后,屏幕上输出值为( B). static int x=10; main( ) { int x=3; f( ); x- -;
printf(\ } f( ) { x++; } A、10 B、2 C、11 D、3
16. file1.c中有命令,#include
B、a在file1.c中有效,不必用extern说明. C、a在file1.c中不生效
D、a在file1.c和file2.c中均不生效.
17.以下叙述中正确的是(C)。
A、可以在一个函数中定义另一个函数