c语言中不带任何修饰符的浮点变量,江苏省计算机等级考试二级C语言笔试辅导题目...

《江苏省计算机等级考试二级C语言笔试辅导题目》由会员分享,可在线阅读,更多相关《江苏省计算机等级考试二级C语言笔试辅导题目(155页珍藏版)》请在装配图网上搜索。

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

2、C语言程序的每一行只能写一条语句 C main( ) 必须位于程序的开始 D C语言程序可以由一个或多个函数组成 答案: D 4 单选题 在一个源程序中 main函数的位置 。 A必须在最开始 B必须在最后 C必须在预处理命令的后面 D可以在其他函数之前或之后 答案: D 单选题 下列叙述中正确的是 。 A. main函数必须出现在其他函数之前 B. main函数中至少必须有一条语句 C. C程序总是从 main函数的第一条语句开始执行 D. C程序总是在执行完 main函数的最后一条语句后结束 答案: C 5 单选题 以下叙述中正确的是 。 A. C语言系统以函数为单位编译源程序 B. ma。

3、in函数必须放在程序开始 C. 用户定义的函数可以被一个或多个函数调用任意多次 D. 在一个函数体内可以定义另外一个函数 答案: C 全国选择题 以下叙述中正确的是 () 。 A) C语言程序将从源程序中第一个函数开始执行 B) 可以在程序中由用户指定任意一个函数作为主函数,程 序将从此开始执行 C) C语言规定必须用 main作为主函数名,程序将从此开始 执行,在此结束 D) main可作为用户标识符,用以命名任意一个函数作为主 函数 答案: C 6 全国选择题 以下叙述中正确的是 ( ) 。 A) C程序中的注释只能出现在程序的开始位置和语句的后 面。 B) C程序书写格式严格,要求一行内。

4、只能写一个语句 C) C程序书写格式自由,一个语句可以写在多行上 D) 用 C语言编写的程序只能放在一个程序文件中 答案: C 全国选择题 以下叙述中正确的是 ( )。 A)C程序的基本组成单位是语句 B)C程序中的每一行只能写一条语句 C)简单 C语句必须以分号结束 D)C语句必须在一行内写完 答案: C 7 基本类型数据的表示及使用 系统预定义类型标识符、类型修饰符的使用 基本类型常量的表示及使用 字符串常量形式 关键字。 标识符。 符号常量的定义与使用 基本类型变量的声明、初始化 , 直接引用变量 【 考题解析 】 单选题 在 C语言源程序中 , 不带任何修饰符的浮点数直接量 ( 例如:。

5、 3.14) 都是按 类型数据存储的 。 答案: double 单选题 已知 sizeof(int)的值为 2, 为将 10!的值存储到变量 f中 ( 10!=3628800) , 变量 f的类型应声明为 。 A long int B int C short int D unsigned int 答案: A 8 单选题 以下常量表示中正确的是 (22) 。 A. xff B.5L C. aEb D. 3.14U 答案: B 单选题 以下语句中有语法错误的是 。 A. printf(%d,0e); B. printf(%f,0e2); C. printf(%d,0 x2); D. printf(。

6、%s,0 x2); 答案: A 9 单选题 以下选项中不能用作变量名的是 。 A _float B switch C sum D _123 答案: B 填空题 在 C语言系统中 , 如果一个变量能正确存储的数据范 围为整数 -3276832767, 则该变量在内存中占 (3) 个字 节 。 答案: 2 单选题 以下选项中,不能用作 标识符的是 。 A. print B. FOR C. ”时输出到 屏幕的结果 为 (22) 。 答案: byye101A 10 学校单选题 表达式“ 1e-8/2+1.0f”值的数据类型是 (3) 。 A. int B. long C. float D. doubl。

7、e 答案: D 学校单选题 以下局部变量声明中正确的是 (2) 。 A. int char=2; B. void a=0; C. int a=b=0; D. int a, b=a=0; 答案: D 11 运算符和表达式的表示及使用 赋值表达式,赋值运算符的左值要求 算术表达式。 +、 -运算符左值要求。溢出。 关系表达式与逻辑表达式 , 逻辑表达式优化处理 逗号表达式 条件表达式 表达式运算中操作数类型自动转换与强制转换 【 考题解析 】 单选题 若有声明 “ double x=3,c,*a=”, 则下列语 句中错误的是 。 A a=b=0; B a= C D *b=*a; 答案: C 12 。

