x-y:
((y+4>x)?
x+y:
y-x);
A.7
B.1
C.3
D.-3
27.若已定义:
inta[6]={2,1,3};则元素a[3]的值为()。
A.2
B.3
C.0
D.1
28.错误的数组定义是()。
A.inta[3][]={1,2,3,4,5,6};
B.inta[][3]={{0},{1},{2}};
C.inta[][3]={1,2,3,4};
D.inta[3][3]={{1,2},{3},{4}};
29.下列程序段运行结果中变量b的值是()。
intb=3;
chars1="action",s2=s1;
b=strcmp(s1,s2);
A.-1
B.1
C.0
D.3
30.下列函数调用语句所含的实参的个数有()个。
fun((a,b,c),(x,y),(p,q))
A.3
B.5
C.7
D.4
31.下列程序段运行后变量s的值为()。
inta[]={1,2,3,4,5,6,7};
inti,s=1,*p;
p=&a[2];
for(i=0;i<4;i++)
s*=*(p+i);
A.120
B.60
C.360
D.210
32.若已定义:
typedefstructstu
{intnum;
charname[20];
}STU;
则正确的语句是()。
A.structstubb[2]={{1,chen},{2,li}};
B.STUcc[2]={{1,"chen"},{2,"li"}};
C.STUaa[2]={{1,'chen'},{2,'li'}};
D.studd[2]={{1,"chen"},{2,"li"}};
33.若已定义:
intm=12,n=10,k;语句k=m&n;执行后k的值为()。
A.14
B.2
C.6
D.8
34.对下面程序正确描述的是()。
#include
#include
voidmain()
{FILE*in,*out;
if((in=fopen("file2.txt","a+"))==NULL)
{printf("cannotopenfile1\n");
exit(0);
}
if((out=fopen("file1.txt","a+"))==NULL)
{printf("cannotopenfile2\n");
exit(0);
}
while(!
feof(out))
fputc(fgetc(out),in);
fclose(in);
fclose(out);
}
A.程序实现将磁盘文件file1.txt复制到磁盘文件file2.txt
B.程序实现在屏幕上显示磁盘文件file2.txt的内容
C.程序实现将两个磁盘文件file1.txt和file2.txt的内容合二为一
D.程序实现在屏幕上显示磁盘文件file1.txt的内容
35.若已定义:
inti=1,j=3;则表达式(++i)+(j--)的值为()。
A.5
B.4
C.3
D.2
36.putchar()函数的功能是向终端输出()。
A.一个实型变量的值
B.字符串
C.一串数字
D.单个字符
37.若已定义:
inta=1,b=2,c=3;下列表达式值为0的是()。
A.a+b<=c
B.a-b||a+b&&a+c
C.a/b||c>b
D.a/b||b/c
38.若已定义:
charc='B';inta=8;floatx=10.3;则表达式c%a+x的值是()。
[已知'A'的ASCII码的十进制值为65]
A.18.3
B.12.3
C.10
D.12
39.为避免在嵌套的条件语句if…else中产生二义性,C语言规定,else子句总是与()配对。
A.同一行上的if
B.其之前最近的if
C.缩进位置相同的if
D.其之后最近的if
40.下列程序段运行后变量s的值为()。
inti,s=1;
for(i=1;i<=6;i++)
{if(i%2)
continue;
s+=i;
}
A.6
B.13
C.10
D.12
41.编译预处理命令的位置可以在()。
A.主函数内
B.自定义函数内
C.文件开头
D.print();语句中
42.若已定义:
inta=6;
int*p=&a;
下列均能表示地址的是()。
A.&a,p
B.a,*p
C.a,p
D.&a,&p
43.下列程序段的运行结果是()。
inta[]={1,2,3,4,5,6,7},*p=a;
intn,s=0;
for(n=0;n<6;n++)s+=p[n++];
printf("%d",s);
A.12
B.9
C.15
D.16
44.一个结构体变量占用的内存大小是由()决定的。
A.占内存容量最大的成员所需容量
B.各成员所需内存容量之和
C.第一个成员所需内存容量
D.最后一个成员所需内存容量
46.下列程序的运行结果是()。
#include
main()
{FILE*fp;
inta=3,b=5,c=8,k,n;
fp=fopen("test.dat","w");
fprintf(fp,"%d\n",a);
fprintf(fp,"%d%d\n",b,c);
fclose(fp);
fp=fopen("test.dat","r");
fscanf(fp,"%d%*d%d",&k,&n);
printf("%d%d\n",k,n);
fclose(fp);
}
A.83
B.35
C.53
D.38
47.若已定义:
intt,a,b;语句t=(a=3,b=a++);执行后,变量t、a、b的值依次为()。
A.4,3,3
B.3,3,3
C.4,3,4
D.3,4,3
48.下列叙述错误的是()。
A.强制类型转换运算的优先级高于算术运算
B.自加与自减运算符只能用于整型或字符型变量
C.%不能作为C语言的求模运算符
D.自增与自减运算符的结合方向为“自右至左”
50.下列程序的运行结果是()。
voidmain()
{intx,y,z;
x=y=1;z=2;
if(!
x)
++z;
elseif(!
(x-y))
z=3+z;
elseif(y)
z++;
else
z+=13;
printf("%d\n",z);
}
A.8
B.5
C.3
D.15
51.对于下列程序段,叙述正确的是()。
inta=2;
do
{a+=2;
}while(!
(a!
=0));
A.循环执行1次
B.循环执行2次
C.有语法错误
D.是无限循环
52.下列叙述正确的是()。
A.宏名只能包含大写字母和数字字符
B.编译预处理命令行必须以分号结束
C.程序中使用带参数的宏时,参数类型要与宏定义时一致
D.#define是宏定义命令
53.下列程序的运行结果是()。
#include
voidmain()
{char*p="Chinese",*q=p+4;
printf("%c\n",q[-1]);
}
A.n
B.s
C.e
D.i
54.下列程序的运行结果是()。
#include
uniondata
{floati;
charc;
};
struct
{chara[2];
inti;
uniondatad;
}q;
voidmain()
{printf("%d\n",sizeof(q));
}
A.6
B.5
C.7
D.8
55.下列程序的运行结果是()。
#include
voidmain()
{struct{charx1;intx2;}a[3]={'A',1,'B',2,'C',3};
printf("%d\n",a[0].x1-a[1].x1/a[2].x2);
}
A.55
B.80
C.40
D.43
56.下列程序段的运行结果是()。
intk=3;
printf("++k=%d\n",++k);
A.++k=5
B.++3=4
C.++k=4
D.++k=3
57设已定义:
floatx=1.0,y=2.0;语句()执行后变量x值为3.0。
A.x*=y;
B.x-=2*y;
C.x/=x+y;
D.x+=y;
58.下列程序运行时,循环体的执行次数是()。
voidmain()
{inti,j=3;
for(i=0;i<=j++;i=i+2)
printf("%3d",i);
}
A.3
B.1
C.4
D.2
59.能对二维数组a进行正确初始化的语句是()。
A.inta[][3]={{1,2},{},{3,5,6}};
B.inta[2][]={{1,2},{3,0,5}};
C.inta[2][4]={{1,2},{3,4},{5,6}};
D.inta[][3]={{1,2},{3,4,5}};
60.下列程序段执行后s的值是()。
intk,s=0;
inta[3][3]={11,12,13,14,15,16,17,18,19};
for(k=0;k<2;k++)
s+=a[k][k+1];
A.45
B.28
C.31
D.76
61.下列程序段的运行结果是()。
charstr[3][3]={'a','b','c','d','e','f','g','h','i'};
str[2][1]='\0';
printf("%s",str);
A.abcdefghi
B.abcdefg
C.abcdefg0i
D.abcdefg0
62.下列程序运行后,文件test.txt的内容是()。
#include
main()
{
FILE*fp;
charstr[][10]={"1st","2nd"};
fp=fopen("test.txt","w");
if(fp!
=NULL)
fprintf(fp,"%s",str[0]);
fclose(fp);
fp=fopen("test.txt","w");
if(fp!
=NULL)
fprintf(fp,"%s",str[1]);
fclose(fp);
}
A.2nd1st
B.1st
C.2nd
D.1st2nd
63.结构化程序设计三种基本结构中,不包含()。
A.嵌套结构
B.顺序结构
C.选择结构
D.循环结构
64.()为不合法的字符串常量。
A."kindergarten'teacher"
B.'kindergarten'
C."kindergarten"
D."teacher"
65.下列叙述正确的是()。
A.数组的大小是可变的,且其中可以有不同数据类型的数组元素
B.数组的大小是可变的,但所有数组元素的数据类型必须相同
C.数组的大小是固定的,且其中所有数组元素的数据类型必须相同
D.数组的大小是固定的,但其中可以有不同数据类型的数组元素
66.下列程序段的运行结果是()。
chara[]="student";
charb[]="work";
strcpy(a,b);
printf("%s%c",a,a[5]);
A.workn
B.work
C.studn
D.stud
67.若已定义:
structstudent
{intnum;
charname[8];
floatscore;
}stu1;
则变量stu1占用了()内存字节。
A.15
B.18
C.14
D.13
68.若已定义:
inti;
enumcolors{red,green,blue,black};
inta[3];
()是对以下语句的正确判断。
a[red]=black;/*语句1*/
i=green+blue;/*语句2*/
red=1;/*语句3*/
A.语句1和语句3正确,语句2错误
B.语句1正确,语句2和语句3错误
C.语句2和语句3正确,语句1错误
D.语句1和语句2正确,语句3错误
70.下列选项中,均为合法整型常量的是()。
A.-190
013
1e3
B.0x2h
21
025
C.120
-012
0x12
D.170
-018
0x18
71.若已定义:
inti,a=0;下列()不是无限循环语句。
A.for(i=10;;i--)
a+=i;
B.for(i=1;i>++a;i++)
a+=2;
C.while
(1)
a++;
D.for(i=1;;a++)
;
72.若有下列程序段,则叙述正确的是()。
chara[]="fujian";
char*p;
p=a;
A.数组a中的内容和指针变量p中的内容相等
B.a和p完全相同
C.*p与a[0]相等
D.数组a的长度和p所指向的字符串长度相等
73.下列程序的运行结果是()。
main()
{staticchara[]="bacdefg",b[]="adcbehg";
char*p=a,*q=b;
inti;
for(i=0;i<=6;i++)
if(*(p+i)==*(q+i))
printf("%c",*(q+i));
}
A.fdb
B.geca
C.aceg
D.ceg
74.若有定义:
structstudent
{intnum;
charsex;
intage;
}stu1;
下列叙述错误的是()。
A.student是结构体类型名
B.structstudent是结构体类型名
C.stu1是用户定义的结构体类型变量名
D.num,sex,age都是结构体变量stu1的成员
75.若已定义:
enumt1{a1,a2=10,a3,a4=13};
则枚举常量a2和a3的值分别是()。
A.2和3
B.1和2
C.10和11
D.10和2
76.若已定义:
inta=5,b;语句b=1+(--a);执行后变量a,b的值分别为()。
A.a为4,b为6
B.a为5,b为4
C.a为4,b为5
D.a为5,b为5
77.能正确表示数学关系式5≤f<10的C语言表达式是()。
A.(f>=5)and(f<10)
B.f>=5|f<10
C.(f>=5)&(f<10)
D.(f>=5)&&(f<10)
78.在对无符号数的位运算中,操作数左移两位相当于()。
A.除以8
B.除以4
C.乘以4
D.乘以8
79.若已定义:
inta,b,c;则逗号表达式a=10,b=23,c=a+b的值为()。
A.23
B.33
C.10
D.66
80.下列程序的运行结果是()。
voidmain()
{inta=1,b=2;
switch(a)
{case1:
printf("a=1");
switch(b)
{case1:
printf("b=1");break;
case2:
printf("b=2");break;
case3:
printf("b=3");break;
}
case2:
printf("a=2");break;
default: