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

下载本文档

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

文档简介

1、«C语言程序设计综合练习题一、单选题1 .C语言中基本数据类型有 。CA) 整型、实型、逻辑型B)整型、字符型、逻辑型C) 整型、实型、字符型D)整型、实型、字符型、逻辑型2 .在C语言中,数字 O29是一个。AA)八进制数B)十进制数C)十六进制数D)非法数3 .在以下关于C语言的不严格的叙述中,错误的说法是 。AA)在标识符中,大写字母和小些字母的意义相同B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号“二”左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义4 .下列关于C语言用户标识符的叙述中正确的是 。 BA)用户标识符中可以出

2、现下划线和中划线(减号)B)用户标识符中不可以出现中划线,但可以出现下划线C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头【解析】考查 C语言中的用户标识符规则,在C语言程序设计中,用户标识符是由字母、数字和下划线组成的,并且第一个字符必须是字母或下划线。5 .结构化程序设计方法中有三种基本控制结构,以下不正确的是 。 DA)顺序结构B)选择结构C)循环结构D)数组结构6 . C语言提供的合法关键字是 。DA) swicth B) chaC) CaseD) default7 .以下非法的赋值语句是 CA) n=(i

3、=2,+i);B)j+;C) +(i+1);D)x=j>0;【解析】对表达式不能进行自加自减运算。8 .在以下一组运算符中,优先级最高的运算符是 。A) <=B) =C) %D) &&【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!” >算术运算符 > 关系运算符逻辑与“ && ” >逻辑或“ |” >赋值运算符 > 逗号运算符。由于 C选项为求余运算符,所以本 题正确答案为C选项。9 .以下四个选项中不能看作一条语句的是 。 DA) ;B) a=0,b=0,c=0; C) if(a>0)D) if(b=0

4、)m=1; n=2 ;【解析】C语言的基本语句包含控制语句、表达式语句、空语句、复合语句、函数调用语句。控制语句:完成一定的控制功能,C语言有9种控制语句,分别是if-else、while > continue switch 、return 、for、do-while 、break、goto ;表达式语句:由各类表达式构成,后面加上一个分号,就可以单独作为一条语句出现在一行,多数情况下含赋值运算符。复合语句:由一对大括号将一组语句序列括起来形成一个程序段,经常出现在选择或循环 语句中。空语句:只有一个分号,表示什么也不做。函数调用语句:由函数名、圆括号内加实参表和分号组成。本题中D选项为

5、三条语句,一条控制语句,链条表达式语句。正确答案为D选项。10 .能将高级语言编写的源程序转换为目标程序的软件是 。DA)汇编程序B)编辑程序C)解释程序D)编译程序11 .以下选项中合法的实型常数是 。CA) 5E2.0 B) E-3C) .2E0D) 1.3E【解析】以指数形式表示实数时,字母 e或E之前必须有数字,且 e后面指数必须为整数。12 .依据C语言的语法规则,下列合法标识符是AA)Else B)else C)user$2 D)5_examp解析标识符的定义有明确的规则:(1)标识符只能由字母、数字、下划线三者构成;(2)标识符的首字符必须是字母或者下划线;(3)标识符命名对字母

6、大小写敏感;( 4)标识符定义不能和 C语言关键字(Key Words )相同。C语言中标识符对大小写敏感, sum和SUM是 不同的标识符。13 .以下选项中合法的用户标识是 。A) longB) _2TestC) 3DmaxD) A.dat【解析】选项中 A为保留字;选项 C没有以字母或者“ _”开头;选项D中不能有“.”14 .在C语言中,字符型数据在内存中的存储形式是 。DA)原码B)补码C)反码D) ASCII码【解析】数据在内存中是以二进制形式存放的。数值是以补码表示的。c的char数据属于基本类型,在内存中字符的存储实际上是把字符相对应的ASCII代码放到存储单元中的。而这些AS

7、CII代码值在计算机中也是以二进制形式存放的。这个与整型的存储很相似。因此这两类之 间的转换也比较方便!整型:一个正数的补码和其原码的形式相同。而负数的补码方式是将其 绝对值的二进制形式“按位求反再加1”;实型:在内存中占4个字节,是按照指数形式存储的,实型数据分为小数部分和指数部分,分别存放!计算机用二进制表示小数部分,用2的哥次来表示指数部分!15 .以下非法的赋值语句是 。CA) n=(i=2,+i); B) j+;C) +(i+1);D) x=j>0;【解析】对表达式不能进行自加自减运算。16 .已定义c为字符型变量,则下列正确的赋值语句是 。DA) c='66'

