当前位置:文档之家› C语言第二章习题

C语言第二章习题

C语言第二章习题
C语言第二章习题

1. 以下叙述中错误的是( )。

A) 使用三种基本结构构成的程序只能解决简单问题

B) 结构化程序由顺序、分支、循环三种基本结构组成

C) C 语言是一种结构化程序设计语言

D) 结构化程序设计提倡模块化的设计方法

2. 以下可以将任意一个两位整数n 的个位数与十位数对换的表达式为( )

A) (n-n/10*10)*10+n/10

B) n-n/10*10+n/10

C) n/10+(n-n/10)

D) (n-n/10)*10+(n/10)

3. 以下叙述中错误的是

A) 算法正确的程序可以有零个输入

B) 算法正确的程序最终一定会结束

C) 算法正确的程序可以有零个输出

D) 算法正确的程序对于相同的输入一定有相同的结果

4. 若有定义int x , y;并已正确给变量赋值,则以下选项中与表达式(x —y) ? (x + + ) : (y

++)中的条件表达式(x-y) 等价的是( )。

A) (x —y<0||x —y>0)

B) (x —y<0)

C) (x —y>0)

D) (x —y = = 0)

5. 有以下程序

#in elude main ()

{ int a;

a = (in t)1.99*3;

prin tf("%d\n", a);

}

程序的运行结果是( )

A) 3

B) 5

C) 6

D) 结果不确定

6. 请选出合法的C语言赋值语句:( )

A) a=b=58 B) i++;

C) a=58,b=58 D) k=i nt(a+b)

7. 假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表

示代数式1/abc的表达式是:( )

A) 1/a*b*c

B) 1/(a*b*c)

C) 1/a/b/(float)c

D) 1.0/a/b/c

8. 请选出以下语句的输出结果:( )

prin tf("%d\n",strle n("\t\"\065\xff\n"));//srele n() 为求字符串长度的函数,

返回字节数。

A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出

9. 请选出以下语句的输出结果:( )

prin tf("%d\n",strle n("\xffff"));

A) 1 B) 2 C) 3 D)5

10. 有如下程序段,其输出结果是什么:(<。只>表示输出回车符)( ) mai n()

{int a=1,b=3,c=5;

if (c=a+b)

printf ("yes\n");

elsepri ntf(" no\n"); }

A) yes B) no C) yes\n D) no\n

11. 以下说法中正确的是()

A) C语言程序总是从第一个的函数开始执行

B) 在C语言程序中,要调用的函数必须在main()函数中定义

C) C语言程序总是从main()函数开始执行

D) C语言程序中的main()函数必须放在程序的开始部分

12. 逻辑运算符两侧运算对象的数据类型()

A) 只能是0和1

B) 只能是0或非0正数

C) 只能是整型或字符型数据

D) 可以是任何类型的数据

13. 以下叙述中错误的是()

A) C语句必须以分号结束

B) 复合语句在语法上被看作一条语句

C) 空语句出现在任何位置都不会影响程序运行

D) 赋值表达式末尾加分号就构成赋值语句

14. 已知a=5,b=6,c=7,d=8,m=2,n=2 ,执行(m=a>b)&&(n=c

A) 2

B) 0

C) 1

D) -1

15. 设变量已正确定义并赋值,以下正确的表达式是()

A) x = y+ z + 5,++ y

B) i nt(15.8%5)

C) x = y*5 = x+ z

D) x = 25%5.0

16. 若有定义语句:int x = 10;,则表达式x — = x + x的值为()

A) 0

B) —20

C) —10

D) 10

17. 有以下程序

#i nclude

mai n()

{ int c, d;

c = 10A3;

d = 10+3;

printf("%d,%d\n", c, d);

}

程序运行后的输出结果是( )

A) 13,13

B) 9,13

C) 10,13

D) 103,13

18. 若有定义:int a=7;float x=2.5,y=4.7; 则表达式:x+a%3*(int)(x+y)%2/4 的值是:( )

A) 2.500000

B) 2.7500000

C) 3.500000

D) 0.000000

19. 已知x=43,ch= ' A' ,y=0,则表达式(x>=y&&ch< ' B' &&!y)的值是:( )

A) 0

B) 语法错误

C) 1

D) ” 假”

20. 若有以下定义和语句:

Inta,b;

printf( “ %d ,(a=2)&&(b= -2));

则输出的结果是()

A)无输出B)结果不确定C)1 D)-1

21. 以下语句的输出结果是()

int a=2,b=3;

printf(a>b? ” ***a=%d” : ” ###b=%d ,a,b);

A)输出结果格式错误B)***a=2

C)###b=2 D)###b=3

22. 下列运算符中,结合方向为自左向右的是( )

