>a>>b;cout}A.2B.1" />
当前位置:文档之家› C课后习题

C课后习题

C课后习题
C课后习题

第一章

一、选择题

1.C/C++规定,在一个源程序中,main()函数的位置()。C

A.必须在最开始

B.必须在最后

C.可以任意

D.必须在系统调用的库函数的后面

2.以下()是C/C++合法的标识符。A

A.char2

B.@x

C.int

D.7Bw

3.下面的程序,对于输入:2 9 15,输出的结果是()。B

#include"iostream.h"

void main()

{int a;

float b;

cout<<"input a,b:"<

cin>>a>>b;

cout<<"a+b="<

}

A.2

B.11

C. 26

D.24

4. 在Visual C++中,打开一个项目只需要打开对应的项目工作区文件即可,项目工作区文件的扩展名为()。C

A.obj

B.dsp

C.dsw

D.cpp

5.下面关于C语言与C++关系的说法中,()是正确的。D

A.C语言是C++的子集

B.C++对C语言进行了改进

C.C++和C语言都是面向对象的

D.C++继承了C语言的众多优点

6.设置一个断点的方法是将光标移到需要设置断点的行上,然后按()键。A

A.F9

B.F10

C.F11

D.F12

7.下面关于编译预处理命令的说法中,正确的是()。C

A.一条文件包含命令能包含多个文件

B.文件包含命令不可以嵌套使用

C.编译预处理命令是在编译之前被处理的命令

D.编译预处理命令中的“#”可以省略

8.使用()可以设置数据输出的宽度。B

A.setbase(int n)

B.setw(int n)

C.setfill(int n)

D.setprecision(int n)

二、填空题

1.C/C++程序是由一个或多个函数组成的,但必须要有一个()函数,程序从这个函数开始运行的。main()

2.C/C++字符集包括大、小写英文字母、()、()和包括运算符在内的特殊字符,程序中出现字符集以外的字符就是一个语法错误。数字0-9、下划线

3.在Visual C++中编写程序时,除了注释中可以出现汉字,还能在()中使用汉字。字符串

4.文件包含命令是以()开始的预处理命令,而宏定义命令是以()开始的预处理命令。#include #define

5.在cout命令中,使用()格式控制符可以把一个数据以十六进制的形式输出。hex 6.在C/C++中,头文件的扩展名一般为()。.h

7.程序的错误一般分两种:()和()。前者是编译器可以发现的,而后者编译器则无法发现。语法错误和逻辑错误

8.在Visual C++中调试程序时,可以使用快捷菜单中的()命令来插入断点和清除断点。Insert/Remove Breakpoint

9.C++源程序的扩展名为()。.cpp

10.在Visual C++中,浏览当前项目中的所有源程序文件应在工作区的()选项卡。Fileview

三、简答题

1.C++与C语言的主要区别是什么?C++是C语言的超集。C++中的类和对象部分,C语言没有,C++是面向对象的程序设计。见教材P3。

2.C/C++程序由哪些部分组成?C/C++程序是由一个或多个函数组成,其中必须要有一个main()函数。在一个函数内,语句的执行是从上到下的。

3.判断下列符号中哪些不能作为C/C++的标识符:

a? , 3a, a-b, f(x), A D, a.txt, D $, ∏, double

能作为C/C++的标识符:abc,b,s_2,Int

4.C/C++语言的书写格式有哪些特点?C/C++程序书写形式自由。一行可以写多条语句,一条语句也可以分别写在不同行上。区别大小写字母。

5.何时在#include中使用尖括号,何时使用双引号?用尖括号时,预处理程序在系统指定的文件夹中寻找文件;用双引号时,预处理程序首先在当前文件所在的文件目录中寻找文件,若找不到再到系统指定的文件夹中查找。

6.如果程序顺利地通过编译、连接,但是程序运行时结果有错误,最好的调试手段是什么?最好的调试手段是设置断点,并让程序运行到该断点,然后在Debug窗口观察各变量的值,从中发现错误。

第二章

一、选择题

1.下列选项中可以作为C/C++的合法整型常量的是()。B

A.1011B

B.047

C.x23

D.20H

2.下列不合法的常量是()。C

A.2.7

B.1.0E+3

C.3.5E-3.0

D.3.4e-5

3.下列常量中不是字符型常量的是()。D

A. '\x44'

B.'\t'

C.'\\'

D."m"

4.下列选项中合法的变量名为()。C

A.#define

B.float

C.a12_3

D.sqrt(x)

5.下列不正确的变量定义方法是()。D

A.int a,&b=a;

B.float a,*b=&a;

C.int a(4),b(0);

D.int a=b=5;

6.下列运算符优先级按由高到低的顺序排列正确的是()。C

A.*=、&&、!=、%

B.*=、%、&&、!=

C. %、!= 、&&、*=

D.&&、!=、%、=

7.已知x、y为整型,z为实型,ch为字符型,下列表达式中合法的是()。C

A.z=(y+x)++

B.x+y=z

C.y=ch+x

D.y=z%x

8.若有定义"int x;",则经过表达式"x=(float)7/3"运算后,x 的值为( )。C A.0 B.2.3 C.2 D.1

9.若有定义"int x=13,y=5;",则表达式"x++,y+=2,x/y"的值为( )。B

10.设整型变量m 、n 、a 、b 、c 、d 均为数值1,表达式(m=a>b)&&(n=c>d)运算后,m 、n 的值分别是( )。B

A.0,0

B.0,1

C.1,0

D.1,1

二、把下列数学表达式写成C/C++表达式。 1.x+y ≠a+b : (x+y)!=(a+b).

2.(ln10+xy)3 :pow(log(10)+x*y),3) 3.

y

x

