《C语言程序的设计各章练习题.docx》由会员分享,可在线阅读,更多相关《C语言程序的设计各章练习题.docx(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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,a,b b的值,交换后的值,交换后 a,ba,b 的值。的值。附加要求:(1)允许定义第 3
2、个变量,实现交换;(2)不允许定义第 3 个变量,实现交换。第第 4 4 章选择结构程序设计章选择结构程序设计编程题编程题 2 2:根据下列函数关系写程序,要求提示输入:根据下列函数关系写程序,要求提示输入 x x 的值,输出的值,输出 y y 的值。的值。0020212xxxxxy编程题编程题 2 2:根据下列函数关系写程序,要求提示输入:根据下列函数关系写程序,要求提示输入 x x 的值,输出的值,输出 y y 的值。的值。002222xxxxxy编程题编程题 3 3:求求 axax2 2+bx+c=0+bx+c=0 方程的解方程的解。(只输出只输出 b b2 2-4ac=0-4ac=0
3、的求解结果,小于的求解结果,小于 0 0,输出,输出“不予不予求解求解!”)第第 5 5 章章 循环结构程序设计循环结构程序设计编程题编程题 4 4:编程计算:编程计算nii1。要求提示键盘输入。要求提示键盘输入 n n,如,如 n n 为负数,不予计算,直接返回。为负数,不予计算,直接返回。编程题编程题 5 5:编程序计算编程序计算 n n!,要求,要求 n n 从键盘输入,如从键盘输入,如 n n 小于小于 0 0,不予计算。,不予计算。编程题编程题 6 6:从键盘输入一个数从键盘输入一个数 n n,判断判断 n n 是否是素数。是否是素数。编程题编程题 6 6:编写程序输出编写程序输出
4、11001100 之间的偶数之间的偶数,要求屏幕显示时要求屏幕显示时 5 5 个偶数一行个偶数一行,每个数占每个数占 5 5 位位,右对齐。右对齐。编程题编程题 7 7:编程计算:编程计算 100100 到到 10001000 之间有多少个数其各位数字之和是之间有多少个数其各位数字之和是 5 5,并将其输出。,并将其输出。编程题编程题 8 8:求满足下列条件的三位数求满足下列条件的三位数 n n,它除以它除以 1111(整数相除整数相除)所得到的商等于所得到的商等于 n n 的各位数的各位数字的平方和,且其中至少有二位数字相同的数。字的平方和,且其中至少有二位数字相同的数。编程题编程题 9 9
5、:有一些十进制整数对有一些十进制整数对 abab 和和 cdcd 具有如下特性具有如下特性:ababcd=bacd=badcdc,其中其中 a ab b 且且 c cd d。如:如:121242=2142=212424。请编程找出。请编程找出 30503050 之间满足上述等式所有之间满足上述等式所有 m m,n n 值,并按上述等式的值,并按上述等式的格式输出格式输出。(用用*表示)表示)编程题编程题 1010:从键盘上输入一个整数从键盘上输入一个整数,然后把这个整数的各位逆序输出然后把这个整数的各位逆序输出。例如例如,输入输入 123456123456,输出输出 654321654321。
6、第第 6 6 章章数组数组编程题编程题 1111:有一个已排好序的数组:有一个已排好序的数组 intint a11=-5,-3,0,6,8,12,16,28,66,88;a11=-5,-3,0,6,8,12,16,28,66,88;,要求输,要求输入一个数后,按原来排序的规律将它插入数组中。入一个数后,按原来排序的规律将它插入数组中。编程题编程题 1212:输入一个字符串输入一个字符串(字符个数为小于字符个数为小于 100100),统计其中字母统计其中字母、数字数字、空格以及其它空格以及其它符号的个数,并将大写字母改为小写字母,输出改变后的字符串符号的个数,并将大写字母改为小写字母,输出改变后
7、的字符串。(提示:(提示:A A 的的 ASCIIASCII 值值为为6565,a a 的的 ASCIIASCII 值为值为 9797)编程题编程题 1212:输入一行字符输入一行字符(字符数组的个数小于字符数组的个数小于 100100),统计其中字母统计其中字母、数字以及其它符号数字以及其它符号的个数的个数。(注:数组限定字符个数小于(注:数组限定字符个数小于 100100)编程题编程题 1212:输入一行字符输入一行字符,分别统计出其中英文字母分别统计出其中英文字母、数字数字、空格和其他字符的个数空格和其他字符的个数。(注注:字符个数不受限制)字符个数不受限制)第第 7 7 章函数章函数编
8、程题编程题 1313:编写一个子函数编写一个子函数 intint funfun(intintn)n),其功能是判断整数,其功能是判断整数 n n 是否为素数,是否为素数,n n 是是素数,返回值为素数,返回值为 1 1;n n 不是素数,返回值为不是素数,返回值为 0 0。调用该函数,将。调用该函数,将 100200100200 之间的素数全部输之间的素数全部输出,要求屏幕上每个数占出,要求屏幕上每个数占 4 4 位,每行显示位,每行显示 5 5 个素数,左对齐个素数,左对齐。(循环、条件分支、子函数(循环、条件分支、子函数、变量的值传递、屏幕显示格式控制)变量的值传递、屏幕显示格式控制)编程
9、题编程题1414:主函数中定义两个数组:主函数中定义两个数组intinta5=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;用子函数实现从小到大的冒泡排序用子函数实现从小到大的冒泡排序,子函数为子函数为 voidvoid bubble(intbubble(int ,int);,int);要求在主函数中显示排序前要求在主函数中显示排序前、后的数组后的数组 a a 和和 b b 的元素的元素。(循环、条件分支、子函数、数组、地址传递)(循环、条件分支、子函数、数组、地址传递)编程题编程题1515
10、:主函数中定义两个数组:主函数中定义两个数组intinta5=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;用子函数实现从小到大的选择法排用子函数实现从小到大的选择法排序序,子函数为子函数为 voidvoid sort(intsort(int ,int);,int);要求在主函数中显示排序前、后的数组要求在主函数中显示排序前、后的数组 a a 和和 b b 的元的元素素。(循环、条件分支、子函数、数组、地址传递)(循环、条件分支、子函数、数组、地址传递)编程题编程题 1616:用递归函数计算
11、:用递归函数计算 n!n!。编程题编程题 1717:编写一个子函数:编写一个子函数 intint factfact(intintn)n),计算,计算 n n 的阶乘。调用该函数计算的阶乘。调用该函数计算 1 1!+2+2!+3+3!+n+n!,要求,要求 n n 从键盘输入,如输入从键盘输入,如输入 n n 小于小于 0 0,不予计算,不予计算。(循环、递归函数)(循环、递归函数)编程题编程题 1818:将将 1616 进制或进制或 8 8 进制或进制或 2 2 进制数转换为十进制数进制数转换为十进制数(字符数组字符数组、字符串函数字符串函数、子函子函数、字符数、字符 ASCIIASCII 值
12、与值与 1010 进制数的转换,指数函数的调用)进制数的转换,指数函数的调用)编程题编程题 1818:编程实现八进制数转换为十进制数编程实现八进制数转换为十进制数(注注:用字符数组用字符数组 n100n100接收输入接收输入,输入的输入的八进制数肯定正确,无须检测;八进制数转换为十进制数的子函数为八进制数肯定正确,无须检测;八进制数转换为十进制数的子函数为 intint htoi(charhtoi(charhnumhnum););)编程题编程题 1818:编写一个子函数,将:编写一个子函数,将 1616 进制数转换为进制数转换为 1010 进制数。进制数。编程题编程题 1919:编写一个子函数
13、,主函数用字符数组作为实参,统计字符串中字母、数字、空:编写一个子函数,主函数用字符数组作为实参,统计字符串中字母、数字、空格以及其他符号的个数,要求主函数中显示字符串与统计结果。格以及其他符号的个数,要求主函数中显示字符串与统计结果。编程题编程题 2020:编写一个子函数,主函数输入一行字符,子函数找出字符串中最长的单词,并:编写一个子函数,主函数输入一行字符,子函数找出字符串中最长的单词,并显示结果。显示结果。编程题编程题 2121:用递归法将一个整数用递归法将一个整数 n n 转换为字符串转换为字符串。例如例如:输入输入 483483,输出字符串输出字符串“483483”,n n的位数不
14、确定。的位数不确定。编程题编程题 2222:写一个子函数,将输入的字符串按反序存放,在写一个子函数,将输入的字符串按反序存放,在 mainmain 中输入和输出字符串。中输入和输出字符串。第第 8 8 章指针章指针编程题编程题 2323:编写一个子函数:编写一个子函数 mystrcmp(charmystrcmp(char*s1,char*s1,char*s2)*s2)实现实现 2 2 个字符串的比较。个字符串的比较。编程题编程题 2323:编程实现两个字符串连接起来,不要用:编程实现两个字符串连接起来,不要用 strcatstrcat 函数。函数。编程题编程题 2323:用函数调用实现字符串的
15、复制。:用函数调用实现字符串的复制。编程题编程题 2323:写一个函数写一个函数,求一个字符串的长度求一个字符串的长度。在在 mainmain 函数中输入字符串函数中输入字符串,并输出其长度并输出其长度。编程题编程题 2424:写一个用矩形法求定积分的通用函数,分别计算:写一个用矩形法求定积分的通用函数,分别计算编程题编程题 2525:输入一个字符串输入一个字符串,内有数字和非数字字符内有数字和非数字字符,如如:A123x456A123x456 17960?302tab587617960?302tab5876,将其中连续的数字作为一个整数,依次用数组存放这些数,统计有多少个整数,并输出这将其中
16、连续的数字作为一个整数,依次用数组存放这些数,统计有多少个整数,并输出这些数。些数。编程题编程题 2626:主函数输入整数的个数,用指针变量动态申请内存,并用键盘按任意次序输:主函数输入整数的个数,用指针变量动态申请内存,并用键盘按任意次序输入入n n 个整数,用子函数个整数,用子函数 voidvoid bubble(intbubble(int ,int),int)实现从小到大的冒泡排序实现从小到大的冒泡排序。第第 9 9 章章结构结构编程题编程题 2727:建立一个链表,每个结点包括:学号、姓名、性别、年龄,输入一个年龄,如:建立一个链表,每个结点包括:学号、姓名、性别、年龄,输入一个年龄,
17、如果链表中的结点所包含的年龄等于此年龄,则将此结点删去。果链表中的结点所包含的年龄等于此年龄,则将此结点删去。编程题编程题 2828:1313 个人围成一圈个人围成一圈,从第一个人开始顺序报号从第一个人开始顺序报号,凡报到凡报到 3 3 者退出圈子者退出圈子,找出最后找出最后留在圈子中的人原来的序号。要求用链表实现。留在圈子中的人原来的序号。要求用链表实现。编程题编程题 2929:阅读链表操作相关函数,完成指定的操作函数。:阅读链表操作相关函数,完成指定的操作函数。#include stdio.h#include malloc.h#include string.hstruct Studentc
18、har name20;intnum;intmath;struct Student*next;struct Student*Create(struct Student*head);/生成数据链表voidvoid ShowList(structShowList(struct StudentStudent*head);*head);/显示链表显示链表voidvoid saveList(structsaveList(struct StudentStudent*head);*head);/保存链表数据保存链表数据voidvoid AddTail(structAddTail(struct StudentS
19、tudent*head,struct*head,struct StudentStudent*temp);*temp);/表尾添加元素表尾添加元素structstruct StudentStudent*AddHead(struct*AddHead(struct StudentStudent*head,struct*head,struct StudentStudent*temp);*temp);/表头添加表头添加元素元素structstruct StudentStudent*DeleteSomeone(struct*DeleteSomeone(struct StudentStudent*head)
20、;*head);/删除元素删除元素voidvoid FindSomeone(structFindSomeone(struct StudentStudent*head);*head);/查询元素查询元素structstruct StudentStudent*DeleteHead(struct*DeleteHead(struct StudentStudent*head);/*head);/删除表头删除表头voidvoid DeleteTail(structDeleteTail(struct StudentStudent*head);/*head);/删除表尾删除表尾void main()20 x1
21、110dxexdxcosxdxsin、链表内容仅限表头表尾添加、删除、查询、显示、保存,不考排序、中间节点的插入和删除struct Student*head=NULL,*temp=NULL;int choice;doprintf(1:创建数据链表n);printf(2:添加链表单元n);printf(3:删除链表单元n);printf(4:查询链表单元n);printf(5:删除表头n);printf(6:删除表尾n);printf(7:退出n);printf(请输入功能选择:);scanf(%d,&choice);/cinchoice;if(choice=1)head=Create(temp
22、);ShowList(head);saveList(head);else if(choice=2)/表头添加元素temp=(struct Student*)malloc(sizeof(struct Student);printf(姓名:);scanf(%s,temp-name);printf(学号:);scanf(%d,&temp-num);printf(成绩:);scanf(%d,&temp-math);AddTail(head,temp);/head=AddHead(head,temp);ShowList(head);saveList(head);else if(choice=3)/删除元
23、素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);saveList(head);else if(choice=7)printf(谢谢使用!n);elseprintf(非法输入,请输入 17 之间的数!n
24、);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(struct Student);flag=fscanf(fp,%s%d%d,pS-name,&pS-num,&pS-math);if(flag=EOF)break;if(head=NULL)he
25、ad=pS;elsepEnd-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-name);if(strcmp(pS-name,000)printf(学号:);scanf(%d,&pS-num);printf(成绩:);scanf(%d,&pS-math);elsebreak;i
26、f(head=NULL)head=pS;elsepEnd-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);printf(%5dn,head-math);head=head-next;void saveList(struct Student*head)/保存链表上的数据FILE*fp;fp=fopen(e:l
27、ist.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,struct Student*temp)/加在表尾struct Student*last;while(head)last=head;head=head-next;last-next=temp;temp-next=NULL;struct Student
28、*AddHead(struct Student*head,struct Student*temp)/加在表头struct Student*first;first=head;head=temp;head-next=first;return head;struct Student*DeleteSomeone(struct Student*head)struct Student*temp;int xnum,flag=0;printf(请输入学号:);scanf(%d,&xnum);if(head=NULL)printf(表为空!n);return head;if(head-num=xnum)temp
29、=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-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;printf(请输入学号:);
30、scanf(%d,&xnum);while(head)if(head-num=xnum)printf(%20s,head-name);printf(%6d,head-num);printf(%4dn,head-math);flag=1;break;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;
31、elsestruct Student*first=head;head=head-next;delete first;return head;void DeleteTail(struct Student*head)if(head=NULL)printf(表为空!n);if(head-next=NULL)delete head;head=NULL;elsestruct Student*temp,*end;end=head;while(end-next!=NULL)temp=end;end=end-next;temp-next=NULL;第第 1010 章章文件文件编程题编程题 3030:编程实现编
32、程实现:有一个文本文件有一个文本文件“a.txta.txt”,里面有大小写英文字母里面有大小写英文字母、数字和其它符数字和其它符号。要求分别统计其中大写字母、小写字母、数字以及其它字符的个数。号。要求分别统计其中大写字母、小写字母、数字以及其它字符的个数。编程题编程题 3030:从键盘输入一串字符,并以:从键盘输入一串字符,并以#结束,将其中的大写字母全部转换成小写字母结束,将其中的大写字母全部转换成小写字母,并输出到计算机并输出到计算机 D D 盘文件盘文件“test.txttest.txt”中保存中保存。(提示:一串字符并不意味着一行字符,(提示:一串字符并不意味着一行字符,另外一串字符的
33、具体字符个数是不定的另外一串字符的具体字符个数是不定的。)编程题 31:从键盘输入一个字符串,将其中的小写字母全部转换为大写字母,然后输出到 C盘“test”文件中保存,输入的字符串以“!”结束。编程题 32:有两个磁盘文件“A”和“B”,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件“C”中去。编程题 33:有 5 个学生,每个学生有 3 门课程的成绩,从键盘输入学号、姓名、3 门课程成绩,计算每个学生的平均成绩,将原有数据和平时成绩存放在磁盘文件“stud”中。第第 1-31-3 章章 C C 语言基础、编程规范、顺序结构程序设计语言基础、编程规范、顺序结
34、构程序设计一、选择题一、选择题1.C 语言是一种(C C)程序设计语言。A.低级 B.面向对象C.C.高级高级D.智能2.下列特性中,(D D)不是 C 语言的特征。A.运行效率高 B.结构化程序设计C.能直接访问物理地址D.D.类型检测严格类型检测严格3下列标识符中,(D D)不是 C 的关键字;A.intB.floatC.charD.D.scanfscanf4下列标识符中,(D D)不是 C 的关键字;A.sizeofB.shortC.longD.D.definedefine5下列标识符中,(D D)不是 C 的关键字;A.gotoB.breakC.autoD.D.printfprintf
35、6下列标识符中,(D D)不是 C 的关键字;A.staticB.structC.voidD.D.includeinclude7下列自定义标识符中,(C C)是不符合规定。A.point1xB._point1x C.C.2pointx2pointxD.pointx_28下列自定义标识符中,(C C)是不符合规定。A.MAXB._MIN C.C.MAX$MAX$D.MIN_29下列自定义标识符中,(D D)是不符合规定。A.point1_B._point1x C.pointxD.D.pointx_pointx_#10下列自定义标识符中,(A A)是不符合规定。A.2_point1xB._poin
36、t1x C.pointxD.pointx_211下列四个选项中,是不合法的用户标识符的选项是(C C)AP_0_abcgotogototemp12下面是不正确的字符串常量的是(A A)A Aabcabc“1212”“0”“”13.已知 int a;float f;scanf(“a=%d,f=%f”,&a,&f);为了把 10 和 3.14 分别赋值给 a和 f,则正确的输入为(C C)A10,3.14B.10 3.14C.C.a=10,f=3.14a=10,f=3.14D.a=10 f=3.1414输入语句为:scanf(%f,%fn,&radius,&high);下列键盘输入(D D)是正确
37、的。A1 2;B1,2n;C12;D1,2;15输入语句为:scanf(a=%f,b=%f,&radius,&high);从键盘输入(D D)是正确的。A1 2;B1,2;C12;D Da=1,b=2a=1,b=2;16 输入语句为:scanf(a=%f,b=%fn,&radius,&high);从键盘输入(D D)是正确的。A1 2;B1,2;C12;D Da=1,b=2na=1,b=2n;17输入语句为:scanf(a=%fb=%f,&radius,&high);从键盘输入(D D)是正确的。A1 2;B1,2;C12;D Da=1b=2a=1b=2;18double PI=3.14159
38、26,输出语句为: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)是正确的。A3.1415926;B B3.14153.1415;C3.1416;D5.4;20double PI=3.1415926,输出语句为:printf(%3.4lf,PI);下列输出结果()是正确的。A3.1415926;B3.141;C3.1415;D3.1416;21设 x,y 均为 float 型变量,则下列不合法的赋
39、值语句是()A+xy=(x%2)/10Cx*=y+8x=y=022double 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 个字节,在计算机中下列十六进制表示的 a()是正确的。A00000001;B10000001;C80000000;Dffffffff
40、;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;则表达式 a*x-z+y 的值的数据类型为()。*Afloatcharintdouble28已 知字 母 a 的 ASCII 码为 十进 制数 97,且 设 ch 为字
41、 符型 变量,则 表达 式ch=a+8-3的值为()AfaC.d10229已知 ch 是字符型变量,下列不正确的赋值语句是()Ach=a+bch=0ch=a+bch=5+930若 s 是 int 型变量,则表达式 s=25/3%3 的值为()A2512331若 s 是 int 型变量,则表达式 s%2+(s-1)%2 的值为()A011232若 s 是 int 型变量,则表达式 s%2+(s+1)%2 的值为()A012不确定33下列表达式中,不能正确表达代数式abxy2含义的 C 语言表达式是()Ax/a/b*y*22*x*y/a/b2*x*y/a*bx*y/b/a*234若 x、i、j、k
42、 均为 int 变量,则计算表达式 x=(i=4,j=16,k=32);后,x 的值为()A.4B.16C.32D.5235.已知 int a=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若有定义:int x=5,y=2;则计算表达式 y+=y=x*=y 后,y 的值为()A161671037若 a 是 int 型变量,且其初值为 6,则计算表达式 a+=a-=a*a 后,a 的值为()A-30-60-24638若 x 的初值为 7,执行语句 x+=x-=x+x;后,x 的值为()A2
43、1-1414-2139C 语言的编译系统对宏命令的处理是()A在程序运行时进行的B在程序连接时进行的C和 C 程序中的其他语句同时进行编译的D在对源程序中其他成分正式编译之前进行的40以下正确的叙述是()AC 语言的预处理功能是指完成宏替换和包含文件的调用B预处理指令只能位于 C 源程序文件的首部C凡是 C 源程序中行首以“#”标识的控制行都是预处理命令DC 语言的编译预处理就是对源程序进行初步的语法检查41以下在任何情况下计算平方数时都不会引起二义性的宏定义是()A#define POWER(x)x*x#define POWER(x)(x)*(x)C#define POWER(x)(x*x)
44、#define POWER(x)(x)*(x)42以下有关宏替换的叙述中错误的是()A宏替换不占用运行时间B宏替换只是字符替换C宏替换在编译之前进行D宏名必须用大写字母表示43.下列程序段的运行结果为()。void main()char c1,c2;c1=A+5-3;c2=A+6-3;printf(“%d,%c”,c1,c2)A.C,DB.67,DC.B,CD.无确定值二、填空题二、填空题1在 C 语言中,实型变量可以分为两种类型,它们是和。2若 x,a 为整型变量,则计算表达式 x=(a=4,6*2)后的 x 值为,计算表达式x=a=4,6*2 后的 x 值为。3 若 x 和 n 均是 in
45、t 型变量,且 x 和 n 的初值均为 5,则计算表达式 x+=n+后 x 的值,n 的值为。三、阅读下列程序,在下划线上写出输出结果三、阅读下列程序,在下划线上写出输出结果1程序段:#define MUL(x)(x)*(x)*(x)main()printf(“%d”,MUL(1+2)+3);的结果是。2程序段:#define y(t)(t)*(t)main()printf(“%d”,y(1+2)+3);的结果是。3以下程序的输出结果是以下程序的输出结果是(19)(19)2121。#include#define M(x,y,z)x*y+zvoid main()int a=2,b=3,c=4;p
46、rintf(%dn,M(a+b,b+c,c+a);/知识点:宏定义是编译时先替换,运行时才计算第第 4 4 章选择结构程序设计章选择结构程序设计一、选择题一、选择题1若 x 是 int 型变量,则表达式 x%2+(x+1)%2 的值为()。A012不确定2设有定义 int a=3,b=4,c=5,则表达式 a|b+c&b=c 的值为()。A310不确定3判断字符串 a 和 b 是否相等,应当使用()Aif(a=b)if(a=b)Cif(strcpy(a,b)if(strcmp(a,b)4表达式 5!=4 的值是()A01true任一非零数5设逻辑型变量 a,b,c,其中 a 的值为 1,则逻辑
47、运算表达式 a|b|c 的值是()A01true不确定6若 a=5,b=4,c=2 时,表达式 ab!=c 的值是()A10非 1不确定7设逻辑型变量 a,b,c,其中 a 的值为 0,则逻辑运算表达式 a&b&c 的值是()A01非 1不确定8若当 a 的值为奇数时,表达式的值为“真”,当 a 的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是()Aa%2=1!(a%2=0)C.!(a%2)a%29判断字符型变量 x 是否为大写字母的正确表达式是()AA=x=A)&(x=A)&(x=A)and(x=Z)10若 x=5,y=2,z=1,则表达式 x-yy&x!=y);Bif(x=y
48、)x+=y;Cif(x!=y)x=1 else x=2;Dif(xb)&(n=cd)后 n 的值是()A1234二、填空题二、填空题1在 C 语言中,若 x,y,z 均为 int 型变量,则“x 或 y 中有一个小于 z”的表达式描述形式为。三、三、阅读下列程序,在下划线上写出输出结果阅读下列程序,在下划线上写出输出结果1.#include voidmain()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;printf(“%d,%d”,a,b);/*
49、输出结果:*/2以下程序的运行结果是。#include void main()int x=5;if(x+5)printf(“%dn”,x);elseprintf(“%dn”,x-);四、程序填空四、程序填空1下列程序的功能是实现输出 a,b,c 三个数中的最大值。请为程序填空。#include void main()int a=5,b=4,c=8;;if()u=a;elseu=b;if()v=u;else;printf(“v=%dn”,v);2下列程序的功能是根据下列函数关系,输入 x 的值,计算 y 的值。请为程序填空。16214102)5(xxxxxxxy#include void mai
50、n()int x,y;scanf(“%d”,);if()y=x*(x+5);elseif()y=4*x;else;printf(“%dn”,y);第第 5 5 章循环结构程序设计章循环结构程序设计一、选择题一、选择题1执行语句 for(i=1;i+=0);中循环体的执行次数()A1234C.循环体执行一次D.循环体一次也不执行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 k=10;while