《C语言程序设计》实验 设计 习题 答案

更新时间:2023-10-09 15:10:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验三

3.4编写程序,用getchar函数读入两个字符c1,c2,然后分别用putchar函数输出 void main() {

char c1,c2; c1=getchar(); c2=getchar(); putchar(c1); putchar(c2); putchar('\\n');

printf(\}

3.5把790分钟换成用小时和分钟表示,然后输出。 void main() {

int s=790;

printf(\小时\ printf(\分钟\

}

3.6将读入三个数a,b,c,然后交换它们的值,把a的值给b,把b的值给c,把c的值给a. main() {

int a,b,c,t;

scanf(\ t=a; a=b; b=c; c=t;

printf(\

3.7输入一个double类型的数,使该数保留小数点后两位,对第三位小数进行四舍五入处理,然后输出此数,验证处理是否真确。

#include void main() {

float x,s,a; int z;

scanf(\ a=100*x+0.5; z=(int)(a); s=z/100.0;

printf(\}

main() {

int a,b,t; double c;

scanf(\ b=100*c; t=1000*c; a=t;

if (a>=5) b=b+1; else b=b+0; c=1.0*b/100;

printf(\ return 0; }

void main() {

int x,y;

scanf(\

if(x<0&&x>-5) y = x ; if(x==0) y = x-1;

if(x<10&&x>0) y = x+1; printf(\}

实验四

4.2

不嵌套if语句 void main() {

int x,y;

scanf(\

if(x<0&&x>-5) y = x ; if(x==0) y = x-1;

if(x<10&&x>0) y = x+1; printf(\}

法二:嵌套if语句 void main() {

int x,y;

scanf(\

if((x>-5)&&(x<0)) y=x; else if(x==0) y=x-1;

else if(x<10&&x>0) y=x+1; printf(\}

4.3如下程序运用条件运算符求变量的绝对值?

void main() {

int a,M;

scanf(\

M=a>0?a:-a;

printf(\

4.4某服装店经营套服,也可单件出售,若买的不少于50套,每套80元,不足50套的每套90元,只买上衣每件60元,只买裤子每条45元,(读入所买上衣C和裤子t的件数,计算应付款m。 void main() {

int c,t,m;

printf(\the number of coat and trousers your want buy:\\n\ scanf(\ if(t==c)

if(c>=50)m=c*80; else m=c*90; else if(c>t)

if(t>=50) m=t*80+(c-t)*60; else m=t*90+(c-t)*60; else

if(c>=50) m=c*80+(t-c)*45;

else m=c*90+(t-c)*45; printf(\}

4.5:从键盘中输入三个数,分别让他们代表三条线段的长度,请编写程序,判断由这三条线段组成的三角形将是什么三角形(不等边,等腰,等边或不构成三角形)? Include main() {

int a,b,c;

scanf(\ if(a+b>c&&b+c>a&&c+a>b) {

if((a==b)&&(b==c)) printf(\等边三角形\else if((a==b&&b!=c)||(b==c&&c!=a)) printf(\等腰三角形\

else printf(\不等边三角形\ }

else printf(\不构成三角形\}

4.6:判断输入的整数是否既是5又是7的倍数,若是,则输出yes,否则输出no void main() {

int x;

scanf(\

if(x%5==0&&x%7==0) printf(\ else

printf(\}

实验五

5.2输入一行字母,将字母加密输出(如“a’变成’c’,’b’变成’d’,......,’z’变成‘b’) main() { int c;

while ( (c=getchar () ) !='\\n')

{ if (c<='X'&&c>='A'||c<='x'&&c>='a') c += 2;

else if (c== 'y'||c== 'Y'||c== 'z'||c== 'Z') c=c-24; printf(\

}

putchar ('\\n') ; }

5.3利用for循环编写程序 法一:

#include\main() {

int i,j;

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

for(j=1;j<=6;j++) {

if(i==2||i==3) {

if(j==1||j==6) printf(\ else printf(\ \

} else

printf(\

}

printf(\ } }

法二:

#include\main() {

int i,j;

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

if(i==1||i==4) {

for(j=1;j<=6;j++) {

printf(\ }

printf(\ }

else {

printf(\

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

printf(\ \ }

printf(\ printf(\ } } }

5.4利用循环语句编程,输出三角形状的九九乘法表

#include\main() {

int i,j,k;

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

if(i==0)

printf(\ else {

printf(\ } }

printf(\

for(i=1;i<=19;i++) {

printf(\ }

printf(\

for(i=1;i<=9;i++) {

printf(\ for(j=1;j<=i;j++) {

k=i*j;

printf(\ }

printf(\}

} 5.5:用while语句或do-while语句编写程序,计算:e=1+1/1!+1/2!+...+1/n!. #include #include \main() {

float s=1.0,e=1.0,t; int i=1;

while(fabs(t)>=1e-5) {

s=s*i; t=1/s; e=e+1.0/s; i++; }

printf(\ printf(\}

5.6:如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为“完数”,

例如:6的因子为1,2,3且6=1+2+3,所以6是完数,输出完数1+完数2+...=和值。 void main() {

int i,j,sum,k;

for(i=2;i<=1000;i++) {

sum=0;

for(j=1;j

{if(i%j==0) sum+=j;} if(sum==i)

{printf(\的因子:\\n\ k=0;

for(j=1;j

if(i%j==0&&k==0) printf(\ else if(i%j==0) printf(\ k++; }

printf(\ printf(\

} } }

实验六

6.2:将数组xx(有n个元素)的前K个元素(k

int n,k,xx[20]; int i,j,t;

printf(\ scanf(\

printf(\ for(i=0;i

printf(\ scanf(\

for(i=0;i

t=xx[0];

for(j=1;j

printf(\

for(i=0;i

6.3对a数组中n种商品价格进行分段统计,商品各段价格存到b数组中,其中:价格为100到199元的个数存到b[1],价格为200到299元的个数存到b[2],价格为300到399的个数存到b[3],价格为400到499元的个数存到b[4],价格为500以上的个数存到b[5]中,例如:a的数组为:90,180,270,380,590,530,140,750,380,调用函数后,b中存放的数据为:1,2,1,2,0,3 #include

main() { int

i,a[100]={90,180,270,380,590,530,140,750,380},b[6];

for(i=0;i<6;i++) b[i]=0;

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

switch(a[i]/100) {

case 0:b[0]++;break; case 1:b[1]++;break; case 2:b[2]++;break; case 3:b[3]++;break; case 4:b[4]++;break; default :b[5]++;break; } }

printf(\ for(i=0;i<6;i++) printf(\ printf(\}

6.4编写程序,先读入10个整数,再把他们按从小到大的次序排列起来;最后再读入一个整数K,,并将K插入到该数列中,插入后数列仍然从小到大排列。

例如:若输入:6,3,42,23,35,71,98,67,56,38,最后再输入待插入数59,则输出为:6,23,35,38,42,56,59,67,98

#include main() { int

i,j,t,p,q,s,n,a[11]={6,3,42,23,35,71,98,67,56,38};

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

for(j=i+1;j<10;j++) if(a[i]>a[j]) {

t=a[i]; a[i]=a[j]; a[j]=t; }

printf(\ }

printf(\ scanf(\ for(i=0;i<10;i++) if(n

{for(j=9;j>=i;j--) a[j+1]=a[j]; break; }

a[i]=n;

for(i=0;i<=10;i++) printf(\

printf(\ }

6.5统计字符串s在字符串str中出现的次数。 main()

{ char str1[255],str2[255]; int sum=0;

printf(\请输入两个字符串!\\n\gets(str1); gets(str2); int i=0,j=0;

while(str1[i]!='\\0') {

while(str2[j]==str1[i+j]&&str2[j]!='\\0') {j++;}

if(str2[j]=='\\0') {sum++; j=0; } i++; }

本文来源:https://www.bwwdw.com/article/0r9f.html

Top