c语言章节习题集.pdf_第1页
c语言章节习题集.pdf_第2页
c语言章节习题集.pdf_第3页
c语言章节习题集.pdf_第4页
c语言章节习题集.pdf_第5页
已阅读5页,还剩89页未读 继续免费阅读

c语言章节习题集.pdf.pdf 免费下载

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

文档简介

1、来源于网络 C 语言程序设计语言程序设计 第一、二章第一、二章 单项选择题单项选择题 1. 将汇编语言编写的程序翻译成目标程序的程序是(将汇编语言编写的程序翻译成目标程序的程序是( ) A)解释解释B)编译编译C)汇编汇编D)目标目标 2. 不属于面向机器语言的是不属于面向机器语言的是 ( ) A)符号语言符号语言B)二进制语言二进制语言C)汇编语言汇编语言D)C 语言语言 3. 将高级语言编写的程序翻译成目标程序的程序是(将高级语言编写的程序翻译成目标程序的程序是() 。 A)解释解释B)编译编译C)汇编汇编D)二进制二进制 4. 不属于高级语言的是(不属于高级语言的是() 。 A)BASI

2、CB)CC)ALGOLD)符号语言符号语言 5. 程序段的基本结构中,不包含(程序段的基本结构中,不包含() 。 A)函数结构函数结构B)循环结构循环结构C)顺序结构顺序结构D)分支结构分支结构 6、C 语言源程序的最小单位是(语言源程序的最小单位是() 。 A、程序行、程序行B、语句、语句C、函数、函数D、字符、字符 7、以下说法正确的是(、以下说法正确的是() 。 A、 在在 C 语言中,要调用的函数必须在语言中,要调用的函数必须在 main()函数中定义函数中定义 B、 C 语言程序总是从第一个定义的函数开始执行语言程序总是从第一个定义的函数开始执行 C、C 语言程序中,语言程序中,ma

3、in()函数必须放在程序的开始部分函数必须放在程序的开始部分 D、 C 语言程序总是从语言程序总是从 main()函数开始执行函数开始执行 8、以下对、以下对 C 语言描述中正确的是(语言描述中正确的是() 。 A、 C 语言源程序中可以有重名的函数语言源程序中可以有重名的函数 B、 C 语言源程序中要求每行只能书写一条语句语言源程序中要求每行只能书写一条语句 来源于网络 C、C 语言源程序中,注释可以出现在任何位置语言源程序中,注释可以出现在任何位置 D、 最小的最小的 C 源程序中没有任何内容源程序中没有任何内容 9、对、对 C 语言源程序执行过程描述正确的是(语言源程序执行过程描述正确的

4、是( ) 。 A、 从从 main() 函数开始执行,到函数开始执行,到 main()函数结束函数结束 B、 从程序的第一个函数开始执行,到最后一个函数结束从程序的第一个函数开始执行,到最后一个函数结束 C、从从 main 函数开始执行,到源程序的最后一个函数结束函数开始执行,到源程序的最后一个函数结束 D、 从第一个函数开始执行,到从第一个函数开始执行,到 main 函数结束。函数结束。 填空题填空题 1. 能完成某个任务的、有始有终的能完成某个任务的、有始有终的 C 语言语言_称为称为 C 程序。程序。 2. 用来编写程序的计算机语言称为用来编写程序的计算机语言称为_。 3. 高级语言编写

5、的程序称为高级语言编写的程序称为_。 4. 用用 C 语言编写的源程序简称为语言编写的源程序简称为 “C 程序程序” , 扩展名规定为扩展名规定为 “_” 。 5. C 程序经过程序经过“编译编译”后将获得扩展名为后将获得扩展名为“OBJ”的的_。 6. C 程序经过编译后获得的中间代码文件还需要经过程序经过编译后获得的中间代码文件还需要经过_,才能,才能 成为可执行的成为可执行的“程序程序” ,目标程序的扩展名规定为目标程序的扩展名规定为EXE。 7、ANSI C 标准中共规定了标准中共规定了个关键字,个关键字,条控制语句。条控制语句。 8、一个执行的、一个执行的 C 语言源程序至少应包含一

6、个语言源程序至少应包含一个。 9. 选择结构是选择结构是_选择某个操作来执行的选择某个操作来执行的种程序结构。种程序结构。 10. 选择结构可以分为选择结构可以分为_、双分支结构和多分支结构。、双分支结构和多分支结构。 11. 循环结构又可分为当型循环、循环结构又可分为当型循环、_及次数型循环。及次数型循环。 第三章第三章数据类型、运算符与表达式数据类型、运算符与表达式 单项选择题单项选择题 1. 以下程序的输出结果是以下程序的输出结果是 。 来源于网络 main() int a=10,b=10; printf(d,d,a-,+b); A)10,11B)10,10C)9,9D)9,11 2.

