收藏 分享(赏)

MOOC 高级语言-河南科技学院 中国大学慕课答案.docx

上传人:小肥粒 文档编号:21756193 上传时间:2024-04-21 格式:DOCX 页数:22 大小:72.24KB
下载 相关 举报
MOOC 高级语言-河南科技学院 中国大学慕课答案.docx_第1页
第1页 / 共22页
MOOC 高级语言-河南科技学院 中国大学慕课答案.docx_第2页
第2页 / 共22页
MOOC 高级语言-河南科技学院 中国大学慕课答案.docx_第3页
第3页 / 共22页
MOOC 高级语言-河南科技学院 中国大学慕课答案.docx_第4页
第4页 / 共22页
MOOC 高级语言-河南科技学院 中国大学慕课答案.docx_第5页
第5页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 MOOC 高级语言-河南科技学院 中国大学慕课答案第一章单元测试1、问题:在一个 C 程序中( )。A) main 函数必须出现在所有函数之前 B) main函数可以在任何地方出现 C) main 函数必须出现在所有函数之后 D) main 函数必须出现在固定位置选项:A、C 语言中 main 函数的位置不固定B、C 语言中 main 函数的位置不固定C、C 语言中 main 函数的位置不固定D、C 语言中 main 函数的位置不固定正确答案:【C 语言中 main 函数的位置不固定】2、问题:以下选项中合法的用户标识符是( )。A) long B) _2Test C) 3Dmax D)A.

2、dat选项:A、标识符不能是关键字B、符合标符的定义C、标示符不能用数字开头D、标识符中不能有除下划线以外的其他特殊字符正确答案:【符合标符的定义】3、问题:以下选项中不属于 C 语言的类型的是( )。A) integer B)float C) int D)char选项:A、integer 不是 C 语言中的类型关键字B、float 是 C 语言中的浮点类型关键字C、int 是 C 语言中的整型关键字D、char 是 C 语言中的字符类型关键字正确答案:【integer 不是 C 语言中的类型关键字】4、问题:以下变量 x.、y、z 均为 double 类型且已正确赋值,不能正确表示数学式子选

3、项:的 C 语言表达式是( )。A) x/y*z B) x*(1/(y*z) C) x/y*1/z D) x/y/zA、该答案表示的是B、符合要求C、符合要求 D、符合要求正确答案:【该答案表示的是】5、问题:C 语言中运算对象必须是整型的运算符是( )。A) % B) / C) = D) =选项:A、%是求余运算,运算对象只能是整型数据B、/是除法运算符,运算对象可以是实型数据C、=是赋值运算符,运算对象可以是其它类型D、=是关系运算符,运算对象可以是其它类型正确答案:【%是求余运算,运算对象只能是整型数据】6、问题:设有 int x=11; 则表达式(x+ * 1/3) 的值是( )。 A

4、) 3 B) 4 C) 11 D) 12选项:A、表达式 x+ * 1/3 运算过程中,先使用 x 的值参于运算,等同于 11/3,由于运算对象均为整型,故得整数商 3,当该表达式运算结束后,x 的值自增为 12B、不符合运算规则C、不符合运算规则D、不符合运算规则正确答案:【表达式 x+ * 1/3 运算过程中,先使用 x 的值参于运算,等同于 11/3,由于运算对象均为整型,故得整数商 3,当该表达式运算结束后,x 的值自增为 12】7、问题:以下选项中,非法的字符常量是( )。A) t B) 17 C)“n” D) xaa选项:A、是转义字符B、是转义字符C、是字符串,不是字符D、是转义

5、字符正确答案:【是字符串,不是字符】8、问题:若有定义:int a=8,b=5,c;,执行语句 c=a/b+0.4;后,c 的值为( )。A) 1.4 B) 1 C) 2.0 D) 2选项:A、不符合运算规则B、a/b 的结果是 1,1 加上 0.4 是 1.4,由于 c 是整型变量,进行强制类型转换,故c 的值是 1C、不符合运算规则D、不符合运算规则正确答案:【a/b 的结果是 1,1 加上 0.4 是 1.4,由于 c 是整型变量,进行强制类型转换,故 c 的值是 1】 9、问题:以下程序的输出结果是( )。#include stdio.hvoid main() charc=z;prin

