1、 1 (典藏精品)(典藏精品)C C 语言期末考试题库语言期末考试题库 第第 1 章章 C 语言概述语言概述 1、一个 c 程序的执行是从 A。 A)本程序的 main 函数开始,到 main 函数结束 B)本程序文件的第一个函数开始,到本程 序文件的最后一个函数结柬 C)本程序的 main 函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函 数开始,到本程序 main 函数结束 2、以下叙述正确的是 C。 A)在 C 程序中main 函数必须位于程序的最前面 B)c 程序的每行中只能写一条语句 C)c 语言本身没有输入输出语句 D)在对一个 c 程序进行编译的过程中,可发现注
2、释中的拼写错误 3、以下叙述不正确的是 D 。 A)一个 c 源程序可由一个或多个函数组成 B)一个 c 源程序必须包含一个 main 函数 C)c 程序的基本组成单位是函数 D)在 c 程序中,注释说明只能位于一条语句的后面 4、c 语言规定:在一个源程序中,main 函数的位置 C。 A)必须在最开始 B)必须在系统调用的库函数的后面 C)可以任意 D)必须在最后 5、一个 c 语言程序是由 B 。 A)一个主程序和若干子程序组成 B)函数组成 C)若干过程组成 D)若干子程序组成 6、用 C 语言编写的代码程序 B A) 可立即执行 B) 是一个源程序 C) 经过编译即可执行 D) 经过
3、编译解释才能执行 7、以下叙述中正确的是 B A) C 语言的源程序不必通过编译就可以直接运行 B) C 语言中的每条可执行语句最终都将 被转换成二进制的机器指令 C) C 源程序经编译形成的二进制代码可以直接运行 D) C 语言中的函数不可以单独进行编译 8、以下叙述中正确的是 C A) C 语言是低级语言 B) C 语言可以不用编译就能被计算机识别执行 C) C 语言以接近英语国家的自然语言和数学语言作为语言的表达形式 D) C 语言出现的最晚,具有其他语言的一切优点 9、要把高级语言编写的源程序转换为目标程序,需要使用 D A) 编辑程序 B) 驱动程序 C) 诊断程序 D) 编译程序
4、第第 3 章章 数据类型、运算符与表达式数据类型、运算符与表达式 1、C 语言基本类型包括 D。 A.整型、实型、逻辑型 B.整型、实型、字符型、逻辑型 C.整型、字符型、逻辑型 D.整型、实型、字符型 2、C 语言中的标识符只能由字母、数字、下划线三种字符组成,且第一个字符 C。 A.必须为字母 B.必须为下划线 C.必须为字母或下划线 D.可以是字母、数字、下划线中任意一种字符 3、C 语言中最简单的数据类型包括 B 。 2 A.整型、实型、逻辑型 B.整型、实型、字符型 C.整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型 4、若 a 为 int 类型,且其值为 3,则执行完表达式
5、a+=a-=a*a 后,a 的值是 C。 A.-3 B.9 C.-12 D.6 5、若 t 为 double 类型,表达式 t=1,t+5,t+的值是 D。 A.1 B.6.0 C.2.0 D.1.0 6、若已定义 x 和 y 为 double 类型,则表达式:x=1,y=x+3/2 的值是 C。 A.1 B.2 C.2.0 D.2.5 7、设 a 为 5,执行下列语句后,b 的值不为 2 的是 C。 A.b=a/2 B.b=6-(-a) C.b=a%2 D.b=a3?2:1 8、下列四组选项中,均是不合法的用户标识符的选项 C。 A.AP _0 do B.float goto _A C.b-
6、a goto int D._123 temp INT 9、下列选项中,合法的 C 语言关键字是 D。 A.VAR B.cher C.integer D.default 10、下面不正确的字符串常量是 A。 A.abc B.“1212“ C.“0“ D.“ “ 11、下面不正确的字符常量是 A。 A.“c“ B. C.W D. 12、下述程序段的输出结果是 A。 int x=10; int y=x+; printf(“%d,%d“,(x+,y),y+); A.11,10 B.11,11 C.10,10 D.10,11 13、已知各变量的类型说明如下: int k,a,b; unsigned lo
7、ng w=5; double x=1.42; 则以下不符合 C 语言语法的表达式 A。 A.x%(-3) B.w+=-2 C.k=(a=2,b=3,a+b) D.a+=a-=(b=D)*(a=3) 14、已知字母 A 的 ASCII 编码为 10 进制数 65,且 c2 为字符型,则执行语句 c2=A+6 -3后,c2 中的值为 A。 A. D B. 68 C.不确定的值 D. C 15、以下所列的 C 语言常量中,错误的是 B。 A.0xFF B.1.2e0.5 C.2L D.72 16、以下叙述正确的是 C。 A.在 C 程序中 main 函数必须位于程序的最前面 B.C 程序的每行中只能
8、写一条语句 C.C 语言本身没有输入输出语 D.在对一个 C 程序进行编译的过程中,可发现注释中的错误 17、以下运算符中,运算对象必须是整型的是 B。 A./ B.%= C.!= D.= 18、正确的标识符是 D。 A.?a B.a=2 C.a.3 D.a_3 19、在 C 语言中(以 16 位 Pc 机为例),5 种基本数据类型的存储空间长度的排列顺序为 A。 A)charint1ong intfloatdouble B)charintlong intfloatdouble C)charintlong intfloatdouble D)charintlong intfloatdouble
9、20、假设所有变量均为整型,则表达式(a2,b5,b+,a+b)的值是 B。 A)7 B)8 C)6 D)2 21、以下不正确的叙述是 D。 A.在 C 程序中,逗号运算符的优先级最低 B.在 C 程序中,APA 和 apa 是两个不同的变量 C.如果 a 和 b 类型相同,在计算了赋值表达式 a=b 后 b 中的值将放入 a 中,而 b 中的值保持 3 D.当从键盘输入数据时, 对于整型变量只能输入整型数值, 对于实型变量只能输入实型数值 22、若 x,i,j 和 k 都是 int 型变量,则计算下面表达式后,x 的值为 C。X=(i=4,j=16,k=32) A)4 B)16 C)32 D
10、)52 23、假设所有变量均为整型,则表达式(a2,b5,b+,a+b)的值是 B。 A)7 B)8 C)6 D)2 24、下列四组选项中,均不是 c 语言关键字的选项是 A。 A)define IF type B)getc char printf C)include scanf case D)while go pow 25、下面四个选项中,均是 c 语言关键字的选项是 B。 A)auto enum include B)switch typedef continue C)signed union scanf D)if struct type 26、下面四个选项中,均是合法整型常量的选项是 A。
11、 A)160 -0xffff 011 B)-0xcdf 01a 0xe C)-01 986.012 0668 D)-0x48a 3e5 0x 27、下面四个选项中,均是合法转义字符的选项是 A。 A) n B) 017 ; C)018 f xab D)0 101 xlf 28、下面四个选项中,均是正确的八进制数或十六进制数的选项是 C。 A)-10 0x8f -011 B)0abc -017 0xc C)0010 -0x11 0xf1 D)0a12 -0x123 -0xa 29、己知各变量的类型说明如下:int i8,k,a,b;unsigned long w5; double x1.42,y
12、 5.2; 则以下符合 C 语言语法的表达式 A A)a+a-(b4)*(a3) B)aa*32 C)x(-3) D)yfloat(i) 30、求下列算术表达的值,设 x=2.5, a=7, y=4.7。x+a%3*(int)(x+y)%2/4=2.5 31、求下列算术表达的值,设 a=2,b=3,x=3.5,y=2.5. (float)(a+b)/2+(int)x%(int)y=3.5 32、写出下面赋值表达式运算后 a 的值,设原来 a=12: (1)a+=a(2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2) n 的值等于 5 (6)a+=a-=a*=a (1
13、) 24(2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第第 4 章章 顺序程序设计顺序程序设计 1、有以下程序 main() int m=0256,n=256;printf(“%o %on“,mn,n);程序运行后的输出结果是 C A) 0256 0400 B) 0256 256 C) 256 400 D) 400 400 2、有以下程序 main()int a=666,b=888; printf(“%dn“,a,b); 程序运行后的输出结果是 B A) 错误信息 B) 666 C) 888 D) 666,888 3、有以下程序 main( )int x=102,y=012;
14、 printf(“%2d,%2dn”,x,y); 执行后输出结果是 C A) 10,01 B) 02,12 C) 102,10 D) 02,10 4、有以下程序 main()int a; char c=10;float f=100.0; double x;a=f/=c*=(x=6.5);printf(“%d %d %3.1f %3.1fn“,a,c,f,x); 程序运行后的输出结果是 B A) 1 65 1 6.5 B) 1 65 1.5 6.5 C) 1 65 1.0 6.5 D) 2 65 1.5 6.5 5、有定义语句:int x,y;, 若要通过 scanf(“%d,%d“,语句使变量
15、 x 得到数值 11,变 量 y 得到数值 12,下面四组输入形式中,错误的是 A A) 11 12= a) if(ib)?a:b; d=(dc)?d:c; printf(“the max number is %dn “,d); 41、以下面的方程为基础,写一程序,输入 X 值,输出 Y 值,方程如下:当 x=90) num=65; else if(num=80) num=66; else if(num=70) num=67; else if(num=60) num=68; else num=69; printf(“the level is :“); switch(num) case 65:
16、printf(“%c“,num);break; case 66: printf(“%c“,num);break; case 67: printf(“%c“,num);break; case 68: printf(“%c“,num);break; case 69: printf(“%c“,num);break; 19 43、给一个不多于 5 位的正整数,要求:(1)求出它是几位数,(2)分别打印出每一位数字(3) 按顺序打印出各位数字,例如原数时 321,应输出 123。 教师批改: main() long num; int k; printf(“please input a num form
17、0-99999:n“); scanf(“%ld“, printf(“ the answer one is: the long of the number is: “); if(num=10000) k=5; printf(“%d“,k); else if(num=1000) k=4; printf(“%d“,k); else if(num=100) k=3; printf(“%d“,k); else if(num=10) k=2; printf(“%d“,k); else k=1; printf(“%d“,k); printf(“n the answer two is :“); switch(
18、k) case 1: printf(“%5ld“,num);break; case 2: printf(“%5ld %5ld“,num/10,num%10);break; case 3: printf(“%5ld %5ld %5ld“,num/100,num%100/10,num%10);break; case 4: 20 printf(“%5ld %5ld %5ld %5ld“,num/1000,num%1000/100,num%100/10,num%10);break; case 5: printf(“%5ld %5ld %5ld %5ld %5ld“,num/10000,num%1000
19、0/1000,num%1000/100,num%100/1 0,num%10);break; printf(“nthe answer three is: “); switch(k) case 1: printf(“%ld“,num);break; case 2: printf(“%ld%ld“,num%10,num/10);break; case 3: printf(“%ld%ld%ld“,num%10,num%100/10,num/100);break; case 4: printf(“%ld%ld%ld%ld“,num%10,num%100/10,num%1000/100,num/1000
20、);break; case 5: printf(“%ld%ld%ld%ld%ld“,num%10,num%100/10,num%1000/100,num%10000/1000,num/1000 0);break; 44、企业发放的奖金根据利润提成。利润低于或等于 10 万的,奖金可提成 10%;利润高于 10 万,低于 20 万的,低于 10 万的部分按 10%提成,高于 10 万的提成 7.5%;高于 20 万低 于 40 万时,低于 20 万的按上述方法提成(下同) 。高于 20 万的按 5%提成。高于 40 万低 于 60 万的, 高于 40 万的部分按 3%提成。 高于 60 万低于
21、100 万的, 高于 60 万的部分按 1.5% 提成,超过 100 万的部分按 1%提成。要求从键盘输入当月利润 I,求应发奖金数。 要求: (1)用 if 语句编程序。 (2)用 switch 语句编程序。 教师批改: (1) : main() long i; int bonus,bonus1,bonus2,bonus4,bonus6,bonus10; printf(“nnPlease input the bonus of this month:n“); scanf(“%ld“, printf(“nn This month bonus is “); bonus1=100000*0.1; b
22、onus2=bonus1+100000*0.075; bonus4=bonus2+200000*0.05; bonus6=bonus4+200000*0.03; bonus10=bonus6+400000*0.015; if(ic) t=c;a=c;c=t; if(ad) t=a;a=d;d=t; /*排第二个位置的数*/ if(bc) t=b;b=c;c=t; if(bd) t=b;b=d;d=t; /*排第三、四个位置的数*/ if(cd) t=c;c=d;d=t; printf(“the number form smallest to biggest is:n%6dn%6dn%6dn%6
23、dn“,a,b,c,d); 46、 有 4 个圆塔, 圆心分别为(2, 2), (-2,2),(-2,-2),(2,-2),圆半径为 1, 这 4 个塔的高度为 10m, 塔外无建筑物,今输入任何一点的坐标,求该点的建筑高度,(塔外的高度为 0)。 教师批改: #include /*数学函数头文件,用来调用 fabs()和 sqrt()函数*/ main() int h; float w,x,y,j,i,k; printf(“please input the zuobiao,for example:1,2n“); scanf(“%f,%f“, if(x=3|x=3|y100 ) d=c/100
24、; printf ( “ %d %dn“, c, d ); else printf (“ a+b=%dn“, a+b); 运行程序: 输入:11,10 输出:221 2 输入:3,2 输出:a+b=5 若 a、b 的平方和大于 100 时,要求输出百位数以上的数字,即去掉个位及十位数字 后的数。一个数 k,取百位数以上(含百位数)的数字为 k/100;取百位数以下(不含百位数)的 数字为 k %100。 如: 12345, 12345/100 的值为 123, 即百位数以上(含百位数)的数; 12345%100 的值为 45,即百位数以下(不含百位数)的数。 第第 6 章章 循环控制循环控制
25、1、设变量已正确定义,则以下能正确计算 f = n!的程序段是 A) f=0; B) f=1; for(i=1;i=2;i-) f*=i; D 教师批改:D 2、有以下程序 main() int k=5,n=0; while(k0) switch(k) default : break; case 1 : n+=k; case 2 : case 3 : n+=k; k-; 23 printf(“%dn“,n); 程序运行后的输出结果是 A)0 B)4 C)6 D)7 D 教师批改:D 3、有以下程序 main() int a=1,b; for(b=1;b=8) break; if(a%2=1)
26、a+=5; continue; a-=3; printf(“%dn“,b); 程序运行后的输出结果是 A)3 B)4 C)5 D)6 B 教师批改:B 4、有以下程序 main () int s=0,a=1,n; scanf(“%d“, do s+=1; a=a-2; while(a!=n); printf(“%dn“,s); 若要使程序的输出值为 2,则应该从键盘给 n 输入的值是 A) -1 B) -3 C) -5 24 D) 0 B 教师批改:B 5、若有如下程序段,其中 s、a、b、c 均已定义为整型变量,且 a、c 均已赋值(c 大于 0) s=a; for(b=1;b1;n-) C
27、) s=s+1/n; 25 D) printf(“%6.4f/n“,s); C 教师批改:C 8、有以下程序 main() int i; for(i=0;i8;y=+i) printf(“%d,%d “,x-,y); A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1 D 教师批改:D 28、以下程序的输出结果是 main( ) int n=4; while(n-)printf(“%d “,-n); A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0 A 教师批改:A 29、以下程序的输出结果是 main( ) int i; for(i=
28、1;i100)break; B) for( ; ;); C) int k=1000; do+k; while(k=10000); D) int s=36; while(s);-s; C 教师批改:C 33、执行语句: for(i=l:i+m)n-=m; printf(“m=%dn“,m); A) m=3 B) m=2 C) m=1 D) m=1 C 教师批改:C 36、设 x 和 y 均为 int 型变量,则执行下的循环后,y 值为 for(y=1,x=1;y=10)break; if (x%2=1) x+=5; continue; x-=3; A) 2 B) 4 C) 6 D) 8 C 教师
29、批改:C 37、假定 a 和 b 为 int 型变量,则执行以下语句后 b 的值为 a=1; b=10; do b-=a; a+; while (b-3;j-) if(j%3)j-; -j; -j; printf(“%d “,j); 34 A) 6 3 B) 7 4 C) 6 2 D) 7 3 B 教师批改:B 39、若 ij 已定义为 int 类型,则以下程序段中内循环体的总的执行次数是 for (i=5;i;i-) for(j=0;j0; y-) if(y%3=0) printf(“%d“, -y);continue; A) 741 B) 852 C) 963 D) 875421 B 教师
30、批改:B 44、若 x 是 int 型变量,且有下面的程序片段: for(x=3; x1.0) x=y; y=z; z=x/y; else break printf(“%fn“,y); 若运行时从键盘上输入 3.6 2.4(表示回车),则输出的结果是 A) 1.500000 B) 1.600000 C) 2.000000 D) 2.400000 B 教师批改:B 48、执行下面程序片段的结果是( ) int x=23; do printf(“%2d“,x-); while(!x); A) 打印出 321 B) 打印出 23 C) 不打印任何内容 D) 陷入死循环 B 教师批改:B 49、语句
31、while(!E);中的条件!E 等价于( ) 。 A)E = = 0 B)E!=1 C)E!=0 D)E A 教师批改:A 50、C 语言中( )。 A)不能使用 do-while 语句构成的循环 B)do-while 语句构成的循环必须 用 break 语句才能退出 C)do-while 语句构成的循环,当 while 语句中的表达式值为非零时结束循环 D)do-while 语 37 句构成的循环,当 while 语句中的表达式值为零时结束循环 D 教师批改:D 51、以下程序的输出结果是( )。 # include main() int i; for ( i=1;i=0.0 amin=x
32、 85、(13) 下面程序的输出是 【 】 。 main() int x=2; while(x-); printf(“%dn“, x); 教师批改:-1 86、设有如下程序段: int i=0, sum=1; do sum+=i+; while(is2)S; B) if(strcmp(s1,s2) )S; C) if(strcmp(s2,s1)0) S; D) if(strcmp(s1,s2)0)S; D 教师批改:D 16、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是 A) char s10=” abcdefg”; B) char t=”abcdefg”,*s=t; C) ch
33、ar s10;s=”abcdefg”; D) char s10;strcpy(s,”abcdefg” ); C 教师批改:C 17、下列选项中正确的语句组是 A) char s8; s=“Beijing“; B) char *s; s=“Beijing“; C) char s8; s=“Beijing“; D) char *s; s=“Beijing“; D 教师批改:D 18、以下程序的输出结果是 main() char cf35=“AAAA“,“BBB“,“CC“; printf(“%s“n“,ch1); A) “AAAA“ B) “BBB“ C) “BBBCC“ D) “CC“ B 教师
34、批改:B 19、以下定义语句中,错误的是 A) int a=1,2; B) char *a3; C) char s10=”test”; D) int n=5,an; 52 D 教师批改:D 20、 以下选项中, 不能正确赋值的是 A) char s110;s1= “Ctest” ; B) char s2= C , t, e, s, t; C) char s320=“Ctest”; D) char *s4=“Ctestn” A 教师批改:A 21、以下程序的输出结果是 main() char w10= “ABCD”,”EFGH”,”IJKL”,”MNOP”,k; for(k=1;ks2) B.
35、if(strcmp(s1,s2) C. if(strcmp(s2,s1)O) D. if(strcmp(s1,s2)O) D 教师批改:D 34、下面程序段运行结果_。 55 char a3,b =“China“; a=b; printf(”%s” ,a); A. 运行后将输出 China B. 运行后将输出 Ch C. 运行后将输出 Chi D. 编译出错 D 教师批改:D 35、在 C 语言中,引用数组元素时,其数组下标的数据类型允许是_。 A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 C 教师批改:C 36、若有说明:int al0;则对 a 效组
36、元素的正确引用是_。 A. a10 B. a35 C. a(5) D. a10-10 D 教师批改:D 37、在 C 语言中一维数组的定义方式为;类型说明符 数组名_。 A. 常量表达式 B. 整型表达式 C. 整型常量或整型表达式 D. 整型常量 A 教师批改:A 38、 以下能对一维数组a进行正确初始化的语句是_。 A. int alO(0, 0 0, 0, 0); B. int al0 ; C. int a 0; D. int a1010*1; C 教师批改:C 39、以下对二维数组 a 的正确说明是_。 A. int a3 ; B. float a(3,4); C. double a1
37、4; D. float a(3)(4); C 教师批改:C 40、若有说明:int a34;则对 a 数组元素的正确引用是_。 A. a24 B. al,3 C. al+l0 D. a(2)(1) C 教师批改:C 41、若有说明:int a34;则对 a 效组元素的非法引用是_。 A. a02*1 B. al3 C. a4-20 D. a04 D 教师批改:D 42、若有说明:int a 3=1,2,3,4,5,6,7;则 a 数组第一维的大小是_。 A. 2 B. 3 C. 4 D. 无确定值 B 教师批改:B 43、以下程序段的结果是_。 int k; int a33=1,2,3,4,5
38、,6,7,8,9; for(k=0;kxj) k=xj;xj=xj+1;xj+1=k; for(i=0;i=0;j-) printf(“%d“,aj; printf(“n“); A) 10000 B) 10010 C) 00110 D) 10100 B 教师批改:B 59、以下程序的输出结果是_。 main() int i,k,a10,p3: K=5; for (i=0;i=0 s3=0; printf(“%sn“,s); 教师批改:abc 84、以下程序运行后的输出结果是 【 】 。 65 main() char s =“9876”,*p; for ( p=s ; px) ai+1=ai;
39、i-; else break; ai+1=x; for(i=0;i=A) else tranj=chj; j+; n=j; printf(“noriginal text:“); for(j=0;js2,输出一个正数;s1=s2,输 出 0;s2j) printf(“The array a is length than array b“); else if(i=b1) strcpy(b2,pb); printf(“%dn“,strlen(b2) ); A) 8 B) 3 C) 1 D) 7 D 教师批改:D 25、以下程序的输出结果是 main( ) char ch34=“123“,“456“,
40、“78“,*p3; int i; for(i=0;i=0;i-) sum( printf( “%dn”,aa0); 执行后的输出结果是_。 A) 4 B) 3 C) 2 D) 1 A 教师批改:A 60、有以下程序 main() int x8=8,7,6,5,0,0,*s; s=x+3 printf(“%dn“,s2); 执行后输出结果是_。 A) 随机值 B) 0 C) 5 D) 6 B 教师批改:B 61、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10 void arrin(int xN) int i=0; while(i*s C) apas D)
41、p-ap-s B 教师批改:B 63、若有定义:int aa8; 。则以下表达式中不能代表数组元 aa1的地址的是_。 A) printf( “%d”,*-p); A) 非法 B)a4的地址 C)5 D)3 C 教师批改:C 65、下面程序的输出结果是_。 main() int a =1,2,3,4,5,6,7,8,9,0,*p; p=a; printf( “%dn”,*p+9); A) 0 B) 1 C) 10 D) 9 C 教师批改:C 66、以下程序的输出结果是_。 main() int i, k, a10, p3; k=5; for (i=0;ia0 C) *p*a0 D) *p0 *
42、a0 B 教师批改:B 73、设有如下定义: int arr=6,7,8,9,10; int * ptr; 则下列程序段的输出结果为_。 ptr=arr; * (ptr+2)+=2; printf (“%d,%dn“,*ptr,*(ptr+2) ); A) 8,10 B) 6,8 C) 7,9 D) 6,10 D 教师批改:D 74、若有以下定义和语句: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则不能表示 a 数组元素的表达式是_。 A) *p B) a10 C) *a D) ap-a B 教师批改:B 75、若有以下的定义: int a=1,2,3,4,5,6,
43、7,88,9,10, *p=a; 则值为 3 的表式是_。 A) p+=2, *(p+) B) p+=2,*+p C) p+=3, *kp+ D) p+=2,+*p A 教师批改:A 76、若有以下说明: int a10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 6 的表达式是_。 A) *p+6 B) *(p+6) C) *p+=5 D) p+5 C 教师批改:C 77、下列程序的输出结果是_。 main( ) int a5=2,4,6,8,10,*P,* *k; p=a; k= printf(“%d“,*(p+) ); printf(“%dn“,* *k); A) 4
44、 4 B) 2 2 96 C) 2 4 D) 4 6 C 教师批改:C 78、执行以下程序后,y 的值是_。 main ( ) int a=2,4,6,8,10; int y=1,x,*p; p= for(x=0;x=max 或 max0;i-) stri=stri-1; str0=temp; main() char s50; int n, i, z; scanf(“%d,%s“, z=strlen(s); for(i=1; i=0t+; return 【2】; 教师批改: 【1】*t 或 t0 【2】*s-*t 或 *s-t0 或 s0-*t 或 s0-t0 103 103、以下程序的输出结
45、果是【 】 。 main() char *p=“abcdefgh“,*r; long *q; q=(long*)p; q+; r=(char*)q; printf(“%sn“,r); 教师批改:efgh 104、mystrlen 函数的功能是计算 str 所指字符串的长度,并作为函数值返回。请填空。 int mystrlen(char *str) int i; for(i=0; 【1】!=0;i+); return( 【2】 ); 教师批改: 【1】*(str+i)stri 【2】i 105、以下函数把 b 字符串连接到 a 字符串的后面,并返回 a 中新字符串的长度。请填空。 Strcen(char a, char b) int num=0,n=0; while(*(a+num)!= 【1】 ) num+; while(bn)*(a+num)=bn; num+; 【2】; return(num); 教师批改: 【1】 0或 0 【2】n+或 n+=1 或 n=n+1 106、 以下