8、单选题 若有声明“ char ss8=”Red“;”, 则 sizeof(ss)的值 是 。 A 8 B 4 C 3 D 1 答案 : A 单选题 设有定义和声明如下: #define d 2 int x=5; float y=3.83; char c=d; 以下表达式中有语法错误的是 。 A. x+ B. y+ C. c+ D. d+ 答案: D 单选题 数学式 在 C程序中正确的表示形式为 。 A sqrt(a)/2*b B sqrt(a)/2/b C sqrt(a)/2b D sqrt a/(2*b) 答案 : B b a 2 13 单选题 已知有声明“ long x,y;”且 x中整数。

9、的十进制表示有 n 位数字( 4 n 10),若要求去掉整数 x十进制表示中的 最高位,用剩下的数字组成一个新的整数并保存到 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”为假。 答案: 32。

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

11、 15 单选题 已有声明“ int a=3,b=3,c=2;”, 以下选项中值为 0的表达 式是 。 A.!a ”,以下表达式中值为 0 的是 。 A.a”,则执行表达式 “ c=(a|(b-=a)”后,变量 b和 c的值分别为 。 A 3.1 B 15,12 C 15,1 D 3,12 答案 : C 填空题 数学式 所对应的 C语言表达式为 pow(x, )。 答案: 1.0/3 填空题 若有声明“ int a=15,b=20,c=25,e;”,则执行语句 “ e=ab? -c :+c;”后变量 e的值是 。 答案: 26 bc ax 4 3x 3 x 17 单选题 以下选项中 , 不能表示。

12、函数 功 能的表达式是 。 A. s=(x0)?1:(x0)?-1:0 B. s=x0?1:0) C. s=x0?1:x=0?0:-1 答案: C 单选题 若有程序段“ char c=256; int a=c;”,则执行该程 序段后 a的值是 。 A. 256 B. 65536 C. 0 D. -1 答案: C 01 00 01 )( x x x xs ig n 18 填空题 设有声明 “ int a=3, b=4; float x=4.5, y=3.5;”, 则表达 式 “ (float)(a+b)/2+(int)x%(int)y”的值是 。 答案 : 4.5 填空题 若有声明“ int r。

13、=2;”, 则执行语句 “ printf(”%d“,sizeof(2*3.14*r);”时输出 。 答案: 8 单选题 已知有声明“ int n; float x,y;”,则执行语句 “ y=n=x=3.89;”后, y的值为 。 A. 3 B. 3.0 C. 3.89 D. 4.0 答案: B 单选题 已知有声明“ int a=3,b=4;”,下列表达式中合法的 是 。 A. a+b=7 B. a=|b| C. a=b=0 D. (a+)+ 答案: C 学校单选题 已 知 有声明“ int a=1,b=2;”, 执行语句 “ while(-a 0”后变量 a、 b的值是 。 A. 0,2 B。

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

15、系统中 sizeof(int)的值为 2,在该编 译系统中执行以下 (10) 语句时输出结果不是 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 );”后,输出结果是 。 . 1.23e+02 . 123.457 . 123.456780 . 1.234e+02 答案: B 21 单选题 已知有声明 “ char s80;”,若需要将键盘。

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

17、ld, 答案: D 22 实现选择结构的语句 : if-else, switch 【 考题解析 】 单选题 若在一个 C语言源程序中“ e1”和“ e3”是表达式, “ s;”是语句,则下列选项中与语句“ for(e1; ;e3)s;”功能等 同的语句是 。 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 单选题 已知有声明 “ int x,y;”,若要求编写一段程序实现 “当 x大于等于 0时 y取值 1,否则 y取值 -1”,则以下程序段 中错误的是 。 A.。

18、 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 23 学校单选题 已知有声明 “ int a=1,b=2,c=0;”,执行语句 “ if(ab) c=a;a=b;b=c;”后变量 a、 b的值是 (21) 。 答案: 2,0 24 阅读程序 下列程序运行后的输出结果第一行是 (1) ;第 二行是 (2) 。 #include main( ) int i。

19、,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 25 阅读程序 以下程序运行时输出结果为 (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 学校单选题 以下语句中有。

20、语法错误的是 。 A. for(; ;); B. do ; while(1); C. while(); D. p: ; goto p; 答案: C 27 阅读程序 以下程序运行时输出结果最后一行是 。 #include void main() int a=1,b=1,i; for(i=1;i=2;i+) a=a+b; printf(%d / %d , ,b,a); b=a+b; printf(%d / %d n,a,b); printf(n); 答案 : 3/5, 5/8 28 阅读程序 以下程序运行时输出结果是 。 #include main() int s=1,n=235; do s*=n。

21、%10; n/=10; while(n); printf(%dn,s); 答案: 30 29 跳转语句 : break, continue, return 【 考题解析 】 全国选择题 有以下程序 #include #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 30 3. 构造类型数据 基本类型数组(一维,二维) 数组声明及初始化 数组存。

22、储结构 使用数组名引用数组元素 【 考题解析 】 单选题 以下声明中错误的是 。 A int a2; B int a =0,1; C int a3=0; D int a34=0; 答案 : C 全国单选题 下列选项中,能正确定义数组的语句是()。 A) int num0.2008 ; B) int num; C) int N=2008; D) #define N 2008 int numN; int numN; 答案: D 31 单选题 设有声明“ int p10=1,2,i=0;”, 以下语句中与 “ pi=pi+1,i+;”等价的是 。 A. pi=pi+; B. p+i=pi; C. p。