cos sin 345+?)(ωπ:sin(w*u)/(cos(45*180/3.14)+3*pow(x,y))

4.)(y x e 323

++:exp(3)+sqrt(2*x+3*y) 5.x

y x y -x 3++:fabs(x-y)+(x+y)/(3*x) 6.

3

2

1

r r r 1111++:1/(1/r1+1/r2+1/r3)

三、根据下列条件写一个C/C++表达式。 1.a 和b 中有一个大于d :a>d||b>d

2.将x 、y 中较大的值送给z :z=x>y?x : y

3.将直角坐标系中点(x ,y )表示在第3象限内:x<0&&y<0 4.3个数据x 、y 、z 能组成三角形:x+y>z||y+z>z||x+z>y

5.将含有3位小数的实型变量x 的值,四舍五入到百分位:(int)(x*100+0.5)/100. 6.d 是不大于100的偶数:d>0&&d<=100&&d%2==0 7.x 、y 中至少有一个是5的倍数:x%5==0||y%5==0

8.对n(>0)个人进行分班,每班k (>0)个人,最后不足k 人也编一个班,问要编几个班:n%k==0?n/k : n/k+1 四、编程题:

1 编程序求半径为r 、高为h 的圆柱体的体积。 #include "iostream.h" void main() {float r,h,v; cin>>r>>h;

v=3.1416*r*r*h; cout<

2.任意输入3个数据,输出它们的平均值和最小的一个数。 #include "iostream.h"

void main()

{

float a,b,c,ave,min;

cin>>a>>b>>c;

ave=(a+b+c)/3;

min=(a

min=(c

cout<<"ave="<

void main()

{

char c1='1',c2='2';

int x;

x=10*(c1-'0')+c2-'0';

cout<

}

4.编写程序,输入一个三位整数,反向输出该三位整数。

#include "iostream.h"

void main()

{int x;

int c1,c2,c3;

cin>>x;

c1=x/100;

c2=x/10%10;

c3=x%10;

x=100*c3+10*c2+c1;

cout<

}

5.输入一个年份,判断是否为闰年。

解1:

#include "iostream.h"

void main()

{int year,x;

cin>>year;

x=year%400==0||year%4==0&&year%100!=0;

x!=0?cout<

解2:

#include "iostream.h"

void main()

{int year;

char x; cin>>year;

x=(year%400==0||year%4==0&&year%100!=0)?'y': 'n'; cout<

6.编写程序,求函数?+

+=40cos *2

)3lg(2

πx y 的值,要求输入x ,程序就输入y 的值

#include "iostream.h" #include "math.h" void main() {double x,y; cin>>x;

y=log(x*x+3)/log(10)+3.14/2*cos(40*3.14/180); cout<

第三章 一、选择题

1.为了避免嵌套的if else 语句的二义性,C/C++语言规定else 总是与( )组成配对关系。C

A. 缩排位置相同的if

B.在其之前未配对的if

C. 在其之前未配对的最近的if

D.同一行上的if

2.设有函数关系为??

?

??>=<-=0,10,00,1x x x y ,下面( )选项不能正确表示上述关系。D

A. if (x<=0)

B. y=1;

if(x<0)y=-1; if(x<=0)

else y=0; if(x<0)y=-1; else y=1; else y=0; C.y=-1; D. y=-1; if(x>=0) if(x!=0)

if(x==0)y=0; if(x>0)y=1; else y=1; else y=0; 3.若有变量定义“int a=7;”,则下列语句组对应的输出结果是( )。D(该答案后还应附“其他值”) switch(a%5)

{case 0:cout<

default: cout<<”其他值”; }

A.其他值

B.5

C. 7

D.7 5其他值

4.以下程序段中循环体语句“k++”执行的次数为()。C for(k=0,m=4;m;m-=2)

for(n=1;n<4;n++)

k++;

A. 16

B.12

C.6

D.8

5.执行下面程序段后,变量k的值为()。B

for(k=0,m=1;m<4;m++)

{

for(n=1;n<5;n++)

if(m*n%3==0)continue;

k++;

}

A. 1

B.3

C.6

D.12

6.下面叙述中正确的是()。C

A.for循环只能用于循环次数已经确定的情况

B.for循环同do-while语句一样,先执行循环体再判断

C.不管哪种形式的循环语句,都可以从循环体内转到循环体外

D.for循环体内不可以出现while语句

7.下面语句中不是死循环的是().A

A. int i=100;

B. int i,sum(0);

while(1) for(i=1;;i++)sum++;

{

i=i%100+1;

if(i==20)break;

}

C. int k=0;

D. int s=3379

do{ while(s++%2+3%2)s++

++k;

}while(k>=0);

8.若输入字符串“ABC”,下面程序段的输出为()。C char c;

while(cin>>c,c!=?\n?)

cou<

A.222

B.CDE

C.676869

D.333

9.以下程序段的输出结果是()。B

A.45

B.457810

C.69

D.678910

二、阅读程序,写出程序运行结果。

(1)试说明下列语句组的功能:

while(1)

{

cin>>m>>n;

if(m>0&&n>0)break;

}

功能:输入两个正整数给m和n。

(2)若有变量定于“int count=0,m=1;”,试写出下列语句组对应的输出结果。do

{

if(m%5)continue;

count++;

while(++m<=100);

}

结果:20

(3)#include”iostream.h”

void main()

{

int m,n(4),k;

long int t,s=0;

for(m=1;m<=n;m++)

{

for(t=1,k=1;k<=m;k++)

t*=m;

s+=t ;

}

cout<<”s=”<

}

输出为:s=288

(4)若输入:“AB20dfz5”,则下列程序输出结果是什么?

#include”iostream.h”

void main()

{

char c;

while(cin>>c,c!=?.?)

{

if(c>=?a?&&c

c+=1;

if(c==?z?)c=?a?;

cout<

}

}

输出为:AB20ega5

(5)#include”iostream.h”

#include”iomanip.h”

void main()

{

int i,j;

for(i=4;i>=1;i--)

{

cout<

for(j=1;j<=4-i;j++)

cout<

cout<

}

}

输出:

*

* *

* * *

三、程序填空题:

(1)下面的程序是检查输入的算术表达式中括号是否配对,并显示相应的结果。本程序边输入,边统计,以输入‘?’作为表达式输入结束,然后显示结果。

#include”iostream.h”

void main()

{

int count(0);

char c;

cout<<”请输入表达式,以输入?表示结束”<

while(cin>>c,c!=???)

{

if(c==?(…)

count++;

else if( )

count--;

}

if( )

cout<<”左右括号配对”<

else if ( )

cout<<”左括号多于右括号”<

else

cout<<”右括号多于左括号”<< count<<”个”<

}

填空结果:

c==')'

count==0

count>0

count

(2) 用辗转相减法求两个正整数m和n的最大公约数。

#include”iostream.h”

void main()

{

int m,n; ;

while(m-n!=0)

if(m>n) ; else ;

cout<<”gcd(m,n)=”<

填空结果: cin>>m>>n m=m-n n=n-m

(3)求100的阶乘的末尾包含多少个0?程序通过找出1-100之间的所有整数中包含5这个因子的个数来求解。如100=5*5*4含5的因子个数为2,在求阶乘过程中会在末尾产生2个0。 #include "iostream.h" void main() {

int m,n,k=0;

for(m=5;m<100;) { ; while(n%5==0) {

k++;

; }

; }

cout<<”100!include ”<

填空结果: n=m n=n/5 m=m+5

四、编程题:

1.编一程序,实现下列分段函数的求值:

??

???≥<≤+-<=20,5/205,1235|,|2

x x x x x x x y

#include "iostream.h" #include "math.h" void main() {float x,y;

cout<<"input x:"<>x; if(x<5)

y=fabs(x);

else if(x<20)

y=3*x*x-2*x+1;

else

y=x/5;

cout<<"x="<

}

2.按工资的高低纳税,已知不同工资s的税率p如下:

s<1000 p=0%

1000≤s<2000p=5%

2000≤s<3000 p=8%

3000≤s<5000 p=10%

5000≤s p=15%

编一程序,输入工资数,求纳税款和实得工资数。

#include "iostream.h"

void main()

{

float s,p,t,w;

cout<<"input s:"<

cin>>s;

switch(int(s)/1000)

{case 0:p=0;break;

case 1:p=0.05;break;

case 2:p=0.08;break;

case 3:

case 4:p=0.1;break;

default:p=0.15;break;

}

t=s*p;

w=s-t;

cout<<"纳税款="<

}

3.编一程序,求100~1000之间有多少个整数,其各个数位数字之和等于5?#include "iostream.h"

void main()

{int m,count=0;

for(m=100;m<1000;m++)

{if(m%10+m/10%10+m/100==5)

count++;

}

cout<<"count="<

}

4.鸡兔共笼有30个头,90只脚,求鸡兔各有多少?

#include "iostream.h"

void main()

{int m,n;

for(m=0;m<=30;m++)

for(n=0;n<=30;n++)

if(m*2+n*4==90&&m+n==30)

cout<<"鸡:"<

}

5.利用格里高利公式求π的近似值,公式为:π/4≈1-1/3+1/5-1/7+....,要求直到最后一项小于10-4为止。

#include "iostream.h"

void main()

{double pi=1.0;

int n,t=1;

for(n=1;1.0/(2*n+1)>1e-6;n++)

{ t=(-1)*t;

pi=pi+t/(2.0*n+1.0);

}

pi=4*pi;

cout<<"pi="<

}

法二:

#include "iostream.h"

void main()

{float pi=0.0;

int n,t=-1;

for(n=1;1.0/n>1e-6;n=n+2)

{ t=(-1)*t;

pi=pi+1.0*t/n;

}

pi=4*pi;

cout<<"pi="<

}

6.编一程序,求出方程x2+2x=y3(其中1≤x≤100,1≤y≤100)的所有整数解。

#include "iostream.h"

void main()

{int x,y;

for(x=1;x<=100;x++)

for(y=1;y<=100;y++)

if(x*x+2*x==y*y*y)

cout<<"x="<

}

7.输入一个英文句子(以句号结束),要求将句中单词分行打印,试编写符合上述要求的程序。

#include "iostream.h"

#include "stdio.h"

void main()

{char ch;

while((ch=getchar())!='.')

if(ch==' ')

cout<

else

cout<

}

8.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,求1000以内满足该条件的数。

#include "iostream.h"

#include "math.h"

void main()

{int m,k1,k2;

for(m=0;m<=1000;m++)

{k1=sqrt(m+100);

k2=sqrt(m+100+168);

if(k1*k1==m+100&&k2*k2==m+100+168)

cout<

}

}

9.用二分法求x9-4x5-5x3-270000=0在(0,10)之间的根,要求精度达到0.00001

二分法的步骤为等分区间[x1,x2]成[x1,x]和[x,x2],其中,若f(x)与f(x1)同号,则取[x,x2]作为新的区间,否则取[x1,x]作为新的区间,

依次类推,当新区间的长度或f(x)的绝对值小于eps时,x 就作为所求的实根。

#include "iostream.h"

#include "math.h"

void main()

{float x1=0,x2=10,x,y1,y2,y,eps=1e-6;

do{x=(x1+x2)/2;

y1=pow(x1,9)-4*pow(x1,5)-5*pow(x1,3)-270000;

y=pow(x,9)-4*pow(x,5)-5*pow(x,3)-270000;

if(y1*y>0)

x1=x;

else

x2=x;

}while(fabs(x2-x1)>eps);

cout<

}

第四章

一、选择题

1.下列数组定义语句中,正确的是()。C

A.int a[3,4];

B.int n=3,m=4,int a[n][m];

C.int a[3][4];

D.int a(3)(4);

2.以下不能对二维数组a初始化的语句是()。A

A. int a[2][]={{1},{2}};

B.int a[2][3]={1,2,3,4,5,6};

C. int a[2][3]={1};

D.int a[2][3]={ {1},{2}};

3.要使字符数组str中存放串”Lucky”并能正确处理,下列正确的定义语句是()。C

A.char str[]={…L?,?u?,?c?,?k?,?y?} ;

B. char str[5]={…L?,?u?,?c?,?k?,?y?} ;

C. char str[]=”Lucky”;

D. char str [5]= ”Lucky” ;

4.已知有语句“int a[3][4]={{1,2,5,3},{2,4,7,9},{3,6,5,8}},*p=&a[0][0];”,则表达式(*p+2)+*(p+2)的值应为()。D

A.10

B.5

C. 6

D.8

5.已知有语句“int a[5]={1,3,5,7,9},*p=&a[3];”,则表达式p[-1]的值为()。C

A.表达形式不合法

B.值不确定

C.5

D.6

6.要比较两个字符数组a、b中字符串是否相等,下面正确的是()。B

A.a==b

B.strcmp(a,b)==0

C. strcpy(a,b)

D. strcmp(a,b)=0

7.下面正确的描述是()。A

A.gets函数可以输入包括空格的字符串

B.cin可以输入包含空格的字符串

C.使用gets函数不需要声明头文件:#include “stdio.h”

D.使用gets函数必须需要声明头文件:#include “iostream.h”

8.已知如下变量的定义“char s[10],*p;”下列正确的语句是()。B

A.s=”asdfghj”;

B.p=”asdfgh”;

C.cin<

D.p=s;cin<

二、读程序,写结果。

1. #include”iostream.h”

void main()

{

char s[ ]=”1234567890”,*p;

int i;

for(p=s+5;*p!=?\0?;p++)cout<<*p;

p=s+4;i=0;

while(i++<5)cout<

}

结果是:678904321

2.若分别输入4和8,则以下程序的输出结果各是什么?

#include”iostream.h”

void main()

{

char b[17]=”0123456789ABCDEF”;

int i=0,h,n,c[10];long int m;

cin>>m>>h;

do

{

c[i++]=m%h;

}while((m=m/h)!=0);

for(--i;i>=0;--i)

{

n=c[i];cout<

}

结果是:4

3. #include”iostream.h”

void main()

{

int a[ ]={-2,3,0,-5,-4,6,9},*p=a,m,n;

m=n=*p;

for(p=a;p

{if(*p>m)m=*p;

if(*p

cout <<”m-n=”<

}

结果是:14

三、程序填空题。

1.利用一维数组显示Fibonacci数列的前20项,每行显示5个数,每个数宽度5位。即:0,1,1,2,3,5,8,13,…,如图所示。

#include”iostream.h”

#include"iomanip.h"

void main()

{

int i;

int x[20]= ;

for(i=2;i<20;i++)

;

for(i=0;i<20;i++)

{

if(i%5==0)cout<

cout<< ;

}

cout<

}

填空为:(1){0,1} (2)x[i]=x[i-1]+x[i-2] (3)setw(5)<

2.随机产生6个学生的分数(分数范围1~100),存放在数组a中,以每2分一个?*?显示,如图所示。

#include"iostream.h"

#include"stdlib.h"

void main()

{

int a[6],i,j;

for(i=0;i<6;i++)

{

a[i]= ;

for(j=0; ;j++)

cout<<'*';

cout<< <

}

}

填空为:(1)rand()%101 (2)j

void main()

{

int a[10],m,n;

float b[7];

for(m=0;m<10;m++)cin>>a[m];

for(m=0;m<7;m++)

{

;

for(n=m; ;n++)

b[m]=b[m]+a[n];

;

}

for(m=0;m<7;m++)

cout<

}

填空为:(1)b[m]=0 (2)n

4.下面程序按字母顺序比较两个字符串s1和s2的大小,若相等,则输出0;否则输出其第一个不相等的字符的ASCII编码差值。

#include"iostream.h"

void main()

{

char ch1[40],ch2[40],*s1=ch1,*s2=ch2;

int r;

;

;

while(*s1!='\0'&& )

{

s1++;s2++;

}

if(*s1=='\0'&&*s2=='\0')

;

else

r=*s1-*s2;

cout<<"The result is"<

}

填空为:(1)cin>>s1 (2) cin>>s2 (3)*s1==*s2 (4) r=0

5.已知数组a和b都是按由小到大顺序排列的有序数组,试将其合并后放入数组c中,使c 也按由小到大的顺序排列。

#define M 3

#define N 3

#include"iostream.h"

void main()

{

int a[M],b[N],c[M+N],j,k,l;

for(k=0;k>a[k];

for(k=0;k>b[k];

;

while(l

{

if(a[j]

{ ;

j++;l++; } else ; } while(l

填空为:(1)j=k=l=0 (2)j

1.利用随机数生成两个矩阵(数据不一定相同,前者30~70范围、后者101~135)。

???????

??=3855

69

30

416656473966473350526735

A ????

??

?

??=130113

109

123

118134103111135132127133

101125115103B 要求:

(1)将两个矩阵相加结果放入C 矩阵中。 (2)统计C 矩阵中最大值和下标。

(3)以下三角形式显示A 矩阵、上三角形式显示B 矩阵。

(4)将A 矩阵第1行与第3行对应元素交换位置,即第1行元素放到第3行;第3行元素放到第1行。

(5)求A 矩阵两条对角线元素之和。 (1)

#include "stdlib.h" #include "iostream.h" void main()

{int a[4][4],b[4][4],c[4][4],i,j; for(i=0;i<4;i++) for(j=0;j<4;j++) a[i][j]=rand()%41+30; for(i=0;i<4;i++) for(j=0;j<4;j++) b[i][j]=rand()%35+101; cout<<"矩阵A 的内容如下:\n"; for(i=0;i<4;i++) {for(j=0;j<4;j++) cout<

cout<<"矩阵B 的内容如下:\n"; for(i=0;i<4;i++) {for(j=0;j<4;j++)

cout<

cout<

}

for(i=0;i<4;i++)

for(j=0;j<4;j++)

c[i][j]=a[i][j]+b[i][j];

cout<<"矩阵C的内容如下:\n";

for(i=0;i<4;i++)

{for(j=0;j<4;j++)

cout<

cout<

}

}

(2)

#include "stdlib.h"

#include "iostream.h"

void main()

{int a[4][4],b[4][4],c[4][4],i,j,max,imax,jmax; for(i=0;i<4;i++)

for(j=0;j<4;j++)

a[i][j]=rand()%41+30;

for(i=0;i<4;i++)

for(j=0;j<4;j++)

b[i][j]=rand()%35+101;

cout<<"矩阵A的内容如下:\n";

for(i=0;i<4;i++)

{for(j=0;j<4;j++)

cout<

cout<

}

cout<<"矩阵B的内容如下:\n";

for(i=0;i<4;i++)

{for(j=0;j<4;j++)

cout<

cout<

}

for(i=0;i<4;i++)

for(j=0;j<4;j++)

c[i][j]=a[i][j]+b[i][j];

cout<<"矩阵C的内容如下:\n";

for(i=0;i<4;i++)

{for(j=0;j<4;j++)

cout<

cout<

}

max=c[0][0];

for(i=0;i<4;i++)

for(j=0;j<4;j++)

if(c[i][j]>max)

{max=c[i][j];

imax=i;

jmax=j;

}

cout<<"max=c["<

(3)

#include "stdlib.h"

#include "iostream.h"

void main()

{int a[4][4],b[4][4],i,j;

for(i=0;i<4;i++)

for(j=0;j<4;j++)

a[i][j]=rand()%41+30;

for(i=0;i<4;i++)

for(j=0;j<4;j++)

b[i][j]=rand()%35+101;

cout<<"矩阵A的主对角线以下元素内容如下:\n";

for(i=0;i<4;i++)

{for(j=0;j<=i;j++)

cout<

cout<

}

cout<<"矩阵B的主对角线以上元素内容如下:\n";

for(i=0;i<4;i++)

{for(j=i;j<4;j++)

cout<

cout<

}

}

(4)

#include "stdlib.h"

#include "iostream.h"

void main()

{int a[4][4],i,j;

for(i=0;i<4;i++)

for(j=0;j<4;j++)

a[i][j]=rand()%41+30;

cout<<"矩阵A的内容如下:\n";

for(i=0;i<4;i++)

{for(j=0;j<4;j++)

cout<

cout<

}

for(j=0;j<4;j++)

{int t=a[0][j]; a[0][j]=a[2][j]; a[2][j]=t;}

cout<<"改变后矩阵A的内容如下:\n";

for(i=0;i<4;i++)

{for(j=0;j<4;j++)

cout<

cout<

}

}

(5)

#include "stdlib.h"

#include "iostream.h"

void main()

{int a[4][4],i,j,s=0;

for(i=0;i<4;i++)

for(j=0;j<4;j++)

a[i][j]=rand()%41+30;

cout<<"矩阵A的内容如下:\n";

for(i=0;i<4;i++)

{for(j=0;j<4;j++)

cout<

cout<

}

for(i=0;i<4;i++)

for(j=0;j<4;j++)

if(i==j||i+j==3)

s=s+a[i][j];

cout<<"对角线元素之和为:"<

}

2.不使用strcpy()函数,用字符指针的形式将一个字符串的内容复制到另一个字符数组中。用字符数组实现

C经典习题答案

1.在类作用域中能够通过直接使用该类的()成员名进行访问。 A. 私有 B. 公用 C. 保护 D. 任何 答案:D 2.小数类型和浮点类型都可以表示小数,正确说法:( ) A. 两者没有任何区别 B. 小数类型比浮点类型取值范围大 C.小数类型比浮点类型精度高 D. 小数类型比浮点类型精度低 答案:C 3.能作为C#程序的基本单位是( )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 答案:B 4. 可用作C#程序用户标识符的一组标识符是( )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 答案:B 5.引用类型主要有4种:类类型、数组类型、接口类型和()。 A.对象类型 B.字符串类型 C.委托类型 D.整数类型 答案:C 6.使用Dirctory类的下列方法,可以获取指定文件夹中的文件的是(). A.Exists() B.GetFiles() C.GetDirectories() D.CreateDirectory() 答案:B 7.加载窗体时触发的事件是( )。 A. Click B.Load C.GotFoucs D.DoubleClick

答案:B 8.改变窗体的标题,需修改的窗体属性是( )。 A. Text B. Name C.Title D. Index 答案:A 9.在接口的成员中,不能包含( ). A.属性 B.方法 C.事件 D.常量 答案:D 10.在C#中定义接口时,使用的关键字是( )。 A.interface B.: C.class D.overrides 答案:A 1.当在程序中执行到语句时,将结束所在循环语句中循环体的一次执行。 答案:continue 2.元素类型为double的2行5列的二维数组共占用字节的存储空间。 答案:80 3.C#数组类型是一种引用类型,所有的数组都是从System命名空间的类继承而来的引用对象。 答案:object 4.枚举是从System. 类继承而来的类型。 答案:Enum 5.一般将类的构造方法声明为访问权限。如果声明为private,就不能创建该类的对象。 答案:public或公有 6.类中声明的属性往往具有get()和两个函数。 答案:set() 7.对于方法,参数传递分为值传递和两种。

C语言必背的典型程序设计题目 - 数组、函数-------参考答案

1、使用选择法、冒泡法对10个数进行排序,并输出排序前后的数列。 n k=0; m t=0; //用于记录出列顺序 while(t #include <> void main() { int i,j,a[6][6]; for(i=0;i<=5;i++) { a[i][i]=1; a[i][0]=1; } for(i=2;i<=5;i++) { for(j=1;j<=i-1;j++) { a[i][j]=a[i-1][j]+a[i-1][j-1]; } } for(i=0;i<=5;i++) { for(j=0;j<=i;j++) { printf("%4d",a[i][j]); } printf("\n"); } } 5、编写程序,把下面的数据输入一个二维数组中。

25 36 78 13 12 26 88 93 75 18 22 32 56 44 36 58 然后执行以下操作: ①输出矩阵两个对角线上的数; ②分别输出各行和各列的和; ③交换第一行和第三行的位置; ④交换第二列和第四列的位置; ⑤输出处理后的数组。 #include<> #define SIZE 4 void main() { int a[SIZE][SIZE]={{25,36,78,13},{12,26,88,93},{75,18,22,32},{56,44,36,58}}; int i,j,t,sum; //输出二维数组 printf("二维数组:\n"); for(i=0;i

《C语言程序设计》课后习题答案

第1章程序设计和C语言1 1.1什么是计算机程序1 1.2什么是计算机语言1 1.3C语言的发展及其特点3 1.4最简单的C语言程序5 1.4.1最简单的C语言程序举例6 1.4.2C语言程序的结构10 1.5运行C程序的步骤与方法12 1.6程序设计的任务14 1-5 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } 1-6#include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max

2.1什么是算法16 2.2简单的算法举例17 2.3算法的特性21 2.4怎样表示一个算法22 2.4.1用自然语言表示算法22 2.4.2用流程图表示算法22 2.4.3三种基本结构和改进的流程图26 2.4.4用N S流程图表示算法28 2.4.5用伪代码表示算法31 2.4.6用计算机语言表示算法32 2.5结构化程序设计方法34 习题36 第章最简单的C程序设计——顺序程序设计37 3.1顺序程序设计举例37 3.2数据的表现形式及其运算39 3.2.1常量和变量39 3.2.2数据类型42 3.2.3整型数据44 3.2.4字符型数据47 3.2.5浮点型数据49 3.2.6怎样确定常量的类型51 3.2.7运算符和表达式52 3.3C语句57 3.3.1C语句的作用和分类57 3.3.2最基本的语句——赋值语句59 3.4数据的输入输出65 3.4.1输入输出举例65 3.4.2有关数据输入输出的概念67

C语言课后习题答案(最终)

第0章习题 1. 将下列十进制数分别转化为二进制数、八进制数和十六进制数: (1)128 (2)511 (3)1024 (4)65535 (5)1048575 答: (1)10000000、200、80 (2)111111111、777、1FF (3)10000000000、2000、400 (4)1111111111111111、177777、FFFF (5)11111111111111111111、3777777、FFFFF 2. 将下列二进制数转化为十进制数和十六进制数: (1)1100110101B (2)101101.1011B 答: (1)821、335 (2)45.6875、2D.B 3. 写出下列数的原码、反码、补码:15、-20、-27/32 答: (1)00001111、00000000、00001111 (2)10010100、11101011、11101100 (3)1.1101100、1.0010011、1.0010100 4. 16位无符号定点整数的数值表示范围为多少?8位补码的表示范围是多少?16位补码的表示范围是多少? 答: 0~65535、-128~127、-32768~32767 5.1968年Dijkstra提出结构化程序设计的思想的原因是什么?简要回答结构化程序设计的经典定义。 答: 结构化程序设计概念的提出主要是源于程序结构的层次性与模块化使得构造出来的软件具有良好的可理解性和可维护性,随着软件规模的扩大与复杂性的提高,程序的可维护性成为程序设计者们关注的重要问题之一。 如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。 6.C程序在内存中存储在哪儿?计算机的内存空间是如何分区的?分区存放不同类型的数据的目的是什么? 答:

C语言经典例题和答案

一、求一个任意边长的矩形面积。 #include void main() {int w,h,sum; scanf("%d%d",&w,&h); sum=w*h; printf("area=%d\n",sum); } 二、求一个任意半径的圆的面积及周长。 #define PI 3.14159 #include void main() {float r,area,c; scanf("%f",&r); area=PI*r*r; c=2*PI*r; printf("area=%f\ncircle=%f\n",area,c); } 三、已知:w=5, y=4, z=2, 求表达式:w*y/z的值,并输出。 ##include void main() { int w,y,z,r; w=5; y=4; z=2; r=w*y/z; printf("%5d",r); } 一、从键盘上输入三个数,求出其中的最大值,并输出。 #include void main() {int a,b,c,max; scanf("%d%d%d",&a,&b,&c); max=a; if(max

#include #define PI 3.14159 #include void main() {float a,b,sum; a=30*PI/180; b=60*PI/180; sum=sin(a)+sin(b)+cos(a)+cos(60); printf("total=%f\n",sum); } 三、比较两个数的大小。如果x大于y,则输出:x>y,否则输出:x void main() {int x,y; scanf("%d,%d",&x,&y); if(x>y) printf("x>y\n"); else printf("x void main() {int a,b,c,t; scanf("%d%d%d",&a,&b,&c); if(a>b) { t=b; b=a; a=t; } if(a>c) {t=a; a=c; c=t; } if(b>c) {t=b;b=c;c=t;} printf("%3d%3d%3d\n",a,b,c); }. 二、求自然数1~10之和。。 #include void main()

C语言练习题(带答案)

一、单项选择题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B )。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 9.C语言中的简单数据类型包括(D)。 A、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C、整型、字符型、逻辑型 D、整型、实型、字符型 10.在C语言程序中,表达式5%2的结果是C。 A)2.5 B)2 C)1 D)3 11.如果int a=3,b=4;则条件表达式"a

最新c语言课后习题答案汇总

c语言课后习题答案

第二章习题 2.什么叫做结构化算法?为什么要提倡结构化算法? 答:结构化算法是由一些基本结构顺序组成的。在基本结构之间不存在向前或向后的跳转,流程的转移只存在于一个基本的结构范围内。一个非结构化的算法可以用一个等价的结构化算法代替,其功能不变。 跟结构化算法比较起来,非结构化算法有以下缺点: 流程不受限制的随意转来转去,使流程图豪无规律使人在阅读的时候难以理解算法的逻辑.难以阅读,也难以修改,从而使算法的可靠性和可维护性难以保证。 4. 第三章习题 1.#include #include void main() { unsigned int n;

float p,p1,r=0.09; scanf("%u",&n); p=pow(1+r,n); p1=(p-1)*100; printf("%5.2f%%\n",p1); } 运行结果:输入,回车,见结果: 2.#include #include int main() { int bj=1000; float r1,r2,r3,r5,r0,lx1,lx2,lx3,lx4,lx5; r1=0.0414; r2=0.0468; r3=0.0540; r5=0.0585; r0=0.0072; lx1=bj*r5; lx2=bj*(1+r2)*r3; lx3=bj*(1+r3)*r2; lx4=bj*pow(1+r1,5); lx5=bj*r0*5; printf("lx1=%f lx2=%f lx3=%f lx4=%f lx=5%f\n",lx1,lx2,lx3,lx4,lx5); return 0; } 运行结果: 3.#include #include int main() { long d,p; d=300000; p=6000; double m,r=0.01; m=log(p/(p-d*r))/log(1+r); printf("%4.2f",m); return 0;

c和c++经典笔试题及答案

C++/C经典笔试题及答案 C++/C试题 本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。 笔试时间90分钟。请考生认真答题,切勿轻视。 一、请填写BOOL , float, 指针变量与“零值”比较的 if 语句。(10分)提示:这里“零值”可以是0, 0.0 , FALSE或者“空指针”。例如 int 变量 n 与“零值”比较的 if 语句为: if ( n == 0 ) if ( n != 0 ) 请写出BOOL flag 与“零值”比较的if 语句: 请写出float x 与“零值”比较的if 语句: 请写出char *p 与“零值”比较的if 语句: char str[] = “Hello” ; char *p = str ; int n = 10; 请计算 sizeof (str ) = sizeof ( p ) = sizeof ( n ) =void Func ( char str[100]) { 请计算 sizeof( str ) = } void *p = malloc( 100 );请计算 sizeof ( p ) = 1、头文件中的 ifndef/define/endif 干什么用? 2、#include 和#include “filename.h” 有什么区别? 3、const 有什么用途?(请至少说明两种) 4、在C++ 程序中调用被 C编译器编译后的函数,为什么要加extern “C”声明? 5 // 第一个 for (i=0; i

c语言数组习题

数组练习解答 1定义一个名为 a 的单精度实型一维数组 ,长度为 4,所有元素的初值均为 0的数定义语句就是 【分析】按照一般数据定义语句的格式 ,可以直接写出方法一(参瞧答案);考虑到所有元素均赋初值时可 以省略数组长度,可以写出方法二(参瞧答案);考虑到不省略数组长度,给部分元素赋初值时,所有未赋初 值的元素均有空值(对数值型数组来说,初值为0),可以写出方法三(参瞧答案);考虑到选用静态型,不赋 初值所有元素也自动赋予。空值 (对数值型数组来说,初值为0),可以写出方法四(参瞧答案)。 【答案】方法一 :float a[4] = (0.0,0.0,0.0,0.0}; 方法二:float a[] = ( 0.0,0.0,0.0,0.0}; 规定,定义字符型数组时不允许直接使用 "字符常量"的方式赋初值,所以备选答案②也就是错误的。 备选答案③符合题意。【答案】③ 6定义一个名为"s"的字符型数组,并且赋初值为字符串"123"的错误语句就是() ① char s[]={ '1','2','3',' \0 '}; ② char s 「」={"123"}; ③ char s[]={"123\n"}; ④ char s[4]={'1','2','3'}; 【分析】备选答案①中省略了数组长度 ,所以每个元素都赋了初值,共计4个元素,初值依次为T '3'、’ \0',最后一个元素的值为字符串结束标记 ,所以数组S 中存放的就是字符串"123",该答案不符合 题意(即正确的);备选答案③中直接赋予字符串作为初值所以数组 s 的长度为4,其中的初值就是字符串 "123",不符合题意(即正确的);备选答案③中也就是给数组 s 赋予字符串的初值,但就是字符串不就是 方法三:float a[4]= {0.0}; 方法四:static float [4]; 2下列数组定义语句中,错误的就是() ① char x[1] = 'a'; ② auto char x[1]={0}; ③ static char x[l]; ④ char x[l]; 【分析】显然答案①中给字符型数组赋初值的格式不对 以 备选答案①就是符合题意的答案。 【答案】① 3用"冒泡排序法"对n 个数据排序,需要进行n 一 1 较,小者调上;该操作反复执行 n- k 次。现在假设有 则利用"冒泡排序法"执行第2步后的结果就是 【分析】开始排序前的排列执行第 4 1 - 3 : (不能直接赋予字符常量,必须用花括号括住),所 步。其中第k 步的任务就是:自下而上,相邻两数比 4个数据:4、l 、3、2要排序,假定4为上、2为下, O 1步后的排列执行第 2步后的排列 1 2 4 2 【答案】l 、2、4、 3 4用"选择排序法"对n 个数据排序,需要进行n-1 据中寻找最小数,与第k 个数据交换。现在假设有 行第2步后的结果就是 ____________________ 【分析】 开始排序前的排列为: 4 执行第1步后的排列为: 执行第2步后的排列为: 【答案】1、2、3、4 5下列数组定义语句中,正确的就是() ① int a[][]={1,2,3,4,5,6}; ② char a[2] ③ int a[][3]= {1,2,3,4,5,6}; ④ static int a[][] 【分析】C 语言规定,二维数组定义时不允许省略第二维的长度 步。其中第k 步的任务就是:在第k 个数据到第n 个数 4个数据:4、 1、 3、2要排序,则利用"冒泡排序法"执 「3] = 'a','b'; ={{1,2,3},{4,5,6}}; ,所以备选答案①④就是错误 C 语言还 显然 、'2'、

C语言练习题(带答案)-绝对经典题目不看后悔

1单选题 1.(A)是构成C语言程序的基本单位。 A、函数 B、过程 C、子程序 D、子例程 2.C语言程序从C开始执行。 A) 程序中第一条可执行语句B) 程序中第一个函数 C) 程序中的main函数D) 包含文件中的第一个函数 3、以下说法中正确的是(C)。 A、C语言程序总是从第一个定义的函数开始执行 B、在C语言程序中,要调用的函数必须在main( )函数中定义 C、C语言程序总是从main( )函数开始执行 D、C语言程序中的main( )函数必须放在程序的开始部分 4.下列关于C语言的说法错误的是(B)。 A) C程序的工作过程是编辑、编译、连接、运行 B) C语言不区分大小写。 C) C程序的三种基本结构是顺序、选择、循环 D) C程序从main函数开始执行 5.下列正确的标识符是(C)。 A.-a1 B.a[i] C.a2_i D.int t 5~8题为相同类型题 考点:标识符的命名规则 (1)只能由字母、数字、下划线构成 (2)数字不能作为标识符的开头 (3)关键字不能作为标识符 选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3) 6.下列C语言用户标识符中合法的是(B)。 A)3ax B)x C)case D)-e2 E)union 选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1); 7.下列四组选项中,正确的C语言标识符是(C)。 A)%x B)a+b C)a123 D)123 选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2) 8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。 A、print _3d db8 aBc B、I\am one_half start$it 3pai C、str_1 Cpp pow while D、Pxq My->book line# His.age 选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键