6、tf(“%c”,c-25);A) a B) Z C) z-25 D) y选项:A、字符z的 ASCII 码值是 122,122-25=97,97 是字符a的 ASCII 码值,按%c 格式输出为字符a。B、计算错误C、表示错误D、计算错误正确答案:【字符z的 ASCII 码值是 122,122-25=97,97 是字符a的 ASCII 码值,按%c 格式输出为字符a。】10、问题:以下选项中,与 k=n+完全等价的表达式是( )。A) k=n,n=n+1 B)n=n+1,k=n C) k=+n D) k+=n+1选项:A、k=n+的含义是先将 n 的值赋给变量 k,然后 n 自加 1,故等价于

7、逗号表达式k=n,n=n+1B、不符合 k=n+的含义C、不符合 k=n+的含义D、不符合 k=n+的含义正确答案:【k=n+的含义是先将 n 的值赋给变量 k,然后 n 自加 1,故等价于逗号表达式 k=n,n=n+1】第二章单元测试1、问题:能正确表示逻辑关系:“a=10 或 a0”的 C 语言表达式是( )。A) a=10 ora=0 B) a=0|a=10 C) a=10 a=0 D) a=10|a=0选项:A、解析错误B、解析错误C、解析错误D、表达式“a=10 或 a0”是指 a 大于等于 10 或者小于等于 0,故只有该答案正确。正确答案:【表达式“a=10 或 a0”是指 a

8、大于等于 10 或者小于等于 0,故只有该答案正确。】2、问题:设 a、b、c、d、m、n 均为 int 型变量,且 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=ab)(n=cd)运算后,n 的值应为( )。A) 0 B) 1 C)2 D) 3选项:A、理解错误B、理解错误C、表达式(m=ab)(n=cd)运算时,由于 m=ab 的值是 0,故运算不再继续运算,产生运算短路,n=cd 不再执行,故 c 的值不变 D、理解错误正确答案:【表达式(m=ab)(n=cd)运算时,由于 m=ab 的值是 0,故运算不再继续运算,产生运算短路,n=cd 不再执行,故 c 的值不变】

9、3、问题:假定 w、x、y、z、m 均为 int 型变量,有如下程序段:w=1; x=2; y=3;z=4; m=(wx)?w: x; m=(my)?m:y; m=(mz)?m:z;则该程序运行后,m 的值是( )A) 4 B) 3C) 2 D) 1选项:A、运算错误B、运算错误C、运算错误D、本题主要考查条件运算的运算规则,执行 m=(wx)?w: x;以后 m 的值是 1,再执行 m=(my)?m:y; m=(mz)?m:z;以后,m 的值仍然是 1。正确答案:【本题主要考查条件运算的运算规则,执行 m=(wx)?w: x;以后 m 的值是1,再执行 m=(my)?m:y; m=(mz)?

10、m:z;以后,m 的值仍然是 1。】4、问题:若执行以下程序时从键盘上输入 9,则输出结果是( )#includestdio.hvoid main() int n; scanf(“%d”,n); if(n+10) printf(“%dn”,n); elseprintf(“%dn”,n-);A) 11 B) 10 C) 9 D) 8选项:A、解析错误B、语句 if(n+10) printf(“%dn”,n);执行时,先计算表达式“n+10”,由于 n 的值是9,故表达式“n+10”值为真,此时 n 自加为 10,故 printf(“%dn”,n);语句输出 10。C、解析错误D、解析错误正确答案

11、:【语句 if(n+10) printf(“%dn”,n);执行时,先计算表达式“n+10”,由于n 的值是 9,故表达式“n+10”值为真,此时 n 自加为 10,故 printf(“%dn”,n);语句输出 10。】5、问题:若有定义: float w; int a, b; 则合法的 switch 语句是( )。 A) switch(w) B)switch(a) case 1.0: printf(*n); case 1 printf(*n); case 2.0: printf(*n); case 2printf(*n); C) switch(b) D) switch(a+b); case