23、+i=pi+1; D. i+,pi-1=pi; 答案: D 全国单选题 已知有声明 “ int m=5,4,3,2,1,i=0;”,下列对 m数组元素的引用中,正确的是 。 A) m-i B)m2*2 C)mm0 D)mmi 答案: B 32 填空题 若有声明“ char s110=ABCDE,s210=A0;”, 则语句 “ printf(%d,strlen(strcpy(s1,s2);”的输出结果是 。 答案: 3 全国选择题 有以下程序 #include main() int a5=1,2,3,4,5,b5=0,2,1,3,0,i,s=0; for(i=0;i5;i+)s=s+abi; 。

24、printf(%dn,s); 程序运行后的输出结果是(): A) 6 B) 10 C) 11 D) 15 答案: C 33 单选题 已知有声明“ char s20=”Hello“;”,在程序运行过 程中,若要想使数组 s中的内容修改为“ Good”,则以下 语句中能够实现此功能的是 。 A s=Good; B s20=Good; C strcat(s,Good); D strcpy(s,Good); 答案: D 34 单选题 已知有声明“ int a44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16;”,若 需要引用值为 12的数组元素,则下列选项中错误的 是 。

25、。 A *(a+2)+3 B *(*(a+2)+3) C *(a2+3) D a23 答案: A 35 阅读程序 以下程序运行时输出结果中第一行是 ( 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-) ai。

26、j=ch; if(start=end) astartend=ch; start+,end-; 生成矩阵: 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); 答案: (1) 11111 (2) 12321 36 阅读程序 以下程序运行时输出结果的第一行是 (1) , 第三行是 (2) 。 #include void main( ) int i,j,a33; for(i=0;i3;i+) for(j=0;j3;j+) if(ij)。

27、 aij=1; else aij=i-j+1; for(i=0;i3;i+) for(j=0;j3;j+) printf(%4d,aij); printf(n); 生成矩阵: 1 1 1 2 1 1 3 2 1 答案 : (1) 1 1 1 (2) 3 2 1 37 结构类型变量与数组 定义结构类型 结构类型变量、数组声明及初始化 用变量名引用结构变量(结构数组元素)的全体成员 用变量名引用结构变量(结构数组元素)的基本类型成员 【 考题解析 】 单选题 若有结构类型定义 “ typedef struct test int x,y2; TEST;”,则以下声明中正 确的是 ( 27) 。 A 。

28、struct test x; B struct x; C test x ; D struct TEST x; 答案: A 38 单选题 以下结构变量 stu1的声明形式中,错误的是 。 typedef struct stuchar name10;float score;STU ; STU stu1; #define STU struct stu STU char name10;float score; stu1; struct stuchar name10;float score;stu1; struct stuchar name10;float score;STU; STU stu1; 答案。

