江苏省计算机等级考试二级c语言笔试辅导实用教案_第1页
江苏省计算机等级考试二级c语言笔试辅导实用教案_第2页
江苏省计算机等级考试二级c语言笔试辅导实用教案_第3页
江苏省计算机等级考试二级c语言笔试辅导实用教案_第4页
江苏省计算机等级考试二级c语言笔试辅导实用教案_第5页
已阅读5页,还剩151页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1笔试(bsh)概况 考试时间:2小时 合格、优秀成绩(chngj)要求 内容题型及分值 信息技术 选择题(20分) C语言 选择题(10分) 填空题(30分):简单填空(5分) 阅读程序(13分) 完善程序(12分) 答题策略第1页/共155页第一页,共156页。2语法考试要求及考题(ko t)解析(2007秋2010春)1. C语言基本概念 源程序格式、风格和结构。main函数特性。C程序保存(bocn)。 注释位置。【考题解析】填空题在一个C语言源程序中,必不可少的是 。答案: main函数定义单选题.以下叙述中正确的是 。 A在编译时可以发现注释中的拼写错误BC语言程序的每一行只能写一

2、条语句Cmain( ) 必须位于程序的开始DC语言程序可以由一个或多个函数组成 答案:D第2页/共155页第二页,共156页。3 单选题 在一个源程序中main函数的位置 。 A必须在最开始 B必须在最后 C必须在预处理命令的后面(hu mian) D可以在其他函数之前或之后答案:D单选题 下列叙述中正确的是 。 A. main函数必须出现在其他函数之前B. main函数中至少必须有一条语句C. C程序总是从main函数的第一条语句开始执行D. C程序总是在执行完main函数的最后一条语句后结束答案: C 第3页/共155页第三页,共156页。4单选题 以下叙述中正确的是 。A. C语言系统以

3、函数为单位编译源程序B. main函数必须(bx)放在程序开始C. 用户定义的函数可以被一个或多个函数调用任意多次D. 在一个函数体内可以定义另外一个函数答案:C全国选择题 以下叙述中正确的是()。 A ) C 语 言 程 序 将 从 源 程 序 中 第 一 个 函 数 开 始 执 行B) 可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行 C) C语言规定必须(bx)用main作为主函数名,程序将从此开始执行,在此结束 D) main可作为用户标识符,用以命名任意一个函数作为主函数答案:C 第4页/共155页第四页,共156页。5全国选择题 以下叙述中正确的是 ( ) 。A)

4、C程序中的注释只能出现在程序的开始位置和语句的后面(hu mian)。B) C程序书写格式严格,要求一行内只能写一个语句C) C程序书写格式自由,一个语句可以写在多行上D) 用C语言编写的程序只能放在一个程序文件中答案:C全国选择题 以下叙述中正确的是( )。 A)C程序的基本组成单位是语句 B)C程序中的每一行只能写一条语句C)简单C语句必须以分号结束 D)C语句必须在一行内写完答案:C第5页/共155页第五页,共156页。6 基本类型数据的表示及使用 系统预定义(dngy)类型标识符、类型修饰符的使用 基本类型常量的表示及使用 字符串常量形式 关键字。标识符。 符号常量的定义(dngy)与

5、使用 基本类型变量的声明、初始化, 直接引用变量【考题解析】单选题 在C语言源程序中,不带任何修饰符的浮点数直接量(例如:3.14)都是按 类型数据存储的。 答案: double单选题已知sizeof(int)的值为2,为将10!的值存储到变量f中(10!=3628800),变量f的类型应声明为 。Along int Bint Cshort int Dunsigned int答案:A 第6页/共155页第六页,共156页。7单选题 以下(yxi)常量表示中正确的是 (22) 。 A. xff B.5L C. aEb D. 3.14U 答案:B单选题 以下(yxi)语句中有语法错误的是 。A.

6、printf(%d,0e); B. printf(%f,0e2); C. printf(%d,0 x2); D. printf(%s,0 x2); 答案:A第7页/共155页第七页,共156页。8单选题以下选项中不能用作变量名的是 。 A _ f l o a t B s w i t c h C s u m D_123 答案: B 填空题在C语言系统中,如果一个(y )变量能正确存储的数据范围为整数-3276832767,则该变量在内存中占 (3) 个字节。答案: 2 单选题以下选项中,不能用作标识符的是 。print B. FOR C. &a D. _00答案:C单选题 以下选项中,

