C语言第三章习题

合集下载

c语言教程答案

c语言教程答案
getch(); /*为便于调试程序,运行至此程序停顿,此时可以看到运行结果,按任意键程序真难得结束并返回到编辑环境*/
}
12 输入三角形的边长,求三角形面积(面积=sqrt(s(s-a)(s-b)(s-c)),s=(a+b+c)/2)。 ቤተ መጻሕፍቲ ባይዱ

#include"math.h" /*由于程序中使用了开平方函数sqrt(),所以需要包含数学头文件*/
int a1,a2;
char c1,c2;
若要求输入a1、a2、c1和c2的值,正确的输入函数调用语句是___。
答 scanf("%d,%d,%c,%c",a1,a2,c1,c2);
7 输入两个整型变量a、b的值,输出下列算式以及运算结果___。
a+b、a-b、a*b、a/b、(float)a/b、a%b
area=PI*r*r;
printf("l=%f\tarea=%f\n",l,area);
}
9 输入任意一个3位数,将其各位数字反序输出(例如输入123,输出321)。

main()
{
int x,y;
printf("Input number:");
scanf("%d",&x);
分析:执行了case 1: 和case 3: 中的代码。同时case 1:语句中的{ }是可以取消的。
6 以下两条 if 语句可合并成一条 if 语句,即___。
if(a<=b) x=1;
else y=2;
if(a>b)printf("***y=%d\n", y);

c语言程序设计第五版谭浩强习题答案第三章课后答案

c语言程序设计第五版谭浩强习题答案第三章课后答案

c语⾔程序设计第五版谭浩强习题答案第三章课后答案第三章最简单的C程序设计 ----顺序程序设计1、假如我国国民⽣产总值的年增长率为7%,计算10年后我国国民⽣产总值与现在相⽐增长多少百分⽐。

计算公式为$p = (1+r)^n$ ,其中r为年增长率,n为年数,p为与现在相⽐的倍数。

题⽬解析:此题的关键主要是利⽤数学库math中pow函数进⾏计算,若不熟悉可以查阅帮助⽂档,查看pow函数的⽤法。

代码⽰例:#include<stdio.h>#include <math.h>int main(){Cfloat p, r, n;r = 0.07;n = 10;p = pow(1 + r, n);printf("p=%f\n", p);return 0;}运⾏结果:2、存款利息的计算。

有1000元,想存5年,可按以下5种办法存:(1)⼀次存5年期(2)先存2年期,到期后将本息再存3年期(3)先存3年期,到期后将本息再存2年期(4)存1年期,到期后将本息再存1年期,连续存5次(5)存活期存款,活期利息每⼀季度结算⼀次2017年银⾏存款利息如下:1年期定期存款利息为1.5%;2年期定期存款利息为2.1%;3年期定期存款利息为2.75%;5年期定期存款利息为3%;活期存款利息为0.35%(活期存款每⼀-季度结算⼀-次利息)如果r为年利率,n为存款年数,则计算本息的公式如下:1年期本息和: P= 1000* (1+r);n年期本息和: P= 1000* (1+n* r);存n次1年期的本息和: $P=1000* (1+r)^n$;活期存款本息和: P= 1000 *(1+$\frac{r}{4}$)$^{4n}$;说明: 1000*(1+$\frac{r}{4}$)是⼀个季度的本息和。

题⽬解析:理解题意很关键,其次就是利⽤数学库math中pow函数进⾏幂次⽅计算代码⽰例:#include<stdio.h>#include <math.h>int main(){float r5, r3, r2, r1, r0, p, p1, p2, p3, p4, p5;p = 1000;r5 = 0.0585;r3 = 0.054;r2 = 0.0468;r1 = 0.0414;r0 = 0.0072;p1 = p*((1 + r5) * 5); // ⼀次存5年期p2 = p*(1 + 2 * r2)*(1 + 3 * r3); // 先存2年期,到期后将本息再存3年期p3 = p*(1 + 3 * r3)*(1 + 2 * r2); // 先存3年期,到期后将本息再存2年期p4 = p*pow(1 + r1, 5); // 存1年期,到期后将本息存再存1年期,连续存5次p5 = p*pow(1 + r0 / 4, 4 * 5); // 存活期存款。

C语言程序设计-第3章 练习题

C语言程序设计-第3章  练习题

一、单项选择题题目1若x的值为15,则执行“if(x>10) x++; else x--;”语句后,x的值为()。

a. 14b. 15c. 10d. 16题目2若x的值为-10,则执行“if(!x) x++; else x--;”语句后,x的值为()。

a. -9b. -11c. -10d. 0题目3若x的值为10,则执行“switch(x%3){case0: x++; case 1:x++; case 2: x++;}”语句后,x的值为()。

a. 13b. 12c. 11d. 10题目4若x的值为10,则执行“switc h(x%3){case0: x++; break; case 1:x++; default: x++;}”语句后,x的值为()。

a. 9b. 10c. 11d. 12题目5若n的值为10,则执行“for(i=1;i<n; i++) S;”语句的过程中,表达式i=1共被执行的次数为()。

a. nb. n+1c. 1 B. n-1 C.n-1d. 1题目6若n的值为10,则执行“for(i=0;; i++) if(i>n/3) break;”语句后,i的值为()。

a. 3b. 6c. 4d. 5题目7若n的值为10,则执行“for(i=1;i<n; i++) S;”语句的过程中,表达式i++共被执行的次数为()。

a. n+1b. nc. 1d. n-1题目8若n的值为10,则执行“for(i=0;i<n; i++) for(j=i; j<n; j++) S;”语句后,内层循环体S语句的执行总次数为()。

a. n(n-1)/2b. (n+1)/2c. n*nd. n(n+1)/2题目9若n的值为10,则执行“while(n-->0)s+=n;”语句的过程中,循环体被执行的次数为()。

a. 8b. 10c. 11d. 9题目10若n的值为5,s的值为0,则执行“while(n-->0) s+=n;”语句后,s的值为()。

第6周C程序设计作业

第6周C程序设计作业

第三章练习题之运算符和表达式一、选择题:1、以下运算符中,优先级最高的运算符是()A. =B. !=C. *(乘号)D. ()2、若有以下定义,则能使值为3的表达式是()int k=7, x=12;A. x%=(k%=5)B. x%=(k-k%5)C. x%=k-k%5D. (x%=k)-(k%=5)3、设在tc2.0中有整型变量x,y,z均为3,表达式(x++)+(y++)+(z++)的值是 ( )A. 6B. 7C. 8D. 94、有以下程序运行后的输出结果是:()main(){ char a='A',b;print("%c,",++a);printf("%c\n",b=a++);}A. B,BB. B,CC. A,BD. A,C5、有以下程序运行后的输出结果是:()main(){ char a='a';printf ("%c,",++a);printf("%c\n",a++);}A)b,b B)b,c C)a,b D)a,c6、设a=6,b=4,则表达式b*=a+3的值为:()A)3 B)18 C)27 D)367、有如下程序段,其输出结果是: ( )int a=3;float b=15.6,f=1.5;printf(“%d”,a+(int)b/2+(int)f%3);A)10 B)11 C)12 D)138、以下程序的输出结果是:()main( ){int a=3 ;printf ( "%d %d\n " , a , a++) ; }A. 4 3B. 4 4C. 5 3D. 5 49、以下程序的输出结果是()。