12、1: printf(*n); case 1: printf(*n);default: printf(n); case 2: printf(*n); case 2: printf(*n); default: printf(n); 选项:A、case 后的常量是实数,不符合规则B、case 后面无冒号C、符合 switch 语句的构造规则D、switch 后面多了分号正确答案:【符合 switch 语句的构造规则】6、问题:程序 #include stdio.hvoid main() int n=9;while(n6) n-;printf(“%d”,n);的输出结果是( )A)987 B) 876

13、 C) 8765 D)9876选项: A、输出结果不对B、循环体执行三次,第一次输出 8,第二次输出 7,第三次输出 6。C、输出结果和输出次数都不对D、输出结果和输出次数都不对正确答案:【循环体执行三次,第一次输出 8,第二次输出 7,第三次输出 6。】7、问题: 以下程序段的输出结果是( )。int x=3; do printf(%3d,x-=2);while(!(-x);A)1 B) 0 C)死循环 D) 1,-2,选项:A、分析错误B、分析错误C、分析错误D、do.while 是一个先执行循环体再判断的循环语句,初始 x=3,执行printf(%3d,x-=2);输出 1,此时 x=1

14、;while(!(-x)中的循环条件是先让 x 自减 1,x=0,!(x)为真,继续执行循环体,printf(%3d,x-=2);输出-2,再判断!(-x)的值,此时!(-x)为假,结束循环。正确答案:【do.while 是一个先执行循环体再判断的循环语句,初始 x=3,执行printf(%3d,x-=2);输出 1,此时 x=1;while(!(-x)中的循环条件是先让 x 自减 1,x=0,!(x)为真,继续执行循环体,printf(%3d,x-=2);输出-2,再判断!(-x)的值,此时!(-x)为假,结束循环。】8、问题:设?i、j、k 均为 int 型变量,则执行完下面的 for 循

15、环后,k 的值为( )。for(i=0,j=10;i=j;i+,j-)k=i+j;A)12 B) 10 C) 11 D) 9选项:A、分析错误B、循环体共执行了 6 次,每一次 k 的值均等于 i+j,结果为 10.C、分析错误D、分析错误正确答案:【循环体共执行了 6 次,每一次 k 的值均等于 i+j,结果为 10.】9、问题:以下程序的输出结果是( )。#include stdio.hvoid main() int a, b;for(a=1,b=1; a=100; a+) if(b=10) break;if(b%3=1) b+=3; continue;printf(“%dn”,a);A)

16、101 B) 6 C) 5 D) 4选项:A、分析错误B、分析错误C、分析错误D、注意 continue 和 break 的使用,循环体共执行了 4 次正确答案:【注意 continue 和 break 的使用,循环体共执行了 4 次】10、问题:以下程序的输出结果是( )。#include stdio.hvoid main() inta=0,i;for(i=1;i5;i+) switch(i) case 0: case 3:a+=2; case 1:case 2:a+=3;default:a+=5;printf(%dn,a);A)31 B)13 C)10 D)20 选项:A、循环共执行了 4

17、 次,由于 switch 语句中没有使用 break 语句,当 i=1 时执行了a+=3;a+=5;结果是 a=8;当 i=2 时执行了 a+=3;a+=5;结果是 a=16;当 i=3 时执行了a+=2;a+=3;a+=5;结果是 a=26;当 i=4 时执行了 a+=5;结果是 a=31B、分析错误C、分析错误D、分析错误正确答案:【循环共执行了 4 次,由于 switch 语句中没有使用 break 语句,当 i=1 时执行了 a+=3;a+=5;结果是 a=8;当 i=2 时执行了 a+=3;a+=5;结果是 a=16;当 i=3 时执行了 a+=2;a+=3;a+=5;结果是 a=2

18、6;当 i=4 时执行了 a+=5;结果是 a=31】第三章单元测试1、问题:假定 int 类型变量占用两个字节,定义:int x10=0,2,4;,则数组 x 在内存中所占字节数是( )A) 3 B) 6 C) 10 D) 20选项:A、理解错误B、理解错误C、理解错误D、int x10=0,2,4实际上定义一个具有 10 个 int 型元素的一维数组,每个元素占2 字节,故共占 20 个字节正确答案:【int x10=0,2,4实际上定义一个具有 10 个 int 型元素的一维数组,每个元素占 2 字节,故共占 20 个字节】2、问题:执行下面的程序段后,变量 k 中的值为( )。 int