7、是C语言关键字。 A printf Binclude Cfun Ddefault答案:D学校单选题 执行语句“printf(”byebye101101“);”时输出到屏幕的结果为 (22) 。 答案: byye101A 第8页/共155页第八页,共156页。9学校单选题 表达式“1e-8/2+1.0f”值的数据类型是 (3) 。int B. long C. float D. double 答案(d n):D学校单选题以下局部变量声明中正确的是 (2) 。 A. int char=2; B. void a=0; C. int a=b=0; D. int a, b=a=0; 答案(d n):D第9

8、页/共155页第九页,共156页。10 运算符和表达式的表示及使用 赋值表达式,赋值运算符的左值要求 算术表达式。+、-运算符左值要求。溢出。 关系(gun x)表达式与逻辑表达式,逻辑表达式优化处理 逗号表达式 条件表达式 表达式运算中操作数类型自动转换与强制转换【考题解析】 单选题 若有声明“double x=3,c,*a=&x,*b=&c;”,则下列语句中错误的是 。 Aa=b=0; Ba=&c,b=a; C&a=&b; D*b=*a;答案:C第10页/共155页第十页,共156页。11单选题 若有声明“char ss8=“Red”;”,则size

9、of(ss)的值是 。 A8 B4 C3 D1 答案: A 单选题 设有定义和声明如下: #define d 2int x=5; float y=3.83; char c=d;以下表达式中有语法错误的是 。 x+ B. y+ C. c+ D. d+ 答案: D单选题 数学式 在C程序(chngx)中正确的表示形式为 。 Asqrt(a)/2*b Bsqrt(a)/2/b Csqrt(a)/2b Dsqrt a/(2*b)答案: B ba2第11页/共155页第十一页,共156页。12单选题 已知有声明“long x,y;”且x中整数的十进制表示有n位数字(4n10),若要求去掉整数x十进制表示

