出自:国家开放大学C语言程序设计

当处理特定问题时的循环次数已知时,通常采用的语句是( )。
单选题 (2 分) 2分
A.
for

B.
while

C.
do-while

D.
switch
在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成的语句是( )。
单选题 (2 分) 2分
A.
for

B.
if

C.
do

D.
while
for语句能够被改写成的语句是( )。
单选题 (2 分) 2分
A.
复合

B.
if

C.
switch

D.
while
下面循环语句执行结束后输出的i值为( )。


for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;}
单选题 (2 分) 2分
A.
n/2

B.
n/2+1

C.
n/2-1

D.
n-1
在下面循环语句中,内层循环体S语句的执行总次数为( )。


for(int i=0; i<n; i++)


for(int j=i; j<n; j++) S;
单选题 (2 分) 2分
A.
n2

B.
(n+1)/2

C.
n(n-1)/2

D.
n(n+1)/2
在下面的do循环语句中,其循环体被执行的次数为( )。


int i=0; do i++; while(i*i<10);
单选题 (2 分) 2分
A.
4

B.
3

C.
5

D.
2
在下面的一维数组定义中,有语法错误的选项是( )。
单选题 (2 分) 2分
A.
int a[]={1,2,3};

B.
int a[10]={0};

C.
int a[];

D.
int a[5];
在下面的二维数组定义中,语法正确的选项是( )。
单选题 (2 分) 2分
A.
int a[5][];

B.
int a[][5];

C.
int a[][3]={{1,3,5},{2}};

D.
int a[](10);
假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][1]的值为( )。
单选题 (2 分) 2分
A.
2

B.
4

C.
6

D.
8
假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( )。
单选题 (2 分) 2分
A.
0

B.
4

C.
8

D.
6
在执行“typedef int DataType;”语句后,标识符DataType与保留字int具有完全相同的含义和作用。
判断题 (1 分) 1分
A.对
B.错
在switch语句中,每个case和冒号之间的表达式只能是常量。
判断题 (1 分) 1分
A.对
B.错
为了结束本层循环类语句或switch语句的执行过程,在语句体中需要使用break语句。
判断题 (1 分) 1分
A.对
B.错
在程序中执行到break语句时,将结束所在函数的执行过程,返回到调用该函数的位置。
判断题 (1 分) 1分
A.对
B.错
在程序执行完成任一个函数调用后,将结束整个程序的执行过程,返回到操作系统或C语言集成开发环境界面窗口。
判断题 (1 分) 1分
A.对
B.错
假定一维数组的定义为“char* a[8];”,则该数组所含元素的个数大于8。
判断题 (1 分) 1分
A.对
B.错
假定二维数组的定义为“int a[3][5];”,则该数组所占存储空间的字节数为60。
判断题 (1 分) 1分
A.对
B.错
假定二维数组的定义为“char a[M][N];”,则该数组所含元素的个数为M+N。
判断题 (1 分) 1分
A.对
B.错
假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在0~M-1之间。
判断题 (1 分) 1分
A.对
B.错
假定二维数组的定义为“double a[M][N];”,则每个数组元素的列下标取值范围在0~N之间。
判断题 (1 分) 1分
A.对
B.错
存储一个空字符串需要占用0个字节的存储空间。
判断题 (1 分) 1分
A.对
B.错
使用“typedef char BB[10][50];”语句定义标识符BB为含有10行50列的二维字符数组类型。
判断题 (1 分) 1分
A.对
B.错
存储字符.a.需要占用1个字节的存储空间。
判断题 (1 分) 1分
A.对
B.错
空字符串的长度为1。
判断题 (1 分) 1分
A.对
B.错
字符串"a:\\xxk\\数据"的长度为13。
判断题 (1 分) 1分
A.对
B.错
为了存储一个长度为n的字符串,所使用的字符数组的长度至少为n+1。
判断题 (1 分) 1分
A.对
B.错
strcmp函数用于进行两个字符串之间的比较。
判断题 (1 分) 1分
A.对
B.错
strcpy函数用于把一个字符串拷贝到另一个字符数组空间中。
判断题 (1 分) 1分
A.对
B.错
一个二维字符数组a[10][20]能够最多存储9个字符串。
判断题 (1 分) 1分
A.对
B.错
一个二维字符数组a[10][20]能够存储的每个字符串的长度不超过20。
判断题 (1 分) 1分
A.对
B.错
#include<stdio.h>


void main()


{


int x=5;


switch(2*x-3) {


case 4: printf("%d ",x);


case 7: printf("%d ",2*x+1);


case 10: printf("%d ",3*x-1); break;


default: printf("%s","default\n");


}


}
#include<stdio.h>