29、: 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;” , 则以下表达式中正确的是 。 A. c3=0 B. c1=c2 C. c3=c1 D. d3=c1 答案: C 39 阅读程序 以下程序运行后的输出结果第一行是 (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。

30、; 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 40 4. 指针类型数据 基本类型变量的指针操作 基本类型变量地址的获取与保存。 指向基本类型变量的指针变量声明、初始化与赋值。 引用指针变量指向的基本类型变量(使用运算符 *) 【 考题解析 】 填空题 若有声明 char *p=%d,%dn; int a=1,b=2; 则执行语句“ printf(p,a,b);”时输出 (4) 。 答案: 1,2 全国选择题。

31、 若有定义语句: double x,y,*px,*py,执行了 px=之后,正确的输入语句是()。 A) scanf(” %f%f”,x,y) ; B) scanf(” %f%f”, C) scanf(” %lf%le”,px,py) ; D) scanf(” %lf%lf”,x,y) ; 答案: C 41 全国 选择题 有以下程序 #include main() int m=1,n=2,*p= r=p; p=q; q=r; printf(“%d,%d,%d,%dn”,m,n,*p,*q); 程序运行后的输出结果是 A)1,2,1,2 B)1,2,2,1 C)2,1,2,1 D)2,1,1,2。

32、 答案: B 42 全国选择题 有以下程序 #include #include int 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); 程序的运行结果是()。 A) 0 B) 10 C) 20 D) 出错 答案: C 43 (2) 基本类型数组的指针操作 基本类型数组元素地址的获取、保存与算术运算。 引用指针变量指向的基本类型数组元素 二维数组行地址的获取、保存及算术运算。 行指针变量的声明、初始化。 引用行指针变量。

33、指向的基本类型数组元素 【 考题解析 】 单选题 设指针变量占 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数组元素的是()。 A) *p B)x5 C)*(p+1) D)*x 答案: B 44 单选题 若有声明“ int x10=0,1,2,3,4,5,6,7,8,9,*p;”,则值 不为 4的表达式是 。 A p=x,*(p+4)。

