c语言习题Word格式.docx

上传人:b****5 文档编号:19948586 上传时间:2023-01-12 格式:DOCX 页数:38 大小:29.78KB
下载 相关 举报
c语言习题Word格式.docx_第1页
第1页 / 共38页
c语言习题Word格式.docx_第2页
第2页 / 共38页
c语言习题Word格式.docx_第3页
第3页 / 共38页
c语言习题Word格式.docx_第4页
第4页 / 共38页
c语言习题Word格式.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

c语言习题Word格式.docx

《c语言习题Word格式.docx》由会员分享,可在线阅读,更多相关《c语言习题Word格式.docx(38页珍藏版)》请在冰豆网上搜索。

c语言习题Word格式.docx

else语句4;

 

2.将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。

#include“stdio.h”

VoidDec2Bin(intm)

intbin[32],j;

for(j=0;

m!

=0;

j++)

{

bin[j]=m%2;

m%2为m除以2取余,并用数组对应记录下来

m=m/2;

m/2为m除以2取整

}

for(;

j!

j--)j从大到小循环到0

%d"

bin[j-1]);

如m=3,j先赋值为0,判断m不等于0,循环,

}b[0]=1,m=1,j=1,再判断m不等于0,循环,

voidmain()b[1]=1,m=0,j=2,再判断m等于0,跳出循环,进

{入下一个循环,因为j=2时没有对应的数组,

intn;

所以输出时j-1

scanf("

&

n);

Dec2Bin(n);

1、非(!

)与(&

&

)或(||)等于(==)

条件表达式一般形式:

表达式1?

表达式2:

表达式3

计算过程:

先计算表达式1的值,若非0,则计算表达式2的值作为表达式值,忽略表达式3;

否则计算表达式3的值作为条件表达式值,不计算表达式2。

2、函数调用,子函数,定义函数

1)定义的函数的类型与返回值类型相同(double,float,int)

2)return

3、数组

1)一维数组a[]

2)二维数组a[][]第一个[]表示数组的行,第二个[]表示每一行的个数

3、输入1个整数后,输出该数的位数(例:

输入3214则输出4,输入-23156则输出5)

intn,k=0;

while(_____1_____)//n!

=0

k++;

_____2_____;

//n=n/10

%d\n"

k);

4、求输入的整数各位数字之和,如输入234则输出9,输入-312则输出6。

#include<

stdio.h>

math.h>

intn,s=0;

______1______//if(n<

0)n=-n;

while(n!

=0){

______2______//s+=n%10;

n=n/10;

s);

$1__VE_ITEM__

(1) 

调用函数f,将一个整数首尾倒置。

例如:

若程序输入12345,则输出54321;

若程序输入-34567,则输出-76543。

longf(longn)

longm,y=0;

m=fabs(n);

while(m!

=0){

y=y*10+m%10;

____1____ 

// 

m=m/10;

if(n>

=0)returny;

else_____2_____ 

return-y;

printf("

%ld\t"

f(12345));

%ld\n"

f(-34567));

$1__VE_ITEM__

(2) 

调用函数f,从字符串中删除所有的数字字符。

string.h>

ctype.h>

voidf(char*s)

