二级C语言175.docx
- 文档编号:12397223
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:19
- 大小:20.02KB
二级C语言175.docx
《二级C语言175.docx》由会员分享,可在线阅读,更多相关《二级C语言175.docx(19页珍藏版)》请在冰点文库上搜索。
二级C语言175
二级C语言-175
(总分:
100.00,做题时间:
90分钟)
一、选择题(总题数:
48,分数:
100.00)
1.C语言的编译系统对宏命令的处理是______。
(分数:
2.00)
A.在系统对源程序进行编译前 √
B.和其他语句的编译同时进行
C.在程序连接时进行
D.在程序运行时进行
解析:
2.以下叙述中不正确的是______。
(分数:
2.00)
A.预处理命令行都必须以“#”号开始,结尾不加分号
B.在程序中凡是以“#”号开始的语句行都是预处理命令行
C.C程序在执行过程中对预处理命令进行处理 √
D.预处理命令可以放在程序中的任何位置
解析:
3.下面描述中正确的是______。
(分数:
2.00)
A.C语言中预处理是指完成宏替换和文件包含指定的文件的调用
B.预处理指令只能位于C源程序文件的首部
C.预处理命令可以放在程序中的任何位置 √
D.预处理命令结尾需要加分号
解析:
4.以下有关宏替换的叙述不正确的是______。
(分数:
2.00)
A.使用宏定义可以嵌套
B.宏定义仅仅是符号替换
C.双引号中出现的宏名不替换
D.宏名必须用大写字母表示 √
解析:
5.#define能做简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为______。
(分数:
2.00)
A.#definef(x)5*x*x+5*x+5
B.#definef5*x*x+5*x+5
C.#definef(a)(5*a*a十5*a+5) √
D.#define(5*x*x+5*x+5)f(x)
解析:
6.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用尖括号(<>)括起时,寻找被包含文件的方式是______。
(分数:
2.00)
A.仅仅搜索当前目录
B.仅仅搜索源程序所在目录
C.在标准目录下查找指定文件 √
D.先在源程序所在目录搜索,如没找到,再按系统指定的标准目录查找
解析:
7.下述程序段中,不能正确赋值的是______。
(分数:
2.00)
A.char*p,ch;p=&ch;scanf("%c",&p);
B.char*p;p=(char*)malloc
(1);scanf("%c",p);
C.chai*p;*p=getchar(); √
D.char*p,ch;p=&ch;*p=getchar0;
解析:
8.在“文件包含”预处理语句的使用形式中,N#include后面的文件名用双引号("")括起时,寻找被包含文件的方式是______。
(分数:
2.00)
A.仅仅搜索当前目录
B.仅仅搜索源程序所在目录
C.在标准目录下查找指定文件
D.先在源程序所在目录搜索,如没找到,再按系统指定的标准目录查找 √
解析:
9.以下叙述中不正确的是______。
(分数:
2.00)
A.预处理命令行都必须以“#”号开始,结尾不加分号
B.在程序中凡是以“#”号开始的语句行都是预处理命令行
C.C程序在执行过程中对预处理命令进行处理 √
D.预处理命令可以放在程序中的任何位置
解析:
10.若有宏定义“#definemax(a,b)(a>b?
a:
b)”,则表达式“max(2,max(3,1))”的值是______。
(分数:
2.00)
A.3 √
B.4
C.5
D.6
解析:
11.以下程序运行时输出结果为______。
intx=1;
main()
{printf("%d",f(x));}
#definex2
intf(inty)
{returnx+y;}
(分数:
2.00)
A.1
B.2
C.3 √
D.4
解析:
12.以下程序运行时输出结果是______。
#defineEVEN(x)x%2==0?
1:
0
main()
{if(EVEN(5+1))printf("Even");
elseprintf("Odd");
}
(分数:
2.00)
A.Even
B.Odd √
C.45
D.EVEN
解析:
13.以下程序运行时输出结果是______。
#defineUP2
#defineDN(2+UP)
#defineNIDN/2
main()
{printf("%d",((UP+DN)*NI)/2);}
(分数:
2.00)
A.5
B.2
C.8
D.6 √
解析:
14.以下程序输出结果为______。
#include<stdio.h>
#defineADD(x,y)x+y
main()
{inta=15,b=10,c=20,d=5;
printf("%d/n",ADD(a,b)/ADD(c,d));
}
(分数:
2.00)
A.34
B.20 √
C.80
D.65
解析:
15.以下程序的运行结果为______。
#defineA(x,y)x*y-x+y
main()
{inta=3,b=1,x,y;
x=A(a,b);y=A(a+b,a-b);
printf("%d,%d/n",x,y);
}
(分数:
2.00)
A.1,5 √
B.2,9
C.0,0
D.6,5
解析:
16.以下程序的运行结果为______。
#defineA(x,y)x*y-x/y
main()
{inta=5,b=2,y;
y=A(a+b,a-b);
printf("%d/n",y);
}
(分数:
2.00)
A.6 √
B.7
C.8
D.9
解析:
17.有如下程序:
#defineN2
#defineMN+1
#defineNUM2*M+1
main()
{inti;
for(i=1;i<=NUM;i++)printf("%d/n",i);}
该程序中的for循环执行的次数是______。
(分数:
2.00)
A.5
B.6 √
C.7
D.8
解析:
18.若有宏定义“#definemax(a,b)(a>b?
a:
b)”,则表达式“max(2,max(3,1))”的值是______。
(分数:
2.00)
A.1
B.2
C.3 √
D.4
解析:
19.以下程序的执行结果是______。
#definef(x)x*x
main()
{inti;
i=f(4+4)/f(2+2);
printf("%d/n",i);
}
(分数:
2.00)
A.4
B.28 √
C.11
D.8
解析:
20.以下程序运行后,输出结果是______。
#definePT5.5
#defines(x)PT*x*x
main()
{inta=1,b=2;printf("%4.1f/n",S(a+b));}
(分数:
2.00)
A.49.5
B.9.5 √
C.22.0
D.45.0
解析:
21.若有以下宏定义:
#defineN2
#defineY(n)((N+1)*n)
则执行语句“z=2*(N+Y(5));”后的结果是______。
(分数:
2.00)
A.语句有错误
B.Z无定值
C.z=70
D.z=34 √
解析:
22.以下程序运行后的输出结果是______。
#defineS(x)4*x*x+1
main()
{inti=6,j=8;
printf("%d/n",s(i+j));
}
(分数:
2.00)
A.40
B.201
C.202
D.81 √
解析:
23.有以下程序:
#include<stdio.h>
#include<stdlib.h>
intfun(intn)
{int*p;
p=(int*)malloc(sizeof(int));
*p=n;return*p;
}
main()
{inta;
a=fun(10);printf("%d/n",a+fun(10));
}
程序的运行结果是______。
(分数:
2.00)
A.0
B.10
C.20 √
D.出错
解析:
24.若要使指针p指向一个double类型的动态存储单元,则在空白处应填入的正确内容是______。
p=______malloc(sizeof(double));
(分数:
2.00)
A.(*)
B.(double*)
C.空着 √
D.double
解析:
25.动态分配一整型数据长度的空间,使指针p指向该存储空间,则下列空缺处应填入的正确语句是______。
int*p;
P=______malloc(sizeof(int));
(分数:
2.00)
A.int
B.int*
C.(*int)
D.(int*) √
解析:
26.以下程序的输出结果是______。
#include<stdio.h>
#defineF(x)2.84+x
#definew(y)printf("%d",(int)(y))
#defineP(y)w(y)
main()
{intx=2;
P(F(5)*x);
}
(分数:
2.00)
A.12 √
B.13
C.14
D.16
解析:
27.当用“#defineF37.5f”定义后,下列叙述正确的是______。
(分数:
2.00)
A.F是float型数
B.F是char型数
C.F无类型
D.F是字符串 √
解析:
28.以下说法正确的是______。
(分数:
2.00)
A.宏定义是C语句,要在行末加分号
B.可以使用#undefine提前结束宏名的使用 √
C.在进行宏定义时,宏定义不能嵌套
D.双引号中出现的宏名也要进行替换
解析:
29.以下程序的运行结果为______。
#defineMIN(x,y)(x)<(y)?
(x):
(y)
main()
{inta=0,b=3,c=1,d=3,X;
X=MIN(c+d,a+b)*100;
printf("%d/n",X);
}
(分数:
2.00)
A.300 √
B.4
C.3
D.400
解析:
30.下面程序的运行结果是______。
#include<stdio.h>
#include<string.h>
main()
{char*s1="abDuj";
char*s2="ABdUG";
intt;
t=strcmp(s1,s2);
printf("%d",t);
}
(分数:
2.00)
A.正数 √
B.负数
C..零
D.不确定的值
解析:
31.设已执行预编译命令#include<string.h>,以下程序段的输出结果是______。
chars[]="abcdefg";
printf("%d/n",strlen(s));
(分数:
2.00)
A.7 √
B.8
C.9
D.10
解析:
32.在C语言中,变量的隐含存储类别是______。
(分数:
2.00)
A.auto √
B.static
C.extern
D.无存储类别
解析:
33.下列4个程序中,完全正确的是______。
(分数:
2.00)
A.④和③
B.④和② √
C.④和①
D.③和②
解析:
34.定义以下结构体(联合)数组:
{charname[15];
intage;
}a[10]={"ZHAO",14,"WANG",15,"LIU",16,"ZHANG",17};
执行语句printf("%d,%c",a[2].age,*(a[31.name+2))的输出结果为______。
(分数:
2.00)
A.15,A
B.16,H
C.16,A √
D.17,H
解析:
35.以下程序的输出结果是______。
#include<stdjo.h>
structst
{intx;int*y;}*p;
intdt[4]={1,2,3,4);
structstaa[41={2,&dt[0],3,&dt[0],4,&dt[0],5,&dt[0],};
main()
{p=aa;
printf("%d/n",++(p->x));
}
(分数:
2.00)
A.1
B.2
C.3 √
D.4
解析:
36.根据下面的定义,能打印出字母P的语句是______。
structstu{charname[10];
intage;
};
structstus[10]={"John",11,
"Paul",12,
"Mary",11,
"adam",12
};
(分数:
2.00)
A.printf("%c",s[3].name);
B.printf("%c",s[3].name[1]);
C.printf("%c",s[2].name[1]);
D.printf("%c",s[1].name[0]); √
解析:
37.已知有结构体:
structsk
{inta;
floatb;
}data,*p;
若有p=&data,则对data的成员a的正确引用是______。
(分数:
2.00)
A.(*p).data.a
B.(*p).a; √
C.p->data.a
D.data.a
解析:
38.在以下程序段中,已知int型数据占两个字节,则输出结果是______。
unionun
{inta;
doubleb;
}
structst
{chara[5];
unionunx;
};
pfintf(”%d",sizeof(structsc));
(分数:
2.00)
A.8
B.13 √
C.9
D.12
解析:
39.下面程序的输出结果是______。
typedefunion{longx[1];
inty[4];
charz[10];
}M;
Mt;
main()
{printf("%d/n",sizeof(t));
}
(分数:
2.00)
A.32
B.26
C.10 √
D.4
解析:
40.下列程序的输出结果是______。
#include"stdio.h"
main()
{structst
{inty,x,z;
};
union
{longi;
intj;
chark;
}un;
printf("%d,%d/n",sizeof(structst),sizeof(un));
}
(分数:
2.00)
A.6,2
B.6,4 √
C.8,4
D.8,6
解析:
41.设有以下说明,则不正确的叙述是______。
unionun
{inta;
charb;
floatc;
}arr;
(分数:
2.00)
A.arr所占的内存长度等于成员c的长度
B.arr的地址和它的各成员的地址都是同一地址
C.arr可以作为函数参数 √
D.不能在定义arr时对它初始化
解析:
42.设定义以下结构体,结构体变量p的出生年份赋值正确的语句是______。
structst
{intx;
inty;
intz;
};
structworker
{charname[20];
charsex;
structstbirth;
)p;
(分数:
2.00)
A.x=1987
B.birth.x=1987;
C.birth.x=1987; √
D.x=1987;
解析:
43.若有以下说明和语句,已知int型数据占两个字节,则以下语句的输出结果是______。
structst
{chara[15];
intb;
doublec;
};
printf("%d",sizeof(structst));
(分数:
2.00)
A.15
B.8
C.25 √
D.2
解析:
44.以下程序的运行结果是______。
#include<stdio.h>
main()
{structdate
{intyear,month,day;
}today;
printf("%d/n",sizeof(structdate));
}
(分数:
2.00)
A.8
B.6 √
C.10
D.12
解析:
45.有下列程序段:
typedefstructNODE
{intnum;structNODE*next;
}OLD;
下列叙述中正确的是______。
(分数:
3.00)
A.以上的说明形式非法
B.NODE是一个结构体类型
C.OLD是一个结构体类型 √
D.OLD是一个结构体变量
解析:
46.已知有结构类型定义:
typedefstructex{longinthum;charsex;structex*next;)student;
下列叙述错误的是______。
(分数:
3.00)
A.structex是结构类型
B.student是结构类型的变量名 √
C.ex可缺省
D.student不可缺省
解析:
47.以下所列对结构类型变量tdl的声明中错误的是______。
(分数:
3.00)
A.typedefstructaa{intn;floatm;}AA;
B.#defineAAstructaaAA{intn;floatm;)tdl;AAtdl;
C.struct{intn;floatm;)aa; √
D.struct{intn;floatm;}tdl;structaatdl;
解析:
48.设有以下说明语句:
structstu
{inta;
floatb;
}stutype;
则以下叙述错误的是______。
(分数:
3.00)
A.struct是结构类型关键字
B.structstu是用户定义的结构类型
C.stutype是用户定义的结构类型 √
D.a、b都是结构成员名
解析:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 175