charstr[4][2]={"aaa","bbb","ccc","ddd"},*strp[4];
intj;
for(j=0;j<4;j++)
strp[j]=str[j];
(A).strp
(B).str[k]
(C).strp[k]
(D).*strp
31.9以下语句中,循环次数不为10次的语句是(A).
(A).for(i=1;i<10;i++);
(B).i=1;do{i++;}while(i<=10);
(C).i=10;while(i>0){--i;}
(D).i=1;m:
if(i<=10){i++;gotom;}
32.14以下不能正确进行字符串赋初值的语句是(A).
(A).charstr[5]="good!
";
(B).charstr[]="good!
";
(C).char*str="good!
";
(D).charstr[5]={'g','o','o','d'};
33.18若有double*p,x[10];inti=5;使指针变量p指向元素x[5]的语句为(A).
(A).p=&x[i];
(B).p=x;
(C).p=x[i];
(D).p=&(x+i)
34.C语言的if语句嵌套时,if与else的配对关系是(A).
(A).每个else总是与它上面的最近的并且尚未与其他else匹配的if配对
(B).每个else总是与最外层的if配对
(C).每个else与if的配对是任意的
(D).每个else总是与它上面的if配对
35.16以下正确的函数定义形式是(A).
(A).doublefun(intx,inty)
(B).doublefun(intx;inty)
(C).doublefun(intx,inty);
(D).doublefun(intx,y);
36.18经过下列的语句intj,a[10],*p;定义后,下列语句中合法的是(A)
(A).p=a+2;
(B).p=a[5];
(C).p=a[2]+2;
(D).p=&(j+2);
37.17enuma{sum=9,mon=-1,tue};2chara[]="Thisisaprogram.";输出前5个字符的语句是(A).
(A).printf("%.5s",a);
(B).puts(a);
(C).printf("%s",a);
(D).a[5*2]=0;puts(a);
选择题B篇
38.C语言源程序的基本单位是(B).
(A).过程
(B).函数
(C).子程序
(D).标识符
39.下列程序的输出结果是(B).
main()
{charc1=97,c2=98;
printf("%d%c",c1,c2);
}
(A).9798
(B).97b
(C).a98
(D).ab
40.下列四个选项中,均是C语言关键字的选项是(B).
(A).autoenuminclude
(B).switchtypedefcontinue
(C).signedunionscanf
(D).ifstructtype
41.以下能对二维数组a进行正确初始化的语句是(B).
(A).inta[2][]={{1,0,1},{5,2,3}};
(B).inta[][3]={{1,2,3},{4,5,6}};
(C).inta[2][4]={{1,2,3},{4,5},{6}};
(D).inta[][3]={{1,0,1}{},{1,1}};
42.以下对枚举类型名的定义中正确的是(B).
(A).enuma={sun,mon,tue};
(B).enuma{sun=9,mon=-1,tue};
(C).enuma={"sun","mon","tue"};
(D).enuma{"sun","mon","tue"};
43.以下选项中合法的用户标识符是(B).
(A).long
(B)._2Test
(C).3Dmax
(D).A.dat
44.以下叙述中正确的是(B).
(A).C语言的源程序不必通过编译就可以直接运行
(B).C语言中的每条可执行语句最终都将被转换成二进制的机器指令
(C).C源程序经编译形成的二进制代码可以直接运行
(D).C语言中的函数不可以单独进行编译
45.以下叙述中不正确的是(B).
(A).一个好的程序应该有详尽的注释
(B).在C程序中,赋值运算符的优先级最低
(C).在C程序中,j++;是一条赋值语句
(D).C程序中的#include和#define均不是C语句
46.若有以下程序段:
inta=3,b=4;a=a^b;b=b^a;a=a^b;则执行以上语句后,a和b的值分别是(B).
(A).a=3,b=4
(B).a=4,b=3
(C).a=4,b=4
(D).a=3,b=3
47.9.假定所有变量均已正确定义,下列程序段运行后x的值是(B).
k1=1;
k2=2;
k3=3;
x=15;
if(!
k1)x--;
elseif(k2)x=4;
elsex=3;
(A).14
(B).4
(C).15
(D).3
48.给数组a的所有元素分别赋值为1、2、3、……的语句是(B).
(A).for(i=1;i<11;i++)a[i]=i;
(B).for(i=1;i<11;i++)a[i-1]=i;
(C).for(i=1;i<11;i++)a[i+1]=i;
(D).for(i=1;i<11;i++)a[0]=1;
49.C语言中不可以嵌套的是(B).
(A).函数调用
(B).函数定义
(C).循环语句
(D).选择语句
50.inta[10]={1,2,3,4,5,6,7,8};int*p;p=&a[5];p[-3]的值是(B)
(A).2
(B).3
(C).4
(D).不一定
51.若k为int型变量,则以下程序段的执行结果是(B).
k=-8567;printf("|%06D|\n",k);
(A).格式描述符不合法,输出无定值
(B).输出为|%06D|
(C).输出为|0-8567|
(D).输出为|-8567|
52.fseek函数的正确调用形式是(B).
(A).fseek(文件类型指针,起始点,位移量)
(B).fseek(fp,位移量,起始点)
(C).fseek(位移量,起始点,fp)
(D).fseek(起始点,位移量,文件类型指针)
53.下列表达式中,可作为C合法表达式的是(B).
(A).[3,2,1,0]
(B).(3,2,1,0)
(C).3=2=1=0
(D).3/2/1/0
54.以下程序的输出结果为(B).
main()
{inta=1,b=2,c=3,d=4,e=5;
printf("%d\n",func((a+b,b+c,c+a),(d+e)));
}
intfunc(intx,inty)
{
return(x+y);
}
(A).15
(B).13
(C).9
(D).函数调用出错
55.以下标识符中,不能作为合法的C用户定义标识符的是(B).
(A).a3_b3
(B).void
(C)._123
(D).IF
56.假设所有变量均为整型,表达式:
a=2,b=5,a>b?
a++:
b++,a+b的值是(B).
(A).7
(B).8
(C).9
(D).2
57.以下程序段的输出结果为(B).
for(i=4;i>1;i--)
for(j=1;j
putchar('#');
(A).无
(B).######
(C).#
(D).###
58.设C语言中,int类型数据占2个字节,则unsigned类型数据占(B).
(A).1个字节
(B).2个字节
(C).4个字节
(D).8个字节
59.对for(表达式1;;表达式3)可理解为(B).
(A).for(表达式1;0;表达式3)
(B).for(表达式1;1;表达式3)
(C).for(表达式1;表达式1;表达式3)
(D).for(表达式1;表达式3;表达式3)
60.C语言中,定义结构体的保留字是(B).
(A).union
(B).struct
(C).enum
(D).typedef
61.设C语言中,int类型数据占2个字节,则short类型数据占().B
(A).1个字节
(B).2个字节
(C).4个字节
(D).8个字节
62.对for(表达式1;;表达式3)可理解为(B).
(A).for(表达式1;0;表达式3)
(B).for(表达式1;1;表达式3)
(C).for(表达式1;表达式1;表达式3)
(D).for(表达式表达式3;表达式3)
63.C语言允许函数类型缺省定义,此时函数值隐含的类型是().B
(A).float
(B).int
(C).long
(D).double
64.若有inta[][2]={{1,2},{3,4}};则*(a+1),*(*a+1)的含义分别为(B).
(A).非法,2
(B).&a[1][0],2
(C).&a[0][1],3
(D).a[0][0],4
65.以下叙述正确的是(B).
(A).可以把define和if定义为用户标识符
(B).可以把define定义为用户标识符,但不能把if定义为用户标识符
(C).可以把if定义为用户标识符,但不能把define定义为用户标识符
(D).define和if都不能定义为用户标识符
66.sizeof(float)是(B).
(A).一个双精度型表达式
(B).一个整型表达式
(C).一种函数调用
(D).一个不合法的表达式
67.对for(表达式1;;表达式3)可理解为(B).
(A).for(表达式1;0;表达式3)
(B).for(表达式1;1;表达式3)
(C).for(表达式1;表达式1;表达式3)
(D).for(表达式1;表达式3;表达式3)
68.若有说明:
inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是(B).
(A).i=*p;
(B).*p=*&j;
(C).i=&j;
(D).i=**p;
69.下面四个选项中,均是不合法的浮点数的选项是(B).
(A).160.0.12e3
(B).1232e4.2.e5
(C).-.18123e40.0
(D).-e3.2341e3
70.在一个C程序中(B).
(A).main函数必须出现在所有函数之前
(B).main函数可以在任何地方出现
(C).main函数必须出现在所有函数之后
(D).main函数必须出现在固定位置
71.若二维数组a有m列,则在a[i][j]前的元素个数为(B).
(A).j*m+i
(B).i*m+j
(C).i*m+j-1
(D).i*m+j+1
72.若有下列定义,则对a数组元素地址的正确引用是(B).
inta[5],*p=a;
(A).&a[5]
(B).p+2
(C).a++
(D).&a
73.2下列字符序列中,不可用作C语言标识符的是(B).
(A).b70
(B).#ab
(C).symbol
(D).a_1
74.15以下不正确的说法是:
C语言规定(B).
(A).实参可以是常量,变量或表达式
(B).形参可以是常量,变量或表达式
(C).实参可以为任何类型
(D).形参应与其对应的实参类型一致
75.3下列数据中,为字符串常量的是(B).
(A).A
(B)."house"
(C).Howdoyoudo.
(D).$abc
76.17在位运算中,操作数每右移一位,其结果相当于(B).
(A).操作数乘以2
(B).操作数除以2
(C).操作数乘以16
(D).操作数除以16
77.以下所列的C语言常量中,错误的是(B).
(A).0xFF
(B).1.2e0.5
(C).2L
(D).'\72'
78.为了提高程序的运行速度,在函数中对于整型或指针可以使用(B)型的变量.
(A).auto
(B).register
(C).static
(D).extern
79.10inta=1,b=2,c=3;
if(a>c)b=a;a=c;c=b;则c的值为().B
(A).1
(B).2
(C).3
(D).不一定
80.以下不正确的定义语句是(B).
(A).doublex[5]={2.0,4.0,6.0,8.0,10.0};
(B).inty[5]={0,1,3,5,7,9};
(C).charc1[]={'1','2','3','4','5'};
(D).charc2[]={'\x10','\xa','\x8'};
81.C语言规定:
简单变量做实参时,它和对应形参之间的数据传递方式是(B).
(A).地址传递
(B).单向值传递
(C).由实参传给形参,再由形参传回给实参
(D).由用户指定的传递方式
82.以下程序的输出结果是(B).
main()
{chars[]="123",*p;
p=s;
printf("%c%c%c\n",*p++,*p++,*p++);
}
(A).123
(B).321
(C).213
(D).312
83.以下语句中,不能实现回车换行的是(B).
(A).printf("\n");
(B).putchar("\n");
(C).fprintf(stdout,"\n");
(D).fwrite("\n",1,1,stdout);
选择题C篇
84.设C语言中,int类型数据占2个字节,则long类型数据占(C).
(A).1个字节
(B).2个字节
(C).4个字节
(D).8个字节
85.以下叙述正确的是(C).
(A).在C程序中,main函数必须位于程序的最前面
(B).C程序的每行中只能写一条语句
(C).C语言本身没有输入输出语句
(D).在对一个C程序进行编译的过程中,可发现注释中的拼写错误
86.以下数值中,不正确的八进制数或十六进制数是(C).
(A).0x16
(B).016
(C).-16
(D).0xaaaa
87.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!
y)的值是(C).
(A).0
(B).语法错
(C).1
(D).假
88.能将高级语言编写的源程序转换为目标程序的是(C).
(A).链接程序
(B).解释程序
(C).编译程序
(D).编辑程序
89.以下关于运算符优先顺序的描述中正确的是(C).
(A).关系运算符<算术运算符<赋值运算符<逻辑运算符
(B).逻辑运算符<关系运算符<算术运算符<赋值运算符
(C).赋值运算符<逻辑运算符<关系运算符<算术运算符
(D).算术运算符<关系运算符<赋值运算符<逻辑运算符
90.以下叙述中不正确的是(C).
(A).表达式a&=b等价于a=a&b
(B).表达式a|=b等价于a=a|b
(C).表达式a!
=b等价于a=a!
b
(D).表达式a^=b等价于a=a^b
91.12.以下不能对二维数组a进行正确初始化的语句是(C).
(A).int