C语言数组编程题

实验4 数组 一.实验目的: 1.掌握一维数组的定义、赋值和输入输出的方法; 2.掌握字符数组定义、初始化、赋值的方法; 3.了解常见的字符串函数功能及其使用方法; 4.掌握二维数组的定义与引用。 二.实验内容: 1.编写程序,输入10个整数存入一维数组,统计输出其中的正数、负数和零的个数。 2.编写程序,输入10个整数存入一维数组,再按逆序重新存放后再输出。 3.编写程序,输入10个整数存入一维数组,对其进行升序排序后输出。 4.编写程序,求二维数组中元素的最大值和最小值。 5.编写程序,求一个4×4矩阵中所有元素之和。 6.编写程序:从键盘上输入一字符串,统计输出该字符串中的字母字符、数字字符、空格以及其他字符的个数。 7.编写程序:从键盘上输入一字符串,并判断是否形成回文(即正序和逆序一样,如“abcd dcba”)。 8. 产生一个由10个元素组成的一维数组并输出,数组元素由随机数(0-99)构成。 9. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,按原来的规律将其插入并输出。 页脚内容1

10. 产生一个由10个元素组成的一维数组,数组元素由随机数(0-99)构成。按照升序排列并输出。再输入一个数,要求找出该数是数组中的第几个元素,如果不在数组中,则输出找不到。 11. 找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列最小。可能没有鞍点。 12. 编程输出杨辉三角。(要求输出10行)(杨辉三角:每行端点与结尾的数为1.每个数等于它上方两数之和。每行数字左右对称,由1开始逐渐变大) 13. 输入一行字符,统计大写字母、小写字母、数字、空格以及其它字符个数。 14. 编写程序,将两个字符串连接起来,不用strcat。 15. 编写程序实现strcpy函数功能。 16. 编程实现strlen函数功能。 17. 编程求2-4+6-8…-100+102的值。 18. 假设某人有100,000现金。每经过一次路口需要进行一次交费。交费规则为当他现金大于50,000时每次需要交5%如果现金小于等于50,000时每次交5,000。请写一程序计算此人可以经过多少次这个路口。 19. 输入若干个正整数,以0结束,将其中大于平均值且个位为5的数排序后输出。(按由大到小的顺序排序) 20. 输入一个字符串,将其中ASCII码值为基数的字符排序后输出。(按由小到大的顺序) 21. 输入一个以回车结束的字符串(少于80个字符),滤去所有的非16进制字符后,组成一个新字符串(16进制形式),然后将其转换为10进制数后输出。 22. 读入一个正整数n(1<=n<=6),再读入n阶矩阵,计算该矩阵除副对角线、最后一行、最后一列 页脚内容2