7、设设 a,b 和和 c 都是都是 int 型变量,且型变量,且 a=3,b=4,c=5,则下面的表,则下面的表 达式中,值为达式中,值为 0 的表达式是的表达式是 A)a 10. 运行下列程序的输出结果是运行下列程序的输出结果是_ #include”math. h” main() int m=64; printf(%d,%c,%#o,%#x”,m,m+1,m+2,m+3); 第五章第五章选择程序设计选择程序设计 单项选择题单项选择题 1已知已知 a,b,c 的值分别是的值分别是 1,2,3,则执行下列语句后,则执行下列语句后 a,b,c 的的 值分别是值分别是 if (a+b)b+else a

8、+; B)if(ab) b+;printf (d,b); else a+;printf(d,a); C)if(ab) b+;printf(d,b) elsea+;printf(d,a); D)if(ab)b+;printf(d,b); else printf(d,a); 3.若若 i 是是 int 型变量,且有下面的程序片段型变量,且有下面的程序片段 i=0; if(i=0) printf(#) else printf(*); 上面程序片段的输出结果是上面程序片段的输出结果是 A)#B)*C)#*D)有语法错有语法错 误,无输出结果误,无输出结果 4.有以下程序:有以下程序: #include

9、 main() int x,y; printf(Enter an integer(x):); scarf(d, break; case 1:b+;break; case 2: a+;b+; break; printf(a=d, b=dn,a,b); 上面程序的输出结果是上面程序的输出结果是 A)a=2,b=lB)a=l,b=lC)a=l,b=0D)a=2,b=2 10若要求表示若要求表示 a 不等于不等于 0 的关系,错误的表达式是的关系,错误的表达式是 A)a0B)a!=0C)aD)a0 11.程序的三种基本结构是。程序的三种基本结构是。 A)顺序结构,循环结构,递归结构顺序结构,循环结构,

10、递归结构B)顺序结构,循环结顺序结构,循环结 构,选择结构构,选择结构 C)选择结构,循环结构,递归结构选择结构,循环结构,递归结构D)顺序结构,选择结顺序结构,选择结 构,递归结构构,递归结构 12.C 语言中,逻辑真表示为语言中,逻辑真表示为 A)TRUEB)y或或YC)1D)非零值非零值 13设有如下程序:设有如下程序: 来源于网络 #include main() char ch1,ch2; scanf(“%c%c”, if (ch1!=B) switch(ch2) caseB: switch(ch1) caseA:printf (“AB”) break; caseB:printf(“B

11、B”); break; case A: switch(ch1) caseA:printf (“AA”) break; caseB:printf(“BA”); break; 若执行是从键盘上输入的数据时若执行是从键盘上输入的数据时 AB,则输出是,则输出是 A) ABB)ABAAC)ABBBAABAD)BBBA 14. 已知已知 a,b,c,w 时时 int 型变量,型变量,a,b 均以赋值,且满足均以赋值,且满足 ab,先有,先有 以下程序段:以下程序段: 来源于网络 scanf (“%d”, w=a; if (w=b) w=b; if (wcB) c=bC) ca 且且 ca 或或 c=60