34、 B p=x+4,*p+ C p=x+3,*(p+) D p=x+3,*+p 答案 : C 单选题 已知有程序段 “ char str 10=Aoyun,Beijing, *p= printf(%sn,p+10);”, 则执行 printf语句后输出为 。 A Beijing B Aoyun C ing D ng 答案 : A 45 单选题 已知有声明“ int i,a10,*p=a;”,现需要将 110保存到 a0a9中,以下程序段中不能实现这一功能的是 。 A. for(i=0;i10;i+) ai=i+1; B. for(i=0;i10;i+) pi=i+1; C. i=1;while(。

35、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 46 单选题 已知有声明 “ int a33=0,*p1=a1,(*p2)3=a;”, 以下表达。

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

37、zeof(a)不等于 sizeof(p) 答案: B 47 全国完善程序 以下程序的功能是:借助指针变量找出数组 元素中的最大值所在数组元素的下标值。 #include main() 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 48 (3) 结构类型变量、数组的指针操作 结构变量地址、结构数组元素地址的获取与保存。 指向结构变量指针变量的声明、初始化与赋值。 引用指针指向的结构类型变量(结构类型数组元素)的基 本类型成员 结构变量成员。

38、的地址、结构数组元素成员的地址获取与保 存。 指向结构变量成员的指针变量声明、初始化与赋值。 【 考题解析 】 49 单选题 已知有结构定义和变量声明如下: struct student char name20; int score; struct student *h; stu,*p; int *q; 以下选项中错误的是 。 A p= B q= C scanf(%s%d, D stu.h=p; 答案 : C 50 阅读程序 以下程序运行时输出结果的第一行是 ( 1) , 第 二行是 ( 2) #include struct s int x,*y; *p; int d5=10,20,30,40。

39、,50; struct s a5=100, void main( ) p=a; printf(%5d,p-x+); printf(%5dn,p-x); printf(%5d,*p-y); printf(%5dn,*+p-y); 答案 : (1) 100 101 (2) 10 20 51 单选题 设有结构定义及变量声明如下: struct product char code5; float price; y4=100,100; 以下表达式中错误的是 。 A. (*y).code0=2; B. y0.code0=2; C. y-price=10; D. (*y)-price=10; 答案: D 5。

40、2 (4) 指针类型数组的声明和使用 【 考题解析 】 全国单选题 有以下程序 #include main() 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 全国单选题 若有定义语句: int a410,*p,*q4;且 0=i4, 则错误的赋值是()。 A) p=a B) q=a c) q0=a D)p= while(i3) ki= printf(%d,*ki); i+; 程序运行后的输出的结果是 _。

41、 答案: 135 54 5. 函数 函数定义、函数声明、函数调用 (2) 函数调用时 基本类型 实参的传递与使用。实参与形参的 类型兼容性要求。实参类型的自动转换 【 考题解析 】 单选题 以下函数定义中正确的是 ( 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(double x,y) 答案: A 55 单选题 以下选项均为 fun函数定义的头部,其中错误的是 。 A. int fun(int x,in。

42、t y ) B. int fun(int x,int yx) C. int fun(int x,int y3) D. int fun(int x,int *y) 答案: B 学校单选题 已知函数 fun定义的头部为“ void fun(int x, int y)”, 以下 fun函数声明中正确的是 。 A. void fun(int x,int y ); B. void fun(int x, int *y); C. void fun(int ,int); D. void fun(int ,int * ); 答案: C 单选题 若有声明 “ long fun(int *x,int n,long 。

43、*s);int a4=1,2,3,4; long b,c;”, 则以下函数调用形式中正确的是 。 A. c=fun(a,4,b); B. c=fun(a ,4, C. c=fun(a4,4,b); D. c=fun(a,4, 答案: D 56 单选题 若函数调用时的实参为变量,则以下关于函数形参 和实参的叙述中正确的是 。 A. 实参和其对应的形参占用同一存储单元 B. 形参不占用存储单元 C. 同名的实参和形参占用同一存储单元 D. 形参和实参占用不同的存储单元 答案: D 全国选择题 函数调用语句 func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8); 中 fu。

44、nc函数的实 参个数是()。 A)3 B)4 C)5 D)8 答案: A 57 阅读程序 以下程序运行时输出结果是 。 #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, 20 58 阅读程序 以下程序运行时输出到屏幕的结果是 。 #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) swa。

45、p(x,y); if(xz) swap(x,z); if(yz) swap(y,z); printf(%dt%dt%dn, x,y,z); 答案: 8 13 11 12 59 阅读程序 以下程序运行时输出结果是 。 #include int f(int x, int y) return x+y; void main() double a=5.5, b=2.5; printf(%d,f(a,b); 答案: 7 60 阅读程序 以下程序运行后的输出结果是 。 #include int fun(int w1 , int w2) return w2-w1; main( ) int w=1,k ; k=。

46、fun(fun(w+1,w),w) ; printf(%dn,k) ; 答案: 2 61 全国选择题 有以下程序 #include void 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,。

47、6,5,4,3,2,1, D) 0,1,2,3,4,5,6,7,8,9, 答案: A 62 (3) 函数调用时结构 类型 实参的传递与使用 阅读程序 以下程序运行时输出到屏幕的结果第一行是 (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 = 。

48、s.x*p1.x*p2.x + s.y*p1.y*p2.y; printf(%4dn, d); return 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 63 (4) 函数调用时指针 类型 实参的传递与使用 【 考题解析 】 单选题 若需要通过调用 f函数得到一个数的平方值 , 以下 f函 数定义中不能实现该功能的是 。 A. void f(double *a) *a=(*a)*(。

49、*a); B. void f(double a,double *b) *b=a*a; C. void f(double a,double b) b=a*a; D. double f(double a) return a*a; 答案: C 64 全国 选择题 有以下程序 #include void fun( int *a,int *b) int *c; c=a; a=b; b=c; main() int x=3,y=5,*P= fun( p,q) ; printf(” %d,%d,”,*p,*q) ; fun( printf(” %d,%dn”,*p,*q) ; 程序运行后的输出结果是 A) 3。

50、,5,5,3 B) 3,5,3,5 C) 5,3,3,5 D) 5,3,5,3 、 答案: B 65 阅读程序 以下程序运行时输出结果是 。 #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, printf(x=%d,y=%d,z=%dn,x,y,z); 答案: x=18, y=27, z=18 66 全国选择题 有以下程序 #include void fun(int a, int n) int i,t; for(。