C语言课后习题答案(完整版)-第四版-_谭浩强

C语言课后习题答案-第四版- 谭浩强(1-7) 第一章 #include int main ( ) { printf ("**************************\n\n"); printf(" Very Good!\n\n"); printf ("**************************\n"); return 0; } #include int main() {int a,b,c,max; printf("please input a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if (max #include int main() {float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf("p=%f\n",p); return 0; } #include #include 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); // 存活期存款。活期利息每一季度结算一次printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和 return 0; } #include #include int main() {double 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); // 存活期存款。活期利息每一季度结算一次printf("p1=%f\n",p1); // 输出按第1方案得到的本息和 printf("p2=%f\n",p2); // 输出按第2方案得到的本息和 printf("p3=%f\n",p3); // 输出按第3方案得到的本息和 printf("p4=%f\n",p4); // 输出按第4方案得到的本息和 printf("p5=%f\n",p5); // 输出按第5方案得到的本息和

C语言课后作业答案

3-5-1正确 大写字母转化成小写或者小写变大写 #include void main() { char ch; printf("请输入一个字符:"); scanf("%c",&ch); if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z') { if(ch>='A'&&ch<='Z')ch=ch+32; else ch=ch-32; } else ch=ch; printf("%c\n",ch); } 3-5-2大写转化成小写或者小写变大写 #include void main() { char ch; printf("请输入一个字符:"); scanf("%c",&ch); ch=ch; { if(ch>='A'&&ch<='Z')ch=ch+32; else ch=ch-32; } printf("%c\n",ch); } 3-5-3大写转化成小写或者小写变大写 #include void main() { char ch; printf("请输入一个字符:"); scanf("%c",&ch); if(ch>='a'&&ch<='z') ch=ch-32; else if(ch>='A'&&ch<='Z') ch=ch+32; else ch=ch; printf("%c\n",ch); } 3-6-1正确分段函数