12、), 则显示则显示 “pass” , 如果如果 a 成绩不及格成绩不及格, 则显示则显示fail, 如果如果 a 成绩及格而成绩及格而 b 成绩不及格则不做任何处理。下列程序段中成绩不及格则不做任何处理。下列程序段中 可实现上述要求的是可实现上述要求的是 A)if(a=60)B)if(a=60)printf(”fail”); printf(pass);else if(b=60) elseprintf(pass); printf(fail); C)if(a=60) scanf(“%d”, swith(1) case 1: printf(“%d”,i+) case 2: printf(“%d,i+

13、) case 3: printf(“%d”,i+) 来源于网络 case 4: printf(“%d”,i+) break; default: printf(“END”) 输入数据输入数据 1,执行以上程序,则输出结果是,执行以上程序,则输出结果是_1234_ 2.执行下面程序后输出的结果为执行下面程序后输出的结果为_14_。 main() int i=0,j; for(j=0;j4;j+) switch(j) case 1: i=i+1; case 2: i=i+2; case 3: i=i+3; printf(“%dn”,i); 3设有以下程序:设有以下程序: #include main(

14、) char ch1, ch2; scanf(cc, if(_yz_)i=y;y=z;z=i; if(_xz_)i=x;x=z;z=i; printf(d,d,dn,x,y,z); 10.以下程序的功能是以下程序的功能是:从键盘输入一年份数据从键盘输入一年份数据,判断此年份是否判断此年份是否 为闰年为闰年。其中判断闰年的条件是其中判断闰年的条件是:能被能被 4 整除但不能被整除但不能被 100 整除整除, 或能被或能被 400 整除。请填空完成该程序。整除。请填空完成该程序。 #include main() 来源于网络 int x,i; seanf(d, for (i=1;i+); print

15、f(“%d”,i+); A)1B)2C)3D)陷入死循环,无输出结果陷入死循环,无输出结果 2下面有关下面有关 for 语句的说法中,正确的是语句的说法中,正确的是 A)任何情况下,任何情况下,for 语句的三个表达式一个都不能少语句的三个表达式一个都不能少 B)for 语句中的循环体至少会被执行一次语句中的循环体至少会被执行一次 C)for 语句只能用于循环次数已经确定的情况下语句只能用于循环次数已经确定的情况下 D)for 语句中的循环体可以是复合语句语句中的循环体可以是复合语句 3下面程序的输出是下面程序的输出是 main() int y=9; for(;y0;y-) if(y%3= =

16、0) printf(“%d”,-y);continue; A)741B)852C)963D)875421 4请读程序:请读程序: 来源于网络 #include main() int a,b; for(a=1,b=1;a=20) break; if(b%3= =1)b+=3;continue; b=-5; printf(“%dn”,a); 上面程序的输出结果是上面程序的输出结果是 A)7B)8C)9D)10 5请读程序请读程序 #include main() int num=0; while(num+=2) printf(“%dn”,num); 上面程序的输出结果是上面程序的输出结果是 A) 1

17、B) 1C) 1D)1 2223 34 6执行下面程序片段的结果是执行下面程序片段的结果是 int x=0; do 来源于网络 printf(“%2d”,x-); while(x); A)打印出打印出 321B)打印出打印出 23C)打印不确定结果打印不确定结果D)陷入死陷入死 循环循环 7下面的程序,描述正确的是下面的程序,描述正确的是 main() int x=3; do printf(“%dn”,x-=2); while(!(-x); A)输出的是输出的是 1B)输出的是输出的是 1 和和-2C)输出的是输出的是 3 和和 0 D)是死循环是死循环 8下列循环中哪一个不是无限循环下列循环

18、中哪一个不是无限循环 A) for(i=1;i+)B) i=1;while(i-) printf(“%d”,i);printf(“%d”,i+); C) i=1D) for(i=0;i;i+) doprintf(“%d”,i); printf(“%d”,i); i+;while(-i); 9有以下程序段:有以下程序段: int i,j; for(i=0;i5;+i) for(j=i;j5;+j) 来源于网络 printf(“*”); 则执行以上的程序片段后,输出则执行以上的程序片段后,输出*个数是个数是 A)15B)10C)25D)20 10有以下程序段:有以下程序段: int i,j; i=

19、0;j=0; while(i+5) j=0; do printf(“*”); while(+j4); 则执行以上的程序片段后,输出则执行以上的程序片段后,输出*的个数为的个数为 A)15B)10C)25D)20 11下面的程序段不能实现求阶乘下面的程序段不能实现求阶乘 8! (8!=1*2*3*4*5*6*7*8,结结 果存放在果存放在 p 中)的是中)的是 A)p=1;B)p=2; for(i=1;i3;i-) p=p*i;p=p*i; C)p=1;i=1;D)p=1;i=8; while(i1); 12有下列程序段:有下列程序段: 来源于网络 char ch; int s=0; for(c

20、h=A;chZ;+ch) if(ch%2= =0)s+; printf(“%d”,s); 则执行上述片段后,程序的输出结果是则执行上述片段后,程序的输出结果是 A)13B)12C)26D)25 13有下面的程序:有下面的程序: main() int i,n,k; n=15496;k=2; for(i=1;ik;+i) n=n%10; printf(“%d”,n); 则执行后的输出结果是则执行后的输出结果是 A)9B)6C)2D)1 14有以下程序:有以下程序: main() int a10=4,3,3,4,3,8,4,2,8,3; inti,j,b10; for(i=0;i10;+i) bi=

