文档库 最新最全的文档下载
当前位置:文档库 › 2013公开题库-C语言(194)

2013公开题库-C语言(194)

?1257. C语言程序的基本单位是()。
A.程序行
B.语句
C.函数
D.字符
Answer:C

1258. 下列说法中正确的是()。
A.C语言程序总是从第一个定义的函数开始执行
B.在C语言程序中要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须在程序的开始部分
Answer:C

1259. 设有语句int a=3,则执行语句a+=a-=a*a以后变量a的值是()。
A.3
B.0
C.9
D.-12
Answer:D

1260. 在C语言中,要求运算数必须是整数的运算符是()。
A.<
B.%
C./
D.>
Answer:B

1261. C语言中最简单的数据类型包括()。
A.整型、实型、逻辑型
B.整型、实型、字符型
C.整型、字符型、逻辑型
D.整型、实型、逻辑型、字符型
Answer:B

1262. 在一个C语言程序中()。
A.main函数必须出现在所有函数之前
B.main函数可以在任何地方出现
C.main函数必须出现在所有函数之后
D.main函数必须出现在固定位置
Answer:B

1263. 设正x、y均为整型变量,且x=10 y=3,则以下语句的
输出结果是()。pprintf("%d,%d\n",x--,--y);
A.10,3
B.9,3
C.9,2
D.10,2
Answer:D

1264. 假定x和y为double型,则表达式x=2,y=x+3/2的值是()。
A.3.5
B.3
C.2
D.3.0
Answer:D

1265. 下列程序的输出结果是()。
main()
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d \n", d*y);
}
A.3
B.3.2
C.0
D.3.07
Answer:C

1267. 若有如下定义变量:
int k=7,x=12; 则能使值为3的表达式是
()。
A.x%=(k%=5)
B.x%=(k-k%5)
C.x%=k-k%5
D.(x%=k)-(k%=5)
Answer:D

1268. 设X,Y,Z和K是int型变量,则执行表达式:X=(Y=4,Z=16,K=32)
后,X的值为()。
A.4
B.16
C.32
D.52
Answer:C

1269. 表达式“0?(0?3:2):(10?1:0)”的值为()。
A.3
B.2
C.1
D.0
Answer:C

1270. 以下程序的输出结果是()。
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);}
A.1
B.0
C.非0数
D.-1
Answer:A