8、B) c="66"C) c="B"D) c=66;17 .已知小写字母的 ASCII 码为 97,对于 int a=99, b='b' printf( "c,%d ",a , b);的结果 是 o BA) 99, b B) c, 98 C) 99, 98D) c, b【解析】字符类型变量用char来定义,特别要注意字符数据在内存中的存储方式:字符数据在内存中是用字符对应的ASCII码存储,其存储形式实质是采用整数形式,由于 ASCII码集合中有256个字符,因此用0255这个范围内的256个整数分别与每个字符对应。因此

9、字符型 数据和整型数据在一定范围(0255 )内,形式上可以相互引用。表现在这两种类型的变量能 够以对方形式常量来赋值,以对方的形式来输出,还可以同时出现在算数表达式中参与运算int n='a'/* 相当于 n=97*/char c=65;/* 相当于 c='A',A 的 ASCII 码是 65*/printf("n=%d,n=%c",n,n);/* 输出:c=97,n=a*/printf("c=%d,c=%c",c,c);/* 输出:n=65,n=A*/虽然字符型数据和整型数据在一定范围内可以通用,但其外在表现形式并不影

10、响各自的数 据类型,上例中n本质上还是整型变量,c本质上还是字符型变量。18 .若变量a和i已正确定义,且i已正确赋值,合法的语句是 。 BA) a=1B) +i;C) a=a+=5D) a=int(i)【解析】C语言的语句必须以分号结束,选项A是错误的。赋值表达式等号的左边只能是变量,而不能是表达式,选项 C中含有a+=5 ,是错误的。选项 D中的强制转换类型必须用圆括号 将int括起来,也是不正确的。19 .假定x和y为double 型,则表达式 x=2,y=x+3/2 的值是°DA) 3.500000 B) 3C) 2.000000D) 3.000000【解析】算出来结果为3,

11、排除A和C选项;又因为是double型,所以D选项为正确答案。20 .以下程序的输出结果是 。Cmain()int a=5,b=4,c=6,d;printf( "%dn " ,d=a>b?(a>c?a:c):(b);A) 5B) 4C) 6D)不确定【解析】本题考察条件表达式。简单的条件表达式(条件表达式?表达式 1 :表达式2)可以用来代 替if语句进行赋值。详见教材 102页。21 .设 a=3,b=4,c=-5,则逻辑表达式: a | b+c && b=c 的值是。 BA) 1B) 0C)非0D)语法错【解析】运算符优先级由高到底为算术运算

12、符-关系运算符-&&和卜-赋值运算符。其中&&和|的结合方向为从左到右22 .表示关系x<=y<=z 的c语言表达式为。AA) (x<=y)&&(y<=z)B) (x<=y)AND(y<=z)C) x<=y<=zD) (x<=y)&(y<=z)【解析】C语言中没有关键字 AND ,逻辑与运算符是&& ,不是AND ,因此选项B是错误的; 而&是C语言的位与运算符,因此选项D是错误的;选项 C是数学表达式,也是错误的。23 .设有变量int x=0 , y=

13、1 , z=1 ,则运行表达式:x=y+>z- 后,x,y,z的值分别是 。 DA) 1,1,1B ) 1,2,0C) 0,1,1D) 0,2,0【解析】 注:前缀是先增值后引用,后缀是先引用再增值24 .已知int a=4,b=5;, 执行表达式 a=a>b 后,变量a的值为。 AA) 0B) 1C) 4D) 5【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!” >算术运算符 > 关系运算符>逻辑与“ && ” >逻辑或“ |” >赋值运算符 > 逗号运算符。由于关系运算符优先级别高于赋值运 算符,所以先执行 a>

14、b ,得到结果为假,即 0,所以变量a的值为0。25 .能正确表示逻辑关系“a>10或aw。”的C语言表达式是 。 BA) a>=10 or a<=0B) a>=10 | a<=0C) a>=10 && a<=0D) a>=10 | a<=026 .设有定义int a=3,b=4,c=5;,则以下表达式中,值为0的表达式是 °DA) a&&bB) a<=bC) a|b+c&&b-c D)!(a<b)&&!c|1)27 .以下合法的赋值语句是 。 BA) x

15、=(1,y=2);B) +x;C) x=y=15;D) y=int(x);28 .以下选项中,与k=n+完全等价的表达式是 。AA) k=n,n=n+1 B) n=n+1,k=n C) k=+nD) k+=n+1【解析】在本题中,k=n+为后辍运算,根据其运算规则,应先把 n的值赋给k,然后n的值再加上1,选项A的表达式与本题中的表达式等价。29 .若有定义:"int a=8,b=5,c; ",执行语句"c=a/b+0.4 ”后,c的值为。A) 1.4B) 1C) 2.0D) 2【解析】由于a, b, c都是整型变量,所以每一步计算都要取整,所以选 Bo不同类型数

16、据间是可以进行转换和运算的。整型、字符型、实型数据可以混合运算,如果表达式内的运算量的类型不同,不同类型的数据要先转换成同一类型,在进行运算。转换方向由低到高为:char/short 、int、unsigned、long、float、double 。当然也可以使用强制类型转换符来转变类型,但变量本身的类型并未发生变化。例如:(double)n , (int)(a+b)。30 .设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b) 的值是。 CA) 7B) 8C) 9D) 1031 .已定义c为字符型变量,则下列语句中正确的是 。 DA) c='97'B) c=&q

17、uot;97"C) c="a"D) c=97;32 .已知 char ch='A'且表达式 ch=(ch>='A' && ch<='Z')?(ch+32):ch的值是。 BA) AB) aC) ZD)出错【解析】考察条件表达式。见教材 102页。首先执行(ch>='A'&& ch<='Z'),为1。接着执行(ch+32)。因此结果是小写字母 a。33 .设有如下程序段:int x=2, y=3;printf("%dn&q

18、uot;,(x,y);则以下叙述中正确的是。 BA)输出语句中格式说明符的个数少于输出项的个数,不能正确输出B)运行时产生出错信息C)输出值为2D)输出值为334.对于循环 for (k=16; k>0; k-=3) putchar( '*'); 输出是A)*B)*C)*D)无限循环【解析】在k分别为16, 13, 10, 7, 4, 1的时候,分别输出一个*。putchar ()函数(字 符输出函数)的作用是向终端输出一个字符。用 putchar ()函数可以输出能在屏幕上显示的 字符,也可以输出控制字符,如 putchar (' n ')的作用是输出一

19、个换行符,使输出的当前 位置移到下一行的开头。35.已知int i=1;执行语句while(i+<4) 后,变量i的值为°CA) 3B) 4C) 5D) 6【解析】i+是先进行其他运算,运算终了后再将i加1。所以循环中过程如下:i=0判断i<4 :成立i=i+1,于是 i=1继续循环:判断i<4 :成立i=i+1,于是 i=2继续循环:判断i<4 :成立i=i+1,于是 i=3继续循环:判断i<4 :成立i=i+1,于是 i=4继续循环:判断i<4 :不成立i=i+1,于是 i=5跳出循环,程序结束36.已知:int a 3=1,2,3,4,5,6

20、78,9,0;则数组a的第一维的大小是A) 2B) 3C) 41 2 34 5 6【解析】此数组共 3歹U。应该是7 8 90 0 0D)无法确定;在C语言中如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。系统会根据总个数和第二维的长度算出第一维的长度。本题中一共有10个元素,每行3歹U,显然可以确定行数为4.见教材138.37.判断字符串的长度,应该使用的函数是 。A) strcat B) strcmp C) strcpyD) strlen【解析】strlen(string )-字符串长度strcpy (字符数组1 ,字符串2)-ST

21、RingCoPY(字符串复制)的简写。它是“字符串复制函数”,作用是将字符串2复制到字符数组1中去。见教材147页。strcat(字符数组1,字符数组2)-(字符串连接)其作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组 1中,函数调用后得到一个函数值一字符数组1的地址。strcmp(string ,string )-比较2个字符串,0为相同,>0前1个大,<0后1个大38 .初始化多维数组的语句中,可以默认的是 。 BA)最后一个下标界B)第1个下标界C)第2个下标界D)以上都不对39 .若有:int a10,*p=&a0;,关于数组名 a

