(1) 下面叙述正确的是(D )。
A) main( )函数必须位于源程序文件的开头
B) 程序中必需含有自定义函数
C) 每行最多只能写两条语句
D) 所有语句都必须以分号“;”结束
(2) 下面叙述错误的是(D )。
A) C语言规定可逐个引用数组元素但不能一次引用整个数组
B) C语言数组名称是数组在内存中的首地址
C) 数组中每一个元素都属于同一个数据类型
D) C语言数组长度在定义数组时刻不作确定
(3) 以下程序段的运行结果是(C )。
int t[ ][3]={1,2,3,4,5,6,7,8,9,10,11,12};
printf(“%d\n”,t[1][1]);
A) 4
B) 3
C) 5
D) 1
(4) 以下程序段的运行结果是(C )。
char str[3][2]={‘a','b','c','\0','e','f'};
printf(“%s”,str[0]);
A) abc\0ef
B) abcef
C) abc
D) a
(5) 以下程序段的运行结果是(C )。
int f(int c)
{ c+=2;
return c;
}
main( )
{ int a=2,c=5;
a=f(a);
printf(“%d %d \n”,a,c);
}
A) 2 4
C) 4 5
D) 2 5
(6) 下面叙述错误的是(D )。
PRICE
等价的符号常量30”命令的作用是定义一个与#define PRICE 30“A)
B) C源程序中加入一些预处理命令是为了改进程序设计环境,提高编程效率
C) “#include
D) 宏定义也是C语句,必须在行末加分号
(7) 若有定义:int a=2,*p=&a;,则以下(A )均表示地址。
A) &a,p
B) a,p
C) a,*p
D) &a,*p
(8) 以下程序段运行后x的值为(C )。
int a[ ]={1,2,3,4,5,6,7,8};
int i,x,*p;
x=1;
p=&a[1];
for (i=0;i<3;i++)
x*=*(p+i);
A) 1
B) 120
C) 24
D) 6
(9) 下列(C )对结构类型变量定义是错误的。
A) struct teacher
{ int num;
int age;
};
struct teacher teach1;
B) struct
{ int num;
int age;
} teach1, teach2;
C) struct
int age;
} teacher;
struct teacher teach1;
D) struct teacher
{ int num;
int age;
} teach1;
(10) 以下程序段运行后,(D )对数组a元素的引用是错误的。(其中0≤i<4,0≤j<3)int i,j,(*p)[3];
int a[ ][3]={1,2,3,4,5,6,7,8,9,10,11,12};
p=a;
A) *(*(a+i)+j)
B) *(*(p+i)+j)
C) p[i][j]
D) *(p[i]+j)
(11) 若有定义:
char ch;
int j,k;
enum day {sun, mon, tue, wed, thu, fri, sat};
int a[sat];
则( C )对下列语句是否符合语法规则的判断是正确的。
sun=0; /*语句1*/
j=mon+tue; /*语句2*/
if (a[mon]>0) j++; /*语句3*/
A) 语句1、2、3均正确
B) 语句2正确,语句1和语句3错误
C) 语句1错误,语句2和语句3正确
D) 语句1、2、3均错误
(12) C语言的基本数据类型包括(A )。
A) 整型、实型、字符型
B) 整型、指针型、字符型
C) 整型、实型、逻辑型
D) 整型、实型、空类型
(13) 下面程序运行后,屏幕显示error!,则可能的原因是(A )。
#include
{
FILE *fp;
char str[256];
fp=fopen(“test.txt”,”rt”);
if (fp= =NULL)
{ printf(“error!:);
return;
}
fscanf(fp,”%s”,str);
fclose(fp);
}
A) 当前工作目录下没有test.txt文件
B) 函数fopen( )的参数是错误的
C) 当前工作目录下的test.txt文件是空文件
D) text.txt文件已经打开
(14)(C )语句符合C语言语法。
int a=b=2,c=5;
A)
B) float x=3.2, int i,j=6;
C) float x=2.3,b,c;
D) int a=2,b+=a;
(15) 若有定义:int x,y,z; 语句x=(y=z=3,++y,z+=y); 运行后x的值为(B )。
A) 6
B) 7
C) 8
D) 3
(16) 若有定义int a=8,b=5;要实现输出形式为:8*5=40,正确的printf( )函数调用语句是(D )。
A) printf(“a*b=a*b\n”);
B) printf(“a*b=%d\n”,a*b);
C) printf(“%d*%d=a*b\n”,a,b);
D) printf(“%d*%d=%d\n”,a,b,a*b);
(17) 若有定义:int a;且表达式!a的值为0,则表达式(B )的值为1。
A) !(a<0||a>0)
B) a!=0
C) a= =0
(18) 下列运算符中优先级最低的是(C )。
A) >
B) *
C) =
D) !
(19) 以下程序段运行后x的值为(C )。
int a=3,b=6,x;
x=(a= =b)?a++:--b;
A) 6
B) 4
C) 5
D) 3
(20) 以下程序段运行后x的值为(A )。
int i=0,x=0;
for (;i<=5;i++,i++)
{x+=3;}
A) 9
B) 15
C) 6
12 D)
(21)(B )是关于C语言数据类型的正确叙述。
A) 枚举类型不是基本类型
B) 变量使用前应定义相应的数据类型
C) 不允许使用空类型
D) 数组不是构造类型
(22)(C )是正确的数组定义。
A) int n=5; int arr[n];
B) int n; n=5; int arr[n];
C) int arr[10];
D) int N=5, arr[N];
(23) 以下程序段运行后a的值为(B )。
int a=2;
a=strcmp(“miss”,”miss”);
A) true
B) 0
C) 1
D) -1
(24) 以下程序段的运行结果是(D )。
int fun(int array[3][3])
{ int j;
for (j=0;j<3;j++) array[1][j]++;
printf(\
);
}
main( )
{ int j,a[3][3]={0,1,2,1,0,4,2,4,5};
fun(a);
for (j=0;j<3;j++) printf(“-”,a[1][j]);
printf(\
);
}
A) 1 0 4
B) 0 1 2
C) 1 2 3
D) 2 1 5
(25) 若有定义:#define PI 3,则表达式PI*2*2的值为(C )。
A) 4
B) 不确定
C) 12
D) 322
(26) 若有定义:int *p1,*p2;,则不能用于指针变量p1、p2之间的运算符是(C )。
A) -
B) =
C) +
D) = =
(27) 若有定义:
struct teacher
{ int num;
char sex;
int age;
} teacher1;
则下面叙述错误的是( A )。
A) teacher1是结构类型名
B) struct teacher是用户定义的结构类型
C) num、sex、age都是结构变量teacher1的成员
D) struct是结构类型的关键字
(28) 下列程序段运行后,表达式(A )的值为3。
struct point
{ int x;
int y;
} *p;
struct point a[3]={1,2,3,4,5,6};
p=a;
A) p[1].x
B) *(p+2)
C) p[3].x
D) p[2].x
(29) 若有定义:
typedef int NUM[100];
NUM n;
则( A )语句是正确的。
A) n[0]=2;
B) NUM=2;
C) NUM=n;
D) n=2;
(30)(D )为非法的字符串常量。
A) “case”
B) ““
C) .”056”
D) ‘123'
(31) 若当前工作目录下有一文本文件test.txt,其内容为cprogram“(不包含引号),则以下程序段的运行结果是( A )。