main( ){int a=10;printf ( "%d %d\n " , a , a++) ; }(A)11 10 (B)11 11 (C)12 20 (D)12 1110、若有定义:int a=8,b=5,c;执行语句c=a / b+0.4 ; 后c的值为()。

C语言第三章数据类型和运算符及表达式复习题

C语言第三章数据类型和运算符及表达式复习题

数据类型、运算符和表达式复习题一.选择题1. 以下不合法的用户标识符是:()a) f2_G3 b) If c) 4d d) _82. 以下选项中合法的用户标识符是:()a) long b) _2Test c) 3Dmax d) A.dat3. 以下可用作用户标识符的是:()a) 12_a b) signed c) t-o d) _if4. 以下不是关键字的标识符是:()a) continue b) char c) If d) default5. C语言提供的合法的关键字是:()a) swicth b) cher c) Case d) void6. 以下选项中不合法的int整型常数是()a) 32768 b) -56 c) 03 d) 0xAF7. 以下合法的长整型常量是()a) 2L b) 49627 c) d) 213&8. 以下正确的实型常量是()a) 1.2E b) . c) 1.2e0.6 d) 89. 以下选项中合法的实型常数是()a) 5E2.0 b) E-3 c) .2E0 d) 1.3E10. 以下合法的八进制数是()a) 0135 b) 068 c) 013.54 d) o711. 以下合法的十六进制数是()a) 0x b) 0x4de c) 0x1h d) ox7712. 以下选项中非法的数值常量是()a) 019 b) 0L c) 0xff d) 1e113. 若变量已正确定义,以下合法的赋值表达式是()a) a=1/b=2 b) ++(a+b)c) a=a/(b=5) d) y=int(a)+b14. 若变量已正确定义,以下非法的表达式是()a) a/=b+c b) a%(4.0)c) a=1/2*(x=y=20,x*3) d) a=b=c15. 设x为int类型,其值为11,则表达式(x++*1/3)的值是:a) 3 b) 4 c) 11 d) 1216.设a,b均为double型,且a=5.5;b=2.5;则表达式(int)a+b/b的值是()a) 6. b) 6 c) 5. d) 6.17.若a为int型,且其值为3,则执行完表达式:a+=a-=a*a后,a的值是()a) -3 b) 9 c) -12 d) 618.设k和x均为int型变量,且k=7;x=12;则能使值为3的表达式是()a) x%=(k%=5) b) x%=(k-k%5)c) x%=k-k%5 d) (x%=k)-(k%=5)19. 若a,b,c 均被定义成整型并已赋大于1的值,能正确表示代数式cb a ⋅⋅1的C 语言表达式是( )a) 1/(float)a*b*c b) 1/(a*b*c)c) 1.0/a/b/c d) 1/a/b/(float)c 20. 以下变量x,y,z 均为double 型且已正确赋值,不能正确表示代数式zy x ⨯的C 语言表达式是( )a) x/y*z b) x*(1/(y*z))c) x/y*1/z d) x/y/z 21. 不能正确表示代数式d c ba ⋅⋅的C 语言表达式是( )a) a/(c*d)*b b) a*b/c/dc) a*b/c*d d) a*b/(c*d)22.若题中变量已正确定义并赋值,下面符合C 语法的表达式是( )a) a%=7.6 b) a++,a=7+b+cc) int(12.3)%4 d) a=c+d=a+723. 若t 已定义为double 型,则表达式:t=1,t++,t+5的值为( )a) 7 b) 7.0 c) 2.0 d) 1.024. 已有定义:int a,b; float x,y;,以下正确的赋值语句是:( )a) a=1,b=2, b) y=(x%2)/10; c) x*=y+8; d) a+b=x;25. 有以下程序:main(){ int y=1111;printf(“y=%6d\n ”,y);printf(“y=%+06d\n ”,y);}程序运行的结果是:( )a) y= 1111 b) y= 1111 c) y=1111 d) y= 1111y= y=+01111 y=+01111 y=111126. 有以下程序:main(){ int y=456;printf(“*y=%7o*\n ”,y);printf(“*y=%-7o*\n ”,y);printf(“*y=%07o*\n ”,y);}程序运行的结果是:( )a) *y= 710* b) *y= 456**y=710 * *y=456 **y=* *y=*c) *y=710* d) *y=456**y=-710* *y=-456**y=0710* *y=0456*27. 有以下程序:main(){ float y=3.667;printf(“*%f*\n”,y);printf(“*%7.2f*\n”,y);printf(“*%8.0f*\n”,y);}程序运行的结果是:()a) *3.* b) *3.** 3.67* *3.667 ** 4* *4.*c) *3.667* d) *3.**3.* *3.67**3.* *4.*28. 已有定义:double a,b;,若要求按输入方式(此处*代表一个空格)**1.0**2.0<回车> 分别给a,b输入1,2,则能正确进行输入的语句是()a) scanf(“%f%f”,&a,&b);b) scanf(“%5.1lf%5.1lf”,&a,&b);c) scanf(“%lf%lf”,&a,&b);d) scanf(“%5e%5e”,&a,&b);29. 以下合法的定义语句是()a) short _auto_=100-1;b) double b=1+5e2.5;c) long do=1l;d) float 2_and=1e-3;30. 以下选项中不是C语句的是()a) ++t b) ; c) k=i=j; d) {a/=b=1;b=a%2;}31. 有定义语句:int a=5,b;,不能给b赋2的赋值语句是()a) b=a/2; b) b=b+2; c) b=2%a; d) b=5;b=2;32. 设x和y均为int型变量,语句组x+=y;y=x-y;x-=y;的功能是()a) 把x和y从小到大排列b) 把x和y从大到小排列c) 无确定结果d) 交换x和y中的值33. 有定义语句:long int a; int k;,能给a赋40000的正确语句是()a) a=20000+20000; b) a=4000*10;c) k=400;a=k*100; d) a=4000;a=a*10;34. 若有定义:int a=8,b=5,c;,执行语句:c=a/b+0.4;后,c的值是()a) 1.4 b) 1 c) 2.0 d) 235. 有以下程序:main(){ int k=2,i=2,m;m=(k+=i*=k++);printf(“y=%d,%d\n”,m,i);}程序运行的结果是:()a) 8,6 b) 8,3 c) 6,4 d) 7,436. 有以下程序:main(){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}程序运行的结果是:()a) 3 4 b) 4 2c) 4 3 d) 3 337. 有以下程序:main(){ int i; long l ; float f ; double d ;i=f=l=d=20/3;printf(“%d %ld %3.1f %3.1f\n”,i,l,f,d);}程序运行的结果是:()a) 6 6 6.0 6.0 b) 6 6 6.7 6.7c) 6 6 6.0 6.7 d) 6 6 6.7 6.038. 有以下程序:main(){ unsigned a=32768; int b ;b=a ;printf(“b=%d\n”,b);}程序运行的结果是:()a) b=32768 b) b=32767 c) b=-32768 d) b=-139.有以下语句printf(“%d,%d,%u\n”,016,16,-16);其输出结果是()a) 16,16,65520 b) 14,16,65520c) 16,16,-16 d) 14,16,-1640.若有定义语句:int b=0x17;printf(“%d”,b++);,其正确的输出结果是()a) 23 b) 24 c) 25 d) 2241.有以下程序:main(){ int x=0xffff;printf(“%d\n”,x--);}程序运行的结果是:()a) 32767 b) FFFEc) -1 d) -32768二.填空题1.已有定义:float f=13.8;,则表达式:(int)f%3的值是______.2. 已有定义:int x=3;, 则表达式:x=x+1.78的值是______.3. 已有定义:double x=3.5; 则表达式:x=(int)x+1的值是_____.4. 已有定义:int x=10,y=3,z;, 则表达式:z=(x%y,x/y) 的值是_______.5. 设a,b,c为整型数,且a的值为2,b的值为3, c的值为4,表达式:a*=16+(b++)-(++c)的值为______.6. 已有定义:int x=0,y=0;,则计算表达式:(x+=2,y=x+3/2,y+5)后,表达式的值是___,变量x的值是___,变量y的值是____.7. 已有定义:int x=110,y=017;,则计算表达式:(x++,++y)后,按十进制表示,变量x的值是_____,变量y的值是_______。