10、中的最高位,用剩下的数字组成一个新的整数并保存(bocn)到y中,则以下表达式中能正确实现这一功能的是 。A. y=x/(10*(n-1) B. y=x%(10*(n-1)C. y=x%(long)pow(10,n-1) D. y=x%(10(n-1)答案:C填空题 若有声明“double x=10,y=5;”,则计算xy的库函数调用形式是 。答案: pow(x,y) 或 pow(10,5)填空题 若有声明“int x;”且sizeof(x)的值为2,则当x值为 时“x+1x”为假。答案: 32767第12页/共155页第十二页,共156页。13填空题 若有声明“float y=3.14619

11、;int x;”,则计算表达式“x=y*100+0.5, y=x/100.0”后y的值是 。答案(d n): 3.15 单选题 已知有声明“int a=3,b=4,c;”,则执行语句“c=1/2*(a+b);”后,c的值为 。 A. 0 B. 3 C. 3.5 D. 4 答案(d n):A填空题 若有声明“int a=5,b=2;”,则表达式“b+=(float)(a+b)/2”运算后b的值为 。答案(d n):5填空题 已知有声明“char ch=g;”,则表达式ch= ch-a+A的值为字符 的编码。答案(d n):G 第13页/共155页第十三页,共156页。14单选题 已有声明“int

12、 a=3,b=3,c=2;”,以下选项中值为0的表达式是 。 !a&!b&c B. !a|!b|c C. a=b&b=c D. a=b&bc 答案: A 单选题 已知有声明“int a=3,b=4,c=5; ”,以下表达式中值为0的是 。a&b B. ay=2 .zyx. xy=1.x=(x=0,y=1,z=2)答案:A第14页/共155页第十四页,共156页。15填空题 数学式 对应(duyng)的C语言表达式为 。答案:sqrt(fabs(x)!=4*a/(b*c) 或 sqrt(fabs(x)!=4*a/b/c 单选题 已知有声明“int a=12

13、,b=15,c;”,则执行表达式“c=(a|(b-=a)”后,变量b和c的值分别为 。A3.1 B15,12 C15,1 D3,12答案: C 填空题 数学式 所对应(duyng)的C语言表达式为pow(x, )。答案:1.0/3填空题 若有声明“int a=15,b=20,c=25,e;”,则执行语句“e=ab? -c :+c;”后变量e的值是 。答案: 26bcax43x第15页/共155页第十五页,共156页。16单选题 以下(yxi)选项中,不能表示函数 功能的表达式是 。A. s=(x0)?1:(x0)?-1:0 B. s=x0?1:0)C. s=x0?1:x=0?0:-1答案: C

14、单选题 若有程序段“char c=256; int a=c;”,则执行该程序段后a的值是 。256 B. 65536 C. 0 D. -1答案: C010001)(xxxxsign第16页/共155页第十六页,共156页。17填空题 设有声明“int a=3, b=4; float x=4.5, y=3.5;”,则表达式“(float)(a+b)/2+(int)x%(int)y”的值是 。答案: 4.5 3.5+4%3=4.5* 填 空 题 若 有 声 明 “ i n t r = 2 ; ” , 则 执 行 语 句“printf(”%d“,sizeof(2*3.14*r);”时输出 。答案:8

15、单选题 已知有声明“int n; float x,y;”,则执行语句“y=n=x=3.89;”后,y的值为 。3 B. 3.0 C. 3.89 D. 4.0答案:B x=3.89,n=3,y=3.0单选题 已知有声明“int a=3,b=4;”,下列表达式中合法(hf)的是 。 A. a+b=7 B. a=|b| C. a=b=0 D. (a+)+ 答案:C学校单选题 已知有声明“int a=1,b=2;”,执行语句 “while(-a 0& -b0)a=b;”后变量a、b的值是 。0,2 B. 0,1 C. 1,1 D. 2,2答案:A 短路运算,-b不执行第17页/共155页第十七

16、页,共156页。18 2. 语句 实现顺序(shnx)结构的语句 表达式语句,空语句,复合语句,函数调用语句 标准输入输出库函数printf(), scanf(),getchar() , putchar() ,gets(),puts()【考题解析】 单选题 已知int类型数据在内存中存储长度为2个字节,以下语句中能正确输出整数32768的是 。printf(%d,32768); B. printf(%ld,32768); C. printf(%f,32768); D. printf(%c,32768);答案:B第18页/共155页第十八页,共156页。19学校单选题 已知某编译系统中sizeo

17、f(int)的值为2,在该编译系统中执行以下 (10) 语句时输出结果(ji gu)不是39999。 A. printf(%u,39999); B. printf(%d,39999); C. printf(%ld,39999); D. printf(%lu,39999);答案: B 单选题 若有声明“float f=123.45678;”,则执行语句“printf( ”%.3f“,f );”后,输出结果(ji gu)是 。. 1.23e+02 . 123.457 . 123.456780 . 1.234e+02答案: B 第19页/共155页第十九页,共156页。20单选题 已知有声明“cha

18、r s80;”,若需要将键盘输入(shr)的一个不含空格的字符串保存到s数组中,则下列语句中正确的是 。scanf(%s,s); B. scanf(%s,s0); C. s=gets(); D. s=getchar();答案:A 填空题 已知有声明和语句“int a;scanf(”a=%d“,&a);”,欲从键盘上输入(shr)数据使a中的值为3,则正确的输入(shr)应是 。答案:a=3 单选题 若有声明“long a,b;”且变量a和b都需要通过键盘输入(shr)获得初值,则下列语句中正确的是 。scanf(%ld%ld,&a,&b); B. scanf(%d%d,

19、a,b);C. scanf(%d%d,&a,&b); D. scanf(%ld%ld,&a,&b);答案:D 第20页/共155页第二十页,共156页。21 实现选择结构的语句: if-else,switch【考题解析】单选题 若在一个C语言源程序中“e1”和“e3”是表达式,“s;”是语句,则下列选项中与语句“for(e1; ;e3)s;”功能等同(dngtng)的语句是 。A. e1;while(10)s;e3; B. e1;while(10)s;e3;C. e1;while(10)e3;s; D. while(10)e1;s;e3;答案:B 单选题 已知有

20、声明“int x,y;”,若要求编写一段程序实现“当x大于等于0时y取值1,否则y取值-1”,则以下程序段中错误的是 。 A. if(x=0)y=1;else y=-1; B. y=x=0?1:-1;C. switch() D. switch(x-abs(x) case x=0: y=1; break; case 0: y=1; break; default: y=-1; default: y=-1; 答案:C 第21页/共155页第二十一页,共156页。22学校单选题 已知有声明“int a=1,b=2,c=0;”,执行(zhxng)语句“if(ab) c=a;a=b;b=c;”后变量a、b

21、的值是 (21) 。答案: 2,0第22页/共155页第二十二页,共156页。23阅读程序 下列(xili)程序运行后的输出结果第一行是 (1) ;第二行是 (2) 。 #include main( ) int i,a=0,c=2; for(i=0;i2;i+) switch(+a , a*c) case 1: printf(1); case 2: printf(2); case 3: printf(3n);break; default: printf(othern); 答案: (1) 23 (2) other第23页/共155页第二十三页,共156页。24阅读程序 以下程序运行时输出结果(j

22、i gu)为 (6) #include void main() int i,sum=0; for (i=0;i0;j-=2) k+; B. for(j=0;j15;j+=2) k+; .for(i=0;i0;i-=2) k+;答案: A学校单选题 以下语句中有语法错误的是 。for(; ;); B. do ; while(1); C. while(); D. p: ; goto p; 答案:C第25页/共155页第二十五页,共156页。26阅读程序 以下程序运行时输出(shch)结果最后一行是 。 #includevoid main() int a=1,b=1,i; for(i=1;i=2;i

23、+) a=a+b; printf(%d / %d , ,b,a); b=a+b; printf(%d / %d n,a,b); printf(n);答案: 3/5,5/8 第26页/共155页第二十六页,共156页。27阅读程序 以下(yxi)程序运行时输出结果是 。#include main() int s=1,n=235; do s*=n%10; n/=10; while(n); printf(%dn,s);答案: 30第27页/共155页第二十七页,共156页。28 跳转语句: break,continue,return【考题解析(ji x)】 全国选择题 有以下程序 #include

24、#include main() int x=8; for(;x0;x-) if(x%3) printf(%d, x-);continue; printf(%d, -x ); 程序的运行结果是( )。 A) 7,4,2, B) 8,7,5,2, C) 9,7,6,4, D) 8,5,4,2,答案:D第28页/共155页第二十八页,共156页。293. 构造类型数据 基本类型数组(一维,二维) 数组声明及初始化 数组存储结构 使用(shyng)数组名引用数组元素 【考题解析】 单选题 以下声明中错误的是 。Aint a2; Bint a =0,1; Cint a3=0; Dint a34=0; 答

25、案: C全国单选题 下列选项中,能正确定义数组的语句是()。 A)int num0.2008 ; B) int num; C)int N=2008; D) #define N 2008 int numN; int numN; 答案:D第29页/共155页第二十九页,共156页。30单选题 设有声明(shngmng)“int p10=1,2,i=0;”,以下语句中与“pi=pi+1,i+;”等价的是 。A. pi=pi+; B. p+i=pi;C. p+i=pi+1; D. i+,pi-1=pi;答案:D 全国单选题 已知有声明(shngmng)“int m=5,4,3,2,1,i=0;”,下列

26、对m数组元素的引用中,正确的是 。m-i B)m2*2 C)mm0 D)mmi答案:B第30页/共155页第三十页,共156页。31填空题 若有声明“char s110=ABCDE,s210=A0;”,则语句“printf(%d,strlen(strcpy(s1,s2);”的输出结果是 。 答案: 3全国选择题 有以下(yxi)程序 #includemain()int a5=1,2,3,4,5,b5=0,2,1,3,0,i,s=0;for(i=0;i5;i+)s=s+abi;printf(%dn,s);程序运行后的输出结果是(): A)6 B)10 C)11 D) 15答案: C第31页/共1

27、55页第三十一页,共156页。32单选题 已知有声明“char s20=”Hello“;”,在程序运行过程中,若要想使数组s中的内容修改为“Good”,则以下语句中能够(nnggu)实现此功能的是 。 As=Good; Bs20=Good; Cstrcat(s,Good); Dstrcpy(s,Good);答案:D第32页/共155页第三十二页,共156页。33单选题 已知有声明“int a44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;”,若需要引用值为12的数组元素,则下列(xili)选项中错误的是 。 A*(a+2)+3 B*(*(a+2)+3) C*

28、(a2+3) Da23答案:A第33页/共155页第三十三页,共156页。34阅读程序 以下程序运行时输出(shch)结果中第一行是 (1) ,第三行是 (2) 。 #include #define N 5 void main() static char aNN; int i,j,t,start=0,end=N-1; char str =123,ch; for(t=0;t=N/2;t+) ch=strt; for(i=j=start;iend;i+) aij=ch; for(j=start;jstart;i-) aij=ch; for(j=end;jstart;j-) aij=ch; if(s

29、tart=end) astartend=ch; start+,end-; 生成生成(shn chn)矩阵:矩阵: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 for(i=0; iN; i+) for(j=0;jN;j+) printf(%c, aij); printf(n); 答案答案(d n):(1) 11111 (2) 12321第34页/共155页第三十四页,共156页。35 阅读程序 以下(yxi)程序运行时输出结果的第一行是 (1) ,第三行是 (2) 。 #include void main( ) int i,j,a33; f

30、or(i=0;i3;i+) for(j=0;j3;j+) if(ij) aij=1; else aij=i-j+1; for(i=0;i3;i+) for(j=0;j3;j+) printf(%4d,aij); printf(n); 生成生成(shn chn)矩阵:矩阵: 1 1 1 2 1 1 3 2 1答案答案(d n): (1) 1 1 1 (2) 3 2 1 第35页/共155页第三十五页,共156页。36 结构类型变量(binling)与数组 定义结构类型 结构类型变量(binling)、数组声明及初始化 用变量(binling)名引用结构变量(binling)(结构数组元素)的全体

31、成员 用变量(binling)名引用结构变量(binling)(结构数组元素)的基本类型成员【考题解析】 单选题 若有结构类型定义 “typedef struct test int x,y2; TEST;”,则以下声明中正确的是 (27) 。Astruct test x; Bstruct x; Ctest x ; Dstruct TEST x;答案:A第36页/共155页第三十六页,共156页。37单选题 以下(yxi)结构变量stu1的声明形式中,错误的是 。typedef struct stuchar name10;float score;STU ; STU stu1; #define S

32、TU struct stu STU char name10;float score; stu1; struct stuchar name10;float score;stu1; struct stuchar name10;float score;STU; STU stu1;答案:D学校单选题 若有定义 “struct c double x,y;c1=1.2,1.3,c2=1.2,1.3,c3; struct d double x,y;d1=1.2,1.3,d2=1.2,1.3,d3;”, 则以下(yxi)表达式中正确的是 。 c3=0 B. c1=c2 C. c3=c1 D. d3=c1 答案

33、:C第37页/共155页第三十七页,共156页。38阅读程序 以下(yxi)程序运行后的输出结果第一行是 (1) ;第二行是 (2) 。#include struct num int x,y ; st =1,10,2,20,3,30,4,40,-1,-1,s12,s22;main() int i=0,j=0,k; for(k=0; stk.x != -1; k+) if(stk.x%2) s1i+=stk; else s2j+=stk; printf ( %d n %d n,s10.y ,s20.y ); 答案: (1) 10 (2) 20第38页/共155页第三十八页,共156页。394.

34、指针类型数据 基本类型变量的指针操作 基本类型变量地址的获取与保存。 指向基本类型变量的指针变量声明、初始化与赋值。 引用指针变量指向的基本类型变量(使用运算符*)【考题解析】填空题 若有声明char *p=%d,%dn; int a=1,b=2; 则执行语句“printf(p,a,b);”时输出 (4) 。答案(d n):1,2全国选择题 若有定义语句:double x,y,*px,*py,执行了px=&x, py=&y;之后,正确的输入语句是()。 A)scanf(”%f%f”,x,y); B) scanf(”%f%f”,&x,&y);C) scanf(”%

35、lf%le”,px,py); D) scanf(”%lf%lf”,x,y);答案(d n):C 第39页/共155页第三十九页,共156页。40 全国 选择题 有以下程序#includemain() int m=1,n=2,*p=&m,*q=&n,*r; r=p; p=q; q=r; printf(“%d,%d,%d,%dn”,m,n,*p,*q);程序运行后的输出结果(ji gu)是A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2答案:B第40页/共155页第四十页,共156页。41全国(qun u)选择题 有以下程序#include#inclu