1271. 设实型变量为f1、f2、f3、f4的值分别为4,3,2,1整型变量m1、m2
的值为1。表达式“(m1=f1>f2)&&(m2=f3A.0
B.1
C.2
D.出错
Answer:A

1272. 有如下条件表达式,若a=2、b=4、c=5 、d=7则表达式的值为()。a > b ? a : c > d ? c : d
A.2
B.4
C.5
D.7
Answer:D

1273. 以下程序输出结果是()。
main()
{ int m=5;
if(m++>5) printf("%d\n",m);
esle printf("%d\n",m- -);
}
A.7
B.6
C.5
D.4
Answer:B

1274. 设有 int x=11; 则表达式 (x++ * 1/3) 的值是()。
A.3
B.4
C.11
D.12
Answer:A

1275. 下列if语句中,不正确的是()。
A.if(x>y);
B.if(x==y) x+=y;
C.if(x!=y) scanf("%d",&x) else x=1;
D.if(xAnswer:C

1276. 下列变量定义中合法的是()。
A.short _a=1

-.le-1;
B.double b=1+5e2.5;
C.long do=0xfdaL;
D.float 2_and=1-e-3;
Answer:A

1277. 下列标识符中不合法的是()。
A.s_name
B._e
C.fox
D.3DS
Answer:D

1278. 下列不正确的转义字符是()。
A.\\'
B.\"
C.074'
D.\0'
Answer:C

1287. 在C 语言中,引用数组元素时,其数组下标的数据类型允许是()。
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
Answer:C

1288. C语言中,数组名代表()。
A.数组全部元素的值
B.数组首地址
C.数组第一个元素的值
D.数组元素的个数
Answer:B

1289. 若有说明:int a[10];则对a 数组元素的正确引用是()。
A.a[10]
B.a[3.5]
C.a(5)
D.a[10-10]
Answer:D

1290. 下面那个选项是正确的()。 (每行程序前面的数字表示行号)
1 main()
2 {
3 float a[3]={0};
4 int i;
5 for(i=0;i<3;i++) scanf(“%f”,&a[i]);
6 for(i=1;i<4;i++) a[0]=a[0]+a[i];
7 printf(“%f\n”,a[0]);
8 }
A.没有错误
B.第3 行有错误
C.第5 行有错误
D.第6 行有错误
Answer:D

1291. 以下不正确的描述为()。
A.不同函数中可以使用相同名字的变量
B.形参是局部变量
C.一个函数内部定义的变量只能在本函数范围内有效
D.在一个内部的复合语句中定义的变量可以在本函数范围内有效
Answer:D

1292. 以下函数的类型是 ()。
fff(float x)
{ printf (“%d\n”,x*x);}
A.与参数X的类型相同
B.void型
C.int型
D.无法确定
Answer:C

1293. 以下函数调用语句中,含有的实参个数是()。
func((exp1,exp2),(exp3,exp4,exp5));
A.1
B.2
C.4
D.5
Answer:B

1295. C语言中,形参缺省的存储类别是()。
A.auto(自动)
B.static(静态)
C.register(寄存器)
D.extern(外部)
Answer:A

1296. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回实参
D.传递方式由用户指定
Answer:B

1297. 当定义一个结构体变量时系统分配给它的内存是()。
A.各成员所需内存的总和
B.变量第一个成员所需内存容量
C.成员中占内存量大者所需的容量
D.变量最后一个成员所需内存容量
Answer:A

1298. 以下对结构体变量stu1中成员age的非法引用是()。
struct student
{ char name[10];
int age ;
} stu1 ,*p; p=&stu1;
A.stu1.age
B.p->age
C.(*p).age
D.student.age
Answer:D

1299. 下列程序执行后的输出结果是()。
#define MA(x) x*(x-1)
main()
{ int a=1,b=2; printf("%d \n",MA(1+a+b));}
A.6
B.8
C.10
D.12
Answer:B

1300. 在宏定义#define PI 3.14159中,用宏名代替一个()。
A.常量
B.单精度数
C.双精度数
D.字符串
Answer:D

1301. 在“文件包含”预处理语句的使用形式中,当#include后面的文件用了

“”(双引号)
时,寻找被包含文件的方式是()。
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在目录搜索,再按系统设定的标准方式搜索
C.仅仅搜索源程序所在目录
D.仅仅搜索当前目录
Answer:B

1307. 若x为int型变量,则以下函数fun的类型为( )。 fun(x) { printf(“%d\n”,x);}
A.返回值为void类型
B.无法确定返回值
C.返回值为int类型
D.无返回值
Answer:C

1308. 以下叙述正确的是()。
A.C程序中各函数之间既允许直接递归调用,也允许间接递归调用
B.C程序中各函数之间不允许直接递归调用,也不允许间接递归调用
C.C程序中各函数允许直接递归调用,不允许间接递归调用
D.C程序中各函数之间不允许直接递归调用,允许间接递归调用
Answer:A

1309. 以下叙述中不正确的是()。
A.一个变量的作用域完全取决于变量定义语句的位置
B.全局变量可以在函数以外的任何部位进行定义
C.局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用
D.一个变量说明为static存储类别是为于限制其它编译单位的引用
Answer:C

1310. 表示关系x<=y<=z的c语言表达式为()。
A.(X<=Y)&&(Y<=Z)
B.(X<=Y)AND(Y<=Z)
C.(X<=Y<=Z)
D.(X<=Y)&(Y<=Z)
Answer:A

1311. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是()。
A.3
B.6
C.10
D.20
Answer:D

1312. 请读程序片段(字符串内没有空格):
printf("%d\n",strlen("ATS\n012\1\\"));的输出结果是()。
A.11
B.10
C.9
D.8
Answer:C

1313. 若int类型占两个字节,则以下语句输出为()。
int k=-1;
printf("%d,u%\n",k,k);
A.-1,-1
B.-1,65536
C.-1,32768
D.-1,65535
Answer:D

1315. C语言中文件的存取方式是()。
A.顺序存取
B.随机存取
C.顺序存取,随机存取均可
D.顺序存取,随机存取均不可
Answer:C

1316. C语言中数组下标的下限是()。
A.1
B.0
C.视具体情况而定
D.无固定下限
Answer:B

1317. 表达式:10!=9的值是()。
A.ture
B.非零值
C.1
D.0
Answer:C

1318. 以下不合法的用户标识符是()。
A.j2_KEY
B.Double
C.4d
D._8_
Answer:C

1319. 以下不合法的数值常量是()。
A.011
B.1e1
C.8.0E0.5
D.0xabcd
Answer:C

1320. 以下能正确定义字符串的语句是()。
A.char str[]={"\064"};
B.char str="kx43";
C.char str="";
D.char str[]="\0"
Answer:D

1321. 以下叙述不正确的是()。
A.一个C源程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.C程序的基本组成单位是函数
D.在C程序中,注释说明只能位于一条语句的后面
Answer:D

1322. 在C语言中,int,char和short三种类型数据在内存中所占用的字节

数 ()。
A.由用户自己定义
B.均为2个字节
C.是任意的
D.由所用机器的机器字长决定
Answer:D

1323. 以下叙述正确的是 ()。
A.在C程序中,每行中只能写一条语句
B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C.C程序中,无论是整数还是实数,都能被准确无误地表示
D.在C程序中,%是只能用于整数运算的运算符
Answer:D

1324. C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符()。
A.必须为字母
B.必须为下划线
C.必须为字母或下划线
D.可以是字母,数字和下划线中任一字符
Answer:C

1325. x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是 ()。
A.INPUT x,y,z;
B.scanf("%d%d%d",&x,&y,&z);
C.scanf("%d%d%d",x,y,z);
D.read("%d%d%d",&x,&y,&z);
Answer:B

1326. 执行下列程序时输入123<空格>456<空格>789<回车> 输出结果是 ()。
main()
{ char s[100]; int c, i;
scanf("%c",&c); scanf("%d",&i); scanf("%s",s);
printf("%c,%d,%s\n",c,i,s);
}
A.123456789
B.1456789
C.1,23,456,789
D.1,23,456
Answer:D

1327. 下面有关for循环的正确描述是 ()。
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
Answer:D

1336. 若要求从键盘读入含有空格字符的字符串,应使用函数()。
A.getc()
B.gets()
C.getchar()
D.scanf()
Answer:B

1337. 在以下给出的表达式中,与while(E)中的(E)不等价的表达式是()。
A.(!E==0)
B.(E>0‖E<0)
C.(E==0)
D.(E!=0)
Answer:C

1338. 要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是()。
A.while((ch=getchar())!="N")printf("%c",ch);
B.while(ch=getchar()!="N")printf("%c",ch);
C.while(ch=getchar()=="N")printf("%c",ch);
D.while((ch=getchar())=="N")printf("%c",ch);
Answer:A

1339. 已定义以下函数
int fun(int *p)
{return *p;)
fun函数返回值是()。
A.不确定的值
B.一个整数
C.形参P中存放的值
D.形参P的地址值
Answer:B

1340. 若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是()。
A.*p=&a; scanf("%1f",p);
B.*p=&a; scanf("%f",p);
C.p=&a; scanf("%1f",*p);
D.p=&a; scanf("%1f",p);
Answer:D

1342. 有以下程序段
struct st
{int x;int *y;}*pt;
int a[]={1,2},b[]={3,4};
struct st c[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为11的是()。
A.*pt->y
B.pt->x
C.++pt->x
D.(pt++)->x
Answer:C

1343. 设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为()。
A.EOF
B.非0值
C.0
D.NULL
Answer:B

1344. 设有以下语句
int a=1,b=2,c;
c=a^(b<<2);
执行后,C的值为()。
A.6
B.7
C.8
D.9
Answer:D

1357. 以下叙述中错误的是()。
A.C语言源程序经编译后生成后缀为.obj的目标程序
B.C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件
C.用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中
D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令
Answer:D

1358. 设有以下定义和语句
char str[20]="Program",*p;
p=str;
则以下叙述中正确的是()。
A.*p与str[0]的值相等
B.str与p的类型完全相同
C.str数组长度和p所指向的字符串长度相等
D.数组str中存放的内容和指针变量p中存放的内容相同
Answer:A

1359. 以下叙述中错误的是()。
A.C程序中的#include和#define行均不是C语句
B.除逗号运算符外,赋值运算符的优先级最低
C.C程序中,j++;是赋值语句
D.C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算
Answer:D

1360. 以下叙述中正确的是()。
A.预处理命令行必须位于C源程序的起始位置
B.在C语言中,预处理命令行都以"#"开头
C.每个C程序必须在开头包含预处理命令行:#include
D.C语言的预处理不能实现宏定义和条件编译的功能
Answer:B

1361. 以下叙述中错误的是()。
A.可以通过typedef增加新的类型
B.可以用typedef将已存在的类型用一个新的名字来代表
C.用typedef定义新的类型名后,原有类型名仍有效
D.用typedef可以为各种类型起别名,但不能为变量起别名
Answer:A

1362. 以下关于逻辑运算符两侧运算对象的叙述中正确的是()。
A.只能是整数0或1
B.只能是整数0或非0的整数
C.可以是结构体类型的数据
D.可是任意合法的表达式
Answer:D

1363. 在嵌套使用if语句时,C语言规定else总是()。
A.和之前与其具有相同缩进位置的if配对
B.和之前与其最近的if配对
C.和之前与其最近的且不带else的if配对
D.和之前的第一个if配对
Answer:C

1366. 有以下程序
main()
{ char s[ ]= "abcde"; s+=2; printf("%d\n",s[0]); }
执行后的结果是()。
A.输出字符a的ASCII码
B.输出字符c的ASCII码
C.输出字符c
D.程序出错
Answer:D

1373. 以下语句中存在语法错误的是()。
A.char ss[6][20];ss[1]= "right? ";
B.char ss[][20]={ "right? "};
C.char *ss[6];ss[1]= "right? ";
D.char *ss[]={"right? "};
Answer:A

1388. 下列程序段执行后,s的值是()?
static char ch[]="600";
int a,s=0;
for(a=0;ch[a]>='0'&&ch[a]<

='9';a++)
s=10*s+ch[a]-'0';
A.600
B.6
C.0
D.出错
Answer:A

1397. 以下数组定义中不正确的是()。
A.int a[2][3];
B.int b[][3]={0,1,2,3};
C.int c[100][100]={0};
D.int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
Answer:D

1429. 以下叙述中不正确的是()。
A.在C中,函数中的自动变量可以赋初值,每调用一次,赋一次初值。
B.在C中,在调用函数时,实在参数和对应形参在类型上只需赋值兼容。
C.在C中,外部变量的隐含类别是自动存储类别。
D.在C中,函数形参可以说明为register变量。
Answer:C

1430. 下面关于运算符优先顺序的描述中正确的是()。
A.关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符
B.逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符
C.赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
D.算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
Answer:C

1431. 以下正确的描述是()。
A.continue语句的作用是结束整个循环的执行
B.只能在循环体内和switch语句体内使用break语句
C.在循环体内使用break语句或continue语句的作用相同
D.从多层循环嵌套中退出时, 只能使用goto语句
Answer:B

1432. 若有以下定义和语句:double r=99,*p=&r; *p=r;则以下正确的叙述是()。
A.以下两处的*p含义相同,都说明给指针变量p赋值
B.在“double r=99,*p=&r;”中,把r的地址赋值给了p所指的存储单元
C.语句“*p=r;”把变量r的地址值赋给指针变量p
D.语句“*p=r;”取变量r的值放回r中
Answer:B

1433. 已知 int i,a; 执行语句“i=(a=2*3,a*5),a+6;”后,变量a的值是( )。
A.6
B.12
C.30
D.36
Answer:A

1434. C语言中规定函数的返回值的类型是由( )。
A.return语句中的表达式类型所决定
B.调用该函数时的主调用函数类型所决定
C.调用该函数时系统临时决定
D.在定义该函数时所指定的函数类型所决定
Answer:D

1435. 二维数组a有m行n列,则在a[i][j]之前的元素个数为( )。
A.j*n+i
B.i*n+j
C.i*n+j-1
D.i*n+j+1
Answer:B

1436. 下列对字符串的定义中,错误的是( )。
A.char str[7] = "FORTRAN";
B.char str[] = "FORTRAN";
C.char *str = "FORTRAN";
D.char str[] = {'F','O','R','T','R','A','N',0};
Answer:A

1437. 设有声明语句:int a=1,b=0;则执行以下语句后输出() 。
switch (a)
{
case 1:
switch (b)
{
case 0: printf("**0**");break;
case 1: printf("**1**");break;
}
case 2: printf("**2**");break;
}
A.**0**
B.**0****2**
C.**0****1****2**
D.有语法错误
Answer:B

1439. 下列语句中,不正确的是( )。
A.static char a[2]={1,2};
B.static char a[2]={ '1', '2'};
C.static char a[2]={ '1', '2', '3'};
D.static char a[2]={ '1'};
Answer:C

1440. 下述对C语言字符数组的描述中错误的是( )。
A.字符数组可以存放字符串
B.字

符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
Answer:C

1441. 若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为() 。
A.*(a+j*n+i)
B.*(a+i*n+j)
C.*(*(a+i)+j)
D.*(*a+i)+j
Answer:C

1442. 下列数据中,为字符的是()。
A.'AB'
B."A"
C.How
D.'A'
Answer:D

1443. 若有定义:int b[5];则以下对b 数组元素的正确引用是()。
A.*&b[5]
B.b+2
C.*(*(b+2))
D.*(b+2)
Answer:D

1444. 设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句()。
if (x=y) printf(" x is equal to y.");
A.语法错
B.不能判断x和y是否相等
C.编译出错
D.能判断x和y是否相等
Answer:B

1445. 以下有关switch语句的正确说法是()。
A.break语句是语句中必须的一部分
B.在switch 语句中可以根据需要使用或不使用break语句
C.break语句在switch 语句中不可以使用
D.在switch 语句中的每一个case都要用break语句
Answer:B

1447. 若给出以下定义:
char x[ ]="abcdefg";
char y[ ]={'a','b','c','d','e','f','g'};
则正确的叙述为( )。
A.数组x和数组y等价
B.数组x和数组y的长度相同
C.数组x的长度大于数组y的长度
D.数组x的长度小于数组y的长度
Answer:C

1448. 若有数组定义: char array [ ]="China"; 则数组 array所占的空间为( )。
A.4个字节
B.5个字节
C.6个字节
D.7个字节
Answer:C

1449. 判断两个字符串是否相等,正确的表达方式是( )。
A.while(s1==s2)
B.while(s1=s2)
C.while(strcmp(s1,s2)==0)
D.while(strcmp(s1,s2)=0)
Answer:C

1450. 若有以下程序片段:
char str[ ]="ab\n\012\\\"";
printf("%d",strlen(str));
上面程序片段的输出结果是 ( )。
A.3
B.4
C.6
D.12
Answer:C

1451. 若有以下程序段,输出结果是( )。
char s[ ]="\\141\141abc\t";
printf ("%d\n",strlen(s));
A.9
B.12
C.13
D.14
Answer:A

1452. 以下所列的各函数首部中,正确的是()。
A.void play(var a:integer,var b:integer)
B.void play(int a,b)
C.void play(int a,int b)
D.sub play(a as integer,b as integer)
Answer:C

1453. 以下叙述正确的是()。
A.输入项可以是一个实型常量,如: scanf("%f".3.5);
B.只有格式控制,没有输入项,也能正确输入数据到内存,例如: scanf("a=%d,b=%d);
C.当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如: scanf("%4.2f",&f);
D.当输入数据时,必须指明变量地址,例如: scanf("%f",&f);
Answer:D

1266. 执行以下语句:x+=y;y=x-y;x-=y;的功能是()。
A.把x和y按从大到小排列
B.把x和y按从小到大排列
C.无确定结果
D.交换x和y中的值
Answer:D

1279. 请读程序:
main()
{ int a=1,b=2;
printf("%d\n",a=a+1,a+6,b+2);}

上面程序的输出结果是()。
A.2
B.3
C.4
D.1
Answer:A

1280. 对以下for循环,叙述正确的是()。
for(x=0,y=0;(y!=123)&&(x<4);x++,y++);
A.是无限循环
B.循环次数不定
C.执行了4次
D.执行了3次
Answer:C

1281. 若有程序段:
x=99;
while(x-2) x--;则循环结束时,x=( )。
A.99
B.2
C.1
D.0
Answer:B

1282. 下列程序段的执行结果是输出( )。
x=3;
do

printf("%2d",x--);
} while(!x);
A.3 2 1
B.3
C.2 1
D.2 1 0
Answer:B

1283. 执行下列程序后,i的值是()。
int i,x;
for(i=1,x=1;i<20; i++)
{if (x>=10) break;
if(x%2= =1)
{x+=5; continue; }
x-=3;

A.4
B.5
C.6
D.7
Answer:C

1284. 以下程序段输出结果是()。
main()
{ int k,j,s;
for(k=2;k<6;k++,k++)
{ s=1;for(j=k;j<6;j++) s+=j;}
printf(“%d\n”,s);}
A.9
B.1
C.11
D.10
Answer:D

1285. 以下叙述正确的是()。
A.do...while语句构成的循环不能用其它语句构成的循环来代替
B.do...while语句构成的循环只能用break语句退出
C.用do...while语句构成循环时,只有在while后的表达式非零时结束循环
D.用do...while语句构成循环时,只有在while后的表达式为零时结束循环
Answer:D

1286. 以下程序的输出结果是( )。
main()
{ int a, b;
for(a=1, b=1; a<=100; a++)
{ if(b>=10) break;
if (b%3= =1)
{ b+=3; continue; }
}
printf("%d\n",a);
}
A.101
B.6
C.5
D.4
Answer:D

1294. 以下程序的输出结果是()。
func(int a,int b)
{ int c;
c=a+b;
return c;}
main( )
{ int x=6,y=7,z=8,r=0;
r=func((x--,y++,x+y),z--);
printf(“%d\n”,r);}
A.11
B.20
C.21
D.31
Answer:C

1302. 对下面程序段:
#define A 3
#define B(a) ((A+1)*a)
...
x=3*(A+B(7));正确的判断是()。
A.程序错误,不许嵌套宏定义
B.程序错误,宏定义不许有参数
C.x=93
D.x=21
Answer:C

1303. 设有以下宏定义:
#define N 3
#define Y(n) ( (N+1)*n)
则执行语句:z=2 * (N+Y(5+1));后,z的值为()。
A.出错
B.42
C.48
D.54
Answer:C

1304. 8、 有以下程序
struct STU{
char name[10];
int num;
};
void f1(struct STU c)
{ struct STU b={"LiSiGuo",2042};
c=b;}
void f2(struct STU *c)
{ struct STU b={"SunDan",2044};
*c=b;
}
main( )
{ struct STU a={"YangSan",2041},b={"WangYin",2043};
f1(a);f2(&b);
printf("%d %d\n",a.num,b.num);}
执行后的输出结果是 ()。
A.2041 2044
B.2041 2043
C.2042 2044
D. 2042 2043
Answer:A

1305. 以下程序的输出结果是()。
#define M(x,y,z) x*y+z
main()
{ int a=1,b=2, c=3;
printf("%d\n", M(a+b,b+c, c+a));
}
A.19
B.17
C.15
D.12
Answer:D

1306. 有以下程序
struct stu
{ int num;
char name[10];
int age;
};
void fun(struct stu *p)
{ printf("%s\n",(*p).name); }
 

 main()
{
struct stu students[3]={{9801,"Zhang",20},
{9802,"Wang",19},
{9803,"Zhao",18} };
fun(students+2);
}
输出结果是()。
A.Zhang
B.Zhao
C.Wang
D.18
Answer:B

1314. 程序片段:在TC20中, int i=65536; printf("%d\n",i);的输出结果是()。
A.65536
B.0
C.有语法错误,无输出结果
D.-1
Answer:B

1328. 以下程序的输出结果是()。
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<3;j++)
{ if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
A.x=4
B.x=8
C.x=6
D.x=12
Answer:B

1329. 22.设有以下程序段
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
则()。
A.运行程序段后输出0
B.运行程序段后输出1
C.程序段中的控制表达式是非法的
D.程序段执行无限次
Answer:B

1330. 下面程序的输出结果为()。
main()
{ int a,b;b=(a=3*5,a*4,a*5);
printf("%d",b);
}
A.60
B.75
C.65
D.无确定值
Answer:B

1331. 下面程序的输出结果是()。
#include
#include
main()
{ char *p1="abc",*p2="ABC",str[50]= "xyz";
strcpy(str+2,strcat(p1,p2));
printf("%s\n",str);}
A.xyzabcABC
B.zabcABC
C.xyabcABC
D.yzabcABC
Answer:C

1332. 以下程序的输出结果是()。
long fun( int n)
{ long s;
if(n==1||n==2)s=2;
else s=n-fun(n-1);
return s;}
main()
{ printf("%ld\n", fun(3)); }
A.1
B.2
C.3
D.4
Answer:A

1333. 有如下程序
main()
{ char ch[2][5]={"6937","8254"},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>"\0";j+=2)
s=10*s+p[i][j]-"0";
printf("%d\n",s);}
该程序的输出结果是()。
A.69825
B.63825
C.6385
D.693825
Answer:C

1334. 以下程序的输出结果是()。
union myun
{ struct
{ int x, y, z; } u;
int k;
} a;
main()
{ a.u.x=4; a.u.y=5; a.u.z=6;
a.k=0;
printf("%d\n",a.u.x);}
A.4
B.5
C.6
D.0
Answer:D

1335. 下面的程序执行后,文件test中的内容是 ()。
void fun(char *fname,char *st)
{ FILE *myf; int i;
myf=fopen(fname,"w" );
for(i=0;st[i];i++)
fputc(st[i],myf);
fputc('\0',myf);
fclose(myf);
}
main()
{ fun("test","new world"); fun("test","hello,");}
A.hello,
B.new worldhello,
C.new world
D.hello, rld
Answer:A

1345. 有以下程序
main()
{char c1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar(); c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是()。
A.1267
B.1256
C.1278
D.1245
Answer:D

1346. 有以下程序
main()
{int y=10;
while(y--);printf("y=%d\n",y);
}
程序执行后的输出结果是()。
A.y=0
B.y=-1
C.y=1
D.

while构成无限循环
Answer:B

1347. 有以下程序
main()
{int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else d=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
程序输出()。
A.0,1,2,0
B.0,0,0,3
C.1,1,2,0
D.编译有错
Answer:D

1348. 有以下程序
main()
{int i,t[][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++) printf("%d",t[2-i][i]);
}
程序执行后的输出结果是()。
A.7 5 3
B.3 5 7
C.3 6 9
D.7 5 1
Answer:B

1349. 有以下程序
fun(char p[][10])
{int n=0,i;
for(i=0;i<7;i++)
if(p[i][0]=="T")n++;
return n;
}
main()
{char str[][10]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
printf("%d\n",fun(str));
}
程序执行后的输出结果是()。
A.1
B.2
C.3
D.0
Answer:B

1350. 有以下程序
main()
{int i,s=0,t[]={l,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf("%d\n",s);
}
程序执行后的输出结果是()。
A.45
B.20
C.25
D.36
Answer:C

1351. 有以下程序
void fun1(char *p)
{char *q;
q=p;
while(*q!='\0')
{ (*q)++; q++;
}
main()
{char a[]={"Program"}, *p;
p=&a[3];fun1(p);printf("%s\n",a);
}
程序执行后的输出
A.Prohsbn
B.Prphsbn
C.Progsbn
D.Program
Answer:A

1352. 有以下程序
void swap(char *x,char *y)
{char t;
t=*x; *x=*y; *y=t;
}
main()
{char *s1="abc",*s2="123";
swap(s1,s2);printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是()。
A.123,abc
B.abc,123
C.1bc,a23
D.321,cba
Answer:C

1353. 有以下程序
int fun(int n)
{if(n==1)return 1;
else
return(n+fun(n-1));
}
main()
{int x;
scanf("%d",&x); x=fun(x);printf("%d\n",x);
}
执行程序时,给变量X输入10,程序的输出结果是()。
A.55
B.54
C.65
D.45
Answer:A

1354. 有以下程序
int fun(int x[],int n)
{static int sum=0,i;
for(i=0;ireturn sum;
}
main()
{int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;
s=fun(a,5)+fun(b,4);printf("%d\n",s);
}
程序执行后的输出结果是()。
A.45
B.50
C.60
D.55
Answer:C

1355. 有以下程序
main()
{union
{char ch[2];
int d;
}s;
s.d=0x4321;
printf("%x,%x\n",s.ch[0],s.ch[1]);
}
在16位编译系统上,程序执行后的输出结果是()。
A.21,43
B.43,21
C.43,00
D.21,00
Answer:A

1356. 有以下程序
main()
{char *p[]={"3697","2584"};
int i,j;long num=0;
for(i=0;i<2;i++)
{j=0;
while(p[i][j]!="\0")
{if((p[i][j]-"0")%2)num=10*num+p[i][j]-"0";
j+=2;
}
}
printf("%d\n",num);
}
程序执行后的输出结果是()。
A.35
B.37
C.39
D.3975
Answer:C

1364. 有以下程序
main()
{int i;
for(i=1;

i<=40;i++)
{if(i++%5==0)
if (++i%8==0) printf("%d",i) ;}
printf("\n") ;} 执行后的输出结果是()。
A.5
B.24
C.32
D.40
Answer:C

1365. 有以下程序
fun(int x,int y){return(x+y);}
main()
{int a=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum); }
执行后的输出结果是()。
A.6
B.7
C.8
D.9
Answer:C

1367. 有以下程序
fun(int x,int y)
{static int m=0,i=2; i+=m+1;m=i+x+y; return m; }
main()
{int j=1,m=1,k;
k=fun(j,m); printf("%d,",k);
k=fun(j,m);
printf("%d\n",k);
}
执行后的输出结果
A.5,5
B.5,11
C.11,11
D.11,5
Answer:B

1368. 有以下程序
fun(int x)
{int p;
if(x==0║x==1) return(3);
p=x-fun(x-2); return p; }
main()
{ prinf("%d\n",fun(7));}
执行后的输出结果是()。
A.7
B.3
C.2
D.0
Answer:C

1369. 有以下程序
main()
{int a=1,b=3,c=5;
int *p1=&a,*p2=&b,*p=&c;
*p=*p1*(*p2);
printf("%d\n",c);
}
执行后的输出结果是()。
A.1
B.2
C.3
D.4
Answer:C

1370. 有以下程序
void change(int k[ ]){k[0]=k[5];}
main()
{int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;
while(n<=4) {change(&x[n]);n++;} for(n=0;n<5;n++) printf("%d",x[n]);printf("\n"); }
程序运行后输出的结果是()。
A.678910
B.13579
C.12345
D.62345
Answer:A

1371. 以下程序
main() {int x[3][2]={0},I;
for(I=0;I<3;I++) scanf("%d",x[i]);
printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);}
若运行时输入:246<回车>,则输出结果为()。
A.2 0 0
B.2 0 4
C.2 4 0
D.2 4 6
Answer:B

1372. 有以下程序
main()
{char s[ ]={ "aeiou"},*ps;
ps=s; printf("%c\n",*ps+4);}程序运行后的输出结果是()。
A.a
B.e
C.u
D.元素s[4]的地址
Answer:B

1374. 有以下程序
int add(int a,int b){return+b};}
main()
{int k,(*f)(),a=5,b=10;
f=add;
... }则以下函数调用语句错误的是()。
A.k=(*f)(a,b);
B.k=add(a,b);
C.k=*f(a,b);
D.k=f(a,b);
Answer:C

1375. 有以下程序
void fun2(char a, char b){printf(“%c%c”,a,b);}
char a= 'A',b= 'B';
void fun1( ){ a= 'C'; b= 'D'; }
main( )
{ fun1( ) ;
printf( “%c%c”,a,b);fun2('E', 'F'); }
程序的运行结果是()。
A.CDEF
B.ABEF
C.ABCD
D.CDAB
Answer:A

1376. 有以下程序
#define N 5
#define M N+1
#define f(x) (x*M)
main()
{int i1,i2;
i1=f(2);
i2=f(1+1);
printf(“%d %d\n”,i1,i2); }
程序的运行结果是()。
A.12 12
B.11 7
C.11 11
D.12 7
Answer:B

1377. 有以下程序
main()
{int k=5,n=0;
do
{switch(k)
{case 1: case 3:n+=1; break;
default:n=0;k--;
case 2: case4:n+=2;k--;break;}
printf(“%d”,n);
}while(k>0&&n<5);}
程序运行后的输出结果是()
A.2345
B.235
C.23456
D.2356
Answer:A

1378. 以下程序中函数f的功能是:当flag为4时,进行有小到大排序;当flag为0时,进行由大到小排序。
void f(int b[],int n,int flag)
{int i,j,t;
for(i=0;ifor (j=0;jif(flag?b[j]>b[j+1]:b[j]{t=b[j];b[j]=b[j+1];b[j+1]=t;}

}
main()
{int a[10]={5,4,3,2,1,6,7,8,9,10},I;
f(&a[2],5,,0); f(a,5,1);
for(i=0;i<10;i++) printf(“%d,”a[ i ]);}
程序运行后的输出结果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.3,4,5,6,7,2,1,8,9,10,
C.5,4,3,2,1,6,7,8,9,10,
D.10,9,8,7,6,5,4,3,2,1,
Answer:B

1380. 现有程序:
main()
{
int *ptr,*p[5],i;
if((ptr=malloc(100*sizeof(int)))!=NULL)
{
p[0]=ptr;
for(i=1;i<5;i++)
p[i]=p[i-1]+7;
for(i=0;i<100;i++)
*ptr++=i;
for(i=0;i<5;i++)
printf("%3d",*p[i]);
}
}
其输出结果是()。
A.1 7 14 27 28
B.0 7 14 22 28
C.0 7 13 22 28
D.0 7 14 21 28
Answer:D

1381. 请读程序:
main()
{ static int a[]={1,2,3,4,5,6}
int *p;
int i;
p=a;
*(p+3)+=2;
printf("n1=%d,n2=%d\n:",*p,*(p+3));
}
其输出是( )。
A.n1=1;n2=5
B.n1=2,n2=6
C.n1=1
n2=7
D.n1=1,n2=6
Answer:D

1382. 下面的C程序完成的功能是()。
#define SIZE 5
void func(int data[SIZE]);
main()
{
int i,buf[SIZE];
printf("Please input %d numbers:",SIZE);
for(i=0;iscanf("%d",&buf[i]);
func(buf);
for(i=0;iprintf("%5d",buf[i]);
}
void func(int data[SIZE])
{
int i,j,d;
for(i=0;ifor(j=0;jif(data[j]>data[j+1])
{
d=data[j];
data[j]=data[j+1];
data[j+1]=d; }
}

A.对一维数组降序排序
B.对一维数组升序排序
C.对一维数组逆向排序
D.对一维数组顺序排序
Answer:B

1383. 下面程序输出数组中的最大值,由s指针指向该元素.
main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;
flr(p=a, s=a; p-a<10; p++)
if(_________)s=p;
printf("The max:%d",*s):
}
则在if语句中的判断表达式应该是()。
A.p>s
B.*p>*s
C.a[p]>a[s]
D.p-a>p-
Answer:B

1384. 下列程序段输出结果是()。
a=1;b=10;
do{
b-=a;
a++;
}while(b--<0);
printf("a,b=%d,%d",a,b);
A.a,b=7,5
B.a,b=2,8
C.a,b=2,2
D.a,b=8,2
Answer:B

1385. main()
{ int x=3,i;
for(i=0;i<3;i++) printf("%d",f(x));
}
int f(int a)
{ int b=0;
static c=3;
b++;c++;
return(a+b+c);
}
执行此程序后屏幕上显示的结果是()。
A.8 10 10
B.7 9 10
C.8 9 11
D.8 9 10
Answer:D

1386. 请读程序:
main()
{ char *p;
char s[80];
scanf("%s",s);
p=s[0];
printf("%s",p);
}
请判断上面程序选出正确答案是()。
A.错误:p=s[0];
正确:p=*s;
B.错误:p=s[0];
正确:p=s[];
C.错误:p=s[0];
正确:p=s;
D.错误:p=s[0];
正确:p=&s;
Answer:C

1387. 对于用"r"方式打开文件下列说法正确的是()。
A.用"r"方式打开的文件只输入不能输出
B.用"r"方式打开的文件只能输出,不能输入
C.用"r"方式可以打开任何文件
D.以上均不对
Answer:A

1389. 以下程序调用findmax函数返回数组中的最大值
findmax(int *a,int n)
{ int *p,*s;
for(p=a,s=a; p-a
if (______) s=p;
ret

urn(*s);
}
main()
{ int x[5]={12,21,13,6,18};
printf("%d\n",findmax(x,5));
}
在下划线处应填入的是()。
A.p>s
B.*p>*s
C.a[p]>a[s]
D.p-a>p-s
Answer:B

1390. 有以下程序
main()
{ int i, j;
for(j=10;j<11;j++)
{ for(i=9;i<=j-1;i++)printf("%d",j);
}
}
输出结果是()。
A.11
B.10
C.9
D.10 11
Answer:B

1391. 有以下程序
main()
{ char a[]="programming", b[]="language";
char *p1,*p2;
int i;
p1=a; p2=b;
for(i=0;i<7;i++)
if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i));
}
输出结果是()。
A.gm
B.rg
C.or
D.ga
Answer:D

1392. 有以下程序
int fun(int x,int y,int *cp,int *dp)
{ *cp=x+y; *dp=x-y; }
main()
{ int a, b, c, d;
a=30; b=50;
fun(a,b,&c,&d);
printf("%d,%d\n", c, d);
}
输出结果是()。
A.50,30
B.30,50
C.80,-20
D.80,20
Answer:C

1393. 有以下程序
#include "stdio.h"
main()
{ int a,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
输出结果是()。
A.2,1
B.3,2
C.4,3
D.2,-1
Answer:A

1394. 有以下程序
#include "stdio.h"
int abc(int u,intv);
main ()
{ int a=24,b=16,c;
c=abc(a,b);
printf('%d\n",c);
}
int abc(int u,int v)
{ int w;
while(v)
{ w=u%v; u=v; v=w }
return u;
}
输出结果是()。
A.6
B.7
C.8
D.9
Answer:C

1395. 阅读下面的程序,运行结果是()。
main()
{
char *str="ABCabcd";
bubble(str,5);
printf("\n%s",str);
}

bubble(str,count)
char *str;
int count;
{
int i,j=count;
char tmp;
while(j-->1)
for(i=0;iif(str[i]{
tmp=str[i];
str[i]=str[i+1];
str[i+1]=tmp;
}
}
A.bacdCBA
B.baCBAcd
C.cdbaCBA
D.bCBAacd
Answer:B

1396. 阅读下列程序:
main( )
{ int n[3],i,j,k;
for(i=0;i〈3;i++〉 n[i]=0;
k=2;
for (i=0;i〈k;i++〉
for (j=0;j〈k;j++〉 n[j]=n[i]+1;
printf("%d\n",n[1]); }
程序运行后输出结果是()。
A.2
B.1
C.0
D.3
Answer:D

1398. 在以下定义中,标识符p( )。
int (*p)[3];
A.定义不合法
B.是一个指针数组名,每个元素是一个指向整数变量的指针
C.是一个指针,它指向一个具有三个元素的一维数组
D.是一个指向整型变量的指针
Answer:C

1399. 在C语言中,如果下面的变量都是int类型,则输出的结果是( )。
sum=5,p=5;p=sum++,p++,++p;
printf("%d\n",p);
A.7
B.6
C.5
D.4
Answer:A

1400. 有以下程序段
main()
{ union
{ int k;
char i[2];
} *s,a;
s=&a;
s->i[0]=0x39; s->i[1]=0x38;
printf("%x\n",s->k);
}
输出结果是()。
A.3839
B.3938
C.380039
D.390038
Answer:A

1401. 下列函数的功能是
fun(char * a,char * b)
{ while((*b=*a)!='\0') {a++,b++;} }
A.将a所指字符串赋给b所指空间
B.使指针b指向a所指字符串
C.将a所指字符串和b所指字符串进行比较
D.检查a和b所指字符串中是否有'\0'
Answer:A

1402. 有语句char str1[10],str2[10]={"china"};则能将字符串c

hina赋给数组str1的正确语句是( )。
A.str1={"china"};
B.strcpy(str1,str2);
C.str1=str2;
D.strcpy(str2,str1);
Answer:B

1403. 以下程序运行后,输出结果是 ()。
fut (int **s,int p[2][3])
{ **s=p[1][1];)
main()
{ int a[2][3]={1,3,5,7,9,11},*p;
p=(int *)malloc(sizeof(int));
fut (&p,a);
printf("%d\n",*p);
}
A.1
B.7
C.9
D.11
Answer:C

1404. 以下对结构体类型变量的定义中,不正确的是()。
A.typedef struct aa
{ int n; AA
float m;
}AA;
B.#define AA struct aa
{int n;
float m;
}td1;
AA td1;
C.struct
{ int n;
float m;
}aa;
stuct aa td1;
D.struct
{ int n;
float m;
}td1;
Answer:C

1405. 有如下定义
struct person{char name[9]; int age;};
strict person class[10]={"Johu", 17,
"Paul", 19
"Mary", 18,
"Adam 16,};
根据上述定义,能输出字母M的语句是()。
A.prinft("%c\n",class[3].mane);
B.pfintf("%c\n",class[3].name[1]);
C.prinft("%c\n",class[2].name[1]);
D.printf("%^c\n",class[2].name[0]);
Answer:D

1406. 以下程序的输出结果是()。
struct HAR
{ int x, y; struct HAR *p;} h[2];
main()
{h[0].x=1;h[0].y=2;
h[1].x=3;h[1].y=4;
h[0].p=&h[1];h[1].p=h;
printf("%d %d \n",(h[0].p)->x,(h[1].p)->y);}
A.1 2
B.2 3
C.1 4
D.3 2
Answer:D

1407. 以下程序的输出是()。
struct st
{ int x; int *y;} *p;
int dt[4]={ 10,20,30,40 };
struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};
main()
{ p=aa;
printf("%d\n",++(p->x));
}
A.10
B.11
C.51
D.60
Answer:C

1408. 已知字符0的ASCII码为十六进制的30,下面程序的输出是()。
main()
{ union { unsigned char c;
unsigned int i[4];
} z;
z.i[0]=0x39;
z.i[1]=0x36;
printf("%c\n",z.c);}
A.6
B.9
C.0
D.3
Answer:B

1409. 以数据块为单位对数据进行整体 读写时如果ptr是指向内存中数据块的首地址,fp是文件指针,那么数据块中每个数据项的大小为( )。
A.sizeof(*ptr)

B.*ptr

C.sizeof(ptr)


D.sizeof(*fp)
Answer:A

1410. 写出下列程序段运行结果()。
unsigned int a=3,b=10;
printf("%d\n",a<<2|b==1);
A.
13
B.12
C.8
D.14
Answer:B

1411. 下列程序的输出结果是()。
int b=2;
int func(int *a)
{ b += *a; return(b);}
main()
{ int a=2, res=2;
res += func(&a);
printf("%d \n",res);
}
A.4
B.6
C.8
D.10
Answer:B

1412. 下列程序的输出结果是()。
struct abc
{ int a, b, c; };
main()
{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;
t=s[0].a+s[1].b;
printf("%d \n",t);
}
A.5
B.6
C.7
D.8
Answer:B

1413. 下列程序的输出结果是()。
main()
{ char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf("%d",*--p);
}
A.非法
B.a[4]的地址
C.5
D.3
Answer:C

1414. 下列程序的运行结果是()。
void fun(int *a, int *b)
{ int *k;
k=a; a=b; b=k;
}
main()
{ int a=3, b=6, *x=&a, *y=&b;
fun(x,y);
printf("%d %d", a, b);
}
A.6 3
B.3 6
C.编译出错
D.0 0
Answer:B

1415.

下列程序执行后的输出结果是()。
main()
{ char x=0xFFFF; printf("%d \n",x--); }
A.-32767
B.FFFE
C.-1
D.-32768
Answer:C

1416. 下面程序的输出结果为()。
struct st
{ int x;
int *y;
} *p;
int dt[4]={10,20,30,40};
struct st aa[4]={ 50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3] };
main()
{ p=aa;
printf("%d\n", ++p->x );
printf("%d\n", (++p)->x);
printf("%d\n", ++( *p->y));
}
A.10

20

20
B.50

20

20
C.51

60

21
D.60

70

31
Answer:C

1417. 设有说明int(*ptr)[m];其中的标识符ptr是( )。
A.M个指向整型变量的指针
B.指向M个整型变量的函数指针
C.一个指向具有M个整型元素的一维数组的指针
D.具有M个指针元素的一维指针数组,每个元素都只能指向整型量
Answer:C

1418. 设有如下函数定义:
int f(char *s)
{ char *p=s;
while(*p!='\0') p++;
return(p-s); }
如果在主程序中用下面的语句调用上述函数,则输出结果为()。
printf("%d\n",f("goodbey!"));
A.3
B.6
C.8
D.0
Answer:C

1419. 设有如下枚举类型定义:
enum language { Basic=3,Assembly,Ada=100,COBOL,Fortran};
枚举量Fortran的值为()。
A.4
B.7
C.102
D.103
Answer:C

1420. 设有如下定义:
int (*ptr)();
则以下叙述中正确的是()。
A.ptr是指向一维组数的指针变量

B.ptr是指向int型数据的指针变量

C.ptr是指向函数的指针,该函数返回一个int型数据

D.ptr是一个函数名,该函数的返回值是指向int型数据的指针
Answer:C

1421. 设有如下定义:

struct sk
{int a;float b;}data,*p;
若有p=&data;,则对data中的a域的正确引用是()。
A.(*p).data.a
B.(*p).a
C.p->data.a
D.p.data.a
Answer:B

1422. 设ch是char型变量,其值为A,且有下面的表达式:
ch=(ch>='A'&&ch<='Z')?(ch+32):ch 的值是()。
A.A
B.a
C.Z
D.z
Answer:B

1423. 设a=3,b=2,则表达式a^b>>2的值的二进制表示为()。

A.00000011
B.00000110
C.00000100
D.10
Answer:A

1424. 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为()。
A.不定值
B.4
C.3
D.1
Answer:C

1425. 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是()。
A.
k=*p1+*p2;
B.p2=k;
C.p1=p2;
D.k=*p1 * (*p2);
Answer:B

1426. 设x的值为4,则表达式y=(++x)+(++x)+(++x)后,y的值是( )。
A.12
B.18
C.16
D.21
Answer:D

1427. 设一整型(int)变量占用2个字节则下述共同体变量x所占用内存字节数为()。
union exp
{ int i;
float j;
double k;
}x;
A.14个
B.7个

C.8个
D. 随机而定
Answer:C

1428. 设有如下程序:
#include
main()
{ int **k, *j, i=100;
j=&i; k=&j;
printf("%d\n", **k);
}
上面程序的输出结果是()。
A.运行错误
B.100
C.i的地址
D.j的地址
Answer:B

1438. 若int x;且有下面

的程序片断,则输出结果是() 。
for (x=3; x<6; x++)
{
printf((x%2) ? "##%d" : "**%d\n", x);
}
A.##3
**4
##5
B.**3
##4
**5
C.**3
##4**5
D.##3**4
##5
Answer:D


相关文档
相关文档 最新文档