C语言 第三章 顺序结构程序设计期末测试习题与答案

C语言 第三章 顺序结构程序设计期末测试习题与答案
A.scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
B.scanf(“%dV%dV%d”,&a,&b,&c);
C.scanf(“%d,%d,%d”,&a,&b,&c);
D.scanf(“%2d%3d%4d”,a,b,c);
参考答案:C
5、若int a,b; double x;
以下不合法的scanf函数调用语句是( )。
参考答案:C
17、以下程序段的输出结果是
int a=1234;
printf("a=%2d\n",a);
A.提示出错、无结果
B.a=34
C.a=1234
D.a=12
参考答案:C
18、下列关于printf()函数说法错误的是( )。
A.printf()函数是库函数,必须使用#include命令将其包含进来
printf(" %d %d\n",(++x ,y++),z+2);}
运行该程序的输出结果是( )。
A.4 2
B.33
C.4 3
D.3 4
参考答案:B
24、下列程序的输出结果是( )。
main()
{ double d=3.2; int x ,y ;
x=1.2 ; y=(x+3.8)/5.0;
printf("%d \n", 7.3);}
A.3
B.3.07
C.0
D.3.2
参考答案:C
25、以下程序的输出结果是( )。
main( )
{
inmp;&!b||!c;

C语言程序设计(第3版)第3章补充习题及答案

C语言程序设计(第3版)第3章补充习题及答案
char c=’A’;
x=(a&&b)&&(c<’B’);
执行该程序段后,x的值为( )
AtureB falseC 0D 1
(9)以下程序的输出结果是( )
main()
{
int a=0,i=1;
switch(i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
(2)下面程序的输出结果是
iX=3
iX>3

#include "stdio.h"
main()
{intiX=3;
switch(iX)
{case 1:
case 2:printf("iX<3\n");
case 3:printf("iX=3\n");
case 4:
case 5:printf("iX>3\n");
}
}
(3)以下程序的运行结果是iM=3,iN=4,iT=3。
#include "stdio.h"
main()
{int iM,iN,iT,iA=2,iB=3;
iM=(++iA==--iB)?––iA:++iB;
iN=++iA;
iT=iB;
printf("iM=%d,iN=%d,iT=%d\n",iM,iN,iT);
(4)对switch后括号内的表达式,叙述正确的是C。
A.只能是数字B.可以是浮点数
C.只能是整型数据或字符型数据D.以上叙述都不对

习题3

习题3

第三章数据类型、运算符与表达式3.1 选择题【题3.1】在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为。

A)char<int<long int<=float<doubleB)char=int<long int<=float<doubleC)char<int<long int=float=doubleD)char=int=long int<=float<double【题3.2】若x、i、j和k都是int型变量,则执行下面表达式后x的值为。