{inti=0;

while(s[i]!

='

\0'

){

if(isdigit(s[i]))____1____(s+i,s+i+1);

strcpy

 

___2___ 

i++;

{charstr[80];

gets(str);

f(str);

puts(str);

$1__VE_ITEM__(3) 

调用find函数在输入的字符串中查找是否出现"

the"

这个单词。

如果查到返回出现的次数,如果未找到返回0。

intfind(char*str)

{char*fstr="

;

inti=0,j,n=0;

while(str[i]!

for(______1______) 

j=0;

j<

3;

j++

if(str[j+i]!

=fstr[j])break;

if(______2______)n++;

// 

j>

=3

returnn;

chara[80];

gets(a);

find(a));

$1__VE_ITEM__(4) 

输入的一个小写字母,将字母循环后移5个位置后输出。

"

a"

变成"

f"

,"

w"

b"

charc;

c=getchar();

if(______1______) 

// 

c>

a'

c<

u'

c=c+5;

if(c>

v'

&

c<

z'

______2______ 

c=(c-'

+5)%26+'

putchar(c);

$1__VE_ITEM__(5) 

将字符串s中所有的字符'

c'

删除。

chars[80];

inti,j;

gets(s);

for(i=j=0;

______1______;

i++) 

s[i]!

='

if(s[i]!

s[j]=s[i];

j++;

s[j]='

puts(s);

对x=1,2,……,10,求f(x)=x*x-5*x+sin(x)的最大值。

#definef(x)x*x-5*x+sin(x)

voidmain() 

intx;

floatmax;

______1______ 

//max=f

(1);

for(x=2;

x<

=10;

x++)

//if(f(x)>

max) 

max=f(x);

%f\n"

max);

1__VE_ITEM__

(2) 

输入三个整数,按由小到大的顺序输出这三个数。

voidswap(______1______) 

//int 

*pa,int 

*pb

{/*交换两个数的位置*/

inttemp;

temp=*pa;

*pa=*pb;

*pb=temp;

inta,b,c,temp;

%d%d%d"

a,&

b,&

c);

if(a>

b)

swap(&

b);

if(b>

c)

if(______2______) 

//if(a>

b)

%d,%d,%d"

a,b,c);

调用函数f,去除数组中的负数,输入数组x[7],输出结果为:

6

//数组元素的删除

voidf(int*a,int*m)

inti,j;

for(i=0;

*m;

i++)

if(a[i]<

0){

for(j=i--;

j<

*m-1;

j++)a[j]=a[j+1];

_____1_____;

*m=*m-1;

inti,n=7,x[7]={1,-2,3,4,-5,6,-7};

_______2_______;

f(x,&

n);

for(i=0;

n;

i++)printf("

%5d"

x[i]);

);

调用函数f计算代数多项式1.1+2.2*x+3.3*x*x+4.4*x*x*x+5.5*x*x*x*x当x=1.7时的值。

floatf(float,float*,int);

floatb[5]={1.1,2.2,3.3,4.4,5.5};

f(1.7,b,5));

floatf(_______1________) 

floatx,float*a,intn

floaty=a[0],t=1;

inti;

for(i=1;

i<

i++) 

t=t*x;

y=y+a[i]*t;

_____2_____ 

returny;

分别统计字符串中英文字母、数字、和其他字符出现的次数。

intn[3]={0},i;

gets(a);

________1________ 

for(i=0;

a[i]!

i++)

{if(tolower(a[i])>

tolower(a[i])<

)/*统计字母个数*/

n[0]++;

elseif(________2________) 

/*统计数字个数*/ 

a[i]>

0'

a[i]<

9'

n[1]++;

else

n[2]++;

n[i]);

将输入的十进制整数n通过函数DtoH函数转换为十六进制数,并将转换结果以字符串形式输出。

(例如:

输入十进制数79,将输出十六进制4f。

#include<

chartrans(intx)

if(x<

10)return'

+x;

else_______1________ 

//return 

'

+x-10;

intDtoH(intn,char*str)

inti=0;

while(n!

=0)

________2________ 

//str[i]=trans(n%16);

n/=16;

i++;

returni-1;

inti,k,n;

char*str;

scanf("

k=DtoH(n,str);

for(i=0;

=k;

%c"

str[k-i]);

将输入的十进制正整数n通过函数Dec2Bin转换为二进制数,并将转换结果输出。

voidDec2Bin(intm)

intbin[32],j;

bin[j]=______1______;

//m%2

for(;

j!

j--)

______2______);

//bin[j-1]

数列的第1、2项均为1,此后各项值均为该项前二项之和。

计算数列第30项的值。

_______1______ 

long 

f(intn);

或者 

long 

f(int);

f(30));

longf(intn)

if(______2______) 

// 

n==1||n==2

return1;

returnf(n-1)+f(n-2);

该程序计算四位学生的平均成绩,保存在结构中,然后列表输出这些学生的信息。

structSTUDENT

charname[16];

intmath;

intenglish;

intcomputer;

intaverage;

};

voidGetAverage(structSTUDENT*pst) 

/*计算平均成绩*/

intsum=0;

sum=______1______;

//pst->

math+pst->

english+pst->

computer

pst->

average=sum/3;

int 

i;

structSTUDENTst[4]={{"

Jessica"

98,95,90},{"

Mike"

80,80,90},

{"

Linda"

87,76,70},{"

Peter"

90,100,99}};

4;

GetAverage(______2______);

st+i

Name\tMath\tEnglish\tCompu\tAverage\n"

%s\t%d\t%d\t%d\t%d\n"

st[i].name,st[i].math,st[i].english,

st[i].computer,st[i].average);

输入m、n(要求输入数均大于0)。

输出它们的最大公约数。

#include<

int 

m,n,k;

while(scanf("

%d%d"

&

m,&

n),______1______);

m<

=0||n<

for(___2___;

n%k!

=0||m%k!

=0;

k--);

k=m>

n?

n:

m

k);

求出a中各相邻两个元素的和,并将这些和存放在数组b中,按每行3个元素的形式输出。

b[1]=a[0]+a[1],……,b[9]=a[8]+a[9]。

inta[10],b[10],i;

\nInput10numbers:

"

for(i=0;

10;

i++) 

/*数组输入*/

a[i]);

for(i=1;

b[i]=______1______;

/*计算b数组中的元素*/ 

//a[i-1]+a[i]

%3d"

b[i]);

if(______2______) 

/*每行打印3个数据*/ 

i%3==0

输入整数n(n>

0),求m使得2的m次方小于或等于n,2的m+1次方大于或等于n。

intm=0,t=1,n;

while(_____1________);

scanf(“%d”,&

n),n<

=0 

//逗号表达式

while(!

(t<

=n&

t*2>

=n)){

_____2_____ 

t=t*2;

m++;

printf(“%d\n”,m);

改错题:

输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。

charstr[256];

inti,j,k=0,n;

n=strlen(str);

/********1********/

if(tolower(str[i])<

'

||tolower(str[i])>

)//if(tolower(str[i])>

tolower(str[i])<

/********2********/

str[n]=str[i];

n++;

str[k]=str[i];

str[k]='

%s\n"

str);

输入一个字符串,将组成字符串的所有字符先按顺序存放到字符串t中,再将字符串中的字符按逆序连接到字符串t后面。

输入"

ABCD"

,则字符串t为"

ABCDDCBA"

voidfun(char*s,char*t)

inti,sl;

sl=strlen(s);

sl;

i++)

t[i]=s[i];

t[sl+i]=s[sl-i];

t[sl+i]=s[sl-1-i];

/********2********/

t[sl]="

\0"

t[sl+i]='

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1