C语言程序设计各章练习题_第1页
C语言程序设计各章练习题_第2页
C语言程序设计各章练习题_第3页
C语言程序设计各章练习题_第4页
C语言程序设计各章练习题_第5页
已阅读5页,还剩23页未读, 继续免费阅读

下载本文档

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

文档简介

1、。 C 语言程序设计各章练习题 2016 年 12 月汇编 第第 1-31-3 章章 C C 语言基础、编程规范、顺序结构程序设计语言基础、编程规范、顺序结构程序设计 编程题编程题 1 1:设:设 a a 和和 b b 均为均为 intint 型变量,编写一个程序,通过键盘读入型变量,编写一个程序,通过键盘读入 a,ba,b 的值,然后交换的值,然后交换 a,ba,b 的值。要求屏幕显示“输入的值。要求屏幕显示“输入2 2 个整数,用空格隔开”的提示语句,并且输出交换前个整数,用空格隔开”的提示语句,并且输出交换前a,ba,b 的值,交换后的值,交换后 a,ba,b 的值。的值。 附加要求:

2、(1)允许定义第 3 个变量,实现交换; (2)不允许定义第 3 个变量,实现交换。 第第 4 4 章选择结构程序设计章选择结构程序设计 编程题编程题 2 2:根据下列函数关系写程序,要求提示输入:根据下列函数关系写程序,要求提示输入 x x 的值,输出的值,输出 y y 的值。的值。 1 x 2 y 2 x2 x 2 y 2 x 2 2 x 0 x 0 x 0 编程题编程题 2 2:根据下列函数关系写程序,要求提示输入:根据下列函数关系写程序,要求提示输入 x x 的值,输出的值,输出 y y 的值。的值。 x 2 2 x 0 x 0 2 2 编程题编程题 3 3:求:求 ax ax +bx