x=(i=4,j=16,k=32)A)4 B)16 C)32 D)52【题3.3】假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是。

A)7 B)8 C)6 D)2【题3.4】下列四组选项中,均不是C语言关键字的选项是。

A)define IF typeB)getc char printfC)include scanf caseD)while go pow【题3.5】下列四个选项中,均是C语言关键字的选项是。

A)auto enum includeB)switch typedef continueC)signed union scanfD)if struct type【题3.6】下面四个选项中,均不合法的用户标识符的选项是。

A) A P_0 doB)float la0 _AC)b-a goto intD)_123 temp INT【题3.7】C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符。

A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母、数字和下划线中任一种字符【题3.8】下面四个选项中,均是合法整型常量的选项是。

A)160 -0xffff 011B)-0xcdf 01a 0xeC)-01 986,012 0668D)-0x48a 2e5 0x【题3.9】下面四个选项中,均是不合法的整型常量的选项是。

C语言-第3章 最简单的C程序设计 练习题

C语言-第3章 最简单的C程序设计 练习题

第3章最简单的C程序设计—顺序程序设计一、单项选择题1. 不是C语言提供的合法关键字是。

A)switch B)cher C)case D)default2. C语言提供的合法关键字是。

A)next B)string C)do case D)struct3. 下列不属于C语言中关键字的是。

A) long B) print C)default D)typedef4. 下列不正确的标识符是。

A) -a1 B) a[i] C)a2_i D)x5. 下列C语言用户标识符中合法的是。

A)*y B)sum C)int D)%5f6. 下面四个选项中,合法的标识符是。

A)auto B)define C)6a D)c7.下列C语言用户标识符中合法的是。

A)3ax B)x C)case D)-e28. 以下选项中合法的用户标识符是。

A) long B) _2Test C) 3Dmax D) A.dat9.下列四组选项中,正确的C语言标识符是。

A)%x B)a+b C)a123 D)12310. 请选出可用作C语言用户标识符的一组标识符A) void B) a3_b3 C) For D) 2adefine _123-abc DOWORD sum Case sizeof11. 下列四组字符串中都可以用作C语言程序中的标识符的是。

A)print _3d oodb aBc B)I\am one_half start$it 3paiC)str_1 Cpp pow while D)Pxq My->book line# His.age12. 下列C语言标识符中合法的变量名是。

A)2e3 B)you C)*y D)float1-12题解析:参照讲义中知识点--标识符与关键字,13. C语言中的简单数据类型包括。

A)整型、实型、逻辑型B)整型、实型、逻辑型、字符型C)整型、字符型、逻辑型D)整型、实型、字符型13题解析:C语言中没有逻辑型变量14.下列可以正确表示字符型常量的是。

c语言第3章练习题--运算符、表达式、输入输出知识讲解

c语言第3章练习题--运算符、表达式、输入输出知识讲解