36、deint fun(int n) int *p; p=(int *)malloc(sizeof(int); *p=n; return *p;main() int a; a=fun(10); printf(“%dn”,a+fun(10); 程序的运行结果是()。0 B) 10 C) 20 D) 出错 答案:C 第41页/共155页第四十一页,共156页。42(2) 基本类型数组的指针操作 基本类型数组元素地址的获取、保存与算术(sunsh)运算。 引用指针变量指向的基本类型数组元素 二维数组行地址的获取、保存及算术(sunsh)运算。 行指针变量的声明、初始化。 引用行指针变量指向的基本类型数组

37、元素【考题解析】 单选题 设指针变量占2个字节的内存空间,若有声明“char *p=”123“;int c;”,则执行语句“c=sizeof(p);”后,c的值为 。 A. 1 B. 2 C. 3 D. 4 答案: B全国选择题 若有定义语句: double x5=1.0,2.0,3.0,4.0,5.0,*p=x;则错误引用x数组元素的是()。*p B)x5 C)*(p+1) D)*x答案:B第42页/共155页第四十二页,共156页。43单选题 若有声明(shngmng)“int x10=0,1,2,3,4,5,6,7,8,9,*p;”,则值不为4的表达式是 。Ap=x,*(p+4) Bp=

38、x+4,*p+ Cp=x+3,*(p+) Dp=x+3,*+p答案: C单选题 已知有程序段 “char str 10=Aoyun,Beijing, *p=&str00; printf(%sn,p+10);”, 则执行printf语句后输出为 。ABeijing BAoyun Cing Dng 答案: A第43页/共155页第四十三页,共156页。44单选题 已知有声明“int i,a10,*p=a;”,现需要(xyo)将110保存到a0a9中,以下程序段中不能实现这一功能的是 。for(i=0;i10;i+) ai=i+1; B. for(i=0;i10;i+) pi=i+1;C.