21、0; for(j=0;j10;+j) 来源于网络 if(aj= =ai)bi=bi+1; j=0; for(i=1;jbj)j+I; printf(“%d”,aj); 执行程序后的输出结果是执行程序后的输出结果是 A)8B)4C)3D)2 15语句语句 while(!e= =0);是什么时候将会陷入死循环是什么时候将会陷入死循环 A) e=0 B) e!=0 C) e!=1D)e!= -1 16以下程序的输出结果是以下程序的输出结果是 #include main() int i; for(i=1;i=5;+i) if(i%2) printf(“*”); else continue;printf

22、(“#”);printf(“$”); A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$ 17有以下程序片段有以下程序片段 int k=5; while(k=1)k-; 执行此程序片段,则描述正确的是执行此程序片段,则描述正确的是 A)while 循环执行循环执行 4 次次 B)循环体执行一次循环体执行一次 C)循环体一次也不执行循环体一次也不执行D)死循环死循环 来源于网络 18下面程序的运行结果是下面程序的运行结果是 #include main() int i=1; doi-;while(i+); printf(“%d”,i-); A) -1B) 0C) 1D)陷入死循环陷入

23、死循环 19以下说法中正确的是以下说法中正确的是 A)continue 语句的作用是结束整个循环的执行语句的作用是结束整个循环的执行 B)break 语句应出现在语句应出现在 switch 语句和循环语句中语句和循环语句中 C)利用利用 goto 语句可以使程序的执行从一个函数跳到另一个函数语句可以使程序的执行从一个函数跳到另一个函数 D)循环语句中循环语句中 break 语句不能单独出现语句不能单独出现 填空题:填空题: 1执行下属程序片段后的输出结果为执行下属程序片段后的输出结果为_. int a=6; while(a-) printf(“%d”,a-); 2有以下程序有以下程序,其功能是

24、将从键盘上输入的小写字母转换成大写其功能是将从键盘上输入的小写字母转换成大写 字母输出字母输出,当输入为当输入为#时时,结束转换结束转换,请在下划线处填上合适请在下划线处填上合适 的语句。的语句。 #include main() char c;scanf(“%c”, 来源于网络 while(_c!=#_) if(c=a) scanf(“%c”, 3为输出入下图形,请在程序中的下划线处填入合适的内容为输出入下图形,请在程序中的下划线处填入合适的内容 * * * * * * * * * * * * * main() int i,j; for(i=0;i4;+i) for(j=0;j_;j+) pr

25、int(“ ”); for(j=0;j_;j+) printf(“*”); printf(”n”); for(i=0;i3;+i) for(j=0;ji+1;j+) printf(“ “); 来源于网络 for(j=0;j0) for(j=1; _;+j) k=k*j; return(k); 6 下面程序可从键盘上输入一个大于下面程序可从键盘上输入一个大于 0 且小于且小于 1000 的整数的整数,然然 后输出此整数的所有整数因子。如:输入后输出此整数的所有整数因子。如:输入 12,输出,输出 l,2,3,4, 6,12。请在下划线处填上合适的内容,完成该程序。请在下划线处填上合适的内容,完成

26、该程序。 main() int a,k; scanf(”d,i=20;i=i+5) switch(i/5) case 0:printf(*);break; case 1:printf(#);break; case 2:printf(i5;+i) y=y*10+ai; printf(1d,y); fun(int a) int i,j,k; for(i=0;i5;+i) for(j=i;j5;+j) if(_) _; ai=aj; aj=k; 来源于网络 12下面程序的功能是求下面程序的功能是求 500 以内的所有完全数,请填空以内的所有完全数,请填空(说明说明: 一个数如果恰好等于它的因子一个数

27、如果恰好等于它的因子(自身除外自身除外)之和,则称该数为完全之和,则称该数为完全 数,如数,如 6=1+2+3,则,则 6 是完全数是完全数)。 #include main() int i,sum,a=2; do i=1;sum=0; do if(ai= =0)_ i+; while(i=a/2); if(sum=a) printf(d,_); a+;while(a500); 第七章第七章数组数组 单项选择题单项选择题 1请读程序:请读程序: #include main() int n2,i,j,k; for(i=0;i2;i+) ni=0; k=2; for(i=0;ik;i+) 来源于网络

28、 for(j=0;jk;j+) nj=ni+1; printf(“%dn”,nk); 上面程序的输出结果是。上面程序的输出结果是。 A)不确定的值不确定的值B)3C)2D)1 2下列四个选项中,正确的数组定义是。下列四个选项中,正确的数组定义是。 A)int 3a3;B)int i;scanf(d,ik;i+) ni=0; 来源于网络 for(i=0;ik;i+) for(j=0;jk;j+) nj=ni+1; printf(d,n0); 上述程序运行后,输出结果是。上述程序运行后,输出结果是。 A)2B)1C)0D)3 6下列有关字符数组与字符串的说法中正确的是下列有关字符数组与字符串的说法