c语言第3章练习题--运算符、表达式、输入输出1. 下面四个选项中,均是不合法的标识符的选项是(C)A)A, P_0, doB)float, 1a0, _AC)b-a, goto, intD)_123, temp, INT2. c语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(C)A)必须为字母;B)必须为下划线;C)必须为字母或下划线;D)可以是字母、数字和下划线中任一种字符.3. 已知字母A的ASCII码为十进制的65,下面程序的输出是(A)main(){ char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A)67, D B)B, C C)C, D D)不确定的值4. 假设所有变量均为整型,则表达式(B)(a=2, b=5,b++,a+b) 的值是A)7 B)8 C)6 D)25. 设以下变量均为int类型,则值不等于7的表达式是,CA) (x=y=6,x+y,x+1) B) (x=y=6,x+y,y+1)C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1)6. 若有说明语句:char c=‘\72’;则变量c(A)A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法,c的值不确定7. 若以下变量均是整型,且num = sum =7;则计算表达式.Bsum=num++,sum++,++num 后sum的值为(B)A)7 B)8 C)9 D)108. 若有定义:int a=7;float x=2.5,y=4.7;则表达式x十a%3*(int)(x十y)%2 /4的值是(A)A) 2.500000 B) 2.750000 C) 3.500000 D)0.0000009、下面不正确的字符串常量是(A)A)'abc' B)"1212" C)"0" D)" "10、数字字符0的ASCII值为48,若有以下程序(A) void main(){ char a='1',b='2';b = b + 1;printf("%c,",b);printf("%d\n", b-a);}程序运行后的输出结果是(A)A)3,2 B)50,2 C)2,2 D)2,5011、在C语言中,要求运算数必须是int型的运算符是 DA. /B. ++C.!=D. %12、设有如下程序段:int x=2002, y=2003;printf("%d\n",(x,y));则以下叙述中正确的是(D)A) 输出语句中格式说明符的个数少于输出项的个数,不能正确输出B) 运行时产生出错信息C) 输出值为2002D) 输出值为200313、有如下程序void main(){ int y=3,x=3,z=1;printf("%d %d\n",(++x,y++),z+2);}运行该程序的输出结果是DA) 3 4 B) 4 2 C) 4 3 D) 3 314 下列程序的输出结果是Cvoid main(){ double d=3.2; int x,y;x=1.2;y=(x+3.8)/5.0;printf("%d \n", d*y);}A) 3 B) 3.2 C) 0 D) 3.0715、假定x和y为double型,则表达式x=2,y=x+3/2的值是DA) 3.500000 B) 3 C) 2.000000 D)3.00000016、若有以下程序段,Aint c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是A) 0 B) 0.5 C) 1 D) 217、已知字母A的ASCII编码为10进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为___A___。

c语言第3-4章练习题有答案

c语言第3-4章练习题有答案

第3-4章练习题一、选择题1. 以下错误的字符串赋值或赋初值方式是:(A)char str1[]=”string”, str2[]=”12345678”;st r cpy(str2,str1);(B)char str[7]={‟s‟,‟t‟,‟r‟,‟i‟,‟n‟,‟g‟};(C)char str[10] ;str =”string”;(D)char *str; str=”string”;2. 数组定义中不正确的是:(A)int a[2][3]; (B)int b[][3]={0,1,2,3};(C)int c[100][100]={0}; (D)int d[3][]={{1,2},{1,2,3},{1,2,3,4}};3. 以下对一维数组a正确初始化的是:(A)int a[10]=(0,0,0,0,); (B)int a[10]={};(C)int a[10]={0}; (D)int a[10]=(10*2);4.以下选项中,不能正确赋值的是:(A)char s1[10];s1="Ctest"; (B)char s2[]={'C', 't', 'e', 's', 't'};(C)char s3[20]="Ctest"; (D)char *s4="Ctest\n"5.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是:(A)i=*p; (B)*p=*&j; (C)i=&j; (D)i=**p;6. 下面各语句行中,不能正确进行字符串操作的语句行是:(A) char st[10]={"abcde"}; (B) char s[5]={'a','b','c','d','e'};(C) char *s; s="abcde"; (D) char *s; scanf("%s",s);7.设有如下的程序段,执行上面的程序段后,*(ptr+5)的值为:char str[ ]="Hello"; char *ptr; ptr=str;(A) 'o' (B) '\0' (C)不确定的值(D) 'o'的地址8. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));(A)5 (B)14 (C)8 (D)输出项不合法,无正常输出9.以下程序段给数组所有的元素输入数据,请选择正确答案填入。

c语言第三、四章(习题册答案)

c语言第三、四章(习题册答案)

第三章数据类型、运算符和表达式一、选择题:1、以下选项中,不正确的C 语言浮点型常量是(C)。

A. 160.B. 0.12C. 2e4.2D. 0.02、以下选项中,(D)是不正确的C 语言字符型常量。

A. 'a'B. '\x41'C. '\101'D. "a"3、在C 语言中,字符型数据在计算机内存中,以字符的(C)形式存储。

A. 原码B. 反码C. ASCII 码D. BCD码4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是(C)。

x=(i=4,j=16,k=32)A. 4B. 16C.32D.525、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。

A. 算术运算、赋值运算、关系运算B. 算术运算、关系运算、赋值运算C. 关系运算、赋值运算、算术运算D. 关系运算、算术运算、赋值运算6、表达式!x||a==b 等效于(D)。

A. !((x||a)==b)B. !(x||y)==bC. !(x||(a==b))D. (!x)||(a==b)7、设整型变量m,n,a,b,c,d 均为1,执行(m=a>b)&&(n=c>d)后, m,n 的值是(B)。

A. 0,0B. 0,1C. 1,0D. 1,18、设有语句int a=3;,则执行了语句a+=a-=a*=a;后,变量a 的值是(B)。

A. 3B. 0C. 9D. -129、在以下一组运算符中,优先级最低的运算符是(D)。