39、i=1;while(pa+10) *p+=i+; D. i=1;while(pa+10) *a+=i+;答案:D填空题 已知有声明 “int a32=1,2,3,4,5,6,*p=a0;”,则执行语句“printf(”%dn“,*(p+4);”后的输出结果为 。答案:5单选题 若有声明“int a34, *p=a0 ,(*q)4=a;”,则下列叙述中错误的是 。 . a23与q23等价 . a23与p23等价. a23与*(p+11)等价 . a23与p=p+11,*p等价答案:B第44页/共155页第四十四页,共156页。45 单选题 已知有声明(shngmng) “int a33=0,*p

40、1=a1,(*p2)3=a;”,以下表达式中与“a11=1”不等价的表达式是 。A. *(p1+1)=1 B. p111=1 C. *(*(p2+1)+1)=1 D. p211=1答案:B 填 空 题 若 有 声 明 ( s h n g m n g ) “ c h a r s10=”remind“;”,执行“puts(s+2);”后的输出结果是 。答案: mind单选题 已知有声明(shngmng):“char a =It is mine, *p=It is mine;”,下列叙述中错误的是 。 A. strcpy(a,“yes”)和strcpy(p,“yes”) 都是正确的 B. a=“ye

41、s”和p=“yes”都是正确的 C. *a 等于*p D. sizeof(a)不等于sizeof(p) 答案:B第45页/共155页第四十五页,共156页。46全国完善程序 以下程序的功能是:借助指针变量找出数组元素中的最大值所在(suzi)数组元素的下标值。#includemain() int a10,*p,*s; for(p=a;p-a10;p+) scanf(“%d”,p); for(p=a,s=a;p-a*s) s=_; printf(“index=%dn”,s-a);答案:p第46页/共155页第四十六页,共156页。47(3) 结构类型变量、数组的指针操作 结构变量地址、结构数组元

42、素地址的获取(huq)与保存。 指向结构变量指针变量的声明、初始化与赋值。 引用指针指向的结构类型变量(结构类型数组元素)的基本类型成员结构变量成员的地址、结构数组元素成员的地址获取(huq)与保存。指向结构变量成员的指针变量声明、初始化与赋值。 【考题解析】 第47页/共155页第四十七页,共156页。48单选题 已知有结构定义和变量(binling)声明如下: struct student char name20; int score; struct student *h; stu,*p; int *q;以下选项中错误的是 。 Ap=&stu; Bq=&stu.score;

43、 Cscanf(%s%d,&stu); Dstu.h=p; 答案: C 第48页/共155页第四十八页,共156页。49阅读程序 以下程序运行时输出结果( ji gu)的第一行是 (1) ,第二行是 (2) #include struct s int x,*y;*p;int d5=10,20,30,40,50;struct s a5=100,&d0,200,&d1,300,&d2,400,&d3,500,&d4;void main( ) p=a; printf(%5d,p-x+); printf(%5dn,p-x); printf(%5d,*p-

44、y); printf(%5dn,*+p-y); 答案: (1) 100 101 (2) 10 20 第49页/共155页第四十九页,共156页。50单选题 设有结构定义及变量声明如下: struct product char code5; float price;y4=100,100;以下(yxi)表达式中错误的是 。A. (*y).code0=2; B. y0.code0=2; C. y-price=10; D. (*y)-price=10;答案: D 第50页/共155页第五十页,共156页。51 (4) 指针类型数组的声明和使用【考题解析】全国单选题 有以下程序#includemain(