51、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 67 阅读程序 以下程序运行时输出结果中第一行是 ( 1) , 第 二行是 ( 2) #include void fun(int x,int p,int *n) int i,j=0; for(i=1;i=x/2;i+) if(。

52、x%i=0) pj+=i; *n=j; void main() int x,a10,n,i; fun(27,a, /* 调用 fun函数将 27的所有因子保存到 a数组 , 因子个数 保存到 n*/ for(i=0;in;i+) printf(%5d,ai); printf(n%5d,n); 答案 : (1)1 3 9 (2) 3 68 阅读程序 以下程序运行时输出结果中第一行是 ( 1) , 第二行是 ( 2) #include int fun(char *a,char *b) int m=0,n=0; while(*(a+m)!=0)m+; while(bn) *(a+m)=bn;m+;n。

53、+; *(a+m)=0; return m; void main() char s120=yes,s25=no; printf(%dn,fun(s1,s2); puts(s1); 答案: (1) 5 (2) yesno 69 阅读程序 以下程序运行时输出到屏幕的结果第一行是 (1) ,第二行是 (2) 。 #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(p。

54、1p2) t=*p1;*p1=*p2;*p2=t; p1+=2,p2-=2; 答案: (1) 321 (2) 14325 70 完善程序 以下程序的功能是:求 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) ; p。

55、rintf(“%d %dn”,sumh,sumt); 答案 : (1) in (2) fsum(”, 则调用 fun后的函数返回值是 ( 1) 。 答案 : 4 全国选择题 以下叙述中错误的是()。 A)用户定义的函数中可以没有 return语句 B)用户定义的函数中可以有多个 return语句,以便可以调 用一次返回多个函数值 C)用户定义的函数中若没有 return语句,则应当定义函数 为 void类型 D)函数的 return语句中可以没有表达式 答案: B 72 全国选择题 以下关于 return语句的叙述中正确的是()。 A)一个自定义函数中必须有一条 return语句 B)一个自定。

56、义函数中可以根据不同的情况设置多条 return 语句 C)定义成 void类型的函数中可以有带返回值的 return语句 D) 没有 return语句的自定义函数在执行结束语句时不能返 回到调用处 答案: B 73 (6) 全局变量、局部变量与形式参数的作用域 【 考题解析 】 阅读程序 以下程序运行时输出结果是 。 #include int t; int sub(int *s) *s+=1; t+=*s; return t; main() int i; for(i=1;i4;i+) printf(%4d,sub( 答案: 2 6 74 (7) 局部变量、形式参数的存储类型和生存期 【 考题。

57、解析 】 单选题 已知在函数 f中声明了局部变量 x,如果希望 f函数第 一次被调用返回后变量 x中存储的数据保持到下次 f函数被 调用时仍可以使用,则在声明 x时必须指定其存储类型为 ( 30) 。 A. auto B. register C. static D. extern 答案: C 填空题 声明局部变量时若缺省存储类别,该变量的存储类 别是 。 答案: auto 填空题 可以改变局部变量的生存期、但不能改变它的作用 域的存储类别是 。 答案: static 75 阅读程序 以下程序运行时输出结果的第一行是 (1) , 第二 行是 (2) 。 #include int f1( ) st。