A. *B. !=C. +D. =10、设整型变量i 值为2,表达式(++i)+(++i)+(++i)的结果是(B)。

A. 6B. 12C. 15D. 表达式出错11、若已定义x 和y为double 类型,则表达式x=1,y=x+3/2 的值是(C)。

A. 1B. 2C. 2.0D. 2.512、设a=1,b=2,c=3,d=4,则表达式:a<b? a : c<d? a : d的结果为(D)。

C语言第三章习题带答案

C语言第三章习题带答案

练习3-1答案一、选择题1.在C语言库函数中,可以输出double型变量x值的函数是(D)。

A.getchar B.scanf C.putchar D.printf 2.执行语句:printf("The program\'s name is c:\\tools\book.txt");后输出是(D)。

A.The program's name is c:tools book.txtB.The program's name is c:\tools book.txtC.The program's name is c:\\tools book.txtD.The program's name is c:\toolook.txt3.以下程序的输出结果是(D)。

(注:□表示空格)main(){printf("\n*s1=%15s*","chinabeijing");printf("\n*s2=%-5s*","chi");}A.*s1=chinabeijing□□□*B.*s1=chinabeijing□□□*s2=**chi**s2=chi□□*C.*s1=*□□chinabeijing*D.*s1=□□□chinabeijing* *s2=□□chi**s2=chi□□*4.选择程序的运行结果,①是(B)、②是(B)、③是(D)、④是(C)。

#include<stdio.h>main(){int a=-10,b=-3;printf("%d\n",a%b);/*输出①*/printf("%d\n",a/b*b);/*输出②*/printf("%d\n",-a%b);/*输出③*/printf("%d\n",a-=b+++1);/*输出④*/}①A.-2B.-1C.0D.1②A.-10B.-9C.-8D.0③A.-2B.-1C.0D.1④A.-10B.-9C.-8D.-7 5.以下C程序正确的运行结果是(D)。

C语言程序设计第三章 (2)

C语言程序设计第三章 (2)
① 只有整型和字符型变量有“无符号”类型。 ② 注意以下的结果: unsigned short price =-1; printf(“%d \n”,price); 输出的结果为65535,为什么?
举例 int a=10; short b=100 int short b=100; unsigned int short b=100; long d=212365; int long d=212365; unsigned int long d=212365;
练习题
练习
• char c; 等价 • c=65; 是否等价于c= 'A' • printf(“%d %c”,c,c);输入的结果是多少呢?
65 A
注意:
• • • • • int a; char b; a=65; b=‘A’; 不等价,所占内存空间不同。 问变量a 的值和变量b的值是否等价。
练习题
price ?abc int name float name age 8ab year a%d 以上哪些是正确的标识符,哪些不是?
price name age year a b 都是 正确的标识符 ?abc int float 8ab a%d 不能是 标识符
练习题
下列选项中,不能用作标识符的是( )
设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数
A)(a+b)*h/2
ab 式_______________ h 2
计算结果不相符的是( ) B)(1/2)*(a+b)*h
B
C)(a+b)*h*1/2 D)h/2*(a+b)
2014-3-16
自加、自减运算符P53 自加运算(i++, ++i) 相同点:++i 和 i++的作用都等同于i=i+1 不同点:++i是先给i=i+1,然后再引用i的值。 i++是先引用i的值,然后i=i+1 自减运算(i- -, - -i) 相同点:- -i 和 i- -的作用都等同于i=i-1 不同点:- -i是先给i=i-1,然后再引用i的值。 i--是先引用i的值,然后i=i-1

C语言习题第三章

C语言习题第三章

第3章最简单的程序设计-顺序程序设计3.1选择题1.在下列选项中,不正确的赋值语句是( )。

(A)++t; (B)n1=(n2=(n3=0)); (C)k=i==j; (D)a=b+c=1;2.以下叙述中正确的是( )。

(A)用C程序实现的算法必须要有输入和输出操作(B)用C程序实现的算法可以没有输出但必须要输入(C)用C程序实现的算法可以没有输入但必须要有输出(D)用C程序实现的算法可以既没有输入也没有输出3.若变量已正确定义并赋值,下面符合C语言语法的表达式是( )。

(A) a:=b+1 (B) a=b=c+2 (C) int 18.5%3 (D) a=a+7=c+b4.若变量a、i已正确定义,且i已正确赋值,合法的语句是( )。

(A) a==1 (B) ++i; (C) a=a++=5; (D) a=int(i);5.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是()。

(A)6.500000(B)6(C)5.500000(D)6.0000006.C语言中用于结构化程序设计的三种基本结构是( )。

(A)顺序结构、选择结构、循环结构(B)if、switch、break(C)for、while、do-while(D)if、for、continue7.以下选项中非法的表达式是( )。

(A)0<=x<100(B)i=j==0(C)(char)(65+3) (D)x+1=x+18.有以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是( )。

(A)a=a+b=b++ (B)w%((int)a+b)(C)(c+w)%(int)a (D)w=a==b;9.以下选项中,与k=n++完全等价的表达式是()。

(A)k=n,n=n+1(B)n=n+1,k=n(C)k=++n(D)k+=n+110.以下叙述中错误的是( )。

c语言教学第三章

c语言教学第三章

下一页 返回
【例 3−6】已知三角形的三个边长,求三角形的面积



#include "stdio.h" #include <math.h> main() { int a,b,c; float s,area; printf("请输入三角形三条边"); scanf("%d,%d,%d",&a,&b,&c); s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf("三角形的面积=%8.3f\n",area); }