3、+c=0+bx+c=0 方程的解。方程的解。 (只输出(只输出 b b -4ac=0-4ac=0 的求解结果,小于的求解结果,小于 0 0,输出“不予,输出“不予 求解求解! !” ) 第第 5 5 章章 循环结构程序设计循环结构程序设计 编程题编程题 4 4:编程计算:编程计算i。要求提示键盘输入。要求提示键盘输入 n n,如,如 n n 为负数,不予计算,直接返回。为负数,不予计算,直接返回。 i1 n 编程题编程题 5 5:编程序计算:编程序计算 n n! ,要求,要求 n n 从键盘输入,如从键盘输入,如 n n 小于小于 0 0,不予计算。,不予计算。 编程题编程题 6 6:从键盘输

4、入一个数:从键盘输入一个数 n n,判断,判断 n n 是否是素数。是否是素数。 编程题编程题 6 6: 编写程序输出编写程序输出 11001100 之间的偶数,之间的偶数, 要求屏幕显示时要求屏幕显示时 5 5 个偶数一行,个偶数一行, 每个数占每个数占 5 5 位,位, 右对齐。右对齐。 编程题编程题 7 7:编程计算:编程计算 100100 到到 10001000 之间有多少个数其各位数字之和是之间有多少个数其各位数字之和是 5 5,并将其输出。,并将其输出。 编程题编程题 8 8:求满足下列条件的三位数:求满足下列条件的三位数n n,它除以,它除以1111(整数相除)所得到的商等于(整

5、数相除)所得到的商等于n n 的各位数的各位数 字的平方和,且其中至少有二位数字相同的数。字的平方和,且其中至少有二位数字相同的数。 编程题编程题 9 9:有一些十进制整数对:有一些十进制整数对 abab 和和 cdcd 具有如下特性:具有如下特性:abab cd=bacd=ba dcdc,其中,其中 a a b b 且且 c c d d。 如:如:1212 42=2142=21 2424。请编程找出。请编程找出 30503050 之间满足上述等式所有之间满足上述等式所有 m m,n n 值,并按上述等式的格值,并按上述等式的格 。1 。 式输出。式输出。 (用(用* *表示)表示) 编程题编

6、程题 1010:从键盘上输入一个整数,从键盘上输入一个整数,然后把这个整数的各位逆序输出。然后把这个整数的各位逆序输出。例如,例如,输入输入 123456123456, 输出输出 654321654321。 第第 6 6 章章数组数组 编程题编程题 1111:有一个已排好序的数组:有一个已排好序的数组 int a11=-5,-3,0,6,8,12,16,28,66,88;int a11=-5,-3,0,6,8,12,16,28,66,88;,要求输,要求输 入一个数后,按原来排序的规律将它插入数组中。入一个数后,按原来排序的规律将它插入数组中。 编程题编程题 1212:输入一个字符串(字符个数

7、为小于:输入一个字符串(字符个数为小于100100) ,统计其中字母、数字、空格以及其它,统计其中字母、数字、空格以及其它 符号的个数,并将大写字母改为小写字母,输出改变后的字符串。符号的个数,并将大写字母改为小写字母,输出改变后的字符串。 (提示:(提示:A A 的的 ASCIIASCII 值为值为 6565,a a 的的 ASCIIASCII 值为值为 9797) 编程题编程题 1212:输入一行字符(字符数组的个数小于:输入一行字符(字符数组的个数小于100100) ,统计其中字母、数字以及其它符号,统计其中字母、数字以及其它符号 的个数。的个数。 (注:数组限定字符个数小于(注:数组限

8、定字符个数小于 100100) 编程题编程题 1212:输入一行字符,输入一行字符,分别统计出其中英文字母、分别统计出其中英文字母、数字、数字、空格和其他字符的个数。空格和其他字符的个数。 (注:(注: 字符个数不受限制)字符个数不受限制) 第第 7 7 章函数章函数 编程题编程题 1313:编写一个子函数:编写一个子函数 int fun ( int n) int fun ( int n),其功能是判断整数,其功能是判断整数 n n 是否为素数,是否为素数,n n 是是 素数,返回值为素数,返回值为 1 1;n n 不是素数,返回值为不是素数,返回值为 0 0。调用该函数,将。调用该函数,将

9、100200100200 之间的素数全部输之间的素数全部输 出,要求屏幕上每个数占出,要求屏幕上每个数占 4 4 位,每行显示位,每行显示 5 5 个素数,左对齐。个素数,左对齐。 (循环、条件分支、子函数、(循环、条件分支、子函数、 变量的值传递、屏幕显示格式控制)变量的值传递、屏幕显示格式控制) 编编程程题题1414:主主函函数数中中定定义义两两个个数数组组intint a5=5,4,8,-1,2,b10=1,-1,2,4,8,4,0,9,3,7;a5=5,4,8,-1,2,b10=1,-1,2,4,8,4,0,9,3,7;用子函数实现从小到大的冒泡排序,用子函数实现从小到大的冒泡排序,

10、子函数为子函数为 voidvoid bubble(intbubble(int ,int);,int);要求在主函数中显示排序前、要求在主函数中显示排序前、后的数组后的数组 a a 和和 b b 的元素。的元素。 (循环、条件分支、子函数、数组、地址传递)(循环、条件分支、子函数、数组、地址传递) 编编程程题题1515:主主函函数数中中定定义义两两个个数数组组intint a5=5,4,8,-1,2,b10=1,-1,2,4,8,4,0,9,3,7;a5=5,4,8,-1,2,b10=1,-1,2,4,8,4,0,9,3,7;用子函数实现从小到大的选择法排用子函数实现从小到大的选择法排 序,子函

11、数为序,子函数为 voidvoid sort(intsort(int ,int);,int);要求在主函数中显示排序前、后的数组要求在主函数中显示排序前、后的数组 a a 和和 b b 的元的元 素。素。 (循环、条件分支、子函数、数组、地址传递)(循环、条件分支、子函数、数组、地址传递) 编程题编程题 1616:用递归函数计算:用递归函数计算 n!n!。 编程题编程题 1717:编写一个子函数:编写一个子函数 int int factfact ( ( int n)int n),计算,计算 n n 的阶乘。调用该函数计算的阶乘。调用该函数计算 1 1!+2+2! +3+3!+ +n+n! ,要

12、求,要求 n n 从键盘输入,如输入从键盘输入,如输入 n n 小于小于 0 0,不予计算。,不予计算。 (循环、递归函数)(循环、递归函数) 编程题编程题 1818:将:将1616 进制或进制或 8 8 进制或进制或 2 2 进制数转换为十进制数(字符数组、字符串函数、子函进制数转换为十进制数(字符数组、字符串函数、子函 数、字符数、字符 ASCIIASCII 值与值与 1010 进制数的转换,指数函数的调用)进制数的转换,指数函数的调用) 编程题编程题 1818:编程实现八进制数转换为十进制数(注:用字符数组:编程实现八进制数转换为十进制数(注:用字符数组n100n100接收输入,输入的接

13、收输入,输入的 八进制数肯定正确,无须检测;八进制数转换为十进制数的子函数为八进制数肯定正确,无须检测;八进制数转换为十进制数的子函数为int htoi(charint htoi(char hnum );hnum );) 编程题编程题 1818:编写一个子函数,将:编写一个子函数,将 1616 进制数转换为进制数转换为 1010 进制数。进制数。 编程题编程题 1919:编写一个子函数,主函数用字符数组作为实参,统计字符串中字母、数字、空:编写一个子函数,主函数用字符数组作为实参,统计字符串中字母、数字、空 格以及其他符号的个数,要求主函数中显示字符串与统计结果。格以及其他符号的个数,要求主函

14、数中显示字符串与统计结果。 编程题编程题 2020:编写一个子函数,主函数输入一行字符,子函数找出字符串中最长的单词,并:编写一个子函数,主函数输入一行字符,子函数找出字符串中最长的单词,并 。2 。 显示结果。显示结果。 编程题编程题 2121:用递归法将一个整数:用递归法将一个整数 n n 转换为字符串。例如:输入转换为字符串。例如:输入483483,输出字符串“,输出字符串“483483” ,n n 的位数不确定。的位数不确定。 编程题编程题 2222:写一个子函数,将输入的字符串按反序存放,在:写一个子函数,将输入的字符串按反序存放,在 mainmain 中输入和输出字符串。中输入和输

15、出字符串。 第第 8 8 章指针章指针 编程题编程题 2323:编写一个子函数:编写一个子函数 mystrcmp(char *s1,char *s2)mystrcmp(char *s1,char *s2)实现实现 2 2 个字符串的比较。个字符串的比较。 编程题编程题 2323:编程实现两个字符串连接起来,不要用:编程实现两个字符串连接起来,不要用 strcatstrcat 函数。函数。 编程题编程题 2323:用函数调用实现字符串的复制。:用函数调用实现字符串的复制。 编程题编程题 2323: 写一个函数,写一个函数, 求一个字符串的长度。求一个字符串的长度。 在在 mainmain 函数中

16、输入字符串,函数中输入字符串, 并输出其长度。并输出其长度。 编程题编程题 2424:写一个用矩形法求定积分的通用函数,分别计算:写一个用矩形法求定积分的通用函数,分别计算sinxdx、 cosxdx、 exdx 1 0 1 1 2 0 编程题编程题 2525:输入一个字符串,内有数字和非数字字符,如:输入一个字符串,内有数字和非数字字符,如: A123x456 A123x456 17960?302tab587617960?302tab5876, 将其中连续的数字作为一个整数,依次用数组存放这些数,统计有多少个整数,并输出这将其中连续的数字作为一个整数,依次用数组存放这些数,统计有多少个整数,

17、并输出这 些数。些数。 编程题编程题 2626:主函数输入整数的个数,用指针变量动态申请内存,并用键盘按任意次序输入:主函数输入整数的个数,用指针变量动态申请内存,并用键盘按任意次序输入 n n 个整数,用子函数个整数,用子函数 void bubble(int ,int)void bubble(int ,int)实现从小到大的冒泡排序。实现从小到大的冒泡排序。 第第 9 9 章章结构结构 编程题编程题 2727:建立一个链表,每个结点包括:学号、姓名、性别、年龄,输入一个年龄,如:建立一个链表,每个结点包括:学号、姓名、性别、年龄,输入一个年龄,如 果链表中的结点所包含的年龄等于此年龄,则将此

18、结点删去。果链表中的结点所包含的年龄等于此年龄,则将此结点删去。 编程题编程题 2828:1313 个人围成一圈,从第一个人开始顺序报号,凡报到个人围成一圈,从第一个人开始顺序报号,凡报到3 3 者退出圈子,找出最后者退出圈子,找出最后 留在圈子中的人原来的序号。要求用链表实现。留在圈子中的人原来的序号。要求用链表实现。 编程题编程题 2929:阅读链表操作相关函数,完成指定的操作函数。:阅读链表操作相关函数,完成指定的操作函数。 #include stdio.h 链表内容仅限表头表尾添加、删 #include malloc.h 除、查询、显示、保存,不考排 #include string.h

19、 序、中间节点的插入和删除 struct Student char name20; int num; int math; struct Student *next; ; struct Student *Create(struct Student *head); /生成数据链表 void ShowList(struct Student *head); /void ShowList(struct Student *head); /显示链表显示链表 void saveList(struct Student *head); /void saveList(struct Student *head); /

20、保存链表数据保存链表数据 void AddTail(struct Student *head,struct Student *temp); /void AddTail(struct Student *head,struct Student *temp); /表尾添加元素表尾添加元素 struct Student *AddHead(struct Student *head,struct Student *temp); /struct Student *AddHead(struct Student *head,struct Student *temp); / 表头添加表头添加 元素元素 struc

21、t Student *DeleteSomeone(struct Student *head); /struct Student *DeleteSomeone(struct Student *head); /删除元素删除元素 void FindSomeone(struct Student *head); /void FindSomeone(struct Student *head); /查询元素查询元素 struct Student *DeleteHead(struct Student *head);/struct Student *DeleteHead(struct Student *head

22、);/删除表头删除表头 void DeleteTail(struct Student *head);/void DeleteTail(struct Student *head);/删除表尾删除表尾 void main() 。3 。 struct Student *head=NULL,*temp=NULL; int choice; do printf(1:创建数据链表n); printf(2:添加链表单元n); printf(3:删除链表单元n); printf(4:查询链表单元n); printf(5:删除表头n); printf(6:删除表尾n); printf(7:退出n); printf

23、(请输入功能选择:); scanf(%d,/cinchoice; if(choice=1) head=Create(temp); ShowList(head); saveList(head); else if(choice=2)/表头添加元素 temp=(struct Student *)malloc(sizeof(struct Student); printf(姓名:); scanf(%s,temp-name); printf(学号:); scanf(%d, printf(成绩:); scanf(%d, AddTail(head,temp);/ head=AddHead(head,temp)

24、; ShowList(head); saveList(head); else if(choice=3) /删除元素 head=DeleteSomeone(head); ShowList(head); saveList(head); else if(choice=4) /查找元素 FindSomeone(head); else if(choice=5) /删除表头 head=DeleteHead(head); ShowList(head); saveList(head); else if(choice=6) /删除表尾 DeleteTail(head); ShowList(head); save

25、List(head); 。4 。 else if(choice=7) printf(谢谢使用!n); else printf(非法输入,请输入 17 之间的数!n); while(choice!=7); struct Student *Create(struct Student *head)/包含读文件创建链表 struct Student *pS,*pEnd; FILE *fp; fp=fopen(e:list.txt,r); if(fp!=NULL)/表明已有链表数据,直接读入 int flag; while(1) pS=(struct Student *)malloc(sizeof(st

26、ruct Student); flag=fscanf(fp,%s %d %d,pS-name, if(flag=EOF) break; if(head=NULL) head=pS; else pEnd-next=pS; pEnd=pS; if(head!=NULL) pEnd-next=NULL; printf(已从文件中读入数据创建链表!n); delete pS; fclose(fp); if(head=NULL) while(1) pS=(struct Student *)malloc(sizeof(struct Student); printf(姓名:);scanf(%s,pS-nam

27、e); if(strcmp(pS-name,000) printf(学号:);scanf(%d, printf(成绩:);scanf(%d, else break; if(head=NULL) 。5 。 head=pS; else pEnd-next=pS; pEnd=pS; pEnd-next=NULL; delete pS; return head; void ShowList(struct Student *head)/显示链表上的数据 printf(学生姓名学号成绩:n); while(head) printf(%20s,head-name); printf(%6d,head-num)

28、; printf(%5dn,head-math); head=head-next; void saveList(struct Student *head)/保存链表上的数据 FILE *fp; fp=fopen(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); void AddTail(struct Student *head,struc

29、t Student *temp)/加在表尾 struct Student *last; while(head) last=head; head=head-next; last-next=temp; temp-next=NULL; 。6 。 struct Student *AddHead(struct Student *head,struct Student *temp)/加在表头 struct Student *first; first=head; head=temp; head-next=first; return head; struct Student *DeleteSomeone(st

30、ruct Student *head) struct Student *temp; int xnum,flag=0; printf(请输入学号:); scanf(%d, if(head=NULL) printf(表为空!n); return head; if(head-num=xnum) temp=head; head=head-next; delete temp; return head; Student *first=head; while(head) if(head-next=NULL) break; if(head-next-num=xnum) temp=head-next; head

31、-next=temp-next; delete temp; flag=1; break; head=head-next; if(flag=0) printf(未发现!n); return first; void FindSomeone(Student *head)/按学号查找 int xnum,flag=0; 。7 。 printf(请输入学号:); scanf(%d, while(head) if(head-num=xnum) printf(%20s,head-name); printf(%6d,head-num); printf(%4dn,head-math); flag=1; break

32、; head=head-next; if(flag=0) printf(未发现!n); struct Student *DeleteHead(struct Student *head) if(head=NULL) printf(表为空!n); return head; if(head-next=NULL) delete head; head=NULL; return head; else struct Student *first=head; head=head-next; delete first; return head; void DeleteTail(struct Student *h

33、ead) if(head=NULL) printf(表为空!n); if(head-next=NULL) delete head; head=NULL; 。8 。 else struct Student *temp,*end; end=head; while(end-next!=NULL) temp=end; end=end-next; temp-next=NULL; 第第 1010 章章文件文件 编程题编程题 3030: 编程实现:编程实现: 有一个文本文件有一个文本文件“ “a.txta.txt” ”, 里面有大小写英文字母、里面有大小写英文字母、 数字和其它符号。数字和其它符号。 要求分

34、别统计其中大写字母、小写字母、数字以及其它字符的个数。要求分别统计其中大写字母、小写字母、数字以及其它字符的个数。 编程题编程题 3030:从键盘输入一串字符,并以:从键盘输入一串字符,并以 # # 结束,将其中的大写字母全部转换成小写字母,结束,将其中的大写字母全部转换成小写字母, 并输出到计算机并输出到计算机 D D 盘文件盘文件 “test.txttest.txt”中保存。”中保存。 (提示:一串字符并不意味着一行字符,(提示:一串字符并不意味着一行字符, 另外一串字符的具体字符个数是不定的。另外一串字符的具体字符个数是不定的。 ) 编程题 31:从键盘输入一个字符串, 将其中的小写字母

35、全部转换为大写字母, 然后输出到 C 盘“test”文件中保存,输入的字符串以“! ”结束。 编程题 32:有两个磁盘文件“A”和“B” ,各存放一行字母,要求把这两个文件中的信息合 并(按字母顺序排列) ,输出到一个新文件“C”中去。 编程题 33:有5 个学生,每个学生有3 门课程的成绩,从键盘输入学号、姓名、 3 门课程成 绩,计算每个学生的平均成绩,将原有数据和平时成绩存放在磁盘文件“stud”中。 。9 。 第第 1-31-3 章章 C C 语言基础、编程规范、顺序结构程序设计语言基础、编程规范、顺序结构程序设计 一、选择题一、选择题 1. C 语言是一种( C C )程序设计语言。

36、 A. 低级 B. 面向对象C.C. 高级高级D. 智能 2. 下列特性中,(D D )不是 C 语言的特征。 A.运行效率高 B.结构化程序设计C.能直接访问物理地址D.D.类型检测严格类型检测严格 3下列标识符中,( D D )不是 C 的关键字; A. intB. floatC. charD. scanfD. scanf 4下列标识符中,(D D )不是 C 的关键字; A. sizeofB. shortC. longD. defineD. define 5下列标识符中,(D D )不是 C 的关键字; A. gotoB. breakC. autoD. printfD. printf 6

37、下列标识符中,(D D )不是 C 的关键字; A. staticB. structC. voidD. includeD. include 7下列自定义标识符中,(C C )是不符合规定。 A. point1xB. _point1x C. 2pointxC. 2pointxD. pointx_2 8下列自定义标识符中,(C C )是不符合规定。 A. MAXB. _MIN C. MAX$C. MAX$D. MIN_2 9下列自定义标识符中,(D D )是不符合规定。 A. point1_B. _point1x C. pointxD. pointx_D. pointx_ # # 10下列自定义标

38、识符中,(A A )是不符合规定。 A. 2_point1xB. _point1x C. pointxD. pointx_2 11下列四个选项中,是不合法的用户标识符的选项是( C C ) AP_0_abcgotogototemp 12下面是不正确的字符串常量的是( A A) A A abcabc “1212”“0”“” 13. 已知 int a; float f; scanf(“a=%d,f=%f”, 为了把 10 和 3.14 分别赋值给 a 和 f,则正确的输入为(C C) A10,3.14 B. 10 3.14C. a=10,f=3.14C. a=10,f=3.14 D. a=10 f

39、=3.14 14输入语句为:scanf(%f,%fn,下列键盘输入(D D)是正确的。 A1 2; B1,2n; C12; D1,2; 15输入语句为:scanf(a=%f,b=%f,从键盘输入( D D)是正确的。 A1 2; B1,2; C12;D Da=1,b=2a=1,b=2; 16 输入语句为: scanf(a=%f,b=%fn,从键盘输入 (D D) 是正确的。 A1 2; B1,2; C12; D Da=1,b=2na=1,b=2n; 17输入语句为:scanf(a=%fb=%f,从键盘输入(D D)是正确的。 A1 2; B1,2; C12;D Da=1b=2a=1b=2; 1

40、8double PI=3.1415926, 输出语句为:printf(%3.2lf,PI);下列输出结果( D D)是 正确的。 A3.1415926; B3.2; C3.1; D D3.143.14; 19double PI=3.1415926, 输出语句为:printf(%5.4lf,PI);下列输出结果(B B)是 。10 。 正确的。 A3.1415926;B B3.14153.1415; C3.1416; D5.4; 20double PI=3.1415926, 输出语句为:printf(%3.4lf,PI);下列输出结果()是 正确的。 A3.1415926; B3.141; C3

41、.1415; D3.1416; 21设 x,y 均为 float 型变量,则下列不合法的赋值语句是() A+xy=(x%2)/10 Cx*=y+8x=y=0 22double PI=3.1415926, 输出语句为:printf(%4.2lf,PI);下列输出结果()是 正确的。 A3.1415926; B4.2; C3.141; D3.14; 23. int a=-1;C 语言整型数分配 4 个字节,在计算机中下列十六进制表示的(A A)是正确 的。 Affffffff; B80000001; C10000001; D00000001; 24 int a=1;C 语言整型数分配 4 个字节,

42、在计算机中下列十六进制表示的a()是正确 的。 A00000001; B10000001; C80000000; Dffffffff; 25 int a=-1;C 语言整型数分配 4 个字节,在计算机中下列十六进制表示的a()是正确 的。 A10000001; B-00000001; C-1; Dffffffff;* 26 int a=-1;C 语言整型数分配 4 个字节,在计算机中下列十六进制表示的a()是正确 的。 A-ffffffff; B80000001; Cffffffff; D-1;* 27设有下列变量说明:char a; int x; float y; double z;则表达式

43、 a*x-z+y 的值的数 据类型为() 。* Afloatcharintdouble 28已知字母 a 的 ASCII 码为十进制数 97,且设 ch 为字符型变量,则表达式ch=a+8-3 的值为() Afa C.d102 29已知 ch 是字符型变量,下列不正确的赋值语句是() Ach=a+bch=0ch=a+bch=5+9 30若 s 是 int 型变量,则表达式 s=25/3%3 的值为() A25123 31若 s 是 int 型变量,则表达式 s%2+(s-1)%2 的值为() A0112 32若 s 是 int 型变量,则表达式 s%2+(s+1)%2 的值为() A012不确

44、定 33下列表达式中,不能正确表达代数式 2xy 含义的 C 语言表达式是() ab Ax/a/b*y*22*x*y/a/b2*x*y/a*bx*y/b/a*2 34若 x、i、j、k 均为 int 变量,则计算表达式 x=(i=4,j=16,k=32);后,x 的值为() A. 4 B. 16 C. 32 D. 52 35. 已知 int a=6,b=6; 执行 b=(+b)+(a+);后,a 和 b 的值为() 。 A. a=7,b=13 B. a=7,b=14 C. a=6,b=13 D. a=6,b=14 。11 。 36若有定义:int x=5,y=2; 则计算表达式 y+=y=x*

45、=y 后, y 的值为() A1616710 37若 a 是 int 型变量,且其初值为 6,则计算表达式 a+=a-=a*a 后,a 的值为() A-30-60-246 38若 x 的初值为 7,执行语句 x+=x-=x+x;后,x 的值为() A21-1414-21 39C 语言的编译系统对宏命令的处理是() A在程序运行时进行的 B在程序连接时进行的 C和 C 程序中的其他语句同时进行编译的 D在对源程序中其他成分正式编译之前进行的 40以下正确的叙述是() AC 语言的预处理功能是指完成宏替换和包含文件的调用 B预处理指令只能位于C 源程序文件的首部 C凡是 C 源程序中行首以“#”标

46、识的控制行都是预处理命令 DC 语言的编译预处理就是对源程序进行初步的语法检查 41以下在任何情况下计算平方数时都不会引起二义性的宏定义是() A#define POWER(x) x*x#define POWER(x) (x)*(x) C#define POWER(x) (x*x)#define POWER(x) (x)*(x) 42以下有关宏替换的叙述中错误的是() A宏替换不占用运行时间 B宏替换只是字符替换 C宏替换在编译之前进行 D宏名必须用大写字母表示 43. 下列程序段的运行结果为() 。 void main() char c1,c2; c1=A+5-3; c2=A+6-3; pr

47、intf(“%d,%c”,c1,c2) A. C,DB. 67,D C. B,C D. 无确定值 二、填空题二、填空题 1在 C 语言中,实型变量可以分为两种类型,它们是和。 2若 x,a 为整型变量,则计算表达式 x=(a=4,6*2)后的 x 值为,计算表达式 x=a=4,6*2 后的 x 值为。 3 若 x 和 n 均是 int 型变量, 且 x 和 n 的初值均为 5, 则计算表达式 x+=n+后 x 的值, n 的值为。 三、阅读下列程序,在下划线上写出输出结果三、阅读下列程序,在下划线上写出输出结果 1程序段: #define MUL(x) (x)*(x)*(x) main( )

48、printf(“%d”,MUL(1+2)+3); 。12 。 的结果是。 2程序段: #define y(t) (t)*(t) main( ) printf(“%d”,y(1+2)+3); 的结果是。 3以下程序的输出结果是以下程序的输出结果是(19) 21(19) 21。 #include #define M(x,y,z) x*y+z void main() int a=2,b=3,c=4; printf(%dn, M(a+b,b+c,c+a);/知识点:宏定义是编译时先替换,运行时才计算 第第 4 4 章选择结构程序设计章选择结构程序设计 一、选择题一、选择题 1若 x 是 int 型变量

49、,则表达式 x%2+(x+1)%2 的值为() 。 A012不确定 2设有定义 int a=3,b=4,c=5,则表达式 a|b+c Bif (x=y) x+=y; Cif (x!=y)x=1 else x=2; Dif (xb) switch(x) case 1: switch(y) case 0: a+; break; case 1:b+; break; case 2:a+;b+;break; printf(“%d,%d ”,a,b); /*输出结果:*/ 2以下程序的运行结果是。 #include void main( ) int x=5; if (x+5) printf(“%dn”,x

50、); else printf(“%dn”,x-); 四、程序填空四、程序填空 1下列程序的功能是实现输出a,b,c 三个数中的最大值。请为程序填空。 #include void main( ) int a=5,b=4,c=8; ; 。14 。 if () u=a; else u=b; if () v=u; else; printf(“v=%dn”, v); 2下列程序的功能是根据下列函数关系,输入x 的值,计算 y 的值。请为程序填空。 x(x 5)2 x 10 y 4x1 x 2 x 6x 1 #include void main( ) int x, y; scanf(“%d”,); if

51、() y=x*(x+5); else if () y=4*x; else ; printf(“%dn”, y); 第第 5 5 章循环结构程序设计章循环结构程序设计 一、选择题一、选择题 1执行语句 for (i=1;i+=0); 中循环体的执行次数() A1234 C. 循环体执行一次 D. 循环体一次也不执行 。15 。 4设 i 为整型变量,则语句for (i=2;i=0;) a=3;中循环体的执行次数为() A无限次0 次1 次2 次 5设有下列程序段: x=1; do x=x*x; while (!x) 则该循环是() A死循环循环执行一次循环执行二次语句错误 6设有程序段: int

52、 k=10; while (k=0) k-; 则下列描述中正确的是() Awhile 循环执行 10 次while 循环执行无限次 Cwhile 循环执行 0 次while 循环执行 1 次 7程序段: x=y=0; while (x+y; x=i+) i=x; Bfor(; ;x+=i) ; Cfor (i=10; ; i-) a+=i; Dwhile (1) a+;; 10程序段 i=11; do i+; while (i=10); 执行后 i 的值为() A1112 C. 10不确定 11执行语句 for (i=1;i+3;);后变量 i 的值的是() A34 C. 5不确定 12for

53、 (x=0,y=0;(y=123)时,表达式 1 执行次,表 达式 3 执行了次。 三、三、 阅读下列程序,在下划线上写出输出结果阅读下列程序,在下划线上写出输出结果 1.设有程序段 k=1;n=263; do k*=n % 10; n/=10; while (n); 其运行结束后 k 的值为,循环结束后 n 的值是。 2写出以下程序的运行结果。 #include main( ) int y=10; do y-; while (-y); printf(“%d, ”,y-); 3.阅读下列程序,在下划线上写出输出结果。 #include main( ) int y= -10; do y+; wh

54、ile (+y); printf(“%d, ”,y+); /*输出结果: */ 4以下程序的运行结果是。 #include void main( ) int i; for (i=1;i=5;i+) switch(i %5) 。17 。 case 0: printf(“*”);break; case 1: printf(“#”);break; default: printf(“,”); case 2: printf(“ 四、程序填空四、程序填空 1下列程序的功能是采用“顺序查找法”查找数组中是否存在元素x。请为程序填空。 #include void main( ) int a8= 9, 1, 3

55、, 2, 6, 4, 7, 8; int i, x; scanf (“%d”,); for (i=0; i=8; i+) if (x=ai) printf(“Found! The Index is: %dn”,-i); ; if () printf(“not found!”; 第第 6 6 章章数组数组 一、选择题一、选择题 1在 C 语言中引用数组元素时,其数组下标的数据类型可以是() 。 A整型常量整型表达式 C整型常量或整型表达式任何类型的表达式 2. 以下能对一维数组 a 进行正确初始化的语句是() 。 Aint a10=(0,0) int a10= ; Cint a =0; int

56、a10=10*1; 3若有说明:int a10;则对 a 数组元素的正确引用是() Aa10A3.5 C. a(5)A10-10 4若有说明:int a34;则对 a 数组元素的正确引用是() Aa24A2,4 C. a1+10A(2) (1) 5若有以下说明:int a 3=1,2,3,4,5,6,7;则数组 a 的第一维的大小是() A43 C. 2不确定 6二维数组 x 有 m 列,若元素 x00是第一个元素,则 xij在数组中的位置是() Ai*m+jj*m+i C. i*m+j-1i*m+j+1 7下面能正确进行字符串赋值操作的是() 。18 。 Achar a5=“ABCDE”;

57、Bchar a5=A, B, C, D, E; Cchar *a;a= “ABCDE”; Dchar *a;scanf(“%s”,a); 8若有定义:int a5;则数组 a 中首元素的地址可以表示为() A 则数组所占的空间是: () A 4 个字节 B. 5 个字节 C. 6 个字节 D. 7 个字节 11. 下面各行语句中正确的是() 。 A. char s5=”ABCDE”; B. char s6; s=”ABCDE”; C. char *s=”ABCDE” D. char *s; scanf(“%s”,s) 12以下正确的定义语句是() Aint a14=1,2,3,4,5;floa

58、t x3 =1,2,3; Clong b23= 1,1,2,1,2,3;double y 3=0; 13若有以下说明:int a34=0;则下列正确的叙述是() A只有元素 a00可得到初值 0 B此说明语句不正确 C数组 a 中各元素都可得到初值,但其值不一定为0 D数组 a 中各元素都可得到初值0 14两个数组 a 和 b 进行如下初始化 char a =”abcdef”; char b =a, b, c, d, e, f 15. 则下列叙述正确的是() Aa 和 b 数组完全相同a 和 b 长度相同 C. a 和 b 中都存放字符串a 数组比 b 数组长度长 16以下不能对二维数组a 进行正确初始化的语句是() Aint a23=0;int a 3=1,2,0; Cint a23=1,2,3,4,5,6;int a3=1,2,3,4,5,6; 17

温馨提示

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

评论

0/150

提交评论