(A)?: ( B), ( C + = ( D) + +

23. 设x、y、z均为int型变量,则执行以下语句后,x、y、z的值为()

x=1;y=0;z=2; y++&&++z||++x;

A)2 、1、3 B )2、0、3 C)2、1、3 D)2、1、2

24. 若有以下定义和语句:

int y=10;

y+=y-=y-y;

则y的值是()

A)10 B )20 C)30 D)40

25. 下列表达式

中,不满足”当x的值为偶数时值为真,为奇数时值为假”的要求的是()

A)x%2==0 B)!x%2!=0

C)(x/2*2-x)==0 D)!(x%2)==0

26. 以下能正确定义整型变量a,b和c并为其赋初值1的语句是()

A) int a=b=c=1; B) in ta,b,c=1; C) a=b=c=1; D) int a=1,b=1,c=1;

27. 字符串"\t\065\xf\n" 中的字符数(不算’\0 ')为()

A) 5 B) 14 C) 8 D) 4

28. 若有以下定义:

chara;i nt b;

float c;double d;

则表达式a*b+d-c值的类型为()

A) float B) int C) char( 字符型)D)

double

29. 在C语言中,运算对象必须是整型数的运算符是()

A) % B) / C) % 和\ D) **

30. 以下选项中,当x为大于1的奇数时,值为0的表达式是()

A) x%2==1 1 为真,0 为假B) x/2 C) x%2!=0 D) x%2==0

31. 有以下程序

main ()

{

char a='a',b;

prin tf("%c,",++a);

prin tf("%c\n",b=a++);

}

程序运行后的输出结果是()

A) b,b B) b,c C) a,b D) a,c

32. 写出下面程序的值.

#in clude

void mai n()

{

int a=10,b=4;

prin tf("%d \n",a%=(b%=3));

}

A) 0 B) 1 C) 10 D)2

注连续赋值操作从右向左进行

33. 设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为

0的是()

A.方T&83)?

B. a<=b

C. a||b+c&&b-c

D. !((a

34. 请选出可用作C语言用户标识符的一组标识符:

A) void B) a3_b3 C) For D) 2a

defi ne _123 -abc DO

WORD IF Case sizeof

35.若已定义x 和y为double类型,则表达式:x=1,y=x+32的值是:

A)1 B)2

C)2.0 D)2.5

36.有如下程序

mai n()

{ int y=3,x=3,z=1;

printf( %d %d\n ”(++x,y++),z+2);

}

运行该程序的输出结果是:

A) 3 4 B) 4 2 C) 4 3 D) 3 3

37?当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是:

A)c=b=a; B)(a=c) II (b=c);

C)(a=c)&&(b=c); D)a=c=b;

38.在以下一组运算符中,优先级最高的运算符是:

A)<= C)% B)= D) &&

39.有以下程序

#i nclude

main ()

{ int a,b,c=246;

a=c/100%9;

b=(-1)&&(-1);

prin

tf("%d,%d\n",a,b);

}

输出结果是:

A) 2,1 B) 3,2

C) 4,3 D) 2,-1

40.若要求在if后一对圆括号中表示

A)a<>0

C)a=0 a不等于0的关系,则能正确表示这一关系的表达式为:

B)!a

D)a

41、以下选项中,能用作数值常量的是___________

(A) 0115 (B) 0118 (C) 115L (D) 1.5e1.5

42、下列叙述中错误的是_______ 。

(A) —个C语言程序只能实现一种算法

(B)一个C函数可以单独作为一个C 程序文件存在

(C)C程序可以由一个或多个函数组成

(D)C程序可以由多个程序文件组成

43、设变量已正确定义并赋值,以下正确的表达式是___________ 。

(A) int(15.8%5) ( B) x=y+z+5, ++y (C) x=25%5.0 ( D) x=y*5=x+z

44、以下叙述中错误的是______________ 。

(A) C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 (B)

C 语言源程序经编译后生成后缀为 .obj 的目标程序

(C)

用C 语言编写的程序称为源程序,它以 A SCII 代码形

式存放在一个文本文件中

(D) C 程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

45、按照C 语言规定的用户标识符命名规则,不能出现在标识符中的是 ___________________ 。 ( A )大 写字母 (B )下划线

(C )数字字符

(D )连接符

46、以下选项中,合法的一组 C 语言数值常量是 ___________ 。

(A ) 0x8A 10,000 3.e5 (B )

.177 4e1.5 Oabc ( C ) 028 .5e-3 -Oxf ( D ) 12. 0Xa23 4.5e0 7、

47以下选项中不合法的标识符是 ____________