19、 k=3, s2; s0=k;k=s1*10; A)不定值 B) 33C) 30D) 10选项:A、int k=3,s2;定义了一个一维数组 s2,s2中有两个元素 s0和 s1,后面的语句使 s0=3,但 s1没有确定的值,故执行语句 k=s1*10 后,k 的值不确定B、理解错误C、理解错误D、理解错误正确答案:【int k=3,s2;定义了一个一维数组 s2,s2中有两个元素 s0和 s1,后面的语句使 s0=3,但 s1没有确定的值,故执行语句 k=s1*10 后,k 的值不确定】3、问题:若有说明“int x34;”,则对 x 数组元素的正确引用是( )。A)x24; B) x1,3

20、 C) x4-20 D) x30选项:A、x24中的第二个下标越界B、x1,3不符合 C 语言的语法规则C、int x34共定义了 12 个数组元素,分别是 x00,x01,x02,x03, x10,x11,x12,x13,x20,x21,x22,x23。x4-20指的是 x20。D、x30中的第一个下标越界正确答案:【int x34共定义了 12 个数组元素,分别是 x00,x01,x02,x03,x10,x11,x12,x13,x20,x21,x22,x23。x4-20指的是 x20。】4、问题:若的以下语句,则下面( )是正确的描述。char x=”12345”;chary=1,2,3,

21、4,5;A)x 数组和 y 数组的长度相同 B) x 数组的长度大于 y 数组的长度 C) x 数组的长度小于 y 数组的长度 D) x 数组等价于 y 数组选项:A、理解错误B、由于字符串”12345”隐含着一个字符串结束标志0,故 char x=”12345”定义的数组 x 的长度是 6;而 char y=1,2,3,4,5;定义的 y 数组长度是 5。C、理解错误D、理解错误正确答案:【由于字符串”12345”隐含着一个字符串结束标志0,故 char x=”12345”定义的数组 x 的长度是 6;而 char y=1,2,3,4,5;定义的 y 数组长度是 5。】5、问题:程序#inc

22、lude stdio.hvoid main() int n5=0,0,0,i,k=2;for(i=0;ik;i+)ni=ni+1;printf(“%dn”,nk);输出结果是( )。A) 不确定的值 B) 2 C) 1 D) 0选项:A、理解错误B、执行过程分析错误C、执行过程分析错误D、循环体执行了 2 次,使得 n0=1,n1=1,n2并没有被循环所赋值,故n2=0。正确答案:【循环体执行了 2 次,使得 n0=1,n1=1,n2并没有被循环所赋值,故 n2=0。】6、问题:程序#include stdio.hvoid main() int p7=11,13,14,15,16,17,18,

23、i=0,k=0;while(i7pi%2)k=k+pi;i+; printf(%dn,k);执行后输出结果是( )。A) 58 B) 56C) 45 D) 24选项:A、循环条件分析错误B、循环条件分析错误C、循环条件分析错误D、当表达式 i7pi%2 值为真时执行循环体,故该程序的循环体只执行了两次,k的值是 24。正确答案:【当表达式 i7pi%2 值为真时执行循环体,故该程序的循环体只执行了两次,k 的值是 24。】 7、问题:以下程序的输出结果是( )。#include stdio.hvoid main() int i,a10;for(i=9;i=0;i-) ai=10-i;print

24、f(“%d%d%d”,a2,a5,a8);A) 258 B) 741 C) 852D) 369选项:A、分析方法错误B、分析方法错误C、该程序的循环语句使得:a9=1,a8=2,a7=3,a6=4,a5=5,a4=6,a3=7,a2=8,a1=9,a0=10,printf(“%d%d%d”,a2,a5,a8);的输出结果 852D、分析方法错误正确答案:【该程序的循环语句使得:a9=1,a8=2,a7=3,a6=4,a5=5,a4=6,a3=7,a2=8,a1=9,a0=10,printf(“%d%d%d”,a2,a5,a8);的输出结果 852】8、问题:以下程序的输出结果是( )#incl

