一、单项选择题
(1). 下面程序运行后,文件d_f.dat的内容是(1 )。 main()
{ FILE *fp; int i=10,j=20; fp=fopen(\ fprintf(fp,\ fclose(fp);
fp=fopen(\ fprintf(\ fclose(fp); }
① 10 20 ② 20 ③ 20 10 ④ 10
(2). 若有定义:enum day{sun,mon, tue, wed, thu, fri, sat} ; ,则枚举常量sun、mon的值分别为(4 )。
① 7 0 ② 1 2 ③ 7 1 ④ 0 1
(3). 下列程序段运行后,表达式( 2 )的值为3。 struct point { int x; int y; } *p;
struct point a[3]={1,2,3,4,5,6}; p=a;
①p[3].x ②p[1].x ③ *(p+2) ④p[2].x (4). 以下程序段的运行结果是(3 )。 int x[]={2,3,4,5,6,7},*p=x; int i,s=0;
for(i=1;i<5;i++) s+=p[i++]; printf(\
① 20 ② 14 ③ 8 ④ 6
(5). C语言的函数体由( 1 )括起来。 ① { } ② [ ] ③ < > ④ ( )
(6). 若有定义:int x,y,z; 语句 x=(y=z=3,++y,z+=y); 运行后,x的值为(2 )。
① 7 ② 6 ③ 8 ④ 3
(7). 若有定义:int x; char c='A'; 则正确的赋值表达式是( 4 )。(说明:'A'的ASCII码的十进制值为65,'a'的ASCII码的十进制值为97) ① x='ABC' ② x=c+'ABC' ③ x=c+'CBA' ④ x=c+32 (8). 下面叙述错误的是( 3 )。
① C语言规定可逐个引用数组元素但不能一次引用整个数组 ② 数组中每一个元素都属于同一个数据类型 ③ C语言数组长度在定义数组时可不作确定 ④ C语言数组名称是数组在内存中的首地址 (9). 以下程序的运行结果是( 4 )。 int f(int c) { c+=2;
return c ; }
main()
{ int a=2,c=5; a=f(a);
printf(\}
① 2 4 ② 2 5 ③ 4 4 ④ 4 5
(10). C语言中,二维数组元素在内存中的存放顺序是(3)。 ① 由用户自己定义 ② 按列存放 ③ 按行存放 ④ 随机存放 (11). 以下程序的运行结果是( 1 )。 #define X a+b main( )
{ int a=3,b=4,s1; s1=2*X;
printf(\}
① 10 ② 14 ③ 8 ④ 6 (12). 若有定义:char str1[10],str2[10]=\,能将字符串\赋给数组str1的正确语句是( 1 )。
① strcpy(str1,str2); ② strcpy(str2,str1); ③ strcopy(str1,str2); ④ str1=\
(13). 若有定义: int i,x; ( 3 )不是死循环。
① for( ; ;i+=2) ; ② for(i=10; ;i--) ; ③ for(x=5;x>0;x--) ; ④ while(x=1) ;
(14). 只能向终端输出一个字符的是( 1 )。
① putchar()函数 ② scanf()函数 ③ printf()函数 ④ getchar()函数 (15). C语言的基本数据类型包括( 3 )。 ① 整型、字符型、指针型 ② 整型、实型、逻辑型 ③ 整型、实型、字符型 ④ 整型、实型、空类型
(16). 若有定义:int a,b=5; 语句a=(b/2)+b%2; 运行后,a的值为( 2 )。 ① 4 ② 3 ③ 2 ④ 0
(17). x的值在-20至-5之间为“真”,否则为“假”的正确逻辑表达式为( 3 )。 ① !(x>-20) && !(x<-5) ② -5 {int a,b=2,c=6; a=3; if(a>6) a=a+b; else if(a==6) b=a+c; else a=b+c; 第 2 页 共 25 页 printf(\} ① 5 ② 6 ③ 8 ④ 9 (19). 若有定义:int a[3][4]={{1,2},{3,4},{5,6,7}}; ,则a[1][1]的值为( 4 )。 ① 2 ② 3 ③ 1 ④ 4 (20). 若有定义: struct teacher {int num; char sex; int age; }teacher1; 则下面叙述错误的是( 4 )。 ① struct是结构类型的关键字 ② struct teacher是用户定义的结构类型 ③ num、sex、age都是结构变量teacher1的成员 ④ teacher1是结构类型名 (21). ( 1 )是关于C语言数据类型的正确叙述。 ① 变量使用前应定义相应的数据类型 ② 不允许使用空类型 ③ 枚举类型不是基本类型 ④ 数组不是构造类型 (22). ( 4 )为非法的字符串常量。 ① \② \③ \④ '123' (23). 若有定义:int b=-15; 则( 2 )为正确的赋值表达式。 ① b=*5 ② b+=b*3 ③ *b=6 ④ b+10=-5 (24). 若有定义:int a,b=6; 语句a=--b; 运行后,a、b的值分别是( 4 )。 ① 6 5 ② 5 6 ③ 6 6 ④ 5 5 (25). 若有定义 float x; 要从键盘输入数据6.02赋给x,则应选用( 3 )语句。 ① scanf(\② scanf(\③ scanf(\④ scanf(\(26). 若有定义:int a=1,b=2,c=3,d=4,t=2,k=2; 语句(t=a (27). 若有定义:int a=6,b=7,k=0,t=1; 语句 (k=a ① 0 0 ② 1 1 ③ 1 0 ④ 0 1 (28). 以下程序段运行时,若从键盘输入5,则运行结果是(4 )。 int a,y=10; scanf(\ if (a>10) y=a+6; printf(\ ① 10 ② 16 ③ 11 ④ 15 (29). 以下程序段运行后x的值为( 1 )。 int i=0,x=2; while(i++<=5) 第 3 页 共 25 页 {x+=2; } ① 14 ② 12 ③ 8 ④ 10 (30). 以下程序段运行后x的值为(4 )。 int a[8]={1,2,3,4,5,6,7,8},i,x=0; for(i=0;i<8;i++,i++) x=x+a[i]; ① 20 ② 18 ③ 36 ④ 16 (31). 以下程序段运行后s的值是( 2 )。 int a[3][3]={1,2,3,1,2,3,1,2,3}; int i,j,s=0; for(i=0;i<3;i++) for(j=i;j<3;j++) s+=a[i][j]; ① 15 ② 14 ③ 13 ④ 12 (32). 以下程序的运行结果是( 2 )。 int a=2,b=3; int min(int a,int b) { int c; c=a main() { int a=4; printf(\} ① 4 ② 3 ③ 2 ④ 2,3 (33). 若有定义:#define PI 3,则表达式PI*2*2的值为( 2 )。 ① 322 ② 12 ③ 4 ④ 不确定 (34). 以下程序段运行后*(p+1)的值为( 2 )。 char a[]=\char *p; p=a; ① a[1]的地址 ② 'o' ③ 不确定 ④ 'g' (35). 以下程序段运行后x的值为( 4 )。 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); ① 6 ② 1 ③ 120 ④ 24 (36). 以下程序段的运行结果是( 4 )。 union 第 4 页 共 25 页