(A ) print ( B ) FOR ( C ) &&a ( D ) _00 48、若有定义:double a=22;int i=0,k=18;,则不符合 (A ) i=(a+k)<=(i+k); (B ) a=a++,i++; (C ) i=a%11; 49、设有定义:int x=2;,以下表达式中,值不为 50、有以下程序

#i nclude

main () { int x, y, z; x=y=1;

z=x++,y++,++y;

prin tf("%d,%d,%d\n",x,y,z); } 程序运行后的输出结果是 (A ) 2,3,3 ( B ) 2,2,1

(C ) 2,3,2 ( D ) 2,3,1

填空题

1。 函数体由符号 __ 开始,用符号 ____ 结束。函数体的前面是 ___ 部分,其后 是 ____ 部分。

2。 C 语言中的标识符可分为 ______ 、 ___ 、和预定义标识符三类。

C 语言规定的赋值语句是 (D) i=!a; (A) x*=(1+x)

( B ) x*=x+1

(C ) x++,2*x ( D ) 2*x, x+=2

6的是

C语言循环习题答案

循环习题集锦 一.选择题 1.for(i=0;i<10;i++);结束后,i的值是;(10) A 9 B 10 C 11 D 12 2.下面程序的循环次数是:(D) int k=0; while(k<10) {if(k<1) continue; if(k==5) break; k++; } A. 5 B 6 C 4 D 死循环,不能确定循环次数3.下面程序的输出结果是(10) main() { int s,k; for(s=1,k=2;k<5;k++) s+=k; printf(“%d\n”,s); } A 1 B 9 C 10 D 15 4.要使下面程序输出10个整数,则在下画线处填入正确的数是:(c)

for(i=0;i<= ;) printf(“%d\n”,i+=2); A 9 B 10 C 18 D 20 5.运行下面程序:(B) main() { int i=10,j=0; do { j=j+i; i--; }while(i>5); printf(“%d\n”,j); } 输出结果是: A 45 B 40 C 34 D 55 6.运行下面程序 #include “stdio.h” main() { int k=0,a=1; while(k<10) { for( ; ;) { if((k%10)==0)

break; else k--; } k+=11; a+=k; } printf(“%d %d\n”,k,a); } 则输出的结果是(C) A 21 32 B 21 33 C 11 12 D 10 11 7.以下叙述正确的是:(D) A.do---while语句构成的循环不能用其他语句构成的循环来代替。B.do---while语句构成的循环只能用break语句退出。 C.用do---while语句构成的循环,在while 后的表达式为非零时结束循环。 D.用do---while语句构成的循环,在while后的表达式为零时结束循环。 8.有如下程序: main() { int x=3; do{

数据结构与算法C语言版期末复习题

《数据结构与算法》期末复习题 一、选择题。 1.在数据结构中,从逻辑上可以把数据结构分为 C 。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指 A 。 A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A.逻辑B.存储C.逻辑和存储D.物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。 A.数据的处理方法B.数据元素的类型 C.数据元素之间的关系D.数据的存储方法 5.在决定选取何种存储结构时,一般不考虑 A 。 A.各结点的值如何B.结点个数的多少 C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是 D 。 A.数据项是数据的基本单位 B.数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。 (1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度B.正确性和简明性 C.可读性和文档性D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是O(n2) 。 s =0; for( I =0; i

c语言程序设计第二章课后参考答案

第二章:C程序的基本结构 一、单项选择题 1、以下不是C语言的特点的是________。 A)语言的表达能力强B)语言定义严格 C)数据结构系统化 D)控制流程结构化 2、TC编译系统提供了对C程序的编辑、编译、连接和运行环境,以下可以不在该环境下进行的环节是________。 A)编辑和编译 B)编译和连接 C)连接和运行D)编辑和运行 3、以下不是二进制代码文件是________。 A)标准库文件 B)目标文件C)源程序文件 D)可执行文件 4、下面个选项组中,均属于C语言关键字的一组是________。 A)auto,enum,include B)switch,typedef,continue C)signed,union,scanf D)if,struct,type 5、下面四组字符串中,都可以用作C语言标识符的是________。 A)print B)I \am C)signed D)if _maf scanf 3mf ty_pr mx_2d mx_ a.f x1# aMb6 AMB A&B 5XY 6、以下不属于流程控制语句的是_________。 A)表达式语句 B)选择语句 C)循环语句 D)转移语句 7、下面描述中,不正确的是________。 A)C语言的函数体由一系列语句和注释组成。 B)注释内容不能单独写在一行上。 C)C程序的函数说明部分包括对函数名、函数类型、形式参数等的定义和说明。 D)scanf和printf是标准库函数而不是输入和输出语句。 8、下面描述中,正确的是________。 A)主函数的花括号必须有,而子函数中的花括号是可有可无的。 B)一个C程序行只能写一个语句。 C)主函数是程序启动时的唯一入口。 D)函数体包含了函数说明部分。 二、填空题 1、一个完整的C程序至少要有一个________函数。(主函数) 2、标准库函数不是C语言本身的组成部分,它是由__________提供的功能函数。(编译系统) 3、C语言是以________为基本单位、整个程序由________组成。(函数函数) 4、常用的标准库函数有数学函数、字符函数和字符串函数、动态分配函数、随机函数和________函数等几个大类。(输入输出) 5、标准库函数存放在________文件中。(函数库) 6、目标程序文件的扩展名是________。(.obj) 7、程序连接过程是将目标程序、________或其它目标程序连接装配成可执行文件。(库函数) 8、因为源程序是________类型文件,所以用具有文本编辑功能的任何编辑软件程序完成编辑。(文本)

