C语言程序设计(龙昭华主编)习题集1557.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C语言程序设计(龙昭华主编)习题集1557.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计(龙昭华主编)习题集1557.pdf(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C 语言程序设计(龙昭华主编)习题集 第 1 章 计算机语言程序设计与软件开发基础概述 习 题 1 1.简述计算机的组成及计算机中数值的表示方法。2什么是程序?它由什么组成?3程序设计过程的一般步骤是什么?4算法有些什么特性,它在程序设计中的作用?5描述软件的概念,简述它的分类。6结构化程序设计有哪些基本结构,以及它们采用什么设计方法?7什么是软件工程,它的出现有何意义?8软件生命周期及各阶段的主要任务 9什么软件开发模型,有哪几种常见模型?10C 语言常用哪些开发工具,你平常用是哪个?11语言中有哪些关键字、标识符,应用它们时应该注意些什么?12什么是函数,它在程序中的作用?13C 语言的特
2、点有些什么?它和其他你所知道的语言有什么不同?补充题:1.14 分别使用自然语言、流程图、N S 图、伪代码写出求 的根的算法。分别考虑有两个不等的实根;有两个相等的实根;无实根。1.15 分别使用 N S 图、伪代码写出求 n!的算法。要求:如果 n200,则打印“n 值太大,请重新输入 n 值”;否则打印出 n 的值和 n!的值。1.16 请参照本章例题,编写一个 C 程序,输出以下信息:*Very Good!*1.17 编写一个 C 程序,输入 a,b,c三个值,输出其中最小者。(该题请事先使用 N S 图、伪代码将其算法表示出来。)第 2 章 C 语言的数据类型、运算符及其表达式 习题
3、 2 一、选择题 1 下列表达式的值,哪一个等于 0?A 2%5 B 7/5|x+C 1/2.0 D sizeof(float)sizeof(int)sizeof(char)2int a,*p=&a,下列选项中表达式为变量 a 的地址?A *P B *&a C p D&p 2 列选项中,在一个二进制补码数字系统中,清除了 x 中最右边为 1 的那一位,其余位不变的位运算为?A x&(x1)B x|(1)C x&(x1)D x|(x1)3 C 语言中字符(char)型数据在内存中是以何种形式存放的()。A 原码 B 补码 C 反码 D ASCII 4 在位运算中,操作数若右移两位,其结果相当于(
4、)。A 操作数乘以 2 B 操作数除以 2 C 操作数乘以 4 D 操作数除以 4 5 下列不正确的转义字符是()。A B 18 C O D n 6 设在程序中的 a,b,c 均被定义为整型并且已赋予大于 1 的值,能正确表示代数式 (1/abc)的表达式是()。A 1/a*b*c B 1/(a*b*c)C 1/a/b/(float)c D1.0/a/b/c 7 下面标识符中,不合法的用户标识符为()。A F3 B SUM C a#c D auto E double 8 下列表达式中的值,哪一个等于 1()。(int b=2)A -b&b B b|b C bb D b1 E 3&4 9.设 a
5、,b 和 c 都是 int 型变量,且 a=3,b=4,c=5,则值为 0 的表达式是()A)a+bc&b=c B)a|b+c&b-c C)!(ab)&!c|1 D)!(x=a)&(y=b)&0 E)!(a+b)+c-1&b+c/2 二、填空题 1 下列_常量、变量名是合法的。ofd,0 xfdj,e8,032_auto,_register,_258,_int_。2 int x=5,则执行语句 0|+x 后,变量 x 的值为多少?3(032)&xx 的结果为_。4 int a=12,则执行完语句 aaa*a 后,表达式的值为_。5 j,k 为 int 整型变量,请写出运算表达式:k=j=3,j
6、+3,j+,+j*(k-)*1/6,表达式的值是_;变量 k 的值是_;变量 j 的值_。/*逗号表达式,自增运算符*/6 x 为整型变量,则表达式x x 的值用十六进制表示为_。7 设 x 为整型变量,则表达式(x&1)=(x%2)的值为_。8 字符串“ab034x79”的长度为_。9 x 为 double 型变量,请写出运算表达式 x=3.0,x+,x+*x+后,表达式的值是_,变量 x 的值是_。10 表达式(12 的值是 4。2.运算符,-,+=的优先级相同且运算次序从左至右。3.表达式 6.0*(1/2)的值为 0。4.C 语言中一个字符可以用十进制整数表示,如:printf(“%c
7、”,258);是合法的。5.若变量 j 已被赋值为 8,则执行完语句 1|j+后,j 值为 9。6.printf(%d,sizeof(1234);其结果是 4。7.int a=4,b=0;则表达式a&!b 的值是 1。8.C 语言在判断一个量是否为真时,以非 0 值代表“真”,以 0 值代表“假”。四、写出以下程序的运行结果 1 main()int x=8,y,z;y=z=x;x=y=z;printf(“%d”,x);2 main()char a;int b,e;float c;double d;e=sizeof(a*b+c-d);printf(“%d”,e);3 main()double x
8、;x=(int)8.4;printf(“f”,x);4 main()unsigned x=65535;printf(“%d”,x);5 main()int k;double j=6.4;k=k+2;k=j+=1;printf(“%d”,k);6 main()int a,b,c;a=(b=(c=3)*5)*2-3;printf(“a=%d,b=%d,c=%d”,a,b,c);补充题:2.5 将以下 3 个整数分别赋给不同类型的变量,请画出数据在内存中的存储形式。2.6 要将“China”译成密码,密码规律是:用原来的字母后面第 4 个字母代替原来的字母。如:字母A用E代替。因此“China”应译
9、为“Glmre”。请编一程序,用赋初值的方法 使 c1、c2、c3、c4、c5 五个变量的值分别为C、h、I、n、a,经过运算,使 c1、c2、c3、c4、c5 分别变成G、l、m、r、e,并输出。变量的类型 25 -2 32769 int型(16位)long型(32位)short型(16位)signed char型(8位)unsigned int型 unsigned long型 unsigned short型 unsigned char型 第 3 章 结构化程序设计 习 题 3 一、选择题 3-1.若 int x,y,z;则为它们输入数据的正确语句是_。A).scanf(%D%D%D,&a,
10、&b,&c);B).scanf(%d%d%d,&a,&b,&c);C).scanf(%d%d%d,a,b,c);D).scanf(%d%d%dn,&a,&b,&c);3-2.若 int a;a=68;则执行下面语句后的输出结果是_。printf(%d,%o,%x,%cn,a,a,a,a);A).68,104,44,D B).104,68,44,D C).68,104,D,44 D).68,44,104,D 3-3.若 int x,y;double z;,则不合法的 scanf函数调用语句是_。A).scanf(%d%lx,%le,&x,&y,&z);B).scanf(%2d*%d%lf&x,&
11、y,&z);C).scanf(%x%*d%o,&x,&y);D).scanf(%x%o%6.2f,&x,&y,&z);3-4.若 float x,y;用下面的语句使 x,y均为 1.5,正确的输入是_。scanf(x=%f,y=%f,&x,&y);A).1.25,1.25 B).1.25_1.25 C).x=1.25,y=1.25 D).x=1.25_y=1.25 3-5.if语句的控制条件_。A).只能用关系表达式 B).只能用逻辑表达式 C).只能用关系表达式或逻辑表达式 D).可以是任意表达式 3-6.若 int x,y;,则执行下面的循环后,y 的值是_。for(y=1,x=1;y=1
12、0)break;if(x%2=1)x+=5;continue;x3;A).2 B).4 C).6 D).8 3-7.设有下面的程序段 int k=10;while(k=0)k=k-1;则下面描述中正确的是_ A).while循环执行 10 次 B).循环是无限循环 C).循环体语句一次也不执行 D).循环体语句执行一次 3-8.若 int x,y,则以下的 for循环_。for(x=0,y=0;(y!=123)&(x5);x+);A).执行 4 次 B).执行 5 次 C).循环次数不确定 D).是死循环 二、判断题(正确的在题后括号内划“”,错误的划“”)3-9.用预定义函数 putchar
13、()可以输出整型变量的值。()3-10.在调用 scanf函数时,可以指明输入数据的精度。()3-11.三种循环语句 while、for和 dowhile都实现当型循环。()3-12.若 int i=10,j=0;则执行完下面的语句后,i 的值为 11。()if(j=0)i+;else i-;3-13.若 int i=5,j=10;则执行完下面的语句,j 的值为 8。()switch(i)case 4:j+;case 5:j-;case 6:j+;case 7:j-=2;default:;三、读程序 3-14.下面程序正确的运行结果是_。#include void main()long y=-
14、43456;printf(y=%-8ldn,y);printf(y=%-08ldn,y);printf(y=%08ldn,y);printf(y=%+8ldn,y);3-15.若有下面的程序#include void main()int m,n,x,y,c;scanf(%d%d,&m,&n);while(m&n)c=0;x=m0?m:-m;y=n0?n:-n;while(x=y)x-=y;c+;printf(%d,%d)=%d.%dn,m,n,c,x);scanf(%d%d,&m,&n);运行时分别输入:100 -15,-20 30,其中“”表示回车符。运行结果是_。3-16.下面程序运行时的
15、输出结果是_。#include void main()int s=1;while(s20|s%3!=1)s+;while(s%5!=2)s+=3;while(s%4!=3)s+=15;printf(nThe result is:%d,s);3-17.下面程序运行时的输出结果是_。#include void main()int x=18,i;for(i=2;is2)B)if(strcmp(s1,s2)C)if(strcmp(s1,s2)0)D)if(strcmp(s2,s1)0)8.执行下列语句后,其输出结果为()#include main()int*k,*j,i=100;j=&i;k=&j;p
16、rintf(%dn,*k);A)运行错误 B)100 C)i 的地址 D)j 的地址 9.以下程序的输出结果是()main()char cf35=AAAA,BBB,CC;printf(%sn,cf1);A)AAAA B)BBB C)BBBCC D)CC 10.设有如下的程序段:char str=Hello;char*ptr;ptr=str;执行上面的程序段后,*(ptr+5)的值为()A)o B)0 C)不确定的值 D)o的地址 二、填空题 1指针包括两部分 及 ,在指针的概念中,“*”表示的含义是 ,而“&”表示的含义是 。2如果 p 是一个指针,那么*&p 表示的含义是 ,而&*p 表示的
17、含义是 。3已知数组 s1 为一有 18 个单元的整型数组,下面的语句的语句试图求出这 18 个单元的平均值,并用 s 保存这个值;请补充完整下面的语句。int j,s=;int s118;for(;j+);s=18;4下面程序段的功能是删除字符串 s 中出现的与字符 c 相同的字符;请补充完整下面的语句。int i,j;char s100,c;for(i=0;i+)if(si=c)for()sj=sj+1;5 统计从终端输入的字符中每个大写字母的个数。用#号作为输入结束标志,请填空。#include#include main()int num26,i;char c;for(i=0;i26;i
18、+)numi=0;while(!=#)/*统计从终端输入的大写字母个数*/if(isupper(c)numc-65+=1;for(i=0;i26;i+)/*输出大写字母和该字母的个数*/if(numi)printf(%c:%dn,i+,numi);三、写出以下程序的运行结果 1 main()int a=2,4,6,8,*p=a,i;for(i=0;i4;i+)ai=*p+;printf(%d,%dn,a2,*(-p);2 main()int a=2,4,6,8,10,*p,*k;p=a;k=&p;printf(%d ,*(p+);printf(%d n,*k);3 main()int a34=
19、2,4,6,8,10,12,14,16,18,20,22,24;int(*p)4=a,i,j,k=0;for(i=0;i3;i+)for(j=0;j2;j+)k+=*(*(p+i)+j);printf(%d n,k);4#include main()int a,b,c;int x=4,y=6,z=8;int*p1=&x,*p2=&y,*p3;a=p1=&x;b=3*(-*p1)/(*p2)+7;c=*(p3=&z)=*p1*(*p2);printf(%d,%d,%dn,a,b,c);5#include main()int k=0,sign,m;char s=“-12345”;if(sk=+|s
20、k=-)sign=sk+=+?1:-1;for(m=0;sk=0&sk=9;k+)m=m*10+sk-0;printf(Result=%dn,sign*m);四、编程题 1通过键盘输入 10 整数在一维数组中,并且把该数组中所有为偶数的数,放在另一个数组中。2 对在一维数组中存放的 10 整数进行如下的操作:从第 3 个元素开始直到最后一个元素,依次向前移动一个位置,输出移动后的结果。3在一个字符数组中存放“AbcDEfg”字符串,编写程序,把该字符串中的小写字母变为大写字母,把该字符串中的大写字母变为小写字母。4用字符指针变量,进行 5 个字符串的输入,字符串大小的比较,并且输出 5 个字符
21、串中最小的字符串。5 从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。若程序执行时输入字符串为:turbo c and borland c+从键盘上输入字符:n,则输出后变为:turbo c ad borlad c+如果输入的字符在字符串中不存在,则字符串照原样输出。6有 30 个学生,三门课程,用二维数组存放该信息;对数组的信息分别进行如下的操作:(1)输出每门课程的平均分(2)输出每门课程的最高分、最低分(3)统计每门课程不及格人数。第 5 章 函数 习题 5 一、选择题 1.在一个 C 语言程序构成中,较完整的描述是()A)由主程序与子程序构成 B)由多个主函数与多个函数构成
22、 C)由主函数与函数构成 D)由一个主函数与多个函数构成 2.C语言在程序开始执行时,其正确的描述是()A)由编写程序语句的顺序格式执行 B)在主函数 main()开始处执行 C)在第一个函数处执行 D)由人随机选择执行 3.下列有关函数错误的描述是()A)C语言中允许函数嵌套定义 B)C语言中允许函数递归调用 C)调用函数时,实参与形参的个数、类型需完全一致 D)C语言函数的缺省数据类型是 int类型 4.在 C 语言中,各个函数之间具有的关系是()A)不允许直接递归调用,也不允许间接递归调用 B)允许直接递归调用,不允许间接递归调用 C)不允许直接递归调用,允许间接递归调用 D)允许直接递
23、归调用,也允许间接递归调用 5.在 C 语言中,函数的返回值的类型是由()A)C语言的编译程序,在程序编译时决定 B)由调用该函数的主调函数所决定 C)由 return语句的表达式的类型所决定 D)由定义该函数时指定的函数类型所决定 6 当调用函数时,如果实参是一个数组名,则向函数传送的是()A)数组的首元素 B)数组的首地址 C)数组每个元素的地址 D)数组每个元素中的值 7 对于以下程序,不正确的叙述是()#include void f(int n);/*函数说明*/main()void f(int n);/*函数说明*/f(5);void f(int n)printf(%dn,n);A)
24、若只在主函数中对函数 f 进行说明,则只能在主函数中正确调用函数 f B)要求函数 f 无返回值,所以可用 void将其类型定义为无值型 C)在主函数前对函数 f 进行说明,则在主函数和其后的其它函数中都可以正确调用函数 f D)对于上面程序的说明,编译时系统会提示出错信息:提示对 f 函数重复说明 8.下面函数的功能是()sss(s,t)char*s,*t;while(*s)&(*t)&(*t+=*s+);return(*s-*t);A)求字符串的长度 B)比较两个字符串的大小 C)将字符串 s 复制到字符串 t 中 D)将字符串 s 接续到字符串 t 中 9 以下程序的输出结果是 long
25、 fun(int n)long s;if(n=1|n=2)s=2;else s=n-fun(n-1);return s;main()printf(%ldn,fun(3);A)1 B)2 C)3 D)4 10请选出以下程序的输出结果()#include sub(x,y,z)int x,y,*z;*z=y-x;main()int a,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf(%d,%d,%dn,a,b,c);A)5,2,3 B)-5,-12,-7 C)-5,-12,-17 D)5,-2,-7 二、填空题 1在 C 语言中,除主函数外,其函数分为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 龙昭华 主编 习题集 1557
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内