22、的不正确的说法是 。 AA) a是个数组指针B)数组名a表示数组的首地址C)数组名a与a0等价D) a和p都指向同一个存储单元【解析】一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。指针变量即然可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中)。所谓数组元素的指针就是数组元素的地址。在本题中,定义 a为包含10个整型数据的数组,定义 p为指向整型变量的指针变量。并且把 a0元素的地址赋给指针变量p,也就是使p指向a数组白第0号元素。C语言规定数组名代表数组中首元素的地址。因此下面两个语句等价:P=&a0; p=a;注

23、意数组名a不代表整个数组,上述« p=a; "的作用是“把 a数组的首元素的地址赋给指针变量p”而不是“把数组 a各元素的值赋给p”。40 .设有定义 int a尸1,5,7,9,11,13,*p=a+3;则 *(p-2),*(a+4) 的值是。 AA) 5 11B) 19C) 5 9D)有错误【解析】因为*p=a+3它的作用是将a数组第4个元素a3的地址赋给指针变量p (而不是赋给*p ),a代表数组首元素的地址,a+3代表数组中的第 4个元素a3。在数组中的对应关系如下图。11(a13按C语言的规定:如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元

24、素,而不是将 p的值(地址)简单的加 1。另外,如果p的初值为&a0,则p+i和a+i就是ai的地址,或者说,它们指向a数组白勺第i个元素,这里需要特别注意的是a代表数组首元素的地址。* ( p+i )或*(a+i)是p+i或a+i所指向的数组元素, 即ai。在本题中*(a+4)=a4=11详见教材230页。41 .C语言中,函数返回值的类型是由 。 BA) return语句中的表达式类型决定B)调用函数的主调函数类型决定C)调用函数时的临时类型决定D)定义函数时所指定的函数类型决定42 .执行下面程序:main()int x=1,y=1,z=1;x=x+ +y+ +z+;printf

25、("%d, %d , %d",x,+y,z+);输出的结果为。AA) 4,3,2B) 3,3,2C) 3,3,3D) 3,2,2【解析】语句x=x+y+z+;中+运算符均为后缀,所以是先引用后增值,此语句又可写为x=x+y+z;x+;y+;z+;这样我们便很容易看出结果为x=4;y=2;z=2。43 .以下程序段的输出结果是 。Aint m=10;while(m>7)m-;printf( "%dn " ,m);A)9B)10C)9D)108989787876【解析】复习一下 while循环的执行过程:(1)计算while 一对圆括号中表达式的值。当

26、值为非零时,执行步骤(2);当值为零时,执行步骤(4)。(2)执行循环体中语句。(3)转去执行步骤(1)。(4)退出while循环。由以上while循环的一般过程来看,只有当while后面的括号中表达式的值为零时才停止循环。本题中,当m=7是循环停止,也就是说最后一个输出的应是7.开始m被赋予10,进入循环体,由于m-;所以m自减1为9,所以第一个输出的应是 9.44 .若有如下程序段,其中 s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)s=a; for(b=1;b<=c;b+) s=s+1;则与上述程序段功能等价的赋值语句是 。 BA) s=a+b;B) s=a+c;C

27、) s=s+c;D) s=b+c;【解析】掌握两点:一、 a赋给了 s;二、s执彳T c次自力口;所以最终相当于将a+c赋给了 s。45 .以下程序中,while循环的循环次数是 。 Dmain()int i=0;while(i<10)if(i<1)continue;if(i=5)break;i+;A) 1B) 10C) 6D)死循环,不能确定次数【解析】在循环中,如果执行continue,将直接开始下一次循环,不继续执行continue下面的语句。进入循环时,i=0 ,当执行到if(i<1)continue ; 一句时,将执行 continue 命令,直接开始下一次循环,i

28、的值始终没有变,循环条件(i<10 )将一直满足下去。所以,程序将一直无法 退出循环,即死循环。46 .当对两个字符串进行比较时,应该使用的函数是 。 BA) strcat B) strcmpC) strcpyD) strlen47 .若有定义“ int k,*q; ",则下列各选项中赋值表达式正确的是 。 BA) q=(&k+1)B) q=&kC) q=kD) *q=&k【解析】(1)本题的定义语句中,在q前面有一个*号说明符,表示q是一个指针变量,而 C语言规定,在指针变量中只能存放存储单元(即变量)的地址。(2)因为在定义中,q的基类型为int ,