C语言循环例题

1. //输出a和b之间的所有素数, 10个素数为一行输出 #include #include #include int panDuanSuShu(int x) //判断x是否是素数 { int i,m,flag; //flag为1表示是素数,flag为0表示不是素数 m=(int)sqrt(x); if(x==2) { flag=1;} else { for(i=2;i<=m;i++) { if(x%i==0) { flag=0; break; } } if(i>m) { flag=1; } } return flag; } int shuChuSuShu(int a,int b) { int i,k=0;//i是循环变量,k表示已经输出了k个素数 for(i=a;i<=b;i++) { if(panDuanSuShu(i)==1) { printf("%6d",i); k++; if(k%10==0) { printf("\n");} } } printf("\n"); return k; } int main() { int a,b,t;

while(a<2||b<2) { printf("重新输入n和m:"); scanf("%d%d",&a,&b); } if(a>b) { t=a;a=b;b=t; } printf("%d和%d之间共有%d个素数",a,b,shuChuSuShu(a,b)); printf("\n\n"); return 0; } 2. //用户输入2个数,输出这2个数之间所有的超素数 //超素数(质数)的概念:7193是素数,719是素数,71是素数,7是素数,则7193是素数#include #include #include int isPrime(int n)//判断某数是否是素数 { int i,f,m=(int)sqrt(n); if(n==1) f=0; else { for(i=2;i<=m;i++) { if(n%i==0) break; } if(i>m) f=1; else f=0; } return f; } int supperPrime(int n)//判断某数是否是超素数 { int t=n; while(t>0) { if(isPrime(t)==1) t=t/10; else break; }

非常全的C语言常用算法

一、基本算法 1.交换(两量交换借助第三者) 例1、任意读入两个整数,将二者的值交换后输出。 main() {int a,b,t; scanf("%d%d",&a,&b); printf("%d,%d\n",a,b); t=a; a=b; b=t; printf("%d,%d\n",a,b);} 【解析】程序中加粗部分为算法的核心,如同交换两个杯子里的饮料,必须借助第三个空杯子。 假设输入的值分别为3、7,则第一行输出为3,7;第二行输出为7,3。 其中t为中间变量,起到“空杯子”的作用。 注意:三句赋值语句赋值号左右的各量之间的关系! 【应用】 例2、任意读入三个整数,然后按从小到大的顺序输出。 main() {int a,b,c,t; scanf("%d%d%d",&a,&b,&c); /*以下两个if语句使得a中存放的数最小*/ if(a>b){ t=a; a=b; b=t; } if(a>c){ t=a; a=c; c=t; } /*以下if语句使得b中存放的数次小*/ if(b>c) { t=b; b=c; c=t; } printf("%d,%d,%d\n",a,b,c);} 2.累加 累加算法的要领是形如“s=s+A”的累加式,此式必须出现在循环中才能被反复执行,从而实现累加功能。“A”通常是有规律变化的表达式,s在进入循环前必须获得合适的初值,通常为0。例1、求1+2+3+……+100的和。 main() {int i,s; s=0; i=1; while(i<=100) {s=s+i; /*累加式*/ i=i+1; /*特殊的累加式*/ } printf("1+2+3+...+100=%d\n",s);} 【解析】程序中加粗部分为累加式的典型形式,赋值号左右都出现的变量称为累加器,其中“i = i + 1”为特殊的累加式,每次累加的值为1,这样的累加器又称为计数器。

C语言PTA平台习题与答案