29、中正确的是 A)字符数组中存放的一定是字符数组中存放的一定是个字符串个字符串 B)所有的字符数组都可以被当作字符串处理所有的字符数组都可以被当作字符串处理 C)对存放字符串的字符数组可以象一般数组一样对数组中的对存放字符串的字符数组可以象一般数组一样对数组中的 单个元素进行操作单个元素进行操作 D)一个字符数组可以认为就是一个字符串一个字符数组可以认为就是一个字符串 7下列对字符串的说法中,错误的是下列对字符串的说法中,错误的是 A)字符串就是一个字符数组字符串就是一个字符数组 B)字符串可以整体输入输出字符串可以整体输入输出 C)字符串可以比较大小字符串可以比较大小 D)存储字符串所需的内存

30、空间等于字符串的长度存储字符串所需的内存空间等于字符串的长度 8有以下程序:有以下程序: #include main() char a4; scanf(c,c,c,i-) for(j=4;j0;j-)for(j=3;j=0;j-) for(k=0;k5;k+)for(k=0;k5;k+) aijk=bijk;aijk=bijk; 10若有说明若有说明:int a 4=1,2,3,4,5,6,7,8,9,则数组第一维的大小则数组第一维的大小 为。为。 A)2B)3C)4D)不确定的值不确定的值 11 若数组若数组 a 有有 m 列,则列,则 alij之前的数组元素个数为。之前的数组元素个数为。

31、A)(i-1)*(i-1)B)i*m+j+1C)i*m+j-1D)i*m+j 12 下面是对数组下面是对数组 s 的初始化,其中不正确的是。的初始化,其中不正确的是。 A)char s =abcde;B)char s5=1,2,3,4,5; 来源于网络 C)char s5=a,b,c,d,e;D)char s5=abcde; 13 有以下程序片段,请问执行后的输出结果是有以下程序片段,请问执行后的输出结果是 char a6=a,b,c,0,d,e; printf(s,a); A)abcB)abcdeC)abcdeD)出错,无输出结果出错,无输出结果 填空题填空题 1若有以下定义若有以下定义:i

32、nt a9; ,则数组则数组 a 元素下标的上限为元素下标的上限为_, 下限为下限为_. 2下面的下面的 findmax 函数返回数组函数返回数组 s 中最大元素的下标中最大元素的下标,数组中元数组中元 素的个数由素的个数由 t 传入,请填空:传入,请填空: findmax(int s ,int t) int k,p; for(p=0,k=p;psk)_; return k; 3构成数组的各个元素必须具有相同的构成数组的各个元素必须具有相同的_。 4以下程序的输出结果为以下程序的输出结果为_20,2,1_。 #include main() int i,j,il=0,jl=0,m; static

33、 int s33=101,202,303, 28,78,38,85,20,89 ; m=s00; 来源于网络 for(i=0;i3;i+) for(j=0;j3;j+) if(sijm) m=sij;il=i; jl=j; printf(“%d,%d,%dn”,m,il,jl); 5设有以下程序:设有以下程序: #include main() int a10,s,i,j=0,k=0;scanf(d,ij;i+) printf(4d,ai); 上面的程序运行时输入数据如下:上面的程序运行时输入数据如下: 7 10 5 14 -1 则程序的输出结果是则程序的输出结果是_ 6有以下程序有以下程序,其

34、功能是对数组中的数据由小到大进行排序其功能是对数组中的数据由小到大进行排序,最最 后输出排序后的数组内容。后输出排序后的数组内容。 请在下划线处填上正确的内容,以实现程序功能。请在下划线处填上正确的内容,以实现程序功能。 #include main() 来源于网络 int a10=10,45,23,62,98,42,87,37,86,28; int i,j,x; for(i=0;i10;+i) x=ai; for(j=i;j9;+j) if(aj+1_) ai=aj+1; aj+1=_; x=ai for(i=0;i10;+i) printf(“%d”,ai); 7有以下程序,其功能是将两个有

35、序有以下程序,其功能是将两个有序(由小到大排列由小到大排列)数组中的数数组中的数 据合并到一个数组中,要求合并后的数组依然是由小到大顺序排据合并到一个数组中,要求合并后的数组依然是由小到大顺序排 列列,最后输出排序后数组内容最后输出排序后数组内容。数组中以数据数组中以数据 0 表示数据的结束表示数据的结束。 请在下划线处填上正确的内容,以实现程序功能。请在下划线处填上正确的内容,以实现程序功能。 #include main() int a20=1,4,7,17,23,0; int b20=2,6,9,10,15,24,45,72,81,92,0; int i,j,k,c20; i=j=k=0;

