C语言程序设计各章练习题_第1页
C语言程序设计各章练习题_第2页
C语言程序设计各章练习题_第3页
C语言程序设计各章练习题_第4页
C语言程序设计各章练习题_第5页
免费预览已结束,剩余34页可下载查看

下载本文档

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

文档简介

1、«C语言程序设计各章练习题2016年12月汇编第1-3章C语言基础、编程规范、顺序结构程序设计编程题1:设a和b均为int型变量,编写一个程序,通过键盘读入 a,b的值,然后交换a,b 的值。要求屏幕显示“输入2个整数,用空格隔开”的提示语句,并且输出交换前 a,b的值, 交换后a,b的值。附加要求:(1)允许定义第3个变量,实现交换;(2)不允许定义第3个变量,实现交换。第4章选择结构程序设计编程题2:根据下列函数关系写程序,要求提示输入 x的值,输出y的值。编程题2:根据下列函数关系写程序,要求提示输入 x的值,输出y的值。编程题3:求ax2+bx+c=0方程的解。(只输出b2-

2、4ac>=0的求解结果,小于0,输出“不予求 解!”)第5章循环结构程序设计编程题4:编程计算£ io要求提示键盘输入n,如n为负数,不予计算,直接返回。 i 1编程题5:编程序计算n!,要求n从键盘输入,如n小于0,不予计算。编程题6:从键盘输入一个数n,判断n是否是素数。编程题6:编写程序输出1100之间的偶数,要求屏幕显示时5个偶数一行,每个数占5位, 右对齐。编程题7:编程计算100到1000之间有多少个数其各位数字之和是 5,并将其输出。编程题8:求满足下列条件的三位数 n,它除以11 (整数相除)所得到的商等于 n的各位数字 的平方和,且其中至少有二位数字相同的数。

3、编程题9:有一些十进制整数对 ab和cd具有如下特性:abxcd=baXdcM中awb且cwd如: 12X42=21X24青编程找出3050之间满足上述等式所有 m, n值,并按上述等式的格式输出。(X用*表示)编程题10:从键盘上输入一个整数,然后把这个整数的各位逆序输出。例如,输入123456,输出 654321。第 6 章数组编程题11:有一个已排好序的数组inta11=-5,-3,0,6,8,12,16,28,66,88;要求输入一个数后,按原来排序的规律将它插入数组中。编程题12:输入一个字符串(字符个数为小于100),统计其中字母、数字、空格以及其它符号的个数,并将大写字母改为小写