第二章作业 1 ①.本题要求编写程序,输出一个短句“Welcome to You!” #include int main() { printf("Welcome to You!\n"); return 0; } ②.本题要求编写程序,计算华氏温度100°F对应的摄氏温度。计算公式:C=5×(F?32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型。 fahr = 100, celsius = 计算所得摄氏温度的整数值 #include int main() { int fahr = 100; int celsius = 5*(fahr-32)/9; printf("fahr = 100,celsius = %d\n",celsius); return 0; } 第二章作业2 ①求整数均值本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围内。 在一行中按照格式“Sum = 和; Average = 平均值”顺序输出和与平均值,其中平均值精确到小数点后一位 #include int main() { int a,b,c,d,Sum; double Average; scanf("%d %d %d %d",&a,&b,&c,&d); Sum = a + b + c + d; Average = (a + b + c + d)/4.0; printf("Sum = %d,Average = %.1f\n",Sum,Average); return 0; } ②整数四则运算本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内 输入在一行中给出2个正整数A和B。 在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 #include int main() { int a; int b; scanf("%d %d",&a,&b); printf("%d + %d = %d\n",a,b,a+b); printf("%d - %d = %d\n",a,b,a-b); printf("%d * %d = %d\n",a,b,a*b);

第二章 C语言习题

第二单元顺序程序设计 一.选择题 1.若m为float型变量,则执行以下语句后的输出为。 m=1234.123; printf("%-8.3f\n",m); printf("%10.3f\n",m); A. 1234.123 B. 1234.123 C. 1234.123 D. -1234.123 1234.123 1234.123 1234.123 001234.123 2.若x,y,z均为int型变量,则执行以下语句后的输出为。 x=(y=(z=10)+5)-5; printf("x=%d,y=%d,z=%d\n",x,y,z); y=(z=x=0,x+10); printf("x=%d,y=%d,z=%d\n",x,y,z); A. X=10,Y=15,Z=10 B. X=10,Y=10,Z=10 X=0,Y=10,Z=0 X=0,Y=10,Z=10 C. X=10,Y=15,Z=10 D. X=10,Y=10,Z=10 X=10,Y=10,Z=0 X=0,Y=10,Z=0 3.若x是int型变量,y是float型变量,所用的scanf调用语句格式为: scanf("x=%d,y=%f",&x,&y); 则为了将数据10和66.6分别赋给x和y,正确的输入应是:。 A. x=10,y=66.6<回车> B. 10 66.6<回车> C. 10<回车>66.6<回车> D. x=10<回车>y=66.6<回车> 4.已知有变量定义:int a;char c;用scanf(“%d%c”,&a,&c);语句给a和c输入数据,使30 存入a,字符‘b’存入c,则正确的输入是:。 A. 30’b’<回车> B. 30 b<回车> C. 30<回车>b<回车> D. 30b<回车> 5.已知有变量定义:double x;long a; 要给a和x输入数据,正确的输入语句是。若要输出a 和x的值,正确的输出语句。 A. scanf(“%d%f”,&a,&x); B. scanf(“%ld%f”,&a,&x); printf(“%d,%f”,a,x); printf(“%ld,%f”,a,x); C. scanf(“%ld%lf”,&a,&x); D. scanf(“%ld%lf”,&a,&x); printf(“%ld,%lf”,a,x); printf(“%ld,%f”,a,x); 6.若有定义double x=1,y;则以下的语句执行的结果是。 y=x+3/2; printf(“%f”,y); A.2.500000 B.2.5 C.2.000000 D.2 7.若a为整型变量,则以下语句。

(完整版)C语言循环结构练习题带答案

第5章循环结构程序设计 练习题 1. 单项选择题 (1)语句while (!e);中的条件!e等价于 A 。 A. e==0 B. e!=1 C. e!=0 D. ~e (2)下面有关for循环的正确描述是 D 。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在for循环中,不能用break语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中 D 。 A. 不能使用do-while语句构成的循环 B. do-while语句构成的循环必须用break语句才能退出 C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环 (4)C语言中while和do-while循环的主要区别是 A 。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 (5)以下程序段 C 。 int x=-1; do { x=x*x; } while (!x); A. 是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误 (6)下列语句段中不是死循环的是__C__。

第5章循环结构程序设计35 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++; (7)与以下程序段等价的是__A__。 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; } (8)以下程序的输出结果是_B___。 #include main() { int i; for (i=4;i<=10;i++) { if (i%3==0) continue; COUT<

C语言经典算法100例(1---30)

2008-02-18 18:48 【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000)

C语言详解(第五版)第二章程序设计项目答案