36、 while(ai!=0) 8下面程序将二维数组下面程序将二维数组 a 的行和列互换后存放到数组的行和列互换后存放到数组 b 中中,请完请完 成该程序。成该程序。 #include main() int a33=1,2,3,4,5,6,7,8,9,b33; int i,j; for(i=0;i3;+i) for(j=0;j3;+j) _; 9以下程序的功能是求小于以下程序的功能是求小于 1000 的水仙花数的水仙花数(所谓水仙花数是指所谓水仙花数是指 来源于网络 一个三位正整数,其各位数字的立方和等于该数本身,例如:一个三位正整数,其各位数字的立方和等于该数本身,例如: 407=4*4*4+0

37、*0*0+7*7*7,407 是一个水仙花数是一个水仙花数),请完成该程序,请完成该程序。 #include main() int x,y,z,m,i,j; for(i=100;i1000;+i) j=i; x=j/100; j=_; y=j/10; z=j10; m=x*x*x+y*y*y+z*z*z; if(_)printf(d,i); 第八章第八章 函数函数 单项选择题单项选择题 1下列有关函数的说法中错误的是。下列有关函数的说法中错误的是。 A)C 语言中的函数只具有语言中的函数只具有 static 和和 extern 两种类型两种类型 B)C 语言中允许函数的递归调用语言中允许函数的

38、递归调用 C)调用函数时,调用函数时,C 语言要求实参与形参的个数,类型完全语言要求实参与形参的个数,类型完全 一致一致 D)C 语言函数的缺省数据类型是空类型语言函数的缺省数据类型是空类型(void 型型) 2请选出以下语句的输出结果。请选出以下语句的输出结果。 printf(dn, strlen( 065 x30 n); 来源于网络 A)7B)18C)9D)输出项不合法,无正常输出输出项不合法,无正常输出 3设有以下程序片段,请问执行后的输出结果是设有以下程序片段,请问执行后的输出结果是 char a = an%f; printf(dn, strlen(strcat(a,CHINA); A

39、)11B)5C)6D)12 4设有如下的函数:设有如下的函数: funl(float a) int b; a=a+b; printf(“%d”,a); 则函数的返回类型是。则函数的返回类型是。 A)与参数与参数 a 的类型相同的类型相同B)与变量与变量 b 的类型相同的类型相同C)是是 void 型型D)是是 int 型型 5标准库函数标准库函数 fgets(s,n,f)的功能是。的功能是。 A)从文件从文件 f 中读取长度为中读取长度为 n 的字符串存入指针的字符串存入指针 s 所指向的内存所指向的内存 B)从文从文件件 f 中读取长度中读取长度为为 n-1 的字符串存入指的字符串存入指针针

40、 s 所指向的内存空所指向的内存空 间中间中 C)从文件从文件 f 中读取中读取 n 个字符串存入指针个字符串存入指针 s 所指向的内存空间中所指向的内存空间中 D)从文件从文件 f 中读取中读取 n-1 的字符存入指针的字符存入指针 s 所指向的内存空间中所指向的内存空间中 6C 语言中规定,各个函数之间。语言中规定,各个函数之间。 A)允许直接递归调用也允许间接递归调用允许直接递归调用也允许间接递归调用 B)不允许自接递归调用也不允许间接递归调用不允许自接递归调用也不允许间接递归调用 来源于网络 C)允许直接递归调用,不允许间接递归调用允许直接递归调用,不允许间接递归调用 D)不允许直接递

41、归调用,允许间接递归调用不允许直接递归调用,允许间接递归调用 7下面函数的功能是下面函数的功能是 char *s(s,t) char *s,*t; char *p; p=s; while(*s!=0)s+; while(*t!=0) *s+= *t+; *s=0;returnp; A)求字符串的长度求字符串的长度B)比较两个字符串的大小比较两个字符串的大小 C)将字符将字符串串 t接续到字符接续到字符串串 s中中D)将字符将字符串串 s接续到字符接续到字符 串串 t 中中 8请读程序;请读程序; #include fune(int a,int b) int c;c=a+b; return c;