45、) char *a =abcd,ef,gh,ijk; int i; for(i=0;i4;i+) printf(%c,*ai);程序运行后输出的结果是A)aegi B)dfhk C)abcd D)abcdefghijk答案:A全国单选题 若有定义语句(yj):int a410,*p,*q4;且0=i4,则错误的赋值是()。A) p=a B) q=a c) q0=a D)p=&a21答案:B q是常量第51页/共155页第五十一页,共156页。52全国填空题 有以下(yxi)程序#includemain() int a=1,2,3,4,5,6,*k3,i=0; while(i3) ki=

46、&a2*i; printf(%d,*ki); i+; 程序运行后的输出的结果是_ 答案:135第52页/共155页第五十二页,共156页。53 5. 函数 函数定义、函数声明(紧跟分号)、函数调用 (2) 函数调用时基本类型实参的传递与使用。实参与形参的类型兼容性要求。实参类型的自动转换【考题解析】单选题 以下(yxi)函数定义中正确的是 (25) 。A. double fun(double x,double y) B. double fun(double x;double y) C. double fun(double x,double y); D. double fun(doubl

47、e x,y) 答案:A第53页/共155页第五十三页,共156页。54单选题 以下选项均为fun函数定义的头部,其中错误的是 。A. int fun(int x,int y ) B. int fun(int x,int yx)C. int fun(int x,int y3) D. int fun(int x,int *y)答案(d n):B学校单选题 已知函数fun定义的头部为“void fun(int x, int y)”,以下fun函数声明中正确的是 。void fun(int x,int y ); B. void fun(int x, int *y);void fun(int ,int)