C语言详解(第五版)程序设计项目答案第二章 1.编写一个程序,以每英里0.35的费率计算一个售货员的里程偿还金。程序中要求与用户进行如下方式的交互。 #include #include int main(void) {float mile_1,mile_2,miles,consume,payment; printf("MILEAGE REIMBURSEMENT CALCULATOR\n"); printf("Enter begainning odometer reading>\n"); scanf("%f",&mile_1); printf("Enter endding odometer reading>\n"); scanf("%f",&mile_2); printf("Enter consume per mile>\n"); scanf("%f",&consume); miles=mile_2-mile_1; payment=miles*consume; printf("You traveled%f miles.At%f per mile,your reimbursement is%f",miles,consume,payment); system("pause"); return(0); } 2.编写一个程序,用于辅助设计水力发电大坝。提示用户输入大坝高度,以及水流量。如果水由重力所做的功有90%转化为电能,测算会有多少M瓦的功率。 #include #include int main(void) {double density,weight,gravitational_acceleration, efficiency,height,water_flow_rate,work,electricity_power; printf("Please type in the density of water>"); scanf("%lf",&density); printf("Please type in the gravitational_acceleration>"); scanf("%lf",&gravitational_acceleration); printf("Please type in the height of the water>"); scanf("%lf",&height); printf("Please type in the efficiency of the transformation\nfrom water to electricity>"); scanf("%lf",&efficiency); printf("Please type in the water_flow_rate>"); scanf("%lf",&water_flow_rate); weight=density*water_flow_rate; work=weight*height*gravitational_acceleration; electricity_power=work*efficiency/1000000; printf("The electric energy production is%fW",electricity_power); system("pause"); return0; }

C语言常用算法集合

1.定积分近似计算: /*梯形法*/ double integral(double a,double b,long n) { long i;double s,h,x; h=(b-a)/n; s=h*(f(a)+f(b))/2; x=a; for(i=1;i

} 3.素数的判断: /*方法一*/ for (t=1,i=2;i0;n/=10) k=10*k+n%10; return k; } /*求回文数*/ int f(long n) { long k,m=n; for(k=0;n>0;n/=10) k=10*k+n%10; if(m==k) return 1; return 0; } /*求整数位数*/ int f(long n) { int count; for(count=0;n>0;n/=10) count++; return count; }

C语言第二章习题带答案

1.C语言中的简单数据类型包括( B )。 A.整型、实型、逻辑型B.整型、实型、字符型 C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的short类型的常数是( A )。 A.32768 B.0 C.037 D.0Xaf 3.下列常数中不能作为C的常量的是( D )。 A.0x45 B.2.5e-2 C.3e2 D.0582 4.short类型的数据长度为2个字节,则unsigned short类型数据的取值范围是( B )。 A.0至255 B.0~65535 C.-32768~32767 D.-256~255 5.下面4个选项中,均是合法转义字符的选项是( A )。 A.'\'','\\','\n' B.'\','\017','\' C.'\018','\f','xab' D.'\\0,'101','x1f 6.在C语言中,数字029是一个( D )。 A.八进制数B.十六进制数 C.十进制数D.非法数 7.下列可以正确表示字符型常数的是( B )。 A."a" B.'\t' C."\n" D.297 8.以下( C )是错误的转义字符。 A.'\\' B.'\'' C.'\81' D.'\0' 9.C语言中short类型的变量a的值为-8,则a在内存中的存储形式是( A )。 A.1111 1111 1111 1000 B.100000000000 1000 C.000000000000 1000 D.1111 1111 1111 0111 10.将字符g赋给字符变量c,正确的表达式是( C )。 A.c="g" B.c=101 C.c='\147' D.c='0147' 11.字符串"\\\22a,0\n"的长度是( C )。 A.8 B.7 C.6 D.5 12.为求出s=10!的值,则变量s的类型应当为( C )。 A.short B.unsigned short C.long D.以上三种类型均可13.已知:unsigned short x=65535;,则执行以下语句输出是( D )。 printf("%d\n", x); A.65535 B.1 C.无定值D.-1 14.下面4个选项中,均是合法整型常量的选项是( A )。 A.160,-0xffff,011 B.-0xcdf,01a,0xe C.-01,986,012,0668 D.-0x48a,2e5,0x 15.下面4个选项中,均是不合法的整型常量的选项是( D )。 A.--0f1,-0xffff,0011 B.-0Xcdf,01a,0xe C.-018,999,5e2 D.-0x48eg,-068,03f 16.下面4个选项中,均是合法浮点数的选项是( B )。 A.+1e+1,5e-9.4,03e2 B.-.60,12e-4,-8e5 C.123e,1.2e-.4,+2e-1 D.-e3,.8e-4,5.e-0

C语言循环结构练习题带答案.doc