25、ude stdio.hvoid main() intb33=0,1,2,0,1,2,0,1,2,i,j,t=1; for(i=0;i3;i+) for(j=i;j=i;j+)t=t+bibjj;printf(%dn,t);A) 3 B) 4 C) 1 D) 9选项:A、循环分析错误B、本题考查是的数组的下标变化,注意内循环的循环条件是 j=i,输出结果是 4。C、循环分析错误D、循环分析错误正确答案:【本题考查是的数组的下标变化,注意内循环的循环条件是 j=i,输出结果是 4。】9、问题: 程序#include stdio.h#include string.hvoid main() char

26、s=n123;printf(%d,%dn,strlen(s),sizeof(s);执行后输出结果是( )。A) 赋初值的字符串有错 B) 6,7 C) 5,6 D) 6,6选项:A、不理解字符串初始化B、对字符串和字符数组分析错误C、char s=n123中、n是转义字符换行,是转义字符表示,故字符串的长度是 5,为数组 s 开辟了 6 个字节的内存空间。D、对字符串和字符数组分析错误正确答案:【char s=n123中、n是转义字符换行,是转义字符表示,故字符串的长度是 5,为数组 s 开辟了 6 个字节的内存空间。】10、问题:程序执行后的输出结果是( )。#include stdio.h

27、#include string.hvoidmain() char arr24; strcpy(arr0,you); strcpy(arr1,me); arr03=; printf(%sn,arr); A) youme B) you C) me D) err选项:A、二维数组的在内存的存储方式是行主序存储,char arr24定义了 8 个数组元素,它们以 arr00,arr01,arr02,arr03,arr10,arr11,arr12,arr13顺序在内存开辟空间,语句 strcpy(arr0,you)使 arr00=y,arr01=o,arr02=u,arr03=0。语句 strcpy(a

28、rr1,me);使arr10=m,arr11=e,arr12=0。arr03=使 arr03重新赋值为。printf(%s n,arr)以字符串格式输出,arr 为首地址,故输出结果为 youme。?B、字符串结束标志分析的不对C、字符串起始地址分析的不对D、理解错误正确答案:【二维数组的在内存的存储方式是行主序存储,char arr24定义了 8 个数组元素,它们以arr00,arr01,arr02,arr03,arr10,arr11,arr12,arr13顺序在内存开辟空间,语句 strcpy(arr0,you)使arr00=y,arr01=o,arr02=u,arr03=0。语句 str

29、cpy(arr1,me);使arr10=m,arr11=e,arr12=0。arr03=使 arr03重新赋值为。printf(%s n,arr)以字符串格式输出,arr 为首地址,故输出结果为 youme。?】第四章单元测试1、问题:以下函数值的类型是( )。fun( float x ) float y;y= 3*x-4;return y;A) int B)不确定 C) void D) float选项:A、没有指定函数类型时,系统默认函数的类型是 int 类型。B、没有指定函数类型时,系统默认函数的类型是 int 类型。C、没有指定函数类型时,系统默认函数的类型是 int 类型。D、没有指定