48、; D. void fun(int ,int * );答案(d n):C单选题 若有声明“long fun(int *x,int n,long *s);int a4=1,2,3,4; long b,c;”,则以下函数调用形式中正确的是 。A. c=fun(a,4,b); B. c=fun(a ,4,&b);C. c=fun(a4,4,b); D. c=fun(a,4,&b);答案(d n):D第54页/共155页第五十四页,共156页。55单选题 若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是 。A. 实参和其对应的形参占用同一(tngy)存储单元B. 形参

49、不占用存储单元C. 同名的实参和形参占用同一(tngy)存储单元D. 形参和实参占用不同的存储单元答案:D 全国选择题 函数调用语句func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8); 中func函数的实参个数是()。 A)3 B)4 C)5 D)8答案:A第55页/共155页第五十五页,共156页。56阅读程序 以下(yxi)程序运行时输出结果是 。 #include void func(int b) int a; a=b; b=10; void main() int a=10,b=20; func(b); printf(%d,%d,a,b); 答案: 10,

50、20 第56页/共155页第五十六页,共156页。57阅读程序 以下(yxi)程序运行时输出到屏幕的结果是 。 #include void swap(int a,int b) int t; if(ab)t=a,a=b,b=t; void main() int x=13, y=11, z=12; if(xy) swap(x,y); if(xz) swap(x,z); if(yz) swap(y,z); printf(%dt%dt%dn, x,y,z); 答案:8 13 11 12第57页/共155页第五十七页,共156页。58阅读程序 以下程序运行时输出结果(ji gu)是 。 #include

51、int f(int x, int y) return x+y; void main() double a=5.5, b=2.5; printf(%d,f(a,b); 答案: 7第58页/共155页第五十八页,共156页。59阅读程序 以下程序运行后的输出结果(ji gu)是 。#include int fun(int w1 , int w2) return w2-w1; main( ) int w=1,k ; k=fun(fun(w+1,w),w) ; printf(%dn,k) ;答案:2第59页/共155页第五十九页,共156页。60全国选择题 有以下(yxi)程序#includevoid

52、 fun(int a , int b) int t; t=a; a=b; b=t; main() int c10=1,2,3,4,5,6,7,8,9,0,i ; for(i=0;i10;i+=2) fun(ci,ci+1); for(i=0;i10;i+) printf(“%d,”,ci); printf(“n”); 程序的运行结果是() A) 1,2,3,4,5,6,7,8,9,0, B) 2,1,4,3,6,5,8,7,0,9, C) 0,9,8,7,6,5,4,3,2,1, D) 0,1,2,3,4,5,6,7,8,9,答案:A第60页/共155页第六十页,共156页。61(3) 函数调