第 5 章循环结构程序 设计 练习题 1.单项选择题 ( 1)语句 while (!e);中的条件!e等价于A。 A. e==0 B. e!=1 C. e!=0 D. ~e ( 2)下面有关for循环的正确描述是D。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句,后判定表达式 C. 在 for循环中,不能用break 语句跳出循环体 D. for循环体语句中,可以包含多条语句,但要用花括号括起来 (3)C语言中D。 A.不能使用do-while语句构成的循环 B. do-while 语句构成的循环必须用break 语句才能退出 C. do-while 语句构成的循环,当while 语句中的表达式值为非零时结束循环 D. do-while 语句构成的循环,当while 语句中的表达式值为零时结束循环 ( 4) C 语言中 while 和 do-while 循环的主要区别是A 。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 ( 5)以下程序段C。

int x=-1; do { x=x*x; } while (!x); A.是死循环 B. 循环执行二次 C. 循环执行一次 D. 有语法错误( 6)下列语句段中不是死循环的是__C__。 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++;

最新C语言常用算法集合汇总

C语言常用算法集合

1.定积分近似计算: /*梯形法*/ double integral(double a,double b,long n) { long i;double s,h,x; h=(b-a)/n; s=h*(f(a)+f(b))/2; x=a; for(i=1;i

if(n==1||n==2) *s=1; else{ fib(n-1,&f1); fib(n-2,&f2); *s=f1+f2; } } 3.素数的判断: /*方法一*/ for (t=1,i=2;i0;n/=10) k=10*k+n%10; return k; } /*求回文数*/

C语言第二章习题

1.以下叙述中错误的是( )。 A) 使用三种基本结构构成的程序只能解决简单问题 B) 结构化程序由顺序、分支、循环三种基本结构组成 C) C语言是一种结构化程序设计语言 D) 结构化程序设计提倡模块化的设计方法 2.以下可以将任意一个两位整数n的个位数与十位数对换的表达式为() A) (n-n/10*10)*10+n/10 B) n-n/10*10+n/10 C) n/10+(n-n/10) D) (n-n/10)*10+(n/10) 3.以下叙述中错误的是 A) 算法正确的程序可以有零个输入 B) 算法正确的程序最终一定会结束 C) 算法正确的程序可以有零个输出 D) 算法正确的程序对于相同的输入一定有相同的结果 4.若有定义int x,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) : (y ++)中的条件表达式(x-y) 等价的是( )。 A) (x-y<0||x-y>0) B) (x-y<0) C) (x-y>0) D) (x-y==0) 5.有以下程序

—#include main() { int a; a = (int)1.99*3; printf("%d\n", a); } 程序的运行结果是() A) 3 B) 5 C) 6 D) 结果不确定 6.请选出合法的C语言赋值语句:() A) a=b=58 B) i++; C) a=58,b=58 D) k=int(a+b) 7.假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表 示代数式 1/abc 的表达式是:() A) 1/a*b*c B) 1/(a*b*c) C) 1/a/b/(float)c D) 1.0/a/b/c 8.请选出以下语句的输出结果:() printf("%d\n",strlen("\t\"\065\xff\n"));//srelen()为求字符串长度的函数,返回字节数。

c语言第二章习题

第二章练习题 一、填空题 1、在C语言中的实型变量分为两种类型,它们是float型和()型。 2、若有定义:char c='\010';则变量c中包含的字符个数为() 3、已知字母a的ASCII码为十进制数97,且设ch为整型变量,则表达式ch='a'+'8'-'3'的值为() 4、在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为()个;一个int型数据在内存中所占的字节数为()个。 5、在C语言中,表示逻辑“假”值用数字()表示。 6、C语言中的标识符只能由字母、数字和()三种字符组成。 7、表达式8/4*(int)(2.5)/(int)(1.25*(3.7+2.3))的值为() 8、整型常量即整常数。可用三种形式表示:十进制整数、八进制整数以()开头、十六进制整数以()开关(注:请用小写字母) 9、请将75写成C语言八进制和十六进制表示(),()。 10、若有定义:int m=5,y=2;则计算表达式y+=y-=m*=y后的y值是() 11、若a是int型变量,则表达式(a=4*5,a*2),a+6的值为()。 12、若a,b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为(),b值为(),c值为()。 13、若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为() 14、若a是int型变量,则计算表达式a=25/3%3 后a的值为() 15、若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为(),n的值为() 16、若有定义:int b=7;float a=2.5,c=4.7;则下面表达式的值为() a+(int)(b/3*(int)(a+c)/2)%4 17、若有以下定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为()(float)(a+b)/2+(int)x%(int)y 18、若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为() (x+y)%2+(int)a/(int)b 19、所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为() 20、若有定义:int e=1,f=4,g=2;float m=11.29,n=4.0,k;则计算赋值表达式k=(e+f)/g+sqrt(n*1.2/g+m)后k的值是() 21、若x为int型变量,则执行以下语句后x的值是()

C语言第二章习题带答案