30、函数类型时,系统默认函数的类型是 int 类型。正确答案:【没有指定函数类型时,系统默认函数的类型是 int 类型。】2、问题:有如下函数调用语句 func(rec1,rec2+rec3,(rec4,rec5);该函数调用语句中,含有的实参个数是( )。A) 3 B) 4 C) 5 D) 不确定选项:A、func(rec1,rec2+rec3,(rec4,rec5)函数中共有 rec1,rec2+rec3,(rec4,rec5)三个实在参数。B、func(rec1,rec2+rec3,(rec4,rec5)函数中共有 rec1,rec2+rec3,(rec4,rec5)三个实在参数。C、fun

31、c(rec1,rec2+rec3,(rec4,rec5)函数中共有 rec1,rec2+rec3,(rec4,rec5)三个实在参数。D、func(rec1,rec2+rec3,(rec4,rec5)函数中共有 rec1,rec2+rec3,(rec4,rec5)三个实在参数。正确答案:【func(rec1,rec2+rec3,(rec4,rec5)函数中共有 rec1,rec2+rec3,(rec4,rec5)三个实在参数。】3、问题:以下程序的输出结果是( )。#include stdio.hfun(int x, int y, int z)z=x*x+y*y; void main() in

32、t a=31; fun(5,2,a); printf(“%dn”,a); A) 0 B) 29 C) 31 D)无定值 选项:A、理解错误B、x 值不能回传C、变量 a 是主函数中的变量,作为实在参数通过 fun(5,2,a)实现函数调用,只能将a 的值传递给形参 x,但 x 值不能回传给 a,故 a 的值仍然是 31。D、无效选项正确答案:【变量 a 是主函数中的变量,作为实在参数通过 fun(5,2,a)实现函数调用,只能将 a 的值传递给形参 x,但 x 值不能回传给 a,故 a 的值仍然是 31。】4、问题:程序#include stdio.hint func(int a,int b)

33、 return(a+b);void main() intx=2,y=5,z=8,r;r=func(func(x,y),z);printf(%dn,r);输出的结果是( )。A) 12 B) 13 C) 14D) 15选项:A、理解错误B、理解错误C、理解错误D、r=func(func(x,y),z)运用了函数的嵌套调用,func(x,y)的值是 7,func(func(x,y),z)相当于 func(7,8),其值为 15,故 r=15。正确答案:【r=func(func(x,y),z)运用了函数的嵌套调用,func(x,y)的值是 7,func(func(x,y),z)相当于 func(7,

34、8),其值为 15,故 r=15。】5、问题:程序#include stdio.hlong fib(int n) if(n2) return(fib(n-1)+fib(n-2);elsereturn(2); void main() printf(%dn,fib(3);输出结果是( )。A) 2 B) 4 C) 6 D) 8选项:A、理解错误B、该程序实现了函数的递归调用,欲求 fib(3),在 fib 函数中由于实参 3 大于 2,故需计算 fib(2)+fib(1),在 fib(2)+fib(1)中需调用 fib(2)和 fib(1),由于此时实参均不大于 2,fib(2)和 fib(1)的

35、函数值都是 2,然后回溯求得 fib(3)的值等于 4。C、理解错误D、理解错误正确答案:【该程序实现了函数的递归调用,欲求 fib(3),在 fib 函数中由于实参 3大于 2,故需计算 fib(2)+fib(1),在 fib(2)+fib(1)中需调用 fib(2)和 fib(1),由于此时实参均不大于 2,fib(2)和 fib(1)的函数值都是 2,然后回溯求得 fib(3)的值等于 4。】6、问题: 程序#include stdio.hvoid f(int x,int y)int t;if(xy)t=x;x=y;y=t;voidmain()int a=4,b=3,c=5;f(a,b)

36、;f(a,c);f(b,c);printf(%d,%d,%dn,a,b,c);执行后输出结果是( )。A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,5选项:A、不理解形参、实参的传递方式,不理解局部变量的作用域B、不理解形参、实参的传递方式,不理解局部变量的作用域C、不理解形参、实参的传递方式,不理解局部变量的作用域 D、变量 a=4,b=3,c=5 是主函数中的局部变量,作为实参调用 f 函数,f 函数中只交换了形参 x,y 的值,并为回传给实参,故 a=4,b=3,c=5 不变。正确答案:【变量 a=4,b=3,c=5 是主函数中的局部变量,作为实参调用 f 函数,f

37、 函数中只交换了形参 x,y 的值,并为回传给实参,故 a=4,b=3,c=5 不变。】7、问题: 程序#include stdio.hint f1(int x,int y) return xy?x:y; int f2(int x,int y)return xy?y:x; void main() int a=4,b=3,c=5,d,e,f; d=f1(a,b); d=f1(d,c); e=f2(a,b);e=f2(e,c);? f=a+b+c-d-e; printf(%d,%d,%dn,d,f,e);执行后输出结果是( )。A) 3,4,5 B)5,3,4 C) 5,4,3 D) 3,5,4选

38、项:A、理解错误B、理解错误C、函数 f1 是求两数中的最大值,函数 f2 是求两数中的最小值,经过连续的函数调用,d 获得了 a,b,c 中的最大值,e 获得了 a,b,c 中的最小值,又执行 f=a+b+c-d-e;f获得了三个数中的中间值。D、理解错误正确答案:【函数 f1 是求两数中的最大值,函数 f2 是求两数中的最小值,经过连续的函数调用,d 获得了 a,b,c 中的最大值,e 获得了 a,b,c 中的最小值,又执行f=a+b+c-d-e;f 获得了三个数中的中间值。】8、问题:以下程序的输出结果是( )。#include stdio.hint a,b;void fun()a=10