53、用时结构类型实参的传递与使用(shyng)阅读程序 以下程序运行时输出到屏幕的结果第一行是 (1) ,第二行是 (2) 。#include typedef struct int x,y; direction;int visible(direction s,direction A,direction B,direction C) direction p1,p2; int d; p1.x=B.x-A.x; p1.y=B.y-A.y; p2.x=C.x-A.x; p2.y=C.y-A.y; d = s.x*p1.x*p2.x + s.y*p1.y*p2.y; printf(%4dn, d); ret

54、urn d0;void main( ) char *ss=invisible,visible; direction s=1,1,T=1,1,A=0,0,B=2,1; puts(ssvisible(s,T,A,B);答案: (1) -1 (2) invisible第61页/共155页第六十一页,共156页。62(4) 函数调用时指针类型实参的传递与使用【考题解析】单选题 若需要通过调用f函数得到一个数的平方值,以下f函数定义中不能实现该功能(gngnng)的是 。 A. void f(double *a) *a=(*a)*(*a); B. void f(double a,double *b) *

55、b=a*a; C. void f(double a,double b) b=a*a; D. double f(double a) return a*a; 答案: C第62页/共155页第六十二页,共156页。63全国选择题 有以下程序#include void fun( int *a,int *b) int *c; c=a; a=b; b=c;main() int x=3,y=5,*P=&x,*q=&y; fun(p,q); printf(”%d,%d,”,*p,*q); fun(&x,&y); printf(”%d,%dn”,*p,*q);程序运行后的输出(s

56、hch)结果是A)3,5,5,3 B)3,5,3,5 C)5,3,3,5 D)5,3,5,3 、答案:B第63页/共155页第六十三页,共156页。64阅读程序 以下程序运行时输出(shch)结果是 。 #include void change(int x, int y, int *z) int t; t=x; x=y; y=*z; *z=t;void main( ) int x=18,y=27,z=63; change(x,y,&z); printf(x=%d,y=%d,z=%dn,x,y,z); 答案: x=18, y=27, z=18第64页/共155页第六十四页,共156页。6

57、5全国选择题 有以下(yxi)程序#include void fun(int a, int n) int i,t; for(i=0;in/2;i+)t=ai;ai=an-1-i;an-1-i=t; main() int k10=1,2,3,4,5,6,7,8,9,10,i; fun(k,5); for(i=2;i8;i+) printf(“%d”,ki); printf(“n”); 程序的运行结果是 A) 345678 B) 876543 C) 1098765 D) 321678答案:D第65页/共155页第六十五页,共156页。66 阅 读 程 序 以 下 程 序 运 行 时 输 出 结 果

58、 中 第 一 行 是 (1) ,第二行是 (2) #includevoid fun(int x,int p,int *n) int i,j=0; for(i=1;i=x/2;i+) if(x%i=0) pj+=i; *n=j;void main() int x,a10,n,i; fun(27,a,&n); /* 调用fun函数将27的所有因子(ynz)保存到a数组,因子(ynz)个数保存到n*/ for(i=0;in;i+) printf(%5d,ai); printf(n%5d,n); 答案: (1)1 3 9 (2) 3 第66页/共155页第六十六页,共156页。67阅读程序 以

59、下(yxi)程序运行时输出结果中第一行是 (1) ,第二行是 (2) #includeint fun(char *a,char *b) int m=0,n=0; while(*(a+m)!=0)m+; while(bn) *(a+m)=bn;m+;n+; *(a+m)=0; return m;void main() char s120=yes,s25=no; printf(%dn,fun(s1,s2); puts(s1); 答案:(1) 5 (2) yesno 第67页/共155页第六十七页,共156页。68阅读程序 以下(yxi)程序运行时输出到屏幕的结果第一行是 (1) ,第二行是 (2)

60、 。#include void fun(char *p1,char *p2);void main() int i; char a=54321; puts(a+2); fun(a,a+4); puts(a);void fun(char *p1,char *p2) char t; while(p1p2) t=*p1;*p1=*p2;*p2=t; p1+=2,p2-=2; 答案: (1) 321 (2) 14325第68页/共155页第六十八页,共156页。69完善程序 以下(yxi)程序的功能是:求a数组中前4个元素之和及后6个元素之和。 #include int fsum(int *array,int n) int i,s=0; for(i=0; (1) ; i+) s+=arrayi; return(s); void main(void) int a15=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15; int sumh,sumt; sumh=fsum(a,4); sumt= (2) ; pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论