练习2-1 答案选择题 1. C语言中的简单数据类型包括(B ) o A.整型、实型、逻辑型 B.整型、实型、字符型 C?整型、字符型、逻辑型 D.整型、实型、逻辑型、字符型 2. 在C语言中,错误的short类型的常数是(A )。 A. 32768 B. 0 C. 037 D. 0Xaf 3. 下列常数中不能作为C的常量的是(D ) o A. 0x45 B. -2 C. 3e2 D. 0582 4. short 类型的数据长度为2个字节,则unsigned short 类型数据的取值范围是( B) A. 0 至255 B. 0~65535 C. -32768~32767 D. -256~255 5. 下面4 个选项中,均是合法转义字符的选项是( A ) o A. '\'' ,'\\' ,'\n' B. '\' ,'\017' ,'\' C. '\018' ,'\f' ,'xab' D. '\\0 ,'101' ,'x1f 6. 在C语言中,数字029是一个(D ) o A.八进制数B?十六进制数C.十进制数 D.非法数 7.下列可以正确表示字符型常数的是( B ) o A."a" B.'\t' C."\n" D.297 8. 以下(C)是错误的转义字符。 9. C语言中short类型的变量a的值为-8,则a在内存中的存储形式是(A ) 10. 将字符g赋给字符变量c,正确的表达式是(C) o A.c="g" B.c=101 C.c='\ 1 47' 11.字符串"\\\22a,0\n" 的长度是( C ) o A.8 B.7 C.6 12.为求出s=10!的值,则变量s的类型应当为(C) o A.short B.unsigned short C.long 13.已知:unsigned short x=65535; ,则执行以下语句输出是( D) o printf("%d\n", x) ; A. 65535 B. 1 C.无定值 D. -1 14.下面4个选项中,均是合法整型常量的选项是( A ) o A.160,-0xffff ,011 B.-0xcdf ,01a,0xe C.-01 ,986,012,0668 D.-0x48a,2e5,0x 15.下面4个选项中,均是不合法的整型常量的选项是( D ) o A .--0f1 ,-0xffff ,0011 B.-0Xcdf ,01a,0xe C .-018,999,5e2 D.-0x48eg ,-068 , 03f 16.下面4个选项中,均是合法浮点数的选项是( B ) A.+1e+1,,03e2 B.,12e-4 ,-8e5 A.'\\' B.'\'' C.'\81' D.'\0' A.1111 1111 1111 1000 B.1000 C.000000000000 1000 D.1111 1111 1111 0111 D.c='0147' D.5 D.以上三种类型均

C语言第二章习题带答案

练习2-1答案 选择题 1.C语言中的简单数据类型包括( B )。 A.整型、实型、逻辑型B.整型、实型、字符型 C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.在C语言中,错误的short类型的常数是( A )。 A.32768 B.0 C.037 D.0Xaf 3.下列常数中不能作为C的常量的是( D )。 A.0x45 B.-2 C.3e2 D.0582 4.short类型的数据长度为2个字节,则unsigned short类型数据的取值范围是( B )。 A.0至255 B.0~65535 C.-32768~32767 D.-256~255 5.下面4个选项中,均是合法转义字符的选项是( A )。 A.'\'','\\','\n' B.'\','\017','\' C.'\018','\f','xab' D.'\\0,'101','x1f 6.在C语言中,数字029是一个( D )。 A.八进制数B.十六进制数 C.十进制数D.非法数7.下列可以正确表示字符型常数的是( B )。 A."a" B.'\t' C."\n" D.297 8.以下( C )是错误的转义字符。 A.'\\' B.'\'' C.'\81' D.'\0' 9.C语言中short类型的变量a的值为-8,则a在内存中的存储形式是( A )。 A.1111 1111 1111 1000 B. 1000 C.000000000000 1000 D.1111 1111 1111 0111 10.将字符g赋给字符变量c,正确的表达式是( C )。 A.c="g" B.c=101 C.c='\147' D.c='0147' 11.字符串"\\\22a,0\n"的长度是( C )。 A.8 B.7 C.6 D.5 12.为求出s=10!的值,则变量s的类型应当为( C )。 A.short B.unsigned short C.long D.以上三种类型均可 13.已知:unsigned short x=65535;,则执行以下语句输出是( D )。 printf("%d\n", x); A.65535 B.1 C.无定值D.-1 14.下面4个选项中,均是合法整型常量的选项是( A )。 A.160,-0xffff,011 B.-0xcdf,01a,0xe C.-01,986,012,0668 D.-0x48a,2e5,0x 15.下面4个选项中,均是不合法的整型常量的选项是( D )。 A.--0f1,-0xffff,0011 B.-0Xcdf,01a,0xe C.-018,999,5e2 D.-0x48eg,-068,03f

相关主题
文本预览
相关文档 最新文档