______ void main() {


______ ______int i,s=0;


______ ______for(i=1;i<=5;i++) s+=i*i;


______ ______printf("s=%d\n",s);


______ }
答案: 1
填空题 (4 分) 4 分 (请按题目中的空缺顺序依次填写答案)
#include<stdio.h>


______ void main() {


______ ______int n=6,y=1;


______ while(n) y*=n--;


______ printf("y=%d\n",y);


______ }
答案: 1
填空题 (4 分) 4 分 (请按题目中的空缺顺序依次填写答案)
0
______ void main()


______ {

#include<stdio.h>


______ void main()


______ {


______ int i,s;


______ for(i=1,s=0;i<10;i++) {


______ if(i%3==0) continue;


______ s+=i;


______ }


______ printf("%d\n",s);


______ }
答案: 1
填空题 (4 分) 4 分 (请按题目中的空缺顺序依次填写答案)
#include<stdio.h>


______ void main() {


______ char a[]="abcdbfbgacd";


______ int i1=0, i2=0, i=0;


______ while(a[i]) {


______ if(a[i]==.a.) i1++;


______ if(a[i]==.b.) i2++;


______ ______i++;


______ }


______ printf("%d %d %d\n",i1,i2,i);


______ }
答案: 1
填空题 (4 分) 4 分 (请按题目中的空缺顺序依次填写答案)
#include<stdio.h>


______ void main() {


______ int a[3][4]={{1,2,7,8},{5,6,10,6},{9,12,3,4}};


______ int m=a[0][0];


______ int i,j;


______ for(i=0; i<3; i++)


______ for(j=0; j<4; j++)


______ if(a[i][j]>m) m=a[i][j];


______ printf("%d\n",m);


______ }
答案: 1
填空题 (4 分) 4 分 (请按题目中的空缺顺序依次填写答案)
编写一个函数,函数头格式为“double Mean(double a[M][N],int m,int n)”,要求返回二维数组a[m][n]中所有元素的平均值,假定在计算过程中采用变量v存放平均值。
在下面的函数声明语句中,存在着语法错误的是( )。
单选题 (2 分) 2分
A.
AA(int a, int b)

B.
AA(int, int)

C.
AA(int a; int b)

D.
AA(int a, int)

2.
在下面的保留字中,不能作为函数的返回值类型的是( )。
单选题 (2 分) 2分
A.
void

B.
int

C.
enum

D.
long
假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址增加的字节数为( )。
单选题 (2 分) 2分
A.
1

B.
2

C.
4

D.
8
假定a为一个数组名,在下面的表达式中,存在语法错误的是( )。
单选题 (2 分) 2分
A.
a[i]

B.
*a++

C.
*a

D.
*(a+1)
用calloc函数创建具有10个整型元素的一维数组的正确语句是( )。
单选题 (2 分) 2分
A.
int *p=calloc(10,2);

B.
int *p=calloc(10);

C.
int *p=calloc(10,4);

D.
int *p=malloc(10)
假定变量m定义为“int m=7;”,则下面正确的语句为( )。
单选题 (2 分) 2分
A.
int p=&m;

B.
int *p=&m;

C.
int &p=*m;

D.
int *p=m;
假定k是一个double类型的变量,则定义变量p的正确语句为( )。
单选题 (2 分) 2分
A.
double p=&k;

B.
int *p=&k;

C.
double &p=*k;

D.
char *p="Thank you!";
若有语句为“int a[10], x, *pa=a;”,要把数组a中下标为3的元素值赋给x,则不正确的语句为( )。
单选题 (2 分) 2分
A.
x=pa[3];

B.
x=*(a+3);

C.
x=a[3];

D.
x=*pa+3;
假定有语句为“int b[10]; int *pb;”,则下面不正确的赋值语句为( )。
单选题 (2 分) 2分
A.
pb=b;

B.
pb=&b[0];

C.
pb=b+2;

D.
pb=b[5];
已知“int *p=malloc(100);”,要释放p所指向的动态内存,正确的语句为( )。
单选题 (2 分) 2分
A.
free(p);

B.
free p;

C.
free(*p);

D.
free[p];
在程序的一个文件中定义的函数,若要在另一个文件中调用,则必须在这另一个文件中给出该函数的( )。
单选题 (2 分) 2分
A.
原型语句

B.
参数表

C.
函数名

D.
返回类型
假定一个函数定义为“static int f1(int x,int y){return x+y;}”,该函数名称为( )。
单选题 (2 分) 2分
A.
static

B.
int

C.
f1

D.
return
假定一个函数的原型语句为“int ff(int* x);”,一个整型数组为a[10],则下面函数调用表达式不正确的是( )。
单选题 (2 分) 2分
A.
ff(a)

B.
ff(a[0])

C.
ff(a+3)

D.
ff(&a[0])