42、 main() int x=6,y=7,z=8,r; r=func(x-,y+,x+y),y-); printf(dn,r); 上面程序的输出结果是上面程序的输出结果是 A) 11B) 10C)21D) 31 9请选出以下程序的输出结果。请选出以下程序的输出结果。 来源于网络 #include fun(s,n1,n2) int *s,nl,n2; int i,j,t;i=n1;j=n2; while(ij) t=*(s+i);*(s+i)=*(s+j); *(s+j)=t; i+;j-; main() int a10=1,2,3,4,5,6,7,8,9,0; int i,*p=a; fun(p

43、,0,3);fun(p,4,9);fun(p,0,9); for(i=0;i10;i+) printf(d,*(a+i);printf(n); A)0,9,8,7,6,5,4,3,2,1 B)4,3,2,l,0,9,8,7,6,5 C)5,6,7,8,9,0,1,2,3,4 D)0,9,8,7,6,5,1,2,3,4 10请选出以下程序的输出结果请选出以下程序的输出结果 #include main() int a=1,2,3,4,i; int x=0; 来源于网络 for(i=0;i=a) d=d3;n=n+1; return(n); 设设 a,b,c 均为整型变量,下面的程序段在调用函数均为

44、整型变量,下面的程序段在调用函数 f 时会时会 出现死循环的是出现死循环的是 A)b=100;c=2*(f(b)+5);B)for(b=1;b3)c=f(b*b); C)b=1D)b=2; dowhile(f(b)3) b=b+1;b=f(b*b)+f(b); while(f(b)3); 14. 下面程序正确的输出结果是下面程序正确的输出结果是 main() int x,y,z; x=5;y=7;z=4; p(7,x+y+z, char str10,temp10; gets(temp); for(i=0;i4;i+) gets(str);if(stcmp(temp,str)0) strcpy(

45、temp,str); printf(sn,temp); 上述程序运行后,如果从键盘上输入上述程序运行后,如果从键盘上输入(在此在此代表回车键代表回车键) C+ BASIC QuickC Ada Pascal 来源于网络 则程序的输出结果为则程序的输出结果为_。 2. 设有以下程序:设有以下程序: #include main(argc,argv) int argc; char *argv; while(-argc0)printf(s,argvargc); printf(n); 假定上述程序经编译和链接后生成可执行文件假定上述程序经编译和链接后生成可执行文件 PROG.EXE,如果,如果 在在 D

46、OS 提示符下键入提示符下键入 PROG ABCD EFGH IJKL则输出结果为则输出结果为 _。 3. 设有如下程序:设有如下程序: #include main(argc,argv) int argc; char *argv ; FILE *fP; void fc(); int i; while(-argc0) if(fp=fopen(argvi+,r)= =NUIL) printf(Cannot open file!n);exit(1); else 来源于网络 fc(fP);fclose(fp); void fc(ifp) FILE *ifp; char c; while(c=getc(

47、ifp)!=#) putchar(c-32); 上述程序经编译上述程序经编译、链接后生成的可执行文件名为链接后生成的可执行文件名为 cpy.exe,假假 定磁盘上有三个文本文定磁盘上有三个文本文 件,其文件名和内容分别为:件,其文件名和内容分别为: 文件名文件名内容内容 aaaaa# bbbbb# ccccc# 如果在如果在 DOS 下键人下键人 cpy a b c则程序输出为则程序输出为_。 4. 下面程序的输出结果是下面程序的输出结果是_。 #include fun(int x) int p; if(x= =0)|(x= =1)return(3); p=x-fun(x-2); return