29、所以q中只能存放int类型变量的地址。(3)在C程序中&号是求地址符,表达式 &k的值是变量k在内存中的地址,而*号的作用是 求地址指向单元的值。(4)现在来看看选项 C和D。C中,是把整型变量直接赋给指针变量q,由于赋值不兼容性,这是错误的。D中,企图把k的地址赋给一个整型变量(*p在此可代表一整型变量),这也是 不允许的,地址值不可能转换为一个整数。(5)关于A,还得声明一点,地址符 &只能应用于变量和以后将要介绍的数组元素,不可以用于表达式,常量或者被说明为register的常量。因此 A也不正确。(6)那答案只能是 B,因为此处q中只能存放int类型的地址,而k

30、是int型,&k又是k的 地址,B当然是正确的。48 .若有以下定义:char s20="programming " , *ps=s ;则不能代表字符g的表达式是。AA) ps+3B) s3C) ps3D) ps+=3,*ps【解析】1、C语言对字符串常量是按字符数组处理的,在内存中开辟了一个字符数组用来存放该字符串常量。2、指向数组的指针变量也可以带下标,如 pi与*(p+i)等价。详见教材231页。49 .以下能正确定义数组并正确赋初值的语句是 。CA) int N=5,bNN;B) int a12=1,3;C) int c2= 1,2,3,4; D) int

31、d32=1,2,34;【解析】如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省!系统会根据总个数和第二维的长度算出第一维的长度。详见教材p13850 .假设已定义 char c8= "test" ; int i;则下面的输出函数调用中错误的是 。DA) printf("%s",c);B) for(i=0 ; i<8 ; i+) printf("%c",ci) ;C) puts(c)D) for(i=0 ; i<8 ; i+) puts(ci);【解析】首先 A、B两个

32、选项是没有问题的,puts函数一般形式为puts(字符数组),其作用是输出字符串,所以 D选项是错误的。51.下程 序段:chars20 尸"xyz",*sp=s; strcat(sp,"12345");puts(sp);的输出结果是 o AA) xyz12345B) 12345xyzC) 12345D) xyz【解析】strcat(字符数组1,字符数组2)-(字符串连接)其作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值-字符数组1的地址。52.在执行 int a 3=1,2,3,4; 语句

33、后 a12的值是。 CA. 3 B. 4 C. 0D. 2【解析】考查知识点:二维数组的初始化int a 3=1,2,3,4;初始化的数组元素如下:3 4 01 2 053 .已知:int a 3=1,2,3,4,5,6,7,8,9,0; 则数组 a 的第一维的大小是 。 CA. 2B. 3C. 4D.无法确定;1 2 34 5 6【解析】此数组共 3歹U。应该是7 8 90 0 0在C语言中如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度 可以不指定,但第二维的长度不能省。系统会根据总个数和第二维的长度算出第一维的长度。本题中一共有10个元素,每行3歹U,显然可以确定

34、行数为4.见教材138.54.设有定义语句:char str口20="Hello","Beijing",*p=str;则 printf("%dn",strlen(p+20); 输出结果是 。 CA) 0B) 5C) 7D) 20【解析】数组char str口20实际上是一个2行20列的字符数组。*p正好指向H, 一个英文字母占一个字节,这样 p+20就指向第二行的第一列,也就是 "Beijing"的B,所以输出结果是 7。注意:虽然第一行,第二行都没有排满,但Hello其后是0,而不是空格。55.用数组名作为函数调

35、用时的实参,则实际传递给形参的是 。CA)数组的第一个元素彳tB)数组中全部元素值C)数组的首地址D)数组的元素个数二、读程序,写出程序执行结果1 . void main() int a=5, b=8;printf( "a=%d b=%dn : a,b);a=a+b; b=a-b; a=a-b;printf( "a=%d b=%dn : a,b) ;运行结果:a=5b=8a=8 , b=52 . #include <stdio.h>void main() int k=4,n=0;for( ; n<k ;) n+;if(n%3!=0) continue;k-