58、atic int i=0,f=1; return f*=+i; int f2( ) int i=0,f=1; return f*=+i; void main( ) printf(%dn,f1( )+f1( ); printf(%dn,f2( )+f2( ); 答案 : (1) 3 (2) 2 76 阅读程序 以下程序运行时输出到屏幕的结果第一行是 (1) ,第二行是 (2) ,第三行是 (3) 。 #include int g(int x,int y) return x+y ; int f(int x,int y) static int x=2; if(y2) x=x*x; y=x else 。

59、y=x+1; return x+y; void main( ) int a=3; printf(%dn,g(a,2); printf(%dn,f(a,3); printf(%dn,f(a,2); 答案: (1) 5 (2) 7 (3) 8 77 6. 函数高级应用 (1) 递 归函数执行过程 【 考题解析 】 阅读程序 以下程序运行时输出结果是 ( 8) 。 #include void f(long x) if(x100) printf(%d, x/10); else f(x/100); printf(%d, x%100/10); main() f(123456); 答案: 135 78 阅读。

60、程序 以下程序运行后的输出结果第一行是 (13) 。 #include void print(int n); void print_n(int n); main() print(4); void print(int n) if (n=0) return; print_n(n); if (n0) print(n-1); void print_n(int n) if(n=0)return; printf(%d,n); if(n1) print_n(n-1); else printf(n); 答案: 4321 79 阅读程序 以下程序运行时输出结果是 . #include #include void。

61、 sf(char *s1,char *s2) if(*s1=*s2) sf(s1+1,s2+1); void main( ) char a20= ABC,b20=xyz; sf(a+strlen(a),b); puts(a); 答案 : ABCxyz 80 阅读程序 以下程序运行时输出结果是 . #include #include int count(char s) int i=0; if(si=0) return 0; while(isalpha(si) i+; while(!isalpha(si) return 1+count( /* 递归调用 */ void main() char li。

62、ne=one world,one dream.; printf(%d,count(line); 答案: 4 81 阅读程序 以下程序运行时输出到屏幕的结果是 。 #include void fun(int m,int n) if(m=n) printf(%d,m); else fun(m+1,n); printf(%d,m); void main( ) fun(1,2); 答案: 221 82 (2) 函数的指针操作 函数地址的获得及保存。指向函数的指针变量声明、初 始化、赋值 调用指针变量指向的函数 【 考题解析 】 全国填空题 请将以下程序中的函数声明语句补充完整 #include int。

63、 _; main( ) int x,y,(*p)(); p=max; printf(“ int max(int a,int b) return (ab/a:b); 答案 : max(int a,int b) 或 max(int ,int ) 83 全国选择题 设有以下函数: void fun(int n,char *s) . 则下面对函数指针的定义和赋值均正确的是 A) void (*pf)(); pf=fun; B) void *pf(); pf=fun; C) void *pf(); *pf=fun; D) void (*pf)(int,char *); pf=fun; 答案 : D 学校。

64、单选题 若已有如下程序: #include double g(double a,double (*p)(double) return p(a)*p(a); main() double x=2,y; /* g函数调用语句位置 */ 现需要在 main函数中调用 g函数,以下选项中正确的 g函数 调用语句是 。 A y=g(x,exp); B y=g(x,exp(x); C y=g(x,exp(); D y=g(double x, double exp); 答案: A 84 ( 3) 返回指针类型值的函数 以下程序运行结果是()。 #include #include int * fun(int n。

65、) int *p; p=(int *)malloc(sizeof(int); *p=n+10; return p; main() int *p; p=fun(10); printf(“%dn”,*p); 答案: 20 85 7. 单向链表 结点数据类型定义 使用 malloc()函数 ,free()函数动态申请、释放结点存储区 基本操作:建立链表、遍历链表、查找结点、插入新结点、 删除结点、数据统计、链表倒序 86 建立链表关键操作 需声明指针变量: head(指向链表首结点), p1(指向新 申请结点), p2( 指向链表末结点) while(仍有数据需保存到链表 ) p1=(struct 。

66、node *)malloc(sizeof(struct node); p1-成员名 =数据 ; if(head=0) head=p2=p1; else p2-next=p1; p2=p1; p2-next=NULL; return head; 87 遍历链表 (输出结点数据,统计结点数据 )关键操作 需声明指针变量 p或直接用形参 p=head;(指向链表首结点) while(p!=NULL) 查找结点数据、输出结点数据、统计结点数据 p=p-next; 88 插入结点到链表关键操作 需声明指针变量: p(指向待插入新结点), head(指向 链表首结点) ,p1(指向插入位置之前结点), p2(指向插 入位置之后结点) 申请新结点并保存数据到结点 p=(struct node *)malloc(sizeof(struct node); p-成员 =数据 ; p-next=NULL; 若要求将新结点插入链表第一个结点前 if(head=NULL)head=p else p-next=head; head=p; return head; 89 若要求将新结点插入有序链表中 if(新结点应。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值