上一页 下一页 返回
3.2

数据的输入和输出


【例 3−3】通过下面程序,观察 printf()的输出效果。 #include "stdio.h" main() { int a=12; float fx=12.58; printf("a=%5d\ta=%-5d\n",a,a printf("fx=%f\tfx=%7.2f\tfx=%-7.2f\n",fx,fx,fx); printf("fx=%e\tfx=%12.2e\tfx=%-12.2e\n\n\n",fx,fx,fx); } 程序输出结果为
上一页 下一页 返回
1、 以下程序的输出结果是 A) 0 B) 1 C) 3 \n D)不确定的值 main() { int x=10,y=3; printf("%d\\n", y=x/y); } 答案:C 2、 若变量已正确说明为int类型,要给a、b、c输入数据,以 下不正确的输入语句是 A) read(a,b,c); B) scanf("%d%d%d",a,b,c); C) scanf("%D%D%D",&a,&b,&c); D) scanf("%d%d%d",&a,&b,&c); 答案:D

C语言程序设计 第3章 习题

C语言程序设计 第3章 习题

D. '\72'
(4)C 语言中的基本类型包括( )
A. 整型、实型、逻辑型
B. 整型、实型、逻辑型、字符型
C. 整型、逻辑型、字符型
D. 整型、实型、字符型
(5)以下所列的 C 语言常量中,错误的是( )
A. 'abc' B. "12`12" C. "0"
D. ""
(6)以下有关 C 语言标识符的描述中,正确的是( )
5. 请写出下面程序的输出结果: main ( ) { char c1='a', c2='b' ,c3='c' , c4='\110',c5 ; c5=c4+1; printf("a%cb%cc\t\abc\n",c1,c2,c3); printf("%c%c\n",c4,c5); }
6. 分析以下程序的功能: # include <stdio.h> main ( ) { char ch; scanf("%c",&ch); printf("%c%c%c\n",ch-1,ch,ch+1); }
(13)若有以下定义和语句,则输出结果是( ) char c1='b',c2='e'; printf("%d,%c",c2-c1,c2-'a'+'A') ; A.2,M B. 3,E C. 2,E D.输出项对应的格式控制一致,输出结果不确定
(14)为使下列程序段输出“123,456,78”,要由键盘输入数据,正确的输入是( ) int i,j,k; scanf("%d,3%d%d", &i,&j,&k); printf("%d,%d,%d\n", i,j,k) ; A.12345678 B.123,456,78 C.123,45678 D.123,*45678

C语言程序设计教程第三章练习题题目

C语言程序设计教程第三章练习题题目

单选题1、若定义a=3,b=4,执行printf(“%d, %d”,(a,b),(b,a));的输出结果为()。

,4,3,3,42、如果要求在if后的判断条件是a不等于0,则下列选项中能正确表达这一关系的是()。

<>0B.!a=03、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前尚未配对的最近的ifD.同一行上的if4、有定义int t = 0;则有循环while(t=1){…},则下列关于while循环语句的描述中正确的是()。

A.循环控制表达式的值为0B.循环控制表达式的值为1C.循环控制表达式的值不合法D.以上说法都不对5、若有定义:int x ,i;则下列for循环语句:for(i = 0,x = 0; i<= 9 && x!=876;i++)scanf(“%d”,&x);下列选项中,描述正确的是()A.最多执行10次B.最多执行9次C.是无限循环D.循环体一次也不执行6、关于下面的for循环语句int i,k;for(i = 0,k = -1;k = 1;i++,k++) printf(“*****”);下列选项中,描述正确的是()A.判断循环结束的条件非法B.是无限循环C.只循环一次D.一次也不循环7、C语言程序的三种基本结构是()。

A.顺序结构,选择结构,循环结构B.递归结构,循环结构,转移结构C.嵌套结构,递归结构,顺序结构D.循环结构,转移结构,顺序结构8、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。

<>0B.!a=09、两次运行下面的程序,如果从键盘上分别输入6和4,那么输出结果是()。

void main(){int x;scanf("%d",&x);if (x++ > 5)printf("%d",x);elseprintf("%d\n",x--);}和5和3和4和410、运行以下程序后,如果从键盘上输入china#,那么输出结果为()。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、下列if语句中,不正确的是()A.if (x<y)scanf ("%d",&x) else scanf ("%d", &y); B.if (x<y);C.if (x==y)x+=y;D.if (x<y){x++;y++;}2、若有int x,y;,执行程序段:()for(x=1,y=1;y<50;y++){if (x>=10)break;if(x%2==1){x+=5;continue;}x-=3;} 变量x的值最终为()A)11 B)12 C)13 D)103、若有int x=3;,执行程序段:do {printf("%3d",x-=2);}while(!(--x));输出的结果是()A)1 3 B)1 -1 C)1 -2 D)1 -34、有如下程序段:int x=1,y=1;int m,n;m=n=1;switch (m) {case 0:x=x*2;case 1:{switch (n){case 1:x=x*2;case 2:y=y*2;break;case 3:x++;}}case 2:x++;y++;case 3:x*=2;y*=2;break;default:x++;y++;执行完成后,x和y的值分别是()。