#include void main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x<=1) y=x; else { if(1 void main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x>=10) y=3*x-8; else if(x>1) y=2*x+1; else y=x; printf("x=%d,y=%d\n",x,y); } 3 -6 -3正确 #include void main() { int x,y; printf("请输入x:"); scanf("%d",&x); if(x<=1) y=x; else if(1=10) y=3*x-8; printf("x=%d,y=%d\n",x,y); } 计算器正确 #include void main() {

最新版c语言经典习题100例(最全面)

C 语言习题100 例(最新整理版) 习题目录:(按住Ctrl 点击可以快速跳转到对应页面) 【程序1】 (5) 题目:有1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? (5) 【程序2】 (6) 题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数? (6) 【程序3】 (7) 题目:一个整数,它加上100 后是一个完全平方数,再加上168 又是一个完全平方数,请问该数是多少? (7) 【程序4】 (7) 题目:输入某年某月某日,判断这一天是这一年的第几天? (7) 【程序5】 (8) 题目输入三个整数x,y,z请把这三个数由小到大输出。 (8) 【程序6】 (9) 题目用*号输出字母C的图案。 (9) 【程序7】 (9) 题目:输出特殊图案,请在C环境中运行,看一看,VeryBeautifuI! (9) 【程序8】 (9) 题目:输出9*9 口诀。 (9) 【程序9】 (10) 题目:要求输出国际象棋棋盘。 (10) 【程序10】 (10) 题目:打印楼梯,同时在楼梯上方打印两个笑脸。 (10) 【程序11】 (11) 题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? (11) 【程序12】 (11) 题目:判断101-200 之间有多少个素数,并输出所有素数。 (11) 【程序13】 (12) 题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1 的三次方+5的三次方+3的三次方。 (12) 【程序14】 (12) 题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5 。 (12) 【程序15】 (13) 题目利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用 C 表示。 (13) 【程序16】 (13) 题目:输入两个正整数m和n ,求其最大公约数和最小公倍数。 (13) 【程序17】 (14) 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。14【程序18】 (14)