39、0;b=200;void main() int a=5,b=7; fun(); printf(%d%dn,a,b);A) 100200 B) 57 C)200100 D) 75选项:A、对全局变量和局部变量理解错误B、全局变量的作用范围不包括同名局部变量所在的函数,fun()函数中的 a,b 是全局变量,main()函数中的 a,b 是局部变量,故输出结果是 57。C、对全局变量和局部变量理解错误D、对全局变量和局部变量理解错误正确答案:【全局变量的作用范围不包括同名局部变量所在的函数,fun()函数中的a,b 是全局变量,main()函数中的 a,b 是局部变量,故输出结果是 57。】9、问

40、题:程序#include stdio.hint a=3;void main() int s=0; int a=5; s+=a+; s+=a+; printf(%dn,s);运行后的输出结果是( )。A) 8 B) 10 C) 7 D) 11选项:A、 int a=5;s+=a+; 中的 a 是局部变量,此时执行 s+=a+,s 的值是 5。其后的s+=a+中的 a 是全局变量,执行该语句后,s 的值是 8。B、理解错误C、理解错误D、理解错误正确答案:【 int a=5;s+=a+; 中的 a 是局部变量,此时执行 s+=a+,s 的值是 5。其后的 s+=a+中的 a 是全局变量,执行该语句

41、后,s 的值是 8。】 10、问题:以下程序的输出结果是( )。#include stdio.hint x=3;void incre() static intx=1; x*=x+1; printf( %d,x);void main() int i; for(i=1;ix;i+) incre();A) 3 3 B) 2 2 C)2 6 D) 2 5选项:A、全局变量、局部变量,静态变量、自动变量理解错误B、干扰项C、主函数中的 x 是全局变量,故循环语句中的循环执行了两次,incre()函数中的x 是静态的局部变量,主函数第一次循环时,调用 incre()函数,执行 x*=x+1 后,x的值是

42、2, printf( %d,x)输出 2;主函数第二次循环时,调用 incre()函数,由于 x 静态变量,故 x 中保留的是上次执行后值,x=2,再执行 x*=x+1 后,x 的值是 6,printf( %d,x)输出 6。D、全局变量、局部变量,静态变量、自动变量理解错误正确答案:【主函数中的 x 是全局变量,故循环语句中的循环执行了两次,incre()函数中的 x 是静态的局部变量,主函数第一次循环时,调用 incre()函数,执行x*=x+1 后,x 的值是 2, printf( %d,x)输出 2;主函数第二次循环时,调用 incre()函数,由于 x 静态变量,故 x 中保留的是上

43、次执行后值,x=2,再执行 x*=x+1 后,x的值是 6, printf( %d,x)输出 6。】第五章单元测试1、问题:若有说明:int n=2,*p=n,*q=p;,则以下非法的赋值语句是( ) A) p=q;B) *p=*q; C) n=*q; D) p=n;选项:A、p 和 q 是同类型的指针变量B、把 q 所指向空间中的值赋给 p 所指向空间中C、n 可以获得 q 所指向空间中的值D、int n=2,*p=n,*q=p;中已定义 p 是指针变量且已获得变量 n 的地址,而 p=n 是让p 获得 n 的值,这是无意义的。正确答案:【int n=2,*p=n,*q=p;中已定义 p 是指针变量且已获得变量 n 的地址,而p=n 是让 p 获得 n 的值,这是无意义的。】2、问题:对于基类型相同的两个指针变量之间,不能进行的运算是( ) A) B)= C) + D) -选项:A、两个指针变量比较大小,可以区分所指向的地址不同位置B、基类型相同的两个指针变量之间可以赋值C、两个指针变量相加没意义D、基类型相同的两个指针变量之间相减可以表明所指向地址的距离正确答案:【两个指针变量相加没意义】3、问题:请选出正确的程序段( ) A) int *p; B) int *s, k; scanf(%d,p);*s=100;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 继续教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报