4、字母,输出改变后的字符串。(提示: A 的 ASCII 值为65,a 的 ASCII 值为97)编程题12:输入一行字符(字符数组的个数小于100),统计其中字母、数字以及其它符号的个数。(注:数组限定字符个数小于100)编程题12:输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。(注:字符个数不受限制) 第 7 章函数编程题13:编写一个子函数intfun(intn),其功能是判断整数n是否为素数,n是素数,返回值 为1; n不是素数,返回值为00调用该函数,将100200之间的素数全部输出,要求屏幕上每 个数占 4 位,每行显示5 个素数,左对齐。(循环、条件分支、子函数

5、、变量的值传递、屏幕显示格式控制) 编程题14:主函数中定义两个数组inta5=5,4,8,-1,2,b10=1,-124,8,4,0,9,3,7川子函数实现 从小到大而冒泡排停,子函数为 voidbubble(int口,int)H隶在主函畋中立示侏序前、后的数匆 a 和 b 的元素。(循环、条件分支、子函数、数组、地址传递)编程题15:主函数中定义两个数组inta5=5,4,8,-1,2,b10=1,-124,8,4,0,9,3,7川子函数实现 从小到大的选择法排序,子函数为 voidsort(int,int)刎求在主函数中显示排停前、后的数组 a 和 b 的元素。(循环、条件分支、子函数、

6、数组、地址传递)编程题16:用递归函数计算n!。编程题17:编写一个子函数intfact(intn),计算n的阶乘。调用该函数计算1! +2! +3!+ +n!,要求n从键盘输入,如输入n小于0,不予计算。(循环、递归函数)编程题18:将16进制或 8进制或 2进制数转换为十进制数(字符数组、字符串函数、子函数、字符 ASCII 值与10进制数的转换,指数函数的调用)编程题18:编程实现八进制数转换为十进制数 (注:用字符数组n100接收输入,输入的八进制数肯定正确,无须检测;八进制数转换为十进制数的子函数为inthtoi(charhnum);编程题18:编写一个子函数,将16进制数转换为10

7、进制数。编程题19:编写一个子函数,主函数用字符数组作为实参,统计字符串中字母、数字、空格以及其他符号的个数,要求主函数中显示字符串与统计结果。编程题20:编写一个子函数,主函数输入一行字符,子函数找出字符串中最长的单词,并显示结果。编程题21 :用递归法将一个整数n 转换为字符串。例如:输入483,输出字符串“483”, n的位数不确定。编程题22:写一个子函数,将输入的字符串按反序存放,在 main中输入和输出字符串。 第8章指针编程题23:编写一个子函数 mystrcmp(char*s1,char*s2)J现2个字符串的比较。编程题23:编程实现两个字符串连接起来,不要用strcat函数

8、。编程题23:用函数调用实现字符串的复制。编程题23:写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。编程题24:写一个用矩形法求定积分的通用函气端期榛sxdx、"dx编程题25:输入一个字符串,内有数字和非数字字符,如: A123x45617960?302tab5876将 其中连续的数字作为一个整数,依次用数组存放这些数,统计有多少个整数,并输出这些 数。编程题26:主函数输入整数的个数,用指针变量动态申请内存,并用键盘按任意次序输入n个整数,用子函数voidbubble(int口,int)K现从小到大的冒泡排序。第9章结构编程题27:建立一个链表,每个结

9、点包括:学号、姓名、性别、年龄,输入一个年龄,如果 链表中的结点所包含的年龄等于此年龄,则将此结点删去。编程题28: 13个人围成一圈,从第一个人开始顺序报号,凡报到 3者退出圈子,找出最后留 在圈子中的人原来的序号。要求用链表实现。编程题29:阅读链表操作相关函数,完成指定的操作函数。链表内容仅限表头表尾添 加、删除、查询、显示、保 存,不考排序、中间节点的 插入和删除#include"stdio.h"#include"malloc.h" #include"string.h" structStudent charname20; in

10、tnum; intmath; structStudent*next; ; structStudent*Create(structStudent*head);/ 生成数据链表 voidShowList(structStudent*head);/IL 示链表voidsaveList(structStudent*head);保存链表数据voidAddTail(structStudent*head,structStudent*temp)兼尾添力口元素 structStudent*AddHead(structStudent*head,structStudent*temp)表头添力口元素 structSt

11、udent*DeleteSomeone(structStudent*head);删除元素voidFindSomeone(structStudent*head)浙询元素structStudent*DeleteHead(structStudent*head);删除表头voidDeleteTail(structStudent*head);删除表尾voidmain()structStudent*head=NULL,*temp=NULL;intchoice;doprintf("1: 创建数据链表n");printf("2: 添加链表单元n");printf(&qu

12、ot;3: 删除链表单元n");printf("4: 查询链表单元n");printf("5: 删除表头n");printf("6: 删除表尾n");printf("7: 退出 n");printf(" 请输入功能选择:");scanf("%d",&choice);/cin>>choice;if(choice=1) head=Create(temp);ShowList(head);saveList(head);elseif(choice=2)/表

13、头添加元素temp=(structStudent*)malloc(sizeof(structStudent);printf(" 姓名:");scanf("%s",temp->name);printf(" 学号:");scanf("%d",&temp->num);printf(" 成绩:");scanf("%d",&temp->math);AddTail(head,temp);/head=AddHead(head,temp);ShowList(

14、head);saveList(head);elseif(choice=3)删除元素head=DeleteSomeone(head);ShowList(head);saveList(head);elseif(choice=4)查找元素FindSomeone(head);elseif(choice=5)删除表头head=DeleteHead(head);ShowList(head);saveList(head);elseif(choice=6)删除表尾DeleteTail(head);ShowList(head);saveList(head);elseif(choice=7)printf(&quo

15、t; 谢谢使用!n");elseprintf("非法输入,请输入17之间的数!n");while(choice!=7);structStudent*Create(structStudent*head)/ 包含读文件创建链表structStudent*pS,*pEnd;FILE*fp;fp=fopen("e:list.txt","r");if(fp!=NULL)/表明已有链表数据,直接读入intflag;while(1)pS=(structStudent*)malloc(sizeof(structStudent);flag=f

16、scanf(fp,"%s%d%d",pS->name,&pS->num,&pS->math);if(flag=EOF)break;if(head=NULL)head=pS;elsepEnd->next=pS;pEnd=pS;if(head!=NULL)pEnd->next=NULL;printf(" 已从文件中读入数据创建链表!n");deletepS;fclose(fp);if(head=NULL)while(1)pS=(structStudent*)malloc(sizeof(structStudent)

17、;printf(" 姓名 :"); scanf("%s",pS->name);if(strcmp(pS->name,"000")printf(" 学号:"); scanf("%d",&pS->num);printf(" 成绩:"); scanf("%d",&pS->math);elsebreak;if(head=NULL)head=pS;elsepEnd->next=pS;pEnd=pS;pEnd->ne

18、xt=NULL;deletepS;returnhead;voidShowList(structStudent*head)/ 显示链表上的数据printf(" 学生姓名学号成绩:n");while(head)printf("%20s",head->name);printf("%6d",head->num);printf("%5dn",head->math);head=head->next;voidsaveList(structStudent*head)/保存链表上的数据FILE*fp;fp=f

19、open("e:list.txt","w");if(fp=NULL)printf(" 无法创建文件e:list.txt!");return;while(head)fprintf(fp,"%s%d%dn",head->name,head->num,head->math);head=head->next;fclose(fp);voidAddTail(structStudent*head,structStudent*temp)/ 加在表尾structStudent*last;while(head)

20、last=head;head=head->next;last->next=temp;temp->next=NULL;structStudent*AddHead(structStudent*head,structStudent*temp)/ 加在表头structStudent*first;first=head;head=temp;head->next=first;returnhead;structStudent*DeleteSomeone(structStudent*head)structStudent*temp;intxnum,flag=0;printf("

21、请输入学号:");scanf("%d",&xnum);if(head=NULL)printf(" 表为空 !n");returnhead;if(head->num=xnum)temp=head;head=head->next;deletetemp;returnhead;Student*first=head;while(head)if(head->next=NULL)break;temp=head->next;head->next=temp->next;deletetemp;flag=1;break;h

22、ead=head->next;if(flag=0)printf(" 未发现 !n");returnfirst;voidFindSomeone(Student*head)按学号查找intxnum,flag=0;printf(" 请输入学号:");scanf("%d",&xnum);while(head)if(head->num=xnum)printf("%20s",head->name);printf("%6d",head->num);printf("%4

23、dn",head->math);flag=1;break;head=head->next;if(flag=0)printf(" 未发现 !n");structStudent*DeleteHead(structStudent*head)if(head=NULL)printf(" 表为空 !n");returnhead;if(head->next=NULL)deletehead;head=NULL;returnhead;elsestructStudent*first=head;head=head->next;deletefi

24、rst;returnhead;voidDeleteTail(structStudent*head)if(head=NULL)printf(" 表为空 !n");if(head->next=NULL)deletehead;head=NULL;elsestructStudent*temp,*end;end=head;while(end->next!=NULL)temp=end;end=end->next;temp->next=NULL;第 10章文件编程题30:编程实现:有一个文本文件“a.txt,”里面有大小写英文字母、数字和其它符号。要求分别统计其中

25、大写字母、小写字母、数字以及其它字符的个数。编程题30:从键盘输入一串字符,并以#结束,将其中的大写字母全部转换成小写字母,并输出到计算机D盘文件“test.txt ”中保存。(提示:一用字符并不意味着一行字符,另外一申字符的具体字符个数是不定的。)编程题31:从键盘输入一个字符串,将其中的小写字母全部转换为大写字母,然后输出到C盘“ test ”文件中保存,输入的字符串以“!”结束。编程题32:有两个磁盘文件“ A和“B”,各存放一行字母,要求把这两个文件中的信息合 并(按字母顺序排列),输出到一个新文件“ C”中去。编程题33:有5 个学生,每个学生有3 门课程的成绩,从键盘输入学号、姓名

26、、3 门课程成绩,计算每个学生的平均成绩,将原有数据和平时成绩存放在磁盘文件“ stud”中。第 1-3 章 C 语言基础、编程规范、顺序结构程序设计一、选择题1 . C语百是一种(C)程序设计语百A.低级B.面向对象C.高级D.智能2 .下列特性中,(D)不是C语言的特征。A.运行效率高B.结构化程序设计C能直接访问物理地址D.类型检测严格3 .下列标识符中,(D)不是C的关键字;A.intB.floatC.charD.scanf4 .下列标识符中,(D)不是C的关键字;A.sizeofB.shortC.longD.define5 .下列标识符中,(D)不是C的关键字;A.gotoB.bre

27、akC.autoD.printf6 .下列标识符中,(D)不是C的关键字;A.static B.struct C.void D.include7 .下列自定义标识符中,(C)是不符合规定。A.point1x B._point1x C.2pointx D.pointx_28 .下列自定义标识符中,(C)是不符合规定。A.MAX B._MIN C.MAX$ D.MIN_29 .下列自定义标识符中,(D)是不符合规定。A.point1_B._point1x C.pointxD.pointx_?#10 .下列自定义标识符中,(A)是不符合规定。A.2_point1xB._point1x C.point

28、xD.pointx_211 下列四个选项中,是不合法的用户标识符的选项是(C)A. P_0B. _abcC. gotoD. temp12下面是不正确的字符串常量的是(A)A. ' abc'B. "12' 12"C.“0"D. ”13 .已知inta;floatf; scanf( "a=%d,f=%f",&的&0把10和3.14分别赋值给a和f,则正确的输入为(C)A 10,3.14B.103.14C.a=10,f=3.14D.a=10f=3.1414 .输入语句为:scanf("%f,%fn&q

29、uot;,&radius,&high);下列键盘输入(D)是正确的。A. 12/; B. 1, 2n/; C. 1/2/; D. 1,2/;15 .输入语句为:scanf("a=%f,b=%f",&radius,&high)从键盘卒U入(D)是正确的。A. 12/; B. 1, 2/; C. 1/2/; D. a=1,b=2/;16 .输入语句为:scanf("a=%f,b=%fn",&radius,&high);从键盘输入(D)是正确的。A.12/;B.1, 2/;C.1/2/; D. a=1,b=2n/

30、;17 .输入语句为:scanf("a=%fb=%f",&radius,&high)从键盘输入(D)是正确的。A.12/;B.1, 2/;C.1/2/; D. a=1b=2/;18 . doublePI=3.1415926输出语句为:printf("%3.2lf",PI);下列输出结果(D)是正确的。A3.1415926;B3.2; C3.1; D 3.14;19 . doublePI=3.1415926输出语句为:printf("%5.4lf",PI);下列输出结果(B)是正确的。A3.1415926;B3.1415

31、;C 3.1416; D5.4;20 . doublePI=3.1415926输出语句为:printf("%3.4lf",PI);下列输出结果()是正确的。A 3.1415926; B 3.141; C 3.1415; D 3.1416;21 .设x,y均为float型变量,则下列不合法的赋值语句是()A. +xB. y=(x%2)/10C. x*=y+8 D, x=y=022. doublePI=3.1415926输出语句为:printf("%4.2lf",PI);下列输出结果()是正确的。A 3.1415926; B 4.2; C 3.141; D

32、3.14;1 3.inta=-1; C语言整型数分配4个字节,在计算机中下列十六进制表示的(A)是正确的。A. ffffffff ; B. ; C. ; D. 00000001;24 . inta=1 ; C语言整型数分配4个字节,在计算机中下列十六进制表示的a ()是正确的。A. 00000001; B. ; C. ; D. ffffffff ;25 . ?inta=-1; C语言整型数分配4个字节,在计算机中下列十六进制表示的a ()是正确的A. ; B. -00000001; C. -1; D. ffffffff ; *26 . inta=-1; C语言整型数分配4个字节,在计算机中下列

33、十六进制表示的 a ()是正确的。A. -ffffffff ; B. ; C. ffffffff ; D. -1; *27 .设有下列变量说明:chara;intx;floaty;doublez;则表达式a*x-z+y的值的数据类型为()。*A. float B. char C. int D. double28 .已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式 ch=' a' -+'面植A. f ' B . ' a' C. 'Dd' 102C. ch=' a' +' bD. ch=5

34、+9s=25/3%3 的值为()C . 2D. 3s%2+(s-1)%2勺值为()C . -1D. 2s%2+(s+1)%2勺值为()C. 2D .不确定29 .已知ch是字符型变量,下列不正确的赋值语句是()A. ch=' a+b'B . ch='0'30 .若s是int型变量,则表达式A. 25B . 131 .若s是int型变量,则表达式A. 0B , 132 .若s是int型变量,则表达式A. 0B , 133 .下列表达式中,不能正确表达代数式繁含义的C语言表达式是()A. x/a/b*y*2 B . 2*x*y/a/bC. 2*x*y/a*bD. x

35、*y/b/a*234 .若x、i、j、k均为int变量,则计算表达式x=(i=4,j=16,k=32)=,x的值为()A.4B.16C.32D.5235 .已知 inta=6,b=6;执行 b=(+b)+(a+)后,a 和 b 的值为()A.a=7,b=13B.a=7,b=14C.a=6,b=13D.a=6,b=1436 .若有定义:intx=5,y=2;则计算表达式y+=y- =x*=y后,y的值为()A. 16B . - 16C, 7D. 1037 .若a是int型变量,且其初值为6,则计算表达式a+=a=a*a后,a的值为()A. -30B , -60C, -24D. 638 .若x的初

36、值为7,执行语句x+=*=x+x;后,x的值为()A. 21B . -14C. 14D. -2139 . C语言的编译系统对宏命令的处理是()A.在程序运行时进行的B.在程序连接时进行的C.和C程序中的其他语句同时进行编译的D.在对源程序中其他成分正式编译之前进行的40以下正确的叙述是()A.C语言的预处理功能是指完成宏替换和包含文件的调用B.预处理指令只能位于C源程序文件的首部C.凡是C源程序中行首以“ #"标识的控制行都是预处理命令D. C语言的编译预处理就是对源程序进行初步的语法检查41以下在任何情况下计算平方数时都不会引起二义性的宏定义是()A. #definePOWER(x

37、)x*x B . #definePOWER(x)(x)*(x)C. #definePOWER(x)(x*x) D. #definePOWER(x)(x)*(x)42以下有关宏替换的叙述中错误的是()A.宏替换不占用运行时间B.宏替换只是字符替换C.宏替换在编译之前进行D.宏名必须用大写字母表示43.下列程序段的运行结果为()。voidmain()charc1,c2;c1= A -+ 35 ;c2= -A 3;+ 6printf(%d%c ,c1,c2)A.C,DB.67,DC.B,C确定值二、填空题1 .在C语言中,实型变量可以分为两种类型,它们是 和。2 .若x, a为整型变量,则计算表达式

38、x=(a=4, 6*2)后的x值为,计算表达式 x=a=4, 6*2后的x值为。3 .若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n+后x的值, n 的值为 0三、阅读下列程序,在下划线上写出输出结果1 .程序段:#defineMUL(x)(x)*(x)*(x)main()printf("%MUL(1+2)+3); 的结果是。2 .程序段:#definey(t)(t)*(t)main()printf(",戒1+2)+3); 的结果是。3 .以下程序的输出结果是(19)21。#include<stdio.h>#defineM(x,y,z)x*

39、y+zvoidmain()inta=2,b=3,c=4;printf("%dn",M(a+b,b+c,c+a);/知识点:宏定义是编译时先替换,运行时才计算第4章选择结构程序设计一、选择题1 .若x是int型变量,则表达式x%2+(x+1)%2的值为()。A. 0 B . 1 C . 2 D .不确定2 .设有定义inta=3, b=4, c=5,则表达式a|b+c&&b=c的值为()。A. 3B . 1 C . 0 D .不确定3判断字符串a 和 b 是否相等,应当使用()A. if(a=b) B . if(a=b)C. if(strcpy(a, b) D

40、. if(strcmp(a, b)4表达式5!=4的值是()A. 0 B. 1 C. true D.任一非零数5 .设逻辑型变量a, b, c,其中a的值为1,则逻辑运算表达式a|b|c的值是()A. 0 B . 1 C . trueD.不确定6 .若a=5,b=4,c=2时,表达式a>b!=c的值是()A. 1 B . 0 C .非1D .不确定7 .设逻辑型变量a, b, c,其中a的值为0,则逻辑运算表达式a&&b&&c的值是()A. 0 B . 1 C .非1 D .不确定8 .若当a的值为奇数时,表达式的值为“真”,当a的值为偶数时,表达式的值为

41、“假”,则以下不能满足要求的表达式是()A. a%2=1 B. ! (a%2=。C.! (a%2)D. a%29 .判断字符型变量x是否为大写字母的正确表达式是()A. ' A' <=x<= 'Z' B. (x>=A) & (x<=Z)C. (x>=' A'&& (x<=' Z' D. (x>=' A'and (x<=' Z'10 .若 x=5, y=2, z=1,则表达式 x-y<z|y=z 的值是()A. 0B , 1

42、C . 3D, 211 以下不正确的if 语句形式是()A if(x>y&&x!=y);B if(x=y)x+=y;C if( x!=y) x=1elsex=2;D if(x<y)x+;y+12 .设有定义 inta=1,b=2,c=3,d=4,m=2,n=2 执行(m=a>b) &&(n=c>d)后 n 的值是()A. 1 B . 2C . 3D, 4二、填空题1.在C语言中,若x, y, z均为int型变量,则“x或y中有一个小于z”的表达式描述形式 为 0三、阅读下列程序,在下划线上写出输出结果1 .#include<stdi

43、o.h>voidmain()intx=1,y=0,a=0,b=0;switch(x)easel:switch(y)case0:a+;break;case1:b+;break;case2:a+;b+;break;printf( "d,%d ,a,b);/*输出结果:*/2 .以下程序的运行结果是。#include<stdio.h>voidmain()if(x+>5)printf("% d,x)elseprintf("% d-x);四、程序填空1 .下列程序的功能是实现输出a, b, c三个数中的最大值。请为程序填空。#include<s

44、tdio.h>voidmain()inta=5, b=4, c=8;;if()u=a;elseu=b;if()v=u;else;printf("v=% d,v);2 .下列程序的功能是根据下列函数关系,输入 x的值,计算y的值。请为程序填空#include<stdio.h>voidmain()intx,y;scanf( %/od );if()y=x*(x+5);elseif()y=4*x;else;printf("/ d,y);第5章循环结构程序设计一、选择题1 .执行语句for(i=1;i+<3;);后变量i的值的是()。A. 3 B . 4 C.

45、5 D.不确定2 .对于程序段intk=10;while(k)k=k-1;下面描述正确的是()。A.循环体执行10次B.该循环为无穷循环3 .程序段:a=10; b=0;dob+=2;a- =2+b;while(a>=0);中循环体的执行次数()A. 1 B . 2 C . 3D, 4C循环体执行一次D.循环体一次也不执行4 .设i为整型变量,则语句for(i=2;i=0; )a=3;中循环体的执行次数为()D. 2次A.无限次5设有下列程序段:x=1;dox=x*x;while(!x)则该循环是()A.死循环 B .循环执行一次C.循环执行二次 D.语句错误6设有程序段:intk=10

46、;while(k=0)k-;则下列描述中正确的是()A. while循环执行10次B. while循环执行无限次C. while循环执行0次 D . while循环执行1次7程序段:x=y=0;while(x<15)y+, x+=+y;执行后 x 值是()A. 7 B , 12C, 8D. 208.与语句while(!E)中表达式! E等价的是()A, E=0 B. E! =1C.E!=0D. E=19以下不是死循环的语句是()A for(y=0,x=1;x>+y;x=i+)i=x;B for (;x+=);iC for(i=10;i- )a+=i;D. while(1)a+; ;

47、10 .程序段i=11;doi+;while(i<=10);执行后i的值为()A. 11 B . 12C.10 D.不确定11 .执行语句for(i=1;i+<3;);后变量i的值的是()A. 3 B . 4C.5D.不确定12 . for(x=0,y=0; (y=123)&&(x<4); x+);的循环执行次数为()A.无限次 B.次数不定C执彳亍3次D.执行4次13 .程序段x=2;doprintf(;*-); while(!x=0)的运行结果为()A.*C.*14 .执行语句for(i=4;i->0 ;);后变量i的值的是()A. 0 B . 1C

48、.2D.不确定二、填空题1.若for循环语句用以下形式表示:for(表达式1;表达式2;表达式3)循环体语句则执行语句:for(i=0; i<4; i+)printf( 时;宸达式1执行 次,表达式3执行了 次。三、阅读下列程序,在下划线上写出输出结果1 .设有程序段k=1; n=263;dok*=n%10;n/=10;while(n);其运行结束后k的值为循环结束后n的值是2 .写出以下程序的运行结果。#include<stdio.h>main()inty=10;doy-;while(- y);printf("%d,'); ,y3 .阅读下列程序,在下划线

49、上写出输出结果。#include<stdio.h>main()inty=-10;doy+;while(+y);printf(“ %+,+);/1V 输出结果:*/4 .以下程序的运行结果是。#include<stdio.h>voidmain() inti;for(i=1;i<=5;i+)switch(i%5)case0:printf( “*");break;case1:printf(“#");break;default:printf( , " );case2:printf("&” );x。请为程序填空四、程序填空1.

50、下列程序的功能是采用“顺序查找法”查找数组中是否存在元素#include<stdio.h>voidmain()inta8=9,1,3,2,6,4,7,8;inti,x;scanf( "d .);for(i=0;i<=8;i+)if(x=ai)printf("Found!TheIndexisn"-i );if()printf( "notfound! ” ;第6章数组一、选择题1 .在C语言中引用数组元素时,其数组下标的数据类型可以是()。A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式2 .以下能对一维数组a进行正确

51、初始化的语句是()。A. inta10=(0,0)B . inta10=;C. inta=0; D. inta10=10*1;3 .若有说明:inta10;则对a数组元素的正确引用是()A. a10 B. A3. 5C.a (5)D. A10-104 .若有说明:inta34;则对a数组元素的正确引用是()A. a24 B. A2,4C.a1+10D. A(2) (1)5 .若有以下说明:inta3=1,2,3,4,5,6,7;则数组a的第一维的大小是()A. 4 B . 3C.2D.不确定6 .二维数组x有m歹I,若元素x是第一个元素,则xi加在数组中的位置是()A. i*m+j B , j

52、*m+i C.i*m+j-1D. i*m+j+17 .下面能正确进行字符串赋值操作的是()A. chara5= "ABC DEB chara5= 'A' , ' B' ; ' C' , ' D' , ' E' C. char*a; a= "ABCDE D char*a; scanf( "S'; ,a)8 .若有定义:inta5;则数组a中首元素的地址可以表示为()A. &a B. a+1 C.aD. &a19 .若已定义chars10;则在下列表达式中不表示s1

53、的地址的是()A. s+1 B. s+ C. &s0+1 D. &s110 .设有数组定义:chararray=” Ch则数组所占的空间是:()A. 4个字节B.5个字节C.6个字节D.7个字节11 .下面各行语句中正确的是()。A.chars5= ” ABCD”E ;B.chars6;s= ” ABCD”;EC.char*s= ” ABCD”E D.char*s;scanf( “ %s” ,s)12以下正确的定义语句是()A. inta14=1,2,3,4,5; B. floatx3=1,2,3;C. longb23=1,1,2,1,2,3; D. doubley3=0;13

54、.若有以下说明:inta34=0;则下列正确的叙述是()A.只有元素a0可得到初值0B.此说明语句不正确C.数组a中各元素都可得到初值,但其值不一定为0D .数组a中各元素都可得到初值014两个数组a 和 b 进行如下初始化chara= ” abcdef ”;charb= , a b, ,c ,d ,e f15.则下列叙述正确的是()A. a和b数组完全相同 B. a和b长度相同C.a和b中都存放字符串D. a数组比b数组长度长16以下不能对二维数组a 进行正确初始化的语句是()A. inta23=0; B . inta3=1 , 2, 0;C. inta23=1,2,3,4,5,6; D.

55、inta3=1,2,3,4,5,6;17下述对C 语言中字符数组的描述错误的是()A.字符数组可以存放字符串B.字符数组的字符串可以整体输入和输出C,可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值D.不可以用关系运算符对字符数组中的字符串进行比较18 .以下能对二维数组a进行正确初始化的语句是()A. inta2=1,0,1,5,2,3; B . inta3=1,2,3, 4,5,6;C. inta24=1,2,3,3,4,6; D. inta3=1,2,3,4,5;19 .对数组说明语句:inta10=1,2,3,4,5;的正确理解是()A.将5个初值依次赋给a1到a5元素B.将5个

56、初值依次赋给a6到a10元素C.将5个初值依次赋给a0到a4元素D .该语句出错20.对数组说明语句:inta10=1,2,3,4,5;的正确理解是()A.将5个初值依次赋给a1到a5元素B.将5个初值依次赋给a6到a10元素C.将5个初值依次赋给a0到a4元素D .该语句出错21.若有定义:inta5;则数组a中首元素的地址可以表示为()A. &a B. a+1 C.aD. &a1二、填空题1 .若有如下定义:inta35,则a数组中行下标的下限是 ,列下标的的上限是 02 .若有定义:inta34=1,2,0,4,6,8,10;则初始化后,a12得到的初值是, a21 得到的初值是。3 .在C语言中,数组名是一个不可改变的 ,不能对它进行赋值运算。数组在内存 中占用一段连续的存储空间,它的首地址由 表示。三、阅读下列程序,在下划线上写

温馨提示

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

评论

0/150

提交评论