C语言数组例题

6.1.1 Fibonacci数列 /* Fibonacci数列递推求解 */ main() {int k,n; long s,f[50]; printf("求数列的第n项与前n项和,请输入n:"); scanf("%d",&n); f[1]=1;f[2]=1;s=2; /* 数组元素与和变量赋初值 */ for(k=3;k<=n;k++) {f[k]=f[k-1]+f[k-2]; /* 实施递推 */ s+=f[k];} /* 实施求和 */ printf("F数列第%d项为:%ld\n",n,f[n]); printf("F数前%d项之和为:%ld\n",n,s); } 6.1.2 幂序列 /* 幂序列程序 */ main() {int k,n; long a,b,s,f[100]; printf("求数列的第n项与前n项和,请输入n:"); scanf("%d",&n); a=2;b=3;s=0; for(k=1;k<=n;k++) {if(a

else {f[k]=b;b=b*3;} /* 用3的幂给f[k]赋值 */ s+=f[k];} printf("数列的第%d项为:%ld\n",n,f[n]); printf("数列的前%d项之和为:%ld\n",n,s); } 6.1.3 双关系递推数列 /* 双关系2x+1,3x+1递推 */ main() {int n,i,j,h,m[1500]; m[1]=1; scanf("%d",&n); for(i=1;i<=n;i++) {m[2*i]=2*m[i]+1;m[2*i+1]=3*m[i]+1; for(j=i+2;j<=2*i+1;j++) {if(m[i+1]>m[j]) /* m(i+1)与m(j)比较 */ {h=m[j]; m[j]=m[i+1];m[i+1]=h;} /* 交换,使m(i +1)最小 */ if(m[i+1]==m[j]) m[j]=20000+j;}} /* 置m(j)为一出界大数,以避免重复 */ for(i=1;i<=n;i++) {printf(" %4d",m[i]);

C语言课后答案

习题一 一、简答题 1.顺序结构、选择(分支)结构和循环结构。 2. (1)

(2)

3.编辑、编译、连接和运行 二、填空题 1. Ctrl+F9;Alt+F5;F2。 2. main(主) 3. main(主) 4. 任意 5. /* */ 不 6. ; 7.。 程序: include studio.h main{} /* this program prints the number of weeks in a year. /* ( int s s:=52; print(There are s weeks in a year"); 正确的为: #include main() /* this program prints the number of weeks in a year. */ { int s; s=52; printf("There are s weeks in a year"); }

习题二 一、选择题 1、C 2、B,D,F,G 3、C 4、A 5、C 6、B 二、填空题 1、声明;使用。 2、整型、浮点型(实型)、字符型。 3、hat_1,cat1,all, Dollar, piece_f, SIN, _ , FALSE. 4、'A'(字符),005(整型),3e0(整型),'\\'(字符),'\05'(字符), 1.2e+5(整型),0xf12(整型)。 5、(1)6+(4+5)*(4+5)/(2+3) (2)sin(a+b)*ain(a+b)/ (4*2)/(3*2)+2 三、读程题 1.若x为float型,其原值为5,a=2,b=4.7。写出下列表达式运算后x的值。 (1)x=(int)(b-a)%3*a/4-a (2)x=(x=b+1)+(int)(b)%10/2.0 (3)x+=x (4)x-=x (5)x*=x+x (6)x/=x+x (7)x+=x-=x*=x (8)x%=x (9)x=3*4,5*6 答案:(1)-1,(2)7.7,(3)10,(4)0,(5)50,(6)0.5,(7)0,(8)非法,(9)12。 2.写出下面程序的运行结果。 #include void main() { int a=2; printf("abcdefghijk\n"); printf("lmnop/n"); printf("I am a /n beginner of C !"); printf("I am a \n beginner of C !"); printf("%d + %d = %d",a,a,a); } 答案: abcdefghijk

数据结构(C语言)【经典题库】含参考答案

《数据结构与算法》复习题 选择题 1.在数据结构中,从逻辑上可以把数据结构分为 C 。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指 A 。 A.数据的存储结构 B.数据结构 C 3 A 。 7.算法分析的目的是 C ,算法分析的两个主要方面是 A 。 (1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进 C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是 O(n2) 。 s =0;

for( I =0; inext ==NULL C.head->next ==head D head!=NULL

15.带头结点的单链表head为空的判定条件是 B 。 A.head == NULL B head->next ==NULL C.head->next ==head D head!=NULL 16.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用 D 存储方式最节省运算时间。 A.单链表 B.给出表头指针的单循环链表 C.双链表 D.带头结点的双循环链表17.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。 20 21 B 。 22 A.删除单链表中的第一个元素 B.删除单链表中的最后一个元素 C.在单链表第一个元素前插入一个新元素 D.在单链表最后一个元素后插入一个新元素 23.与单链表相比,双链表的优点之一是 D 。 A.插入、删除操作更简单

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