48、 p; main() printf(dn,fun(9); 5. 下面程序的输出结果是下面程序的输出结果是_ 来源于网络 #include funa(int a,int b) return a+b funb(int a,int b) return a-b; sub(int(*t)(),int x,int y) return(*t)(x,y); main() int x,(*p)(); p=funa; x=sub(p,9,3); x+=sub(funb,8,3); printf(“%dn”,x); 6. 请读程序请读程序 #include main(int argc,char *argv) int

49、 i; printf(d,argc); for(i=0;i=argc-1;i+) printf(s,argvi); printf(n); 若上面的程序执行后的输出结果是若上面的程序执行后的输出结果是_。 7. 下面下面 invert 函数的功能是将一个字符串函数的功能是将一个字符串 str 中的字符顺序颠倒中的字符顺序颠倒 过来,请填空。过来,请填空。 来源于网络 #include void invert(char str) int i,j,_; for(i=0,j=strlen(str),_;ieps;n+) s+=t; t=n*t/(2*n+1); return(2.0*_); 9. 以下

50、程序的功能是:从学生成绩数据文件以下程序的功能是:从学生成绩数据文件 datadat 中读取每中读取每 个学生的成绩,统计最高个学生的成绩,统计最高 成绩和最低成绩,当遇到成绩为负数是,结束统计并输出最高成成绩和最低成绩,当遇到成绩为负数是,结束统计并输出最高成 绩和最低成绩。请填空。绩和最低成绩。请填空。 #include main() FILE *fp; float i,max,min; 来源于网络 if(fp=fopen(datadat,r)= =NULL) printf(Cant open file!n); exit(0); fscanf(fp,f, if(imin) min=i; p

51、rintf(f,f,max,min); 10. 若有以下程序片段:若有以下程序片段: #include main() int a10; sub(a); 其中函数其中函数 sub 的类型为的类型为 void 型,则定义函数型,则定义函数 sub 时,其首部时,其首部 定义可以有以下三种形式定义可以有以下三种形式_,_,_。(形参的名字请用形参的名字请用 p) 11. 以下程序的功能是:从键盘上输入以下程序的功能是:从键盘上输入 10 个数值并存储在数组个数值并存储在数组 a 中,调用函数中,调用函数 findmax 求数组中的最大值并输出。请在下划线处求数组中的最大值并输出。请在下划线处 填上合

52、适的语句,完成函数功能。填上合适的语句,完成函数功能。 #include main() int a10,i,j; for(i=0;i10;+i) 来源于网络 scanf(d, #undef PI fun2() int i; i=PI*PI*PI; return i; A)9,27B)9 27 C)程序出错,无法通过编译、链接程序出错,无法通过编译、链接D)死机死机 3. 以下程序,执行后的输出结果是。以下程序,执行后的输出结果是。 #include #define P2 来源于网络 #define POWER(x)P*x*x main() int x=1,y=2; printf(d,d,POW

53、ER(x+y), POWER(y+x); A)18,18B)6,7C)6,6D)7,7 4. 以下程序执行后的输出结果是。以下程序执行后的输出结果是。 #include #define P2 #define POWER(x) P*(x)*(x) main() int x=l,y=2; printf(d,d,POWER(x+y), POWER(y+x); A)18,18B)6,7C)6,6D)7,7 5. 有以下程序:有以下程序: #include #define MAX(x,y)(xy)?(x):(y) main() short int a,b; float i,j; scanf(hd,hd,

54、 c=B(a); printf(“%5.1f”,c); 第十章第十章指针指针 单项选择题单项选择题 1. 下面各语句行中,能正确进行赋字符串操作的是下面各语句行中,能正确进行赋字符串操作的是 A)char st45=“ABCDE”; B) char s5=A,B,C,D,E; C) char *s;s=”ABCDE”;D) char *s;scanf(“%s” ,s); 2. 设有说明:设有说明:char *str10;则标识符;则标识符 str 的意义是。的意义是。 A)str 是一个指向有是一个指向有 10 个元素的数组的指针个元素的数组的指针 B)str 是一个有是一个有 10 个元素的

55、数组个元素的数组, 数组元素的数据类型是指数组元素的数据类型是指向向 char 型的指针型型的指针型 C)str 是一个指向是一个指向 char 型函数的指针型函数的指针 来源于网络 D)str 是具有是具有 10 个指针元素的个指针元素的维指针数组,每个元素都只维指针数组,每个元素都只 能指向整型变量能指向整型变量 3. 设有以下程序:设有以下程序: #include main() int a9=1,2,3,4,5,6,7,8,9,*p; p=a; printf(d,p); printf(x,p+5); 执行此程序执行此程序,如果第一个如果第一个 printf 语句输出值是语句输出值是 20

56、0,则第二则第二个个 printf 语句的输出是语句的输出是 A)210B)205C)D2D)195 4. 若有以下说明和语句,则对若有以下说明和语句,则对 a 数组元素的正确引用的选项是数组元素的正确引用的选项是。 int a45,(*p)5; p=a; A)p+1B)*(p+3)C)*(p+1)+3D)*(*p+2) 5. 若有下面的程序片段:若有下面的程序片段: int a12=0,*p3,* *pp,i; for(i=0;i3;i+) pi= j=k= printf(“%d”, * *k); 上述程序的输出结果是上述程序的输出结果是 A)运行错误运行错误B)100C) i 的地址的地址D)j 的地址的地址 10. 若要用下面的程序片段使指针变量若要用下面的程序片段使指针变量 p 指向一个存储整型变量指向一个存储整型变量 的动态存储单元,则应填入。的动态存

温馨提示

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

最新文档

评论

0/150

提交评论