A)x=6 y=6 B)x=2 y=1 C)x=2 y=2 D)x=7 y=75、以下描述不正确的是A.使用while和do-while循环时,循环变量初始化的操作应在循环体语句之前完成B.while循环是先判断表达式,后执行循环语句C.do-while 和for循环均是先执行循环语句,后判断表达式D.for、while 和do-while循环中的循环体均可以由空语句构成6、当a=1,b=3,c=5,d=4时,执行完下面的一段程序后x的值为()if(a<b)if(c<d) x=1;elseif(a<c)if(b<d) x=2;else x=3;else x=6;else x=7;A.1B.2C.3D.67、设i,j均为int类型的变量,则以下程序段中执行完成后,打印出的"OK"数是多少( ) for (i=5;i>0;--i){for(j=0;j<4;j++){ printf("%s","OK");}}A.20B. 24C. 25D. 308、下面有关for循环的正确描述是()A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在for循环中,不能用break语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来9、C语言中()A. 不能使用do-while语句构成的循环B. do-while语句构成的循环必须用break语句才能退出C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环10、C语言中while和do-while循环的主要区别是()A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句11、以下程序段:()int x=-1;{x=x*x;}while (!x);A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误12、下列语句段中不是死循环的是()A. i=100;while (1){i=i%100+1;if (i==20) break;}B. for (i=1;;i++)sum=sum+1;C. k=0;do{++k;} while (k<=0);D. s=3379;while (s++%2+3%2)s++;13、与以下程序段等价的是()while (a){if (b) continue;c;}A. while (a)B. while (c){ if (!b) c; } { if (!b) break; c; } C. while (c) D. while (a){ if (b) c; } { if (b) break; c; } 14、以下程序的输出结果是()#include <stdio.h>main(){int i;for (i=4;i<=10;i++){if (i%3==0) continue;printf(”i”);}}A. 45B. 457810C. 69D. 67891015、以下程序的输出结果是()#include <stdio.h>main(){int num=0;while (num<=2){num++;printf("%d\n",num);}}A. 1B. 1C. 1D. 12 2 23 3416,由以下while构成的循环,循环体执行的次数是int k=0;while ( k=1 ) k++;A) 有语法错,不能执行B) 一次也不执行C) 执行一次D) 无限次17,关于"while(条件表达式)循环体",以下叙述正确的是A) 循环体的执行次数总是比条件表达式的执行次数多一次B) 条件表达式的执行次数总是比循环体的执行次数多一次C) 条件表达式的执行次数与循环体的执行次数一样D) 条件表达式的执行次数与循环体的执行次数无关18,若要实现total=1+2+3+4+5求和,以下程序段错误的是A) int i=1,total=1;while(i<5){ total+=i;i+=1;}B) int i=1,total=0;while(i<=5){ total+=i;i+=1;}C) int i=0,total=0;while(i<5){ i+=1;total+=i;}D) int i=0,total=0;while(i<=5){ total+=i;i+=1;}19,#include <stdio.h>main(){ int i, sum;for( i=1; i<6; i++ ) sum+=i;printf("%d\n", sum);}程序运行后的输出结果是A) 随机值B) 0C) 15D) 16二、程序填空1、若有int i=5,j=0;则执行完语句if(j=0)i++;else i--;后,i的值为________________2、下列C语言程序运行后,a的值应为_________________int a=11;switch(a){case 9: a+=1;case 10: a+=2;case 11: a+=3;default: a+=4;}3、写出下面程序的运行结果。

#include<stdio.h>void main(){int x=15;while (x<20){x++;if (x/3!=0){x++;break;}else continue;}运行后X的值为______________4、若x是int型变量,以下程序的输出结果是_______________ for (x=3;x<6;x++)printf ((x%2)?("**%d"):( "##%d\n"),x);printf ("\n");5、以下程序的运行结果是__________________#include <stdio.h>main(){int s=0,k;for (k=7;k>=0;k--){switch(k){case 1:case 4:case 7: s++; break;case 2:case 3:case 6: break;case 0:case 5: s+=2; break;}}printf("%d\n",s);}6、以下程序的运行结果是__________________#include <stdio.h>main(){int i=1,s=3;do{s+=i++;if (s%7==0)continue;else++i;} while (s<15);printf("%d\n",i);}7、以下程序的运行结果是___________________ #include <stdio.h>main(){int i,j;for (i=4;i>=1;i--){printf("*");for (j=1;j<=4-i;j++)printf("*");printf("\n");}}输出结果:8、以下程序的运行结果是________________#include <stdio.h>main(){int i,j,k;for (i=1;i<=6;i++){for (j=1;j<=20-2*i;j++)printf("");for (k=1;k<=i;k++)printf("%d",i);printf("\n");}}输出结果:9、以下程序的运行结果是_________________#include <stdio.h>main(){int i,j,k;for (i=1;i<=6;i++){for (j=1;j<=20-3*i;j++)printf("");for (k=1;k<=i;k++)printf("%d",k);for (k=i-1;k>0;k--)printf("%d",k);printf("\n");}}10、以下程序的运行结果是__________________ #include <stdio.h>main(){int i,j,k;for (i=1;i<=4;i++){for (j=1;j<=20-3*i;j++)printf("");for (k=1;k<=2*i-1;k++)printf("*");printf("\n");}for (i=3;i>0;i--){for (j=1;j<=20-3*i;j++)printf("");for (k=1;k<=2*i-1;k++)printf("*");printf("\n");}}11,有以下程序:以下程序段中的变量已正确定义:for( i=0; i<4; i++,i++ )for( k=1; k<3; k++ ); printf("*" );程序段的输出结果是。

相关文档
最新文档