36、;printf("%d,%dn",k,n);运行结果: 3 , 33 .#include <stdio.h>void main()int x=1,a=0,b=0;switch(x)case 0:b+;case 1:a+;case 2:a+;b+;printf( “ a=%d,b=%dn” ,a,b);运行结果: a=2,b=14 .#include <stdio.h>void main()int a33=1,2,3,4,5,6,i,j,s=0;for(i=0;i<3;i+)for( j=0;j<=i;j+)s+=aij;printf( “

37、 %dn ” ,s);运行结果: 195 #include <stdio.h>void main() int i,j ;for(i=0 ;i<3 ; i+)for(j=0 ; j<=i ; j+)printf("*") ;printf("n") ;运行结果:*6 #include <stdio.h>void main() int i;for (i=0; i<3; i+) switch (i) case 1: printf("%d ", i);case 2: printf("%d &q

38、uot;, i);default : printf("%d ", i);运行结果: 0111227 #include <stdio.h>void main() int i,n=1,2,3,4,5 ;for(i=0 ; i<2 ; i+)ni=n4-i+1;printf("%d ",ni);for(i=0 ; i<5 ; i+)printf("%d ",ni);运行结果: 65653458 #include <stdio.h>char fun(char *s) if( *s >= a &

39、& *s <= z )*s=*s-32;return *s;void main() char a20="Welcome",*p,ch;for(p=a;*p!= 0 ;p+) ch=fun(p);putchar(ch);运行结果: WELCOME9 main() int a44=1,2,-3,-4,0,-12,-13,14,-21,23,0,-24,-31,32,-33,0;int i, j, s=0;for (i=0; i<4; i+) for (j=0; j<4; j+) if (ai j < 0) continue;if (ai j =

40、0) break;s += aij;printf("%dn", s);运行结果:5810 . main() int k=4,n=0;for( ; n<k ;) n+;if(n%3!=0)continue;k-;printf("%d,%dn",k,n);运行结果:3, 3三、编程题1 .设有分段函数:-1(X<0)Y= |0(x=0)1 (x>0)编一程序,输入一个 X值,车出y的值。具体程序详见教材100页。2.求下列分段函数的值。已验证1 X 11 X Y 0 X 1X2 X 1#include <stdio.h>void

41、 main()int x;float y;printf("输入 x:");scanf( "%dn " ,&x);if(x<-1)y=x*x;printf( "x=%3d,y=%fn” ,x,y);elseif(x=-1)y=0;printf( "x=%3d,y=%fn” ,x,y);elsey=1.0/(1+x);/* 注意:此处如果写成 y=1/(1+x);则当x=1时,输出是 0.000000*/ printf( "x=%d,y=%fn” ,x,y);3 .编程任意输入两个实数a和b ,计算下面函数的值,并

42、输出 y值。Fa-ba>b- a y= a<bba=ba*b具体程序请参照上述两题。4 .编写程序,用 /4 1 1/3 1/5 1/7 公式求的近似值,直到某一项的绝对值小于10-6为止。具体程序详见教材124页。5 .任意输入100个整数,分别统计其中的正数、负数和零的个数。#include <stdio.h>main()int j=0,k=0,l=0;/j,k,l分别为正整数,0,负整数的个数。int *p;int a100;/ 容纳这100个整数的数组for(p=a;p<(a+100);p+)scanf( “ %d ”,p);for(p=a;p<(a

43、+100);p+)if(*p>0) j+;elseif(*p=0) k+;else l+;printf( “正数的个数为 %dn0 的个数为 %dn 负数的个数为 %dn ” ,j,k,l);6 .计算:s=1+1/1+1/2+1/n ,其中n由键盘输入。已验证错误的程序:#include <stdio.h>main()int n;float s;scanf( “%f ” ,&n) ;for(n=1,s=1.0;n<=100;n+)s=s+1.0/n;printf(%fn,s); 请同学们自己体会错误程序的原因。正确的程序:#include <stdio.h>main()int n;float s,k;scanf( “ %d ” ,&n) ;s=1.0;for(k=1;k<=n;k+)s=s+1.0/k;printf( “ %fn ” ,s);7 任意输入 aNN 个数,找

温馨提示

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

评论

0/150

提交评论